From 8a622545ff474ceb18bf42132fb48de84de27286 Mon Sep 17 00:00:00 2001 From: KodeStar Date: Wed, 8 Jul 2026 19:57:08 +0100 Subject: [PATCH] Upgrade to Laravel 13 - laravel/framework ^12.0 -> ^13.0 (installed 13.19.0) - laravel/tinker ^2.9 -> ^3.0 (installed 3.0.2, pulls psysh >=0.12.19) - phpunit/phpunit ^11.0 -> ^12.0 (installed 12.5.31) - Symfony components move to 8.x (supported by L13); symfony/yaml stays on patched 7.4.14 via its direct ^7.0 constraint - league/commonmark auto-bumped to 2.8.2 (patched) - No application/config code changes required; the fluent validateCsrfTokens(except: ...) config still resolves under L13 composer audit: No security vulnerability advisories found. Full suite green: 59 tests, 128 assertions (1 skipped). --- composer.json | 6 +- composer.lock | 1241 ++++++------- vendor/aws/aws-sdk-php/src/Sdk.php | 2 +- .../data/appconfig/2019-10-09/api-2.json.php | 2 +- .../2023-06-05/api-2.json.php | 2 +- .../src/data/ec2/2016-11-15/api-2.json.php | 2 +- .../src/data/ecs/2014-11-13/api-2.json.php | 2 +- .../data/geo-places/2020-11-19/api-2.json.php | 2 +- .../iotwireless/2020-11-22/api-2.json.php | 2 +- .../resiliencehubv2/2026-02-17/api-2.json.php | 2 +- vendor/brick/math/CHANGELOG.md | 147 +- vendor/brick/math/README.md | 265 +++ vendor/brick/math/codecov.yml | 14 + vendor/brick/math/composer.json | 1 - vendor/brick/math/src/BigDecimal.php | 726 +++++--- vendor/brick/math/src/BigInteger.php | 631 ++++--- vendor/brick/math/src/BigNumber.php | 261 ++- vendor/brick/math/src/BigRational.php | 272 ++- .../src/Exception/DivisionByZeroException.php | 48 +- .../Exception/IntegerOverflowException.php | 36 +- .../Exception/InvalidArgumentException.php | 133 ++ .../math/src/Exception/MathException.php | 6 +- .../src/Exception/NegativeNumberException.php | 53 +- .../math/src/Exception/NoInverseException.php | 33 + .../src/Exception/NumberFormatException.php | 64 +- .../src/Exception/RandomSourceException.php | 64 + .../Exception/RoundingNecessaryException.php | 150 +- .../UnsupportedPlatformException.php | 33 + vendor/brick/math/src/Internal/Calculator.php | 109 +- .../Internal/Calculator/BcMathCalculator.php | 14 + .../src/Internal/Calculator/GmpCalculator.php | 15 + .../brick/math/src/Internal/DecimalHelper.php | 177 ++ vendor/brick/math/src/Internal/Safe.php | 81 + vendor/brick/math/src/RoundingMode.php | 52 +- vendor/composer/autoload_classmap.php | 413 ++++- vendor/composer/autoload_files.php | 4 +- vendor/composer/autoload_psr4.php | 2 +- vendor/composer/autoload_static.php | 427 ++++- vendor/composer/installed.json | 1329 +++++++------- vendor/composer/installed.php | 332 ++-- vendor/laravel/framework/README.md | 2 + vendor/laravel/framework/composer.json | 236 +-- vendor/laravel/framework/config/app.php | 2 +- vendor/laravel/framework/config/cache.php | 12 +- vendor/laravel/framework/config/database.php | 10 +- vendor/laravel/framework/config/queue.php | 7 + vendor/laravel/framework/config/session.php | 2 +- vendor/laravel/framework/pint.json | 212 --- .../Auth/Access/AuthorizationException.php | 2 +- .../src/Illuminate/Auth/Access/Gate.php | 8 +- .../src/Illuminate/Auth/AuthManager.php | 28 +- .../Auth/Notifications/ResetPassword.php | 2 +- .../Auth/Notifications/VerifyEmail.php | 2 +- .../Auth/Passwords/PasswordBrokerManager.php | 10 +- .../src/Illuminate/Auth/composer.json | 50 +- .../Broadcasting/BroadcastEvent.php | 21 +- .../Broadcasting/BroadcastManager.php | 59 +- .../src/Illuminate/Broadcasting/composer.json | 50 +- .../framework/src/Illuminate/Bus/Batch.php | 53 +- .../src/Illuminate/Bus/BatchRepository.php | 6 +- .../src/Illuminate/Bus/Batchable.php | 2 +- .../src/Illuminate/Bus/BusServiceProvider.php | 2 +- .../Bus/DatabaseBatchRepository.php | 6 +- .../src/Illuminate/Bus/DebounceLock.php | 173 ++ .../src/Illuminate/Bus/Dispatcher.php | 60 +- .../Illuminate/Bus/DynamoBatchRepository.php | 6 +- .../Illuminate/Bus/Events/BatchCanceled.php | 3 + .../Illuminate/Bus/Events/BatchStarted.php | 18 + .../src/Illuminate/Bus/PendingBatch.php | 4 +- .../src/Illuminate/Bus/Queueable.php | 7 + .../src/Illuminate/Bus/UniqueLock.php | 10 +- .../src/Illuminate/Bus/composer.json | 40 +- .../src/Illuminate/Cache/ApcStore.php | 18 + .../src/Illuminate/Cache/ArrayStore.php | 55 +- .../src/Illuminate/Cache/CacheManager.php | 64 +- .../Illuminate/Cache/Console/ClearCommand.php | 45 + .../src/Illuminate/Cache/DatabaseLock.php | 29 +- .../src/Illuminate/Cache/DatabaseStore.php | 69 +- .../src/Illuminate/Cache/DynamoDbStore.php | 43 +- .../Cache/Events/CacheLocksFlushFailed.php | 23 + .../Cache/Events/CacheLocksFlushed.php | 23 + .../Cache/Events/CacheLocksFlushing.php | 23 + .../src/Illuminate/Cache/FailoverStore.php | 47 +- .../src/Illuminate/Cache/FileStore.php | 70 +- .../framework/src/Illuminate/Cache/Lock.php | 17 +- .../Illuminate/Cache/MemcachedConnector.php | 2 +- .../src/Illuminate/Cache/MemcachedStore.php | 12 + .../src/Illuminate/Cache/MemoizedStore.php | 50 +- .../framework/src/Illuminate/Cache/NoLock.php | 10 + .../src/Illuminate/Cache/NullStore.php | 31 +- .../src/Illuminate/Cache/RateLimiter.php | 6 +- .../Illuminate/Cache/RateLimiting/Limit.php | 2 +- .../src/Illuminate/Cache/RedisLock.php | 2 +- .../src/Illuminate/Cache/RedisStore.php | 46 +- .../src/Illuminate/Cache/RedisTagSet.php | 2 +- .../src/Illuminate/Cache/RedisTaggedCache.php | 20 +- .../src/Illuminate/Cache/Repository.php | 189 +- .../src/Illuminate/Cache/SessionStore.php | 20 + .../src/Illuminate/Cache/StorageStore.php | 322 ++++ .../src/Illuminate/Cache/TaggedCache.php | 10 +- .../src/Illuminate/Cache/composer.json | 52 +- .../src/Illuminate/Collections/Arr.php | 48 +- .../src/Illuminate/Collections/Collection.php | 286 +-- .../src/Illuminate/Collections/Enumerable.php | 91 +- .../Illuminate/Collections/LazyCollection.php | 56 +- .../Collections/Traits/EnumeratesValues.php | 72 +- .../src/Illuminate/Collections/composer.json | 46 +- .../Concurrency/ConcurrencyManager.php | 6 +- .../src/Illuminate/Concurrency/ForkDriver.php | 5 +- .../Illuminate/Concurrency/ProcessDriver.php | 13 +- .../src/Illuminate/Concurrency/SyncDriver.php | 3 +- .../src/Illuminate/Concurrency/composer.json | 39 +- .../Illuminate/Conditionable/composer.json | 26 +- .../src/Illuminate/Config/Repository.php | 26 +- .../src/Illuminate/Config/composer.json | 30 +- .../src/Illuminate/Console/Application.php | 31 +- .../Illuminate/Console/Attributes/Aliases.php | 19 + .../Console/Attributes/Description.php | 19 + .../Illuminate/Console/Attributes/Help.php | 19 + .../Illuminate/Console/Attributes/Hidden.php | 17 + .../Console/Attributes/Signature.php | 20 + .../Illuminate/Console/Attributes/Usage.php | 19 + .../src/Illuminate/Console/Command.php | 69 + .../src/Illuminate/Console/CommandInput.php | 127 ++ .../Console/Concerns/ConfiguresPrompts.php | 4 +- .../Console/Concerns/InteractsWithIO.php | 15 + .../Concerns/PromptsForMissingInput.php | 2 +- .../Console/Events/SchedulePaused.php | 7 + .../Console/Events/ScheduleResumed.php | 7 + .../Illuminate/Console/GeneratorCommand.php | 4 +- .../src/Illuminate/Console/OutputStyle.php | 2 +- .../Console/Scheduling/CallbackEvent.php | 4 +- .../Console/Scheduling/CommandBuilder.php | 4 +- .../CronExpressionTimezoneConverter.php | 5 +- .../Illuminate/Console/Scheduling/Event.php | 101 +- .../Console/Scheduling/ManagesAttributes.php | 52 +- .../Console/Scheduling/ManagesFrequencies.php | 33 +- .../Scheduling/PendingEventAttributes.php | 48 +- .../Console/Scheduling/Schedule.php | 63 +- .../Scheduling/ScheduleClearCacheCommand.php | 2 +- .../Scheduling/ScheduleListCommand.php | 32 +- .../Scheduling/SchedulePauseCommand.php | 42 + .../Scheduling/ScheduleResumeCommand.php | 43 + .../Console/Scheduling/ScheduleRunCommand.php | 42 +- .../Scheduling/ScheduleWorkCommand.php | 75 +- .../Console/View/Components/Task.php | 2 + .../src/Illuminate/Console/composer.json | 58 +- .../Illuminate/Container/Attributes/Auth.php | 3 +- .../Container/Attributes/Authenticated.php | 3 +- .../Illuminate/Container/Attributes/Bind.php | 2 +- .../Illuminate/Container/Attributes/Cache.php | 11 +- .../Illuminate/Container/Attributes/Log.php | 20 +- .../Container/Attributes/RouteParameter.php | 7 +- .../Container/Attributes/Storage.php | 3 +- .../src/Illuminate/Container/BoundMethod.php | 4 +- .../src/Illuminate/Container/Container.php | 35 +- .../src/Illuminate/Container/composer.json | 40 +- .../src/Illuminate/Contracts/Auth/Factory.php | 4 +- .../Contracts/Auth/MustVerifyEmail.php | 7 + .../Illuminate/Contracts/Bus/Dispatcher.php | 17 + .../Contracts/Cache/CanFlushLocks.php | 20 + .../Illuminate/Contracts/Cache/Factory.php | 2 +- .../Illuminate/Contracts/Cache/Repository.php | 29 +- .../src/Illuminate/Contracts/Cache/Store.php | 9 + .../Contracts/Concurrency/Driver.php | 3 +- .../Contracts/Config/Repository.php | 2 +- .../Contracts/Debug/ExceptionHandler.php | 5 + .../Contracts/Events/ShouldBeDiscovered.php | 11 + .../Contracts/JsonSchema/JsonSchema.php | 8 + .../src/Illuminate/Contracts/Mail/Factory.php | 2 +- .../Illuminate/Contracts/Mail/Mailable.php | 2 +- .../src/Illuminate/Contracts/Mail/Mailer.php | 8 + .../Contracts/Pagination/CursorPaginator.php | 2 +- .../Contracts/Pagination/Paginator.php | 2 +- .../Contracts/Process/InvokedProcess.php | 7 + .../Illuminate/Contracts/Queue/Factory.php | 2 +- .../Contracts/Queue/Interruptible.php | 14 + .../Illuminate/Contracts/Queue/Monitor.php | 8 + .../Contracts/Queue/PreparesForDispatch.php | 13 + .../src/Illuminate/Contracts/Queue/Queue.php | 38 +- .../Contracts/Routing/ResponseFactory.php | 13 + .../Contracts/Translation/Loader.php | 2 +- .../src/Illuminate/Contracts/composer.json | 30 +- .../src/Illuminate/Cookie/composer.json | 40 +- .../Database/Concerns/BuildsQueries.php | 46 +- .../Concerns/BuildsWhereDateClauses.php | 4 +- .../src/Illuminate/Database/Connection.php | 162 +- .../Database/ConnectionInterface.php | 16 +- .../Concerns/ConfiguresPooledConnections.php | 126 ++ .../Database/Connectors/ConnectionFactory.php | 44 +- .../Database/Connectors/SQLiteConnector.php | 5 +- .../InteractsWithPooledConnections.php | 26 + .../Illuminate/Database/Console/DbCommand.php | 50 +- .../Database/Console/DumpCommand.php | 7 +- .../Console/Migrations/MigrateCommand.php | 2 + .../Database/Console/PruneCommand.php | 4 +- .../Database/Console/ShowCommand.php | 5 +- .../Database/Console/ShowModelCommand.php | 77 +- .../Database/Console/TableCommand.php | 5 +- .../Database/Console/WipeCommand.php | 11 +- .../Illuminate/Database/DatabaseManager.php | 23 +- .../Database/DatabaseTransactionsManager.php | 6 +- .../Database/Eloquent/Attributes/Appends.php | 24 + .../Eloquent/Attributes/Connection.php | 19 + .../Eloquent/Attributes/DateFormat.php | 19 + .../Database/Eloquent/Attributes/Fillable.php | 24 + .../Database/Eloquent/Attributes/Guarded.php | 24 + .../Database/Eloquent/Attributes/Hidden.php | 24 + .../Database/Eloquent/Attributes/Table.php | 29 + .../Database/Eloquent/Attributes/Touches.php | 24 + .../Eloquent/Attributes/Unguarded.php | 11 + .../Database/Eloquent/Attributes/Visible.php | 24 + .../Attributes/WithoutIncrementing.php | 17 + .../Eloquent/Attributes/WithoutTimestamps.php | 17 + .../Illuminate/Database/Eloquent/Builder.php | 56 +- .../Database/Eloquent/Casts/AsBinary.php | 2 + .../Database/Eloquent/Casts/AsCollection.php | 2 + .../Eloquent/Casts/AsEncryptedCollection.php | 2 + .../Database/Eloquent/Casts/Attribute.php | 4 +- .../Eloquent/Concerns/GuardsAttributes.php | 28 + .../Eloquent/Concerns/HasAttributes.php | 42 +- .../Database/Eloquent/Concerns/HasEvents.php | 8 +- .../Eloquent/Concerns/HasGlobalScopes.php | 8 + .../Eloquent/Concerns/HasRelationships.php | 25 +- .../Eloquent/Concerns/HasTimestamps.php | 32 +- .../Eloquent/Concerns/HasUniqueIds.php | 6 +- .../Eloquent/Concerns/HidesAttributes.php | 24 + .../Concerns/QueriesRelationships.php | 4 +- .../Concerns/TransformsToResource.php | 4 +- .../Factories/Attributes/UseModel.php | 19 + .../Database/Eloquent/Factories/Factory.php | 39 +- .../Database/Eloquent/HasCollection.php | 14 +- .../Database/Eloquent/MassPrunable.php | 2 + .../Illuminate/Database/Eloquent/Model.php | 295 ++- .../Database/Eloquent/ModelInfo.php | 117 ++ .../Database/Eloquent/ModelInspector.php | 28 +- .../Eloquent/ModelNotFoundException.php | 2 +- .../PendingHasThroughRelationship.php | 2 + .../Illuminate/Database/Eloquent/Prunable.php | 4 + .../Eloquent/Relations/BelongsToMany.php | 31 +- .../Eloquent/Relations/Concerns/AsPivot.php | 5 +- .../Concerns/InteractsWithPivotTable.php | 6 +- .../Eloquent/Relations/HasOneOrMany.php | 14 +- .../Relations/HasOneOrManyThrough.php | 6 +- .../Eloquent/Relations/MorphOneOrMany.php | 8 +- .../Eloquent/Relations/MorphPivot.php | 4 +- .../Database/Eloquent/Relations/MorphTo.php | 6 +- .../Eloquent/Relations/MorphToMany.php | 6 +- .../Illuminate/Database/Eloquent/Scope.php | 7 +- .../Database/Eloquent/SoftDeletes.php | 8 +- .../Database/Eloquent/SoftDeletingScope.php | 9 +- .../Database/Events/MigrationEvent.php | 11 +- .../Database/Events/QueryExecuted.php | 4 +- .../DatabaseMigrationRepository.php | 8 +- .../MigrationRepositoryInterface.php | 10 +- .../Database/Migrations/Migrator.php | 81 +- .../Illuminate/Database/MySqlConnection.php | 17 + .../Database/PostgresConnection.php | 63 + .../src/Illuminate/Database/Query/Builder.php | 317 ++-- .../Illuminate/Database/Query/Expression.php | 2 +- .../Database/Query/Grammars/Grammar.php | 41 +- .../Database/Query/Grammars/MySqlGrammar.php | 40 +- .../Query/Grammars/PostgresGrammar.php | 19 + .../Database/Query/Grammars/SQLiteGrammar.php | 19 + .../Database/Query/Processors/Processor.php | 10 +- .../Illuminate/Database/QueryException.php | 4 +- .../Illuminate/Database/SQLiteConnection.php | 22 + .../Illuminate/Database/Schema/Blueprint.php | 99 +- .../Database/Schema/BlueprintState.php | 2 +- .../Illuminate/Database/Schema/Builder.php | 40 +- .../Database/Schema/ForeignKeyDefinition.php | 4 +- .../Database/Schema/Grammars/Grammar.php | 6 +- .../Schema/Grammars/MariaDbGrammar.php | 20 + .../Schema/Grammars/PostgresGrammar.php | 4 + .../Schema/Grammars/SQLiteGrammar.php | 2 + .../Database/Schema/MariaDbSchemaState.php | 27 + .../Database/Schema/MySqlBuilder.php | 2 +- .../Database/Schema/MySqlSchemaState.php | 2 + .../Database/Schema/PostgresSchemaState.php | 15 +- .../Database/Schema/SQLiteBuilder.php | 4 +- .../Database/Schema/SchemaState.php | 9 +- .../Database/Schema/SqliteSchemaState.php | 2 +- .../src/Illuminate/Database/Seeder.php | 4 +- .../Database/SqlServerConnection.php | 29 +- .../UniqueConstraintViolationException.php | 39 + .../src/Illuminate/Database/composer.json | 75 +- .../src/Illuminate/Encryption/Encrypter.php | 25 +- .../src/Illuminate/Encryption/composer.json | 28 +- .../Illuminate/Events/CallQueuedListener.php | 9 +- .../src/Illuminate/Events/Dispatcher.php | 53 +- .../src/Illuminate/Events/composer.json | 38 +- .../Filesystem/FilesystemManager.php | 16 +- .../Filesystem/FilesystemServiceProvider.php | 15 +- .../Filesystem/LocalFilesystemAdapter.php | 4 + .../src/Illuminate/Filesystem/ReceiveFile.php | 2 +- .../src/Illuminate/Filesystem/ServeFile.php | 2 +- .../src/Illuminate/Filesystem/composer.json | 62 +- .../src/Illuminate/Foundation/Application.php | 4 +- .../Foundation/ArrayMaintenanceMode.php | 65 + .../Foundation/Bootstrap/HandleExceptions.php | 1 + .../Foundation/Bus/PendingDispatch.php | 50 +- .../src/Illuminate/Foundation/Cloud.php | 46 +- .../Illuminate/Foundation/Cloud/CloudJob.php | 7 +- .../Illuminate/Foundation/Cloud/Events.php | 4 +- .../Foundation/Cloud/FailedJobProvider.php | 2 + .../Foundation/Cloud/JsonFormatter.php | 30 + .../src/Illuminate/Foundation/Cloud/Queue.php | 1 + .../Configuration/ApplicationBuilder.php | 44 +- .../Foundation/Configuration/Exceptions.php | 28 + .../Foundation/Configuration/Middleware.php | 38 +- .../Console/BroadcastingInstallCommand.php | 6 +- .../Foundation/Console/ChannelListCommand.php | 2 +- .../Foundation/Console/DevCommand.php | 90 + .../Foundation/Console/DevListCommand.php | 197 ++ .../Foundation/Console/DocsCommand.php | 6 +- .../Foundation/Console/DownCommand.php | 2 + .../Foundation/Console/KeyGenerateCommand.php | 7 +- .../Foundation/Console/RouteListCommand.php | 23 +- .../Foundation/Console/ServeCommand.php | 23 +- .../Foundation/Console/UpCommand.php | 2 + .../Console/VendorPublishCommand.php | 5 +- .../Foundation/Console/stubs/console.stub | 18 +- .../Console/stubs/maintenance-mode.stub | 20 + .../Foundation/Console/stubs/model.pivot.stub | 3 +- .../src/Illuminate/Foundation/DevCommand.php | 166 ++ .../Illuminate/Foundation/DevCommandColor.php | 13 + .../src/Illuminate/Foundation/DevCommands.php | 273 +++ .../Foundation/Events/DiscoverEvents.php | 6 + .../Foundation/Exceptions/Handler.php | 131 +- .../Exceptions/Renderer/Exception.php | 12 + .../Foundation/Exceptions/Renderer/Frame.php | 2 +- .../Exceptions/Renderer/Listener.php | 16 +- .../Exceptions/views/minimal.blade.php | 8 +- .../Foundation/Http/Attributes/ErrorBag.php | 19 + .../Http/Attributes/FailOnUnknownFields.php | 13 + .../Foundation/Http/Attributes/RedirectTo.php | 19 + .../Http/Attributes/RedirectToRoute.php | 19 + .../Http/Attributes/StopOnFirstFailure.php | 11 + .../Foundation/Http/FormRequest.php | 164 +- .../src/Illuminate/Foundation/Http/Kernel.php | 2 +- .../Http/Middleware/PreventRequestForgery.php | 321 ++++ .../PreventRequestsDuringMaintenance.php | 4 +- .../Http/Middleware/ValidateCsrfToken.php | 4 +- .../Http/Middleware/VerifyCsrfToken.php | 248 +-- .../Foundation/MaintenanceModeManager.php | 10 + .../Providers/ArtisanServiceProvider.php | 19 + .../Providers/FoundationServiceProvider.php | 2 + .../PrecognitionControllerDispatcher.php | 2 + .../Foundation/Testing/Attributes/Seed.php | 17 + .../Foundation/Testing/Attributes/Seeder.php | 19 + .../Foundation/Testing/Attributes/SetUp.php | 10 + .../Testing/Attributes/TearDown.php | 10 + .../Testing/Attributes/UnitTest.php | 13 + .../Concerns/InteractsWithDatabase.php | 48 +- .../InteractsWithDeprecationHandling.php | 2 + .../InteractsWithTestCaseLifecycle.php | 26 +- .../Testing/Concerns/MakesHttpRequests.php | 31 + .../Testing/LazilyRefreshDatabase.php | 6 +- .../Foundation/Testing/TestCase.php | 46 +- .../Traits/CanConfigureMigrationCommands.php | 22 + .../src/Illuminate/Foundation/Vite.php | 203 ++- .../src/Illuminate/Foundation/ViteFonts.php | 249 +++ .../src/Illuminate/Foundation/helpers.php | 1 + .../renderer/components/layout.blade.php | 2 +- .../components/previous-exceptions.blade.php | 91 + .../renderer/components/trace.blade.php | 5 + .../exceptions/renderer/dist/scripts.js | 52 +- .../exceptions/renderer/dist/styles.css | 3 +- .../exceptions/renderer/markdown.blade.php | 14 + .../exceptions/renderer/package-lock.json | 1604 +++++------------ .../exceptions/renderer/package.json | 4 +- .../exceptions/renderer/show.blade.php | 4 + .../resources/exceptions/renderer/styles.css | 7 + .../Foundation/resources/health-up.blade.php | 2 +- .../src/Illuminate/Hashing/AbstractHasher.php | 2 +- .../src/Illuminate/Hashing/Argon2IdHasher.php | 2 +- .../src/Illuminate/Hashing/ArgonHasher.php | 2 +- .../src/Illuminate/Hashing/BcryptHasher.php | 2 +- .../src/Illuminate/Hashing/composer.json | 30 +- .../src/Illuminate/Http/Client/Factory.php | 93 +- .../Illuminate/Http/Client/PendingRequest.php | 313 +++- .../src/Illuminate/Http/Client/Request.php | 11 + .../src/Illuminate/Http/Client/Response.php | 22 +- .../Concerns/InteractsWithContentTypes.php | 4 +- .../Http/Concerns/InteractsWithInput.php | 12 +- .../Exceptions/OriginMismatchException.php | 10 + .../src/Illuminate/Http/FileHelpers.php | 2 +- .../Illuminate/Http/Middleware/HandleCors.php | 6 +- .../Http/Middleware/PrefersJsonResponses.php | 65 + .../Http/Middleware/SetCacheHeaders.php | 2 +- .../Http/Middleware/ValidatePathEncoding.php | 2 + .../src/Illuminate/Http/RedirectResponse.php | 15 - .../framework/src/Illuminate/Http/Request.php | 22 +- .../Http/Resources/Attributes/Collects.php | 19 + .../Resources/Attributes/PreserveKeys.php | 17 + .../Http/Resources/CollectsResources.php | 20 +- .../ConditionallyLoadsAttributes.php | 17 + .../Http/Resources/Json/JsonResource.php | 10 +- .../JsonApi/AnonymousResourceCollection.php | 5 +- .../Concerns/ResolvesJsonApiElements.php | 22 +- .../Http/Resources/JsonApi/JsonApiRequest.php | 16 + .../Resources/JsonApi/JsonApiResource.php | 2 +- .../src/Illuminate/Http/Response.php | 10 +- .../src/Illuminate/Http/ResponseTrait.php | 15 + .../src/Illuminate/Http/composer.json | 47 +- .../Illuminate/JsonSchema/Deserializer.php | 103 +- .../src/Illuminate/JsonSchema/JsonSchema.php | 1 + .../JsonSchema/JsonSchemaTypeFactory.php | 14 + .../src/Illuminate/JsonSchema/Serializer.php | 23 +- .../Illuminate/JsonSchema/Types/AnyOfType.php | 26 + .../Illuminate/JsonSchema/Types/ArrayType.php | 4 +- .../src/Illuminate/JsonSchema/Types/Type.php | 8 +- .../src/Illuminate/JsonSchema/composer.json | 28 +- .../src/Illuminate/Log/Context/Repository.php | 2 +- .../Log/Formatters/JsonFormatter.php | 58 + .../src/Illuminate/Log/LogManager.php | 27 +- .../src/Illuminate/Log/composer.json | 32 +- .../src/Illuminate/Macroable/composer.json | 22 +- .../src/Illuminate/Mail/Attachment.php | 2 + .../src/Illuminate/Mail/MailManager.php | 40 +- .../src/Illuminate/Mail/Mailable.php | 64 +- .../framework/src/Illuminate/Mail/Mailer.php | 8 +- .../framework/src/Illuminate/Mail/Message.php | 2 +- .../Illuminate/Mail/SendQueuedMailable.php | 29 +- .../Mail/Transport/CloudflareTransport.php | 186 ++ .../Mail/Transport/ResendTransport.php | 3 + .../Mail/Transport/SesTransport.php | 2 + .../Mail/Transport/SesV2Transport.php | 4 +- .../src/Illuminate/Mail/composer.json | 54 +- .../Notifications/ChannelManager.php | 16 +- .../Notifications/Messages/MailMessage.php | 41 +- .../Notifications/NotificationSender.php | 22 +- .../Notifications/SendQueuedNotifications.php | 28 +- .../Illuminate/Notifications/composer.json | 50 +- .../Pagination/AbstractCursorPaginator.php | 2 +- .../Pagination/AbstractPaginator.php | 6 +- .../src/Illuminate/Pagination/Cursor.php | 4 + .../Illuminate/Pagination/CursorPaginator.php | 5 +- .../Pagination/LengthAwarePaginator.php | 3 +- .../src/Illuminate/Pagination/Paginator.php | 7 +- .../src/Illuminate/Pagination/composer.json | 34 +- ...efault.blade.php => bootstrap-3.blade.php} | 0 .../resources/views/bootstrap-5.blade.php | 18 +- ...blade.php => simple-bootstrap-3.blade.php} | 0 .../src/Illuminate/Pipeline/composer.json | 38 +- .../src/Illuminate/Process/Factory.php | 2 +- .../Process/FakeProcessDescription.php | 4 +- .../src/Illuminate/Process/InvokedProcess.php | 3 + .../src/Illuminate/Process/PendingProcess.php | 18 +- .../src/Illuminate/Process/composer.json | 36 +- .../Illuminate/Queue/Attributes/Backoff.php | 26 + .../Queue/Attributes/Connection.php | 22 + .../Queue/Attributes/DebounceFor.php | 20 + .../src/Illuminate/Queue/Attributes/Delay.php | 19 + .../Queue/Attributes/FailOnTimeout.php | 11 + .../Queue/Attributes/MaxExceptions.php | 19 + .../src/Illuminate/Queue/Attributes/Queue.php | 22 + .../Queue/Attributes/ReadsQueueAttributes.php | 10 + .../Illuminate/Queue/Attributes/Timeout.php | 19 + .../src/Illuminate/Queue/Attributes/Tries.php | 19 + .../Illuminate/Queue/Attributes/UniqueFor.php | 19 + .../src/Illuminate/Queue/BeanstalkdQueue.php | 64 + .../Illuminate/Queue/CallQueuedHandler.php | 105 +- .../Queue/Connectors/SqsConnector.php | 5 +- .../Queue/Console/BatchesTableCommand.php | 10 +- .../Illuminate/Queue/Console/ClearCommand.php | 6 +- .../Queue/Console/FailedTableCommand.php | 10 +- .../Queue/Console/FlushFailedCommand.php | 7 + .../Queue/Console/ListFailedCommand.php | 28 +- .../Queue/Console/ListenCommand.php | 4 +- .../Queue/Console/MonitorCommand.php | 16 +- .../Illuminate/Queue/Console/PauseCommand.php | 7 + .../Illuminate/Queue/Console/TableCommand.php | 10 +- .../Illuminate/Queue/Console/WorkCommand.php | 5 +- .../Queue/Console/stubs/failed_jobs.stub | 6 +- .../Illuminate/Queue/Console/stubs/jobs.stub | 2 +- .../src/Illuminate/Queue/DatabaseQueue.php | 110 +- .../Illuminate/Queue/Events/JobAttempted.php | 6 +- .../Illuminate/Queue/Events/JobDebounced.php | 20 + .../src/Illuminate/Queue/Events/JobQueued.php | 2 + .../Illuminate/Queue/Events/JobQueueing.php | 2 + .../src/Illuminate/Queue/Events/Looping.php | 2 + .../src/Illuminate/Queue/Events/QueueBusy.php | 4 +- .../Illuminate/Queue/Events/WorkerIdle.php | 22 + .../Queue/Events/WorkerInterrupted.php | 24 + .../Illuminate/Queue/Events/WorkerPausing.php | 22 + .../Queue/Events/WorkerResuming.php | 22 + .../Queue/Events/WorkerStopping.php | 4 + .../Failed/DatabaseFailedJobProvider.php | 6 +- .../Queue/Failed/FileFailedJobProvider.php | 6 +- .../src/Illuminate/Queue/FailoverQueue.php | 64 + .../Illuminate/Queue/InteractsWithQueue.php | 4 + .../src/Illuminate/Queue/Jobs/FakeJob.php | 6 +- .../Illuminate/Queue/Jobs/InspectedJob.php | 50 + .../src/Illuminate/Queue/Jobs/Job.php | 4 +- .../src/Illuminate/Queue/Jobs/SqsJob.php | 80 +- .../Queue/Middleware/FailOnException.php | 8 +- .../Queue/Middleware/RateLimited.php | 1 + .../Queue/Middleware/RateLimitedWithRedis.php | 2 +- .../Illuminate/Queue/Middleware/Release.php | 52 + .../src/Illuminate/Queue/Middleware/Skip.php | 15 +- .../Queue/Middleware/ThrottlesExceptions.php | 40 +- .../ThrottlesExceptionsWithRedis.php | 4 +- .../Queue/Middleware/WithoutOverlapping.php | 2 +- .../src/Illuminate/Queue/NullQueue.php | 64 + .../framework/src/Illuminate/Queue/Queue.php | 73 +- .../src/Illuminate/Queue/QueueManager.php | 48 +- .../src/Illuminate/Queue/QueueRoutes.php | 110 ++ .../Illuminate/Queue/QueueServiceProvider.php | 14 + .../src/Illuminate/Queue/RedisQueue.php | 151 +- .../SerializesAndRestoresModelIdentifiers.php | 4 +- .../src/Illuminate/Queue/SerializesModels.php | 3 +- .../src/Illuminate/Queue/SqsQueue.php | 377 +++- .../src/Illuminate/Queue/SyncQueue.php | 83 +- .../framework/src/Illuminate/Queue/Worker.php | 204 ++- .../src/Illuminate/Queue/composer.json | 68 +- .../Redis/Connections/Connection.php | 31 + .../Redis/Connections/PacksPhpRedisValues.php | 6 +- .../Connections/PhpRedisClusterConnection.php | 11 + .../Connections/PredisClusterConnection.php | 11 + .../Redis/Connectors/PhpRedisConnector.php | 111 +- .../Redis/Connectors/PredisConnector.php | 86 +- .../Redis/Limiters/ConcurrencyLimiter.php | 34 +- .../src/Illuminate/Redis/RedisManager.php | 23 +- .../src/Illuminate/Redis/composer.json | 42 +- .../src/Illuminate/Reflection/Reflector.php | 2 + .../src/Illuminate/Reflection/composer.json | 30 +- .../src/Illuminate/Reflection/helpers.php | 4 + .../Routing/AbstractRouteCollection.php | 2 +- .../Attributes/Controllers/Authorize.php | 26 + .../Attributes/Controllers/Middleware.php | 21 + .../Routing/Controllers/Middleware.php | 5 +- .../Exceptions/UrlGenerationException.php | 2 +- .../Routing/Middleware/SubstituteBindings.php | 2 + .../Routing/Middleware/ThrottleRequests.php | 2 + .../Routing/PendingResourceRegistration.php | 16 + .../PendingSingletonResourceRegistration.php | 16 + .../Routing/ResolvesRouteDependencies.php | 2 +- .../Illuminate/Routing/ResourceRegistrar.php | 11 +- .../Illuminate/Routing/ResponseFactory.php | 84 +- .../src/Illuminate/Routing/Route.php | 153 +- .../Illuminate/Routing/RouteCollection.php | 49 +- .../src/Illuminate/Routing/RouteGroup.php | 62 +- .../Routing/RouteParameterBinder.php | 2 +- .../src/Illuminate/Routing/RouteRegistrar.php | 36 +- .../Routing/RouteSignatureParameters.php | 10 +- .../Illuminate/Routing/RouteUrlGenerator.php | 6 +- .../src/Illuminate/Routing/Router.php | 16 +- .../Routing/RoutingServiceProvider.php | 4 + .../src/Illuminate/Routing/UrlGenerator.php | 30 +- .../src/Illuminate/Routing/composer.json | 64 +- .../Session/Console/SessionTableCommand.php | 10 +- .../Session/Middleware/StartSession.php | 12 +- .../src/Illuminate/Session/SessionManager.php | 6 +- .../src/Illuminate/Session/composer.json | 42 +- .../src/Illuminate/Support/Benchmark.php | 6 +- .../src/Illuminate/Support/BinaryCodec.php | 6 +- .../src/Illuminate/Support/Carbon.php | 26 +- .../src/Illuminate/Support/Composer.php | 11 +- .../Support/ConfigurationUrlParser.php | 22 +- .../Support/Contracts/NodePackageManager.php | 29 + .../Illuminate/Support/DefaultProviders.php | 12 +- .../Illuminate/Support/EncodedHtmlString.php | 2 +- .../framework/src/Illuminate/Support/Env.php | 8 +- .../src/Illuminate/Support/Facades/App.php | 2 +- .../src/Illuminate/Support/Facades/Auth.php | 6 +- .../Illuminate/Support/Facades/Broadcast.php | 10 +- .../src/Illuminate/Support/Facades/Bus.php | 3 + .../src/Illuminate/Support/Facades/Cache.php | 17 +- .../Support/Facades/Concurrency.php | 4 +- .../src/Illuminate/Support/Facades/DB.php | 16 +- .../src/Illuminate/Support/Facades/Event.php | 2 + .../Illuminate/Support/Facades/Exceptions.php | 5 + .../src/Illuminate/Support/Facades/Hash.php | 2 +- .../src/Illuminate/Support/Facades/Http.php | 3 +- .../src/Illuminate/Support/Facades/Lang.php | 2 + .../src/Illuminate/Support/Facades/Log.php | 6 +- .../src/Illuminate/Support/Facades/Mail.php | 8 +- .../Support/Facades/MaintenanceMode.php | 2 +- .../Support/Facades/Notification.php | 6 +- .../Illuminate/Support/Facades/Password.php | 4 +- .../Illuminate/Support/Facades/Process.php | 4 +- .../src/Illuminate/Support/Facades/Queue.php | 29 +- .../src/Illuminate/Support/Facades/Redis.php | 4 +- .../Illuminate/Support/Facades/Request.php | 1 + .../src/Illuminate/Support/Facades/Route.php | 1 + .../Illuminate/Support/Facades/Schedule.php | 6 +- .../src/Illuminate/Support/Facades/Schema.php | 1 + .../Illuminate/Support/Facades/Session.php | 4 +- .../Illuminate/Support/Facades/Storage.php | 2 +- .../src/Illuminate/Support/Facades/Vite.php | 2 + .../src/Illuminate/Support/Fluent.php | 4 +- .../framework/src/Illuminate/Support/Js.php | 8 +- .../src/Illuminate/Support/Lottery.php | 6 +- .../src/Illuminate/Support/Manager.php | 26 +- .../src/Illuminate/Support/MessageBag.php | 28 +- .../Support/MultipleInstanceManager.php | 11 +- .../Illuminate/Support/NodePackageManager.php | 70 + .../Support/NodePackageManagers/Bun.php | 40 + .../Support/NodePackageManagers/Npm.php | 40 + .../Support/NodePackageManagers/Pnpm.php | 40 + .../Support/NodePackageManagers/Yarn.php | 40 + .../src/Illuminate/Support/Number.php | 28 +- .../src/Illuminate/Support/Optional.php | 24 +- .../Queue/Concerns/ResolvesQueueRoutes.php | 45 + .../Support/RebindsCallbacksToSelf.php | 34 + .../src/Illuminate/Support/Sleep.php | 6 +- .../framework/src/Illuminate/Support/Str.php | 91 +- .../src/Illuminate/Support/Stringable.php | 26 +- .../Support/Testing/Fakes/BatchFake.php | 11 +- .../Testing/Fakes/BatchRepositoryFake.php | 9 +- .../Support/Testing/Fakes/BusFake.php | 30 +- .../Testing/Fakes/ExceptionHandlerFake.php | 6 +- .../Support/Testing/Fakes/MailFake.php | 11 + .../Support/Testing/Fakes/QueueFake.php | 195 +- .../Support/Traits/InteractsWithData.php | 91 +- .../Illuminate/Support/Traits/Localizable.php | 6 +- .../Support/Traits/ReadsClassAttributes.php | 113 ++ .../framework/src/Illuminate/Support/Uri.php | 30 +- .../src/Illuminate/Support/ValidatedInput.php | 16 +- .../src/Illuminate/Support/composer.json | 65 +- .../src/Illuminate/Support/helpers.php | 2 +- .../Testing/Concerns/TestDatabases.php | 2 +- .../Testing/Constraints/SeeInHtml.php | 137 ++ .../Testing/Constraints/SeeInOrder.php | 2 +- .../src/Illuminate/Testing/PendingCommand.php | 3 +- .../src/Illuminate/Testing/TestComponent.php | 9 +- .../src/Illuminate/Testing/TestResponse.php | 85 +- .../src/Illuminate/Testing/TestView.php | 15 +- .../src/Illuminate/Testing/composer.json | 53 +- .../Illuminate/Translation/ArrayLoader.php | 2 +- .../src/Illuminate/Translation/FileLoader.php | 4 +- .../src/Illuminate/Translation/Translator.php | 42 +- .../src/Illuminate/Translation/composer.json | 36 +- .../Concerns/ValidatesAttributes.php | 96 +- .../Validation/NotPwnedVerifier.php | 2 +- .../src/Illuminate/Validation/Rule.php | 6 +- .../Illuminate/Validation/Rules/Contains.php | 2 +- .../Validation/Rules/DatabaseRule.php | 2 +- .../Validation/Rules/DoesntContain.php | 4 +- .../src/Illuminate/Validation/Rules/Email.php | 4 +- .../src/Illuminate/Validation/Rules/File.php | 6 +- .../src/Illuminate/Validation/Rules/In.php | 2 +- .../src/Illuminate/Validation/Rules/NotIn.php | 2 +- .../Illuminate/Validation/Rules/Password.php | 37 +- .../Validation/Rules/RequiredUnless.php | 6 +- .../Validation/ValidationException.php | 2 +- .../src/Illuminate/Validation/Validator.php | 6 +- .../src/Illuminate/Validation/composer.json | 53 +- .../View/Compilers/BladeCompiler.php | 10 +- .../Compilers/Concerns/CompilesHelpers.php | 15 + .../View/Compilers/Concerns/CompilesLoops.php | 4 +- .../Illuminate/View/ComponentAttributeBag.php | 2 +- .../src/Illuminate/View/ComponentSlot.php | 2 + .../View/Concerns/ManagesComponents.php | 2 + .../View/Concerns/ManagesStacks.php | 4 +- .../src/Illuminate/View/DynamicComponent.php | 6 +- .../src/Illuminate/View/FileViewFinder.php | 14 +- .../framework/src/Illuminate/View/View.php | 24 +- .../src/Illuminate/View/composer.json | 42 +- vendor/laravel/tinker/composer.json | 19 +- .../tinker/src/Console/TinkerCommand.php | 7 +- .../php-code-coverage/ChangeLog-11.0.md | 109 -- .../php-code-coverage/ChangeLog-12.5.md | 69 + vendor/phpunit/php-code-coverage/LICENSE | 2 +- .../phpunit/php-code-coverage/composer.json | 22 +- .../php-code-coverage/src/CodeCoverage.php | 210 ++- .../src/Data/ProcessedBranchCoverageData.php | 103 ++ .../src/Data/ProcessedClassType.php | 70 + .../src/Data/ProcessedCodeCoverageData.php | 91 +- .../Data/ProcessedFunctionCoverageData.php | 119 ++ .../src/Data/ProcessedFunctionType.php | 66 + .../src/Data/ProcessedMethodType.php | 66 + .../src/Data/ProcessedPathCoverageData.php | 74 + .../src/Data/ProcessedTraitType.php | 70 + .../src/Data/RawCodeCoverageData.php | 22 +- .../php-code-coverage/src/Driver/Driver.php | 54 +- .../src/Driver/PcovDriver.php | 7 +- .../php-code-coverage/src/Driver/Selector.php | 9 +- .../src/Driver/XdebugDriver.php | 57 +- ...DeadCodeDetectionNotSupportedException.php | 16 - .../InvalidCodeCoverageTargetException.php | 27 + .../PathExistsButIsNotDirectoryException.php | 3 +- .../WriteOperationFailedException.php | 3 +- .../XdebugVersionNotSupportedException.php | 30 + .../phpunit/php-code-coverage/src/Filter.php | 2 +- .../src/Node/AbstractNode.php | 39 +- .../php-code-coverage/src/Node/Builder.php | 36 +- .../php-code-coverage/src/Node/CrapIndex.php | 6 +- .../php-code-coverage/src/Node/Directory.php | 70 +- .../php-code-coverage/src/Node/File.php | 513 +++--- .../php-code-coverage/src/Node/Iterator.php | 26 +- .../php-code-coverage/src/Report/Clover.php | 46 +- .../src/Report/Cobertura.php | 60 +- .../php-code-coverage/src/Report/Crap4j.php | 28 +- .../src/Report/Html/Colors.php | 12 +- .../src/Report/Html/CustomCssFile.php | 4 +- .../src/Report/Html/Facade.php | 32 +- .../src/Report/Html/Renderer.php | 22 +- .../src/Report/Html/Renderer/Dashboard.php | 150 +- .../src/Report/Html/Renderer/Directory.php | 17 +- .../src/Report/Html/Renderer/File.php | 219 ++- .../Renderer/Template/css/billboard.min.css | 10 + .../Html/Renderer/Template/css/nv.d3.min.css | 1 - .../Html/Renderer/Template/css/style.css | 93 +- .../Renderer/Template/dashboard.html.dist | 306 ++-- .../Template/dashboard_branch.html.dist | 300 +-- .../Template/js/billboard.pkgd.min.js | 57 + .../Html/Renderer/Template/js/d3.min.js | 5 - .../Html/Renderer/Template/js/nv.d3.min.js | 8 - .../src/Report/OpenClover.php | 249 +++ .../php-code-coverage/src/Report/PHP.php | 2 +- .../php-code-coverage/src/Report/Text.php | 54 +- .../src/Report/Thresholds.php | 6 +- .../src/Report/Xml/BuildInformation.php | 83 +- .../src/Report/Xml/Coverage.php | 56 +- .../src/Report/Xml/Facade.php | 239 ++- .../php-code-coverage/src/Report/Xml/File.php | 62 +- .../src/Report/Xml/Method.php | 55 +- .../php-code-coverage/src/Report/Xml/Node.php | 63 +- .../src/Report/Xml/Project.php | 93 +- .../src/Report/Xml/Report.php | 117 +- .../src/Report/Xml/Source.php | 19 +- .../src/Report/Xml/Tests.php | 31 +- .../src/Report/Xml/Totals.php | 104 +- .../php-code-coverage/src/Report/Xml/Unit.php | 97 +- .../src/StaticAnalysis/CacheWarmer.php | 32 +- .../StaticAnalysis/CachingFileAnalyser.php | 184 -- .../StaticAnalysis/CachingSourceAnalyser.php | 154 ++ .../StaticAnalysis/CodeUnitFindingVisitor.php | 360 ---- .../src/StaticAnalysis/FileAnalyser.php | 63 +- .../StaticAnalysis/ParsingFileAnalyser.php | 267 --- .../StaticAnalysis/ParsingSourceAnalyser.php | 163 ++ .../src/StaticAnalysis/SourceAnalyser.php | 21 + .../StaticAnalysis/Value/AnalysisResult.php | 121 ++ .../src/StaticAnalysis/Value/Class_.php | 174 ++ .../src/StaticAnalysis/Value/Function_.php | 124 ++ .../src/StaticAnalysis/Value/Interface_.php | 109 ++ .../src/StaticAnalysis/Value/LinesOfCode.php | 67 + .../src/StaticAnalysis/Value/Method.php | 104 ++ .../src/StaticAnalysis/Value/Trait_.php | 139 ++ .../src/StaticAnalysis/Value/Visibility.php | 20 + .../AttributeParentConnectingVisitor.php | 63 + .../Visitor/CodeUnitFindingVisitor.php | 435 +++++ .../ExecutableLinesFindingVisitor.php | 62 +- .../IgnoredLinesFindingVisitor.php | 14 +- .../php-code-coverage/src/Target/Class_.php | 68 + .../src/Target/ClassesThatExtendClass.php | 68 + .../Target/ClassesThatImplementInterface.php | 68 + .../src/Target/Function_.php | 68 + .../src/Target/MapBuilder.php | 274 +++ .../php-code-coverage/src/Target/Mapper.php | 101 ++ .../php-code-coverage/src/Target/Method.php | 83 + .../src/Target/Namespace_.php | 68 + .../php-code-coverage/src/Target/Target.php | 125 ++ .../src/Target/TargetCollection.php | 70 + .../src/Target/TargetCollectionIterator.php | 57 + .../src/Target/TargetCollectionValidator.php | 39 + .../php-code-coverage/src/Target/Trait_.php | 68 + .../src/Target/ValidationFailure.php | 46 + .../src/Target/ValidationResult.php | 47 + .../src/Target/ValidationSuccess.php | 23 + .../php-code-coverage/src/Util/Filesystem.php | 2 +- .../php-code-coverage/src/Util/Percentage.php | 6 +- .../phpunit/php-code-coverage/src/Version.php | 2 +- vendor/phpunit/php-file-iterator/ChangeLog.md | 14 + vendor/phpunit/php-file-iterator/LICENSE | 2 +- .../phpunit/php-file-iterator/composer.json | 8 +- .../php-file-iterator/src/Iterator.php | 8 +- vendor/phpunit/php-invoker/ChangeLog.md | 7 + vendor/phpunit/php-invoker/LICENSE | 2 +- vendor/phpunit/php-invoker/README.md | 2 +- vendor/phpunit/php-invoker/composer.json | 8 +- ...cessControlExtensionNotLoadedException.php | 1 + vendor/phpunit/php-text-template/ChangeLog.md | 7 + vendor/phpunit/php-text-template/LICENSE | 2 +- vendor/phpunit/php-text-template/README.md | 2 +- .../phpunit/php-text-template/composer.json | 8 +- vendor/phpunit/php-timer/ChangeLog.md | 7 + vendor/phpunit/php-timer/LICENSE | 2 +- vendor/phpunit/php-timer/README.md | 2 +- vendor/phpunit/php-timer/composer.json | 8 +- .../php-timer/src/ResourceUsageFormatter.php | 2 +- vendor/phpunit/phpunit/ChangeLog-11.5.md | 519 ------ vendor/phpunit/phpunit/ChangeLog-12.5.md | 306 ++++ vendor/phpunit/phpunit/DEPRECATIONS.md | 117 +- vendor/phpunit/phpunit/README.md | 98 +- vendor/phpunit/phpunit/composer.json | 44 +- vendor/phpunit/phpunit/composer.lock | 517 +++--- vendor/phpunit/phpunit/phpunit | 4 +- vendor/phpunit/phpunit/phpunit.xsd | 19 +- vendor/phpunit/phpunit/schema/11.5.xsd | 340 ++++ vendor/phpunit/phpunit/schema/12.0.xsd | 335 ++++ vendor/phpunit/phpunit/schema/12.1.xsd | 339 ++++ vendor/phpunit/phpunit/schema/12.2.xsd | 347 ++++ vendor/phpunit/phpunit/schema/12.3.xsd | 348 ++++ vendor/phpunit/phpunit/schema/12.4.xsd | 348 ++++ .../src/Event/Emitter/DispatchingEmitter.php | 421 +++-- .../phpunit/src/Event/Emitter/Emitter.php | 184 +- .../src/Event/Events/Application/Finished.php | 6 + .../src/Event/Events/Application/Started.php | 6 + .../phpunit/src/Event/Events/Event.php | 3 + .../Event/Events/EventCollectionIterator.php | 3 + .../Test/AdditionalInformationProvided.php | 74 + ...ditionalInformationProvidedSubscriber.php} | 4 +- .../Events/Test/ComparatorRegistered.php | 12 +- .../Test/CustomTestMethodInvocationUsed.php | 64 + ...stomTestMethodInvocationUsedSubscriber.php | 20 + .../HookMethod/AfterLastTestMethodCalled.php | 12 +- .../HookMethod/AfterLastTestMethodErrored.php | 14 +- .../HookMethod/AfterLastTestMethodFailed.php | 90 + .../AfterLastTestMethodFailedSubscriber.php} | 4 +- .../AfterLastTestMethodFinished.php | 12 +- .../Test/HookMethod/AfterTestMethodCalled.php | 24 +- .../HookMethod/AfterTestMethodErrored.php | 26 +- .../Test/HookMethod/AfterTestMethodFailed.php | 80 + .../AfterTestMethodFailedSubscriber.php | 20 + .../HookMethod/AfterTestMethodFinished.php | 24 +- .../BeforeFirstTestMethodCalled.php | 12 +- .../BeforeFirstTestMethodErrored.php | 14 +- .../BeforeFirstTestMethodFailed.php | 90 + .../BeforeFirstTestMethodFailedSubscriber.php | 20 + .../BeforeFirstTestMethodFinished.php | 12 +- .../HookMethod/BeforeTestMethodCalled.php | 24 +- .../HookMethod/BeforeTestMethodErrored.php | 26 +- .../HookMethod/BeforeTestMethodFailed.php | 80 + .../BeforeTestMethodFailedSubscriber.php} | 4 +- .../HookMethod/BeforeTestMethodFinished.php | 24 +- .../Test/HookMethod/PostConditionCalled.php | 24 +- .../Test/HookMethod/PostConditionErrored.php | 26 +- .../Test/HookMethod/PostConditionFailed.php | 80 + .../PostConditionFailedSubscriber.php | 20 + .../Test/HookMethod/PostConditionFinished.php | 24 +- .../Test/HookMethod/PreConditionCalled.php | 24 +- .../Test/HookMethod/PreConditionErrored.php | 26 +- .../Test/HookMethod/PreConditionFailed.php | 80 + .../PreConditionFailedSubscriber.php} | 4 +- .../Test/HookMethod/PreConditionFinished.php | 24 +- .../Events/Test/Issue/ConsideredRisky.php | 5 + .../Test/Issue/DeprecationTriggered.php | 7 +- .../Events/Test/Issue/ErrorTriggered.php | 7 +- .../Events/Test/Issue/NoticeTriggered.php | 7 +- .../Test/Issue/PhpDeprecationTriggered.php | 7 +- .../Events/Test/Issue/PhpNoticeTriggered.php | 7 +- .../Events/Test/Issue/PhpWarningTriggered.php | 7 +- .../Issue/PhpunitDeprecationTriggered.php | 7 +- .../Test/Issue/PhpunitErrorTriggered.php | 7 +- .../Test/Issue/PhpunitNoticeTriggered.php | 81 + .../PhpunitNoticeTriggeredSubscriber.php | 20 + .../Test/Issue/PhpunitWarningTriggered.php | 25 +- .../Events/Test/Issue/WarningTriggered.php | 7 +- .../Lifecycle/DataProviderMethodCalled.php | 6 + .../Lifecycle/DataProviderMethodFinished.php | 6 + .../Event/Events/Test/Lifecycle/Finished.php | 15 + .../Test/Lifecycle/PreparationErrored.php | 72 + .../PreparationErroredSubscriber.php | 20 + .../Test/Lifecycle/PreparationFailed.php | 26 +- .../Test/Lifecycle/PreparationStarted.php | 6 + .../Event/Events/Test/Lifecycle/Prepared.php | 6 + .../src/Event/Events/Test/Outcome/Errored.php | 8 +- .../src/Event/Events/Test/Outcome/Failed.php | 8 +- .../Events/Test/Outcome/MarkedIncomplete.php | 8 +- .../src/Event/Events/Test/Outcome/Passed.php | 6 + .../src/Event/Events/Test/Outcome/Skipped.php | 8 +- .../Events/Test/PrintedUnexpectedOutput.php | 5 + .../Test/TestDouble/MockObjectCreated.php | 5 + ...jectForIntersectionOfInterfacesCreated.php | 5 + .../TestDouble/MockObjectFromWsdlCreated.php | 118 -- .../TestDouble/PartialMockObjectCreated.php | 5 + .../Test/TestDouble/TestProxyCreated.php | 66 - .../Test/TestDouble/TestStubCreated.php | 5 + ...StubForIntersectionOfInterfacesCreated.php | 5 + .../Events/TestRunner/BootstrapFinished.php | 15 + .../ChildProcessErrored.php} | 27 +- .../ChildProcessErroredSubscriber.php | 20 + .../TestRunner/ChildProcessFinished.php | 6 + .../Events/TestRunner/ChildProcessStarted.php | 6 + .../Event/Events/TestRunner/Configured.php | 6 + .../TestRunner/DeprecationTriggered.php | 15 + .../Events/TestRunner/EventFacadeSealed.php | 6 + .../Events/TestRunner/ExecutionAborted.php | 6 + .../Events/TestRunner/ExecutionFinished.php | 6 + .../Events/TestRunner/ExecutionStarted.php | 6 + .../TestRunner/ExtensionBootstrapped.php | 5 + .../TestRunner/ExtensionLoadedFromPhar.php | 31 + .../src/Event/Events/TestRunner/Finished.php | 6 + .../TestRunner/GarbageCollectionDisabled.php | 6 + .../TestRunner/GarbageCollectionEnabled.php | 6 + .../TestRunner/GarbageCollectionTriggered.php | 6 + .../NoticeTriggered.php} | 30 +- .../TestRunner/NoticeTriggeredSubscriber.php | 20 + .../src/Event/Events/TestRunner/Started.php | 6 + .../StaticAnalysisForCodeCoverageFinished.php | 80 + ...lysisForCodeCoverageFinishedSubscriber.php | 20 + .../StaticAnalysisForCodeCoverageStarted.php | 44 + ...alysisForCodeCoverageStartedSubscriber.php | 20 + .../Events/TestRunner/WarningTriggered.php | 15 + .../src/Event/Events/TestSuite/Filtered.php | 6 + .../src/Event/Events/TestSuite/Finished.php | 6 + .../src/Event/Events/TestSuite/Loaded.php | 6 + .../src/Event/Events/TestSuite/Skipped.php | 6 + .../src/Event/Events/TestSuite/Sorted.php | 6 + .../src/Event/Events/TestSuite/Started.php | 6 + vendor/phpunit/phpunit/src/Event/Facade.php | 40 +- .../phpunit/src/Event/Value/ClassMethod.php | 2 + .../src/Event/Value/ComparisonFailure.php | 3 + .../Event/Value/ComparisonFailureBuilder.php | 6 +- .../Event/Value/Runtime/OperatingSystem.php | 3 + .../phpunit/src/Event/Value/Runtime/PHP.php | 3 + .../src/Event/Value/Runtime/PHPUnit.php | 3 + .../src/Event/Value/Runtime/Runtime.php | 3 + .../Telemetry/GarbageCollectorStatus.php | 94 +- .../src/Event/Value/Telemetry/Info.php | 3 + .../Php83GarbageCollectorStatusProvider.php | 48 - .../src/Event/Value/Telemetry/Snapshot.php | 3 + .../src/Event/Value/Telemetry/System.php | 3 + ... SystemGarbageCollectorStatusProvider.php} | 20 +- .../Telemetry/SystemStopWatchWithOffset.php | 3 + .../phpunit/src/Event/Value/Test/Test.php | 2 + .../Value/Test/TestCollectionIterator.php | 3 + .../TestData/TestDataCollectionIterator.php | 3 + .../phpunit/src/Event/Value/Test/TestDox.php | 3 + .../src/Event/Value/Test/TestMethod.php | 2 + .../Event/Value/Test/TestMethodBuilder.php | 14 +- .../src/Event/Value/TestSuite/TestSuite.php | 2 + .../Value/TestSuite/TestSuiteBuilder.php | 4 +- .../Value/TestSuite/TestSuiteForTestClass.php | 2 + ...TestSuiteForTestMethodWithDataProvider.php | 2 + .../phpunit/src/Event/Value/Throwable.php | 4 +- .../phpunit/phpunit/src/Framework/Assert.php | 511 +++--- .../src/Framework/Assert/Functions.php | 112 +- .../AllowMockObjectsWithoutExpectations.php} | 11 +- .../CoversClassesThatExtendClass.php | 42 + .../CoversClassesThatImplementInterface.php | 42 + .../Framework/Attributes/CoversNamespace.php | 42 + .../src/Framework/Attributes/DataProvider.php | 11 +- .../Attributes/DataProviderExternal.php | 13 +- .../Attributes/IgnoreDeprecations.php | 18 + .../Attributes/IgnorePhpunitWarnings.php | 40 + .../RequiresEnvironmentVariable.php | 40 + .../Attributes/RunClassInSeparateProcess.php | 2 + .../Framework/Attributes/TestDoxFormatter.php | 42 + .../Attributes/TestDoxFormatterExternal.php | 57 + .../Attributes/UsesClassesThatExtendClass.php | 42 + .../UsesClassesThatImplementInterface.php | 42 + .../Framework/Attributes/UsesNamespace.php | 42 + .../Attributes/WithEnvironmentVariable.php | 49 + .../Constraint/Cardinality/IsEmpty.php | 1 + .../src/Framework/Constraint/Constraint.php | 19 +- .../src/Framework/Constraint/JsonMatches.php | 2 +- .../Constraint/Object/ObjectEquals.php | 4 + .../Constraint/Operator/BinaryOperator.php | 4 +- .../Constraint/Operator/LogicalNot.php | 50 +- .../Constraint/Operator/LogicalXor.php | 2 +- .../Framework/Constraint/String/IsJson.php | 2 +- .../Constraint/String/RegularExpression.php | 17 +- .../String/StringMatchesFormatDescription.php | 47 +- .../Traversable/TraversableContainsEqual.php | 2 +- .../Traversable/TraversableContainsOnly.php | 29 +- .../src/Framework/Constraint/Type/IsType.php | 138 +- .../src/Framework/DataProviderTestSuite.php | 2 + ...n.php => ErrorLogNotWritableException.php} | 6 +- .../src/Framework/Exception/Exception.php | 4 +- .../InvalidDataProviderException.php | 20 + .../Exception/PHPTAssertionFailedError.php | 6 +- ...ion.php => UnknownNativeTypeException.php} | 8 +- .../Framework/ExecutionOrderDependency.php | 12 +- .../{MockClass.php => DoubledClass.php} | 2 +- .../{MockMethod.php => DoubledMethod.php} | 43 +- ...MockMethodSet.php => DoubledMethodSet.php} | 8 +- .../CannotUseAddMethodsException.php | 31 - ...tion.php => ClassIsAnonymousException.php} | 4 +- ...tion.php => InvalidClassNameException.php} | 10 +- .../Exception/MethodNamedMethodException.php | 21 + .../MockObject/Generator/Generator.php | 645 ++----- .../MockObject/Generator/HookedProperty.php | 16 +- .../Generator/HookedPropertyGenerator.php | 12 +- .../MockObject/Generator/MockTrait.php | 50 - .../Generator/templates/doubled_method.tpl | 2 +- .../Generator/templates/proxied_method.tpl | 37 - .../Generator/templates/test_double_class.tpl | 4 +- .../Generator/templates/trait_class.tpl | 6 - .../Generator/templates/wsdl_class.tpl | 9 - .../Generator/templates/wsdl_method.tpl | 4 - .../src/Framework/MockObject/MockBuilder.php | 504 +----- .../Runtime/Api/ErrorCloneMethod.php | 25 - .../Runtime/Api/GeneratedAsTestStub.php | 23 - .../MockObject/Runtime/Api/Method.php | 17 +- .../MockObject/Runtime/Api/MockObjectApi.php | 39 +- .../MockObject/Runtime/Api/MutableStubApi.php | 39 - .../Runtime/Api/TestDoubleState.php | 41 +- .../MockObject/Runtime/Builder/Identity.php | 25 - .../Runtime/Builder/InvocationStubber.php | 63 - .../Runtime/Builder/MethodNameMatch.php | 26 - .../Runtime/Builder/ParametersMatch.php | 51 - .../MockObject/Runtime/Builder/Stub.php | 26 - .../Runtime/Interface/InvocationStubber.php | 122 ++ .../Runtime/Interface/MockObject.php | 5 +- .../Runtime/Interface/MockObjectInternal.php | 4 +- .../MockObject/Runtime/Interface/Stub.php | 6 +- .../Runtime/Interface/StubInternal.php | 2 - .../MockObject/Runtime/Invocation.php | 31 +- .../MockObject/Runtime/InvocationHandler.php | 45 +- ...hp => InvocationStubberImplementation.php} | 213 ++- .../Framework/MockObject/Runtime/Matcher.php | 15 +- .../Runtime/ReturnValueGenerator.php | 9 +- .../Runtime/Stub/ConsecutiveCalls.php | 2 +- .../MockObject/TestDoubleBuilder.php | 187 ++ .../Framework/MockObject/TestStubBuilder.php | 76 + .../phpunit/src/Framework/TestBuilder.php | 29 +- .../phpunit/src/Framework/TestCase.php | 896 ++++----- .../ChildProcessResultProcessor.php | 53 +- .../TestRunner/SeparateProcessTestRunner.php | 28 +- .../src/Framework/TestRunner/TestRunner.php | 123 +- .../Framework/TestRunner/templates/class.tpl | 37 +- .../Framework/TestRunner/templates/method.tpl | 37 +- .../phpunit/src/Framework/TestSuite.php | 114 +- .../phpunit/src/Logging/EventLogger.php | 10 +- .../src/Logging/JUnit/JunitXmlLogger.php | 36 +- .../TestPreparationErroredSubscriber.php | 30 + .../TestSuiteSkippedSubscriber.php} | 13 +- .../CannotOpenUriForWritingException.php} | 6 +- .../Exception}/Exception.php | 8 +- .../InfrastructureInformationProvider.php | 186 ++ .../OpenTestReporting/OtrXmlLogger.php | 472 +++++ .../OpenTestReporting/Status.php} | 15 +- .../AfterLastTestMethodErroredSubscriber.php | 30 + .../AfterLastTestMethodFailedSubscriber.php | 30 + ...BeforeFirstTestMethodErroredSubscriber.php | 30 + .../BeforeFirstTestMethodFailedSubscriber.php | 30 + .../Subscriber/Subscriber.php} | 15 +- .../Subscriber/TestAbortedSubscriber.php | 30 + .../Subscriber/TestErroredSubscriber.php} | 24 +- .../Subscriber/TestFailedSubscriber.php | 30 + .../Subscriber/TestFinishedSubscriber.php | 30 + .../TestPreparationErroredSubscriber.php | 30 + .../TestPreparationFailedSubscriber.php | 30 + .../Subscriber/TestPreparedSubscriber.php | 30 + .../TestRunnerFinishedSubscriber.php | 30 + .../TestRunnerStartedSubscriber.php | 30 + .../Subscriber/TestSkippedSubscriber.php | 30 + .../TestSuiteFinishedSubscriber.php | 30 + .../Subscriber/TestSuiteSkippedSubscriber.php | 30 + .../Subscriber/TestSuiteStartedSubscriber.php | 30 + .../OpenTestReporting/schema/core-0.2.0.xsd | 132 ++ .../OpenTestReporting/schema/events-0.2.0.xsd | 35 + .../OpenTestReporting/schema/git-0.2.0.xsd | 69 + .../Logging/OpenTestReporting/schema/otr.xsd | 7 + .../Logging/OpenTestReporting/schema/php.xsd | 15 + .../OpenTestReporting/schema/phpunit.xsd | 34 + .../TestPreparationErroredSubscriber.php | 30 + .../TestPreparationFailedSubscriber.php | 30 + .../TestPreparationStartedSubscriber.php | 30 + .../Subscriber/TestPreparedSubscriber.php | 2 +- ...eBeforeFirstTestMethodFailedSubscriber.php | 30 + .../src/Logging/TeamCity/TeamCityLogger.php | 159 +- .../src/Logging/TestDox/HtmlRenderer.php | 37 +- .../src/Logging/TestDox/NamePrettifier.php | 257 ++- .../src/Logging/TestDox/PlainTextRenderer.php | 6 +- .../TestResult/TestResultCollector.php | 44 +- vendor/phpunit/phpunit/src/Metadata/After.php | 2 +- .../phpunit/src/Metadata/AfterClass.php | 2 +- .../AllowMockObjectsWithoutExpectations.php} | 10 +- .../phpunit/src/Metadata/Api/CodeCoverage.php | 360 ++-- .../phpunit/src/Metadata/Api/DataProvider.php | 316 ++-- .../phpunit/src/Metadata/Api/Dependencies.php | 2 +- .../phpunit/src/Metadata/Api/Groups.php | 35 +- .../phpunit/src/Metadata/Api/HookMethods.php | 33 +- .../phpunit/src/Metadata/Api/ProvidedData.php | 46 + .../phpunit/src/Metadata/Api/Requirements.php | 79 +- .../phpunit/src/Metadata/BackupGlobals.php | 2 +- .../src/Metadata/BackupStaticProperties.php | 2 +- .../phpunit/phpunit/src/Metadata/Before.php | 2 +- .../phpunit/src/Metadata/BeforeClass.php | 2 +- .../phpunit/src/Metadata/CoversClass.php | 12 +- ...s.php => CoversClassesThatExtendClass.php} | 6 +- .../CoversClassesThatImplementInterface.php | 47 + .../phpunit/src/Metadata/CoversFunction.php | 10 +- .../phpunit/src/Metadata/CoversMethod.php | 12 +- .../{Uses.php => CoversNamespace.php} | 18 +- .../phpunit/src/Metadata/CoversTrait.php | 10 - .../phpunit/src/Metadata/DataProvider.php | 15 +- .../phpunit/src/Metadata/DependsOnClass.php | 2 +- .../phpunit/src/Metadata/DependsOnMethod.php | 2 +- ...otSupportedForInternalClassesException.php | 35 - .../ExcludeGlobalVariableFromBackup.php | 2 +- .../ExcludeStaticPropertyFromBackup.php | 2 +- vendor/phpunit/phpunit/src/Metadata/Group.php | 2 +- .../src/Metadata/IgnoreDeprecations.php | 22 + .../src/Metadata/IgnorePhpunitWarnings.php | 45 + .../phpunit/phpunit/src/Metadata/Metadata.php | 241 ++- .../src/Metadata/MetadataCollection.php | 94 +- .../Metadata/Parser/Annotation/DocBlock.php | 277 --- .../Metadata/Parser/Annotation/Registry.php | 100 - .../src/Metadata/Parser/AnnotationParser.php | 605 ------- .../src/Metadata/Parser/AttributeParser.php | 271 ++- .../src/Metadata/Parser/ParserChain.php | 77 - .../phpunit/src/Metadata/Parser/Registry.php | 9 +- .../phpunit/src/Metadata/PostCondition.php | 2 +- .../phpunit/src/Metadata/PreCondition.php | 2 +- .../src/Metadata/PreserveGlobalState.php | 2 +- .../Metadata/RequiresEnvironmentVariable.php | 44 + .../phpunit/src/Metadata/RequiresFunction.php | 2 +- .../phpunit/src/Metadata/RequiresMethod.php | 2 +- .../src/Metadata/RequiresOperatingSystem.php | 2 +- .../RequiresOperatingSystemFamily.php | 2 +- .../phpunit/src/Metadata/RequiresPhp.php | 2 +- .../src/Metadata/RequiresPhpExtension.php | 2 +- .../phpunit/src/Metadata/RequiresPhpunit.php | 2 +- .../phpunit/src/Metadata/RequiresSetting.php | 2 +- .../phpunit/phpunit/src/Metadata/TestDox.php | 2 +- .../phpunit/src/Metadata/TestDoxFormatter.php | 62 + .../phpunit/phpunit/src/Metadata/TestWith.php | 2 +- .../phpunit/src/Metadata/UsesClass.php | 12 +- ...ass.php => UsesClassesThatExtendClass.php} | 6 +- .../UsesClassesThatImplementInterface.php | 47 + .../phpunit/src/Metadata/UsesFunction.php | 10 +- .../phpunit/src/Metadata/UsesMethod.php | 12 +- .../{Covers.php => UsesNamespace.php} | 20 +- .../phpunit/src/Metadata/UsesTrait.php | 10 - .../Version/ComparisonRequirement.php | 5 + .../src/Metadata/Version/Requirement.php | 6 +- .../src/Metadata/WithEnvironmentVariable.php | 53 + .../Runner/BackedUpEnvironmentVariable.php | 92 + .../phpunit/src/Runner/Baseline/Baseline.php | 25 +- .../phpunit/src/Runner/Baseline/Generator.php | 8 +- .../phpunit/src/Runner/Baseline/Reader.php | 4 +- .../phpunit/src/Runner/Baseline/Writer.php | 3 - .../phpunit/src/Runner/CodeCoverage.php | 156 +- .../CodeCoverageInitializationStatus.php | 22 + .../Runner/DeprecationCollector/Collector.php | 6 - .../Runner/DeprecationCollector/Facade.php | 10 - .../phpunit/src/Runner/ErrorHandler.php | 132 +- .../src/Runner/Filter/GroupFilterIterator.php | 2 +- .../src/Runner/Filter/NameFilterIterator.php | 16 +- .../Runner/Filter/TestIdFilterIterator.php | 2 +- .../GarbageCollectionHandler.php | 10 - .../phpunit/src/Runner/IssueFilter.php | 4 - .../Exception/InvalidPhptFileException.php | 5 +- ...hptExternalFileCannotBeLoadedException.php | 5 +- .../UnsupportedPhptSectionException.php | 7 +- .../phpunit/src/Runner/PHPT/Parser.php | 223 +++ .../phpunit/src/Runner/PHPT/Renderer.php | 110 ++ .../PHPT/{PhptTestCase.php => TestCase.php} | 446 +---- .../src/Runner/PHPT/templates/phpt.tpl | 34 +- .../Runner/ResultCache/DefaultResultCache.php | 17 +- .../Runner/ResultCache/ResultCacheHandler.php | 10 - .../phpunit/src/Runner/ShutdownHandler.php | 63 + .../src/Runner/TestResult/Collector.php | 129 +- .../phpunit/src/Runner/TestResult/Facade.php | 18 - .../AfterTestClassMethodFailedSubscriber.php | 26 + .../BeforeTestClassMethodFailedSubscriber.php | 26 + .../ChildProcessErroredSubscriber.php | 25 + .../TestRunnerTriggeredNoticeSubscriber.php | 26 + .../TestTriggeredPhpunitNoticeSubscriber.php | 26 + .../src/Runner/TestResult/TestResult.php | 82 +- .../phpunit/src/Runner/TestSuiteLoader.php | 6 +- .../phpunit/src/Runner/TestSuiteSorter.php | 58 +- vendor/phpunit/phpunit/src/Runner/Version.php | 8 +- .../phpunit/src/TextUI/Application.php | 149 +- .../Command/Commands/ListGroupsCommand.php | 14 +- .../Command/Commands/ListTestFilesCommand.php | 2 +- .../Commands/ListTestSuitesCommand.php | 8 +- .../Commands/ListTestsAsTextCommand.php | 2 +- .../Commands/ListTestsAsXmlCommand.php | 2 +- .../Commands/WarmCodeCoverageCacheCommand.php | 13 +- .../phpunit/src/TextUI/Command/Result.php | 8 +- .../TextUI/Configuration/BootstrapLoader.php | 90 + .../src/TextUI/Configuration/Cli/Builder.php | 161 +- .../Configuration/Cli/Configuration.php | 185 +- .../TextUI/Configuration/Configuration.php | 170 +- .../BootstrapScriptDoesNotExistException.php | 31 + .../Exception/BootstrapScriptException.php} | 5 +- .../src/TextUI/Configuration/Merger.php | 136 +- .../src/TextUI/Configuration/PhpHandler.php | 30 +- .../TextUI/Configuration/TestSuiteBuilder.php | 18 +- .../Configuration/Value/FileCollection.php | 2 +- .../Value/FilterDirectoryCollection.php | 2 +- .../Configuration/Value/GroupCollection.php | 2 +- .../src/TextUI/Configuration/Value/Source.php | 9 +- .../Xml/CodeCoverage/CodeCoverage.php | 27 +- .../Xml/CodeCoverage/Report/OpenClover.php} | 21 +- .../Xml/CodeCoverage/Report/Xml.php | 11 +- .../Xml/DefaultConfiguration.php | 9 +- .../TextUI/Configuration/Xml/Generator.php | 3 +- .../src/TextUI/Configuration/Xml/Loader.php | 162 +- .../Configuration/Xml/Logging/Logging.php | 21 +- .../TextUI/Configuration/Xml/Logging/Otr.php | 41 + .../Xml/Migration/MigrationBuilder.php | 5 +- ...ttributesFromFilterWhitelistToCoverage.php | 2 +- .../Migrations/UpdateSchemaLocation.php | 4 +- .../Configuration/Xml/Migration/Migrator.php | 37 +- .../Xml/Migration/SnapshotNodeList.php | 2 +- .../src/TextUI/Configuration/Xml/PHPUnit.php | 42 +- .../TextUI/Configuration/Xml/SchemaFinder.php | 2 +- .../Configuration/Xml/TestSuiteMapper.php | 17 +- .../Xml/Validator/ValidationResult.php | 2 +- vendor/phpunit/phpunit/src/TextUI/Help.php | 19 +- .../ProgressPrinter/ProgressPrinter.php | 66 +- .../ChildProcessErroredSubscriber.php | 25 + .../TestTriggeredPhpunitNoticeSubscriber.php | 26 + .../TestTriggeredPhpunitWarningSubscriber.php | 2 +- .../TextUI/Output/Default/ResultPrinter.php | 86 +- .../Default/UnexpectedOutputPrinter.php | 6 - .../phpunit/src/TextUI/Output/Facade.php | 20 +- .../src/TextUI/Output/SummaryPrinter.php | 1 + .../TextUI/Output/TestDox/ResultPrinter.php | 41 +- .../src/TextUI/ShellExitCodeCalculator.php | 20 +- vendor/phpunit/phpunit/src/Util/Color.php | 22 +- .../phpunit/phpunit/src/Util/ExcludeList.php | 19 +- vendor/phpunit/phpunit/src/Util/Exporter.php | 12 +- vendor/phpunit/phpunit/src/Util/Filter.php | 15 +- .../phpunit/phpunit/src/Util/GlobalState.php | 89 +- .../phpunit/src/Util/GlobalStateResult.php | 57 + vendor/phpunit/phpunit/src/Util/Json.php | 15 +- .../phpunit/src/Util/PHP/JobRunner.php | 111 +- .../src/Util/PHP/JobRunnerRegistry.php | 7 +- vendor/phpunit/phpunit/src/Util/Sanitizer.php | 39 + .../src/Util/ThrowableToStringMapper.php | 4 +- .../phpunit/phpunit/src/Util/Xml/Loader.php | 31 +- vendor/sebastian/cli-parser/ChangeLog.md | 26 + vendor/sebastian/cli-parser/LICENSE | 2 +- vendor/sebastian/cli-parser/README.md | 2 +- vendor/sebastian/cli-parser/composer.json | 8 +- vendor/sebastian/cli-parser/src/Parser.php | 77 +- .../exceptions/AmbiguousOptionException.php | 9 +- .../src/exceptions/UnknownOptionException.php | 24 +- .../code-unit-reverse-lookup/ChangeLog.md | 59 - .../code-unit-reverse-lookup/LICENSE | 29 - .../code-unit-reverse-lookup/README.md | 21 - .../code-unit-reverse-lookup/SECURITY.md | 30 - .../code-unit-reverse-lookup/composer.json | 40 - .../code-unit-reverse-lookup/src/Wizard.php | 132 -- vendor/sebastian/code-unit/ChangeLog.md | 106 -- vendor/sebastian/code-unit/LICENSE | 29 - vendor/sebastian/code-unit/README.md | 24 - vendor/sebastian/code-unit/SECURITY.md | 30 - vendor/sebastian/code-unit/composer.json | 52 - .../code-unit/src/ClassMethodUnit.php | 21 - vendor/sebastian/code-unit/src/ClassUnit.php | 21 - vendor/sebastian/code-unit/src/CodeUnit.php | 528 ------ .../code-unit/src/CodeUnitCollection.php | 75 - .../src/CodeUnitCollectionIterator.php | 54 - vendor/sebastian/code-unit/src/FileUnit.php | 21 - .../sebastian/code-unit/src/FunctionUnit.php | 21 - .../code-unit/src/InterfaceMethodUnit.php | 21 - .../sebastian/code-unit/src/InterfaceUnit.php | 21 - vendor/sebastian/code-unit/src/Mapper.php | 202 --- .../code-unit/src/TraitMethodUnit.php | 21 - vendor/sebastian/code-unit/src/TraitUnit.php | 21 - .../exceptions/InvalidCodeUnitException.php | 16 - .../src/exceptions/NoTraitException.php | 16 - vendor/sebastian/comparator/ChangeLog.md | 116 ++ vendor/sebastian/comparator/LICENSE | 2 +- vendor/sebastian/comparator/composer.json | 12 +- .../comparator/src/ArrayComparator.php | 192 +- .../comparator/src/ClosureComparator.php | 111 ++ .../sebastian/comparator/src/Comparator.php | 3 + .../comparator/src/ComparisonFailure.php | 31 +- .../comparator/src/DOMNodeComparator.php | 79 +- .../comparator/src/DateTimeComparator.php | 15 + .../comparator/src/EnumerationComparator.php | 5 + .../comparator/src/ExceptionComparator.php | 4 +- vendor/sebastian/comparator/src/Factory.php | 6 + .../comparator/src/MockObjectComparator.php | 4 +- .../comparator/src/NumberComparator.php | 10 +- .../comparator/src/NumericComparator.php | 5 + .../comparator/src/ObjectComparator.php | 5 + .../comparator/src/ResourceComparator.php | 6 + .../comparator/src/ScalarComparator.php | 18 +- .../src/SplObjectStorageComparator.php | 5 + .../comparator/src/TypeComparator.php | 7 +- .../comparator/src/exceptions/Exception.php | 3 + .../src/exceptions/RuntimeException.php | 3 + vendor/sebastian/complexity/ChangeLog.md | 7 + vendor/sebastian/complexity/LICENSE | 2 +- vendor/sebastian/complexity/README.md | 2 +- vendor/sebastian/complexity/composer.json | 8 +- .../sebastian/complexity/src/Calculator.php | 1 - .../src/Complexity/ComplexityCollection.php | 2 +- .../Visitor/ComplexityCalculatingVisitor.php | 9 +- ...CyclomaticComplexityCalculatingVisitor.php | 4 +- vendor/sebastian/diff/ChangeLog.md | 15 +- vendor/sebastian/diff/LICENSE | 2 +- vendor/sebastian/diff/README.md | 80 +- vendor/sebastian/diff/composer.json | 10 +- vendor/sebastian/diff/src/Chunk.php | 6 - vendor/sebastian/diff/src/Differ.php | 16 +- vendor/sebastian/diff/src/Line.php | 6 +- ...ientLongestCommonSubsequenceCalculator.php | 1 - .../src/Output/AbstractChunkOutputBuilder.php | 2 + .../diff/src/Output/DiffOnlyOutputBuilder.php | 4 + .../Output/StrictUnifiedDiffOutputBuilder.php | 5 + .../src/Output/UnifiedDiffOutputBuilder.php | 4 + vendor/sebastian/diff/src/Parser.php | 4 + ...ientLongestCommonSubsequenceCalculator.php | 1 - vendor/sebastian/environment/ChangeLog.md | 56 + vendor/sebastian/environment/LICENSE | 2 +- vendor/sebastian/environment/composer.json | 8 +- vendor/sebastian/environment/src/Console.php | 49 +- vendor/sebastian/environment/src/Runtime.php | 253 ++- vendor/sebastian/exporter/ChangeLog.md | 27 +- vendor/sebastian/exporter/LICENSE | 2 +- vendor/sebastian/exporter/composer.json | 10 +- vendor/sebastian/exporter/src/Exporter.php | 82 +- vendor/sebastian/global-state/ChangeLog.md | 28 + vendor/sebastian/global-state/LICENSE | 2 +- vendor/sebastian/global-state/README.md | 2 +- vendor/sebastian/global-state/composer.json | 12 +- .../global-state/src/CodeExporter.php | 6 +- .../sebastian/global-state/src/Restorer.php | 10 +- .../sebastian/global-state/src/Snapshot.php | 38 +- vendor/sebastian/lines-of-code/ChangeLog.md | 14 + vendor/sebastian/lines-of-code/LICENSE | 2 +- vendor/sebastian/lines-of-code/README.md | 2 +- vendor/sebastian/lines-of-code/composer.json | 10 +- .../sebastian/lines-of-code/src/Counter.php | 3 +- .../src/Exception/NegativeValueException.php | 16 - .../lines-of-code/src/LineCountingVisitor.php | 14 +- .../lines-of-code/src/LinesOfCode.php | 21 - .../sebastian/object-enumerator/ChangeLog.md | 7 + vendor/sebastian/object-enumerator/LICENSE | 2 +- vendor/sebastian/object-enumerator/README.md | 2 +- .../sebastian/object-enumerator/composer.json | 12 +- .../sebastian/object-reflector/ChangeLog.md | 7 + vendor/sebastian/object-reflector/LICENSE | 2 +- vendor/sebastian/object-reflector/README.md | 2 +- .../sebastian/object-reflector/composer.json | 8 +- .../sebastian/recursion-context/ChangeLog.md | 14 + .../sebastian/recursion-context/composer.json | 8 +- .../recursion-context/src/Context.php | 2 +- vendor/sebastian/type/ChangeLog.md | 35 + vendor/sebastian/type/LICENSE | 2 +- vendor/sebastian/type/composer.json | 9 +- .../type/src/type/IntersectionType.php | 2 +- vendor/sebastian/type/src/type/ObjectType.php | 24 +- vendor/sebastian/type/src/type/SimpleType.php | 8 +- vendor/sebastian/type/src/type/Type.php | 20 +- vendor/sebastian/type/src/type/UnionType.php | 2 +- vendor/sebastian/version/ChangeLog.md | 7 + vendor/sebastian/version/LICENSE | 2 +- vendor/sebastian/version/composer.json | 6 +- vendor/sebastian/version/src/Version.php | 9 +- vendor/symfony/console/Application.php | 102 +- .../ArgumentResolver/ArgumentResolver.php | 163 ++ .../ArgumentResolverInterface.php | 33 + .../NearMissValueResolverException.php | 21 + .../Exception/ResolverNotFoundException.php | 33 + .../TraceableArgumentResolver.php | 38 + .../ValueResolver/BackedEnumValueResolver.php | 90 + .../BuiltinTypeValueResolver.php | 75 + .../ValueResolver/DateTimeValueResolver.php | 101 ++ .../ValueResolver/DefaultValueResolver.php | 37 + .../ValueResolver/InputFileValueResolver.php | 60 + .../ValueResolver/MapInputValueResolver.php | 128 ++ .../ValueResolver/ServiceValueResolver.php | 81 + .../ValueResolver/TraceableValueResolver.php | 40 + .../ValueResolver/UidValueResolver.php | 87 + .../ValueResolver/ValueResolverInterface.php | 30 + .../ValueResolver/VariadicValueResolver.php | 54 + vendor/symfony/console/Attribute/Argument.php | 40 +- .../symfony/console/Attribute/AsCommand.php | 6 +- .../Attribute/AsTargetedValueResolver.php | 26 + vendor/symfony/console/Attribute/Ask.php | 36 +- .../symfony/console/Attribute/AskChoice.php | 140 ++ vendor/symfony/console/Attribute/Interact.php | 4 +- .../symfony/console/Attribute/MapDateTime.php | 36 + vendor/symfony/console/Attribute/MapInput.php | 100 +- vendor/symfony/console/Attribute/Option.php | 62 +- .../Attribute/Reflection/ReflectionMember.php | 34 +- .../console/Attribute/ValueResolver.php | 31 + vendor/symfony/console/CHANGELOG.md | 37 + vendor/symfony/console/Command/Command.php | 109 +- .../console/Command/InvokableCommand.php | 96 +- .../console/Command/TraceableCommand.php | 2 +- vendor/symfony/console/ConsoleBundle.php | 95 + vendor/symfony/console/ConsoleEvents.php | 10 + .../AddConsoleCommandPass.php | 243 +-- .../ConsoleArgumentValueResolverPass.php | 69 + .../RegisterCommandArgumentLocatorsPass.php | 190 ++ ...RemoveEmptyCommandArgumentLocatorsPass.php | 61 + .../console/Event/QuestionAnsweredEvent.php | 45 + .../ValidateQuestionInputListener.php | 44 + .../InputValidationFailedException.php | 32 + .../Exception/InvalidFileException.php} | 11 +- .../console/Helper/FileInputHelper.php | 223 +++ vendor/symfony/console/Helper/Helper.php | 22 +- vendor/symfony/console/Helper/ProgressBar.php | 122 +- .../console/Helper/ProgressIndicator.php | 9 +- .../symfony/console/Helper/QuestionHelper.php | 64 +- vendor/symfony/console/Helper/Table.php | 54 +- .../symfony/console/Input/File/InputFile.php | 270 +++ vendor/symfony/console/Input/Input.php | 36 +- .../symfony/console/Input/InputArgument.php | 20 +- vendor/symfony/console/Input/InputOption.php | 26 +- .../console/Input/RawInputInterface.php | 56 + .../console/Interaction/Interaction.php | 4 +- .../symfony/console/Output/CombinedOutput.php | 107 ++ .../console/Output/OutputInterface.php | 14 +- vendor/symfony/console/Output/TestOutput.php | 174 ++ .../symfony/console/Question/FileQuestion.php | 46 + vendor/symfony/console/Question/Question.php | 28 +- vendor/symfony/console/README.md | 7 +- .../console/Resources/config/console.php | 89 + vendor/symfony/console/Style/OutputStyle.php | 3 +- vendor/symfony/console/Style/SymfonyStyle.php | 137 +- vendor/symfony/console/Terminal.php | 64 +- .../console/Terminal/Image/ITerm2Protocol.php | 103 ++ .../Terminal/Image/ImageProtocolInterface.php | 33 + .../Terminal/Image/KittyGraphicsProtocol.php | 134 ++ .../symfony/console/Tester/CommandTester.php | 104 +- .../console/Tester/ConsoleAssertionsTrait.php | 64 + .../Tester/Constraint/CommandFailed.php | 43 + .../Tester/Constraint/CommandIsInvalid.php | 43 + .../console/Tester/ExecutionResult.php | 99 + vendor/symfony/console/Tester/TesterTrait.php | 12 + vendor/symfony/console/composer.json | 40 +- vendor/symfony/error-handler/CHANGELOG.md | 7 + .../error-handler/DebugClassLoader.php | 129 +- .../Error/MaxExecutionTimeError.php | 23 + .../error-handler/Error/OutOfMemoryError.php | 7 + vendor/symfony/error-handler/ErrorHandler.php | 38 +- .../ErrorRenderer/HtmlErrorRenderer.php | 18 +- vendor/symfony/error-handler/README.md | 10 + vendor/symfony/error-handler/composer.json | 13 +- vendor/symfony/finder/CHANGELOG.md | 5 + vendor/symfony/finder/Finder.php | 19 + vendor/symfony/finder/README.md | 10 + vendor/symfony/finder/composer.json | 4 +- .../http-foundation/BinaryFileResponse.php | 15 +- vendor/symfony/http-foundation/CHANGELOG.md | 22 + vendor/symfony/http-foundation/InputBag.php | 24 +- vendor/symfony/http-foundation/IpUtils.php | 5 +- .../symfony/http-foundation/ParameterBag.php | 8 +- vendor/symfony/http-foundation/README.md | 10 + vendor/symfony/http-foundation/Request.php | 382 ++-- vendor/symfony/http-foundation/Response.php | 44 +- .../http-foundation/ResponseHeaderBag.php | 6 +- .../Storage/Handler/PdoSessionHandler.php | 11 +- .../Session/Storage/NativeSessionStorage.php | 25 +- .../Constraint/SessionHasFlashMessage.php | 78 + vendor/symfony/http-foundation/UriSigner.php | 12 +- vendor/symfony/http-foundation/composer.json | 21 +- .../symfony/http-kernel/Attribute/Cache.php | 40 +- .../http-kernel/Attribute/MapQueryString.php | 14 +- .../Attribute/MapRequestHeader.php | 32 + .../Attribute/MapRequestPayload.php | 18 +- .../http-kernel/Attribute/RateLimit.php | 50 + .../http-kernel/Attribute/Serialize.php | 33 + .../http-kernel/Bundle/AbstractBundle.php | 36 +- vendor/symfony/http-kernel/Bundle/Bundle.php | 76 +- .../http-kernel/Bundle/BundleAdapter.php | 70 + .../http-kernel/Bundle/BundleExtension.php | 67 - .../http-kernel/Bundle/BundleInterface.php | 55 +- vendor/symfony/http-kernel/CHANGELOG.md | 44 + .../http-kernel/Config/FileLocator.php | 25 +- .../BackedEnumValueResolver.php | 20 +- .../RequestAttributeValueResolver.php | 50 +- .../RequestHeaderValueResolver.php | 64 + .../RequestPayloadValueResolver.php | 112 +- .../DataCollector/DataCollector.php | 68 +- .../DataCollector/DataCollectorInterface.php | 8 +- .../DataCollector/DumpDataCollector.php | 24 + .../LateDataCollectorInterface.php | 4 +- .../DataCollector/RequestDataCollector.php | 60 + .../AddAnnotatedClassesToCachePass.php | 144 -- .../ConfigurableExtension.php | 1 + .../ControllerAttributesListenerPass.php | 58 + .../DependencyInjection/Extension.php | 33 +- .../MergeExtensionConfigurationPass.php | 23 +- .../ResettableServicePass.php | 52 +- .../DependencyInjection/ServicesResetter.php | 43 +- .../ServicesResetterInterface.php | 8 +- .../Event/ControllerArgumentsEvent.php | 26 +- .../Event/ControllerArgumentsMetadata.php | 50 + .../Event/ControllerAttributeEvent.php | 83 + .../http-kernel/Event/ControllerEvent.php | 107 +- .../http-kernel/Event/ControllerMetadata.php | 54 + .../http-kernel/Event/ExceptionEvent.php | 1 + .../http-kernel/Event/FinishRequestEvent.php | 11 + .../http-kernel/Event/ResponseEvent.php | 1 + .../symfony/http-kernel/Event/ViewEvent.php | 27 +- .../EventListener/CacheAttributeListener.php | 284 +-- .../ControllerAttributesListener.php | 126 ++ .../EventListener/DumpListener.php | 6 +- .../EventListener/ErrorListener.php | 10 +- .../IsSignatureValidAttributeListener.php | 45 +- .../EventListener/LocaleListener.php | 2 +- .../EventListener/ProfilerListener.php | 3 +- .../RateLimitAttributeListener.php | 73 + ...alizeControllerResultAttributeListener.php | 88 + .../symfony/http-kernel/HttpClientKernel.php | 21 +- vendor/symfony/http-kernel/HttpKernel.php | 37 +- vendor/symfony/http-kernel/Kernel.php | 676 +------ .../symfony/http-kernel/KernelInterface.php | 96 +- .../Profiler/FileProfilerStorage.php | 9 +- .../symfony/http-kernel/Profiler/Profile.php | 32 +- .../symfony/http-kernel/Profiler/Profiler.php | 12 + .../Profiler/ProfilerStorageInterface.php | 2 + vendor/symfony/http-kernel/README.md | 10 + vendor/symfony/http-kernel/composer.json | 74 +- vendor/symfony/mailer/CHANGELOG.md | 5 + vendor/symfony/mailer/README.md | 3 + .../mailer/Test/TransportFactoryTestCase.php | 67 - .../mailer/Transport/RoundRobinTransport.php | 4 +- vendor/symfony/mailer/composer.json | 20 +- vendor/symfony/mime/CHANGELOG.md | 5 + vendor/symfony/mime/Part/AbstractPart.php | 45 +- vendor/symfony/mime/Part/DataPart.php | 125 +- vendor/symfony/mime/Part/SMimePart.php | 121 +- vendor/symfony/mime/Part/TextPart.php | 134 +- vendor/symfony/mime/README.md | 10 + vendor/symfony/mime/composer.json | 17 +- vendor/symfony/polyfill-php83/Php83.php | 205 --- vendor/symfony/polyfill-php83/README.md | 22 - .../Resources/stubs/DateError.php | 16 - .../stubs/DateInvalidOperationException.php | 16 - .../DateMalformedIntervalStringException.php | 16 - .../DateMalformedPeriodStringException.php | 16 - .../stubs/DateMalformedStringException.php | 16 - .../Resources/stubs/DateObjectError.php | 16 - .../Resources/stubs/DateRangeError.php | 16 - .../Resources/stubs/Override.php | 20 - .../Resources/stubs/SQLite3Exception.php | 16 - vendor/symfony/polyfill-php83/bootstrap.php | 54 - vendor/symfony/polyfill-php83/bootstrap72.php | 19 - vendor/symfony/polyfill-php83/bootstrap81.php | 40 - .../LICENSE | 2 +- vendor/symfony/polyfill-php86/Php86.php | 78 + vendor/symfony/polyfill-php86/README.md | 16 + .../Resources/stubs/SortDirection.php} | 6 +- vendor/symfony/polyfill-php86/bootstrap.php | 43 + vendor/symfony/polyfill-php86/bootstrap80.php | 31 + .../composer.json | 6 +- vendor/symfony/process/PhpProcess.php | 13 +- vendor/symfony/process/PhpSubprocess.php | 14 +- vendor/symfony/process/Process.php | 41 +- vendor/symfony/process/README.md | 10 + vendor/symfony/process/composer.json | 2 +- vendor/symfony/routing/Annotation/Route.php | 26 - .../routing/Attribute/DeprecatedAlias.php | 24 - vendor/symfony/routing/Attribute/Route.php | 175 -- vendor/symfony/routing/CHANGELOG.md | 15 + .../routing/Generator/UrlGenerator.php | 3 +- .../routing/Loader/AttributeClassLoader.php | 31 +- .../Configurator/CollectionConfigurator.php | 18 +- .../routing/Loader/ContentLoaderTrait.php | 249 +++ .../symfony/routing/Loader/PhpFileLoader.php | 33 +- .../symfony/routing/Loader/XmlFileLoader.php | 470 ----- .../symfony/routing/Loader/YamlFileLoader.php | 204 +-- vendor/symfony/routing/README.md | 3 + vendor/symfony/routing/Route.php | 37 +- vendor/symfony/routing/composer.json | 19 +- vendor/symfony/uid/AbstractUid.php | 8 +- vendor/symfony/uid/CHANGELOG.md | 12 + .../Exception/InvalidArgumentException.php | 13 + vendor/symfony/uid/README.md | 10 + vendor/symfony/uid/Ulid.php | 84 +- vendor/symfony/uid/Uuid.php | 8 +- vendor/symfony/uid/Uuid47Transformer.php | 114 ++ vendor/symfony/uid/composer.json | 4 +- vendor/symfony/var-dumper/CHANGELOG.md | 6 + .../var-dumper/Caster/AddressInfoCaster.php | 2 +- .../symfony/var-dumper/Caster/AmqpCaster.php | 2 +- vendor/symfony/var-dumper/Caster/Caster.php | 6 +- .../var-dumper/Caster/ClassDumpStub.php | 45 + .../symfony/var-dumper/Caster/DOMCaster.php | 2 +- .../symfony/var-dumper/Caster/DateCaster.php | 2 +- .../var-dumper/Caster/DoctrineCaster.php | 2 +- .../var-dumper/Caster/ExceptionCaster.php | 2 +- .../symfony/var-dumper/Caster/GmpCaster.php | 2 +- .../var-dumper/Caster/ImagineCaster.php | 2 +- .../symfony/var-dumper/Caster/IntlCaster.php | 2 +- .../var-dumper/Caster/MemcachedCaster.php | 2 +- .../symfony/var-dumper/Caster/PdoCaster.php | 2 +- .../symfony/var-dumper/Caster/PgSqlCaster.php | 6 +- .../var-dumper/Caster/ProxyManagerCaster.php | 2 +- .../var-dumper/Caster/RdKafkaCaster.php | 2 +- .../symfony/var-dumper/Caster/RedisCaster.php | 2 +- .../var-dumper/Caster/ReflectionCaster.php | 7 +- .../var-dumper/Caster/ResourceCaster.php | 39 +- .../var-dumper/Caster/SocketCaster.php | 20 +- .../symfony/var-dumper/Caster/SplCaster.php | 2 +- .../symfony/var-dumper/Caster/StubCaster.php | 15 +- .../var-dumper/Caster/SymfonyCaster.php | 9 +- .../symfony/var-dumper/Caster/UuidCaster.php | 2 +- .../var-dumper/Caster/XmlReaderCaster.php | 2 +- .../var-dumper/Caster/XmlResourceCaster.php | 2 +- .../var-dumper/Cloner/AbstractCloner.php | 3 +- .../symfony/var-dumper/Cloner/VarCloner.php | 8 + .../var-dumper/Dumper/DataDumperInterface.php | 5 +- .../symfony/var-dumper/Dumper/HtmlDumper.php | 63 +- vendor/symfony/var-dumper/README.md | 10 + .../var-dumper/Resources/bin/var-dump-server | 9 +- .../symfony/var-dumper/Server/DumpServer.php | 3 + .../var-dumper/Test/VarDumperTestTrait.php | 10 +- vendor/symfony/var-dumper/composer.json | 16 +- .../theseer/tokenizer/.php-cs-fixer.dist.php | 217 +++ vendor/theseer/tokenizer/CHANGELOG.md | 37 +- vendor/theseer/tokenizer/composer.json | 2 +- vendor/theseer/tokenizer/src/NamespaceUri.php | 8 +- vendor/theseer/tokenizer/src/Token.php | 1 - .../theseer/tokenizer/src/TokenCollection.php | 27 +- vendor/theseer/tokenizer/src/Tokenizer.php | 31 +- .../theseer/tokenizer/src/XMLSerializer.php | 31 +- .../PhpdocSingleLineVarFixer.php | 74 + 1606 files changed, 49071 insertions(+), 24352 deletions(-) create mode 100644 vendor/brick/math/README.md create mode 100644 vendor/brick/math/codecov.yml create mode 100644 vendor/brick/math/src/Exception/InvalidArgumentException.php create mode 100644 vendor/brick/math/src/Exception/NoInverseException.php create mode 100644 vendor/brick/math/src/Exception/RandomSourceException.php create mode 100644 vendor/brick/math/src/Exception/UnsupportedPlatformException.php create mode 100644 vendor/brick/math/src/Internal/DecimalHelper.php create mode 100644 vendor/brick/math/src/Internal/Safe.php delete mode 100644 vendor/laravel/framework/pint.json create mode 100644 vendor/laravel/framework/src/Illuminate/Bus/DebounceLock.php create mode 100644 vendor/laravel/framework/src/Illuminate/Bus/Events/BatchStarted.php create mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushFailed.php create mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushed.php create mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushing.php create mode 100644 vendor/laravel/framework/src/Illuminate/Cache/StorageStore.php create mode 100644 vendor/laravel/framework/src/Illuminate/Console/Attributes/Aliases.php create mode 100644 vendor/laravel/framework/src/Illuminate/Console/Attributes/Description.php create mode 100644 vendor/laravel/framework/src/Illuminate/Console/Attributes/Help.php create mode 100644 vendor/laravel/framework/src/Illuminate/Console/Attributes/Hidden.php create mode 100644 vendor/laravel/framework/src/Illuminate/Console/Attributes/Signature.php create mode 100644 vendor/laravel/framework/src/Illuminate/Console/Attributes/Usage.php create mode 100644 vendor/laravel/framework/src/Illuminate/Console/CommandInput.php create mode 100644 vendor/laravel/framework/src/Illuminate/Console/Events/SchedulePaused.php create mode 100644 vendor/laravel/framework/src/Illuminate/Console/Events/ScheduleResumed.php create mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/SchedulePauseCommand.php create mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleResumeCommand.php create mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cache/CanFlushLocks.php create mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Events/ShouldBeDiscovered.php create mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/Interruptible.php create mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/PreparesForDispatch.php create mode 100644 vendor/laravel/framework/src/Illuminate/Database/Connectors/Concerns/ConfiguresPooledConnections.php create mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Concerns/InteractsWithPooledConnections.php create mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Appends.php create mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Connection.php create mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/DateFormat.php create mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Fillable.php create mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Guarded.php create mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Hidden.php create mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Table.php create mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Touches.php create mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Unguarded.php create mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Visible.php create mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/WithoutIncrementing.php create mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/WithoutTimestamps.php create mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factories/Attributes/UseModel.php create mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelInfo.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/ArrayMaintenanceMode.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Cloud/JsonFormatter.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/DevCommand.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/DevListCommand.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/DevCommand.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/DevCommandColor.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/DevCommands.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Attributes/ErrorBag.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Attributes/FailOnUnknownFields.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Attributes/RedirectTo.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Attributes/RedirectToRoute.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Attributes/StopOnFirstFailure.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestForgery.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/Seed.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/Seeder.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/SetUp.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/TearDown.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/UnitTest.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/ViteFonts.php create mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/components/previous-exceptions.blade.php create mode 100644 vendor/laravel/framework/src/Illuminate/Http/Exceptions/OriginMismatchException.php create mode 100644 vendor/laravel/framework/src/Illuminate/Http/Middleware/PrefersJsonResponses.php create mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/Attributes/Collects.php create mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/Attributes/PreserveKeys.php create mode 100644 vendor/laravel/framework/src/Illuminate/JsonSchema/Types/AnyOfType.php create mode 100644 vendor/laravel/framework/src/Illuminate/Log/Formatters/JsonFormatter.php create mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Transport/CloudflareTransport.php rename vendor/laravel/framework/src/Illuminate/Pagination/resources/views/{default.blade.php => bootstrap-3.blade.php} (100%) rename vendor/laravel/framework/src/Illuminate/Pagination/resources/views/{simple-default.blade.php => simple-bootstrap-3.blade.php} (100%) create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Attributes/Backoff.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Attributes/Connection.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Attributes/DebounceFor.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Attributes/Delay.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Attributes/FailOnTimeout.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Attributes/MaxExceptions.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Attributes/Queue.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Attributes/ReadsQueueAttributes.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Attributes/Timeout.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Attributes/Tries.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Attributes/UniqueFor.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/JobDebounced.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/WorkerIdle.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/WorkerInterrupted.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/WorkerPausing.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/WorkerResuming.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Jobs/InspectedJob.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Middleware/Release.php create mode 100644 vendor/laravel/framework/src/Illuminate/Queue/QueueRoutes.php create mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Attributes/Controllers/Authorize.php create mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Attributes/Controllers/Middleware.php create mode 100644 vendor/laravel/framework/src/Illuminate/Support/Contracts/NodePackageManager.php create mode 100644 vendor/laravel/framework/src/Illuminate/Support/NodePackageManager.php create mode 100644 vendor/laravel/framework/src/Illuminate/Support/NodePackageManagers/Bun.php create mode 100644 vendor/laravel/framework/src/Illuminate/Support/NodePackageManagers/Npm.php create mode 100644 vendor/laravel/framework/src/Illuminate/Support/NodePackageManagers/Pnpm.php create mode 100644 vendor/laravel/framework/src/Illuminate/Support/NodePackageManagers/Yarn.php create mode 100644 vendor/laravel/framework/src/Illuminate/Support/Queue/Concerns/ResolvesQueueRoutes.php create mode 100644 vendor/laravel/framework/src/Illuminate/Support/RebindsCallbacksToSelf.php create mode 100644 vendor/laravel/framework/src/Illuminate/Support/Traits/ReadsClassAttributes.php create mode 100644 vendor/laravel/framework/src/Illuminate/Testing/Constraints/SeeInHtml.php delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-11.0.md create mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-12.5.md create mode 100644 vendor/phpunit/php-code-coverage/src/Data/ProcessedBranchCoverageData.php create mode 100644 vendor/phpunit/php-code-coverage/src/Data/ProcessedClassType.php create mode 100644 vendor/phpunit/php-code-coverage/src/Data/ProcessedFunctionCoverageData.php create mode 100644 vendor/phpunit/php-code-coverage/src/Data/ProcessedFunctionType.php create mode 100644 vendor/phpunit/php-code-coverage/src/Data/ProcessedMethodType.php create mode 100644 vendor/phpunit/php-code-coverage/src/Data/ProcessedPathCoverageData.php create mode 100644 vendor/phpunit/php-code-coverage/src/Data/ProcessedTraitType.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php create mode 100644 vendor/phpunit/php-code-coverage/src/Exception/InvalidCodeCoverageTargetException.php create mode 100644 vendor/phpunit/php-code-coverage/src/Exception/XdebugVersionNotSupportedException.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/billboard.min.css delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/billboard.pkgd.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/nv.d3.min.js create mode 100644 vendor/phpunit/php-code-coverage/src/Report/OpenClover.php delete mode 100644 vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php create mode 100644 vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingSourceAnalyser.php delete mode 100644 vendor/phpunit/php-code-coverage/src/StaticAnalysis/CodeUnitFindingVisitor.php delete mode 100644 vendor/phpunit/php-code-coverage/src/StaticAnalysis/ParsingFileAnalyser.php create mode 100644 vendor/phpunit/php-code-coverage/src/StaticAnalysis/ParsingSourceAnalyser.php create mode 100644 vendor/phpunit/php-code-coverage/src/StaticAnalysis/SourceAnalyser.php create mode 100644 vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/AnalysisResult.php create mode 100644 vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Class_.php create mode 100644 vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Function_.php create mode 100644 vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Interface_.php create mode 100644 vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/LinesOfCode.php create mode 100644 vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Method.php create mode 100644 vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Trait_.php create mode 100644 vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Visibility.php create mode 100644 vendor/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/AttributeParentConnectingVisitor.php create mode 100644 vendor/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/CodeUnitFindingVisitor.php rename vendor/phpunit/php-code-coverage/src/StaticAnalysis/{ => Visitor}/ExecutableLinesFindingVisitor.php (91%) rename vendor/phpunit/php-code-coverage/src/StaticAnalysis/{ => Visitor}/IgnoredLinesFindingVisitor.php (94%) create mode 100644 vendor/phpunit/php-code-coverage/src/Target/Class_.php create mode 100644 vendor/phpunit/php-code-coverage/src/Target/ClassesThatExtendClass.php create mode 100644 vendor/phpunit/php-code-coverage/src/Target/ClassesThatImplementInterface.php create mode 100644 vendor/phpunit/php-code-coverage/src/Target/Function_.php create mode 100644 vendor/phpunit/php-code-coverage/src/Target/MapBuilder.php create mode 100644 vendor/phpunit/php-code-coverage/src/Target/Mapper.php create mode 100644 vendor/phpunit/php-code-coverage/src/Target/Method.php create mode 100644 vendor/phpunit/php-code-coverage/src/Target/Namespace_.php create mode 100644 vendor/phpunit/php-code-coverage/src/Target/Target.php create mode 100644 vendor/phpunit/php-code-coverage/src/Target/TargetCollection.php create mode 100644 vendor/phpunit/php-code-coverage/src/Target/TargetCollectionIterator.php create mode 100644 vendor/phpunit/php-code-coverage/src/Target/TargetCollectionValidator.php create mode 100644 vendor/phpunit/php-code-coverage/src/Target/Trait_.php create mode 100644 vendor/phpunit/php-code-coverage/src/Target/ValidationFailure.php create mode 100644 vendor/phpunit/php-code-coverage/src/Target/ValidationResult.php create mode 100644 vendor/phpunit/php-code-coverage/src/Target/ValidationSuccess.php delete mode 100644 vendor/phpunit/phpunit/ChangeLog-11.5.md create mode 100644 vendor/phpunit/phpunit/ChangeLog-12.5.md create mode 100644 vendor/phpunit/phpunit/schema/11.5.xsd create mode 100644 vendor/phpunit/phpunit/schema/12.0.xsd create mode 100644 vendor/phpunit/phpunit/schema/12.1.xsd create mode 100644 vendor/phpunit/phpunit/schema/12.2.xsd create mode 100644 vendor/phpunit/phpunit/schema/12.3.xsd create mode 100644 vendor/phpunit/phpunit/schema/12.4.xsd create mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/AdditionalInformationProvided.php rename vendor/phpunit/phpunit/src/Event/Events/Test/{TestDouble/MockObjectForAbstractClassCreatedSubscriber.php => AdditionalInformationProvidedSubscriber.php} (74%) create mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/CustomTestMethodInvocationUsed.php create mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/CustomTestMethodInvocationUsedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFailed.php rename vendor/phpunit/phpunit/src/Event/Events/Test/{TestDouble/MockObjectForTraitCreatedSubscriber.php => HookMethod/AfterLastTestMethodFailedSubscriber.php} (77%) create mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFailed.php create mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFailedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFailed.php create mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFailedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFailed.php rename vendor/phpunit/phpunit/src/Event/Events/Test/{TestDouble/MockObjectFromWsdlCreatedSubscriber.php => HookMethod/BeforeTestMethodFailedSubscriber.php} (76%) create mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFailed.php create mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFailedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFailed.php rename vendor/phpunit/phpunit/src/Event/Events/Test/{TestDouble/TestProxyCreatedSubscriber.php => HookMethod/PreConditionFailedSubscriber.php} (78%) create mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitNoticeTriggered.php create mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitNoticeTriggeredSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationErrored.php create mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationErroredSubscriber.php delete mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectFromWsdlCreated.php delete mode 100644 vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestProxyCreated.php rename vendor/phpunit/phpunit/src/Event/Events/{Test/TestDouble/MockObjectForTraitCreated.php => TestRunner/ChildProcessErrored.php} (56%) create mode 100644 vendor/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessErroredSubscriber.php rename vendor/phpunit/phpunit/src/Event/Events/{Test/TestDouble/MockObjectForAbstractClassCreated.php => TestRunner/NoticeTriggered.php} (65%) create mode 100644 vendor/phpunit/phpunit/src/Event/Events/TestRunner/NoticeTriggeredSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageFinished.php create mode 100644 vendor/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageFinishedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageStarted.php create mode 100644 vendor/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageStartedSubscriber.php delete mode 100644 vendor/phpunit/phpunit/src/Event/Value/Telemetry/Php83GarbageCollectorStatusProvider.php rename vendor/phpunit/phpunit/src/Event/Value/Telemetry/{Php81GarbageCollectorStatusProvider.php => SystemGarbageCollectorStatusProvider.php} (67%) rename vendor/phpunit/phpunit/src/Framework/{Exception/InvalidCoversTargetException.php => Attributes/AllowMockObjectsWithoutExpectations.php} (66%) create mode 100644 vendor/phpunit/phpunit/src/Framework/Attributes/CoversClassesThatExtendClass.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Attributes/CoversClassesThatImplementInterface.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Attributes/CoversNamespace.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Attributes/IgnorePhpunitWarnings.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Attributes/RequiresEnvironmentVariable.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Attributes/TestDoxFormatter.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Attributes/TestDoxFormatterExternal.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Attributes/UsesClassesThatExtendClass.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Attributes/UsesClassesThatImplementInterface.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Attributes/UsesNamespace.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Attributes/WithEnvironmentVariable.php rename vendor/phpunit/phpunit/src/Framework/Exception/{CodeCoverageException.php => ErrorLogNotWritableException.php} (72%) rename vendor/phpunit/phpunit/src/Framework/Exception/{UnknownTypeException.php => UnknownNativeTypeException.php} (76%) rename vendor/phpunit/phpunit/src/Framework/MockObject/Generator/{MockClass.php => DoubledClass.php} (97%) rename vendor/phpunit/phpunit/src/Framework/MockObject/Generator/{MockMethod.php => DoubledMethod.php} (89%) rename vendor/phpunit/phpunit/src/Framework/MockObject/Generator/{MockMethodSet.php => DoubledMethodSet.php} (86%) delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/CannotUseAddMethodsException.php rename vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/{UnknownClassException.php => ClassIsAnonymousException.php} (80%) rename vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/{UnknownTraitException.php => InvalidClassNameException.php} (68%) create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/MethodNamedMethodException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/MockTrait.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/proxied_method.tpl delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/trait_class.tpl delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/wsdl_class.tpl delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/wsdl_method.tpl delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/ErrorCloneMethod.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/GeneratedAsTestStub.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/MutableStubApi.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/Identity.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/InvocationStubber.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/MethodNameMatch.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/ParametersMatch.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/Stub.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/InvocationStubber.php rename vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/{Builder/InvocationMocker.php => InvocationStubberImplementation.php} (81%) create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/TestDoubleBuilder.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/TestStubBuilder.php create mode 100644 vendor/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestPreparationErroredSubscriber.php rename vendor/phpunit/phpunit/src/{Framework/MockObject/Generator/Exception/SoapExtensionNotAvailableException.php => Logging/JUnit/Subscriber/TestSuiteSkippedSubscriber.php} (60%) rename vendor/{sebastian/code-unit/src/exceptions/ReflectionException.php => phpunit/phpunit/src/Logging/OpenTestReporting/Exception/CannotOpenUriForWritingException.php} (59%) rename vendor/{sebastian/code-unit/src/exceptions => phpunit/phpunit/src/Logging/OpenTestReporting/Exception}/Exception.php (62%) create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/InfrastructureInformationProvider.php create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/OtrXmlLogger.php rename vendor/phpunit/phpunit/src/{Framework/MockObject/Generator/MockType.php => Logging/OpenTestReporting/Status.php} (53%) create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/AfterLastTestMethodErroredSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/AfterLastTestMethodFailedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/BeforeFirstTestMethodErroredSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/BeforeFirstTestMethodFailedSubscriber.php rename vendor/phpunit/phpunit/src/{Framework/MockObject/Generator/Exception/OriginalConstructorInvocationRequiredException.php => Logging/OpenTestReporting/Subscriber/Subscriber.php} (60%) create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestAbortedSubscriber.php rename vendor/phpunit/phpunit/src/{Util/Cloner.php => Logging/OpenTestReporting/Subscriber/TestErroredSubscriber.php} (54%) create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestFailedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestFinishedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparationErroredSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparationFailedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestRunnerFinishedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestRunnerStartedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSkippedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteFinishedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteSkippedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteStartedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/core-0.2.0.xsd create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/events-0.2.0.xsd create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/git-0.2.0.xsd create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/otr.xsd create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/php.xsd create mode 100644 vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/phpunit.xsd create mode 100644 vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationErroredSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationFailedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationStartedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestSuiteBeforeFirstTestMethodFailedSubscriber.php rename vendor/phpunit/phpunit/src/{Framework/MockObject/Runtime/Api/GeneratedAsMockObject.php => Metadata/AllowMockObjectsWithoutExpectations.php} (64%) create mode 100644 vendor/phpunit/phpunit/src/Metadata/Api/ProvidedData.php rename vendor/phpunit/phpunit/src/Metadata/{CoversDefaultClass.php => CoversClassesThatExtendClass.php} (84%) create mode 100644 vendor/phpunit/phpunit/src/Metadata/CoversClassesThatImplementInterface.php rename vendor/phpunit/phpunit/src/Metadata/{Uses.php => CoversNamespace.php} (61%) delete mode 100644 vendor/phpunit/phpunit/src/Metadata/Exception/AnnotationsAreNotSupportedForInternalClassesException.php create mode 100644 vendor/phpunit/phpunit/src/Metadata/IgnorePhpunitWarnings.php delete mode 100644 vendor/phpunit/phpunit/src/Metadata/Parser/Annotation/DocBlock.php delete mode 100644 vendor/phpunit/phpunit/src/Metadata/Parser/Annotation/Registry.php delete mode 100644 vendor/phpunit/phpunit/src/Metadata/Parser/AnnotationParser.php delete mode 100644 vendor/phpunit/phpunit/src/Metadata/Parser/ParserChain.php create mode 100644 vendor/phpunit/phpunit/src/Metadata/RequiresEnvironmentVariable.php create mode 100644 vendor/phpunit/phpunit/src/Metadata/TestDoxFormatter.php rename vendor/phpunit/phpunit/src/Metadata/{UsesDefaultClass.php => UsesClassesThatExtendClass.php} (84%) create mode 100644 vendor/phpunit/phpunit/src/Metadata/UsesClassesThatImplementInterface.php rename vendor/phpunit/phpunit/src/Metadata/{Covers.php => UsesNamespace.php} (58%) create mode 100644 vendor/phpunit/phpunit/src/Metadata/WithEnvironmentVariable.php create mode 100644 vendor/phpunit/phpunit/src/Runner/BackedUpEnvironmentVariable.php create mode 100644 vendor/phpunit/phpunit/src/Runner/CodeCoverageInitializationStatus.php rename vendor/phpunit/phpunit/src/Runner/{ => PHPT}/Exception/InvalidPhptFileException.php (83%) rename vendor/phpunit/phpunit/src/Runner/{ => PHPT}/Exception/PhptExternalFileCannotBeLoadedException.php (87%) rename vendor/phpunit/phpunit/src/Runner/{ => PHPT}/Exception/UnsupportedPhptSectionException.php (80%) create mode 100644 vendor/phpunit/phpunit/src/Runner/PHPT/Parser.php create mode 100644 vendor/phpunit/phpunit/src/Runner/PHPT/Renderer.php rename vendor/phpunit/phpunit/src/Runner/PHPT/{PhptTestCase.php => TestCase.php} (65%) create mode 100644 vendor/phpunit/phpunit/src/Runner/ShutdownHandler.php create mode 100644 vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/AfterTestClassMethodFailedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/BeforeTestClassMethodFailedSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/ChildProcessErroredSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestRunnerTriggeredNoticeSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredPhpunitNoticeSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/TextUI/Configuration/BootstrapLoader.php create mode 100644 vendor/phpunit/phpunit/src/TextUI/Configuration/Exception/BootstrapScriptDoesNotExistException.php rename vendor/phpunit/phpunit/src/{Metadata/Exception/ReflectionException.php => TextUI/Configuration/Exception/BootstrapScriptException.php} (79%) rename vendor/phpunit/phpunit/src/{Framework/MockObject/Exception/CannotCloneTestDoubleForReadonlyClassException.php => TextUI/Configuration/Xml/CodeCoverage/Report/OpenClover.php} (58%) create mode 100644 vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/Otr.php create mode 100644 vendor/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/ChildProcessErroredSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpunitNoticeSubscriber.php create mode 100644 vendor/phpunit/phpunit/src/Util/GlobalStateResult.php create mode 100644 vendor/phpunit/phpunit/src/Util/Sanitizer.php delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/ChangeLog.md delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/LICENSE delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/README.md delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/SECURITY.md delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/composer.json delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/src/Wizard.php delete mode 100644 vendor/sebastian/code-unit/ChangeLog.md delete mode 100644 vendor/sebastian/code-unit/LICENSE delete mode 100644 vendor/sebastian/code-unit/README.md delete mode 100644 vendor/sebastian/code-unit/SECURITY.md delete mode 100644 vendor/sebastian/code-unit/composer.json delete mode 100644 vendor/sebastian/code-unit/src/ClassMethodUnit.php delete mode 100644 vendor/sebastian/code-unit/src/ClassUnit.php delete mode 100644 vendor/sebastian/code-unit/src/CodeUnit.php delete mode 100644 vendor/sebastian/code-unit/src/CodeUnitCollection.php delete mode 100644 vendor/sebastian/code-unit/src/CodeUnitCollectionIterator.php delete mode 100644 vendor/sebastian/code-unit/src/FileUnit.php delete mode 100644 vendor/sebastian/code-unit/src/FunctionUnit.php delete mode 100644 vendor/sebastian/code-unit/src/InterfaceMethodUnit.php delete mode 100644 vendor/sebastian/code-unit/src/InterfaceUnit.php delete mode 100644 vendor/sebastian/code-unit/src/Mapper.php delete mode 100644 vendor/sebastian/code-unit/src/TraitMethodUnit.php delete mode 100644 vendor/sebastian/code-unit/src/TraitUnit.php delete mode 100644 vendor/sebastian/code-unit/src/exceptions/InvalidCodeUnitException.php delete mode 100644 vendor/sebastian/code-unit/src/exceptions/NoTraitException.php create mode 100644 vendor/sebastian/comparator/src/ClosureComparator.php delete mode 100644 vendor/sebastian/lines-of-code/src/Exception/NegativeValueException.php create mode 100644 vendor/symfony/console/ArgumentResolver/ArgumentResolver.php create mode 100644 vendor/symfony/console/ArgumentResolver/ArgumentResolverInterface.php create mode 100644 vendor/symfony/console/ArgumentResolver/Exception/NearMissValueResolverException.php create mode 100644 vendor/symfony/console/ArgumentResolver/Exception/ResolverNotFoundException.php create mode 100644 vendor/symfony/console/ArgumentResolver/TraceableArgumentResolver.php create mode 100644 vendor/symfony/console/ArgumentResolver/ValueResolver/BackedEnumValueResolver.php create mode 100644 vendor/symfony/console/ArgumentResolver/ValueResolver/BuiltinTypeValueResolver.php create mode 100644 vendor/symfony/console/ArgumentResolver/ValueResolver/DateTimeValueResolver.php create mode 100644 vendor/symfony/console/ArgumentResolver/ValueResolver/DefaultValueResolver.php create mode 100644 vendor/symfony/console/ArgumentResolver/ValueResolver/InputFileValueResolver.php create mode 100644 vendor/symfony/console/ArgumentResolver/ValueResolver/MapInputValueResolver.php create mode 100644 vendor/symfony/console/ArgumentResolver/ValueResolver/ServiceValueResolver.php create mode 100644 vendor/symfony/console/ArgumentResolver/ValueResolver/TraceableValueResolver.php create mode 100644 vendor/symfony/console/ArgumentResolver/ValueResolver/UidValueResolver.php create mode 100644 vendor/symfony/console/ArgumentResolver/ValueResolver/ValueResolverInterface.php create mode 100644 vendor/symfony/console/ArgumentResolver/ValueResolver/VariadicValueResolver.php create mode 100644 vendor/symfony/console/Attribute/AsTargetedValueResolver.php create mode 100644 vendor/symfony/console/Attribute/AskChoice.php create mode 100644 vendor/symfony/console/Attribute/MapDateTime.php create mode 100644 vendor/symfony/console/Attribute/ValueResolver.php create mode 100644 vendor/symfony/console/ConsoleBundle.php create mode 100644 vendor/symfony/console/DependencyInjection/ConsoleArgumentValueResolverPass.php create mode 100644 vendor/symfony/console/DependencyInjection/RegisterCommandArgumentLocatorsPass.php create mode 100644 vendor/symfony/console/DependencyInjection/RemoveEmptyCommandArgumentLocatorsPass.php create mode 100644 vendor/symfony/console/Event/QuestionAnsweredEvent.php create mode 100644 vendor/symfony/console/EventListener/ValidateQuestionInputListener.php create mode 100644 vendor/symfony/console/Exception/InputValidationFailedException.php rename vendor/symfony/{polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php => console/Exception/InvalidFileException.php} (55%) create mode 100644 vendor/symfony/console/Helper/FileInputHelper.php create mode 100644 vendor/symfony/console/Input/File/InputFile.php create mode 100644 vendor/symfony/console/Input/RawInputInterface.php create mode 100644 vendor/symfony/console/Output/CombinedOutput.php create mode 100644 vendor/symfony/console/Output/TestOutput.php create mode 100644 vendor/symfony/console/Question/FileQuestion.php create mode 100644 vendor/symfony/console/Resources/config/console.php create mode 100644 vendor/symfony/console/Terminal/Image/ITerm2Protocol.php create mode 100644 vendor/symfony/console/Terminal/Image/ImageProtocolInterface.php create mode 100644 vendor/symfony/console/Terminal/Image/KittyGraphicsProtocol.php create mode 100644 vendor/symfony/console/Tester/ConsoleAssertionsTrait.php create mode 100644 vendor/symfony/console/Tester/Constraint/CommandFailed.php create mode 100644 vendor/symfony/console/Tester/Constraint/CommandIsInvalid.php create mode 100644 vendor/symfony/console/Tester/ExecutionResult.php create mode 100644 vendor/symfony/error-handler/Error/MaxExecutionTimeError.php create mode 100644 vendor/symfony/http-foundation/Test/Constraint/SessionHasFlashMessage.php create mode 100644 vendor/symfony/http-kernel/Attribute/MapRequestHeader.php create mode 100644 vendor/symfony/http-kernel/Attribute/RateLimit.php create mode 100644 vendor/symfony/http-kernel/Attribute/Serialize.php create mode 100644 vendor/symfony/http-kernel/Bundle/BundleAdapter.php delete mode 100644 vendor/symfony/http-kernel/Bundle/BundleExtension.php create mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestHeaderValueResolver.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/AddAnnotatedClassesToCachePass.php create mode 100644 vendor/symfony/http-kernel/DependencyInjection/ControllerAttributesListenerPass.php create mode 100644 vendor/symfony/http-kernel/Event/ControllerArgumentsMetadata.php create mode 100644 vendor/symfony/http-kernel/Event/ControllerAttributeEvent.php create mode 100644 vendor/symfony/http-kernel/Event/ControllerMetadata.php create mode 100644 vendor/symfony/http-kernel/EventListener/ControllerAttributesListener.php create mode 100644 vendor/symfony/http-kernel/EventListener/RateLimitAttributeListener.php create mode 100644 vendor/symfony/http-kernel/EventListener/SerializeControllerResultAttributeListener.php delete mode 100644 vendor/symfony/mailer/Test/TransportFactoryTestCase.php delete mode 100644 vendor/symfony/polyfill-php83/Php83.php delete mode 100644 vendor/symfony/polyfill-php83/README.md delete mode 100644 vendor/symfony/polyfill-php83/Resources/stubs/DateError.php delete mode 100644 vendor/symfony/polyfill-php83/Resources/stubs/DateInvalidOperationException.php delete mode 100644 vendor/symfony/polyfill-php83/Resources/stubs/DateMalformedIntervalStringException.php delete mode 100644 vendor/symfony/polyfill-php83/Resources/stubs/DateMalformedPeriodStringException.php delete mode 100644 vendor/symfony/polyfill-php83/Resources/stubs/DateMalformedStringException.php delete mode 100644 vendor/symfony/polyfill-php83/Resources/stubs/DateObjectError.php delete mode 100644 vendor/symfony/polyfill-php83/Resources/stubs/DateRangeError.php delete mode 100644 vendor/symfony/polyfill-php83/Resources/stubs/Override.php delete mode 100644 vendor/symfony/polyfill-php83/Resources/stubs/SQLite3Exception.php delete mode 100644 vendor/symfony/polyfill-php83/bootstrap.php delete mode 100644 vendor/symfony/polyfill-php83/bootstrap72.php delete mode 100644 vendor/symfony/polyfill-php83/bootstrap81.php rename vendor/symfony/{polyfill-php83 => polyfill-php86}/LICENSE (95%) create mode 100644 vendor/symfony/polyfill-php86/Php86.php create mode 100644 vendor/symfony/polyfill-php86/README.md rename vendor/symfony/{polyfill-php83/Resources/stubs/DateException.php => polyfill-php86/Resources/stubs/SortDirection.php} (65%) create mode 100644 vendor/symfony/polyfill-php86/bootstrap.php create mode 100644 vendor/symfony/polyfill-php86/bootstrap80.php rename vendor/symfony/{polyfill-php83 => polyfill-php86}/composer.json (82%) delete mode 100644 vendor/symfony/routing/Annotation/Route.php create mode 100644 vendor/symfony/routing/Loader/ContentLoaderTrait.php delete mode 100644 vendor/symfony/routing/Loader/XmlFileLoader.php create mode 100644 vendor/symfony/uid/Uuid47Transformer.php create mode 100644 vendor/symfony/var-dumper/Caster/ClassDumpStub.php create mode 100644 vendor/theseer/tokenizer/.php-cs-fixer.dist.php create mode 100644 vendor/theseer/tokenizer/tools/php-cs-fixer.d/PhpdocSingleLineVarFixer.php diff --git a/composer.json b/composer.json index b8d331d78..fc81bdfc7 100644 --- a/composer.json +++ b/composer.json @@ -14,8 +14,8 @@ "enshrined/svg-sanitize": "^0.22.0", "graham-campbell/github": "^13.0", "guzzlehttp/guzzle": "^7.8", - "laravel/framework": "^12.0", - "laravel/tinker": "^2.9", + "laravel/framework": "^13.0", + "laravel/tinker": "^3.0", "laravel/ui": "^4.4", "league/flysystem-aws-s3-v3": "^3.0", "nunomaduro/collision": "^8.0", @@ -27,7 +27,7 @@ "barryvdh/laravel-ide-helper": "^3.0", "filp/whoops": "^2.8", "mockery/mockery": "^1.6", - "phpunit/phpunit": "^11.0", + "phpunit/phpunit": "^12.0", "squizlabs/php_codesniffer": "3.*", "symfony/thanks": "^1.2", "fakerphp/faker": "^1.23" diff --git a/composer.lock b/composer.lock index 9d76ac349..ccc071b59 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f0a9ce3b02a6c595c4e70ab0edb84b6f", + "content-hash": "24b785f73e421451022a5e23d68cc6f0", "packages": [ { "name": "aws/aws-crt-php", @@ -62,16 +62,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.388.0", + "version": "3.388.1", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "6dd9a0674641ef7d302a50cc8f275eb443182dc9" + "reference": "c04551617a8cb58d73a8009cb994ccc629590cdf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/6dd9a0674641ef7d302a50cc8f275eb443182dc9", - "reference": "6dd9a0674641ef7d302a50cc8f275eb443182dc9", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/c04551617a8cb58d73a8009cb994ccc629590cdf", + "reference": "c04551617a8cb58d73a8009cb994ccc629590cdf", "shasum": "" }, "require": { @@ -153,29 +153,28 @@ "support": { "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.388.0" + "source": "https://github.com/aws/aws-sdk-php/tree/3.388.1" }, - "time": "2026-07-07T18:11:48+00:00" + "time": "2026-07-08T18:13:21+00:00" }, { "name": "brick/math", - "version": "0.14.8", + "version": "0.18.0", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "63422359a44b7f06cae63c3b429b59e8efcc0629" + "reference": "82944324d1c1bdb2c2618e89978d4e2ad78d69ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/63422359a44b7f06cae63c3b429b59e8efcc0629", - "reference": "63422359a44b7f06cae63c3b429b59e8efcc0629", + "url": "https://api.github.com/repos/brick/math/zipball/82944324d1c1bdb2c2618e89978d4e2ad78d69ad", + "reference": "82944324d1c1bdb2c2618e89978d4e2ad78d69ad", "shasum": "" }, "require": { "php": "^8.2" }, "require-dev": { - "php-coveralls/php-coveralls": "^2.2", "phpstan/phpstan": "2.1.22", "phpunit/phpunit": "^11.5" }, @@ -207,7 +206,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.14.8" + "source": "https://github.com/brick/math/tree/0.18.0" }, "funding": [ { @@ -215,7 +214,7 @@ "type": "github" } ], - "time": "2026-02-10T14:33:43+00:00" + "time": "2026-06-14T18:21:03+00:00" }, { "name": "carbonphp/carbon-doctrine-types", @@ -1704,24 +1703,24 @@ }, { "name": "laravel/framework", - "version": "v12.63.0", + "version": "v13.19.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "7adfddbf4738f2e6cae5419b0e6bc46d4cccfbcf" + "reference": "514502b38e11bd676ecf83b271c9452cc7500f16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/7adfddbf4738f2e6cae5419b0e6bc46d4cccfbcf", - "reference": "7adfddbf4738f2e6cae5419b0e6bc46d4cccfbcf", + "url": "https://api.github.com/repos/laravel/framework/zipball/514502b38e11bd676ecf83b271c9452cc7500f16", + "reference": "514502b38e11bd676ecf83b271c9452cc7500f16", "shasum": "" }, "require": { - "brick/math": "^0.11|^0.12|^0.13|^0.14", + "brick/math": "^0.14.2 || ^0.15 || ^0.16 || ^0.17 || ^0.18", "composer-runtime-api": "^2.2", "doctrine/inflector": "^2.0.5", "dragonmantank/cron-expression": "^3.4", - "egulias/email-validator": "^3.2.1|^4.0", + "egulias/email-validator": "^4.0", "ext-ctype": "*", "ext-filter": "*", "ext-hash": "*", @@ -1731,9 +1730,10 @@ "ext-tokenizer": "*", "fruitcake/php-cors": "^1.3", "guzzlehttp/guzzle": "^7.8.2", + "guzzlehttp/promises": "^2.0.3", "guzzlehttp/uri-template": "^1.0", "laravel/prompts": "^0.3.0", - "laravel/serializable-closure": "^1.3|^2.0", + "laravel/serializable-closure": "^2.0.10", "league/commonmark": "^2.8.1", "league/flysystem": "^3.25.1", "league/flysystem-local": "^3.25.1", @@ -1741,25 +1741,25 @@ "monolog/monolog": "^3.0", "nesbot/carbon": "^3.8.4", "nunomaduro/termwind": "^2.0", - "php": "^8.2", - "psr/container": "^1.1.1|^2.0.1", - "psr/log": "^1.0|^2.0|^3.0", - "psr/simple-cache": "^1.0|^2.0|^3.0", + "php": "^8.3", + "psr/container": "^1.1.1 || ^2.0.1", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "psr/simple-cache": "^1.0 || ^2.0 || ^3.0", "ramsey/uuid": "^4.7", - "symfony/console": "^7.2.0", - "symfony/error-handler": "^7.2.0", - "symfony/finder": "^7.2.0", - "symfony/http-foundation": "^7.2.0", - "symfony/http-kernel": "^7.2.0", - "symfony/mailer": "^7.2.0", - "symfony/mime": "^7.2.0", - "symfony/polyfill-php83": "^1.33", - "symfony/polyfill-php84": "^1.34", - "symfony/polyfill-php85": "^1.34", - "symfony/process": "^7.2.0", - "symfony/routing": "^7.2.0", - "symfony/uid": "^7.2.0", - "symfony/var-dumper": "^7.2.0", + "symfony/console": "^7.4.0 || ^8.0.0", + "symfony/error-handler": "^7.4.0 || ^8.0.0", + "symfony/finder": "^7.4.0 || ^8.0.0", + "symfony/http-foundation": "^7.4.0 || ^8.0.0", + "symfony/http-kernel": "^7.4.0 || ^8.0.0", + "symfony/mailer": "^7.4.0 || ^8.0.0", + "symfony/mime": "^7.4.0 || ^8.0.0", + "symfony/polyfill-php84": "^1.36", + "symfony/polyfill-php85": "^1.36", + "symfony/polyfill-php86": "^1.36", + "symfony/process": "^7.4.5 || ^8.0.5", + "symfony/routing": "^7.4.0 || ^8.0.0", + "symfony/uid": "^7.4.0 || ^8.0.0", + "symfony/var-dumper": "^7.4.0 || ^8.0.0", "tijsverkoyen/css-to-inline-styles": "^2.2.5", "vlucas/phpdotenv": "^5.6.1", "voku/portable-ascii": "^2.0.2" @@ -1768,9 +1768,9 @@ "tightenco/collect": "<5.5.33" }, "provide": { - "psr/container-implementation": "1.1|2.0", - "psr/log-implementation": "1.0|2.0|3.0", - "psr/simple-cache-implementation": "1.0|2.0|3.0" + "psr/container-implementation": "1.1 || 2.0", + "psr/log-implementation": "1.0 || 2.0 || 3.0", + "psr/simple-cache-implementation": "1.0 || 2.0 || 3.0" }, "replace": { "illuminate/auth": "self.version", @@ -1816,8 +1816,7 @@ "aws/aws-sdk-php": "^3.322.9", "ext-gmp": "*", "fakerphp/faker": "^1.24", - "guzzlehttp/promises": "^2.0.3", - "guzzlehttp/psr7": "^2.4", + "guzzlehttp/psr7": "^2.9", "laravel/pint": "^1.18", "league/flysystem-aws-s3-v3": "^3.25.1", "league/flysystem-ftp": "^3.25.1", @@ -1826,22 +1825,23 @@ "league/flysystem-sftp-v3": "^3.25.1", "mockery/mockery": "^1.6.10", "opis/json-schema": "^2.4.1", - "orchestra/testbench-core": "^10.9.0", - "pda/pheanstalk": "^5.0.6|^7.0.0", + "orchestra/testbench-core": "^11.0.0", + "pda/pheanstalk": "^7.0.0 || ^8.0.0", "php-http/discovery": "^1.15", - "phpstan/phpstan": "^2.1.41", - "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1", - "predis/predis": "^2.3|^3.0", - "resend/resend-php": "^0.10.0|^1.0", - "symfony/cache": "^7.2.0", - "symfony/http-client": "^7.2.0", - "symfony/psr-http-message-bridge": "^7.2.0", - "symfony/translation": "^7.2.0" + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^11.5.50 || ^12.5.8 || ^13.0.3", + "predis/predis": "^2.3 || ^3.0", + "rector/rector": "^2.3", + "resend/resend-php": "^1.0", + "symfony/cache": "^7.4.0 || ^8.0.0", + "symfony/http-client": "^7.4.0 || ^8.0.0", + "symfony/psr-http-message-bridge": "^7.4.0 || ^8.0.0", + "symfony/translation": "^7.4.0 || ^8.0.0" }, "suggest": { "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.322.9).", - "brianium/paratest": "Required to run tests in parallel (^7.0|^8.0).", + "brianium/paratest": "Required to run tests in parallel (^7.0 || ^8.0).", "ext-apcu": "Required to use the APC cache driver.", "ext-fileinfo": "Required to use the Filesystem class.", "ext-ftp": "Required to use the Flysystem FTP driver.", @@ -1850,7 +1850,7 @@ "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.", "ext-pdo": "Required to use all database features.", "ext-posix": "Required to use all features of the queue worker.", - "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0|^6.0).", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0 || ^5.0 || ^6.0).", "fakerphp/faker": "Required to generate fake data using the fake() helper (^1.23).", "filp/whoops": "Required for friendly error pages in development (^2.14.3).", "laravel/tinker": "Required to use the tinker console command (^2.0).", @@ -1860,24 +1860,25 @@ "league/flysystem-read-only": "Required to use read-only disks (^3.25.1)", "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.25.1).", "mockery/mockery": "Required to use mocking (^1.6).", - "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (^7.0 || ^8.0).", "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).", - "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.5.3|^12.0.1).", - "predis/predis": "Required to use the predis connector (^2.3|^3.0).", + "phpunit/phpunit": "Required to use assertions and run tests (^11.5.50 || ^12.5.8 || ^13.0.3).", + "predis/predis": "Required to use the predis connector (^2.3 || ^3.0).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", - "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0|^1.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^7.2).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).", - "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).", - "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.2).", - "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.2).", - "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.2)." + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0 || ^7.0).", + "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0 || ^1.0).", + "spatie/fork": "Required to use the 'fork' concurrency driver (^1.2).", + "symfony/cache": "Required to PSR-6 cache bridge (^7.4 || ^8.0).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^7.4 || ^8.0).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.4 || ^8.0).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.4 || ^8.0).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.4 || ^8.0).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.4 || ^8.0)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "12.x-dev" + "dev-master": "13.0.x-dev" } }, "autoload": { @@ -1922,7 +1923,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-07-07T14:16:35+00:00" + "time": "2026-07-07T14:13:33+00:00" }, { "name": "laravel/prompts", @@ -2046,33 +2047,33 @@ }, { "name": "laravel/tinker", - "version": "v2.11.1", + "version": "v3.0.2", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741" + "reference": "4faba77764bd33411735936acdf30446d058c78b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/c9f80cc835649b5c1842898fb043f8cc098dd741", - "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741", + "url": "https://api.github.com/repos/laravel/tinker/zipball/4faba77764bd33411735936acdf30446d058c78b", + "reference": "4faba77764bd33411735936acdf30446d058c78b", "shasum": "" }, "require": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", - "php": "^7.2.5|^8.0", - "psy/psysh": "^0.11.1|^0.12.0", - "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0|^8.0" + "illuminate/console": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "php": "^8.1", + "psy/psysh": "^0.12.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0|^8.0" }, "require-dev": { "mockery/mockery": "~1.3.3|^1.4.2", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^8.5.8|^9.3.3|^10.0" + "phpunit/phpunit": "^10.5|^11.5" }, "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0)." + "illuminate/database": "The Illuminate Database package (^8.0|^9.0|^10.0|^11.0|^12.0|^13.0)." }, "type": "library", "extra": { @@ -2080,6 +2081,9 @@ "providers": [ "Laravel\\Tinker\\TinkerServiceProvider" ] + }, + "branch-alias": { + "dev-master": "3.x-dev" } }, "autoload": { @@ -2106,9 +2110,9 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.11.1" + "source": "https://github.com/laravel/tinker/tree/v3.0.2" }, - "time": "2026-02-06T14:12:35+00:00" + "time": "2026-03-17T14:54:13+00:00" }, { "name": "laravel/ui", @@ -5501,47 +5505,49 @@ }, { "name": "symfony/console", - "version": "v7.4.14", + "version": "v8.1.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87" + "reference": "b711a8ab808b6c074c6b8caef70d0fd8d6b6d07d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87", - "reference": "92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87", + "url": "https://api.github.com/repos/symfony/console/zipball/b711a8ab808b6c074c6b8caef70d0fd8d6b6d07d", + "reference": "b711a8ab808b6c074c6b8caef70d0fd8d6b6d07d", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4.1", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php85": "^1.32", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^7.2|^8.0" + "symfony/string": "^7.4.6|^8.0.6" }, "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/dotenv": "<6.4", - "symfony/event-dispatcher": "<6.4", - "symfony/lock": "<6.4", - "symfony/process": "<6.4" + "symfony/dependency-injection": "<8.1", + "symfony/event-dispatcher": "<8.1" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/event-dispatcher": "^6.4|^7.0|^8.0", - "symfony/http-foundation": "^6.4|^7.0|^8.0", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/lock": "^6.4|^7.0|^8.0", - "symfony/messenger": "^6.4|^7.0|^8.0", - "symfony/process": "^6.4|^7.0|^8.0", - "symfony/stopwatch": "^6.4|^7.0|^8.0", - "symfony/var-dumper": "^6.4|^7.0|^8.0" + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^8.1", + "symfony/event-dispatcher": "^8.1", + "symfony/filesystem": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/lock": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/uid": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -5575,7 +5581,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.14" + "source": "https://github.com/symfony/console/tree/v8.1.1" }, "funding": [ { @@ -5595,7 +5601,7 @@ "type": "tidelift" } ], - "time": "2026-06-16T11:50:14+00:00" + "time": "2026-06-16T12:55:20+00:00" }, { "name": "symfony/css-selector", @@ -5739,33 +5745,32 @@ }, { "name": "symfony/error-handler", - "version": "v7.4.14", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "4e1a093b481f323e6e326451f9760c3868430673" + "reference": "d8aeb1abd3fef84795567850d3a567bdb5945ee5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/4e1a093b481f323e6e326451f9760c3868430673", - "reference": "4e1a093b481f323e6e326451f9760c3868430673", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/d8aeb1abd3fef84795567850d3a567bdb5945ee5", + "reference": "d8aeb1abd3fef84795567850d3a567bdb5945ee5", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4.1", "psr/log": "^1|^2|^3", "symfony/polyfill-php85": "^1.32", - "symfony/var-dumper": "^6.4|^7.0|^8.0" + "symfony/var-dumper": "^7.4|^8.0" }, "conflict": { - "symfony/deprecation-contracts": "<2.5", - "symfony/http-kernel": "<6.4" + "symfony/deprecation-contracts": "<2.5" }, "require-dev": { - "symfony/console": "^6.4|^7.0|^8.0", + "symfony/console": "^7.4|^8.0", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/serializer": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", "symfony/webpack-encore-bundle": "^1.0|^2.0" }, "bin": [ @@ -5797,7 +5802,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.4.14" + "source": "https://github.com/symfony/error-handler/tree/v8.1.0" }, "funding": [ { @@ -5817,7 +5822,7 @@ "type": "tidelift" } ], - "time": "2026-06-05T06:22:21+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/event-dispatcher", @@ -6058,23 +6063,23 @@ }, { "name": "symfony/finder", - "version": "v7.4.14", + "version": "v8.1.1", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "13b38720174286f55d1761152b575a8d1436fc25" + "reference": "e2989e762c70f9490fa3a00a0ac0fae5aa97a531" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/13b38720174286f55d1761152b575a8d1436fc25", - "reference": "13b38720174286f55d1761152b575a8d1436fc25", + "url": "https://api.github.com/repos/symfony/finder/zipball/e2989e762c70f9490fa3a00a0ac0fae5aa97a531", + "reference": "e2989e762c70f9490fa3a00a0ac0fae5aa97a531", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.4.1" }, "require-dev": { - "symfony/filesystem": "^6.4|^7.0|^8.0" + "symfony/filesystem": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -6102,7 +6107,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.4.14" + "source": "https://github.com/symfony/finder/tree/v8.1.1" }, "funding": [ { @@ -6122,41 +6127,40 @@ "type": "tidelift" } ], - "time": "2026-06-27T08:31:18+00:00" + "time": "2026-06-27T09:05:56+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.4.14", + "version": "v8.1.1", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "06db5ae1552177bf8572f8908839f12e3c06aed3" + "reference": "6a168c8fcee806b57ac020244da14293d1f9a883" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/06db5ae1552177bf8572f8908839f12e3c06aed3", - "reference": "06db5ae1552177bf8572f8908839f12e3c06aed3", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6a168c8fcee806b57ac020244da14293d1f9a883", + "reference": "6a168c8fcee806b57ac020244da14293d1f9a883", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4.1", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "^1.1" }, "conflict": { - "doctrine/dbal": "<3.6", - "symfony/cache": "<6.4.12|>=7.0,<7.1.5" + "doctrine/dbal": "<4.3" }, "require-dev": { - "doctrine/dbal": "^3.6|^4", + "doctrine/dbal": "^4.3", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.4.12|^7.1.5|^8.0", - "symfony/clock": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/expression-language": "^6.4|^7.0|^8.0", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/mime": "^6.4|^7.0|^8.0", - "symfony/rate-limiter": "^6.4|^7.0|^8.0" + "symfony/cache": "^7.4|^8.0", + "symfony/clock": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/rate-limiter": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -6184,7 +6188,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.4.14" + "source": "https://github.com/symfony/http-foundation/tree/v8.1.1" }, "funding": [ { @@ -6204,78 +6208,68 @@ "type": "tidelift" } ], - "time": "2026-06-11T07:31:44+00:00" + "time": "2026-06-12T08:43:41+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.4.14", + "version": "v8.1.1", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "e99af79b1e776646eda0e1c23b7b45c184ff99be" + "reference": "89d8d6e7fbab3d9eda89ccb5ecdf44a74c4ec9d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e99af79b1e776646eda0e1c23b7b45c184ff99be", - "reference": "e99af79b1e776646eda0e1c23b7b45c184ff99be", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/89d8d6e7fbab3d9eda89ccb5ecdf44a74c4ec9d2", + "reference": "89d8d6e7fbab3d9eda89ccb5ecdf44a74c4ec9d2", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4.1", "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.4|^7.0|^8.0", - "symfony/event-dispatcher": "^7.3|^8.0", + "symfony/error-handler": "^7.4|^8.0", + "symfony/event-dispatcher": "^7.4|^8.0", "symfony/http-foundation": "^7.4|^8.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/browser-kit": "<6.4", - "symfony/cache": "<6.4", - "symfony/config": "<6.4", - "symfony/console": "<6.4", - "symfony/dependency-injection": "<6.4", - "symfony/doctrine-bridge": "<6.4", + "symfony/dependency-injection": "<8.1", "symfony/flex": "<2.10", - "symfony/form": "<6.4", - "symfony/http-client": "<6.4", "symfony/http-client-contracts": "<2.5", - "symfony/mailer": "<6.4", - "symfony/messenger": "<6.4", - "symfony/translation": "<6.4", "symfony/translation-contracts": "<2.5", - "symfony/twig-bridge": "<6.4", - "symfony/validator": "<6.4", - "symfony/var-dumper": "<6.4", - "twig/twig": "<3.12" + "symfony/var-dumper": "<8.1", + "symfony/web-profiler-bundle": "<8.1", + "twig/twig": "<3.21" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^6.4|^7.0|^8.0", - "symfony/clock": "^6.4|^7.0|^8.0", - "symfony/config": "^6.4|^7.0|^8.0", - "symfony/console": "^6.4|^7.0|^8.0", - "symfony/css-selector": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4.1|^7.0.1|^8.0", - "symfony/dom-crawler": "^6.4|^7.0|^8.0", - "symfony/expression-language": "^6.4|^7.0|^8.0", - "symfony/finder": "^6.4|^7.0|^8.0", + "symfony/browser-kit": "^7.4|^8.0", + "symfony/clock": "^7.4|^8.0", + "symfony/config": "^7.4|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/css-selector": "^7.4|^8.0", + "symfony/dependency-injection": "^8.1", + "symfony/dom-crawler": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", "symfony/http-client-contracts": "^2.5|^3", - "symfony/process": "^6.4|^7.0|^8.0", - "symfony/property-access": "^7.1|^8.0", - "symfony/routing": "^6.4|^7.0|^8.0", - "symfony/serializer": "^7.1|^8.0", - "symfony/stopwatch": "^6.4|^7.0|^8.0", - "symfony/translation": "^6.4|^7.0|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/property-access": "^7.4|^8.0", + "symfony/rate-limiter": "^7.4|^8.0", + "symfony/routing": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", "symfony/translation-contracts": "^2.5|^3", - "symfony/uid": "^6.4|^7.0|^8.0", - "symfony/validator": "^6.4|^7.0|^8.0", - "symfony/var-dumper": "^6.4|^7.0|^8.0", - "symfony/var-exporter": "^6.4|^7.0|^8.0", - "twig/twig": "^3.12" + "symfony/uid": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/var-dumper": "^8.1", + "symfony/var-exporter": "^7.4|^8.0", + "twig/twig": "^3.21" }, "type": "library", "autoload": { @@ -6303,7 +6297,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.4.14" + "source": "https://github.com/symfony/http-kernel/tree/v8.1.1" }, "funding": [ { @@ -6323,43 +6317,39 @@ "type": "tidelift" } ], - "time": "2026-06-27T09:14:35+00:00" + "time": "2026-06-27T09:27:36+00:00" }, { "name": "symfony/mailer", - "version": "v7.4.14", + "version": "v8.1.1", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "f88ce03ae73e3edb5c176ce1f337709996e88495" + "reference": "4fa583a7377f28d54e4de442fba76375b2e20a12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/f88ce03ae73e3edb5c176ce1f337709996e88495", - "reference": "f88ce03ae73e3edb5c176ce1f337709996e88495", + "url": "https://api.github.com/repos/symfony/mailer/zipball/4fa583a7377f28d54e4de442fba76375b2e20a12", + "reference": "4fa583a7377f28d54e4de442fba76375b2e20a12", "shasum": "" }, "require": { "egulias/email-validator": "^2.1.10|^3|^4", - "php": ">=8.2", + "php": ">=8.4.1", "psr/event-dispatcher": "^1", "psr/log": "^1|^2|^3", - "symfony/event-dispatcher": "^6.4|^7.0|^8.0", - "symfony/mime": "^7.2|^8.0", + "symfony/event-dispatcher": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { - "symfony/http-client-contracts": "<2.5", - "symfony/http-kernel": "<6.4", - "symfony/messenger": "<6.4", - "symfony/mime": "<6.4", - "symfony/twig-bridge": "<6.4" + "symfony/http-client-contracts": "<2.5" }, "require-dev": { - "symfony/console": "^6.4|^7.0|^8.0", - "symfony/http-client": "^6.4|^7.0|^8.0", - "symfony/messenger": "^6.4|^7.0|^8.0", - "symfony/twig-bridge": "^6.4|^7.0|^8.0" + "symfony/console": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/twig-bridge": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -6387,7 +6377,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.4.14" + "source": "https://github.com/symfony/mailer/tree/v8.1.1" }, "funding": [ { @@ -6407,44 +6397,41 @@ "type": "tidelift" } ], - "time": "2026-06-13T08:51:35+00:00" + "time": "2026-06-16T12:55:20+00:00" }, { "name": "symfony/mime", - "version": "v7.4.13", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "a845722765c4f6b2ce88beaf4f4479975b186770" + "reference": "b164ae7e3f7915aacfe9ee155f2f358502440664" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/a845722765c4f6b2ce88beaf4f4479975b186770", - "reference": "a845722765c4f6b2ce88beaf4f4479975b186770", + "url": "https://api.github.com/repos/symfony/mime/zipball/b164ae7e3f7915aacfe9ee155f2f358502440664", + "reference": "b164ae7e3f7915aacfe9ee155f2f358502440664", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.4.1", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, "conflict": { "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<5.2|>=7", - "phpdocumentor/type-resolver": "<1.5.1", - "symfony/mailer": "<6.4", - "symfony/serializer": "<6.4.3|>7.0,<7.0.3" + "phpdocumentor/type-resolver": "<1.5.1" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^5.2|^6.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/process": "^6.4|^7.0|^8.0", - "symfony/property-access": "^6.4|^7.0|^8.0", - "symfony/property-info": "^6.4|^7.0|^8.0", - "symfony/serializer": "^6.4.3|^7.0.3|^8.0" + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/property-access": "^7.4|^8.0", + "symfony/property-info": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -6476,7 +6463,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.4.13" + "source": "https://github.com/symfony/mime/tree/v8.1.0" }, "funding": [ { @@ -6496,7 +6483,7 @@ "type": "tidelift" } ], - "time": "2026-05-23T16:22:37+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/options-resolver", @@ -7162,86 +7149,6 @@ ], "time": "2026-04-10T16:19:22+00:00" }, - { - "name": "symfony/polyfill-php83", - "version": "v1.38.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "796a26abb75ce49f3a84433cd81bf1009d73d5f8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/796a26abb75ce49f3a84433cd81bf1009d73d5f8", - "reference": "796a26abb75ce49f3a84433cd81bf1009d73d5f8", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php83\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.38.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-05-27T06:51:48+00:00" - }, { "name": "symfony/polyfill-php84", "version": "v1.38.1", @@ -7402,6 +7309,86 @@ ], "time": "2026-05-26T02:25:22+00:00" }, + { + "name": "symfony/polyfill-php86", + "version": "v1.38.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php86.git", + "reference": "fcec68d64f46dc84e1f6ffcf2c6dda40ff3143ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php86/zipball/fcec68d64f46dc84e1f6ffcf2c6dda40ff3143ad", + "reference": "fcec68d64f46dc84e1f6ffcf2c6dda40ff3143ad", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php86\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.6+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php86/tree/v1.38.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-25T11:52:35+00:00" + }, { "name": "symfony/polyfill-uuid", "version": "v1.37.0", @@ -7487,20 +7474,20 @@ }, { "name": "symfony/process", - "version": "v7.4.13", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "f5804be144caceb570f6747519999636b664f24c" + "reference": "c4a9e58f235a6bf7f97ffbfedae2687353ac79e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/f5804be144caceb570f6747519999636b664f24c", - "reference": "f5804be144caceb570f6747519999636b664f24c", + "url": "https://api.github.com/repos/symfony/process/zipball/c4a9e58f235a6bf7f97ffbfedae2687353ac79e5", + "reference": "c4a9e58f235a6bf7f97ffbfedae2687353ac79e5", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.4.1" }, "type": "library", "autoload": { @@ -7528,7 +7515,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.4.13" + "source": "https://github.com/symfony/process/tree/v8.1.0" }, "funding": [ { @@ -7548,38 +7535,33 @@ "type": "tidelift" } ], - "time": "2026-05-23T16:05:06+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/routing", - "version": "v7.4.13", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "3a162171bb008e5e0f15dce6581373a4c0e8390d" + "reference": "fe0bfec72c8a806109fb9c3a5f2b898fe0c76eb3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/3a162171bb008e5e0f15dce6581373a4c0e8390d", - "reference": "3a162171bb008e5e0f15dce6581373a4c0e8390d", + "url": "https://api.github.com/repos/symfony/routing/zipball/fe0bfec72c8a806109fb9c3a5f2b898fe0c76eb3", + "reference": "fe0bfec72c8a806109fb9c3a5f2b898fe0c76eb3", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4.1", "symfony/deprecation-contracts": "^2.5|^3" }, - "conflict": { - "symfony/config": "<6.4", - "symfony/dependency-injection": "<6.4", - "symfony/yaml": "<6.4" - }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/expression-language": "^6.4|^7.0|^8.0", - "symfony/http-foundation": "^6.4|^7.0|^8.0", - "symfony/yaml": "^6.4|^7.0|^8.0" + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/yaml": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -7613,7 +7595,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.4.13" + "source": "https://github.com/symfony/routing/tree/v8.1.0" }, "funding": [ { @@ -7633,7 +7615,7 @@ "type": "tidelift" } ], - "time": "2026-05-24T11:20:33+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/service-contracts", @@ -7989,24 +7971,24 @@ }, { "name": "symfony/uid", - "version": "v7.4.9", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "2676b524340abcfe4d6151ec698463cebafee439" + "reference": "7393f157a55f7e70a4de0334435c55a5a8fe749a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/2676b524340abcfe4d6151ec698463cebafee439", - "reference": "2676b524340abcfe4d6151ec698463cebafee439", + "url": "https://api.github.com/repos/symfony/uid/zipball/7393f157a55f7e70a4de0334435c55a5a8fe749a", + "reference": "7393f157a55f7e70a4de0334435c55a5a8fe749a", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4.1", "symfony/polyfill-uuid": "^1.15" }, "require-dev": { - "symfony/console": "^6.4|^7.0|^8.0" + "symfony/console": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -8043,7 +8025,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.4.9" + "source": "https://github.com/symfony/uid/tree/v8.1.0" }, "funding": [ { @@ -8063,35 +8045,35 @@ "type": "tidelift" } ], - "time": "2026-04-30T15:19:22+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.4.14", + "version": "v8.1.1", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "9a3a56a4a1e65a5cb4f8d13801fe8ab0a170e358" + "reference": "40096a2515a979f3125c5c928603995b8664c62a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/9a3a56a4a1e65a5cb4f8d13801fe8ab0a170e358", - "reference": "9a3a56a4a1e65a5cb4f8d13801fe8ab0a170e358", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/40096a2515a979f3125c5c928603995b8664c62a", + "reference": "40096a2515a979f3125c5c928603995b8664c62a", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=8.4.1", + "symfony/polyfill-mbstring": "^1.0" }, "conflict": { - "symfony/console": "<6.4" + "symfony/console": "<7.4", + "symfony/error-handler": "<7.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0|^8.0", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/process": "^6.4|^7.0|^8.0", - "symfony/uid": "^6.4|^7.0|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/uid": "^7.4|^8.0", "twig/twig": "^3.12" }, "bin": [ @@ -8130,7 +8112,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.4.14" + "source": "https://github.com/symfony/var-dumper/tree/v8.1.1" }, "funding": [ { @@ -8150,7 +8132,7 @@ "type": "tidelift" } ], - "time": "2026-06-08T20:24:16+00:00" + "time": "2026-06-09T10:54:51+00:00" }, { "name": "symfony/var-exporter", @@ -9195,16 +9177,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "11.0.12", + "version": "12.5.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56" + "reference": "186dab580576598076de6818596d12b61801880e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2c1ed04922802c15e1de5d7447b4856de949cf56", - "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/186dab580576598076de6818596d12b61801880e", + "reference": "186dab580576598076de6818596d12b61801880e", "shasum": "" }, "require": { @@ -9212,18 +9194,16 @@ "ext-libxml": "*", "ext-xmlwriter": "*", "nikic/php-parser": "^5.7.0", - "php": ">=8.2", - "phpunit/php-file-iterator": "^5.1.0", - "phpunit/php-text-template": "^4.0.1", - "sebastian/code-unit-reverse-lookup": "^4.0.1", - "sebastian/complexity": "^4.0.1", - "sebastian/environment": "^7.2.1", - "sebastian/lines-of-code": "^3.0.1", - "sebastian/version": "^5.0.2", - "theseer/tokenizer": "^1.3.1" + "php": ">=8.3", + "phpunit/php-text-template": "^5.0", + "sebastian/complexity": "^5.0", + "sebastian/environment": "^8.1.2", + "sebastian/lines-of-code": "^4.0.1", + "sebastian/version": "^6.0", + "theseer/tokenizer": "^2.0.1" }, "require-dev": { - "phpunit/phpunit": "^11.5.46" + "phpunit/phpunit": "^12.5.28" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -9232,7 +9212,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "11.0.x-dev" + "dev-main": "12.5.x-dev" } }, "autoload": { @@ -9261,7 +9241,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.12" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.7" }, "funding": [ { @@ -9281,32 +9261,32 @@ "type": "tidelift" } ], - "time": "2025-12-24T07:01:01+00:00" + "time": "2026-06-01T13:24:19+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "5.1.1", + "version": "6.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903" + "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/2f3a64888c814fc235386b7387dd5b5ed92ad903", - "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5", + "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -9334,7 +9314,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.1" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.1" }, "funding": [ { @@ -9354,28 +9334,28 @@ "type": "tidelift" } ], - "time": "2026-02-02T13:52:54+00:00" + "time": "2026-02-02T14:04:18+00:00" }, { "name": "phpunit/php-invoker", - "version": "5.0.1", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" + "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", - "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/12b54e689b07a25a9b41e57736dfab6ec9ae5406", + "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "suggest": { "ext-pcntl": "*" @@ -9383,7 +9363,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -9410,7 +9390,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" + "source": "https://github.com/sebastianbergmann/php-invoker/tree/6.0.0" }, "funding": [ { @@ -9418,32 +9398,32 @@ "type": "github" } ], - "time": "2024-07-03T05:07:44+00:00" + "time": "2025-02-07T04:58:58+00:00" }, { "name": "phpunit/php-text-template", - "version": "4.0.1", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" + "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", - "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53", + "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -9470,7 +9450,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" + "source": "https://github.com/sebastianbergmann/php-text-template/tree/5.0.0" }, "funding": [ { @@ -9478,32 +9458,32 @@ "type": "github" } ], - "time": "2024-07-03T05:08:43+00:00" + "time": "2025-02-07T04:59:16+00:00" }, { "name": "phpunit/php-timer", - "version": "7.0.1", + "version": "8.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" + "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", - "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", + "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -9530,7 +9510,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", "security": "https://github.com/sebastianbergmann/php-timer/security/policy", - "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" + "source": "https://github.com/sebastianbergmann/php-timer/tree/8.0.0" }, "funding": [ { @@ -9538,20 +9518,20 @@ "type": "github" } ], - "time": "2024-07-03T05:09:35+00:00" + "time": "2025-02-07T04:59:38+00:00" }, { "name": "phpunit/phpunit", - "version": "11.5.56", + "version": "12.5.31", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256" + "reference": "0608d157a284f15cc73b99a3327eff06b66a176d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5f83edffa6967c3db468d48a695ec7bcb02e9256", - "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0608d157a284f15cc73b99a3327eff06b66a176d", + "reference": "0608d157a284f15cc73b99a3327eff06b66a176d", "shasum": "" }, "require": { @@ -9564,35 +9544,31 @@ "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", - "php": ">=8.2", - "phpunit/php-code-coverage": "^11.0.12", - "phpunit/php-file-iterator": "^5.1.1", - "phpunit/php-invoker": "^5.0.1", - "phpunit/php-text-template": "^4.0.1", - "phpunit/php-timer": "^7.0.1", - "sebastian/cli-parser": "^3.0.2", - "sebastian/code-unit": "^3.0.3", - "sebastian/comparator": "^6.3.3", - "sebastian/diff": "^6.0.2", - "sebastian/environment": "^7.2.1", - "sebastian/exporter": "^6.3.2", - "sebastian/global-state": "^7.0.2", - "sebastian/object-enumerator": "^6.0.1", - "sebastian/recursion-context": "^6.0.3", - "sebastian/type": "^5.1.3", - "sebastian/version": "^5.0.2", + "php": ">=8.3", + "phpunit/php-code-coverage": "^12.5.7", + "phpunit/php-file-iterator": "^6.0.1", + "phpunit/php-invoker": "^6.0.0", + "phpunit/php-text-template": "^5.0.0", + "phpunit/php-timer": "^8.0.0", + "sebastian/cli-parser": "^4.2.1", + "sebastian/comparator": "^7.1.8", + "sebastian/diff": "^7.0.0", + "sebastian/environment": "^8.1.2", + "sebastian/exporter": "^7.0.3", + "sebastian/global-state": "^8.0.3", + "sebastian/object-enumerator": "^7.0.0", + "sebastian/recursion-context": "^7.0.1", + "sebastian/type": "^6.0.4", + "sebastian/version": "^6.0.0", "staabm/side-effects-detector": "^1.0.5" }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files" - }, "bin": [ "phpunit" ], "type": "library", "extra": { "branch-alias": { - "dev-main": "11.5-dev" + "dev-main": "12.5-dev" } }, "autoload": { @@ -9624,7 +9600,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.56" + "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.31" }, "funding": [ { @@ -9632,32 +9608,32 @@ "type": "other" } ], - "time": "2026-07-06T14:52:39+00:00" + "time": "2026-07-06T14:54:16+00:00" }, { "name": "sebastian/cli-parser", - "version": "3.0.2", + "version": "4.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" + "reference": "7d05781b13f7dec9043a629a21d086ed74582a15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", - "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/7d05781b13f7dec9043a629a21d086ed74582a15", + "reference": "7d05781b13f7dec9043a629a21d086ed74582a15", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.5.25" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.2-dev" } }, "autoload": { @@ -9681,152 +9657,51 @@ "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" - } - ], - "time": "2024-07-03T04:41:36+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", - "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ + }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "security": "https://github.com/sebastianbergmann/code-unit/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" - }, - "funding": [ + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2025-03-19T07:56:08+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "4.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "183a9b2632194febd219bb9246eee421dad8d45e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", - "reference": "183a9b2632194febd219bb9246eee421dad8d45e", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "url": "https://tidelift.com/funding/github/packagist/sebastian/cli-parser", + "type": "tidelift" } ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:45:54+00:00" + "time": "2026-05-17T05:29:34+00:00" }, { "name": "sebastian/comparator", - "version": "6.3.3", + "version": "7.1.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9" + "reference": "7c65c1e79836812819705b473a90c12399542485" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", - "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/7c65c1e79836812819705b473a90c12399542485", + "reference": "7c65c1e79836812819705b473a90c12399542485", "shasum": "" }, "require": { "ext-dom": "*", "ext-mbstring": "*", - "php": ">=8.2", - "sebastian/diff": "^6.0", - "sebastian/exporter": "^6.0" + "php": ">=8.3", + "sebastian/diff": "^7.0", + "sebastian/exporter": "^7.0.3" }, "require-dev": { - "phpunit/phpunit": "^11.4" + "phpunit/phpunit": "^12.5.25" }, "suggest": { "ext-bcmath": "For comparing BcMath\\Number objects" @@ -9834,7 +9709,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "6.3-dev" + "dev-main": "7.1-dev" } }, "autoload": { @@ -9874,7 +9749,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.3" + "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.8" }, "funding": [ { @@ -9894,33 +9769,33 @@ "type": "tidelift" } ], - "time": "2026-01-24T09:26:40+00:00" + "time": "2026-05-21T04:45:25+00:00" }, { "name": "sebastian/complexity", - "version": "4.0.1", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" + "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", - "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/bad4316aba5303d0221f43f8cee37eb58d384bbb", + "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb", "shasum": "" }, "require": { "nikic/php-parser": "^5.0", - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -9944,7 +9819,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" + "source": "https://github.com/sebastianbergmann/complexity/tree/5.0.0" }, "funding": [ { @@ -9952,33 +9827,33 @@ "type": "github" } ], - "time": "2024-07-03T04:49:50+00:00" + "time": "2025-02-07T04:55:25+00:00" }, { "name": "sebastian/diff", - "version": "6.0.2", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" + "reference": "7ab1ea946c012266ca32390913653d844ecd085f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f", + "reference": "7ab1ea946c012266ca32390913653d844ecd085f", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0", - "symfony/process": "^4.2 || ^5" + "phpunit/phpunit": "^12.0", + "symfony/process": "^7.2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -10011,7 +9886,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" + "source": "https://github.com/sebastianbergmann/diff/tree/7.0.0" }, "funding": [ { @@ -10019,27 +9894,27 @@ "type": "github" } ], - "time": "2024-07-03T04:53:05+00:00" + "time": "2025-02-07T04:55:46+00:00" }, { "name": "sebastian/environment", - "version": "7.2.1", + "version": "8.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4" + "reference": "9d32c685773823b1983e256ae4ecd48a10d6e439" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4", - "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/9d32c685773823b1983e256ae4ecd48a10d6e439", + "reference": "9d32c685773823b1983e256ae4ecd48a10d6e439", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.5.26" }, "suggest": { "ext-posix": "*" @@ -10047,7 +9922,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "7.2-dev" + "dev-main": "8.1-dev" } }, "autoload": { @@ -10075,7 +9950,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1" + "source": "https://github.com/sebastianbergmann/environment/tree/8.1.2" }, "funding": [ { @@ -10095,34 +9970,34 @@ "type": "tidelift" } ], - "time": "2025-05-21T11:55:47+00:00" + "time": "2026-05-25T13:40:20+00:00" }, { "name": "sebastian/exporter", - "version": "6.3.2", + "version": "7.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "70a298763b40b213ec087c51c739efcaa90bcd74" + "reference": "c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74", - "reference": "70a298763b40b213ec087c51c739efcaa90bcd74", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23", + "reference": "c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": ">=8.2", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/recursion-context": "^7.0.1" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.5.25" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.3-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -10165,7 +10040,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2" + "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.3" }, "funding": [ { @@ -10185,35 +10060,35 @@ "type": "tidelift" } ], - "time": "2025-09-24T06:12:51+00:00" + "time": "2026-05-20T04:37:17+00:00" }, { "name": "sebastian/global-state", - "version": "7.0.2", + "version": "8.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "3be331570a721f9a4b5917f4209773de17f747d7" + "reference": "b164d3274d6537ab462591c5755f76a8f5b1aae9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", - "reference": "3be331570a721f9a4b5917f4209773de17f747d7", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b164d3274d6537ab462591c5755f76a8f5b1aae9", + "reference": "b164d3274d6537ab462591c5755f76a8f5b1aae9", "shasum": "" }, "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0.1" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.5.28" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -10239,41 +10114,53 @@ "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.3" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", + "type": "tidelift" } ], - "time": "2024-07-03T04:57:36+00:00" + "time": "2026-06-01T15:10:33+00:00" }, { "name": "sebastian/lines-of-code", - "version": "3.0.1", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" + "reference": "d543b8ef219dcd8da262cbb958639a96bedba10e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", - "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d543b8ef219dcd8da262cbb958639a96bedba10e", + "reference": "d543b8ef219dcd8da262cbb958639a96bedba10e", "shasum": "" }, "require": { - "nikic/php-parser": "^5.0", - "php": ">=8.2" + "nikic/php-parser": "^5.7.0", + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.5.25" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -10297,42 +10184,54 @@ "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/4.0.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/lines-of-code", + "type": "tidelift" } ], - "time": "2024-07-03T04:58:38+00:00" + "time": "2026-05-19T16:22:07+00:00" }, { "name": "sebastian/object-enumerator", - "version": "6.0.1", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "f5b498e631a74204185071eb41f33f38d64608aa" + "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", - "reference": "f5b498e631a74204185071eb41f33f38d64608aa", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1effe8e9b8e068e9ae228e542d5d11b5d16db894", + "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894", "shasum": "" }, "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -10355,7 +10254,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/7.0.0" }, "funding": [ { @@ -10363,32 +10262,32 @@ "type": "github" } ], - "time": "2024-07-03T05:00:13+00:00" + "time": "2025-02-07T04:57:48+00:00" }, { "name": "sebastian/object-reflector", - "version": "4.0.1", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" + "reference": "4bfa827c969c98be1e527abd576533293c634f6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", - "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/4bfa827c969c98be1e527abd576533293c634f6a", + "reference": "4bfa827c969c98be1e527abd576533293c634f6a", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -10411,7 +10310,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" + "source": "https://github.com/sebastianbergmann/object-reflector/tree/5.0.0" }, "funding": [ { @@ -10419,32 +10318,32 @@ "type": "github" } ], - "time": "2024-07-03T05:01:32+00:00" + "time": "2025-02-07T04:58:17+00:00" }, { "name": "sebastian/recursion-context", - "version": "6.0.3", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc" + "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc", - "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", + "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -10475,7 +10374,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/7.0.1" }, "funding": [ { @@ -10495,32 +10394,32 @@ "type": "tidelift" } ], - "time": "2025-08-13T04:42:22+00:00" + "time": "2025-08-13T04:44:59+00:00" }, { "name": "sebastian/type", - "version": "5.1.3", + "version": "6.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449" + "reference": "82ff822c2edc46724be9f7411d3163021f602773" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449", - "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/82ff822c2edc46724be9f7411d3163021f602773", + "reference": "82ff822c2edc46724be9f7411d3163021f602773", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.5.25" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -10544,7 +10443,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/type/issues", "security": "https://github.com/sebastianbergmann/type/security/policy", - "source": "https://github.com/sebastianbergmann/type/tree/5.1.3" + "source": "https://github.com/sebastianbergmann/type/tree/6.0.4" }, "funding": [ { @@ -10564,29 +10463,29 @@ "type": "tidelift" } ], - "time": "2025-08-09T06:55:48+00:00" + "time": "2026-05-20T06:45:45+00:00" }, { "name": "sebastian/version", - "version": "5.0.2", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" + "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", - "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c", + "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -10610,7 +10509,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/version/issues", "security": "https://github.com/sebastianbergmann/version/security/policy", - "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" + "source": "https://github.com/sebastianbergmann/version/tree/6.0.0" }, "funding": [ { @@ -10618,7 +10517,7 @@ "type": "github" } ], - "time": "2024-10-09T05:16:32+00:00" + "time": "2025-02-07T05:00:38+00:00" }, { "name": "squizlabs/php_codesniffer", @@ -10818,23 +10717,23 @@ }, { "name": "theseer/tokenizer", - "version": "1.3.1", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" + "reference": "7989e43bf381af0eac72e4f0ca5bcbfa81658be4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", - "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/7989e43bf381af0eac72e4f0ca5bcbfa81658be4", + "reference": "7989e43bf381af0eac72e4f0ca5bcbfa81658be4", "shasum": "" }, "require": { "ext-dom": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" + "php": "^8.1" }, "type": "library", "autoload": { @@ -10856,7 +10755,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.3.1" + "source": "https://github.com/theseer/tokenizer/tree/2.0.1" }, "funding": [ { @@ -10864,7 +10763,7 @@ "type": "github" } ], - "time": "2025-11-17T20:03:58+00:00" + "time": "2025-12-08T11:19:18+00:00" } ], "aliases": [], diff --git a/vendor/aws/aws-sdk-php/src/Sdk.php b/vendor/aws/aws-sdk-php/src/Sdk.php index 30dfc69b5..277c1cf4b 100644 --- a/vendor/aws/aws-sdk-php/src/Sdk.php +++ b/vendor/aws/aws-sdk-php/src/Sdk.php @@ -857,7 +857,7 @@ namespace Aws; */ class Sdk { - const VERSION = '3.388.0'; + const VERSION = '3.388.1'; /** @var array Arguments for creating clients */ private $args; diff --git a/vendor/aws/aws-sdk-php/src/data/appconfig/2019-10-09/api-2.json.php b/vendor/aws/aws-sdk-php/src/data/appconfig/2019-10-09/api-2.json.php index d2f99e4cf..9dd8b8d86 100644 --- a/vendor/aws/aws-sdk-php/src/data/appconfig/2019-10-09/api-2.json.php +++ b/vendor/aws/aws-sdk-php/src/data/appconfig/2019-10-09/api-2.json.php @@ -1,3 +1,3 @@ '2.0', 'metadata' => [ 'apiVersion' => '2019-10-09', 'endpointPrefix' => 'appconfig', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'protocols' => [ 'rest-json', ], 'serviceAbbreviation' => 'AppConfig', 'serviceFullName' => 'Amazon AppConfig', 'serviceId' => 'AppConfig', 'signatureVersion' => 'v4', 'signingName' => 'appconfig', 'uid' => 'appconfig-2019-10-09', 'auth' => [ 'aws.auth#sigv4', ], ], 'operations' => [ 'CreateApplication' => [ 'name' => 'CreateApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateApplicationRequest', ], 'output' => [ 'shape' => 'Application', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateConfigurationProfile' => [ 'name' => 'CreateConfigurationProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateConfigurationProfileRequest', ], 'output' => [ 'shape' => 'ConfigurationProfile', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ServiceQuotaExceededException', ], ], ], 'CreateDeploymentStrategy' => [ 'name' => 'CreateDeploymentStrategy', 'http' => [ 'method' => 'POST', 'requestUri' => '/deploymentstrategies', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDeploymentStrategyRequest', ], 'output' => [ 'shape' => 'DeploymentStrategy', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'BadRequestException', ], ], ], 'CreateEnvironment' => [ 'name' => 'CreateEnvironment', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications/{ApplicationId}/environments', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateEnvironmentRequest', ], 'output' => [ 'shape' => 'Environment', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ServiceQuotaExceededException', ], ], ], 'CreateExperimentDefinition' => [ 'name' => 'CreateExperimentDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateExperimentDefinitionRequest', ], 'output' => [ 'shape' => 'ExperimentDefinition', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateExtension' => [ 'name' => 'CreateExtension', 'http' => [ 'method' => 'POST', 'requestUri' => '/extensions', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateExtensionRequest', ], 'output' => [ 'shape' => 'Extension', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateExtensionAssociation' => [ 'name' => 'CreateExtensionAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/extensionassociations', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateExtensionAssociationRequest', ], 'output' => [ 'shape' => 'ExtensionAssociation', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ServiceQuotaExceededException', ], ], ], 'CreateHostedConfigurationVersion' => [ 'name' => 'CreateHostedConfigurationVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/hostedconfigurationversions', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateHostedConfigurationVersionRequest', ], 'output' => [ 'shape' => 'HostedConfigurationVersion', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'PayloadTooLargeException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DeleteApplication' => [ 'name' => 'DeleteApplication', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/applications/{ApplicationId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteApplicationRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'DeleteConfigurationProfile' => [ 'name' => 'DeleteConfigurationProfile', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteConfigurationProfileRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'DeleteDeploymentStrategy' => [ 'name' => 'DeleteDeploymentStrategy', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/deployementstrategies/{DeploymentStrategyId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDeploymentStrategyRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'DeleteEnvironment' => [ 'name' => 'DeleteEnvironment', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/applications/{ApplicationId}/environments/{EnvironmentId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteEnvironmentRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'DeleteExperimentDefinition' => [ 'name' => 'DeleteExperimentDefinition', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteExperimentDefinitionRequest', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteExtension' => [ 'name' => 'DeleteExtension', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/extensions/{ExtensionIdentifier}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteExtensionRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'DeleteExtensionAssociation' => [ 'name' => 'DeleteExtensionAssociation', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/extensionassociations/{ExtensionAssociationId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteExtensionAssociationRequest', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DeleteHostedConfigurationVersion' => [ 'name' => 'DeleteHostedConfigurationVersion', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/hostedconfigurationversions/{VersionNumber}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteHostedConfigurationVersionRequest', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetAccountSettings' => [ 'name' => 'GetAccountSettings', 'http' => [ 'method' => 'GET', 'requestUri' => '/settings', 'responseCode' => 200, ], 'output' => [ 'shape' => 'AccountSettings', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetApplication' => [ 'name' => 'GetApplication', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetApplicationRequest', ], 'output' => [ 'shape' => 'Application', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetConfiguration' => [ 'name' => 'GetConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{Application}/environments/{Environment}/configurations/{Configuration}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetConfigurationRequest', ], 'output' => [ 'shape' => 'Configuration', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This API has been deprecated in favor of the GetLatestConfiguration API used in conjunction with StartConfigurationSession.', ], 'GetConfigurationProfile' => [ 'name' => 'GetConfigurationProfile', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetConfigurationProfileRequest', ], 'output' => [ 'shape' => 'ConfigurationProfile', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetDeployment' => [ 'name' => 'GetDeployment', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}/environments/{EnvironmentId}/deployments/{DeploymentNumber}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDeploymentRequest', ], 'output' => [ 'shape' => 'Deployment', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetDeploymentStrategy' => [ 'name' => 'GetDeploymentStrategy', 'http' => [ 'method' => 'GET', 'requestUri' => '/deploymentstrategies/{DeploymentStrategyId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDeploymentStrategyRequest', ], 'output' => [ 'shape' => 'DeploymentStrategy', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetEnvironment' => [ 'name' => 'GetEnvironment', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}/environments/{EnvironmentId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetEnvironmentRequest', ], 'output' => [ 'shape' => 'Environment', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetExperimentDefinition' => [ 'name' => 'GetExperimentDefinition', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetExperimentDefinitionRequest', ], 'output' => [ 'shape' => 'ExperimentDefinition', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetExperimentRun' => [ 'name' => 'GetExperimentRun', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}/experimentruns/{Run}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetExperimentRunRequest', ], 'output' => [ 'shape' => 'ExperimentRun', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], 'readonly' => true, ], 'GetExtension' => [ 'name' => 'GetExtension', 'http' => [ 'method' => 'GET', 'requestUri' => '/extensions/{ExtensionIdentifier}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetExtensionRequest', ], 'output' => [ 'shape' => 'Extension', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetExtensionAssociation' => [ 'name' => 'GetExtensionAssociation', 'http' => [ 'method' => 'GET', 'requestUri' => '/extensionassociations/{ExtensionAssociationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetExtensionAssociationRequest', ], 'output' => [ 'shape' => 'ExtensionAssociation', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetHostedConfigurationVersion' => [ 'name' => 'GetHostedConfigurationVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/hostedconfigurationversions/{VersionNumber}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetHostedConfigurationVersionRequest', ], 'output' => [ 'shape' => 'HostedConfigurationVersion', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListApplications' => [ 'name' => 'ListApplications', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListApplicationsRequest', ], 'output' => [ 'shape' => 'Applications', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListConfigurationProfiles' => [ 'name' => 'ListConfigurationProfiles', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListConfigurationProfilesRequest', ], 'output' => [ 'shape' => 'ConfigurationProfiles', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListDeploymentStrategies' => [ 'name' => 'ListDeploymentStrategies', 'http' => [ 'method' => 'GET', 'requestUri' => '/deploymentstrategies', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDeploymentStrategiesRequest', ], 'output' => [ 'shape' => 'DeploymentStrategies', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListDeployments' => [ 'name' => 'ListDeployments', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}/environments/{EnvironmentId}/deployments', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDeploymentsRequest', ], 'output' => [ 'shape' => 'Deployments', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListEnvironments' => [ 'name' => 'ListEnvironments', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}/environments', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListEnvironmentsRequest', ], 'output' => [ 'shape' => 'Environments', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListExperimentDefinitions' => [ 'name' => 'ListExperimentDefinitions', 'http' => [ 'method' => 'GET', 'requestUri' => '/experimentdefinitions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListExperimentDefinitionsRequest', ], 'output' => [ 'shape' => 'ExperimentDefinitions', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListExperimentRunEvents' => [ 'name' => 'ListExperimentRunEvents', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}/experimentruns/{Run}/events', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListExperimentRunEventsRequest', ], 'output' => [ 'shape' => 'ExperimentRunEvents', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], 'readonly' => true, ], 'ListExperimentRuns' => [ 'name' => 'ListExperimentRuns', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}/experimentruns', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListExperimentRunsRequest', ], 'output' => [ 'shape' => 'ExperimentRuns', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], 'readonly' => true, ], 'ListExtensionAssociations' => [ 'name' => 'ListExtensionAssociations', 'http' => [ 'method' => 'GET', 'requestUri' => '/extensionassociations', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListExtensionAssociationsRequest', ], 'output' => [ 'shape' => 'ExtensionAssociations', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListExtensions' => [ 'name' => 'ListExtensions', 'http' => [ 'method' => 'GET', 'requestUri' => '/extensions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListExtensionsRequest', ], 'output' => [ 'shape' => 'Extensions', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListHostedConfigurationVersions' => [ 'name' => 'ListHostedConfigurationVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/hostedconfigurationversions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListHostedConfigurationVersionsRequest', ], 'output' => [ 'shape' => 'HostedConfigurationVersions', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags/{ResourceArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ResourceTags', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StartDeployment' => [ 'name' => 'StartDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications/{ApplicationId}/environments/{EnvironmentId}/deployments', 'responseCode' => 201, ], 'input' => [ 'shape' => 'StartDeploymentRequest', ], 'output' => [ 'shape' => 'Deployment', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StartExperimentRun' => [ 'name' => 'StartExperimentRun', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}/experimentruns', 'responseCode' => 201, ], 'input' => [ 'shape' => 'StartExperimentRunRequest', ], 'output' => [ 'shape' => 'ExperimentRun', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StopDeployment' => [ 'name' => 'StopDeployment', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/applications/{ApplicationId}/environments/{EnvironmentId}/deployments/{DeploymentNumber}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'StopDeploymentRequest', ], 'output' => [ 'shape' => 'Deployment', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'StopExperimentRun' => [ 'name' => 'StopExperimentRun', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}/experimentruns/{Run}/stop', 'responseCode' => 200, ], 'input' => [ 'shape' => 'StopExperimentRunRequest', ], 'output' => [ 'shape' => 'ExperimentRun', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tags/{ResourceArn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/tags/{ResourceArn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateAccountSettings' => [ 'name' => 'UpdateAccountSettings', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/settings', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateAccountSettingsRequest', ], 'output' => [ 'shape' => 'AccountSettings', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateApplication' => [ 'name' => 'UpdateApplication', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/applications/{ApplicationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateApplicationRequest', ], 'output' => [ 'shape' => 'Application', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateConfigurationProfile' => [ 'name' => 'UpdateConfigurationProfile', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateConfigurationProfileRequest', ], 'output' => [ 'shape' => 'ConfigurationProfile', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateDeploymentStrategy' => [ 'name' => 'UpdateDeploymentStrategy', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/deploymentstrategies/{DeploymentStrategyId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateDeploymentStrategyRequest', ], 'output' => [ 'shape' => 'DeploymentStrategy', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateEnvironment' => [ 'name' => 'UpdateEnvironment', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/applications/{ApplicationId}/environments/{EnvironmentId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateEnvironmentRequest', ], 'output' => [ 'shape' => 'Environment', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateExperimentDefinition' => [ 'name' => 'UpdateExperimentDefinition', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateExperimentDefinitionRequest', ], 'output' => [ 'shape' => 'ExperimentDefinition', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateExperimentRun' => [ 'name' => 'UpdateExperimentRun', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}/experimentruns/{Run}/update', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateExperimentRunRequest', ], 'output' => [ 'shape' => 'ExperimentRun', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateExtension' => [ 'name' => 'UpdateExtension', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/extensions/{ExtensionIdentifier}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateExtensionRequest', ], 'output' => [ 'shape' => 'Extension', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateExtensionAssociation' => [ 'name' => 'UpdateExtensionAssociation', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/extensionassociations/{ExtensionAssociationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateExtensionAssociationRequest', ], 'output' => [ 'shape' => 'ExtensionAssociation', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ValidateConfiguration' => [ 'name' => 'ValidateConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/validators', 'responseCode' => 204, ], 'input' => [ 'shape' => 'ValidateConfigurationRequest', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], ], 'shapes' => [ 'AccountSettings' => [ 'type' => 'structure', 'members' => [ 'DeletionProtection' => [ 'shape' => 'DeletionProtectionSettings', ], 'VendedMetrics' => [ 'shape' => 'VendedMetricsSettings', ], ], ], 'Action' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], 'Uri' => [ 'shape' => 'Uri', ], 'RoleArn' => [ 'shape' => 'Arn', ], ], ], 'ActionInvocation' => [ 'type' => 'structure', 'members' => [ 'ExtensionIdentifier' => [ 'shape' => 'Identifier', ], 'ActionName' => [ 'shape' => 'Name', ], 'Uri' => [ 'shape' => 'Uri', ], 'RoleArn' => [ 'shape' => 'Arn', ], 'ErrorMessage' => [ 'shape' => 'String', ], 'ErrorCode' => [ 'shape' => 'String', ], 'InvocationId' => [ 'shape' => 'Id', ], ], ], 'ActionInvocations' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActionInvocation', ], ], 'ActionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Action', ], 'max' => 1, 'min' => 1, ], 'ActionPoint' => [ 'type' => 'string', 'enum' => [ 'PRE_CREATE_HOSTED_CONFIGURATION_VERSION', 'PRE_START_DEPLOYMENT', 'AT_DEPLOYMENT_TICK', 'ON_DEPLOYMENT_START', 'ON_DEPLOYMENT_STEP', 'ON_DEPLOYMENT_BAKING', 'ON_DEPLOYMENT_COMPLETE', 'ON_DEPLOYMENT_ROLLED_BACK', ], ], 'ActionsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ActionPoint', ], 'value' => [ 'shape' => 'ActionList', ], 'max' => 5, 'min' => 1, ], 'Application' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], ], ], 'ApplicationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Application', ], ], 'Applications' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ApplicationList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'AppliedExtension' => [ 'type' => 'structure', 'members' => [ 'ExtensionId' => [ 'shape' => 'Id', ], 'ExtensionAssociationId' => [ 'shape' => 'Id', ], 'VersionNumber' => [ 'shape' => 'Integer', ], 'Parameters' => [ 'shape' => 'ParameterValueMap', ], ], ], 'AppliedExtensions' => [ 'type' => 'list', 'member' => [ 'shape' => 'AppliedExtension', ], ], 'Arn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => 'arn:(aws[a-zA-Z-]*)?:[a-z]+:((eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:[a-zA-Z0-9-_/:.]+', ], 'AttributeKey' => [ 'type' => 'string', 'pattern' => '(?!enabled$)[a-z][a-zA-Z0-9_-]{0,63}', ], 'AttributeString' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, ], 'AttributeValue' => [ 'type' => 'structure', 'members' => [ 'StringValue' => [ 'shape' => 'AttributeString', ], 'NumberValue' => [ 'shape' => 'Double', 'box' => true, ], 'BooleanValue' => [ 'shape' => 'Boolean', 'box' => true, ], 'StringArray' => [ 'shape' => 'StringList', ], 'NumberArray' => [ 'shape' => 'NumberList', ], ], 'union' => true, ], 'AttributeValueMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeKey', ], 'value' => [ 'shape' => 'AttributeValue', ], 'max' => 25, 'min' => 0, ], 'BadRequestDetails' => [ 'type' => 'structure', 'members' => [ 'InvalidConfiguration' => [ 'shape' => 'InvalidConfigurationDetailList', ], ], 'union' => true, ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'Reason' => [ 'shape' => 'BadRequestReason', ], 'Details' => [ 'shape' => 'BadRequestDetails', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'BadRequestReason' => [ 'type' => 'string', 'enum' => [ 'InvalidConfiguration', ], ], 'Blob' => [ 'type' => 'blob', 'sensitive' => true, ], 'Boolean' => [ 'type' => 'boolean', ], 'BytesMeasure' => [ 'type' => 'string', 'enum' => [ 'KILOBYTES', ], ], 'Configuration' => [ 'type' => 'structure', 'members' => [ 'Content' => [ 'shape' => 'Blob', ], 'ConfigurationVersion' => [ 'shape' => 'Version', 'location' => 'header', 'locationName' => 'Configuration-Version', ], 'ContentType' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'Content-Type', ], ], 'payload' => 'Content', ], 'ConfigurationProfile' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'LongName', ], 'Description' => [ 'shape' => 'Description', ], 'LocationUri' => [ 'shape' => 'Uri', ], 'RetrievalRoleArn' => [ 'shape' => 'RoleArn', ], 'Validators' => [ 'shape' => 'ValidatorList', ], 'Type' => [ 'shape' => 'ConfigurationProfileType', ], 'KmsKeyArn' => [ 'shape' => 'Arn', ], 'KmsKeyIdentifier' => [ 'shape' => 'KmsKeyIdentifier', ], ], ], 'ConfigurationProfileSummary' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'LongName', ], 'LocationUri' => [ 'shape' => 'Uri', ], 'ValidatorTypes' => [ 'shape' => 'ValidatorTypeList', ], 'Type' => [ 'shape' => 'ConfigurationProfileType', ], ], ], 'ConfigurationProfileSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationProfileSummary', ], ], 'ConfigurationProfileType' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9\\.\\-]+', ], 'ConfigurationProfiles' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ConfigurationProfileSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'CreateApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateConfigurationProfileRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'Name', 'LocationUri', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'Name' => [ 'shape' => 'LongName', ], 'Description' => [ 'shape' => 'Description', ], 'LocationUri' => [ 'shape' => 'Uri', ], 'RetrievalRoleArn' => [ 'shape' => 'RoleArn', ], 'Validators' => [ 'shape' => 'ValidatorList', ], 'Tags' => [ 'shape' => 'TagMap', ], 'Type' => [ 'shape' => 'ConfigurationProfileType', ], 'KmsKeyIdentifier' => [ 'shape' => 'KmsKeyIdentifier', ], ], ], 'CreateDeploymentStrategyRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'DeploymentDurationInMinutes', 'GrowthFactor', ], 'members' => [ 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], 'DeploymentDurationInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', 'box' => true, ], 'FinalBakeTimeInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', ], 'GrowthFactor' => [ 'shape' => 'GrowthFactor', 'box' => true, ], 'GrowthType' => [ 'shape' => 'GrowthType', ], 'ReplicateTo' => [ 'shape' => 'ReplicateTo', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateEnvironmentRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'Name', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], 'Monitors' => [ 'shape' => 'MonitorList', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateExperimentDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'Name', 'ConfigurationProfileIdentifier', 'EnvironmentIdentifier', 'FlagKey', 'Treatments', 'Control', 'AudienceRule', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'Name' => [ 'shape' => 'NameWithReservedAwsPrefix', ], 'ConfigurationProfileIdentifier' => [ 'shape' => 'Identifier', ], 'EnvironmentIdentifier' => [ 'shape' => 'Identifier', ], 'FlagKey' => [ 'shape' => 'FlagKey', ], 'Treatments' => [ 'shape' => 'TreatmentInputList', ], 'Control' => [ 'shape' => 'TreatmentInput', ], 'AudienceRule' => [ 'shape' => 'Rule', ], 'Hypothesis' => [ 'shape' => 'Description', ], 'AudienceDescription' => [ 'shape' => 'Description', ], 'LaunchCriteria' => [ 'shape' => 'Description', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateExtensionAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'ExtensionIdentifier', 'ResourceIdentifier', ], 'members' => [ 'ExtensionIdentifier' => [ 'shape' => 'Identifier', ], 'ExtensionVersionNumber' => [ 'shape' => 'Integer', 'box' => true, ], 'ResourceIdentifier' => [ 'shape' => 'Identifier', ], 'Parameters' => [ 'shape' => 'ParameterValueMap', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateExtensionRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'Actions', ], 'members' => [ 'Name' => [ 'shape' => 'ExtensionOrParameterName', ], 'Description' => [ 'shape' => 'Description', ], 'Actions' => [ 'shape' => 'ActionsMap', ], 'Parameters' => [ 'shape' => 'ParameterMap', ], 'Tags' => [ 'shape' => 'TagMap', ], 'LatestVersionNumber' => [ 'shape' => 'Integer', 'box' => true, 'location' => 'header', 'locationName' => 'Latest-Version-Number', ], ], ], 'CreateHostedConfigurationVersionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'ConfigurationProfileId', 'Content', 'ContentType', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', 'location' => 'uri', 'locationName' => 'ConfigurationProfileId', ], 'Description' => [ 'shape' => 'Description', 'location' => 'header', 'locationName' => 'Description', ], 'Content' => [ 'shape' => 'Blob', ], 'ContentType' => [ 'shape' => 'StringWithLengthBetween1And255', 'location' => 'header', 'locationName' => 'Content-Type', ], 'LatestVersionNumber' => [ 'shape' => 'Integer', 'box' => true, 'location' => 'header', 'locationName' => 'Latest-Version-Number', ], 'VersionLabel' => [ 'shape' => 'VersionLabel', 'location' => 'header', 'locationName' => 'VersionLabel', ], ], 'payload' => 'Content', ], 'DeleteApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], ], ], 'DeleteConfigurationProfileRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'ConfigurationProfileId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', 'location' => 'uri', 'locationName' => 'ConfigurationProfileId', ], 'DeletionProtectionCheck' => [ 'shape' => 'DeletionProtectionCheck', 'location' => 'header', 'locationName' => 'x-amzn-deletion-protection-check', ], ], ], 'DeleteDeploymentStrategyRequest' => [ 'type' => 'structure', 'required' => [ 'DeploymentStrategyId', ], 'members' => [ 'DeploymentStrategyId' => [ 'shape' => 'DeploymentStrategyId', 'location' => 'uri', 'locationName' => 'DeploymentStrategyId', ], ], ], 'DeleteEnvironmentRequest' => [ 'type' => 'structure', 'required' => [ 'EnvironmentId', 'ApplicationId', ], 'members' => [ 'EnvironmentId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'EnvironmentId', ], 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'DeletionProtectionCheck' => [ 'shape' => 'DeletionProtectionCheck', 'location' => 'header', 'locationName' => 'x-amzn-deletion-protection-check', ], ], ], 'DeleteExperimentDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], 'DeleteType' => [ 'shape' => 'DeleteType', 'location' => 'querystring', 'locationName' => 'delete_type', ], ], ], 'DeleteExtensionAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'ExtensionAssociationId', ], 'members' => [ 'ExtensionAssociationId' => [ 'shape' => 'Id', 'location' => 'uri', 'locationName' => 'ExtensionAssociationId', ], ], ], 'DeleteExtensionRequest' => [ 'type' => 'structure', 'required' => [ 'ExtensionIdentifier', ], 'members' => [ 'ExtensionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExtensionIdentifier', ], 'VersionNumber' => [ 'shape' => 'Integer', 'box' => true, 'location' => 'querystring', 'locationName' => 'version', ], ], ], 'DeleteHostedConfigurationVersionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'ConfigurationProfileId', 'VersionNumber', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', 'location' => 'uri', 'locationName' => 'ConfigurationProfileId', ], 'VersionNumber' => [ 'shape' => 'Integer', 'location' => 'uri', 'locationName' => 'VersionNumber', ], ], ], 'DeleteType' => [ 'type' => 'string', 'enum' => [ 'ARCHIVE', 'DESTROY', ], ], 'DeletionProtectionCheck' => [ 'type' => 'string', 'enum' => [ 'ACCOUNT_DEFAULT', 'APPLY', 'BYPASS', ], ], 'DeletionProtectionDuration' => [ 'type' => 'integer', 'box' => true, 'max' => 1440, 'min' => 15, ], 'DeletionProtectionSettings' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'box' => true, ], 'ProtectionPeriodInMinutes' => [ 'shape' => 'DeletionProtectionDuration', 'box' => true, ], ], ], 'Deployment' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'EnvironmentId' => [ 'shape' => 'Id', ], 'DeploymentStrategyId' => [ 'shape' => 'Id', ], 'ConfigurationProfileId' => [ 'shape' => 'Id', ], 'DeploymentNumber' => [ 'shape' => 'Integer', ], 'ConfigurationName' => [ 'shape' => 'Name', ], 'ConfigurationLocationUri' => [ 'shape' => 'Uri', ], 'ConfigurationVersion' => [ 'shape' => 'Version', ], 'Description' => [ 'shape' => 'Description', ], 'DeploymentDurationInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', ], 'GrowthType' => [ 'shape' => 'GrowthType', ], 'GrowthFactor' => [ 'shape' => 'Percentage', ], 'FinalBakeTimeInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', ], 'State' => [ 'shape' => 'DeploymentState', ], 'EventLog' => [ 'shape' => 'DeploymentEvents', ], 'PercentageComplete' => [ 'shape' => 'Percentage', ], 'StartedAt' => [ 'shape' => 'Iso8601DateTime', ], 'CompletedAt' => [ 'shape' => 'Iso8601DateTime', ], 'AppliedExtensions' => [ 'shape' => 'AppliedExtensions', ], 'KmsKeyArn' => [ 'shape' => 'Arn', ], 'KmsKeyIdentifier' => [ 'shape' => 'KmsKeyIdentifier', ], 'VersionLabel' => [ 'shape' => 'VersionLabel', ], ], ], 'DeploymentEvent' => [ 'type' => 'structure', 'members' => [ 'EventType' => [ 'shape' => 'DeploymentEventType', ], 'TriggeredBy' => [ 'shape' => 'TriggeredBy', ], 'Description' => [ 'shape' => 'Description', ], 'ActionInvocations' => [ 'shape' => 'ActionInvocations', ], 'OccurredAt' => [ 'shape' => 'Iso8601DateTime', ], ], ], 'DeploymentEventType' => [ 'type' => 'string', 'enum' => [ 'PERCENTAGE_UPDATED', 'ROLLBACK_STARTED', 'ROLLBACK_COMPLETED', 'BAKE_TIME_STARTED', 'DEPLOYMENT_STARTED', 'DEPLOYMENT_COMPLETED', 'REVERT_COMPLETED', ], ], 'DeploymentEvents' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentEvent', ], ], 'DeploymentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentSummary', ], ], 'DeploymentParameters' => [ 'type' => 'structure', 'members' => [ 'DynamicExtensionParameters' => [ 'shape' => 'DynamicParameterMap', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'DeploymentState' => [ 'type' => 'string', 'enum' => [ 'BAKING', 'VALIDATING', 'DEPLOYING', 'COMPLETE', 'ROLLING_BACK', 'ROLLED_BACK', 'REVERTED', ], ], 'DeploymentStrategies' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'DeploymentStrategyList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DeploymentStrategy' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], 'DeploymentDurationInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', ], 'GrowthType' => [ 'shape' => 'GrowthType', ], 'GrowthFactor' => [ 'shape' => 'Percentage', ], 'FinalBakeTimeInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', ], 'ReplicateTo' => [ 'shape' => 'ReplicateTo', ], ], ], 'DeploymentStrategyId' => [ 'type' => 'string', 'pattern' => '(^[a-z0-9]{4,7}$|^AppConfig\\.[A-Za-z0-9]{9,40}$)', ], 'DeploymentStrategyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentStrategy', ], ], 'DeploymentSummary' => [ 'type' => 'structure', 'members' => [ 'DeploymentNumber' => [ 'shape' => 'Integer', ], 'ConfigurationProfileId' => [ 'shape' => 'Id', ], 'ConfigurationName' => [ 'shape' => 'Name', ], 'ConfigurationVersion' => [ 'shape' => 'Version', ], 'DeploymentDurationInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', ], 'GrowthType' => [ 'shape' => 'GrowthType', ], 'GrowthFactor' => [ 'shape' => 'Percentage', ], 'FinalBakeTimeInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', ], 'State' => [ 'shape' => 'DeploymentState', ], 'PercentageComplete' => [ 'shape' => 'Percentage', ], 'StartedAt' => [ 'shape' => 'Iso8601DateTime', ], 'CompletedAt' => [ 'shape' => 'Iso8601DateTime', ], 'VersionLabel' => [ 'shape' => 'VersionLabel', ], 'Type' => [ 'shape' => 'DeploymentType', ], ], ], 'DeploymentType' => [ 'type' => 'string', 'enum' => [ 'USER', 'MANAGED', ], ], 'Deployments' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'DeploymentList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'Description' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, ], 'Double' => [ 'type' => 'double', ], 'DynamicParameterKey' => [ 'type' => 'string', 'pattern' => '^([^#\\n]{1,96})#([^\\/#\\n]{1,64})$', ], 'DynamicParameterMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'DynamicParameterKey', ], 'value' => [ 'shape' => 'StringWithLengthBetween1And2048', ], 'max' => 10, 'min' => 1, 'sensitive' => true, ], 'EntityId' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'Environment' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], 'State' => [ 'shape' => 'EnvironmentState', ], 'Monitors' => [ 'shape' => 'MonitorList', ], ], ], 'EnvironmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Environment', ], ], 'EnvironmentState' => [ 'type' => 'string', 'enum' => [ 'READY_FOR_DEPLOYMENT', 'DEPLOYING', 'ROLLING_BACK', 'ROLLED_BACK', 'REVERTED', ], ], 'Environments' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'EnvironmentList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ExperimentDefinition' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'Name', ], 'Hypothesis' => [ 'shape' => 'Description', ], 'Status' => [ 'shape' => 'ExperimentDefinitionStatus', ], 'ConfigurationProfileId' => [ 'shape' => 'Id', ], 'EnvironmentId' => [ 'shape' => 'Id', ], 'FlagKey' => [ 'shape' => 'FlagKey', ], 'AudienceRule' => [ 'shape' => 'Rule', ], 'AudienceDescription' => [ 'shape' => 'Description', ], 'LaunchCriteria' => [ 'shape' => 'Description', ], 'Treatments' => [ 'shape' => 'TreatmentList', ], 'Control' => [ 'shape' => 'Treatment', ], 'CreatedAt' => [ 'shape' => 'Iso8601DateTime', ], 'UpdatedAt' => [ 'shape' => 'Iso8601DateTime', ], 'KmsKeyIdentifier' => [ 'shape' => 'KmsKeyIdentifier', ], ], ], 'ExperimentDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExperimentDefinitionSummary', ], ], 'ExperimentDefinitionSnapshot' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'Name', ], 'Hypothesis' => [ 'shape' => 'Description', ], 'ConfigurationProfileId' => [ 'shape' => 'Id', ], 'EnvironmentId' => [ 'shape' => 'Id', ], 'FlagKey' => [ 'shape' => 'FlagKey', ], 'AudienceRule' => [ 'shape' => 'Rule', ], 'AudienceDescription' => [ 'shape' => 'Description', ], 'LaunchCriteria' => [ 'shape' => 'Description', ], 'Treatments' => [ 'shape' => 'TreatmentList', ], 'Control' => [ 'shape' => 'Treatment', ], ], ], 'ExperimentDefinitionStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'IDLE', 'ARCHIVED', ], ], 'ExperimentDefinitionSummary' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'Name', ], 'Hypothesis' => [ 'shape' => 'Description', ], 'Status' => [ 'shape' => 'ExperimentDefinitionStatus', ], 'ConfigurationProfileId' => [ 'shape' => 'Id', ], 'EnvironmentId' => [ 'shape' => 'Id', ], 'FlagKey' => [ 'shape' => 'FlagKey', ], 'CreatedAt' => [ 'shape' => 'Iso8601DateTime', ], 'UpdatedAt' => [ 'shape' => 'Iso8601DateTime', ], ], ], 'ExperimentDefinitions' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ExperimentDefinitionList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ExperimentRun' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'ExperimentDefinitionId' => [ 'shape' => 'Id', ], 'Run' => [ 'shape' => 'Integer', ], 'Description' => [ 'shape' => 'Description', ], 'Status' => [ 'shape' => 'ExperimentRunStatus', ], 'ExposurePercentage' => [ 'shape' => 'NullablePercentage', ], 'TreatmentOverrides' => [ 'shape' => 'TreatmentOverrides', ], 'Result' => [ 'shape' => 'ExperimentRunResult', ], 'StartedAt' => [ 'shape' => 'Iso8601DateTime', ], 'UpdatedAt' => [ 'shape' => 'Iso8601DateTime', ], 'EndedAt' => [ 'shape' => 'Iso8601DateTime', ], 'ExperimentDefinitionSnapshot' => [ 'shape' => 'ExperimentDefinitionSnapshot', ], ], ], 'ExperimentRunEvent' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'Description', ], 'AssociatedDeployment' => [ 'shape' => 'Arn', ], 'EventType' => [ 'shape' => 'ExperimentRunEventType', ], 'OccurredAt' => [ 'shape' => 'Iso8601DateTime', ], 'TriggeredBy' => [ 'shape' => 'TriggeredBy', ], 'ExposurePercentage' => [ 'shape' => 'NullablePercentage', 'box' => true, ], 'TreatmentOverrides' => [ 'shape' => 'TreatmentOverrides', ], ], ], 'ExperimentRunEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExperimentRunEvent', ], ], 'ExperimentRunEventType' => [ 'type' => 'string', 'enum' => [ 'RUN_STARTED', 'EXPOSURE_UPDATED', 'OVERRIDES_UPDATED', 'RUN_STOPPED', ], ], 'ExperimentRunEvents' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ExperimentRunEventList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ExperimentRunResult' => [ 'type' => 'structure', 'members' => [ 'ExecutiveSummary' => [ 'shape' => 'Description', ], 'ReasonsToLaunch' => [ 'shape' => 'Description', ], 'ReasonsNotToLaunch' => [ 'shape' => 'Description', ], ], 'box' => true, ], 'ExperimentRunStatus' => [ 'type' => 'string', 'enum' => [ 'RUNNING', 'DONE', ], ], 'ExperimentRunSummary' => [ 'type' => 'structure', 'members' => [ 'ExperimentDefinitionId' => [ 'shape' => 'Id', ], 'Run' => [ 'shape' => 'Integer', ], 'Description' => [ 'shape' => 'Description', ], 'Status' => [ 'shape' => 'ExperimentRunStatus', ], 'StartedAt' => [ 'shape' => 'Iso8601DateTime', ], 'UpdatedAt' => [ 'shape' => 'Iso8601DateTime', ], 'EndedAt' => [ 'shape' => 'Iso8601DateTime', ], ], ], 'ExperimentRunSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExperimentRunSummary', ], ], 'ExperimentRuns' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ExperimentRunSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'Extension' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'Name', ], 'VersionNumber' => [ 'shape' => 'Integer', ], 'Arn' => [ 'shape' => 'Arn', ], 'Description' => [ 'shape' => 'Description', ], 'Actions' => [ 'shape' => 'ActionsMap', ], 'Parameters' => [ 'shape' => 'ParameterMap', ], ], ], 'ExtensionAssociation' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Identifier', ], 'ExtensionArn' => [ 'shape' => 'Arn', ], 'ResourceArn' => [ 'shape' => 'Arn', ], 'Arn' => [ 'shape' => 'Arn', ], 'Parameters' => [ 'shape' => 'ParameterValueMap', ], 'ExtensionVersionNumber' => [ 'shape' => 'Integer', ], ], ], 'ExtensionAssociationSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExtensionAssociationSummary', ], ], 'ExtensionAssociationSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Identifier', ], 'ExtensionArn' => [ 'shape' => 'Arn', ], 'ResourceArn' => [ 'shape' => 'Arn', ], ], ], 'ExtensionAssociations' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ExtensionAssociationSummaries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ExtensionOrParameterName' => [ 'type' => 'string', 'pattern' => '^[^\\/#:\\n]{1,64}$', ], 'ExtensionSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExtensionSummary', ], ], 'ExtensionSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'Name', ], 'VersionNumber' => [ 'shape' => 'Integer', ], 'Arn' => [ 'shape' => 'Arn', ], 'Description' => [ 'shape' => 'Description', ], ], ], 'Extensions' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ExtensionSummaries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'FlagKey' => [ 'type' => 'string', 'pattern' => '^[a-z][a-zA-Z0-9_-]{1,64}', ], 'FlagValue' => [ 'type' => 'structure', 'required' => [ 'Enabled', ], 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'AttributeValues' => [ 'shape' => 'AttributeValueMap', ], ], ], 'Float' => [ 'type' => 'float', ], 'GetApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], ], ], 'GetConfigurationProfileRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'ConfigurationProfileId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', 'location' => 'uri', 'locationName' => 'ConfigurationProfileId', ], ], ], 'GetConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Application', 'Environment', 'Configuration', 'ClientId', ], 'members' => [ 'Application' => [ 'shape' => 'StringWithLengthBetween1And64', 'location' => 'uri', 'locationName' => 'Application', ], 'Environment' => [ 'shape' => 'StringWithLengthBetween1And64', 'location' => 'uri', 'locationName' => 'Environment', ], 'Configuration' => [ 'shape' => 'StringWithLengthBetween1And64', 'location' => 'uri', 'locationName' => 'Configuration', ], 'ClientId' => [ 'shape' => 'StringWithLengthBetween1And64', 'location' => 'querystring', 'locationName' => 'client_id', ], 'ClientConfigurationVersion' => [ 'shape' => 'Version', 'location' => 'querystring', 'locationName' => 'client_configuration_version', ], ], ], 'GetDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'EnvironmentId', 'DeploymentNumber', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'EnvironmentId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'EnvironmentId', ], 'DeploymentNumber' => [ 'shape' => 'Integer', 'box' => true, 'location' => 'uri', 'locationName' => 'DeploymentNumber', ], ], ], 'GetDeploymentStrategyRequest' => [ 'type' => 'structure', 'required' => [ 'DeploymentStrategyId', ], 'members' => [ 'DeploymentStrategyId' => [ 'shape' => 'DeploymentStrategyId', 'location' => 'uri', 'locationName' => 'DeploymentStrategyId', ], ], ], 'GetEnvironmentRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'EnvironmentId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'EnvironmentId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'EnvironmentId', ], ], ], 'GetExperimentDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], ], ], 'GetExperimentRunRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', 'Run', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], 'Run' => [ 'shape' => 'PositiveInteger', 'box' => true, 'location' => 'uri', 'locationName' => 'Run', ], ], ], 'GetExtensionAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'ExtensionAssociationId', ], 'members' => [ 'ExtensionAssociationId' => [ 'shape' => 'Id', 'location' => 'uri', 'locationName' => 'ExtensionAssociationId', ], ], ], 'GetExtensionRequest' => [ 'type' => 'structure', 'required' => [ 'ExtensionIdentifier', ], 'members' => [ 'ExtensionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExtensionIdentifier', ], 'VersionNumber' => [ 'shape' => 'Integer', 'box' => true, 'location' => 'querystring', 'locationName' => 'version_number', ], ], ], 'GetHostedConfigurationVersionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'ConfigurationProfileId', 'VersionNumber', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', 'location' => 'uri', 'locationName' => 'ConfigurationProfileId', ], 'VersionNumber' => [ 'shape' => 'Integer', 'location' => 'uri', 'locationName' => 'VersionNumber', ], ], ], 'GrowthFactor' => [ 'type' => 'float', 'max' => 100.0, 'min' => 1.0, ], 'GrowthType' => [ 'type' => 'string', 'enum' => [ 'LINEAR', 'EXPONENTIAL', ], ], 'HostedConfigurationVersion' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', 'location' => 'header', 'locationName' => 'Application-Id', ], 'ConfigurationProfileId' => [ 'shape' => 'Id', 'location' => 'header', 'locationName' => 'Configuration-Profile-Id', ], 'VersionNumber' => [ 'shape' => 'Integer', 'location' => 'header', 'locationName' => 'Version-Number', ], 'Description' => [ 'shape' => 'Description', 'location' => 'header', 'locationName' => 'Description', ], 'Content' => [ 'shape' => 'Blob', ], 'ContentType' => [ 'shape' => 'StringWithLengthBetween1And255', 'location' => 'header', 'locationName' => 'Content-Type', ], 'VersionLabel' => [ 'shape' => 'VersionLabel', 'location' => 'header', 'locationName' => 'VersionLabel', ], 'KmsKeyArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'KmsKeyArn', ], ], 'payload' => 'Content', ], 'HostedConfigurationVersionSummary' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'ConfigurationProfileId' => [ 'shape' => 'Id', ], 'VersionNumber' => [ 'shape' => 'Integer', ], 'Description' => [ 'shape' => 'Description', ], 'ContentType' => [ 'shape' => 'StringWithLengthBetween1And255', ], 'VersionLabel' => [ 'shape' => 'VersionLabel', ], 'KmsKeyArn' => [ 'shape' => 'Arn', ], ], ], 'HostedConfigurationVersionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostedConfigurationVersionSummary', ], ], 'HostedConfigurationVersions' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'HostedConfigurationVersionSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'Id' => [ 'type' => 'string', 'pattern' => '[a-z0-9]{4,7}', ], 'Identifier' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'Integer' => [ 'type' => 'integer', ], 'InternalServerException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'InvalidConfigurationDetail' => [ 'type' => 'structure', 'members' => [ 'Constraint' => [ 'shape' => 'String', ], 'Location' => [ 'shape' => 'String', ], 'Reason' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'InvalidConfigurationDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InvalidConfigurationDetail', ], ], 'Iso8601DateTime' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'KmsKeyIdentifier' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'KmsKeyIdentifierOrEmpty' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'ListApplicationsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], ], ], 'ListConfigurationProfilesRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], 'Type' => [ 'shape' => 'ConfigurationProfileType', 'location' => 'querystring', 'locationName' => 'type', ], ], ], 'ListDeploymentStrategiesRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], ], ], 'ListDeploymentsRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'EnvironmentId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'EnvironmentId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'EnvironmentId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], ], ], 'ListEnvironmentsRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], ], ], 'ListExperimentDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'querystring', 'locationName' => 'application_identifier', ], 'ConfigurationProfileIdentifier' => [ 'shape' => 'Identifier', 'location' => 'querystring', 'locationName' => 'configuration_profile_identifier', ], 'EnvironmentIdentifier' => [ 'shape' => 'Identifier', 'location' => 'querystring', 'locationName' => 'environment_identifier', ], 'Status' => [ 'shape' => 'ExperimentDefinitionStatus', 'location' => 'querystring', 'locationName' => 'status', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], ], ], 'ListExperimentRunEventsRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', 'Run', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], 'Run' => [ 'shape' => 'PositiveInteger', 'box' => true, 'location' => 'uri', 'locationName' => 'Run', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], ], ], 'ListExperimentRunsRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], 'Status' => [ 'shape' => 'ExperimentRunStatus', 'location' => 'querystring', 'locationName' => 'status', ], ], ], 'ListExtensionAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'resource_identifier', ], 'ExtensionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'querystring', 'locationName' => 'extension_identifier', ], 'ExtensionVersionNumber' => [ 'shape' => 'Integer', 'box' => true, 'location' => 'querystring', 'locationName' => 'extension_version_number', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], ], ], 'ListExtensionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], 'Name' => [ 'shape' => 'QueryName', 'location' => 'querystring', 'locationName' => 'name', ], ], ], 'ListHostedConfigurationVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'ConfigurationProfileId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', 'location' => 'uri', 'locationName' => 'ConfigurationProfileId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], 'VersionLabel' => [ 'shape' => 'QueryName', 'location' => 'querystring', 'locationName' => 'version_label', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', 'location' => 'uri', 'locationName' => 'ResourceArn', ], ], ], 'LongName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'MaxResults' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'MinutesBetween0And24Hours' => [ 'type' => 'integer', 'max' => 1440, 'min' => 0, ], 'Monitor' => [ 'type' => 'structure', 'required' => [ 'AlarmArn', ], 'members' => [ 'AlarmArn' => [ 'shape' => 'StringWithLengthBetween1And2048', ], 'AlarmRoleArn' => [ 'shape' => 'RoleArn', ], ], ], 'MonitorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Monitor', ], 'max' => 5, 'min' => 0, ], 'Name' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'NameWithReservedAwsPrefix' => [ 'type' => 'string', 'pattern' => '^(?!AWS\\.).{1,64}$', ], 'NextToken' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'NullablePercentage' => [ 'type' => 'float', 'box' => true, 'max' => 100.0, 'min' => 0.0, ], 'NumberList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Double', ], 'max' => 25, 'min' => 0, ], 'Parameter' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'Description', ], 'Required' => [ 'shape' => 'Boolean', ], 'Dynamic' => [ 'shape' => 'Boolean', ], ], ], 'ParameterMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ExtensionOrParameterName', ], 'value' => [ 'shape' => 'Parameter', ], 'max' => 10, 'min' => 1, ], 'ParameterValueMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ExtensionOrParameterName', ], 'value' => [ 'shape' => 'StringWithLengthBetween1And2048', ], 'max' => 10, 'min' => 0, ], 'PayloadTooLargeException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'Measure' => [ 'shape' => 'BytesMeasure', ], 'Limit' => [ 'shape' => 'Float', ], 'Size' => [ 'shape' => 'Float', ], ], 'error' => [ 'httpStatusCode' => 413, ], 'exception' => true, ], 'Percentage' => [ 'type' => 'float', 'max' => 100.0, 'min' => 1.0, ], 'PositiveInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 1, ], 'QueryName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'ReplicateTo' => [ 'type' => 'string', 'enum' => [ 'NONE', 'SSM_DOCUMENT', ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'ResourceName' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'ResourceTags' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'RoleArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => '^((arn):(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov|aws-eusc):(iam)::\\d{12}:role[/].*)$', ], 'Rule' => [ 'type' => 'string', 'max' => 16384, 'min' => 1, ], 'ServiceQuotaExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 402, ], 'exception' => true, ], 'StartDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'EnvironmentId', 'DeploymentStrategyId', 'ConfigurationProfileId', 'ConfigurationVersion', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'EnvironmentId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'EnvironmentId', ], 'DeploymentStrategyId' => [ 'shape' => 'DeploymentStrategyId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', ], 'ConfigurationVersion' => [ 'shape' => 'Version', ], 'Description' => [ 'shape' => 'Description', ], 'Tags' => [ 'shape' => 'TagMap', ], 'KmsKeyIdentifier' => [ 'shape' => 'KmsKeyIdentifier', ], 'DynamicExtensionParameters' => [ 'shape' => 'DynamicParameterMap', ], 'LatestDeploymentNumber' => [ 'shape' => 'Integer', 'box' => true, ], ], ], 'StartExperimentRunRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], 'Description' => [ 'shape' => 'Description', ], 'ExposurePercentage' => [ 'shape' => 'NullablePercentage', ], 'TreatmentOverrides' => [ 'shape' => 'TreatmentOverrides', ], 'Tags' => [ 'shape' => 'TagMap', ], 'DeploymentParameters' => [ 'shape' => 'DeploymentParameters', ], ], ], 'StopDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'EnvironmentId', 'DeploymentNumber', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'EnvironmentId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'EnvironmentId', ], 'DeploymentNumber' => [ 'shape' => 'Integer', 'box' => true, 'location' => 'uri', 'locationName' => 'DeploymentNumber', ], 'AllowRevert' => [ 'shape' => 'Boolean', 'box' => true, 'location' => 'header', 'locationName' => 'Allow-Revert', ], ], ], 'StopExperimentRunRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', 'Run', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], 'Run' => [ 'shape' => 'PositiveInteger', 'box' => true, 'location' => 'uri', 'locationName' => 'Run', ], 'Result' => [ 'shape' => 'ExperimentRunResult', ], 'DeploymentParameters' => [ 'shape' => 'DeploymentParameters', ], ], ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeString', ], 'max' => 25, 'min' => 0, ], 'StringWithLengthBetween0And32768' => [ 'type' => 'string', 'max' => 32768, 'min' => 0, 'sensitive' => true, ], 'StringWithLengthBetween1And2048' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'StringWithLengthBetween1And255' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'StringWithLengthBetween1And64' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 0, ], 'TagMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'max' => 50, 'min' => 0, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', 'location' => 'uri', 'locationName' => 'ResourceArn', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, ], 'Treatment' => [ 'type' => 'structure', 'required' => [ 'Weight', 'FlagValue', ], 'members' => [ 'Key' => [ 'shape' => 'TreatmentKey', ], 'Weight' => [ 'shape' => 'Weight', ], 'Description' => [ 'shape' => 'Description', ], 'FlagValue' => [ 'shape' => 'FlagValue', ], ], ], 'TreatmentInput' => [ 'type' => 'structure', 'required' => [ 'Weight', 'FlagValue', ], 'members' => [ 'Weight' => [ 'shape' => 'Weight', ], 'Description' => [ 'shape' => 'Description', ], 'FlagValue' => [ 'shape' => 'FlagValue', ], ], ], 'TreatmentInputList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TreatmentInput', ], 'max' => 5, 'min' => 1, ], 'TreatmentKey' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9]{1,8}', ], 'TreatmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Treatment', ], 'max' => 5, 'min' => 1, ], 'TreatmentOverrideMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'EntityId', ], 'value' => [ 'shape' => 'TreatmentKey', ], 'max' => 32, 'min' => 0, ], 'TreatmentOverrides' => [ 'type' => 'structure', 'members' => [ 'Inline' => [ 'shape' => 'TreatmentOverrideMap', ], ], 'union' => true, ], 'TriggeredBy' => [ 'type' => 'string', 'enum' => [ 'USER', 'APPCONFIG', 'CLOUDWATCH_ALARM', 'INTERNAL_ERROR', ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', 'location' => 'uri', 'locationName' => 'ResourceArn', ], 'TagKeys' => [ 'shape' => 'TagKeyList', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], ], 'UpdateAccountSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'DeletionProtection' => [ 'shape' => 'DeletionProtectionSettings', ], 'VendedMetrics' => [ 'shape' => 'VendedMetricsSettings', ], ], ], 'UpdateApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], ], ], 'UpdateConfigurationProfileRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'ConfigurationProfileId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', 'location' => 'uri', 'locationName' => 'ConfigurationProfileId', ], 'Name' => [ 'shape' => 'LongName', ], 'Description' => [ 'shape' => 'Description', ], 'RetrievalRoleArn' => [ 'shape' => 'RoleArn', ], 'Validators' => [ 'shape' => 'ValidatorList', ], 'KmsKeyIdentifier' => [ 'shape' => 'KmsKeyIdentifierOrEmpty', ], ], ], 'UpdateDeploymentStrategyRequest' => [ 'type' => 'structure', 'required' => [ 'DeploymentStrategyId', ], 'members' => [ 'DeploymentStrategyId' => [ 'shape' => 'DeploymentStrategyId', 'location' => 'uri', 'locationName' => 'DeploymentStrategyId', ], 'Description' => [ 'shape' => 'Description', ], 'DeploymentDurationInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', 'box' => true, ], 'FinalBakeTimeInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', 'box' => true, ], 'GrowthFactor' => [ 'shape' => 'GrowthFactor', 'box' => true, ], 'GrowthType' => [ 'shape' => 'GrowthType', ], ], ], 'UpdateEnvironmentRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'EnvironmentId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'EnvironmentId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'EnvironmentId', ], 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], 'Monitors' => [ 'shape' => 'MonitorList', ], ], ], 'UpdateExperimentDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], 'Treatments' => [ 'shape' => 'TreatmentInputList', ], 'Control' => [ 'shape' => 'TreatmentInput', ], 'Hypothesis' => [ 'shape' => 'Description', ], 'AudienceRule' => [ 'shape' => 'Rule', ], 'AudienceDescription' => [ 'shape' => 'Description', ], 'LaunchCriteria' => [ 'shape' => 'Description', ], ], ], 'UpdateExperimentRunRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', 'Run', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], 'Run' => [ 'shape' => 'PositiveInteger', 'box' => true, 'location' => 'uri', 'locationName' => 'Run', ], 'Description' => [ 'shape' => 'Description', ], 'ExposurePercentage' => [ 'shape' => 'NullablePercentage', 'box' => true, ], 'TreatmentOverrides' => [ 'shape' => 'TreatmentOverrides', ], 'DeploymentParameters' => [ 'shape' => 'DeploymentParameters', ], ], ], 'UpdateExtensionAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'ExtensionAssociationId', ], 'members' => [ 'ExtensionAssociationId' => [ 'shape' => 'Id', 'location' => 'uri', 'locationName' => 'ExtensionAssociationId', ], 'Parameters' => [ 'shape' => 'ParameterValueMap', ], ], ], 'UpdateExtensionRequest' => [ 'type' => 'structure', 'required' => [ 'ExtensionIdentifier', ], 'members' => [ 'ExtensionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExtensionIdentifier', ], 'Description' => [ 'shape' => 'Description', ], 'Actions' => [ 'shape' => 'ActionsMap', ], 'Parameters' => [ 'shape' => 'ParameterMap', ], 'VersionNumber' => [ 'shape' => 'Integer', 'box' => true, ], ], ], 'Uri' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'ValidateConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'ConfigurationProfileId', 'ConfigurationVersion', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', 'location' => 'uri', 'locationName' => 'ConfigurationProfileId', ], 'ConfigurationVersion' => [ 'shape' => 'Version', 'location' => 'querystring', 'locationName' => 'configuration_version', ], ], ], 'Validator' => [ 'type' => 'structure', 'required' => [ 'Type', 'Content', ], 'members' => [ 'Type' => [ 'shape' => 'ValidatorType', ], 'Content' => [ 'shape' => 'StringWithLengthBetween0And32768', ], ], ], 'ValidatorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Validator', ], 'max' => 2, 'min' => 0, ], 'ValidatorType' => [ 'type' => 'string', 'enum' => [ 'JSON_SCHEMA', 'LAMBDA', ], ], 'ValidatorTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValidatorType', ], 'max' => 2, 'min' => 0, ], 'VendedMetricsSettings' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'box' => true, ], ], ], 'Version' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'VersionLabel' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '.*[^0-9].*', ], 'Weight' => [ 'type' => 'float', 'min' => 0.0, ], ],]; +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2019-10-09', 'endpointPrefix' => 'appconfig', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'protocols' => [ 'rest-json', ], 'serviceAbbreviation' => 'AppConfig', 'serviceFullName' => 'Amazon AppConfig', 'serviceId' => 'AppConfig', 'signatureVersion' => 'v4', 'signingName' => 'appconfig', 'uid' => 'appconfig-2019-10-09', 'auth' => [ 'aws.auth#sigv4', ], ], 'operations' => [ 'CreateApplication' => [ 'name' => 'CreateApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateApplicationRequest', ], 'output' => [ 'shape' => 'Application', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateConfigurationProfile' => [ 'name' => 'CreateConfigurationProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateConfigurationProfileRequest', ], 'output' => [ 'shape' => 'ConfigurationProfile', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ServiceQuotaExceededException', ], ], ], 'CreateDeploymentStrategy' => [ 'name' => 'CreateDeploymentStrategy', 'http' => [ 'method' => 'POST', 'requestUri' => '/deploymentstrategies', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDeploymentStrategyRequest', ], 'output' => [ 'shape' => 'DeploymentStrategy', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'BadRequestException', ], ], ], 'CreateEnvironment' => [ 'name' => 'CreateEnvironment', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications/{ApplicationId}/environments', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateEnvironmentRequest', ], 'output' => [ 'shape' => 'Environment', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ServiceQuotaExceededException', ], ], ], 'CreateExperimentDefinition' => [ 'name' => 'CreateExperimentDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateExperimentDefinitionRequest', ], 'output' => [ 'shape' => 'ExperimentDefinition', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateExtension' => [ 'name' => 'CreateExtension', 'http' => [ 'method' => 'POST', 'requestUri' => '/extensions', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateExtensionRequest', ], 'output' => [ 'shape' => 'Extension', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateExtensionAssociation' => [ 'name' => 'CreateExtensionAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/extensionassociations', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateExtensionAssociationRequest', ], 'output' => [ 'shape' => 'ExtensionAssociation', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ServiceQuotaExceededException', ], ], ], 'CreateHostedConfigurationVersion' => [ 'name' => 'CreateHostedConfigurationVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/hostedconfigurationversions', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateHostedConfigurationVersionRequest', ], 'output' => [ 'shape' => 'HostedConfigurationVersion', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'PayloadTooLargeException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DeleteApplication' => [ 'name' => 'DeleteApplication', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/applications/{ApplicationId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteApplicationRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'DeleteConfigurationProfile' => [ 'name' => 'DeleteConfigurationProfile', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteConfigurationProfileRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'DeleteDeploymentStrategy' => [ 'name' => 'DeleteDeploymentStrategy', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/deployementstrategies/{DeploymentStrategyId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDeploymentStrategyRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'DeleteEnvironment' => [ 'name' => 'DeleteEnvironment', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/applications/{ApplicationId}/environments/{EnvironmentId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteEnvironmentRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'DeleteExperimentDefinition' => [ 'name' => 'DeleteExperimentDefinition', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteExperimentDefinitionRequest', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteExtension' => [ 'name' => 'DeleteExtension', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/extensions/{ExtensionIdentifier}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteExtensionRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'DeleteExtensionAssociation' => [ 'name' => 'DeleteExtensionAssociation', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/extensionassociations/{ExtensionAssociationId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteExtensionAssociationRequest', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DeleteHostedConfigurationVersion' => [ 'name' => 'DeleteHostedConfigurationVersion', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/hostedconfigurationversions/{VersionNumber}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteHostedConfigurationVersionRequest', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetAccountSettings' => [ 'name' => 'GetAccountSettings', 'http' => [ 'method' => 'GET', 'requestUri' => '/settings', 'responseCode' => 200, ], 'output' => [ 'shape' => 'AccountSettings', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetApplication' => [ 'name' => 'GetApplication', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetApplicationRequest', ], 'output' => [ 'shape' => 'Application', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetConfiguration' => [ 'name' => 'GetConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{Application}/environments/{Environment}/configurations/{Configuration}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetConfigurationRequest', ], 'output' => [ 'shape' => 'Configuration', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This API has been deprecated in favor of the GetLatestConfiguration API used in conjunction with StartConfigurationSession.', ], 'GetConfigurationProfile' => [ 'name' => 'GetConfigurationProfile', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetConfigurationProfileRequest', ], 'output' => [ 'shape' => 'ConfigurationProfile', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetDeployment' => [ 'name' => 'GetDeployment', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}/environments/{EnvironmentId}/deployments/{DeploymentNumber}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDeploymentRequest', ], 'output' => [ 'shape' => 'Deployment', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetDeploymentStrategy' => [ 'name' => 'GetDeploymentStrategy', 'http' => [ 'method' => 'GET', 'requestUri' => '/deploymentstrategies/{DeploymentStrategyId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDeploymentStrategyRequest', ], 'output' => [ 'shape' => 'DeploymentStrategy', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetEnvironment' => [ 'name' => 'GetEnvironment', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}/environments/{EnvironmentId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetEnvironmentRequest', ], 'output' => [ 'shape' => 'Environment', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetExperimentDefinition' => [ 'name' => 'GetExperimentDefinition', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetExperimentDefinitionRequest', ], 'output' => [ 'shape' => 'ExperimentDefinition', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetExperimentRun' => [ 'name' => 'GetExperimentRun', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}/experimentruns/{Run}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetExperimentRunRequest', ], 'output' => [ 'shape' => 'ExperimentRun', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], 'readonly' => true, ], 'GetExtension' => [ 'name' => 'GetExtension', 'http' => [ 'method' => 'GET', 'requestUri' => '/extensions/{ExtensionIdentifier}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetExtensionRequest', ], 'output' => [ 'shape' => 'Extension', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'GetExtensionAssociation' => [ 'name' => 'GetExtensionAssociation', 'http' => [ 'method' => 'GET', 'requestUri' => '/extensionassociations/{ExtensionAssociationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetExtensionAssociationRequest', ], 'output' => [ 'shape' => 'ExtensionAssociation', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetHostedConfigurationVersion' => [ 'name' => 'GetHostedConfigurationVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/hostedconfigurationversions/{VersionNumber}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetHostedConfigurationVersionRequest', ], 'output' => [ 'shape' => 'HostedConfigurationVersion', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListApplications' => [ 'name' => 'ListApplications', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListApplicationsRequest', ], 'output' => [ 'shape' => 'Applications', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListConfigurationProfiles' => [ 'name' => 'ListConfigurationProfiles', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListConfigurationProfilesRequest', ], 'output' => [ 'shape' => 'ConfigurationProfiles', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListDeploymentStrategies' => [ 'name' => 'ListDeploymentStrategies', 'http' => [ 'method' => 'GET', 'requestUri' => '/deploymentstrategies', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDeploymentStrategiesRequest', ], 'output' => [ 'shape' => 'DeploymentStrategies', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListDeployments' => [ 'name' => 'ListDeployments', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}/environments/{EnvironmentId}/deployments', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDeploymentsRequest', ], 'output' => [ 'shape' => 'Deployments', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListEnvironments' => [ 'name' => 'ListEnvironments', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}/environments', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListEnvironmentsRequest', ], 'output' => [ 'shape' => 'Environments', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListExperimentDefinitions' => [ 'name' => 'ListExperimentDefinitions', 'http' => [ 'method' => 'GET', 'requestUri' => '/experimentdefinitions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListExperimentDefinitionsRequest', ], 'output' => [ 'shape' => 'ExperimentDefinitions', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListExperimentRunEvents' => [ 'name' => 'ListExperimentRunEvents', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}/experimentruns/{Run}/events', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListExperimentRunEventsRequest', ], 'output' => [ 'shape' => 'ExperimentRunEvents', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], 'readonly' => true, ], 'ListExperimentRuns' => [ 'name' => 'ListExperimentRuns', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}/experimentruns', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListExperimentRunsRequest', ], 'output' => [ 'shape' => 'ExperimentRuns', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], 'readonly' => true, ], 'ListExtensionAssociations' => [ 'name' => 'ListExtensionAssociations', 'http' => [ 'method' => 'GET', 'requestUri' => '/extensionassociations', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListExtensionAssociationsRequest', ], 'output' => [ 'shape' => 'ExtensionAssociations', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListExtensions' => [ 'name' => 'ListExtensions', 'http' => [ 'method' => 'GET', 'requestUri' => '/extensions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListExtensionsRequest', ], 'output' => [ 'shape' => 'Extensions', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'ListHostedConfigurationVersions' => [ 'name' => 'ListHostedConfigurationVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/hostedconfigurationversions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListHostedConfigurationVersionsRequest', ], 'output' => [ 'shape' => 'HostedConfigurationVersions', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags/{ResourceArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ResourceTags', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StartDeployment' => [ 'name' => 'StartDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications/{ApplicationId}/environments/{EnvironmentId}/deployments', 'responseCode' => 201, ], 'input' => [ 'shape' => 'StartDeploymentRequest', ], 'output' => [ 'shape' => 'Deployment', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StartExperimentRun' => [ 'name' => 'StartExperimentRun', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}/experimentruns', 'responseCode' => 201, ], 'input' => [ 'shape' => 'StartExperimentRunRequest', ], 'output' => [ 'shape' => 'ExperimentRun', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StopDeployment' => [ 'name' => 'StopDeployment', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/applications/{ApplicationId}/environments/{EnvironmentId}/deployments/{DeploymentNumber}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'StopDeploymentRequest', ], 'output' => [ 'shape' => 'Deployment', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'BadRequestException', ], ], ], 'StopExperimentRun' => [ 'name' => 'StopExperimentRun', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}/experimentruns/{Run}/stop', 'responseCode' => 200, ], 'input' => [ 'shape' => 'StopExperimentRunRequest', ], 'output' => [ 'shape' => 'ExperimentRun', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'BadRequestException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tags/{ResourceArn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/tags/{ResourceArn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateAccountSettings' => [ 'name' => 'UpdateAccountSettings', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/settings', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateAccountSettingsRequest', ], 'output' => [ 'shape' => 'AccountSettings', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateApplication' => [ 'name' => 'UpdateApplication', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/applications/{ApplicationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateApplicationRequest', ], 'output' => [ 'shape' => 'Application', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateConfigurationProfile' => [ 'name' => 'UpdateConfigurationProfile', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateConfigurationProfileRequest', ], 'output' => [ 'shape' => 'ConfigurationProfile', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateDeploymentStrategy' => [ 'name' => 'UpdateDeploymentStrategy', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/deploymentstrategies/{DeploymentStrategyId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateDeploymentStrategyRequest', ], 'output' => [ 'shape' => 'DeploymentStrategy', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateEnvironment' => [ 'name' => 'UpdateEnvironment', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/applications/{ApplicationId}/environments/{EnvironmentId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateEnvironmentRequest', ], 'output' => [ 'shape' => 'Environment', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateExperimentDefinition' => [ 'name' => 'UpdateExperimentDefinition', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateExperimentDefinitionRequest', ], 'output' => [ 'shape' => 'ExperimentDefinition', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateExperimentRun' => [ 'name' => 'UpdateExperimentRun', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/applications/{ApplicationIdentifier}/experimentdefinitions/{ExperimentDefinitionIdentifier}/experimentruns/{Run}/update', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateExperimentRunRequest', ], 'output' => [ 'shape' => 'ExperimentRun', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateExtension' => [ 'name' => 'UpdateExtension', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/extensions/{ExtensionIdentifier}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateExtensionRequest', ], 'output' => [ 'shape' => 'Extension', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateExtensionAssociation' => [ 'name' => 'UpdateExtensionAssociation', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/extensionassociations/{ExtensionAssociationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateExtensionAssociationRequest', ], 'output' => [ 'shape' => 'ExtensionAssociation', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ValidateConfiguration' => [ 'name' => 'ValidateConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/validators', 'responseCode' => 204, ], 'input' => [ 'shape' => 'ValidateConfigurationRequest', ], 'errors' => [ [ 'shape' => 'BadRequestException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], ], 'shapes' => [ 'AccountSettings' => [ 'type' => 'structure', 'members' => [ 'DeletionProtection' => [ 'shape' => 'DeletionProtectionSettings', ], 'VendedMetrics' => [ 'shape' => 'VendedMetricsSettings', ], ], ], 'Action' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], 'Uri' => [ 'shape' => 'Uri', ], 'RoleArn' => [ 'shape' => 'Arn', ], ], ], 'ActionInvocation' => [ 'type' => 'structure', 'members' => [ 'ExtensionIdentifier' => [ 'shape' => 'Identifier', ], 'ActionName' => [ 'shape' => 'Name', ], 'Uri' => [ 'shape' => 'Uri', ], 'RoleArn' => [ 'shape' => 'Arn', ], 'ErrorMessage' => [ 'shape' => 'String', ], 'ErrorCode' => [ 'shape' => 'String', ], 'InvocationId' => [ 'shape' => 'Id', ], ], ], 'ActionInvocations' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActionInvocation', ], ], 'ActionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Action', ], 'max' => 1, 'min' => 1, ], 'ActionPoint' => [ 'type' => 'string', 'enum' => [ 'PRE_CREATE_HOSTED_CONFIGURATION_VERSION', 'PRE_START_DEPLOYMENT', 'AT_DEPLOYMENT_TICK', 'ON_DEPLOYMENT_START', 'ON_DEPLOYMENT_STEP', 'ON_DEPLOYMENT_BAKING', 'ON_DEPLOYMENT_COMPLETE', 'ON_DEPLOYMENT_ROLLED_BACK', ], ], 'ActionsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ActionPoint', ], 'value' => [ 'shape' => 'ActionList', ], 'max' => 5, 'min' => 1, ], 'Application' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], ], ], 'ApplicationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Application', ], ], 'Applications' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ApplicationList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'AppliedExtension' => [ 'type' => 'structure', 'members' => [ 'ExtensionId' => [ 'shape' => 'Id', ], 'ExtensionAssociationId' => [ 'shape' => 'Id', ], 'VersionNumber' => [ 'shape' => 'Integer', ], 'Parameters' => [ 'shape' => 'ParameterValueMap', ], ], ], 'AppliedExtensions' => [ 'type' => 'list', 'member' => [ 'shape' => 'AppliedExtension', ], ], 'Arn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => 'arn:(aws[a-zA-Z-]*)?:[a-z]+:((eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:[a-zA-Z0-9-_/:.]+', ], 'AttributeKey' => [ 'type' => 'string', 'pattern' => '(?!enabled$)[a-z][a-zA-Z0-9_-]{0,63}', ], 'AttributeString' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, ], 'AttributeValue' => [ 'type' => 'structure', 'members' => [ 'StringValue' => [ 'shape' => 'AttributeString', ], 'NumberValue' => [ 'shape' => 'Double', 'box' => true, ], 'BooleanValue' => [ 'shape' => 'Boolean', 'box' => true, ], 'StringArray' => [ 'shape' => 'StringList', ], 'NumberArray' => [ 'shape' => 'NumberList', ], ], 'union' => true, ], 'AttributeValueMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'AttributeKey', ], 'value' => [ 'shape' => 'AttributeValue', ], 'max' => 25, 'min' => 0, ], 'BadRequestDetails' => [ 'type' => 'structure', 'members' => [ 'InvalidConfiguration' => [ 'shape' => 'InvalidConfigurationDetailList', ], ], 'union' => true, ], 'BadRequestException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'Reason' => [ 'shape' => 'BadRequestReason', ], 'Details' => [ 'shape' => 'BadRequestDetails', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'BadRequestReason' => [ 'type' => 'string', 'enum' => [ 'InvalidConfiguration', ], ], 'Blob' => [ 'type' => 'blob', 'sensitive' => true, ], 'Boolean' => [ 'type' => 'boolean', ], 'BytesMeasure' => [ 'type' => 'string', 'enum' => [ 'KILOBYTES', ], ], 'Configuration' => [ 'type' => 'structure', 'members' => [ 'Content' => [ 'shape' => 'Blob', ], 'ConfigurationVersion' => [ 'shape' => 'Version', 'location' => 'header', 'locationName' => 'Configuration-Version', ], 'ContentType' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'Content-Type', ], ], 'payload' => 'Content', ], 'ConfigurationProfile' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'LongName', ], 'Description' => [ 'shape' => 'Description', ], 'LocationUri' => [ 'shape' => 'Uri', ], 'RetrievalRoleArn' => [ 'shape' => 'RoleArn', ], 'Validators' => [ 'shape' => 'ValidatorList', ], 'Type' => [ 'shape' => 'ConfigurationProfileType', ], 'KmsKeyArn' => [ 'shape' => 'Arn', ], 'KmsKeyIdentifier' => [ 'shape' => 'KmsKeyIdentifier', ], ], ], 'ConfigurationProfileSummary' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'LongName', ], 'LocationUri' => [ 'shape' => 'Uri', ], 'ValidatorTypes' => [ 'shape' => 'ValidatorTypeList', ], 'Type' => [ 'shape' => 'ConfigurationProfileType', ], ], ], 'ConfigurationProfileSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationProfileSummary', ], ], 'ConfigurationProfileType' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9\\.\\-]+', ], 'ConfigurationProfiles' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ConfigurationProfileSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'CreateApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateConfigurationProfileRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'Name', 'LocationUri', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'Name' => [ 'shape' => 'LongName', ], 'Description' => [ 'shape' => 'Description', ], 'LocationUri' => [ 'shape' => 'Uri', ], 'RetrievalRoleArn' => [ 'shape' => 'RoleArn', ], 'Validators' => [ 'shape' => 'ValidatorList', ], 'Tags' => [ 'shape' => 'TagMap', ], 'Type' => [ 'shape' => 'ConfigurationProfileType', ], 'KmsKeyIdentifier' => [ 'shape' => 'KmsKeyIdentifier', ], ], ], 'CreateDeploymentStrategyRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'DeploymentDurationInMinutes', 'GrowthFactor', ], 'members' => [ 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], 'DeploymentDurationInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', 'box' => true, ], 'FinalBakeTimeInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', ], 'GrowthFactor' => [ 'shape' => 'GrowthFactor', 'box' => true, ], 'GrowthType' => [ 'shape' => 'GrowthType', ], 'ReplicateTo' => [ 'shape' => 'ReplicateTo', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateEnvironmentRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'Name', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], 'Monitors' => [ 'shape' => 'MonitorList', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateExperimentDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'Name', 'ConfigurationProfileIdentifier', 'EnvironmentIdentifier', 'FlagKey', 'Treatments', 'Control', 'AudienceRule', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'Name' => [ 'shape' => 'NameWithReservedAwsPrefix', ], 'ConfigurationProfileIdentifier' => [ 'shape' => 'Identifier', ], 'EnvironmentIdentifier' => [ 'shape' => 'Identifier', ], 'FlagKey' => [ 'shape' => 'FlagKey', ], 'Treatments' => [ 'shape' => 'TreatmentInputList', ], 'Control' => [ 'shape' => 'TreatmentInput', ], 'AudienceRule' => [ 'shape' => 'Rule', ], 'Hypothesis' => [ 'shape' => 'Description', ], 'AudienceDescription' => [ 'shape' => 'Description', ], 'LaunchCriteria' => [ 'shape' => 'Description', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateExtensionAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'ExtensionIdentifier', 'ResourceIdentifier', ], 'members' => [ 'ExtensionIdentifier' => [ 'shape' => 'Identifier', ], 'ExtensionVersionNumber' => [ 'shape' => 'Integer', 'box' => true, ], 'ResourceIdentifier' => [ 'shape' => 'Identifier', ], 'Parameters' => [ 'shape' => 'ParameterValueMap', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateExtensionRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'Actions', ], 'members' => [ 'Name' => [ 'shape' => 'ExtensionOrParameterName', ], 'Description' => [ 'shape' => 'Description', ], 'Actions' => [ 'shape' => 'ActionsMap', ], 'Parameters' => [ 'shape' => 'ParameterMap', ], 'Tags' => [ 'shape' => 'TagMap', ], 'LatestVersionNumber' => [ 'shape' => 'Integer', 'box' => true, 'location' => 'header', 'locationName' => 'Latest-Version-Number', ], ], ], 'CreateHostedConfigurationVersionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'ConfigurationProfileId', 'Content', 'ContentType', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', 'location' => 'uri', 'locationName' => 'ConfigurationProfileId', ], 'Description' => [ 'shape' => 'Description', 'location' => 'header', 'locationName' => 'Description', ], 'Content' => [ 'shape' => 'Blob', ], 'ContentType' => [ 'shape' => 'StringWithLengthBetween1And255', 'location' => 'header', 'locationName' => 'Content-Type', ], 'LatestVersionNumber' => [ 'shape' => 'Integer', 'box' => true, 'location' => 'header', 'locationName' => 'Latest-Version-Number', ], 'VersionLabel' => [ 'shape' => 'VersionLabel', 'location' => 'header', 'locationName' => 'VersionLabel', ], ], 'payload' => 'Content', ], 'DeleteApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], ], ], 'DeleteConfigurationProfileRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'ConfigurationProfileId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', 'location' => 'uri', 'locationName' => 'ConfigurationProfileId', ], 'DeletionProtectionCheck' => [ 'shape' => 'DeletionProtectionCheck', 'location' => 'header', 'locationName' => 'x-amzn-deletion-protection-check', ], ], ], 'DeleteDeploymentStrategyRequest' => [ 'type' => 'structure', 'required' => [ 'DeploymentStrategyId', ], 'members' => [ 'DeploymentStrategyId' => [ 'shape' => 'DeploymentStrategyId', 'location' => 'uri', 'locationName' => 'DeploymentStrategyId', ], ], ], 'DeleteEnvironmentRequest' => [ 'type' => 'structure', 'required' => [ 'EnvironmentId', 'ApplicationId', ], 'members' => [ 'EnvironmentId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'EnvironmentId', ], 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'DeletionProtectionCheck' => [ 'shape' => 'DeletionProtectionCheck', 'location' => 'header', 'locationName' => 'x-amzn-deletion-protection-check', ], ], ], 'DeleteExperimentDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], 'DeleteType' => [ 'shape' => 'DeleteType', 'location' => 'querystring', 'locationName' => 'delete_type', ], ], ], 'DeleteExtensionAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'ExtensionAssociationId', ], 'members' => [ 'ExtensionAssociationId' => [ 'shape' => 'Id', 'location' => 'uri', 'locationName' => 'ExtensionAssociationId', ], ], ], 'DeleteExtensionRequest' => [ 'type' => 'structure', 'required' => [ 'ExtensionIdentifier', ], 'members' => [ 'ExtensionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExtensionIdentifier', ], 'VersionNumber' => [ 'shape' => 'Integer', 'box' => true, 'location' => 'querystring', 'locationName' => 'version', ], ], ], 'DeleteHostedConfigurationVersionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'ConfigurationProfileId', 'VersionNumber', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', 'location' => 'uri', 'locationName' => 'ConfigurationProfileId', ], 'VersionNumber' => [ 'shape' => 'Integer', 'location' => 'uri', 'locationName' => 'VersionNumber', ], ], ], 'DeleteType' => [ 'type' => 'string', 'enum' => [ 'ARCHIVE', 'DESTROY', ], ], 'DeletionProtectionCheck' => [ 'type' => 'string', 'enum' => [ 'ACCOUNT_DEFAULT', 'APPLY', 'BYPASS', ], ], 'DeletionProtectionDuration' => [ 'type' => 'integer', 'box' => true, 'max' => 1440, 'min' => 15, ], 'DeletionProtectionSettings' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'box' => true, ], 'ProtectionPeriodInMinutes' => [ 'shape' => 'DeletionProtectionDuration', 'box' => true, ], ], ], 'Deployment' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'EnvironmentId' => [ 'shape' => 'Id', ], 'DeploymentStrategyId' => [ 'shape' => 'Id', ], 'ConfigurationProfileId' => [ 'shape' => 'Id', ], 'DeploymentNumber' => [ 'shape' => 'Integer', ], 'ConfigurationName' => [ 'shape' => 'Name', ], 'ConfigurationLocationUri' => [ 'shape' => 'Uri', ], 'ConfigurationVersion' => [ 'shape' => 'Version', ], 'Description' => [ 'shape' => 'Description', ], 'DeploymentDurationInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', ], 'GrowthType' => [ 'shape' => 'GrowthType', ], 'GrowthFactor' => [ 'shape' => 'Percentage', ], 'FinalBakeTimeInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', ], 'State' => [ 'shape' => 'DeploymentState', ], 'EventLog' => [ 'shape' => 'DeploymentEvents', ], 'PercentageComplete' => [ 'shape' => 'Percentage', ], 'StartedAt' => [ 'shape' => 'Iso8601DateTime', ], 'CompletedAt' => [ 'shape' => 'Iso8601DateTime', ], 'AppliedExtensions' => [ 'shape' => 'AppliedExtensions', ], 'KmsKeyArn' => [ 'shape' => 'Arn', ], 'KmsKeyIdentifier' => [ 'shape' => 'KmsKeyIdentifier', ], 'VersionLabel' => [ 'shape' => 'VersionLabel', ], ], ], 'DeploymentEvent' => [ 'type' => 'structure', 'members' => [ 'EventType' => [ 'shape' => 'DeploymentEventType', ], 'TriggeredBy' => [ 'shape' => 'TriggeredBy', ], 'Description' => [ 'shape' => 'Description', ], 'ActionInvocations' => [ 'shape' => 'ActionInvocations', ], 'OccurredAt' => [ 'shape' => 'Iso8601DateTime', ], ], ], 'DeploymentEventType' => [ 'type' => 'string', 'enum' => [ 'PERCENTAGE_UPDATED', 'ROLLBACK_STARTED', 'ROLLBACK_COMPLETED', 'BAKE_TIME_STARTED', 'DEPLOYMENT_STARTED', 'DEPLOYMENT_COMPLETED', 'REVERT_COMPLETED', ], ], 'DeploymentEvents' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentEvent', ], ], 'DeploymentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentSummary', ], ], 'DeploymentParameters' => [ 'type' => 'structure', 'members' => [ 'DynamicExtensionParameters' => [ 'shape' => 'DynamicParameterMap', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'DeploymentState' => [ 'type' => 'string', 'enum' => [ 'BAKING', 'VALIDATING', 'DEPLOYING', 'COMPLETE', 'ROLLING_BACK', 'ROLLED_BACK', 'REVERTED', ], ], 'DeploymentStrategies' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'DeploymentStrategyList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DeploymentStrategy' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], 'DeploymentDurationInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', ], 'GrowthType' => [ 'shape' => 'GrowthType', ], 'GrowthFactor' => [ 'shape' => 'Percentage', ], 'FinalBakeTimeInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', ], 'ReplicateTo' => [ 'shape' => 'ReplicateTo', ], ], ], 'DeploymentStrategyId' => [ 'type' => 'string', 'pattern' => '(^[a-z0-9]{4,7}$|^AppConfig\\.[A-Za-z0-9]{9,40}$)', ], 'DeploymentStrategyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentStrategy', ], ], 'DeploymentSummary' => [ 'type' => 'structure', 'members' => [ 'DeploymentNumber' => [ 'shape' => 'Integer', ], 'ConfigurationProfileId' => [ 'shape' => 'Id', ], 'ConfigurationName' => [ 'shape' => 'Name', ], 'ConfigurationVersion' => [ 'shape' => 'Version', ], 'DeploymentDurationInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', ], 'GrowthType' => [ 'shape' => 'GrowthType', ], 'GrowthFactor' => [ 'shape' => 'Percentage', ], 'FinalBakeTimeInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', ], 'State' => [ 'shape' => 'DeploymentState', ], 'PercentageComplete' => [ 'shape' => 'Percentage', ], 'StartedAt' => [ 'shape' => 'Iso8601DateTime', ], 'CompletedAt' => [ 'shape' => 'Iso8601DateTime', ], 'VersionLabel' => [ 'shape' => 'VersionLabel', ], 'Type' => [ 'shape' => 'DeploymentType', ], ], ], 'DeploymentType' => [ 'type' => 'string', 'enum' => [ 'USER', 'MANAGED', ], ], 'Deployments' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'DeploymentList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'Description' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, ], 'Double' => [ 'type' => 'double', ], 'DynamicParameterKey' => [ 'type' => 'string', 'pattern' => '^([^#\\n]{1,96})#([^\\/#\\n]{1,64})$', ], 'DynamicParameterMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'DynamicParameterKey', ], 'value' => [ 'shape' => 'StringWithLengthBetween1And2048', ], 'max' => 10, 'min' => 1, 'sensitive' => true, ], 'EntityId' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'Environment' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], 'State' => [ 'shape' => 'EnvironmentState', ], 'Monitors' => [ 'shape' => 'MonitorList', ], ], ], 'EnvironmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Environment', ], ], 'EnvironmentState' => [ 'type' => 'string', 'enum' => [ 'READY_FOR_DEPLOYMENT', 'DEPLOYING', 'ROLLING_BACK', 'ROLLED_BACK', 'REVERTED', ], ], 'Environments' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'EnvironmentList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ExperimentDefinition' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'Name', ], 'Hypothesis' => [ 'shape' => 'Description', ], 'Status' => [ 'shape' => 'ExperimentDefinitionStatus', ], 'ConfigurationProfileId' => [ 'shape' => 'Id', ], 'EnvironmentId' => [ 'shape' => 'Id', ], 'FlagKey' => [ 'shape' => 'FlagKey', ], 'AudienceRule' => [ 'shape' => 'Rule', ], 'AudienceDescription' => [ 'shape' => 'Description', ], 'LaunchCriteria' => [ 'shape' => 'Description', ], 'Treatments' => [ 'shape' => 'TreatmentList', ], 'Control' => [ 'shape' => 'Treatment', ], 'CreatedAt' => [ 'shape' => 'Iso8601DateTime', ], 'UpdatedAt' => [ 'shape' => 'Iso8601DateTime', ], 'KmsKeyIdentifier' => [ 'shape' => 'KmsKeyIdentifier', ], ], ], 'ExperimentDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExperimentDefinitionSummary', ], ], 'ExperimentDefinitionSnapshot' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'Name', ], 'Hypothesis' => [ 'shape' => 'Description', ], 'ConfigurationProfileId' => [ 'shape' => 'Id', ], 'EnvironmentId' => [ 'shape' => 'Id', ], 'FlagKey' => [ 'shape' => 'FlagKey', ], 'AudienceRule' => [ 'shape' => 'Rule', ], 'AudienceDescription' => [ 'shape' => 'Description', ], 'LaunchCriteria' => [ 'shape' => 'Description', ], 'Treatments' => [ 'shape' => 'TreatmentList', ], 'Control' => [ 'shape' => 'Treatment', ], ], ], 'ExperimentDefinitionStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'IDLE', 'ARCHIVED', ], ], 'ExperimentDefinitionSummary' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'Name', ], 'Hypothesis' => [ 'shape' => 'Description', ], 'Status' => [ 'shape' => 'ExperimentDefinitionStatus', ], 'ConfigurationProfileId' => [ 'shape' => 'Id', ], 'EnvironmentId' => [ 'shape' => 'Id', ], 'FlagKey' => [ 'shape' => 'FlagKey', ], 'CreatedAt' => [ 'shape' => 'Iso8601DateTime', ], 'UpdatedAt' => [ 'shape' => 'Iso8601DateTime', ], ], ], 'ExperimentDefinitions' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ExperimentDefinitionList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ExperimentRun' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'ExperimentDefinitionId' => [ 'shape' => 'Id', ], 'Run' => [ 'shape' => 'Integer', ], 'Description' => [ 'shape' => 'Description', ], 'Status' => [ 'shape' => 'ExperimentRunStatus', ], 'ExposurePercentage' => [ 'shape' => 'NullablePercentage', ], 'TreatmentOverrides' => [ 'shape' => 'TreatmentOverrides', ], 'Result' => [ 'shape' => 'ExperimentRunResult', ], 'StartedAt' => [ 'shape' => 'Iso8601DateTime', ], 'UpdatedAt' => [ 'shape' => 'Iso8601DateTime', ], 'EndedAt' => [ 'shape' => 'Iso8601DateTime', ], 'ExperimentDefinitionSnapshot' => [ 'shape' => 'ExperimentDefinitionSnapshot', ], ], ], 'ExperimentRunEvent' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'Description', ], 'AssociatedDeployment' => [ 'shape' => 'Arn', ], 'EventType' => [ 'shape' => 'ExperimentRunEventType', ], 'OccurredAt' => [ 'shape' => 'Iso8601DateTime', ], 'TriggeredBy' => [ 'shape' => 'TriggeredBy', ], 'ExposurePercentage' => [ 'shape' => 'NullablePercentage', 'box' => true, ], 'TreatmentOverrides' => [ 'shape' => 'TreatmentOverrides', ], ], ], 'ExperimentRunEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExperimentRunEvent', ], ], 'ExperimentRunEventType' => [ 'type' => 'string', 'enum' => [ 'RUN_STARTED', 'EXPOSURE_UPDATED', 'OVERRIDES_UPDATED', 'RUN_STOPPED', ], ], 'ExperimentRunEvents' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ExperimentRunEventList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ExperimentRunResult' => [ 'type' => 'structure', 'members' => [ 'ExecutiveSummary' => [ 'shape' => 'Description', ], 'ReasonsToLaunch' => [ 'shape' => 'Description', ], 'ReasonsNotToLaunch' => [ 'shape' => 'Description', ], ], 'box' => true, ], 'ExperimentRunStatus' => [ 'type' => 'string', 'enum' => [ 'RUNNING', 'DONE', ], ], 'ExperimentRunSummary' => [ 'type' => 'structure', 'members' => [ 'ExperimentDefinitionId' => [ 'shape' => 'Id', ], 'Run' => [ 'shape' => 'Integer', ], 'Description' => [ 'shape' => 'Description', ], 'Status' => [ 'shape' => 'ExperimentRunStatus', ], 'StartedAt' => [ 'shape' => 'Iso8601DateTime', ], 'UpdatedAt' => [ 'shape' => 'Iso8601DateTime', ], 'EndedAt' => [ 'shape' => 'Iso8601DateTime', ], ], ], 'ExperimentRunSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExperimentRunSummary', ], ], 'ExperimentRuns' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ExperimentRunSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'Extension' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'Name', ], 'VersionNumber' => [ 'shape' => 'Integer', ], 'Arn' => [ 'shape' => 'Arn', ], 'Description' => [ 'shape' => 'Description', ], 'Actions' => [ 'shape' => 'ActionsMap', ], 'Parameters' => [ 'shape' => 'ParameterMap', ], ], ], 'ExtensionAssociation' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Identifier', ], 'ExtensionArn' => [ 'shape' => 'Arn', ], 'ResourceArn' => [ 'shape' => 'Arn', ], 'Arn' => [ 'shape' => 'Arn', ], 'Parameters' => [ 'shape' => 'ParameterValueMap', ], 'ExtensionVersionNumber' => [ 'shape' => 'Integer', ], ], ], 'ExtensionAssociationSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExtensionAssociationSummary', ], ], 'ExtensionAssociationSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Identifier', ], 'ExtensionArn' => [ 'shape' => 'Arn', ], 'ResourceArn' => [ 'shape' => 'Arn', ], ], ], 'ExtensionAssociations' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ExtensionAssociationSummaries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'ExtensionOrParameterName' => [ 'type' => 'string', 'pattern' => '^[^\\/#:\\n]{1,64}$', ], 'ExtensionSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExtensionSummary', ], ], 'ExtensionSummary' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'Id', ], 'Name' => [ 'shape' => 'Name', ], 'VersionNumber' => [ 'shape' => 'Integer', ], 'Arn' => [ 'shape' => 'Arn', ], 'Description' => [ 'shape' => 'Description', ], ], ], 'Extensions' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'ExtensionSummaries', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'FlagKey' => [ 'type' => 'string', 'pattern' => '^[a-z][a-zA-Z0-9_-]{1,64}', ], 'FlagValue' => [ 'type' => 'structure', 'required' => [ 'Enabled', ], 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'AttributeValues' => [ 'shape' => 'AttributeValueMap', ], ], ], 'Float' => [ 'type' => 'float', ], 'GetApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], ], ], 'GetConfigurationProfileRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'ConfigurationProfileId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', 'location' => 'uri', 'locationName' => 'ConfigurationProfileId', ], ], ], 'GetConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Application', 'Environment', 'Configuration', 'ClientId', ], 'members' => [ 'Application' => [ 'shape' => 'StringWithLengthBetween1And64', 'location' => 'uri', 'locationName' => 'Application', ], 'Environment' => [ 'shape' => 'StringWithLengthBetween1And64', 'location' => 'uri', 'locationName' => 'Environment', ], 'Configuration' => [ 'shape' => 'StringWithLengthBetween1And64', 'location' => 'uri', 'locationName' => 'Configuration', ], 'ClientId' => [ 'shape' => 'StringWithLengthBetween1And64', 'location' => 'querystring', 'locationName' => 'client_id', ], 'ClientConfigurationVersion' => [ 'shape' => 'Version', 'location' => 'querystring', 'locationName' => 'client_configuration_version', ], ], ], 'GetDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'EnvironmentId', 'DeploymentNumber', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'EnvironmentId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'EnvironmentId', ], 'DeploymentNumber' => [ 'shape' => 'Integer', 'box' => true, 'location' => 'uri', 'locationName' => 'DeploymentNumber', ], ], ], 'GetDeploymentStrategyRequest' => [ 'type' => 'structure', 'required' => [ 'DeploymentStrategyId', ], 'members' => [ 'DeploymentStrategyId' => [ 'shape' => 'DeploymentStrategyId', 'location' => 'uri', 'locationName' => 'DeploymentStrategyId', ], ], ], 'GetEnvironmentRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'EnvironmentId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'EnvironmentId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'EnvironmentId', ], ], ], 'GetExperimentDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], ], ], 'GetExperimentRunRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', 'Run', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], 'Run' => [ 'shape' => 'PositiveInteger', 'box' => true, 'location' => 'uri', 'locationName' => 'Run', ], ], ], 'GetExtensionAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'ExtensionAssociationId', ], 'members' => [ 'ExtensionAssociationId' => [ 'shape' => 'Id', 'location' => 'uri', 'locationName' => 'ExtensionAssociationId', ], ], ], 'GetExtensionRequest' => [ 'type' => 'structure', 'required' => [ 'ExtensionIdentifier', ], 'members' => [ 'ExtensionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExtensionIdentifier', ], 'VersionNumber' => [ 'shape' => 'Integer', 'box' => true, 'location' => 'querystring', 'locationName' => 'version_number', ], ], ], 'GetHostedConfigurationVersionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'ConfigurationProfileId', 'VersionNumber', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', 'location' => 'uri', 'locationName' => 'ConfigurationProfileId', ], 'VersionNumber' => [ 'shape' => 'Integer', 'location' => 'uri', 'locationName' => 'VersionNumber', ], ], ], 'GrowthFactor' => [ 'type' => 'float', 'max' => 100.0, 'min' => 1.0, ], 'GrowthType' => [ 'type' => 'string', 'enum' => [ 'LINEAR', 'EXPONENTIAL', ], ], 'HostedConfigurationVersion' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', 'location' => 'header', 'locationName' => 'Application-Id', ], 'ConfigurationProfileId' => [ 'shape' => 'Id', 'location' => 'header', 'locationName' => 'Configuration-Profile-Id', ], 'VersionNumber' => [ 'shape' => 'Integer', 'location' => 'header', 'locationName' => 'Version-Number', ], 'Description' => [ 'shape' => 'Description', 'location' => 'header', 'locationName' => 'Description', ], 'Content' => [ 'shape' => 'Blob', ], 'ContentType' => [ 'shape' => 'StringWithLengthBetween1And255', 'location' => 'header', 'locationName' => 'Content-Type', ], 'VersionLabel' => [ 'shape' => 'VersionLabel', 'location' => 'header', 'locationName' => 'VersionLabel', ], 'KmsKeyArn' => [ 'shape' => 'Arn', 'location' => 'header', 'locationName' => 'KmsKeyArn', ], ], 'payload' => 'Content', ], 'HostedConfigurationVersionSummary' => [ 'type' => 'structure', 'members' => [ 'ApplicationId' => [ 'shape' => 'Id', ], 'ConfigurationProfileId' => [ 'shape' => 'Id', ], 'VersionNumber' => [ 'shape' => 'Integer', ], 'Description' => [ 'shape' => 'Description', ], 'ContentType' => [ 'shape' => 'StringWithLengthBetween1And255', ], 'VersionLabel' => [ 'shape' => 'VersionLabel', ], 'KmsKeyArn' => [ 'shape' => 'Arn', ], ], ], 'HostedConfigurationVersionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostedConfigurationVersionSummary', ], ], 'HostedConfigurationVersions' => [ 'type' => 'structure', 'members' => [ 'Items' => [ 'shape' => 'HostedConfigurationVersionSummaryList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'Id' => [ 'type' => 'string', 'pattern' => '[a-z0-9]{4,7}', ], 'Identifier' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'Integer' => [ 'type' => 'integer', ], 'InternalServerException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'InvalidConfigurationDetail' => [ 'type' => 'structure', 'members' => [ 'Constraint' => [ 'shape' => 'String', ], 'Location' => [ 'shape' => 'String', ], 'Reason' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'InvalidConfigurationDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InvalidConfigurationDetail', ], ], 'Iso8601DateTime' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'KmsKeyIdentifier' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'KmsKeyIdentifierOrEmpty' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'ListApplicationsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], ], ], 'ListConfigurationProfilesRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], 'Type' => [ 'shape' => 'ConfigurationProfileType', 'location' => 'querystring', 'locationName' => 'type', ], ], ], 'ListDeploymentStrategiesRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], ], ], 'ListDeploymentsRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'EnvironmentId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'EnvironmentId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'EnvironmentId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], ], ], 'ListEnvironmentsRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], ], ], 'ListExperimentDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'querystring', 'locationName' => 'application_identifier', ], 'ConfigurationProfileIdentifier' => [ 'shape' => 'Identifier', 'location' => 'querystring', 'locationName' => 'configuration_profile_identifier', ], 'EnvironmentIdentifier' => [ 'shape' => 'Identifier', 'location' => 'querystring', 'locationName' => 'environment_identifier', ], 'Status' => [ 'shape' => 'ExperimentDefinitionStatus', 'location' => 'querystring', 'locationName' => 'status', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], ], ], 'ListExperimentRunEventsRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', 'Run', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], 'Run' => [ 'shape' => 'PositiveInteger', 'box' => true, 'location' => 'uri', 'locationName' => 'Run', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], ], ], 'ListExperimentRunsRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], 'Status' => [ 'shape' => 'ExperimentRunStatus', 'location' => 'querystring', 'locationName' => 'status', ], ], ], 'ListExtensionAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'resource_identifier', ], 'ExtensionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'querystring', 'locationName' => 'extension_identifier', ], 'ExtensionVersionNumber' => [ 'shape' => 'Integer', 'box' => true, 'location' => 'querystring', 'locationName' => 'extension_version_number', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], ], ], 'ListExtensionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], 'Name' => [ 'shape' => 'QueryName', 'location' => 'querystring', 'locationName' => 'name', ], ], ], 'ListHostedConfigurationVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'ConfigurationProfileId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', 'location' => 'uri', 'locationName' => 'ConfigurationProfileId', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'max_results', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'next_token', ], 'VersionLabel' => [ 'shape' => 'QueryName', 'location' => 'querystring', 'locationName' => 'version_label', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', 'location' => 'uri', 'locationName' => 'ResourceArn', ], ], ], 'LongName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'MaxResults' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'MinutesBetween0And24Hours' => [ 'type' => 'integer', 'max' => 1440, 'min' => 0, ], 'Monitor' => [ 'type' => 'structure', 'required' => [ 'AlarmArn', ], 'members' => [ 'AlarmArn' => [ 'shape' => 'StringWithLengthBetween1And2048', ], 'AlarmRoleArn' => [ 'shape' => 'RoleArn', ], ], ], 'MonitorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Monitor', ], 'max' => 5, 'min' => 0, ], 'Name' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'NameWithReservedAwsPrefix' => [ 'type' => 'string', 'pattern' => '^(?!AWS\\.).{1,64}$', ], 'NextToken' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'NullablePercentage' => [ 'type' => 'float', 'box' => true, 'max' => 100.0, 'min' => 0.0, ], 'NumberList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Double', ], 'max' => 25, 'min' => 0, ], 'Parameter' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'Description', ], 'Required' => [ 'shape' => 'Boolean', ], 'Dynamic' => [ 'shape' => 'Boolean', ], ], ], 'ParameterMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ExtensionOrParameterName', ], 'value' => [ 'shape' => 'Parameter', ], 'max' => 10, 'min' => 1, ], 'ParameterValueMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ExtensionOrParameterName', ], 'value' => [ 'shape' => 'StringWithLengthBetween1And2048', ], 'max' => 10, 'min' => 0, ], 'PayloadTooLargeException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'Measure' => [ 'shape' => 'BytesMeasure', ], 'Limit' => [ 'shape' => 'Float', ], 'Size' => [ 'shape' => 'Float', ], ], 'error' => [ 'httpStatusCode' => 413, ], 'exception' => true, ], 'Percentage' => [ 'type' => 'float', 'max' => 100.0, 'min' => 1.0, ], 'PositiveInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 1, ], 'QueryName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'ReplicateTo' => [ 'type' => 'string', 'enum' => [ 'NONE', 'SSM_DOCUMENT', ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'ResourceName' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'ResourceTags' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'RoleArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => '^((arn):(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov|aws-eusc):(iam)::\\d{12}:role[/].*)$', ], 'Rule' => [ 'type' => 'string', 'max' => 16384, 'min' => 1, ], 'ServiceQuotaExceededException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 402, ], 'exception' => true, ], 'StartDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'EnvironmentId', 'DeploymentStrategyId', 'ConfigurationProfileId', 'ConfigurationVersion', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'EnvironmentId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'EnvironmentId', ], 'DeploymentStrategyId' => [ 'shape' => 'DeploymentStrategyId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', ], 'ConfigurationVersion' => [ 'shape' => 'Version', ], 'Description' => [ 'shape' => 'Description', ], 'Tags' => [ 'shape' => 'TagMap', ], 'KmsKeyIdentifier' => [ 'shape' => 'KmsKeyIdentifier', ], 'DynamicExtensionParameters' => [ 'shape' => 'DynamicParameterMap', ], 'LatestDeploymentNumber' => [ 'shape' => 'Integer', 'box' => true, ], ], ], 'StartExperimentRunRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], 'Description' => [ 'shape' => 'Description', ], 'ExposurePercentage' => [ 'shape' => 'NullablePercentage', ], 'TreatmentOverrides' => [ 'shape' => 'TreatmentOverrides', ], 'Tags' => [ 'shape' => 'TagMap', ], 'DeploymentParameters' => [ 'shape' => 'DeploymentParameters', ], ], ], 'StopDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'EnvironmentId', 'DeploymentNumber', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'EnvironmentId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'EnvironmentId', ], 'DeploymentNumber' => [ 'shape' => 'Integer', 'box' => true, 'location' => 'uri', 'locationName' => 'DeploymentNumber', ], 'AllowRevert' => [ 'shape' => 'Boolean', 'box' => true, 'location' => 'header', 'locationName' => 'Allow-Revert', ], ], ], 'StopExperimentRunRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', 'Run', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], 'Run' => [ 'shape' => 'PositiveInteger', 'box' => true, 'location' => 'uri', 'locationName' => 'Run', ], 'Result' => [ 'shape' => 'ExperimentRunResult', ], 'DeploymentParameters' => [ 'shape' => 'DeploymentParameters', ], ], ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeString', ], 'max' => 25, 'min' => 0, ], 'StringWithLengthBetween0And32768' => [ 'type' => 'string', 'max' => 32768, 'min' => 0, 'sensitive' => true, ], 'StringWithLengthBetween1And2048' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'StringWithLengthBetween1And255' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'StringWithLengthBetween1And64' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 0, ], 'TagMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'max' => 50, 'min' => 0, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', 'location' => 'uri', 'locationName' => 'ResourceArn', ], 'Tags' => [ 'shape' => 'TagMap', ], ], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, ], 'Treatment' => [ 'type' => 'structure', 'required' => [ 'Weight', 'FlagValue', ], 'members' => [ 'Key' => [ 'shape' => 'TreatmentKey', ], 'Weight' => [ 'shape' => 'Weight', ], 'Description' => [ 'shape' => 'Description', ], 'FlagValue' => [ 'shape' => 'FlagValue', ], ], ], 'TreatmentInput' => [ 'type' => 'structure', 'required' => [ 'Weight', 'FlagValue', ], 'members' => [ 'Weight' => [ 'shape' => 'Weight', ], 'Description' => [ 'shape' => 'Description', ], 'FlagValue' => [ 'shape' => 'FlagValue', ], ], ], 'TreatmentInputList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TreatmentInput', ], 'max' => 5, 'min' => 1, ], 'TreatmentKey' => [ 'type' => 'string', 'pattern' => '^[a-zA-Z0-9]{1,8}', ], 'TreatmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Treatment', ], 'max' => 5, 'min' => 1, ], 'TreatmentOverrideMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'EntityId', ], 'value' => [ 'shape' => 'TreatmentKey', ], 'max' => 32, 'min' => 0, ], 'TreatmentOverrides' => [ 'type' => 'structure', 'members' => [ 'Inline' => [ 'shape' => 'TreatmentOverrideMap', ], ], 'union' => true, ], 'TriggeredBy' => [ 'type' => 'string', 'enum' => [ 'USER', 'APPCONFIG', 'CLOUDWATCH_ALARM', 'INTERNAL_ERROR', ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'Arn', 'location' => 'uri', 'locationName' => 'ResourceArn', ], 'TagKeys' => [ 'shape' => 'TagKeyList', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], ], 'UpdateAccountSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'DeletionProtection' => [ 'shape' => 'DeletionProtectionSettings', ], 'VendedMetrics' => [ 'shape' => 'VendedMetricsSettings', ], ], ], 'UpdateApplicationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], ], ], 'UpdateConfigurationProfileRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'ConfigurationProfileId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', 'location' => 'uri', 'locationName' => 'ConfigurationProfileId', ], 'Name' => [ 'shape' => 'LongName', ], 'Description' => [ 'shape' => 'Description', ], 'RetrievalRoleArn' => [ 'shape' => 'RoleArn', ], 'Validators' => [ 'shape' => 'ValidatorList', ], 'KmsKeyIdentifier' => [ 'shape' => 'KmsKeyIdentifierOrEmpty', ], ], ], 'UpdateDeploymentStrategyRequest' => [ 'type' => 'structure', 'required' => [ 'DeploymentStrategyId', ], 'members' => [ 'DeploymentStrategyId' => [ 'shape' => 'DeploymentStrategyId', 'location' => 'uri', 'locationName' => 'DeploymentStrategyId', ], 'Description' => [ 'shape' => 'Description', ], 'DeploymentDurationInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', 'box' => true, ], 'FinalBakeTimeInMinutes' => [ 'shape' => 'MinutesBetween0And24Hours', 'box' => true, ], 'GrowthFactor' => [ 'shape' => 'GrowthFactor', 'box' => true, ], 'GrowthType' => [ 'shape' => 'GrowthType', ], ], ], 'UpdateEnvironmentRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'EnvironmentId', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'EnvironmentId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'EnvironmentId', ], 'Name' => [ 'shape' => 'Name', ], 'Description' => [ 'shape' => 'Description', ], 'Monitors' => [ 'shape' => 'MonitorList', ], ], ], 'UpdateExperimentDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], 'Treatments' => [ 'shape' => 'TreatmentInputList', ], 'Control' => [ 'shape' => 'TreatmentInput', ], 'Hypothesis' => [ 'shape' => 'Description', ], 'AudienceRule' => [ 'shape' => 'Rule', ], 'AudienceDescription' => [ 'shape' => 'Description', ], 'LaunchCriteria' => [ 'shape' => 'Description', ], ], ], 'UpdateExperimentRunRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationIdentifier', 'ExperimentDefinitionIdentifier', 'Run', ], 'members' => [ 'ApplicationIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ApplicationIdentifier', ], 'ExperimentDefinitionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExperimentDefinitionIdentifier', ], 'Run' => [ 'shape' => 'PositiveInteger', 'box' => true, 'location' => 'uri', 'locationName' => 'Run', ], 'Description' => [ 'shape' => 'Description', ], 'ExposurePercentage' => [ 'shape' => 'NullablePercentage', 'box' => true, ], 'TreatmentOverrides' => [ 'shape' => 'TreatmentOverrides', ], 'DeploymentParameters' => [ 'shape' => 'DeploymentParameters', ], ], ], 'UpdateExtensionAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'ExtensionAssociationId', ], 'members' => [ 'ExtensionAssociationId' => [ 'shape' => 'Id', 'location' => 'uri', 'locationName' => 'ExtensionAssociationId', ], 'Parameters' => [ 'shape' => 'ParameterValueMap', ], ], ], 'UpdateExtensionRequest' => [ 'type' => 'structure', 'required' => [ 'ExtensionIdentifier', ], 'members' => [ 'ExtensionIdentifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'ExtensionIdentifier', ], 'Description' => [ 'shape' => 'Description', ], 'Actions' => [ 'shape' => 'ActionsMap', ], 'Parameters' => [ 'shape' => 'ParameterMap', ], 'VersionNumber' => [ 'shape' => 'Integer', 'box' => true, ], ], ], 'Uri' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'ValidateConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ApplicationId', 'ConfigurationProfileId', 'ConfigurationVersion', ], 'members' => [ 'ApplicationId' => [ 'shape' => 'Name', 'location' => 'uri', 'locationName' => 'ApplicationId', ], 'ConfigurationProfileId' => [ 'shape' => 'LongName', 'location' => 'uri', 'locationName' => 'ConfigurationProfileId', ], 'ConfigurationVersion' => [ 'shape' => 'Version', 'location' => 'querystring', 'locationName' => 'configuration_version', ], ], ], 'Validator' => [ 'type' => 'structure', 'required' => [ 'Type', 'Content', ], 'members' => [ 'Type' => [ 'shape' => 'ValidatorType', ], 'Content' => [ 'shape' => 'StringWithLengthBetween0And32768', ], ], ], 'ValidatorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Validator', ], 'max' => 2, 'min' => 0, ], 'ValidatorType' => [ 'type' => 'string', 'enum' => [ 'JSON_SCHEMA', 'LAMBDA', ], ], 'ValidatorTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValidatorType', ], 'max' => 2, 'min' => 0, ], 'VendedMetricsSettings' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'box' => true, ], ], ], 'Version' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'VersionLabel' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '.*[^0-9].*', ], 'Weight' => [ 'type' => 'float', 'min' => 0.0, ], ],]; diff --git a/vendor/aws/aws-sdk-php/src/data/bedrock-agentcore-control/2023-06-05/api-2.json.php b/vendor/aws/aws-sdk-php/src/data/bedrock-agentcore-control/2023-06-05/api-2.json.php index 785943c2a..b51b72aa6 100644 --- a/vendor/aws/aws-sdk-php/src/data/bedrock-agentcore-control/2023-06-05/api-2.json.php +++ b/vendor/aws/aws-sdk-php/src/data/bedrock-agentcore-control/2023-06-05/api-2.json.php @@ -1,3 +1,3 @@ '2.0', 'metadata' => [ 'apiVersion' => '2023-06-05', 'auth' => [ 'aws.auth#sigv4', ], 'endpointPrefix' => 'bedrock-agentcore-control', 'protocol' => 'rest-json', 'protocols' => [ 'rest-json', ], 'serviceFullName' => 'Amazon Bedrock AgentCore Control', 'serviceId' => 'Bedrock AgentCore Control', 'signatureVersion' => 'v4', 'signingName' => 'bedrock-agentcore', 'uid' => 'bedrock-agentcore-control-2023-06-05', ], 'operations' => [ 'AddDatasetExamples' => [ 'name' => 'AddDatasetExamples', 'http' => [ 'method' => 'POST', 'requestUri' => '/datasets/{datasetId}/examples/add', 'responseCode' => 202, ], 'input' => [ 'shape' => 'AddDatasetExamplesRequest', ], 'output' => [ 'shape' => 'AddDatasetExamplesResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateAgentRuntime' => [ 'name' => 'CreateAgentRuntime', 'http' => [ 'method' => 'PUT', 'requestUri' => '/runtimes/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateAgentRuntimeRequest', ], 'output' => [ 'shape' => 'CreateAgentRuntimeResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateAgentRuntimeEndpoint' => [ 'name' => 'CreateAgentRuntimeEndpoint', 'http' => [ 'method' => 'PUT', 'requestUri' => '/runtimes/{agentRuntimeId}/runtime-endpoints/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateAgentRuntimeEndpointRequest', ], 'output' => [ 'shape' => 'CreateAgentRuntimeEndpointResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateApiKeyCredentialProvider' => [ 'name' => 'CreateApiKeyCredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/CreateApiKeyCredentialProvider', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateApiKeyCredentialProviderRequest', ], 'output' => [ 'shape' => 'CreateApiKeyCredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'EncryptionFailure', ], ], 'idempotent' => true, ], 'CreateBrowser' => [ 'name' => 'CreateBrowser', 'http' => [ 'method' => 'PUT', 'requestUri' => '/browsers', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateBrowserRequest', ], 'output' => [ 'shape' => 'CreateBrowserResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateBrowserProfile' => [ 'name' => 'CreateBrowserProfile', 'http' => [ 'method' => 'PUT', 'requestUri' => '/browser-profiles', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateBrowserProfileRequest', ], 'output' => [ 'shape' => 'CreateBrowserProfileResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateCodeInterpreter' => [ 'name' => 'CreateCodeInterpreter', 'http' => [ 'method' => 'PUT', 'requestUri' => '/code-interpreters', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateCodeInterpreterRequest', ], 'output' => [ 'shape' => 'CreateCodeInterpreterResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateConfigurationBundle' => [ 'name' => 'CreateConfigurationBundle', 'http' => [ 'method' => 'POST', 'requestUri' => '/configuration-bundles/create', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateConfigurationBundleRequest', ], 'output' => [ 'shape' => 'CreateConfigurationBundleResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateDataset' => [ 'name' => 'CreateDataset', 'http' => [ 'method' => 'POST', 'requestUri' => '/datasets', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateDatasetRequest', ], 'output' => [ 'shape' => 'CreateDatasetResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateDatasetVersion' => [ 'name' => 'CreateDatasetVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/datasets/{datasetId}/versions', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateDatasetVersionRequest', ], 'output' => [ 'shape' => 'CreateDatasetVersionResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateEvaluator' => [ 'name' => 'CreateEvaluator', 'http' => [ 'method' => 'POST', 'requestUri' => '/evaluators/create', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateEvaluatorRequest', ], 'output' => [ 'shape' => 'CreateEvaluatorResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateGateway' => [ 'name' => 'CreateGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/gateways/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateGatewayRequest', ], 'output' => [ 'shape' => 'CreateGatewayResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateGatewayRule' => [ 'name' => 'CreateGatewayRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/gateways/{gatewayIdentifier}/rules', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateGatewayRuleRequest', ], 'output' => [ 'shape' => 'CreateGatewayRuleResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateGatewayTarget' => [ 'name' => 'CreateGatewayTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/gateways/{gatewayIdentifier}/targets/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateGatewayTargetRequest', ], 'output' => [ 'shape' => 'CreateGatewayTargetResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateHarness' => [ 'name' => 'CreateHarness', 'http' => [ 'method' => 'POST', 'requestUri' => '/harnesses', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateHarnessRequest', ], 'output' => [ 'shape' => 'CreateHarnessResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateHarnessEndpoint' => [ 'name' => 'CreateHarnessEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/harnesses/{harnessId}/endpoints', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateHarnessEndpointRequest', ], 'output' => [ 'shape' => 'CreateHarnessEndpointResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateMemory' => [ 'name' => 'CreateMemory', 'http' => [ 'method' => 'POST', 'requestUri' => '/memories/create', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateMemoryInput', ], 'output' => [ 'shape' => 'CreateMemoryOutput', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottledException', ], ], 'idempotent' => true, ], 'CreateOauth2CredentialProvider' => [ 'name' => 'CreateOauth2CredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/CreateOauth2CredentialProvider', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateOauth2CredentialProviderRequest', ], 'output' => [ 'shape' => 'CreateOauth2CredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'EncryptionFailure', ], ], 'idempotent' => true, ], 'CreateOnlineEvaluationConfig' => [ 'name' => 'CreateOnlineEvaluationConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/online-evaluation-configs/create', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateOnlineEvaluationConfigRequest', ], 'output' => [ 'shape' => 'CreateOnlineEvaluationConfigResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreatePaymentConnector' => [ 'name' => 'CreatePaymentConnector', 'http' => [ 'method' => 'POST', 'requestUri' => '/payments/managers/{paymentManagerId}/connectors', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreatePaymentConnectorRequest', ], 'output' => [ 'shape' => 'CreatePaymentConnectorResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreatePaymentCredentialProvider' => [ 'name' => 'CreatePaymentCredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/CreatePaymentCredentialProvider', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreatePaymentCredentialProviderRequest', ], 'output' => [ 'shape' => 'CreatePaymentCredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'EncryptionFailure', ], ], 'idempotent' => true, ], 'CreatePaymentManager' => [ 'name' => 'CreatePaymentManager', 'http' => [ 'method' => 'POST', 'requestUri' => '/payments/managers', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreatePaymentManagerRequest', ], 'output' => [ 'shape' => 'CreatePaymentManagerResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreatePolicy' => [ 'name' => 'CreatePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/policy-engines/{policyEngineId}/policies', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreatePolicyRequest', ], 'output' => [ 'shape' => 'CreatePolicyResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreatePolicyEngine' => [ 'name' => 'CreatePolicyEngine', 'http' => [ 'method' => 'POST', 'requestUri' => '/policy-engines', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreatePolicyEngineRequest', ], 'output' => [ 'shape' => 'CreatePolicyEngineResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateRegistry' => [ 'name' => 'CreateRegistry', 'http' => [ 'method' => 'POST', 'requestUri' => '/registries', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateRegistryRequest', ], 'output' => [ 'shape' => 'CreateRegistryResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateRegistryRecord' => [ 'name' => 'CreateRegistryRecord', 'http' => [ 'method' => 'POST', 'requestUri' => '/registries/{registryId}/records', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateRegistryRecordRequest', ], 'output' => [ 'shape' => 'CreateRegistryRecordResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateWorkloadIdentity' => [ 'name' => 'CreateWorkloadIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/CreateWorkloadIdentity', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateWorkloadIdentityRequest', ], 'output' => [ 'shape' => 'CreateWorkloadIdentityResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteAgentRuntime' => [ 'name' => 'DeleteAgentRuntime', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/runtimes/{agentRuntimeId}/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteAgentRuntimeRequest', ], 'output' => [ 'shape' => 'DeleteAgentRuntimeResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteAgentRuntimeEndpoint' => [ 'name' => 'DeleteAgentRuntimeEndpoint', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/runtimes/{agentRuntimeId}/runtime-endpoints/{endpointName}/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteAgentRuntimeEndpointRequest', ], 'output' => [ 'shape' => 'DeleteAgentRuntimeEndpointResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteApiKeyCredentialProvider' => [ 'name' => 'DeleteApiKeyCredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/DeleteApiKeyCredentialProvider', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteApiKeyCredentialProviderRequest', ], 'output' => [ 'shape' => 'DeleteApiKeyCredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteBrowser' => [ 'name' => 'DeleteBrowser', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/browsers/{browserId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteBrowserRequest', ], 'output' => [ 'shape' => 'DeleteBrowserResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteBrowserProfile' => [ 'name' => 'DeleteBrowserProfile', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/browser-profiles/{profileId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteBrowserProfileRequest', ], 'output' => [ 'shape' => 'DeleteBrowserProfileResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteCodeInterpreter' => [ 'name' => 'DeleteCodeInterpreter', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/code-interpreters/{codeInterpreterId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteCodeInterpreterRequest', ], 'output' => [ 'shape' => 'DeleteCodeInterpreterResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteConfigurationBundle' => [ 'name' => 'DeleteConfigurationBundle', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/configuration-bundles/{bundleId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteConfigurationBundleRequest', ], 'output' => [ 'shape' => 'DeleteConfigurationBundleResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteDataset' => [ 'name' => 'DeleteDataset', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/datasets/{datasetId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteDatasetRequest', ], 'output' => [ 'shape' => 'DeleteDatasetResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteDatasetExamples' => [ 'name' => 'DeleteDatasetExamples', 'http' => [ 'method' => 'POST', 'requestUri' => '/datasets/{datasetId}/examples/delete', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteDatasetExamplesRequest', ], 'output' => [ 'shape' => 'DeleteDatasetExamplesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DeleteEvaluator' => [ 'name' => 'DeleteEvaluator', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/evaluators/{evaluatorId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteEvaluatorRequest', ], 'output' => [ 'shape' => 'DeleteEvaluatorResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteGateway' => [ 'name' => 'DeleteGateway', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/gateways/{gatewayIdentifier}/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteGatewayRequest', ], 'output' => [ 'shape' => 'DeleteGatewayResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteGatewayRule' => [ 'name' => 'DeleteGatewayRule', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/gateways/{gatewayIdentifier}/rules/{ruleId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteGatewayRuleRequest', ], 'output' => [ 'shape' => 'DeleteGatewayRuleResponse', ], 'errors' => [ [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteGatewayTarget' => [ 'name' => 'DeleteGatewayTarget', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/gateways/{gatewayIdentifier}/targets/{targetId}/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteGatewayTargetRequest', ], 'output' => [ 'shape' => 'DeleteGatewayTargetResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteHarness' => [ 'name' => 'DeleteHarness', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/harnesses/{harnessId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteHarnessRequest', ], 'output' => [ 'shape' => 'DeleteHarnessResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteHarnessEndpoint' => [ 'name' => 'DeleteHarnessEndpoint', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/harnesses/{harnessId}/endpoints/{endpointName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteHarnessEndpointRequest', ], 'output' => [ 'shape' => 'DeleteHarnessEndpointResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteMemory' => [ 'name' => 'DeleteMemory', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/memories/{memoryId}/delete', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteMemoryInput', ], 'output' => [ 'shape' => 'DeleteMemoryOutput', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottledException', ], ], 'idempotent' => true, ], 'DeleteOauth2CredentialProvider' => [ 'name' => 'DeleteOauth2CredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/DeleteOauth2CredentialProvider', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteOauth2CredentialProviderRequest', ], 'output' => [ 'shape' => 'DeleteOauth2CredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteOnlineEvaluationConfig' => [ 'name' => 'DeleteOnlineEvaluationConfig', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/online-evaluation-configs/{onlineEvaluationConfigId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteOnlineEvaluationConfigRequest', ], 'output' => [ 'shape' => 'DeleteOnlineEvaluationConfigResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeletePaymentConnector' => [ 'name' => 'DeletePaymentConnector', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/payments/managers/{paymentManagerId}/connectors/{paymentConnectorId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeletePaymentConnectorRequest', ], 'output' => [ 'shape' => 'DeletePaymentConnectorResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeletePaymentCredentialProvider' => [ 'name' => 'DeletePaymentCredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/DeletePaymentCredentialProvider', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeletePaymentCredentialProviderRequest', ], 'output' => [ 'shape' => 'DeletePaymentCredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeletePaymentManager' => [ 'name' => 'DeletePaymentManager', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/payments/managers/{paymentManagerId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeletePaymentManagerRequest', ], 'output' => [ 'shape' => 'DeletePaymentManagerResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeletePolicy' => [ 'name' => 'DeletePolicy', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/policy-engines/{policyEngineId}/policies/{policyId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeletePolicyRequest', ], 'output' => [ 'shape' => 'DeletePolicyResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeletePolicyEngine' => [ 'name' => 'DeletePolicyEngine', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/policy-engines/{policyEngineId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeletePolicyEngineRequest', ], 'output' => [ 'shape' => 'DeletePolicyEngineResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteRegistry' => [ 'name' => 'DeleteRegistry', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/registries/{registryId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteRegistryRequest', ], 'output' => [ 'shape' => 'DeleteRegistryResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteRegistryRecord' => [ 'name' => 'DeleteRegistryRecord', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/registries/{registryId}/records/{recordId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteRegistryRecordRequest', ], 'output' => [ 'shape' => 'DeleteRegistryRecordResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteResourcePolicy' => [ 'name' => 'DeleteResourcePolicy', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/resourcepolicy/{resourceArn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteResourcePolicyRequest', ], 'output' => [ 'shape' => 'DeleteResourcePolicyResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteWorkloadIdentity' => [ 'name' => 'DeleteWorkloadIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/DeleteWorkloadIdentity', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteWorkloadIdentityRequest', ], 'output' => [ 'shape' => 'DeleteWorkloadIdentityResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'GetAgentRuntime' => [ 'name' => 'GetAgentRuntime', 'http' => [ 'method' => 'GET', 'requestUri' => '/runtimes/{agentRuntimeId}/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetAgentRuntimeRequest', ], 'output' => [ 'shape' => 'GetAgentRuntimeResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetAgentRuntimeEndpoint' => [ 'name' => 'GetAgentRuntimeEndpoint', 'http' => [ 'method' => 'GET', 'requestUri' => '/runtimes/{agentRuntimeId}/runtime-endpoints/{endpointName}/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetAgentRuntimeEndpointRequest', ], 'output' => [ 'shape' => 'GetAgentRuntimeEndpointResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetApiKeyCredentialProvider' => [ 'name' => 'GetApiKeyCredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/GetApiKeyCredentialProvider', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetApiKeyCredentialProviderRequest', ], 'output' => [ 'shape' => 'GetApiKeyCredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetBrowser' => [ 'name' => 'GetBrowser', 'http' => [ 'method' => 'GET', 'requestUri' => '/browsers/{browserId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBrowserRequest', ], 'output' => [ 'shape' => 'GetBrowserResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetBrowserProfile' => [ 'name' => 'GetBrowserProfile', 'http' => [ 'method' => 'GET', 'requestUri' => '/browser-profiles/{profileId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBrowserProfileRequest', ], 'output' => [ 'shape' => 'GetBrowserProfileResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetCodeInterpreter' => [ 'name' => 'GetCodeInterpreter', 'http' => [ 'method' => 'GET', 'requestUri' => '/code-interpreters/{codeInterpreterId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetCodeInterpreterRequest', ], 'output' => [ 'shape' => 'GetCodeInterpreterResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetConfigurationBundle' => [ 'name' => 'GetConfigurationBundle', 'http' => [ 'method' => 'GET', 'requestUri' => '/configuration-bundles/{bundleId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetConfigurationBundleRequest', ], 'output' => [ 'shape' => 'GetConfigurationBundleResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetConfigurationBundleVersion' => [ 'name' => 'GetConfigurationBundleVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/configuration-bundles/{bundleId}/versions/{versionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetConfigurationBundleVersionRequest', ], 'output' => [ 'shape' => 'GetConfigurationBundleVersionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetDataset' => [ 'name' => 'GetDataset', 'http' => [ 'method' => 'GET', 'requestUri' => '/datasets/{datasetId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDatasetRequest', ], 'output' => [ 'shape' => 'GetDatasetResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetEvaluator' => [ 'name' => 'GetEvaluator', 'http' => [ 'method' => 'GET', 'requestUri' => '/evaluators/{evaluatorId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetEvaluatorRequest', ], 'output' => [ 'shape' => 'GetEvaluatorResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetGateway' => [ 'name' => 'GetGateway', 'http' => [ 'method' => 'GET', 'requestUri' => '/gateways/{gatewayIdentifier}/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetGatewayRequest', ], 'output' => [ 'shape' => 'GetGatewayResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetGatewayRule' => [ 'name' => 'GetGatewayRule', 'http' => [ 'method' => 'GET', 'requestUri' => '/gateways/{gatewayIdentifier}/rules/{ruleId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetGatewayRuleRequest', ], 'output' => [ 'shape' => 'GetGatewayRuleResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetGatewayTarget' => [ 'name' => 'GetGatewayTarget', 'http' => [ 'method' => 'GET', 'requestUri' => '/gateways/{gatewayIdentifier}/targets/{targetId}/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetGatewayTargetRequest', ], 'output' => [ 'shape' => 'GetGatewayTargetResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetHarness' => [ 'name' => 'GetHarness', 'http' => [ 'method' => 'GET', 'requestUri' => '/harnesses/{harnessId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetHarnessRequest', ], 'output' => [ 'shape' => 'GetHarnessResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetHarnessEndpoint' => [ 'name' => 'GetHarnessEndpoint', 'http' => [ 'method' => 'GET', 'requestUri' => '/harnesses/{harnessId}/endpoints/{endpointName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetHarnessEndpointRequest', ], 'output' => [ 'shape' => 'GetHarnessEndpointResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetMemory' => [ 'name' => 'GetMemory', 'http' => [ 'method' => 'GET', 'requestUri' => '/memories/{memoryId}/details', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetMemoryInput', ], 'output' => [ 'shape' => 'GetMemoryOutput', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottledException', ], ], 'readonly' => true, ], 'GetOauth2CredentialProvider' => [ 'name' => 'GetOauth2CredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/GetOauth2CredentialProvider', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetOauth2CredentialProviderRequest', ], 'output' => [ 'shape' => 'GetOauth2CredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetOnlineEvaluationConfig' => [ 'name' => 'GetOnlineEvaluationConfig', 'http' => [ 'method' => 'GET', 'requestUri' => '/online-evaluation-configs/{onlineEvaluationConfigId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetOnlineEvaluationConfigRequest', ], 'output' => [ 'shape' => 'GetOnlineEvaluationConfigResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPaymentConnector' => [ 'name' => 'GetPaymentConnector', 'http' => [ 'method' => 'GET', 'requestUri' => '/payments/managers/{paymentManagerId}/connectors/{paymentConnectorId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPaymentConnectorRequest', ], 'output' => [ 'shape' => 'GetPaymentConnectorResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPaymentCredentialProvider' => [ 'name' => 'GetPaymentCredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/GetPaymentCredentialProvider', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPaymentCredentialProviderRequest', ], 'output' => [ 'shape' => 'GetPaymentCredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPaymentManager' => [ 'name' => 'GetPaymentManager', 'http' => [ 'method' => 'GET', 'requestUri' => '/payments/managers/{paymentManagerId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPaymentManagerRequest', ], 'output' => [ 'shape' => 'GetPaymentManagerResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPolicy' => [ 'name' => 'GetPolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policies/{policyId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPolicyRequest', ], 'output' => [ 'shape' => 'GetPolicyResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPolicyEngine' => [ 'name' => 'GetPolicyEngine', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPolicyEngineRequest', ], 'output' => [ 'shape' => 'GetPolicyEngineResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPolicyEngineSummary' => [ 'name' => 'GetPolicyEngineSummary', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engine-summaries/{policyEngineId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPolicyEngineSummaryRequest', ], 'output' => [ 'shape' => 'GetPolicyEngineSummaryResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPolicyGeneration' => [ 'name' => 'GetPolicyGeneration', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policy-generations/{policyGenerationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPolicyGenerationRequest', ], 'output' => [ 'shape' => 'GetPolicyGenerationResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPolicyGenerationSummary' => [ 'name' => 'GetPolicyGenerationSummary', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policy-generation-summaries/{policyGenerationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPolicyGenerationSummaryRequest', ], 'output' => [ 'shape' => 'GetPolicyGenerationSummaryResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPolicySummary' => [ 'name' => 'GetPolicySummary', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policy-summaries/{policyId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPolicySummaryRequest', ], 'output' => [ 'shape' => 'GetPolicySummaryResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetRegistry' => [ 'name' => 'GetRegistry', 'http' => [ 'method' => 'GET', 'requestUri' => '/registries/{registryId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetRegistryRequest', ], 'output' => [ 'shape' => 'GetRegistryResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetRegistryRecord' => [ 'name' => 'GetRegistryRecord', 'http' => [ 'method' => 'GET', 'requestUri' => '/registries/{registryId}/records/{recordId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetRegistryRecordRequest', ], 'output' => [ 'shape' => 'GetRegistryRecordResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetResourcePolicy' => [ 'name' => 'GetResourcePolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/resourcepolicy/{resourceArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetResourcePolicyRequest', ], 'output' => [ 'shape' => 'GetResourcePolicyResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetTokenVault' => [ 'name' => 'GetTokenVault', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/get-token-vault', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetTokenVaultRequest', ], 'output' => [ 'shape' => 'GetTokenVaultResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetWorkloadIdentity' => [ 'name' => 'GetWorkloadIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/GetWorkloadIdentity', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetWorkloadIdentityRequest', ], 'output' => [ 'shape' => 'GetWorkloadIdentityResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListAgentRuntimeEndpoints' => [ 'name' => 'ListAgentRuntimeEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/runtimes/{agentRuntimeId}/runtime-endpoints/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListAgentRuntimeEndpointsRequest', ], 'output' => [ 'shape' => 'ListAgentRuntimeEndpointsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListAgentRuntimeVersions' => [ 'name' => 'ListAgentRuntimeVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/runtimes/{agentRuntimeId}/versions/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListAgentRuntimeVersionsRequest', ], 'output' => [ 'shape' => 'ListAgentRuntimeVersionsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListAgentRuntimes' => [ 'name' => 'ListAgentRuntimes', 'http' => [ 'method' => 'POST', 'requestUri' => '/runtimes/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListAgentRuntimesRequest', ], 'output' => [ 'shape' => 'ListAgentRuntimesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListApiKeyCredentialProviders' => [ 'name' => 'ListApiKeyCredentialProviders', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/ListApiKeyCredentialProviders', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListApiKeyCredentialProvidersRequest', ], 'output' => [ 'shape' => 'ListApiKeyCredentialProvidersResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListBrowserProfiles' => [ 'name' => 'ListBrowserProfiles', 'http' => [ 'method' => 'POST', 'requestUri' => '/browser-profiles', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListBrowserProfilesRequest', ], 'output' => [ 'shape' => 'ListBrowserProfilesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListBrowsers' => [ 'name' => 'ListBrowsers', 'http' => [ 'method' => 'POST', 'requestUri' => '/browsers', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListBrowsersRequest', ], 'output' => [ 'shape' => 'ListBrowsersResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListCodeInterpreters' => [ 'name' => 'ListCodeInterpreters', 'http' => [ 'method' => 'POST', 'requestUri' => '/code-interpreters', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListCodeInterpretersRequest', ], 'output' => [ 'shape' => 'ListCodeInterpretersResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListConfigurationBundleVersions' => [ 'name' => 'ListConfigurationBundleVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/configuration-bundles/{bundleId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListConfigurationBundleVersionsRequest', ], 'output' => [ 'shape' => 'ListConfigurationBundleVersionsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListConfigurationBundles' => [ 'name' => 'ListConfigurationBundles', 'http' => [ 'method' => 'POST', 'requestUri' => '/configuration-bundles', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListConfigurationBundlesRequest', ], 'output' => [ 'shape' => 'ListConfigurationBundlesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListDatasetExamples' => [ 'name' => 'ListDatasetExamples', 'http' => [ 'method' => 'GET', 'requestUri' => '/datasets/{datasetId}/examples', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDatasetExamplesRequest', ], 'output' => [ 'shape' => 'ListDatasetExamplesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListDatasetVersions' => [ 'name' => 'ListDatasetVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/datasets/{datasetId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDatasetVersionsRequest', ], 'output' => [ 'shape' => 'ListDatasetVersionsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListDatasets' => [ 'name' => 'ListDatasets', 'http' => [ 'method' => 'GET', 'requestUri' => '/datasets', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDatasetsRequest', ], 'output' => [ 'shape' => 'ListDatasetsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListEvaluators' => [ 'name' => 'ListEvaluators', 'http' => [ 'method' => 'POST', 'requestUri' => '/evaluators', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListEvaluatorsRequest', ], 'output' => [ 'shape' => 'ListEvaluatorsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListGatewayRules' => [ 'name' => 'ListGatewayRules', 'http' => [ 'method' => 'GET', 'requestUri' => '/gateways/{gatewayIdentifier}/rules', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListGatewayRulesRequest', ], 'output' => [ 'shape' => 'ListGatewayRulesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListGatewayTargets' => [ 'name' => 'ListGatewayTargets', 'http' => [ 'method' => 'GET', 'requestUri' => '/gateways/{gatewayIdentifier}/targets/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListGatewayTargetsRequest', ], 'output' => [ 'shape' => 'ListGatewayTargetsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListGateways' => [ 'name' => 'ListGateways', 'http' => [ 'method' => 'GET', 'requestUri' => '/gateways/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListGatewaysRequest', ], 'output' => [ 'shape' => 'ListGatewaysResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListHarnessEndpoints' => [ 'name' => 'ListHarnessEndpoints', 'http' => [ 'method' => 'GET', 'requestUri' => '/harnesses/{harnessId}/endpoints', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListHarnessEndpointsRequest', ], 'output' => [ 'shape' => 'ListHarnessEndpointsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListHarnessVersions' => [ 'name' => 'ListHarnessVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/harnesses/{harnessId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListHarnessVersionsRequest', ], 'output' => [ 'shape' => 'ListHarnessVersionsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListHarnesses' => [ 'name' => 'ListHarnesses', 'http' => [ 'method' => 'GET', 'requestUri' => '/harnesses', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListHarnessesRequest', ], 'output' => [ 'shape' => 'ListHarnessesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListMemories' => [ 'name' => 'ListMemories', 'http' => [ 'method' => 'POST', 'requestUri' => '/memories/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListMemoriesInput', ], 'output' => [ 'shape' => 'ListMemoriesOutput', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottledException', ], ], 'readonly' => true, ], 'ListOauth2CredentialProviders' => [ 'name' => 'ListOauth2CredentialProviders', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/ListOauth2CredentialProviders', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListOauth2CredentialProvidersRequest', ], 'output' => [ 'shape' => 'ListOauth2CredentialProvidersResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListOnlineEvaluationConfigs' => [ 'name' => 'ListOnlineEvaluationConfigs', 'http' => [ 'method' => 'POST', 'requestUri' => '/online-evaluation-configs', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListOnlineEvaluationConfigsRequest', ], 'output' => [ 'shape' => 'ListOnlineEvaluationConfigsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPaymentConnectors' => [ 'name' => 'ListPaymentConnectors', 'http' => [ 'method' => 'POST', 'requestUri' => '/payments/managers/{paymentManagerId}/connectors-list', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPaymentConnectorsRequest', ], 'output' => [ 'shape' => 'ListPaymentConnectorsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPaymentCredentialProviders' => [ 'name' => 'ListPaymentCredentialProviders', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/ListPaymentCredentialProviders', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPaymentCredentialProvidersRequest', ], 'output' => [ 'shape' => 'ListPaymentCredentialProvidersResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPaymentManagers' => [ 'name' => 'ListPaymentManagers', 'http' => [ 'method' => 'POST', 'requestUri' => '/payments/managers-list', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPaymentManagersRequest', ], 'output' => [ 'shape' => 'ListPaymentManagersResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPolicies' => [ 'name' => 'ListPolicies', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policies', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPoliciesRequest', ], 'output' => [ 'shape' => 'ListPoliciesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPolicyEngineSummaries' => [ 'name' => 'ListPolicyEngineSummaries', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engine-summaries', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPolicyEngineSummariesRequest', ], 'output' => [ 'shape' => 'ListPolicyEngineSummariesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPolicyEngines' => [ 'name' => 'ListPolicyEngines', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPolicyEnginesRequest', ], 'output' => [ 'shape' => 'ListPolicyEnginesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPolicyGenerationAssets' => [ 'name' => 'ListPolicyGenerationAssets', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policy-generations/{policyGenerationId}/assets', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPolicyGenerationAssetsRequest', ], 'output' => [ 'shape' => 'ListPolicyGenerationAssetsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPolicyGenerationSummaries' => [ 'name' => 'ListPolicyGenerationSummaries', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policy-generation-summaries', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPolicyGenerationSummariesRequest', ], 'output' => [ 'shape' => 'ListPolicyGenerationSummariesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPolicyGenerations' => [ 'name' => 'ListPolicyGenerations', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policy-generations', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPolicyGenerationsRequest', ], 'output' => [ 'shape' => 'ListPolicyGenerationsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPolicySummaries' => [ 'name' => 'ListPolicySummaries', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policy-summaries', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPolicySummariesRequest', ], 'output' => [ 'shape' => 'ListPolicySummariesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListRegistries' => [ 'name' => 'ListRegistries', 'http' => [ 'method' => 'GET', 'requestUri' => '/registries', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListRegistriesRequest', ], 'output' => [ 'shape' => 'ListRegistriesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListRegistryRecords' => [ 'name' => 'ListRegistryRecords', 'http' => [ 'method' => 'GET', 'requestUri' => '/registries/{registryId}/records', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListRegistryRecordsRequest', ], 'output' => [ 'shape' => 'ListRegistryRecordsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags/{resourceArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListWorkloadIdentities' => [ 'name' => 'ListWorkloadIdentities', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/ListWorkloadIdentities', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListWorkloadIdentitiesRequest', ], 'output' => [ 'shape' => 'ListWorkloadIdentitiesResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'PutResourcePolicy' => [ 'name' => 'PutResourcePolicy', 'http' => [ 'method' => 'PUT', 'requestUri' => '/resourcepolicy/{resourceArn}', 'responseCode' => 201, ], 'input' => [ 'shape' => 'PutResourcePolicyRequest', ], 'output' => [ 'shape' => 'PutResourcePolicyResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'SetTokenVaultCMK' => [ 'name' => 'SetTokenVaultCMK', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/set-token-vault-cmk', 'responseCode' => 200, ], 'input' => [ 'shape' => 'SetTokenVaultCMKRequest', ], 'output' => [ 'shape' => 'SetTokenVaultCMKResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StartPolicyGeneration' => [ 'name' => 'StartPolicyGeneration', 'http' => [ 'method' => 'POST', 'requestUri' => '/policy-engines/{policyEngineId}/policy-generations', 'responseCode' => 202, ], 'input' => [ 'shape' => 'StartPolicyGenerationRequest', ], 'output' => [ 'shape' => 'StartPolicyGenerationResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'SubmitRegistryRecordForApproval' => [ 'name' => 'SubmitRegistryRecordForApproval', 'http' => [ 'method' => 'POST', 'requestUri' => '/registries/{registryId}/records/{recordId}/submit-for-approval', 'responseCode' => 202, ], 'input' => [ 'shape' => 'SubmitRegistryRecordForApprovalRequest', ], 'output' => [ 'shape' => 'SubmitRegistryRecordForApprovalResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'SynchronizeGatewayTargets' => [ 'name' => 'SynchronizeGatewayTargets', 'http' => [ 'method' => 'PUT', 'requestUri' => '/gateways/{gatewayIdentifier}/synchronizeTargets', 'responseCode' => 202, ], 'input' => [ 'shape' => 'SynchronizeGatewayTargetsRequest', ], 'output' => [ 'shape' => 'SynchronizeGatewayTargetsResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tags/{resourceArn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/tags/{resourceArn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateAgentRuntime' => [ 'name' => 'UpdateAgentRuntime', 'http' => [ 'method' => 'PUT', 'requestUri' => '/runtimes/{agentRuntimeId}/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateAgentRuntimeRequest', ], 'output' => [ 'shape' => 'UpdateAgentRuntimeResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateAgentRuntimeEndpoint' => [ 'name' => 'UpdateAgentRuntimeEndpoint', 'http' => [ 'method' => 'PUT', 'requestUri' => '/runtimes/{agentRuntimeId}/runtime-endpoints/{endpointName}/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateAgentRuntimeEndpointRequest', ], 'output' => [ 'shape' => 'UpdateAgentRuntimeEndpointResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateApiKeyCredentialProvider' => [ 'name' => 'UpdateApiKeyCredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/UpdateApiKeyCredentialProvider', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateApiKeyCredentialProviderRequest', ], 'output' => [ 'shape' => 'UpdateApiKeyCredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'EncryptionFailure', ], ], 'idempotent' => true, ], 'UpdateConfigurationBundle' => [ 'name' => 'UpdateConfigurationBundle', 'http' => [ 'method' => 'PUT', 'requestUri' => '/configuration-bundles/{bundleId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateConfigurationBundleRequest', ], 'output' => [ 'shape' => 'UpdateConfigurationBundleResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateDataset' => [ 'name' => 'UpdateDataset', 'http' => [ 'method' => 'PUT', 'requestUri' => '/datasets/{datasetId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateDatasetRequest', ], 'output' => [ 'shape' => 'UpdateDatasetResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateDatasetExamples' => [ 'name' => 'UpdateDatasetExamples', 'http' => [ 'method' => 'POST', 'requestUri' => '/datasets/{datasetId}/examples/update', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateDatasetExamplesRequest', ], 'output' => [ 'shape' => 'UpdateDatasetExamplesResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateEvaluator' => [ 'name' => 'UpdateEvaluator', 'http' => [ 'method' => 'PUT', 'requestUri' => '/evaluators/{evaluatorId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateEvaluatorRequest', ], 'output' => [ 'shape' => 'UpdateEvaluatorResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateGateway' => [ 'name' => 'UpdateGateway', 'http' => [ 'method' => 'PUT', 'requestUri' => '/gateways/{gatewayIdentifier}/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateGatewayRequest', ], 'output' => [ 'shape' => 'UpdateGatewayResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateGatewayRule' => [ 'name' => 'UpdateGatewayRule', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/gateways/{gatewayIdentifier}/rules/{ruleId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateGatewayRuleRequest', ], 'output' => [ 'shape' => 'UpdateGatewayRuleResponse', ], 'errors' => [ [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateGatewayTarget' => [ 'name' => 'UpdateGatewayTarget', 'http' => [ 'method' => 'PUT', 'requestUri' => '/gateways/{gatewayIdentifier}/targets/{targetId}/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateGatewayTargetRequest', ], 'output' => [ 'shape' => 'UpdateGatewayTargetResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateHarness' => [ 'name' => 'UpdateHarness', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/harnesses/{harnessId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateHarnessRequest', ], 'output' => [ 'shape' => 'UpdateHarnessResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateHarnessEndpoint' => [ 'name' => 'UpdateHarnessEndpoint', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/harnesses/{harnessId}/endpoints/{endpointName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateHarnessEndpointRequest', ], 'output' => [ 'shape' => 'UpdateHarnessEndpointResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateMemory' => [ 'name' => 'UpdateMemory', 'http' => [ 'method' => 'PUT', 'requestUri' => '/memories/{memoryId}/update', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateMemoryInput', ], 'output' => [ 'shape' => 'UpdateMemoryOutput', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottledException', ], ], 'idempotent' => true, ], 'UpdateOauth2CredentialProvider' => [ 'name' => 'UpdateOauth2CredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/UpdateOauth2CredentialProvider', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateOauth2CredentialProviderRequest', ], 'output' => [ 'shape' => 'UpdateOauth2CredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'EncryptionFailure', ], ], ], 'UpdateOnlineEvaluationConfig' => [ 'name' => 'UpdateOnlineEvaluationConfig', 'http' => [ 'method' => 'PUT', 'requestUri' => '/online-evaluation-configs/{onlineEvaluationConfigId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateOnlineEvaluationConfigRequest', ], 'output' => [ 'shape' => 'UpdateOnlineEvaluationConfigResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdatePaymentConnector' => [ 'name' => 'UpdatePaymentConnector', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/payments/managers/{paymentManagerId}/connectors/{paymentConnectorId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdatePaymentConnectorRequest', ], 'output' => [ 'shape' => 'UpdatePaymentConnectorResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdatePaymentCredentialProvider' => [ 'name' => 'UpdatePaymentCredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/UpdatePaymentCredentialProvider', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdatePaymentCredentialProviderRequest', ], 'output' => [ 'shape' => 'UpdatePaymentCredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'EncryptionFailure', ], ], ], 'UpdatePaymentManager' => [ 'name' => 'UpdatePaymentManager', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/payments/managers/{paymentManagerId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdatePaymentManagerRequest', ], 'output' => [ 'shape' => 'UpdatePaymentManagerResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdatePolicy' => [ 'name' => 'UpdatePolicy', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/policy-engines/{policyEngineId}/policies/{policyId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdatePolicyRequest', ], 'output' => [ 'shape' => 'UpdatePolicyResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdatePolicyEngine' => [ 'name' => 'UpdatePolicyEngine', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/policy-engines/{policyEngineId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdatePolicyEngineRequest', ], 'output' => [ 'shape' => 'UpdatePolicyEngineResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateRegistry' => [ 'name' => 'UpdateRegistry', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/registries/{registryId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateRegistryRequest', ], 'output' => [ 'shape' => 'UpdateRegistryResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateRegistryRecord' => [ 'name' => 'UpdateRegistryRecord', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/registries/{registryId}/records/{recordId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateRegistryRecordRequest', ], 'output' => [ 'shape' => 'UpdateRegistryRecordResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateRegistryRecordStatus' => [ 'name' => 'UpdateRegistryRecordStatus', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/registries/{registryId}/records/{recordId}/status', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateRegistryRecordStatusRequest', ], 'output' => [ 'shape' => 'UpdateRegistryRecordStatusResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateWorkloadIdentity' => [ 'name' => 'UpdateWorkloadIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/UpdateWorkloadIdentity', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateWorkloadIdentityRequest', ], 'output' => [ 'shape' => 'UpdateWorkloadIdentityResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], ], 'shapes' => [ 'A2aDescriptor' => [ 'type' => 'structure', 'members' => [ 'agentCard' => [ 'shape' => 'AgentCardDefinition', ], ], ], 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'NonBlankString', ], ], 'error' => [ 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'Action' => [ 'type' => 'structure', 'members' => [ 'configurationBundle' => [ 'shape' => 'ConfigurationBundleAction', ], 'routeToTarget' => [ 'shape' => 'RouteToTargetAction', ], ], 'union' => true, ], 'Actions' => [ 'type' => 'list', 'member' => [ 'shape' => 'Action', ], 'max' => 2, 'min' => 1, ], 'ActorTokenContentType' => [ 'type' => 'string', 'enum' => [ 'NONE', 'M2M', 'AWS_IAM_ID_TOKEN_JWT', ], ], 'AddDatasetExamplesRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', 'source', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'source' => [ 'shape' => 'DataSourceType', ], ], ], 'AddDatasetExamplesResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'status', 'addedCount', 'updatedAt', 'exampleIds', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'addedCount' => [ 'shape' => 'Long', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'exampleIds' => [ 'shape' => 'ExampleIdList', ], ], ], 'AdditionalModelRequestFields' => [ 'type' => 'structure', 'members' => [], 'document' => true, ], 'AgentCardDefinition' => [ 'type' => 'structure', 'members' => [ 'schemaVersion' => [ 'shape' => 'SchemaVersion', ], 'inlineContent' => [ 'shape' => 'InlineContent', ], ], ], 'AgentEndpointDescription' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'AgentManagedRuntimeType' => [ 'type' => 'string', 'enum' => [ 'PYTHON_3_10', 'PYTHON_3_11', 'PYTHON_3_12', 'PYTHON_3_13', 'PYTHON_3_14', 'NODE_22', ], ], 'AgentRuntime' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeArn', 'agentRuntimeId', 'agentRuntimeVersion', 'agentRuntimeName', 'description', 'lastUpdatedAt', 'status', ], 'members' => [ 'agentRuntimeArn' => [ 'shape' => 'AgentRuntimeArn', ], 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', ], 'agentRuntimeVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'agentRuntimeName' => [ 'shape' => 'AgentRuntimeName', ], 'description' => [ 'shape' => 'Description', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'AgentRuntimeStatus', ], ], ], 'AgentRuntimeArn' => [ 'type' => 'string', 'pattern' => 'arn:(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:agent/[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}:([0-9]{0,4}[1-9][0-9]{0,4})', ], 'AgentRuntimeArtifact' => [ 'type' => 'structure', 'members' => [ 'containerConfiguration' => [ 'shape' => 'ContainerConfiguration', ], 'codeConfiguration' => [ 'shape' => 'CodeConfiguration', ], ], 'union' => true, ], 'AgentRuntimeEndpoint' => [ 'type' => 'structure', 'required' => [ 'name', 'agentRuntimeEndpointArn', 'agentRuntimeArn', 'status', 'id', 'createdAt', 'lastUpdatedAt', ], 'members' => [ 'name' => [ 'shape' => 'EndpointName', ], 'liveVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'targetVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'agentRuntimeEndpointArn' => [ 'shape' => 'AgentRuntimeEndpointArn', ], 'agentRuntimeArn' => [ 'shape' => 'AgentRuntimeArn', ], 'status' => [ 'shape' => 'AgentRuntimeEndpointStatus', ], 'id' => [ 'shape' => 'AgentRuntimeEndpointId', ], 'description' => [ 'shape' => 'AgentEndpointDescription', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'AgentRuntimeEndpointArn' => [ 'type' => 'string', 'pattern' => 'arn:(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:agentEndpoint/[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}', ], 'AgentRuntimeEndpointId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,99}-[a-zA-Z0-9]{10}', ], 'AgentRuntimeEndpointStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'CREATE_FAILED', 'UPDATING', 'UPDATE_FAILED', 'READY', 'DELETING', ], ], 'AgentRuntimeEndpoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'AgentRuntimeEndpoint', ], ], 'AgentRuntimeId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,99}-[a-zA-Z0-9]{10}', ], 'AgentRuntimeName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'AgentRuntimeStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'CREATE_FAILED', 'UPDATING', 'UPDATE_FAILED', 'READY', 'DELETING', ], ], 'AgentRuntimeVersion' => [ 'type' => 'string', 'max' => 5, 'min' => 1, 'pattern' => '([1-9][0-9]{0,4})', ], 'AgentRuntimes' => [ 'type' => 'list', 'member' => [ 'shape' => 'AgentRuntime', ], ], 'AgentSkillsDescriptor' => [ 'type' => 'structure', 'members' => [ 'skillMd' => [ 'shape' => 'SkillMdDefinition', ], 'skillDefinition' => [ 'shape' => 'SkillDefinition', ], ], ], 'AllowedAudience' => [ 'type' => 'string', ], 'AllowedAudienceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedAudience', ], 'min' => 1, ], 'AllowedClient' => [ 'type' => 'string', ], 'AllowedClientsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedClient', ], 'min' => 1, ], 'AllowedQueryParameters' => [ 'type' => 'list', 'member' => [ 'shape' => 'HttpQueryParameterName', ], 'max' => 10, 'min' => 1, ], 'AllowedRequestHeaders' => [ 'type' => 'list', 'member' => [ 'shape' => 'HttpHeaderName', ], 'max' => 10, 'min' => 1, ], 'AllowedResponseHeaders' => [ 'type' => 'list', 'member' => [ 'shape' => 'HttpHeaderName', ], 'max' => 10, 'min' => 1, ], 'AllowedScopeType' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[\\x21\\x23-\\x5B\\x5D-\\x7E]+', ], 'AllowedScopesType' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedScopeType', ], 'min' => 1, ], 'AllowedStringListValue' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\s._:/=+@-]*', ], 'AllowedStringListValuesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedStringListValue', ], 'max' => 10, 'min' => 1, ], 'AllowedStringValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\s._:/=+@-]*', ], 'AllowedStringValuesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedStringValue', ], 'max' => 10, 'min' => 1, ], 'AllowedWorkloadConfiguration' => [ 'type' => 'structure', 'members' => [ 'hostingEnvironments' => [ 'shape' => 'HostingEnvironmentListType', ], 'workloadIdentities' => [ 'shape' => 'WorkloadIdentityNameListType', ], ], ], 'ApiGatewayTargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'stage', 'apiGatewayToolConfiguration', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', ], 'stage' => [ 'shape' => 'String', ], 'apiGatewayToolConfiguration' => [ 'shape' => 'ApiGatewayToolConfiguration', ], ], ], 'ApiGatewayToolConfiguration' => [ 'type' => 'structure', 'required' => [ 'toolFilters', ], 'members' => [ 'toolOverrides' => [ 'shape' => 'ApiGatewayToolOverrides', ], 'toolFilters' => [ 'shape' => 'ApiGatewayToolFilters', ], ], ], 'ApiGatewayToolFilter' => [ 'type' => 'structure', 'required' => [ 'filterPath', 'methods', ], 'members' => [ 'filterPath' => [ 'shape' => 'String', ], 'methods' => [ 'shape' => 'RestApiMethods', ], ], ], 'ApiGatewayToolFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApiGatewayToolFilter', ], ], 'ApiGatewayToolOverride' => [ 'type' => 'structure', 'required' => [ 'name', 'path', 'method', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'path' => [ 'shape' => 'String', ], 'method' => [ 'shape' => 'RestApiMethod', ], ], ], 'ApiGatewayToolOverrides' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApiGatewayToolOverride', ], ], 'ApiKeyArn' => [ 'type' => 'string', 'pattern' => 'arn:aws:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/apikeycredentialprovider/[a-zA-Z0-9-.]+', ], 'ApiKeyCredentialLocation' => [ 'type' => 'string', 'enum' => [ 'HEADER', 'QUERY_PARAMETER', ], ], 'ApiKeyCredentialParameterName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'ApiKeyCredentialPrefix' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'ApiKeyCredentialProvider' => [ 'type' => 'structure', 'required' => [ 'providerArn', ], 'members' => [ 'providerArn' => [ 'shape' => 'ApiKeyCredentialProviderArn', ], 'credentialParameterName' => [ 'shape' => 'ApiKeyCredentialParameterName', ], 'credentialPrefix' => [ 'shape' => 'ApiKeyCredentialPrefix', ], 'credentialLocation' => [ 'shape' => 'ApiKeyCredentialLocation', ], ], ], 'ApiKeyCredentialProviderArn' => [ 'type' => 'string', 'pattern' => 'arn:([^:]*):([^:]*):([^:]*):([0-9]{12})?:(.+)', ], 'ApiKeyCredentialProviderArnType' => [ 'type' => 'string', 'pattern' => 'arn:(aws|aws-us-gov):acps:[A-Za-z0-9-]{1,64}:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/apikeycredentialprovider/[a-zA-Z0-9-.]+', ], 'ApiKeyCredentialProviderItem' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderArn', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderArn' => [ 'shape' => 'ApiKeyCredentialProviderArnType', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'ApiKeyCredentialProviders' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApiKeyCredentialProviderItem', ], ], 'ApiSchemaConfiguration' => [ 'type' => 'structure', 'members' => [ 's3' => [ 'shape' => 'S3Configuration', ], 'inlinePayload' => [ 'shape' => 'InlinePayload', ], ], 'union' => true, ], 'ApprovalConfiguration' => [ 'type' => 'structure', 'members' => [ 'autoApproval' => [ 'shape' => 'Boolean', ], ], ], 'Arn' => [ 'type' => 'string', 'pattern' => 'arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}', ], 'AtlassianOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'clientId', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], ], ], 'AtlassianOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], ], ], 'AuthorizationData' => [ 'type' => 'structure', 'members' => [ 'oauth2' => [ 'shape' => 'OAuth2AuthorizationData', ], ], 'union' => true, ], 'AuthorizationEndpointType' => [ 'type' => 'string', ], 'AuthorizerConfiguration' => [ 'type' => 'structure', 'members' => [ 'customJWTAuthorizer' => [ 'shape' => 'CustomJWTAuthorizerConfiguration', ], ], 'union' => true, ], 'AuthorizerType' => [ 'type' => 'string', 'enum' => [ 'CUSTOM_JWT', 'AWS_IAM', 'NONE', 'AUTHENTICATE_ONLY', ], ], 'AuthorizingClaimMatchValueType' => [ 'type' => 'structure', 'required' => [ 'claimMatchValue', 'claimMatchOperator', ], 'members' => [ 'claimMatchValue' => [ 'shape' => 'ClaimMatchValueType', ], 'claimMatchOperator' => [ 'shape' => 'ClaimMatchOperatorType', ], ], ], 'AwsAccountId' => [ 'type' => 'string', 'pattern' => '[0-9]{12}', ], 'BedrockAgentcoreResourceArn' => [ 'type' => 'string', 'max' => 1011, 'min' => 20, ], 'BedrockEvaluatorModelConfig' => [ 'type' => 'structure', 'required' => [ 'modelId', ], 'members' => [ 'modelId' => [ 'shape' => 'ModelId', ], 'inferenceConfig' => [ 'shape' => 'InferenceConfiguration', ], 'additionalModelRequestFields' => [ 'shape' => 'AdditionalModelRequestFields', ], ], ], 'Boolean' => [ 'type' => 'boolean', 'box' => true, ], 'BranchName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z][a-zA-Z0-9_/-]{0,127}', ], 'BrowserArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):browser(-custom)?/(aws\\.browser\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})', ], 'BrowserEnterprisePolicies' => [ 'type' => 'list', 'member' => [ 'shape' => 'BrowserEnterprisePolicy', ], 'max' => 100, 'min' => 0, ], 'BrowserEnterprisePolicy' => [ 'type' => 'structure', 'required' => [ 'location', ], 'members' => [ 'location' => [ 'shape' => 'ResourceLocation', ], 'type' => [ 'shape' => 'BrowserEnterprisePolicyType', ], ], ], 'BrowserEnterprisePolicyType' => [ 'type' => 'string', 'enum' => [ 'MANAGED', 'RECOMMENDED', ], ], 'BrowserId' => [ 'type' => 'string', 'pattern' => '(aws\\.browser\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})', ], 'BrowserNetworkConfiguration' => [ 'type' => 'structure', 'required' => [ 'networkMode', ], 'members' => [ 'networkMode' => [ 'shape' => 'BrowserNetworkMode', ], 'vpcConfig' => [ 'shape' => 'VpcConfig', ], ], ], 'BrowserNetworkMode' => [ 'type' => 'string', 'enum' => [ 'PUBLIC', 'VPC', ], ], 'BrowserProfileArn' => [ 'type' => 'string', 'pattern' => 'arn:(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:browser-profile/[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10}', ], 'BrowserProfileId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10}', ], 'BrowserProfileName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'BrowserProfileStatus' => [ 'type' => 'string', 'enum' => [ 'READY', 'DELETING', 'DELETED', 'SAVING', ], ], 'BrowserProfileSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'BrowserProfileSummary', ], ], 'BrowserProfileSummary' => [ 'type' => 'structure', 'required' => [ 'profileId', 'profileArn', 'name', 'status', 'createdAt', 'lastUpdatedAt', ], 'members' => [ 'profileId' => [ 'shape' => 'BrowserProfileId', ], 'profileArn' => [ 'shape' => 'BrowserProfileArn', ], 'name' => [ 'shape' => 'BrowserProfileName', ], 'description' => [ 'shape' => 'Description', ], 'status' => [ 'shape' => 'BrowserProfileStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'lastSavedAt' => [ 'shape' => 'DateTimestamp', ], 'lastSavedBrowserSessionId' => [ 'shape' => 'BrowserSessionId', ], 'lastSavedBrowserId' => [ 'shape' => 'BrowserId', ], ], ], 'BrowserSessionId' => [ 'type' => 'string', 'pattern' => '[0-9a-zA-Z]{1,40}', ], 'BrowserSigningConfigInput' => [ 'type' => 'structure', 'required' => [ 'enabled', ], 'members' => [ 'enabled' => [ 'shape' => 'Boolean', ], ], ], 'BrowserSigningConfigOutput' => [ 'type' => 'structure', 'required' => [ 'enabled', ], 'members' => [ 'enabled' => [ 'shape' => 'Boolean', ], ], ], 'BrowserStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'CREATE_FAILED', 'READY', 'DELETING', 'DELETE_FAILED', 'DELETED', ], ], 'BrowserSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'BrowserSummary', ], ], 'BrowserSummary' => [ 'type' => 'structure', 'required' => [ 'browserId', 'browserArn', 'status', 'createdAt', ], 'members' => [ 'browserId' => [ 'shape' => 'BrowserId', ], 'browserArn' => [ 'shape' => 'BrowserArn', ], 'name' => [ 'shape' => 'SandboxName', ], 'description' => [ 'shape' => 'Description', ], 'status' => [ 'shape' => 'BrowserStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'CategoricalScaleDefinition' => [ 'type' => 'structure', 'required' => [ 'definition', 'label', ], 'members' => [ 'definition' => [ 'shape' => 'String', ], 'label' => [ 'shape' => 'CategoricalScaleDefinitionLabelString', ], ], ], 'CategoricalScaleDefinitionLabelString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'CategoricalScaleDefinitions' => [ 'type' => 'list', 'member' => [ 'shape' => 'CategoricalScaleDefinition', ], ], 'CedarPolicy' => [ 'type' => 'structure', 'required' => [ 'statement', ], 'members' => [ 'statement' => [ 'shape' => 'Statement', ], ], ], 'Certificate' => [ 'type' => 'structure', 'required' => [ 'location', ], 'members' => [ 'location' => [ 'shape' => 'CertificateLocation', ], ], ], 'CertificateLocation' => [ 'type' => 'structure', 'members' => [ 'secretsManager' => [ 'shape' => 'SecretsManagerLocation', ], ], 'union' => true, ], 'Certificates' => [ 'type' => 'list', 'member' => [ 'shape' => 'Certificate', ], 'max' => 200, 'min' => 1, ], 'ClaimMatchOperatorType' => [ 'type' => 'string', 'enum' => [ 'EQUALS', 'CONTAINS', 'CONTAINS_ANY', ], ], 'ClaimMatchValueType' => [ 'type' => 'structure', 'members' => [ 'matchValueString' => [ 'shape' => 'MatchValueString', ], 'matchValueStringList' => [ 'shape' => 'MatchValueStringList', ], ], 'union' => true, ], 'ClientAuthenticationMethodType' => [ 'type' => 'string', 'enum' => [ 'CLIENT_SECRET_BASIC', 'CLIENT_SECRET_POST', 'AWS_IAM_ID_TOKEN_JWT', ], ], 'ClientIdType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ClientToken' => [ 'type' => 'string', 'max' => 256, 'min' => 33, 'pattern' => '[a-zA-Z0-9](-*[a-zA-Z0-9]){0,256}', ], 'CloudWatchLogsInputConfig' => [ 'type' => 'structure', 'required' => [ 'logGroupNames', 'serviceNames', ], 'members' => [ 'logGroupNames' => [ 'shape' => 'CloudWatchLogsInputConfigLogGroupNamesList', ], 'serviceNames' => [ 'shape' => 'CloudWatchLogsInputConfigServiceNamesList', ], ], ], 'CloudWatchLogsInputConfigLogGroupNamesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LogGroupName', ], 'max' => 5, 'min' => 1, ], 'CloudWatchLogsInputConfigServiceNamesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceName', ], 'max' => 1, 'min' => 1, ], 'CloudWatchOutputConfig' => [ 'type' => 'structure', 'required' => [ 'logGroupName', ], 'members' => [ 'logGroupName' => [ 'shape' => 'LogGroupName', ], ], ], 'ClusteringConfig' => [ 'type' => 'structure', 'required' => [ 'frequencies', ], 'members' => [ 'frequencies' => [ 'shape' => 'ClusteringFrequencyList', ], ], ], 'ClusteringFrequency' => [ 'type' => 'string', 'enum' => [ 'DAILY', 'WEEKLY', 'MONTHLY', ], ], 'ClusteringFrequencyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClusteringFrequency', ], 'max' => 3, 'min' => 0, ], 'Code' => [ 'type' => 'structure', 'members' => [ 's3' => [ 'shape' => 'S3Location', ], ], 'union' => true, ], 'CodeBasedEvaluatorConfig' => [ 'type' => 'structure', 'members' => [ 'lambdaConfig' => [ 'shape' => 'LambdaEvaluatorConfig', ], ], 'union' => true, ], 'CodeConfiguration' => [ 'type' => 'structure', 'required' => [ 'code', 'runtime', 'entryPoint', ], 'members' => [ 'code' => [ 'shape' => 'Code', ], 'runtime' => [ 'shape' => 'AgentManagedRuntimeType', ], 'entryPoint' => [ 'shape' => 'CodeConfigurationEntryPointList', ], ], ], 'CodeConfigurationEntryPointList' => [ 'type' => 'list', 'member' => [ 'shape' => 'entryPoint', ], 'max' => 2, 'min' => 1, ], 'CodeInterpreterArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):code-interpreter(-custom)?/(aws\\.codeinterpreter\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})', ], 'CodeInterpreterId' => [ 'type' => 'string', 'pattern' => '(aws\\.codeinterpreter\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})', ], 'CodeInterpreterNetworkConfiguration' => [ 'type' => 'structure', 'required' => [ 'networkMode', ], 'members' => [ 'networkMode' => [ 'shape' => 'CodeInterpreterNetworkMode', ], 'vpcConfig' => [ 'shape' => 'VpcConfig', ], ], ], 'CodeInterpreterNetworkMode' => [ 'type' => 'string', 'enum' => [ 'PUBLIC', 'SANDBOX', 'VPC', ], ], 'CodeInterpreterStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'CREATE_FAILED', 'READY', 'DELETING', 'DELETE_FAILED', 'DELETED', ], ], 'CodeInterpreterSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'CodeInterpreterSummary', ], ], 'CodeInterpreterSummary' => [ 'type' => 'structure', 'required' => [ 'codeInterpreterId', 'codeInterpreterArn', 'status', 'createdAt', ], 'members' => [ 'codeInterpreterId' => [ 'shape' => 'CodeInterpreterId', ], 'codeInterpreterArn' => [ 'shape' => 'CodeInterpreterArn', ], 'name' => [ 'shape' => 'SandboxName', ], 'description' => [ 'shape' => 'Description', ], 'status' => [ 'shape' => 'CodeInterpreterStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'CoinbaseCdpApiKeyIdType' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-_]+', ], 'CoinbaseCdpConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'apiKeyId', ], 'members' => [ 'apiKeyId' => [ 'shape' => 'CoinbaseCdpApiKeyIdType', ], 'apiKeySecret' => [ 'shape' => 'DefaultCoinbaseCdpApiKeySecretType', ], 'apiKeySecretSource' => [ 'shape' => 'SecretSourceType', ], 'apiKeySecretConfig' => [ 'shape' => 'SecretReference', ], 'walletSecret' => [ 'shape' => 'DefaultCoinbaseCdpWalletSecretType', ], 'walletSecretSource' => [ 'shape' => 'SecretSourceType', ], 'walletSecretConfig' => [ 'shape' => 'SecretReference', ], ], ], 'CoinbaseCdpConfigurationOutput' => [ 'type' => 'structure', 'required' => [ 'apiKeyId', 'apiKeySecretArn', 'walletSecretArn', ], 'members' => [ 'apiKeyId' => [ 'shape' => 'CoinbaseCdpApiKeyIdType', ], 'apiKeySecretArn' => [ 'shape' => 'Secret', ], 'apiKeySecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'apiKeySecretSource' => [ 'shape' => 'SecretSourceType', ], 'walletSecretArn' => [ 'shape' => 'Secret', ], 'walletSecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'walletSecretSource' => [ 'shape' => 'SecretSourceType', ], ], ], 'ComponentConfiguration' => [ 'type' => 'structure', 'required' => [ 'configuration', ], 'members' => [ 'configuration' => [ 'shape' => 'Document', ], ], 'sensitive' => true, ], 'ComponentConfigurationMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ComponentIdentifier', ], 'value' => [ 'shape' => 'ComponentConfiguration', ], ], 'ComponentIdentifier' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '[a-zA-Z][a-zA-Z0-9_:/.\\-]{0,2047}', ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 409, 'senderFault' => true, ], 'exception' => true, ], 'Condition' => [ 'type' => 'structure', 'members' => [ 'matchPrincipals' => [ 'shape' => 'MatchPrincipals', ], 'matchPaths' => [ 'shape' => 'MatchPaths', ], ], 'union' => true, ], 'Conditions' => [ 'type' => 'list', 'member' => [ 'shape' => 'Condition', ], 'max' => 2, 'min' => 0, ], 'ConfigurationBundleAction' => [ 'type' => 'structure', 'members' => [ 'staticOverride' => [ 'shape' => 'StaticOverride', ], 'weightedOverride' => [ 'shape' => 'WeightedOverride', ], ], 'union' => true, ], 'ConfigurationBundleArn' => [ 'type' => 'string', 'pattern' => 'arn:aws[a-zA-Z-]*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:configuration-bundle/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'ConfigurationBundleDescription' => [ 'type' => 'string', 'max' => 500, 'min' => 1, 'pattern' => '.+', 'sensitive' => true, ], 'ConfigurationBundleId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'ConfigurationBundleName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,99}', ], 'ConfigurationBundleReference' => [ 'type' => 'structure', 'required' => [ 'bundleArn', 'bundleVersion', ], 'members' => [ 'bundleArn' => [ 'shape' => 'GatewayConfigurationBundleArn', ], 'bundleVersion' => [ 'shape' => 'ConfigurationBundleReferenceBundleVersionString', ], ], ], 'ConfigurationBundleReferenceBundleVersionString' => [ 'type' => 'string', 'pattern' => '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}', ], 'ConfigurationBundleStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'CREATING', 'CREATE_FAILED', 'UPDATING', 'UPDATE_FAILED', 'DELETING', 'DELETE_FAILED', ], ], 'ConfigurationBundleSummary' => [ 'type' => 'structure', 'required' => [ 'bundleArn', 'bundleId', 'bundleName', ], 'members' => [ 'bundleArn' => [ 'shape' => 'ConfigurationBundleArn', ], 'bundleId' => [ 'shape' => 'ConfigurationBundleId', ], 'bundleName' => [ 'shape' => 'ConfigurationBundleName', ], 'description' => [ 'shape' => 'ConfigurationBundleDescription', ], 'createdAt' => [ 'shape' => 'Timestamp', ], ], ], 'ConfigurationBundleSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationBundleSummary', ], ], 'ConfigurationBundleVersion' => [ 'type' => 'string', 'pattern' => '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}', ], 'ConfigurationBundleVersionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationBundleVersion', ], ], 'ConfigurationBundleVersionSummary' => [ 'type' => 'structure', 'required' => [ 'bundleArn', 'bundleId', 'versionId', 'versionCreatedAt', ], 'members' => [ 'bundleArn' => [ 'shape' => 'ConfigurationBundleArn', ], 'bundleId' => [ 'shape' => 'ConfigurationBundleId', ], 'versionId' => [ 'shape' => 'ConfigurationBundleVersion', ], 'lineageMetadata' => [ 'shape' => 'VersionLineageMetadata', ], 'versionCreatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ConfigurationBundleVersionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationBundleVersionSummary', ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'NonBlankString', ], ], 'error' => [ 'httpStatusCode' => 409, 'senderFault' => true, ], 'exception' => true, ], 'ConnectorConfiguration' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'ConnectorConfigurationNameString', ], 'description' => [ 'shape' => 'ConnectorConfigurationDescriptionString', ], 'parameterValues' => [ 'shape' => 'Document', ], 'parameterOverrides' => [ 'shape' => 'ConnectorParameterOverrides', ], ], ], 'ConnectorConfigurationDescriptionString' => [ 'type' => 'string', 'max' => 2000, 'min' => 0, ], 'ConnectorConfigurationNameString' => [ 'type' => 'string', 'max' => 64, 'min' => 0, 'pattern' => '[a-zA-Z][a-zA-Z0-9_-]*', ], 'ConnectorConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConnectorConfiguration', ], ], 'ConnectorId' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ConnectorParameterOverride' => [ 'type' => 'structure', 'required' => [ 'path', ], 'members' => [ 'path' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'visible' => [ 'shape' => 'Boolean', ], ], ], 'ConnectorParameterOverrides' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConnectorParameterOverride', ], ], 'ConnectorSource' => [ 'type' => 'structure', 'required' => [ 'connectorId', ], 'members' => [ 'connectorId' => [ 'shape' => 'ConnectorId', ], ], ], 'ConnectorTargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'source', ], 'members' => [ 'source' => [ 'shape' => 'ConnectorSource', ], 'enabled' => [ 'shape' => 'EnabledConnectors', ], 'configurations' => [ 'shape' => 'ConnectorConfigurations', ], ], ], 'ConsolidationConfiguration' => [ 'type' => 'structure', 'members' => [ 'customConsolidationConfiguration' => [ 'shape' => 'CustomConsolidationConfiguration', ], ], 'union' => true, ], 'ContainerConfiguration' => [ 'type' => 'structure', 'required' => [ 'containerUri', ], 'members' => [ 'containerUri' => [ 'shape' => 'RuntimeContainerUri', ], ], ], 'Content' => [ 'type' => 'structure', 'members' => [ 'rawText' => [ 'shape' => 'NaturalLanguage', ], ], 'union' => true, ], 'ContentConfiguration' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'ContentType', ], 'level' => [ 'shape' => 'ContentLevel', ], ], ], 'ContentLevel' => [ 'type' => 'string', 'enum' => [ 'METADATA_ONLY', 'FULL_CONTENT', ], ], 'ContentType' => [ 'type' => 'string', 'enum' => [ 'MEMORY_RECORDS', ], ], 'CreateAgentRuntimeEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', 'name', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'name' => [ 'shape' => 'EndpointName', ], 'agentRuntimeVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'description' => [ 'shape' => 'AgentEndpointDescription', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateAgentRuntimeEndpointResponse' => [ 'type' => 'structure', 'required' => [ 'targetVersion', 'agentRuntimeEndpointArn', 'agentRuntimeArn', 'status', 'createdAt', ], 'members' => [ 'targetVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'agentRuntimeEndpointArn' => [ 'shape' => 'AgentRuntimeEndpointArn', ], 'agentRuntimeArn' => [ 'shape' => 'AgentRuntimeArn', ], 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', ], 'endpointName' => [ 'shape' => 'EndpointName', ], 'status' => [ 'shape' => 'AgentRuntimeEndpointStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'CreateAgentRuntimeRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeName', 'agentRuntimeArtifact', 'roleArn', 'networkConfiguration', ], 'members' => [ 'agentRuntimeName' => [ 'shape' => 'AgentRuntimeName', ], 'agentRuntimeArtifact' => [ 'shape' => 'AgentRuntimeArtifact', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'description' => [ 'shape' => 'Description', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'requestHeaderConfiguration' => [ 'shape' => 'RequestHeaderConfiguration', ], 'protocolConfiguration' => [ 'shape' => 'ProtocolConfiguration', ], 'lifecycleConfiguration' => [ 'shape' => 'LifecycleConfiguration', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariablesMap', ], 'filesystemConfigurations' => [ 'shape' => 'FilesystemConfigurations', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateAgentRuntimeResponse' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeArn', 'agentRuntimeId', 'agentRuntimeVersion', 'createdAt', 'status', ], 'members' => [ 'agentRuntimeArn' => [ 'shape' => 'AgentRuntimeArn', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', ], 'agentRuntimeVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'AgentRuntimeStatus', ], ], ], 'CreateApiKeyCredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'apiKey' => [ 'shape' => 'DefaultApiKeyType', ], 'apiKeySecretConfig' => [ 'shape' => 'SecretReference', ], 'apiKeySecretSource' => [ 'shape' => 'SecretSourceType', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateApiKeyCredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'apiKeySecretArn', 'name', 'credentialProviderArn', ], 'members' => [ 'apiKeySecretArn' => [ 'shape' => 'Secret', ], 'apiKeySecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'apiKeySecretSource' => [ 'shape' => 'SecretSourceType', ], 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderArn' => [ 'shape' => 'ApiKeyCredentialProviderArnType', ], ], ], 'CreateBrowserProfileRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'BrowserProfileName', ], 'description' => [ 'shape' => 'Description', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateBrowserProfileResponse' => [ 'type' => 'structure', 'required' => [ 'profileId', 'profileArn', 'createdAt', 'status', ], 'members' => [ 'profileId' => [ 'shape' => 'BrowserProfileId', ], 'profileArn' => [ 'shape' => 'BrowserProfileArn', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'BrowserProfileStatus', ], ], ], 'CreateBrowserRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'networkConfiguration', ], 'members' => [ 'name' => [ 'shape' => 'SandboxName', ], 'description' => [ 'shape' => 'Description', ], 'executionRoleArn' => [ 'shape' => 'RoleArn', ], 'networkConfiguration' => [ 'shape' => 'BrowserNetworkConfiguration', ], 'recording' => [ 'shape' => 'RecordingConfig', ], 'browserSigning' => [ 'shape' => 'BrowserSigningConfigInput', ], 'enterprisePolicies' => [ 'shape' => 'BrowserEnterprisePolicies', ], 'certificates' => [ 'shape' => 'Certificates', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateBrowserResponse' => [ 'type' => 'structure', 'required' => [ 'browserId', 'browserArn', 'createdAt', 'status', ], 'members' => [ 'browserId' => [ 'shape' => 'BrowserId', ], 'browserArn' => [ 'shape' => 'BrowserArn', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'BrowserStatus', ], ], ], 'CreateCodeInterpreterRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'networkConfiguration', ], 'members' => [ 'name' => [ 'shape' => 'SandboxName', ], 'description' => [ 'shape' => 'Description', ], 'executionRoleArn' => [ 'shape' => 'RoleArn', ], 'networkConfiguration' => [ 'shape' => 'CodeInterpreterNetworkConfiguration', ], 'certificates' => [ 'shape' => 'Certificates', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateCodeInterpreterResponse' => [ 'type' => 'structure', 'required' => [ 'codeInterpreterId', 'codeInterpreterArn', 'createdAt', 'status', ], 'members' => [ 'codeInterpreterId' => [ 'shape' => 'CodeInterpreterId', ], 'codeInterpreterArn' => [ 'shape' => 'CodeInterpreterArn', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'CodeInterpreterStatus', ], ], ], 'CreateConfigurationBundleRequest' => [ 'type' => 'structure', 'required' => [ 'bundleName', 'components', ], 'members' => [ 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'bundleName' => [ 'shape' => 'ConfigurationBundleName', ], 'description' => [ 'shape' => 'ConfigurationBundleDescription', ], 'components' => [ 'shape' => 'ComponentConfigurationMap', ], 'branchName' => [ 'shape' => 'BranchName', ], 'commitMessage' => [ 'shape' => 'CreateConfigurationBundleRequestCommitMessageString', ], 'createdBy' => [ 'shape' => 'VersionCreatedBySource', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateConfigurationBundleRequestCommitMessageString' => [ 'type' => 'string', 'max' => 500, 'min' => 1, ], 'CreateConfigurationBundleResponse' => [ 'type' => 'structure', 'required' => [ 'bundleArn', 'bundleId', 'versionId', 'createdAt', ], 'members' => [ 'bundleArn' => [ 'shape' => 'ConfigurationBundleArn', ], 'bundleId' => [ 'shape' => 'ConfigurationBundleId', ], 'versionId' => [ 'shape' => 'ConfigurationBundleVersion', ], 'createdAt' => [ 'shape' => 'Timestamp', ], ], ], 'CreateDatasetRequest' => [ 'type' => 'structure', 'required' => [ 'datasetName', 'source', 'schemaType', ], 'members' => [ 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'datasetName' => [ 'shape' => 'DatasetName', ], 'description' => [ 'shape' => 'CreateDatasetRequestDescriptionString', ], 'source' => [ 'shape' => 'DataSourceType', ], 'schemaType' => [ 'shape' => 'DatasetSchemaType', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateDatasetRequestDescriptionString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, ], 'CreateDatasetResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'status', 'createdAt', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], ], ], 'CreateDatasetVersionRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateDatasetVersionResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'status', 'datasetVersion', 'createdAt', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'datasetVersion' => [ 'shape' => 'DatasetVersion', ], 'createdAt' => [ 'shape' => 'Timestamp', ], ], ], 'CreateEvaluatorRequest' => [ 'type' => 'structure', 'required' => [ 'evaluatorName', 'evaluatorConfig', 'level', ], 'members' => [ 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'evaluatorName' => [ 'shape' => 'CustomEvaluatorName', ], 'description' => [ 'shape' => 'EvaluatorDescription', ], 'evaluatorConfig' => [ 'shape' => 'EvaluatorConfig', ], 'level' => [ 'shape' => 'EvaluatorLevel', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateEvaluatorResponse' => [ 'type' => 'structure', 'required' => [ 'evaluatorArn', 'evaluatorId', 'createdAt', 'status', ], 'members' => [ 'evaluatorArn' => [ 'shape' => 'CustomEvaluatorArn', ], 'evaluatorId' => [ 'shape' => 'EvaluatorId', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'EvaluatorStatus', ], ], ], 'CreateGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'roleArn', 'authorizerType', ], 'members' => [ 'name' => [ 'shape' => 'GatewayName', ], 'description' => [ 'shape' => 'GatewayDescription', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'protocolType' => [ 'shape' => 'GatewayProtocolType', ], 'protocolConfiguration' => [ 'shape' => 'GatewayProtocolConfiguration', ], 'authorizerType' => [ 'shape' => 'AuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'interceptorConfigurations' => [ 'shape' => 'GatewayInterceptorConfigurations', ], 'policyEngineConfiguration' => [ 'shape' => 'GatewayPolicyEngineConfiguration', ], 'exceptionLevel' => [ 'shape' => 'ExceptionLevel', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateGatewayResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', 'gatewayId', 'createdAt', 'updatedAt', 'status', 'name', 'authorizerType', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'gatewayId' => [ 'shape' => 'GatewayId', ], 'gatewayUrl' => [ 'shape' => 'GatewayUrl', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'GatewayStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], 'name' => [ 'shape' => 'GatewayName', ], 'description' => [ 'shape' => 'GatewayDescription', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'protocolType' => [ 'shape' => 'GatewayProtocolType', ], 'protocolConfiguration' => [ 'shape' => 'GatewayProtocolConfiguration', ], 'authorizerType' => [ 'shape' => 'AuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'customTransformConfiguration' => [ 'shape' => 'CustomTransformConfiguration', ], 'interceptorConfigurations' => [ 'shape' => 'GatewayInterceptorConfigurations', ], 'policyEngineConfiguration' => [ 'shape' => 'GatewayPolicyEngineConfiguration', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'exceptionLevel' => [ 'shape' => 'ExceptionLevel', ], 'webAclArn' => [ 'shape' => 'WebAclArn', ], 'wafConfiguration' => [ 'shape' => 'WafConfiguration', ], ], ], 'CreateGatewayRuleRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'priority', 'actions', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'priority' => [ 'shape' => 'GatewayRulePriority', ], 'conditions' => [ 'shape' => 'Conditions', ], 'actions' => [ 'shape' => 'Actions', ], 'description' => [ 'shape' => 'GatewayRuleDescription', ], ], ], 'CreateGatewayRuleResponse' => [ 'type' => 'structure', 'required' => [ 'ruleId', 'gatewayArn', 'priority', 'actions', 'createdAt', 'status', ], 'members' => [ 'ruleId' => [ 'shape' => 'GatewayRuleId', ], 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'priority' => [ 'shape' => 'GatewayRulePriority', ], 'conditions' => [ 'shape' => 'Conditions', ], 'actions' => [ 'shape' => 'Actions', ], 'description' => [ 'shape' => 'GatewayRuleDescription', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'GatewayRuleStatus', ], 'system' => [ 'shape' => 'SystemManagedBlock', ], ], ], 'CreateGatewayTargetRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'targetConfiguration', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'name' => [ 'shape' => 'TargetName', ], 'description' => [ 'shape' => 'TargetDescription', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'targetConfiguration' => [ 'shape' => 'TargetConfiguration', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialProviderConfigurations', ], 'metadataConfiguration' => [ 'shape' => 'MetadataConfiguration', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], ], ], 'CreateGatewayTargetResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', 'targetId', 'createdAt', 'updatedAt', 'status', 'name', 'targetConfiguration', 'credentialProviderConfigurations', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'targetId' => [ 'shape' => 'TargetId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'TargetStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], 'name' => [ 'shape' => 'TargetName', ], 'description' => [ 'shape' => 'TargetDescription', ], 'targetConfiguration' => [ 'shape' => 'TargetConfiguration', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialProviderConfigurations', ], 'lastSynchronizedAt' => [ 'shape' => 'DateTimestamp', ], 'metadataConfiguration' => [ 'shape' => 'MetadataConfiguration', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], 'privateEndpointManagedResources' => [ 'shape' => 'PrivateEndpointManagedResources', ], 'authorizationData' => [ 'shape' => 'AuthorizationData', ], 'protocolType' => [ 'shape' => 'TargetProtocolType', ], ], ], 'CreateHarnessEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', 'endpointName', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'endpointName' => [ 'shape' => 'HarnessEndpointName', ], 'targetVersion' => [ 'shape' => 'HarnessVersion', ], 'description' => [ 'shape' => 'HarnessEndpointDescription', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateHarnessEndpointResponse' => [ 'type' => 'structure', 'required' => [ 'endpoint', ], 'members' => [ 'endpoint' => [ 'shape' => 'HarnessEndpoint', ], ], ], 'CreateHarnessRequest' => [ 'type' => 'structure', 'required' => [ 'harnessName', 'executionRoleArn', ], 'members' => [ 'harnessName' => [ 'shape' => 'HarnessName', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'executionRoleArn' => [ 'shape' => 'RoleArn', ], 'environment' => [ 'shape' => 'HarnessEnvironmentProviderRequest', ], 'environmentArtifact' => [ 'shape' => 'HarnessEnvironmentArtifact', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariablesMap', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'model' => [ 'shape' => 'HarnessModelConfiguration', ], 'systemPrompt' => [ 'shape' => 'HarnessSystemPrompt', ], 'tools' => [ 'shape' => 'HarnessTools', ], 'skills' => [ 'shape' => 'HarnessSkills', ], 'allowedTools' => [ 'shape' => 'HarnessAllowedTools', ], 'memory' => [ 'shape' => 'HarnessMemoryConfiguration', ], 'truncation' => [ 'shape' => 'HarnessTruncationConfiguration', ], 'maxIterations' => [ 'shape' => 'Integer', ], 'maxTokens' => [ 'shape' => 'Integer', ], 'timeoutSeconds' => [ 'shape' => 'Integer', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateHarnessResponse' => [ 'type' => 'structure', 'required' => [ 'harness', ], 'members' => [ 'harness' => [ 'shape' => 'Harness', ], ], ], 'CreateMemoryInput' => [ 'type' => 'structure', 'required' => [ 'name', 'eventExpiryDuration', ], 'members' => [ 'clientToken' => [ 'shape' => 'CreateMemoryInputClientTokenString', 'idempotencyToken' => true, ], 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'encryptionKeyArn' => [ 'shape' => 'Arn', ], 'memoryExecutionRoleArn' => [ 'shape' => 'Arn', ], 'eventExpiryDuration' => [ 'shape' => 'CreateMemoryInputEventExpiryDurationInteger', ], 'memoryStrategies' => [ 'shape' => 'MemoryStrategyInputList', ], 'indexedKeys' => [ 'shape' => 'IndexedKeysList', ], 'streamDeliveryResources' => [ 'shape' => 'StreamDeliveryResources', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateMemoryInputClientTokenString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, ], 'CreateMemoryInputEventExpiryDurationInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 365, 'min' => 3, ], 'CreateMemoryOutput' => [ 'type' => 'structure', 'members' => [ 'memory' => [ 'shape' => 'Memory', ], ], ], 'CreateOauth2CredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderVendor', 'oauth2ProviderConfigInput', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'CredentialProviderVendorType', ], 'oauth2ProviderConfigInput' => [ 'shape' => 'Oauth2ProviderConfigInput', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateOauth2CredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'clientSecretArn', 'name', 'credentialProviderArn', ], 'members' => [ 'clientSecretArn' => [ 'shape' => 'Secret', ], 'clientSecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderArn' => [ 'shape' => 'CredentialProviderArnType', ], 'callbackUrl' => [ 'shape' => 'String', ], 'oauth2ProviderConfigOutput' => [ 'shape' => 'Oauth2ProviderConfigOutput', ], 'status' => [ 'shape' => 'Status', ], ], ], 'CreateOnlineEvaluationConfigRequest' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigName', 'rule', 'dataSourceConfig', 'evaluationExecutionRoleArn', 'enableOnCreate', ], 'members' => [ 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'onlineEvaluationConfigName' => [ 'shape' => 'EvaluationConfigName', ], 'description' => [ 'shape' => 'EvaluationConfigDescription', ], 'rule' => [ 'shape' => 'Rule', ], 'dataSourceConfig' => [ 'shape' => 'DataSourceConfig', ], 'evaluators' => [ 'shape' => 'EvaluatorList', ], 'insights' => [ 'shape' => 'InsightList', ], 'clusteringConfig' => [ 'shape' => 'ClusteringConfig', ], 'evaluationExecutionRoleArn' => [ 'shape' => 'RoleArn', ], 'enableOnCreate' => [ 'shape' => 'Boolean', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateOnlineEvaluationConfigResponse' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigArn', 'onlineEvaluationConfigId', 'createdAt', 'status', 'executionStatus', ], 'members' => [ 'onlineEvaluationConfigArn' => [ 'shape' => 'OnlineEvaluationConfigArn', ], 'onlineEvaluationConfigId' => [ 'shape' => 'OnlineEvaluationConfigId', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'outputConfig' => [ 'shape' => 'OutputConfig', ], 'status' => [ 'shape' => 'OnlineEvaluationConfigStatus', ], 'executionStatus' => [ 'shape' => 'OnlineEvaluationExecutionStatus', ], 'failureReason' => [ 'shape' => 'String', ], ], ], 'CreatePaymentConnectorRequest' => [ 'type' => 'structure', 'required' => [ 'paymentManagerId', 'name', 'type', 'credentialProviderConfigurations', ], 'members' => [ 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', 'location' => 'uri', 'locationName' => 'paymentManagerId', ], 'name' => [ 'shape' => 'PaymentConnectorName', ], 'description' => [ 'shape' => 'PaymentsDescription', ], 'type' => [ 'shape' => 'PaymentConnectorType', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialsProviderConfigurations', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreatePaymentConnectorResponse' => [ 'type' => 'structure', 'required' => [ 'paymentConnectorId', 'paymentManagerId', 'name', 'type', 'credentialProviderConfigurations', 'createdAt', 'status', ], 'members' => [ 'paymentConnectorId' => [ 'shape' => 'PaymentConnectorId', ], 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', ], 'name' => [ 'shape' => 'PaymentConnectorName', ], 'type' => [ 'shape' => 'PaymentConnectorType', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialsProviderConfigurations', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PaymentConnectorStatus', ], ], ], 'CreatePaymentCredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderVendor', 'providerConfigurationInput', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'PaymentCredentialProviderVendorType', ], 'providerConfigurationInput' => [ 'shape' => 'PaymentProviderConfigurationInput', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreatePaymentCredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderVendor', 'credentialProviderArn', 'providerConfigurationOutput', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'PaymentCredentialProviderVendorType', ], 'credentialProviderArn' => [ 'shape' => 'PaymentCredentialProviderArnType', ], 'providerConfigurationOutput' => [ 'shape' => 'PaymentProviderConfigurationOutput', ], ], ], 'CreatePaymentManagerRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'authorizerType', 'roleArn', ], 'members' => [ 'name' => [ 'shape' => 'PaymentManagerName', ], 'description' => [ 'shape' => 'PaymentsDescription', ], 'authorizerType' => [ 'shape' => 'PaymentsAuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreatePaymentManagerResponse' => [ 'type' => 'structure', 'required' => [ 'paymentManagerArn', 'paymentManagerId', 'name', 'authorizerType', 'roleArn', 'createdAt', 'status', ], 'members' => [ 'paymentManagerArn' => [ 'shape' => 'PaymentManagerArn', ], 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', ], 'name' => [ 'shape' => 'PaymentManagerName', ], 'authorizerType' => [ 'shape' => 'PaymentsAuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PaymentManagerStatus', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreatePolicyEngineRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'PolicyEngineName', ], 'description' => [ 'shape' => 'Description', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreatePolicyEngineResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'name', 'createdAt', 'updatedAt', 'policyEngineArn', 'status', 'statusReasons', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyEngineName', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyEngineArn' => [ 'shape' => 'PolicyEngineArn', ], 'status' => [ 'shape' => 'PolicyEngineStatus', ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'CreatePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'definition', 'policyEngineId', ], 'members' => [ 'name' => [ 'shape' => 'PolicyName', ], 'definition' => [ 'shape' => 'PolicyDefinition', ], 'description' => [ 'shape' => 'Description', ], 'validationMode' => [ 'shape' => 'PolicyValidationMode', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreatePolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policyId', 'name', 'policyEngineId', 'createdAt', 'updatedAt', 'policyArn', 'status', 'definition', 'statusReasons', ], 'members' => [ 'policyId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyName', ], 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'status' => [ 'shape' => 'PolicyStatus', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], 'definition' => [ 'shape' => 'PolicyDefinition', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'CreateRegistryRecordRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', 'name', 'descriptorType', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], 'name' => [ 'shape' => 'RegistryRecordName', ], 'description' => [ 'shape' => 'Description', ], 'descriptorType' => [ 'shape' => 'DescriptorType', ], 'descriptors' => [ 'shape' => 'Descriptors', ], 'recordVersion' => [ 'shape' => 'RegistryRecordVersion', ], 'synchronizationType' => [ 'shape' => 'SynchronizationType', ], 'synchronizationConfiguration' => [ 'shape' => 'SynchronizationConfiguration', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateRegistryRecordResponse' => [ 'type' => 'structure', 'required' => [ 'recordArn', 'status', ], 'members' => [ 'recordArn' => [ 'shape' => 'RegistryRecordArn', ], 'status' => [ 'shape' => 'RegistryRecordStatus', ], ], ], 'CreateRegistryRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'RegistryName', ], 'description' => [ 'shape' => 'Description', ], 'authorizerType' => [ 'shape' => 'RegistryAuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'approvalConfiguration' => [ 'shape' => 'ApprovalConfiguration', ], ], ], 'CreateRegistryResponse' => [ 'type' => 'structure', 'required' => [ 'registryArn', ], 'members' => [ 'registryArn' => [ 'shape' => 'RegistryArn', ], ], ], 'CreateWorkloadIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'WorkloadIdentityNameType', ], 'allowedResourceOauth2ReturnUrls' => [ 'shape' => 'ResourceOauth2ReturnUrlListType', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateWorkloadIdentityResponse' => [ 'type' => 'structure', 'required' => [ 'name', 'workloadIdentityArn', ], 'members' => [ 'name' => [ 'shape' => 'WorkloadIdentityNameType', ], 'workloadIdentityArn' => [ 'shape' => 'WorkloadIdentityArnType', ], 'allowedResourceOauth2ReturnUrls' => [ 'shape' => 'ResourceOauth2ReturnUrlListType', ], ], ], 'CredentialProvider' => [ 'type' => 'structure', 'members' => [ 'oauthCredentialProvider' => [ 'shape' => 'OAuthCredentialProvider', ], 'apiKeyCredentialProvider' => [ 'shape' => 'ApiKeyCredentialProvider', ], 'iamCredentialProvider' => [ 'shape' => 'IamCredentialProvider', ], ], 'union' => true, ], 'CredentialProviderArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:.*', ], 'CredentialProviderArnType' => [ 'type' => 'string', 'pattern' => 'arn:(aws|aws-us-gov):acps:[A-Za-z0-9-]{1,64}:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/oauth2credentialprovider/[a-zA-Z0-9-.]+', ], 'CredentialProviderConfiguration' => [ 'type' => 'structure', 'required' => [ 'credentialProviderType', ], 'members' => [ 'credentialProviderType' => [ 'shape' => 'CredentialProviderType', ], 'credentialProvider' => [ 'shape' => 'CredentialProvider', ], ], ], 'CredentialProviderConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'CredentialProviderConfiguration', ], 'max' => 1, 'min' => 1, ], 'CredentialProviderName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-_]+', ], 'CredentialProviderType' => [ 'type' => 'string', 'enum' => [ 'GATEWAY_IAM_ROLE', 'OAUTH', 'API_KEY', 'CALLER_IAM_CREDENTIALS', 'JWT_PASSTHROUGH', ], ], 'CredentialProviderVendorType' => [ 'type' => 'string', 'enum' => [ 'GoogleOauth2', 'GithubOauth2', 'SlackOauth2', 'SalesforceOauth2', 'MicrosoftOauth2', 'CustomOauth2', 'AtlassianOauth2', 'LinkedinOauth2', 'XOauth2', 'OktaOauth2', 'OneLoginOauth2', 'PingOneOauth2', 'FacebookOauth2', 'YandexOauth2', 'RedditOauth2', 'ZoomOauth2', 'TwitchOauth2', 'SpotifyOauth2', 'DropboxOauth2', 'NotionOauth2', 'HubspotOauth2', 'CyberArkOauth2', 'FusionAuthOauth2', 'Auth0Oauth2', 'CognitoOauth2', ], ], 'CredentialsProviderConfiguration' => [ 'type' => 'structure', 'members' => [ 'coinbaseCDP' => [ 'shape' => 'PaymentCredentialProviderConfiguration', ], 'stripePrivy' => [ 'shape' => 'PaymentCredentialProviderConfiguration', ], ], 'union' => true, ], 'CredentialsProviderConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'CredentialsProviderConfiguration', ], 'max' => 1, 'min' => 1, ], 'CustomClaimValidationType' => [ 'type' => 'structure', 'required' => [ 'inboundTokenClaimName', 'inboundTokenClaimValueType', 'authorizingClaimMatchValue', ], 'members' => [ 'inboundTokenClaimName' => [ 'shape' => 'InboundTokenClaimNameType', ], 'inboundTokenClaimValueType' => [ 'shape' => 'InboundTokenClaimValueType', ], 'authorizingClaimMatchValue' => [ 'shape' => 'AuthorizingClaimMatchValueType', ], ], ], 'CustomClaimValidationsType' => [ 'type' => 'list', 'member' => [ 'shape' => 'CustomClaimValidationType', ], 'min' => 1, ], 'CustomConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'semanticOverride' => [ 'shape' => 'SemanticOverrideConfigurationInput', ], 'summaryOverride' => [ 'shape' => 'SummaryOverrideConfigurationInput', ], 'userPreferenceOverride' => [ 'shape' => 'UserPreferenceOverrideConfigurationInput', ], 'episodicOverride' => [ 'shape' => 'EpisodicOverrideConfigurationInput', ], 'selfManagedConfiguration' => [ 'shape' => 'SelfManagedConfigurationInput', ], ], 'union' => true, ], 'CustomConsolidationConfiguration' => [ 'type' => 'structure', 'members' => [ 'semanticConsolidationOverride' => [ 'shape' => 'SemanticConsolidationOverride', ], 'summaryConsolidationOverride' => [ 'shape' => 'SummaryConsolidationOverride', ], 'userPreferenceConsolidationOverride' => [ 'shape' => 'UserPreferenceConsolidationOverride', ], 'episodicConsolidationOverride' => [ 'shape' => 'EpisodicConsolidationOverride', ], ], 'union' => true, ], 'CustomConsolidationConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'semanticConsolidationOverride' => [ 'shape' => 'SemanticOverrideConsolidationConfigurationInput', ], 'summaryConsolidationOverride' => [ 'shape' => 'SummaryOverrideConsolidationConfigurationInput', ], 'userPreferenceConsolidationOverride' => [ 'shape' => 'UserPreferenceOverrideConsolidationConfigurationInput', ], 'episodicConsolidationOverride' => [ 'shape' => 'EpisodicOverrideConsolidationConfigurationInput', ], ], 'union' => true, ], 'CustomDescriptor' => [ 'type' => 'structure', 'members' => [ 'inlineContent' => [ 'shape' => 'InlineContent', ], ], ], 'CustomEvaluatorArn' => [ 'type' => 'string', 'pattern' => 'arn:aws[a-zA-Z-]*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:evaluator\\/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'CustomEvaluatorName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'CustomExtractionConfiguration' => [ 'type' => 'structure', 'members' => [ 'semanticExtractionOverride' => [ 'shape' => 'SemanticExtractionOverride', ], 'userPreferenceExtractionOverride' => [ 'shape' => 'UserPreferenceExtractionOverride', ], 'episodicExtractionOverride' => [ 'shape' => 'EpisodicExtractionOverride', ], ], 'union' => true, ], 'CustomExtractionConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'semanticExtractionOverride' => [ 'shape' => 'SemanticOverrideExtractionConfigurationInput', ], 'userPreferenceExtractionOverride' => [ 'shape' => 'UserPreferenceOverrideExtractionConfigurationInput', ], 'episodicExtractionOverride' => [ 'shape' => 'EpisodicOverrideExtractionConfigurationInput', ], ], 'union' => true, ], 'CustomJWTAuthorizerConfiguration' => [ 'type' => 'structure', 'required' => [ 'discoveryUrl', ], 'members' => [ 'discoveryUrl' => [ 'shape' => 'DiscoveryUrl', ], 'allowedAudience' => [ 'shape' => 'AllowedAudienceList', ], 'allowedClients' => [ 'shape' => 'AllowedClientsList', ], 'allowedScopes' => [ 'shape' => 'AllowedScopesType', ], 'customClaims' => [ 'shape' => 'CustomClaimValidationsType', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], 'privateEndpointOverrides' => [ 'shape' => 'PrivateEndpointOverrides', ], 'allowedWorkloadConfiguration' => [ 'shape' => 'AllowedWorkloadConfiguration', ], ], ], 'CustomMemoryStrategyInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'configuration' => [ 'shape' => 'CustomConfigurationInput', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'CustomOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'DefaultClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], 'onBehalfOfTokenExchangeConfig' => [ 'shape' => 'OnBehalfOfTokenExchangeConfigType', ], 'clientAuthenticationMethod' => [ 'shape' => 'ClientAuthenticationMethodType', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], 'privateEndpointOverrides' => [ 'shape' => 'PrivateEndpointOverrides', ], ], ], 'CustomOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], 'privateEndpointOverrides' => [ 'shape' => 'PrivateEndpointOverrides', ], 'onBehalfOfTokenExchangeConfig' => [ 'shape' => 'OnBehalfOfTokenExchangeConfigType', ], 'clientAuthenticationMethod' => [ 'shape' => 'ClientAuthenticationMethodType', ], ], ], 'CustomParameterMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'CustomReflectionConfiguration' => [ 'type' => 'structure', 'members' => [ 'episodicReflectionOverride' => [ 'shape' => 'EpisodicReflectionOverride', ], ], 'union' => true, ], 'CustomReflectionConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'episodicReflectionOverride' => [ 'shape' => 'EpisodicOverrideReflectionConfigurationInput', ], ], 'union' => true, ], 'CustomTransformConfiguration' => [ 'type' => 'structure', 'members' => [ 'lambda' => [ 'shape' => 'LambdaTransformConfiguration', ], ], ], 'DataSourceConfig' => [ 'type' => 'structure', 'members' => [ 'cloudWatchLogs' => [ 'shape' => 'CloudWatchLogsInputConfig', ], ], 'union' => true, ], 'DataSourceType' => [ 'type' => 'structure', 'members' => [ 'inlineExamples' => [ 'shape' => 'InlineExamplesSource', ], 's3Source' => [ 'shape' => 'S3Source', ], ], 'union' => true, ], 'DatasetArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[a-z]+)*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:dataset/[a-zA-Z0-9_-]{1,110}', ], 'DatasetExampleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SensitiveJson', ], ], 'DatasetId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z0-9_-]{1,110}', ], 'DatasetName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'DatasetSchemaType' => [ 'type' => 'string', 'enum' => [ 'AGENTCORE_EVALUATION_PREDEFINED_V1', 'AGENTCORE_EVALUATION_SIMULATED_V1', ], ], 'DatasetStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'UPDATING', 'DELETING', 'ACTIVE', 'CREATE_FAILED', 'UPDATE_FAILED', 'DELETE_FAILED', ], ], 'DatasetSummary' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'datasetName', 'status', 'schemaType', 'exampleCount', 'createdAt', 'updatedAt', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'datasetName' => [ 'shape' => 'DatasetName', ], 'description' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'draftStatus' => [ 'shape' => 'DraftStatus', ], 'schemaType' => [ 'shape' => 'DatasetSchemaType', ], 'exampleCount' => [ 'shape' => 'Long', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'DatasetSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DatasetSummary', ], ], 'DatasetVersion' => [ 'type' => 'string', 'pattern' => '(DRAFT|[0-9]+)', ], 'DatasetVersionSummary' => [ 'type' => 'structure', 'required' => [ 'datasetVersion', 'exampleCount', 'createdAt', ], 'members' => [ 'datasetVersion' => [ 'shape' => 'DatasetVersion', ], 'exampleCount' => [ 'shape' => 'Long', ], 'createdAt' => [ 'shape' => 'Timestamp', ], ], ], 'DatasetVersionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DatasetVersionSummary', ], ], 'DateTimestamp' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'DecryptionFailure' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DefaultApiKeyType' => [ 'type' => 'string', 'max' => 65536, 'min' => 0, 'sensitive' => true, ], 'DefaultClientIdType' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'DefaultClientSecretType' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'sensitive' => true, ], 'DefaultCoinbaseCdpApiKeySecretType' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'pattern' => '[a-zA-Z0-9+/=\\-_\\s]*', 'sensitive' => true, ], 'DefaultCoinbaseCdpWalletSecretType' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'pattern' => '[a-zA-Z0-9+/=\\-_\\s]*', 'sensitive' => true, ], 'DefaultStripePrivyAppSecretType' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'pattern' => '[a-zA-Z0-9+/=\\-_\\s]*', 'sensitive' => true, ], 'DefaultStripePrivyAuthorizationPrivateKeyType' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'pattern' => '(wallet-auth:)?[a-zA-Z0-9+/=\\-_\\s]*', 'sensitive' => true, ], 'Definition' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, 'sensitive' => true, ], 'DeleteAgentRuntimeEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', 'endpointName', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'endpointName' => [ 'shape' => 'EndpointName', 'location' => 'uri', 'locationName' => 'endpointName', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeleteAgentRuntimeEndpointResponse' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'AgentRuntimeEndpointStatus', ], 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', ], 'endpointName' => [ 'shape' => 'EndpointName', ], ], ], 'DeleteAgentRuntimeRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeleteAgentRuntimeResponse' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'AgentRuntimeStatus', ], 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', ], ], ], 'DeleteApiKeyCredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], ], ], 'DeleteApiKeyCredentialProviderResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteBrowserProfileRequest' => [ 'type' => 'structure', 'required' => [ 'profileId', ], 'members' => [ 'profileId' => [ 'shape' => 'BrowserProfileId', 'location' => 'uri', 'locationName' => 'profileId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeleteBrowserProfileResponse' => [ 'type' => 'structure', 'required' => [ 'profileId', 'profileArn', 'status', 'lastUpdatedAt', ], 'members' => [ 'profileId' => [ 'shape' => 'BrowserProfileId', ], 'profileArn' => [ 'shape' => 'BrowserProfileArn', ], 'status' => [ 'shape' => 'BrowserProfileStatus', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'lastSavedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'DeleteBrowserRequest' => [ 'type' => 'structure', 'required' => [ 'browserId', ], 'members' => [ 'browserId' => [ 'shape' => 'BrowserId', 'location' => 'uri', 'locationName' => 'browserId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeleteBrowserResponse' => [ 'type' => 'structure', 'required' => [ 'browserId', 'status', 'lastUpdatedAt', ], 'members' => [ 'browserId' => [ 'shape' => 'BrowserId', ], 'status' => [ 'shape' => 'BrowserStatus', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'DeleteCodeInterpreterRequest' => [ 'type' => 'structure', 'required' => [ 'codeInterpreterId', ], 'members' => [ 'codeInterpreterId' => [ 'shape' => 'CodeInterpreterId', 'location' => 'uri', 'locationName' => 'codeInterpreterId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeleteCodeInterpreterResponse' => [ 'type' => 'structure', 'required' => [ 'codeInterpreterId', 'status', 'lastUpdatedAt', ], 'members' => [ 'codeInterpreterId' => [ 'shape' => 'CodeInterpreterId', ], 'status' => [ 'shape' => 'CodeInterpreterStatus', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'DeleteConfigurationBundleRequest' => [ 'type' => 'structure', 'required' => [ 'bundleId', ], 'members' => [ 'bundleId' => [ 'shape' => 'ConfigurationBundleId', 'location' => 'uri', 'locationName' => 'bundleId', ], ], ], 'DeleteConfigurationBundleResponse' => [ 'type' => 'structure', 'required' => [ 'bundleId', 'status', ], 'members' => [ 'bundleId' => [ 'shape' => 'ConfigurationBundleId', ], 'status' => [ 'shape' => 'ConfigurationBundleStatus', ], ], ], 'DeleteDatasetExamplesRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', 'exampleIds', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'exampleIds' => [ 'shape' => 'DeleteDatasetExamplesRequestExampleIdsList', ], ], ], 'DeleteDatasetExamplesRequestExampleIdsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExampleId', ], 'max' => 1000, 'min' => 1, ], 'DeleteDatasetExamplesResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'status', 'deletedCount', 'updatedAt', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'deletedCount' => [ 'shape' => 'Long', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'DeleteDatasetRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'datasetVersion' => [ 'shape' => 'DatasetVersion', 'location' => 'querystring', 'locationName' => 'datasetVersion', ], ], ], 'DeleteDatasetResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'status', 'datasetVersion', 'updatedAt', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'datasetVersion' => [ 'shape' => 'DatasetVersion', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'DeleteEvaluatorRequest' => [ 'type' => 'structure', 'required' => [ 'evaluatorId', ], 'members' => [ 'evaluatorId' => [ 'shape' => 'EvaluatorId', 'location' => 'uri', 'locationName' => 'evaluatorId', ], ], ], 'DeleteEvaluatorResponse' => [ 'type' => 'structure', 'required' => [ 'evaluatorArn', 'evaluatorId', 'status', ], 'members' => [ 'evaluatorArn' => [ 'shape' => 'EvaluatorArn', ], 'evaluatorId' => [ 'shape' => 'EvaluatorId', ], 'status' => [ 'shape' => 'EvaluatorStatus', ], ], ], 'DeleteGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], ], ], 'DeleteGatewayResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayId', 'status', ], 'members' => [ 'gatewayId' => [ 'shape' => 'GatewayId', ], 'status' => [ 'shape' => 'GatewayStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], ], ], 'DeleteGatewayRuleRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'ruleId', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'ruleId' => [ 'shape' => 'GatewayRuleId', 'location' => 'uri', 'locationName' => 'ruleId', ], ], ], 'DeleteGatewayRuleResponse' => [ 'type' => 'structure', 'required' => [ 'ruleId', 'status', ], 'members' => [ 'ruleId' => [ 'shape' => 'GatewayRuleId', ], 'status' => [ 'shape' => 'GatewayRuleStatus', ], ], ], 'DeleteGatewayTargetRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'targetId', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'targetId' => [ 'shape' => 'TargetId', 'location' => 'uri', 'locationName' => 'targetId', ], ], ], 'DeleteGatewayTargetResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', 'targetId', 'status', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'targetId' => [ 'shape' => 'TargetId', ], 'status' => [ 'shape' => 'TargetStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], ], ], 'DeleteHarnessEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', 'endpointName', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'endpointName' => [ 'shape' => 'HarnessEndpointName', 'location' => 'uri', 'locationName' => 'endpointName', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeleteHarnessEndpointResponse' => [ 'type' => 'structure', 'required' => [ 'endpoint', ], 'members' => [ 'endpoint' => [ 'shape' => 'HarnessEndpoint', ], ], ], 'DeleteHarnessRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], 'deleteManagedMemory' => [ 'shape' => 'Boolean', 'location' => 'querystring', 'locationName' => 'deleteManagedMemory', ], ], ], 'DeleteHarnessResponse' => [ 'type' => 'structure', 'members' => [ 'harness' => [ 'shape' => 'Harness', ], ], ], 'DeleteMemoryInput' => [ 'type' => 'structure', 'required' => [ 'memoryId', ], 'members' => [ 'clientToken' => [ 'shape' => 'DeleteMemoryInputClientTokenString', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], 'memoryId' => [ 'shape' => 'MemoryId', 'location' => 'uri', 'locationName' => 'memoryId', ], ], ], 'DeleteMemoryInputClientTokenString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, ], 'DeleteMemoryOutput' => [ 'type' => 'structure', 'required' => [ 'memoryId', ], 'members' => [ 'memoryId' => [ 'shape' => 'MemoryId', ], 'status' => [ 'shape' => 'MemoryStatus', ], ], ], 'DeleteMemoryStrategiesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteMemoryStrategyInput', ], ], 'DeleteMemoryStrategyInput' => [ 'type' => 'structure', 'required' => [ 'memoryStrategyId', ], 'members' => [ 'memoryStrategyId' => [ 'shape' => 'String', ], ], ], 'DeleteOauth2CredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], ], ], 'DeleteOauth2CredentialProviderResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteOnlineEvaluationConfigRequest' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigId', ], 'members' => [ 'onlineEvaluationConfigId' => [ 'shape' => 'OnlineEvaluationConfigId', 'location' => 'uri', 'locationName' => 'onlineEvaluationConfigId', ], ], ], 'DeleteOnlineEvaluationConfigResponse' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigArn', 'onlineEvaluationConfigId', 'status', ], 'members' => [ 'onlineEvaluationConfigArn' => [ 'shape' => 'OnlineEvaluationConfigArn', ], 'onlineEvaluationConfigId' => [ 'shape' => 'OnlineEvaluationConfigId', ], 'status' => [ 'shape' => 'OnlineEvaluationConfigStatus', ], ], ], 'DeletePaymentConnectorRequest' => [ 'type' => 'structure', 'required' => [ 'paymentManagerId', 'paymentConnectorId', ], 'members' => [ 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', 'location' => 'uri', 'locationName' => 'paymentManagerId', ], 'paymentConnectorId' => [ 'shape' => 'PaymentConnectorId', 'location' => 'uri', 'locationName' => 'paymentConnectorId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeletePaymentConnectorResponse' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'PaymentConnectorStatus', ], 'paymentConnectorId' => [ 'shape' => 'PaymentConnectorId', ], ], ], 'DeletePaymentCredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], ], ], 'DeletePaymentCredentialProviderResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeletePaymentManagerRequest' => [ 'type' => 'structure', 'required' => [ 'paymentManagerId', ], 'members' => [ 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', 'location' => 'uri', 'locationName' => 'paymentManagerId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeletePaymentManagerResponse' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'PaymentManagerStatus', ], 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', ], ], ], 'DeletePolicyEngineRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], ], ], 'DeletePolicyEngineResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'name', 'createdAt', 'updatedAt', 'policyEngineArn', 'status', 'statusReasons', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyEngineName', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyEngineArn' => [ 'shape' => 'PolicyEngineArn', ], 'status' => [ 'shape' => 'PolicyEngineStatus', ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'DeletePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyId', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'policyId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyId', ], ], ], 'DeletePolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policyId', 'name', 'policyEngineId', 'createdAt', 'updatedAt', 'policyArn', 'status', 'definition', 'statusReasons', ], 'members' => [ 'policyId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyName', ], 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'status' => [ 'shape' => 'PolicyStatus', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], 'definition' => [ 'shape' => 'PolicyDefinition', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'DeleteRegistryRecordRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', 'recordId', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], 'recordId' => [ 'shape' => 'RecordIdentifier', 'location' => 'uri', 'locationName' => 'recordId', ], ], ], 'DeleteRegistryRecordResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteRegistryRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], ], ], 'DeleteRegistryResponse' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'RegistryStatus', ], ], ], 'DeleteResourcePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'BedrockAgentcoreResourceArn', 'location' => 'uri', 'locationName' => 'resourceArn', ], ], ], 'DeleteResourcePolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteWorkloadIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'WorkloadIdentityNameType', ], ], ], 'DeleteWorkloadIdentityResponse' => [ 'type' => 'structure', 'members' => [], ], 'Description' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, 'sensitive' => true, ], 'DescriptorType' => [ 'type' => 'string', 'enum' => [ 'MCP', 'A2A', 'CUSTOM', 'AGENT_SKILLS', ], ], 'Descriptors' => [ 'type' => 'structure', 'members' => [ 'mcp' => [ 'shape' => 'McpDescriptor', ], 'a2a' => [ 'shape' => 'A2aDescriptor', ], 'custom' => [ 'shape' => 'CustomDescriptor', ], 'agentSkills' => [ 'shape' => 'AgentSkillsDescriptor', ], ], ], 'DiscoveryUrl' => [ 'type' => 'string', 'pattern' => '.+/\\.well-known/openid-configuration', ], 'DiscoveryUrlType' => [ 'type' => 'string', 'pattern' => '.+/\\.well-known/(openid-configuration|oauth-authorization-server)', ], 'Document' => [ 'type' => 'structure', 'members' => [], 'document' => true, ], 'DomainName' => [ 'type' => 'string', ], 'Double' => [ 'type' => 'double', 'box' => true, ], 'DownloadUrl' => [ 'type' => 'string', 'sensitive' => true, ], 'DraftStatus' => [ 'type' => 'string', 'enum' => [ 'MODIFIED', 'UNMODIFIED', ], ], 'EfsAccessPointArn' => [ 'type' => 'string', 'max' => 128, 'min' => 0, 'pattern' => 'arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:access-point/fsap-[0-9a-f]{8,40}', ], 'EfsAccessPointConfiguration' => [ 'type' => 'structure', 'required' => [ 'accessPointArn', 'mountPath', ], 'members' => [ 'accessPointArn' => [ 'shape' => 'EfsAccessPointArn', ], 'mountPath' => [ 'shape' => 'MountPath', ], ], ], 'EnabledConnectors' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], 'max' => 50, 'min' => 1, ], 'EncryptionFailure' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'EndpointIpAddressType' => [ 'type' => 'string', 'enum' => [ 'IPV4', 'IPV6', ], ], 'EndpointName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', 'sensitive' => true, ], 'EnforcementMode' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'LOG_ONLY', ], ], 'EnvironmentVariableKey' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'EnvironmentVariableValue' => [ 'type' => 'string', 'max' => 5000, 'min' => 0, ], 'EnvironmentVariablesMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'EnvironmentVariableKey', ], 'value' => [ 'shape' => 'EnvironmentVariableValue', ], 'max' => 50, 'min' => 0, 'sensitive' => true, ], 'EpisodicConsolidationOverride' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'EpisodicExtractionOverride' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'EpisodicMemoryStrategyInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'reflectionConfiguration' => [ 'shape' => 'EpisodicReflectionConfigurationInput', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'EpisodicOverrideConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'extraction' => [ 'shape' => 'EpisodicOverrideExtractionConfigurationInput', ], 'consolidation' => [ 'shape' => 'EpisodicOverrideConsolidationConfigurationInput', ], 'reflection' => [ 'shape' => 'EpisodicOverrideReflectionConfigurationInput', ], ], ], 'EpisodicOverrideConsolidationConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'EpisodicOverrideExtractionConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'EpisodicOverrideReflectionConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'EpisodicReflectionConfiguration' => [ 'type' => 'structure', 'members' => [ 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'EpisodicReflectionConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'EpisodicReflectionOverride' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'EvaluationConfigDescription' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'pattern' => '.+', 'sensitive' => true, ], 'EvaluationConfigName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'EvaluatorArn' => [ 'type' => 'string', 'pattern' => 'arn:aws[a-zA-Z-]*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:evaluator\\/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$|^arn:aws[a-zA-Z-]*:bedrock-agentcore:::evaluator/Builtin.[a-zA-Z0-9_-]+', ], 'EvaluatorConfig' => [ 'type' => 'structure', 'members' => [ 'llmAsAJudge' => [ 'shape' => 'LlmAsAJudgeEvaluatorConfig', ], 'codeBased' => [ 'shape' => 'CodeBasedEvaluatorConfig', ], ], 'union' => true, ], 'EvaluatorDescription' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'sensitive' => true, ], 'EvaluatorId' => [ 'type' => 'string', 'pattern' => '(Builtin.[a-zA-Z0-9_-]+|[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10})', ], 'EvaluatorInstructions' => [ 'type' => 'string', 'sensitive' => true, ], 'EvaluatorLevel' => [ 'type' => 'string', 'enum' => [ 'TOOL_CALL', 'TRACE', 'SESSION', ], ], 'EvaluatorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EvaluatorReference', ], 'max' => 10, 'min' => 0, ], 'EvaluatorModelConfig' => [ 'type' => 'structure', 'members' => [ 'bedrockEvaluatorModelConfig' => [ 'shape' => 'BedrockEvaluatorModelConfig', ], ], 'union' => true, ], 'EvaluatorName' => [ 'type' => 'string', 'pattern' => '(Builtin.[a-zA-Z0-9_-]+|[a-zA-Z][a-zA-Z0-9_]{0,47})', ], 'EvaluatorReference' => [ 'type' => 'structure', 'members' => [ 'evaluatorId' => [ 'shape' => 'EvaluatorId', ], ], 'union' => true, ], 'EvaluatorStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'CREATING', 'CREATE_FAILED', 'UPDATING', 'UPDATE_FAILED', 'DELETING', ], ], 'EvaluatorSummary' => [ 'type' => 'structure', 'required' => [ 'evaluatorArn', 'evaluatorId', 'evaluatorName', 'evaluatorType', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'evaluatorArn' => [ 'shape' => 'EvaluatorArn', ], 'evaluatorId' => [ 'shape' => 'EvaluatorId', ], 'evaluatorName' => [ 'shape' => 'EvaluatorName', ], 'description' => [ 'shape' => 'EvaluatorDescription', ], 'evaluatorType' => [ 'shape' => 'EvaluatorType', ], 'level' => [ 'shape' => 'EvaluatorLevel', ], 'status' => [ 'shape' => 'EvaluatorStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'lockedForModification' => [ 'shape' => 'Boolean', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'EvaluatorSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EvaluatorSummary', ], ], 'EvaluatorType' => [ 'type' => 'string', 'enum' => [ 'Builtin', 'Custom', 'CustomCode', ], ], 'ExampleId' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '[a-zA-Z0-9_.:-]+', ], 'ExampleIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExampleId', ], ], 'ExceptionLevel' => [ 'type' => 'string', 'enum' => [ 'DEBUG', ], ], 'ExtractionConfig' => [ 'type' => 'structure', 'members' => [ 'llmExtractionConfig' => [ 'shape' => 'LlmExtractionConfig', ], ], 'union' => true, ], 'ExtractionConfiguration' => [ 'type' => 'structure', 'members' => [ 'customExtractionConfiguration' => [ 'shape' => 'CustomExtractionConfiguration', ], ], 'union' => true, ], 'ExtractionType' => [ 'type' => 'string', 'enum' => [ 'LLM_INFERRED', 'STRICTLY_CONSISTENT', ], ], 'FilesystemConfiguration' => [ 'type' => 'structure', 'members' => [ 'sessionStorage' => [ 'shape' => 'SessionStorageConfiguration', ], 's3FilesAccessPoint' => [ 'shape' => 'S3FilesAccessPointConfiguration', ], 'efsAccessPoint' => [ 'shape' => 'EfsAccessPointConfiguration', ], ], 'union' => true, ], 'FilesystemConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilesystemConfiguration', ], 'max' => 5, 'min' => 0, ], 'Filter' => [ 'type' => 'structure', 'required' => [ 'key', 'operator', 'value', ], 'members' => [ 'key' => [ 'shape' => 'FilterKeyString', ], 'operator' => [ 'shape' => 'FilterOperator', ], 'value' => [ 'shape' => 'FilterValue', ], ], ], 'FilterKeyString' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[a-zA-Z0-9._-]+', ], 'FilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Filter', ], 'max' => 5, 'min' => 0, ], 'FilterOperator' => [ 'type' => 'string', 'enum' => [ 'Equals', 'NotEquals', 'GreaterThan', 'LessThan', 'GreaterThanOrEqual', 'LessThanOrEqual', 'Contains', 'NotContains', ], ], 'FilterValue' => [ 'type' => 'structure', 'members' => [ 'stringValue' => [ 'shape' => 'FilterValueStringValueString', ], 'doubleValue' => [ 'shape' => 'Double', ], 'booleanValue' => [ 'shape' => 'Boolean', ], ], 'union' => true, ], 'FilterValueStringValueString' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'Finding' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'FindingType', ], 'description' => [ 'shape' => 'String', ], ], ], 'FindingType' => [ 'type' => 'string', 'enum' => [ 'VALID', 'INVALID', 'NOT_TRANSLATABLE', 'ALLOW_ALL', 'ALLOW_NONE', 'DENY_ALL', 'DENY_NONE', ], ], 'Findings' => [ 'type' => 'list', 'member' => [ 'shape' => 'Finding', ], ], 'Float' => [ 'type' => 'float', 'box' => true, ], 'FromUrlSynchronizationConfiguration' => [ 'type' => 'structure', 'required' => [ 'url', ], 'members' => [ 'url' => [ 'shape' => 'McpServerUrl', ], 'credentialProviderConfigurations' => [ 'shape' => 'RegistryRecordCredentialProviderConfigurationList', ], ], ], 'GatewayArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(|-cn|-us-gov):bedrock-agentcore:[a-z0-9-]{1,20}:[0-9]{12}:gateway/([0-9a-z][-]?){1,48}-[a-z0-9]{10}', ], 'GatewayConfigurationBundleArn' => [ 'type' => 'string', 'pattern' => 'arn:aws[a-zA-Z-]*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:configuration-bundle/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'GatewayDescription' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'sensitive' => true, ], 'GatewayId' => [ 'type' => 'string', 'pattern' => '([0-9a-z][-]?){1,100}-[0-9a-z]{10}', ], 'GatewayIdentifier' => [ 'type' => 'string', 'pattern' => '([0-9a-z][-]?){1,100}-[0-9a-z]{10}', ], 'GatewayInterceptionPoint' => [ 'type' => 'string', 'enum' => [ 'REQUEST', 'RESPONSE', ], ], 'GatewayInterceptionPoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'GatewayInterceptionPoint', ], 'max' => 2, 'min' => 1, ], 'GatewayInterceptorConfiguration' => [ 'type' => 'structure', 'required' => [ 'interceptor', 'interceptionPoints', ], 'members' => [ 'interceptor' => [ 'shape' => 'InterceptorConfiguration', ], 'interceptionPoints' => [ 'shape' => 'GatewayInterceptionPoints', ], 'inputConfiguration' => [ 'shape' => 'InterceptorInputConfiguration', ], ], ], 'GatewayInterceptorConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'GatewayInterceptorConfiguration', ], 'max' => 2, 'min' => 1, ], 'GatewayMaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 1000, 'min' => 1, ], 'GatewayName' => [ 'type' => 'string', 'pattern' => '([0-9a-zA-Z][-]?){1,48}', ], 'GatewayNextToken' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '\\S*', ], 'GatewayPolicyEngineArn' => [ 'type' => 'string', 'max' => 170, 'min' => 1, 'pattern' => 'arn:aws:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:policy-engine\\/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9_]{10}', ], 'GatewayPolicyEngineConfiguration' => [ 'type' => 'structure', 'required' => [ 'arn', 'mode', ], 'members' => [ 'arn' => [ 'shape' => 'GatewayPolicyEngineArn', ], 'mode' => [ 'shape' => 'GatewayPolicyEngineMode', ], ], ], 'GatewayPolicyEngineMode' => [ 'type' => 'string', 'enum' => [ 'LOG_ONLY', 'ENFORCE', ], ], 'GatewayProtocolConfiguration' => [ 'type' => 'structure', 'members' => [ 'mcp' => [ 'shape' => 'MCPGatewayConfiguration', ], ], 'union' => true, ], 'GatewayProtocolType' => [ 'type' => 'string', 'enum' => [ 'MCP', ], ], 'GatewayRuleDescription' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'GatewayRuleDetail' => [ 'type' => 'structure', 'required' => [ 'ruleId', 'gatewayArn', 'priority', 'actions', 'createdAt', 'status', ], 'members' => [ 'ruleId' => [ 'shape' => 'GatewayRuleId', ], 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'priority' => [ 'shape' => 'GatewayRulePriority', ], 'conditions' => [ 'shape' => 'Conditions', ], 'actions' => [ 'shape' => 'Actions', ], 'description' => [ 'shape' => 'GatewayRuleDescription', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'GatewayRuleStatus', ], 'system' => [ 'shape' => 'SystemManagedBlock', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'GatewayRuleId' => [ 'type' => 'string', 'max' => 36, 'min' => 36, 'pattern' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', ], 'GatewayRuleMaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'GatewayRuleNextToken' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '\\S*', ], 'GatewayRulePriority' => [ 'type' => 'integer', 'box' => true, 'max' => 1000000, 'min' => 1, ], 'GatewayRuleStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'UPDATING', 'DELETING', ], ], 'GatewayRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'GatewayRuleDetail', ], ], 'GatewayStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'UPDATING', 'UPDATE_UNSUCCESSFUL', 'DELETING', 'READY', 'FAILED', ], ], 'GatewaySummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'GatewaySummary', ], ], 'GatewaySummary' => [ 'type' => 'structure', 'required' => [ 'gatewayId', 'name', 'status', 'createdAt', 'updatedAt', 'authorizerType', ], 'members' => [ 'gatewayId' => [ 'shape' => 'GatewayId', ], 'name' => [ 'shape' => 'GatewayName', ], 'status' => [ 'shape' => 'GatewayStatus', ], 'description' => [ 'shape' => 'GatewayDescription', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'authorizerType' => [ 'shape' => 'AuthorizerType', ], 'protocolType' => [ 'shape' => 'GatewayProtocolType', ], ], ], 'GatewayTarget' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', 'targetId', 'createdAt', 'updatedAt', 'status', 'name', 'targetConfiguration', 'credentialProviderConfigurations', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'targetId' => [ 'shape' => 'TargetId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'TargetStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], 'name' => [ 'shape' => 'TargetName', ], 'description' => [ 'shape' => 'TargetDescription', ], 'targetConfiguration' => [ 'shape' => 'TargetConfiguration', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialProviderConfigurations', ], 'lastSynchronizedAt' => [ 'shape' => 'DateTimestamp', ], 'metadataConfiguration' => [ 'shape' => 'MetadataConfiguration', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], 'privateEndpointManagedResources' => [ 'shape' => 'PrivateEndpointManagedResources', ], 'authorizationData' => [ 'shape' => 'AuthorizationData', ], 'protocolType' => [ 'shape' => 'TargetProtocolType', ], ], ], 'GatewayTargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GatewayTarget', ], ], 'GatewayUrl' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'GetAgentRuntimeEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', 'endpointName', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'endpointName' => [ 'shape' => 'EndpointName', 'location' => 'uri', 'locationName' => 'endpointName', ], ], ], 'GetAgentRuntimeEndpointResponse' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeEndpointArn', 'agentRuntimeArn', 'status', 'createdAt', 'lastUpdatedAt', 'name', 'id', ], 'members' => [ 'liveVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'targetVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'agentRuntimeEndpointArn' => [ 'shape' => 'AgentRuntimeEndpointArn', ], 'agentRuntimeArn' => [ 'shape' => 'AgentRuntimeArn', ], 'description' => [ 'shape' => 'AgentEndpointDescription', ], 'status' => [ 'shape' => 'AgentRuntimeEndpointStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'failureReason' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'EndpointName', ], 'id' => [ 'shape' => 'AgentRuntimeEndpointId', ], ], ], 'GetAgentRuntimeRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'agentRuntimeVersion' => [ 'shape' => 'AgentRuntimeVersion', 'location' => 'querystring', 'locationName' => 'version', ], ], ], 'GetAgentRuntimeResponse' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeArn', 'agentRuntimeName', 'agentRuntimeId', 'agentRuntimeVersion', 'createdAt', 'lastUpdatedAt', 'roleArn', 'networkConfiguration', 'status', 'lifecycleConfiguration', ], 'members' => [ 'agentRuntimeArn' => [ 'shape' => 'AgentRuntimeArn', ], 'agentRuntimeName' => [ 'shape' => 'AgentRuntimeName', ], 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', ], 'agentRuntimeVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'status' => [ 'shape' => 'AgentRuntimeStatus', ], 'lifecycleConfiguration' => [ 'shape' => 'LifecycleConfiguration', ], 'failureReason' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'Description', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'agentRuntimeArtifact' => [ 'shape' => 'AgentRuntimeArtifact', ], 'protocolConfiguration' => [ 'shape' => 'ProtocolConfiguration', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariablesMap', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'requestHeaderConfiguration' => [ 'shape' => 'RequestHeaderConfiguration', ], 'metadataConfiguration' => [ 'shape' => 'RuntimeMetadataConfiguration', ], 'filesystemConfigurations' => [ 'shape' => 'FilesystemConfigurations', ], ], ], 'GetApiKeyCredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], ], ], 'GetApiKeyCredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'apiKeySecretArn', 'name', 'credentialProviderArn', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'apiKeySecretArn' => [ 'shape' => 'Secret', ], 'apiKeySecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'apiKeySecretSource' => [ 'shape' => 'SecretSourceType', ], 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderArn' => [ 'shape' => 'ApiKeyCredentialProviderArnType', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'GetBrowserProfileRequest' => [ 'type' => 'structure', 'required' => [ 'profileId', ], 'members' => [ 'profileId' => [ 'shape' => 'BrowserProfileId', 'location' => 'uri', 'locationName' => 'profileId', ], ], ], 'GetBrowserProfileResponse' => [ 'type' => 'structure', 'required' => [ 'profileId', 'profileArn', 'name', 'status', 'createdAt', 'lastUpdatedAt', ], 'members' => [ 'profileId' => [ 'shape' => 'BrowserProfileId', ], 'profileArn' => [ 'shape' => 'BrowserProfileArn', ], 'name' => [ 'shape' => 'BrowserProfileName', ], 'description' => [ 'shape' => 'Description', ], 'status' => [ 'shape' => 'BrowserProfileStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'lastSavedAt' => [ 'shape' => 'DateTimestamp', ], 'lastSavedBrowserSessionId' => [ 'shape' => 'BrowserSessionId', ], 'lastSavedBrowserId' => [ 'shape' => 'BrowserId', ], ], ], 'GetBrowserRequest' => [ 'type' => 'structure', 'required' => [ 'browserId', ], 'members' => [ 'browserId' => [ 'shape' => 'BrowserId', 'location' => 'uri', 'locationName' => 'browserId', ], ], ], 'GetBrowserResponse' => [ 'type' => 'structure', 'required' => [ 'browserId', 'browserArn', 'name', 'networkConfiguration', 'status', 'createdAt', 'lastUpdatedAt', ], 'members' => [ 'browserId' => [ 'shape' => 'BrowserId', ], 'browserArn' => [ 'shape' => 'BrowserArn', ], 'name' => [ 'shape' => 'SandboxName', ], 'description' => [ 'shape' => 'Description', ], 'executionRoleArn' => [ 'shape' => 'RoleArn', ], 'networkConfiguration' => [ 'shape' => 'BrowserNetworkConfiguration', ], 'recording' => [ 'shape' => 'RecordingConfig', ], 'browserSigning' => [ 'shape' => 'BrowserSigningConfigOutput', ], 'enterprisePolicies' => [ 'shape' => 'BrowserEnterprisePolicies', ], 'certificates' => [ 'shape' => 'Certificates', ], 'status' => [ 'shape' => 'BrowserStatus', ], 'failureReason' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'GetCodeInterpreterRequest' => [ 'type' => 'structure', 'required' => [ 'codeInterpreterId', ], 'members' => [ 'codeInterpreterId' => [ 'shape' => 'CodeInterpreterId', 'location' => 'uri', 'locationName' => 'codeInterpreterId', ], ], ], 'GetCodeInterpreterResponse' => [ 'type' => 'structure', 'required' => [ 'codeInterpreterId', 'codeInterpreterArn', 'name', 'networkConfiguration', 'status', 'createdAt', 'lastUpdatedAt', ], 'members' => [ 'codeInterpreterId' => [ 'shape' => 'CodeInterpreterId', ], 'codeInterpreterArn' => [ 'shape' => 'CodeInterpreterArn', ], 'name' => [ 'shape' => 'SandboxName', ], 'description' => [ 'shape' => 'Description', ], 'executionRoleArn' => [ 'shape' => 'RoleArn', ], 'networkConfiguration' => [ 'shape' => 'CodeInterpreterNetworkConfiguration', ], 'status' => [ 'shape' => 'CodeInterpreterStatus', ], 'certificates' => [ 'shape' => 'Certificates', ], 'failureReason' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'GetConfigurationBundleRequest' => [ 'type' => 'structure', 'required' => [ 'bundleId', ], 'members' => [ 'bundleId' => [ 'shape' => 'ConfigurationBundleId', 'location' => 'uri', 'locationName' => 'bundleId', ], 'branchName' => [ 'shape' => 'BranchName', 'location' => 'querystring', 'locationName' => 'branchName', ], ], ], 'GetConfigurationBundleResponse' => [ 'type' => 'structure', 'required' => [ 'bundleArn', 'bundleId', 'bundleName', 'versionId', 'components', 'createdAt', 'updatedAt', ], 'members' => [ 'bundleArn' => [ 'shape' => 'ConfigurationBundleArn', ], 'bundleId' => [ 'shape' => 'ConfigurationBundleId', ], 'bundleName' => [ 'shape' => 'ConfigurationBundleName', ], 'description' => [ 'shape' => 'ConfigurationBundleDescription', ], 'versionId' => [ 'shape' => 'ConfigurationBundleVersion', ], 'components' => [ 'shape' => 'ComponentConfigurationMap', ], 'lineageMetadata' => [ 'shape' => 'VersionLineageMetadata', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'GetConfigurationBundleVersionRequest' => [ 'type' => 'structure', 'required' => [ 'bundleId', 'versionId', ], 'members' => [ 'bundleId' => [ 'shape' => 'ConfigurationBundleId', 'location' => 'uri', 'locationName' => 'bundleId', ], 'versionId' => [ 'shape' => 'ConfigurationBundleVersion', 'location' => 'uri', 'locationName' => 'versionId', ], ], ], 'GetConfigurationBundleVersionResponse' => [ 'type' => 'structure', 'required' => [ 'bundleArn', 'bundleId', 'bundleName', 'versionId', 'components', 'createdAt', 'versionCreatedAt', ], 'members' => [ 'bundleArn' => [ 'shape' => 'ConfigurationBundleArn', ], 'bundleId' => [ 'shape' => 'ConfigurationBundleId', ], 'bundleName' => [ 'shape' => 'ConfigurationBundleName', ], 'description' => [ 'shape' => 'ConfigurationBundleDescription', ], 'versionId' => [ 'shape' => 'ConfigurationBundleVersion', ], 'components' => [ 'shape' => 'ComponentConfigurationMap', ], 'lineageMetadata' => [ 'shape' => 'VersionLineageMetadata', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'versionCreatedAt' => [ 'shape' => 'Timestamp', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'GetDatasetRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'datasetVersion' => [ 'shape' => 'DatasetVersion', 'location' => 'querystring', 'locationName' => 'datasetVersion', ], ], ], 'GetDatasetResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'datasetVersion', 'datasetName', 'status', 'schemaType', 'exampleCount', 'createdAt', 'updatedAt', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'datasetVersion' => [ 'shape' => 'DatasetVersion', ], 'datasetName' => [ 'shape' => 'DatasetName', ], 'description' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'draftStatus' => [ 'shape' => 'DraftStatus', ], 'failureReason' => [ 'shape' => 'String', ], 'schemaType' => [ 'shape' => 'DatasetSchemaType', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'exampleCount' => [ 'shape' => 'Long', ], 'downloadUrl' => [ 'shape' => 'DownloadUrl', ], 'downloadUrlExpiresAt' => [ 'shape' => 'Timestamp', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'GetEvaluatorRequest' => [ 'type' => 'structure', 'required' => [ 'evaluatorId', ], 'members' => [ 'evaluatorId' => [ 'shape' => 'EvaluatorId', 'location' => 'uri', 'locationName' => 'evaluatorId', ], 'includedData' => [ 'shape' => 'IncludedData', 'location' => 'querystring', 'locationName' => 'includedData', ], ], ], 'GetEvaluatorResponse' => [ 'type' => 'structure', 'required' => [ 'evaluatorArn', 'evaluatorId', 'evaluatorName', 'evaluatorConfig', 'level', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'evaluatorArn' => [ 'shape' => 'EvaluatorArn', ], 'evaluatorId' => [ 'shape' => 'EvaluatorId', ], 'evaluatorName' => [ 'shape' => 'EvaluatorName', ], 'description' => [ 'shape' => 'EvaluatorDescription', ], 'evaluatorConfig' => [ 'shape' => 'EvaluatorConfig', ], 'level' => [ 'shape' => 'EvaluatorLevel', ], 'status' => [ 'shape' => 'EvaluatorStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'lockedForModification' => [ 'shape' => 'Boolean', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'GetGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], ], ], 'GetGatewayResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', 'gatewayId', 'createdAt', 'updatedAt', 'status', 'name', 'authorizerType', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'gatewayId' => [ 'shape' => 'GatewayId', ], 'gatewayUrl' => [ 'shape' => 'GatewayUrl', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'GatewayStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], 'name' => [ 'shape' => 'GatewayName', ], 'description' => [ 'shape' => 'GatewayDescription', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'protocolType' => [ 'shape' => 'GatewayProtocolType', ], 'protocolConfiguration' => [ 'shape' => 'GatewayProtocolConfiguration', ], 'authorizerType' => [ 'shape' => 'AuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'customTransformConfiguration' => [ 'shape' => 'CustomTransformConfiguration', ], 'interceptorConfigurations' => [ 'shape' => 'GatewayInterceptorConfigurations', ], 'policyEngineConfiguration' => [ 'shape' => 'GatewayPolicyEngineConfiguration', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'exceptionLevel' => [ 'shape' => 'ExceptionLevel', ], 'webAclArn' => [ 'shape' => 'WebAclArn', ], 'wafConfiguration' => [ 'shape' => 'WafConfiguration', ], ], ], 'GetGatewayRuleRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'ruleId', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'ruleId' => [ 'shape' => 'GatewayRuleId', 'location' => 'uri', 'locationName' => 'ruleId', ], ], ], 'GetGatewayRuleResponse' => [ 'type' => 'structure', 'required' => [ 'ruleId', 'gatewayArn', 'priority', 'actions', 'createdAt', 'status', ], 'members' => [ 'ruleId' => [ 'shape' => 'GatewayRuleId', ], 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'priority' => [ 'shape' => 'GatewayRulePriority', ], 'conditions' => [ 'shape' => 'Conditions', ], 'actions' => [ 'shape' => 'Actions', ], 'description' => [ 'shape' => 'GatewayRuleDescription', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'GatewayRuleStatus', ], 'system' => [ 'shape' => 'SystemManagedBlock', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'GetGatewayTargetRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'targetId', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'targetId' => [ 'shape' => 'TargetId', 'location' => 'uri', 'locationName' => 'targetId', ], ], ], 'GetGatewayTargetResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', 'targetId', 'createdAt', 'updatedAt', 'status', 'name', 'targetConfiguration', 'credentialProviderConfigurations', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'targetId' => [ 'shape' => 'TargetId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'TargetStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], 'name' => [ 'shape' => 'TargetName', ], 'description' => [ 'shape' => 'TargetDescription', ], 'targetConfiguration' => [ 'shape' => 'TargetConfiguration', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialProviderConfigurations', ], 'lastSynchronizedAt' => [ 'shape' => 'DateTimestamp', ], 'metadataConfiguration' => [ 'shape' => 'MetadataConfiguration', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], 'privateEndpointManagedResources' => [ 'shape' => 'PrivateEndpointManagedResources', ], 'authorizationData' => [ 'shape' => 'AuthorizationData', ], 'protocolType' => [ 'shape' => 'TargetProtocolType', ], ], ], 'GetHarnessEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', 'endpointName', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'endpointName' => [ 'shape' => 'HarnessEndpointName', 'location' => 'uri', 'locationName' => 'endpointName', ], ], ], 'GetHarnessEndpointResponse' => [ 'type' => 'structure', 'required' => [ 'endpoint', ], 'members' => [ 'endpoint' => [ 'shape' => 'HarnessEndpoint', ], ], ], 'GetHarnessRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'harnessVersion' => [ 'shape' => 'HarnessVersion', 'location' => 'querystring', 'locationName' => 'harnessVersion', ], ], ], 'GetHarnessResponse' => [ 'type' => 'structure', 'required' => [ 'harness', ], 'members' => [ 'harness' => [ 'shape' => 'Harness', ], ], ], 'GetMemoryInput' => [ 'type' => 'structure', 'required' => [ 'memoryId', ], 'members' => [ 'memoryId' => [ 'shape' => 'MemoryId', 'location' => 'uri', 'locationName' => 'memoryId', ], 'view' => [ 'shape' => 'MemoryView', 'location' => 'querystring', 'locationName' => 'view', ], ], ], 'GetMemoryOutput' => [ 'type' => 'structure', 'required' => [ 'memory', ], 'members' => [ 'memory' => [ 'shape' => 'Memory', ], ], ], 'GetOauth2CredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], ], ], 'GetOauth2CredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'clientSecretArn', 'name', 'credentialProviderArn', 'credentialProviderVendor', 'oauth2ProviderConfigOutput', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'clientSecretArn' => [ 'shape' => 'Secret', ], 'clientSecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderArn' => [ 'shape' => 'CredentialProviderArnType', ], 'credentialProviderVendor' => [ 'shape' => 'CredentialProviderVendorType', ], 'callbackUrl' => [ 'shape' => 'String', ], 'oauth2ProviderConfigOutput' => [ 'shape' => 'Oauth2ProviderConfigOutput', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'Status', ], 'failureReason' => [ 'shape' => 'String', ], ], ], 'GetOnlineEvaluationConfigRequest' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigId', ], 'members' => [ 'onlineEvaluationConfigId' => [ 'shape' => 'OnlineEvaluationConfigId', 'location' => 'uri', 'locationName' => 'onlineEvaluationConfigId', ], ], ], 'GetOnlineEvaluationConfigResponse' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigArn', 'onlineEvaluationConfigId', 'onlineEvaluationConfigName', 'rule', 'dataSourceConfig', 'status', 'executionStatus', 'createdAt', 'updatedAt', ], 'members' => [ 'onlineEvaluationConfigArn' => [ 'shape' => 'OnlineEvaluationConfigArn', ], 'onlineEvaluationConfigId' => [ 'shape' => 'OnlineEvaluationConfigId', ], 'onlineEvaluationConfigName' => [ 'shape' => 'EvaluationConfigName', ], 'description' => [ 'shape' => 'EvaluationConfigDescription', ], 'rule' => [ 'shape' => 'Rule', ], 'dataSourceConfig' => [ 'shape' => 'DataSourceConfig', ], 'evaluators' => [ 'shape' => 'EvaluatorList', ], 'insights' => [ 'shape' => 'InsightList', ], 'clusteringConfig' => [ 'shape' => 'ClusteringConfig', ], 'outputConfig' => [ 'shape' => 'OutputConfig', ], 'evaluationExecutionRoleArn' => [ 'shape' => 'RoleArn', ], 'status' => [ 'shape' => 'OnlineEvaluationConfigStatus', ], 'executionStatus' => [ 'shape' => 'OnlineEvaluationExecutionStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'failureReason' => [ 'shape' => 'String', ], ], ], 'GetPaymentConnectorRequest' => [ 'type' => 'structure', 'required' => [ 'paymentManagerId', 'paymentConnectorId', ], 'members' => [ 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', 'location' => 'uri', 'locationName' => 'paymentManagerId', ], 'paymentConnectorId' => [ 'shape' => 'PaymentConnectorId', 'location' => 'uri', 'locationName' => 'paymentConnectorId', ], ], ], 'GetPaymentConnectorResponse' => [ 'type' => 'structure', 'required' => [ 'paymentConnectorId', 'name', 'type', 'credentialProviderConfigurations', 'createdAt', 'lastUpdatedAt', 'status', ], 'members' => [ 'paymentConnectorId' => [ 'shape' => 'PaymentConnectorId', ], 'name' => [ 'shape' => 'PaymentConnectorName', ], 'description' => [ 'shape' => 'PaymentsDescription', ], 'type' => [ 'shape' => 'PaymentConnectorType', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialsProviderConfigurations', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PaymentConnectorStatus', ], ], ], 'GetPaymentCredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], ], ], 'GetPaymentCredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderArn', 'credentialProviderVendor', 'providerConfigurationOutput', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderArn' => [ 'shape' => 'PaymentCredentialProviderArnType', ], 'credentialProviderVendor' => [ 'shape' => 'PaymentCredentialProviderVendorType', ], 'providerConfigurationOutput' => [ 'shape' => 'PaymentProviderConfigurationOutput', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'GetPaymentManagerRequest' => [ 'type' => 'structure', 'required' => [ 'paymentManagerId', ], 'members' => [ 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', 'location' => 'uri', 'locationName' => 'paymentManagerId', ], ], ], 'GetPaymentManagerResponse' => [ 'type' => 'structure', 'required' => [ 'paymentManagerArn', 'paymentManagerId', 'name', 'authorizerType', 'roleArn', 'createdAt', 'lastUpdatedAt', 'status', ], 'members' => [ 'paymentManagerArn' => [ 'shape' => 'PaymentManagerArn', ], 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', ], 'name' => [ 'shape' => 'PaymentManagerName', ], 'description' => [ 'shape' => 'PaymentsDescription', ], 'authorizerType' => [ 'shape' => 'PaymentsAuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PaymentManagerStatus', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'GetPolicyEngineRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], ], ], 'GetPolicyEngineResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'name', 'createdAt', 'updatedAt', 'policyEngineArn', 'status', 'statusReasons', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyEngineName', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyEngineArn' => [ 'shape' => 'PolicyEngineArn', ], 'status' => [ 'shape' => 'PolicyEngineStatus', ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'GetPolicyEngineSummaryRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], ], ], 'GetPolicyEngineSummaryResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'name', 'createdAt', 'updatedAt', 'policyEngineArn', 'status', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyEngineName', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyEngineArn' => [ 'shape' => 'PolicyEngineArn', ], 'status' => [ 'shape' => 'PolicyEngineStatus', ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'GetPolicyGenerationRequest' => [ 'type' => 'structure', 'required' => [ 'policyGenerationId', 'policyEngineId', ], 'members' => [ 'policyGenerationId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyGenerationId', ], 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], ], ], 'GetPolicyGenerationResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyGenerationId', 'name', 'policyGenerationArn', 'resource', 'createdAt', 'updatedAt', 'status', 'statusReasons', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'policyGenerationId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyGenerationName', ], 'policyGenerationArn' => [ 'shape' => 'PolicyGenerationArn', ], 'resource' => [ 'shape' => 'Resource', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PolicyGenerationStatus', ], 'findings' => [ 'shape' => 'String', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'GetPolicyGenerationSummaryRequest' => [ 'type' => 'structure', 'required' => [ 'policyGenerationId', 'policyEngineId', ], 'members' => [ 'policyGenerationId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyGenerationId', ], 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], ], ], 'GetPolicyGenerationSummaryResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyGenerationId', 'name', 'policyGenerationArn', 'resource', 'createdAt', 'updatedAt', 'status', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'policyGenerationId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyGenerationName', ], 'policyGenerationArn' => [ 'shape' => 'PolicyGenerationArn', ], 'resource' => [ 'shape' => 'Resource', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PolicyGenerationStatus', ], 'findings' => [ 'shape' => 'String', ], ], ], 'GetPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyId', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'policyId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyId', ], ], ], 'GetPolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policyId', 'name', 'policyEngineId', 'createdAt', 'updatedAt', 'policyArn', 'status', 'definition', 'statusReasons', ], 'members' => [ 'policyId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyName', ], 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'status' => [ 'shape' => 'PolicyStatus', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], 'definition' => [ 'shape' => 'PolicyDefinition', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'GetPolicySummaryRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyId', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'policyId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyId', ], ], ], 'GetPolicySummaryResponse' => [ 'type' => 'structure', 'required' => [ 'policyId', 'name', 'policyEngineId', 'createdAt', 'updatedAt', 'policyArn', 'status', ], 'members' => [ 'policyId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyName', ], 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'status' => [ 'shape' => 'PolicyStatus', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], ], ], 'GetRegistryRecordRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', 'recordId', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], 'recordId' => [ 'shape' => 'RecordIdentifier', 'location' => 'uri', 'locationName' => 'recordId', ], ], ], 'GetRegistryRecordResponse' => [ 'type' => 'structure', 'required' => [ 'registryArn', 'recordArn', 'recordId', 'name', 'descriptorType', 'descriptors', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'registryArn' => [ 'shape' => 'RegistryArn', ], 'recordArn' => [ 'shape' => 'RegistryRecordArn', ], 'recordId' => [ 'shape' => 'RegistryRecordId', ], 'name' => [ 'shape' => 'RegistryRecordName', ], 'description' => [ 'shape' => 'Description', ], 'descriptorType' => [ 'shape' => 'DescriptorType', ], 'descriptors' => [ 'shape' => 'Descriptors', ], 'recordVersion' => [ 'shape' => 'RegistryRecordVersion', ], 'status' => [ 'shape' => 'RegistryRecordStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'statusReason' => [ 'shape' => 'String', ], 'synchronizationType' => [ 'shape' => 'SynchronizationType', ], 'synchronizationConfiguration' => [ 'shape' => 'SynchronizationConfiguration', ], ], ], 'GetRegistryRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], ], ], 'GetRegistryResponse' => [ 'type' => 'structure', 'required' => [ 'name', 'registryId', 'registryArn', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'name' => [ 'shape' => 'RegistryName', ], 'description' => [ 'shape' => 'Description', ], 'registryId' => [ 'shape' => 'RegistryId', ], 'registryArn' => [ 'shape' => 'RegistryArn', ], 'authorizerType' => [ 'shape' => 'RegistryAuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'approvalConfiguration' => [ 'shape' => 'ApprovalConfiguration', ], 'status' => [ 'shape' => 'RegistryStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'GetResourcePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'BedrockAgentcoreResourceArn', 'location' => 'uri', 'locationName' => 'resourceArn', ], ], ], 'GetResourcePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'policy' => [ 'shape' => 'ResourcePolicyBody', ], ], ], 'GetTokenVaultRequest' => [ 'type' => 'structure', 'members' => [ 'tokenVaultId' => [ 'shape' => 'TokenVaultIdType', ], ], ], 'GetTokenVaultResponse' => [ 'type' => 'structure', 'required' => [ 'tokenVaultId', 'kmsConfiguration', 'lastModifiedDate', ], 'members' => [ 'tokenVaultId' => [ 'shape' => 'TokenVaultIdType', ], 'kmsConfiguration' => [ 'shape' => 'KmsConfiguration', ], 'lastModifiedDate' => [ 'shape' => 'Timestamp', ], ], ], 'GetWorkloadIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'WorkloadIdentityNameType', ], ], ], 'GetWorkloadIdentityResponse' => [ 'type' => 'structure', 'required' => [ 'name', 'workloadIdentityArn', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'name' => [ 'shape' => 'WorkloadIdentityNameType', ], 'workloadIdentityArn' => [ 'shape' => 'WorkloadIdentityArnType', ], 'allowedResourceOauth2ReturnUrls' => [ 'shape' => 'ResourceOauth2ReturnUrlListType', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'GithubOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'clientId', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], ], ], 'GithubOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], ], ], 'GoogleOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'clientId', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], ], ], 'GoogleOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], ], ], 'Harness' => [ 'type' => 'structure', 'required' => [ 'harnessId', 'harnessName', 'arn', 'status', 'executionRoleArn', 'createdAt', 'updatedAt', 'model', 'systemPrompt', 'tools', 'skills', 'allowedTools', 'truncation', 'environment', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', ], 'harnessName' => [ 'shape' => 'HarnessName', ], 'arn' => [ 'shape' => 'HarnessArn', ], 'status' => [ 'shape' => 'HarnessStatus', ], 'harnessVersion' => [ 'shape' => 'HarnessVersion', ], 'executionRoleArn' => [ 'shape' => 'RoleArn', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'model' => [ 'shape' => 'HarnessModelConfiguration', ], 'systemPrompt' => [ 'shape' => 'HarnessSystemPrompt', ], 'tools' => [ 'shape' => 'HarnessTools', ], 'skills' => [ 'shape' => 'HarnessSkills', ], 'allowedTools' => [ 'shape' => 'HarnessAllowedTools', ], 'truncation' => [ 'shape' => 'HarnessTruncationConfiguration', ], 'environment' => [ 'shape' => 'HarnessEnvironmentProvider', ], 'environmentArtifact' => [ 'shape' => 'HarnessEnvironmentArtifact', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariablesMap', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'memory' => [ 'shape' => 'HarnessMemoryConfiguration', ], 'maxIterations' => [ 'shape' => 'Integer', ], 'maxTokens' => [ 'shape' => 'Integer', ], 'timeoutSeconds' => [ 'shape' => 'Integer', ], 'failureReason' => [ 'shape' => 'String', ], ], ], 'HarnessAgentCoreBrowserConfig' => [ 'type' => 'structure', 'members' => [ 'browserArn' => [ 'shape' => 'HarnessBrowserArn', ], ], ], 'HarnessAgentCoreCodeInterpreterConfig' => [ 'type' => 'structure', 'members' => [ 'codeInterpreterArn' => [ 'shape' => 'HarnessCodeInterpreterArn', ], ], ], 'HarnessAgentCoreGatewayConfig' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'outboundAuth' => [ 'shape' => 'HarnessGatewayOutboundAuth', ], ], ], 'HarnessAgentCoreMemoryConfiguration' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'MemoryArn', ], 'actorId' => [ 'shape' => 'String', ], 'messagesCount' => [ 'shape' => 'Integer', ], 'retrievalConfig' => [ 'shape' => 'HarnessAgentCoreMemoryRetrievalConfigs', ], ], ], 'HarnessAgentCoreMemoryRetrievalConfig' => [ 'type' => 'structure', 'members' => [ 'topK' => [ 'shape' => 'Integer', ], 'relevanceScore' => [ 'shape' => 'Float', ], 'strategyId' => [ 'shape' => 'String', ], ], ], 'HarnessAgentCoreMemoryRetrievalConfigs' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'HarnessAgentCoreMemoryRetrievalConfig', ], ], 'HarnessAgentCoreRuntimeEnvironment' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeArn', 'agentRuntimeName', 'agentRuntimeId', 'lifecycleConfiguration', 'networkConfiguration', ], 'members' => [ 'agentRuntimeArn' => [ 'shape' => 'BedrockAgentcoreResourceArn', ], 'agentRuntimeName' => [ 'shape' => 'String', ], 'agentRuntimeId' => [ 'shape' => 'String', ], 'lifecycleConfiguration' => [ 'shape' => 'LifecycleConfiguration', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'filesystemConfigurations' => [ 'shape' => 'FilesystemConfigurations', ], ], ], 'HarnessAgentCoreRuntimeEnvironmentRequest' => [ 'type' => 'structure', 'members' => [ 'lifecycleConfiguration' => [ 'shape' => 'LifecycleConfiguration', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'filesystemConfigurations' => [ 'shape' => 'FilesystemConfigurations', ], ], ], 'HarnessAllowedTool' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '(\\*|@?[^/]+(/[^/]+)?)', ], 'HarnessAllowedTools' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessAllowedTool', ], ], 'HarnessArn' => [ 'type' => 'string', 'pattern' => 'arn:([^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:harness/[a-zA-Z][a-zA-Z0-9_]{0,39}-[a-zA-Z0-9]{10}', ], 'HarnessAwsSkillPath' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, 'pattern' => '([^*?\\[\\]]|\\*)+', ], 'HarnessAwsSkillPaths' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessAwsSkillPath', ], ], 'HarnessBedrockApiFormat' => [ 'type' => 'string', 'enum' => [ 'converse_stream', 'responses', 'chat_completions', ], ], 'HarnessBedrockModelConfig' => [ 'type' => 'structure', 'required' => [ 'modelId', ], 'members' => [ 'modelId' => [ 'shape' => 'ModelId', ], 'maxTokens' => [ 'shape' => 'MaxTokens', ], 'temperature' => [ 'shape' => 'Temperature', ], 'topP' => [ 'shape' => 'TopP', ], 'apiFormat' => [ 'shape' => 'HarnessBedrockApiFormat', ], 'additionalParams' => [ 'shape' => 'Document', ], ], ], 'HarnessBrowserArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):browser(-custom)?/(aws\\.browser\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})', ], 'HarnessCodeInterpreterArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):code-interpreter(-custom)?/(aws\\.codeinterpreter\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})', ], 'HarnessDisabledMemoryConfiguration' => [ 'type' => 'structure', 'members' => [], ], 'HarnessEndpoint' => [ 'type' => 'structure', 'required' => [ 'harnessId', 'harnessName', 'endpointName', 'arn', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', ], 'harnessName' => [ 'shape' => 'HarnessName', ], 'endpointName' => [ 'shape' => 'HarnessEndpointName', ], 'arn' => [ 'shape' => 'HarnessEndpointArn', ], 'status' => [ 'shape' => 'HarnessEndpointStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'liveVersion' => [ 'shape' => 'HarnessVersion', ], 'targetVersion' => [ 'shape' => 'HarnessVersion', ], 'description' => [ 'shape' => 'HarnessEndpointDescription', ], 'failureReason' => [ 'shape' => 'String', ], ], ], 'HarnessEndpointArn' => [ 'type' => 'string', 'pattern' => 'arn:([^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:harness/[a-zA-Z][a-zA-Z0-9_]{0,39}-[a-zA-Z0-9]{10}/endpoint/[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'HarnessEndpointDescription' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'HarnessEndpointName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'HarnessEndpointStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'CREATE_FAILED', 'UPDATING', 'UPDATE_FAILED', 'READY', 'DELETING', 'DELETE_FAILED', ], ], 'HarnessEndpoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessEndpoint', ], ], 'HarnessEnvironmentArtifact' => [ 'type' => 'structure', 'members' => [ 'containerConfiguration' => [ 'shape' => 'ContainerConfiguration', ], ], 'union' => true, ], 'HarnessEnvironmentProvider' => [ 'type' => 'structure', 'members' => [ 'agentCoreRuntimeEnvironment' => [ 'shape' => 'HarnessAgentCoreRuntimeEnvironment', ], ], 'union' => true, ], 'HarnessEnvironmentProviderRequest' => [ 'type' => 'structure', 'members' => [ 'agentCoreRuntimeEnvironment' => [ 'shape' => 'HarnessAgentCoreRuntimeEnvironmentRequest', ], ], 'union' => true, ], 'HarnessGatewayOutboundAuth' => [ 'type' => 'structure', 'members' => [ 'awsIam' => [ 'shape' => 'Unit', ], 'none' => [ 'shape' => 'Unit', ], 'oauth' => [ 'shape' => 'OAuthCredentialProvider', ], ], 'union' => true, ], 'HarnessGeminiModelConfig' => [ 'type' => 'structure', 'required' => [ 'modelId', 'apiKeyArn', ], 'members' => [ 'modelId' => [ 'shape' => 'ModelId', ], 'apiKeyArn' => [ 'shape' => 'ApiKeyArn', ], 'maxTokens' => [ 'shape' => 'MaxTokens', ], 'temperature' => [ 'shape' => 'Temperature', ], 'topP' => [ 'shape' => 'TopP', ], 'topK' => [ 'shape' => 'TopK', ], ], ], 'HarnessId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,39}-[a-zA-Z0-9]{10}', ], 'HarnessInlineFunctionConfig' => [ 'type' => 'structure', 'required' => [ 'description', 'inputSchema', ], 'members' => [ 'description' => [ 'shape' => 'HarnessInlineFunctionDescription', ], 'inputSchema' => [ 'shape' => 'SensitiveJson', ], ], ], 'HarnessInlineFunctionDescription' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, 'sensitive' => true, ], 'HarnessLiteLlmApiBase' => [ 'type' => 'string', 'max' => 16383, 'min' => 1, 'sensitive' => true, ], 'HarnessLiteLlmModelConfig' => [ 'type' => 'structure', 'required' => [ 'modelId', ], 'members' => [ 'modelId' => [ 'shape' => 'ModelId', ], 'apiKeyArn' => [ 'shape' => 'ApiKeyArn', ], 'apiBase' => [ 'shape' => 'HarnessLiteLlmApiBase', ], 'maxTokens' => [ 'shape' => 'MaxTokens', ], 'temperature' => [ 'shape' => 'Temperature', ], 'topP' => [ 'shape' => 'TopP', ], 'additionalParams' => [ 'shape' => 'Document', ], ], ], 'HarnessManagedMemoryConfiguration' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'MemoryArn', ], 'strategies' => [ 'shape' => 'HarnessManagedMemoryStrategyList', ], 'eventExpiryDuration' => [ 'shape' => 'HarnessManagedMemoryConfigurationEventExpiryDurationInteger', ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'HarnessManagedMemoryConfigurationEventExpiryDurationInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 365, 'min' => 3, ], 'HarnessManagedMemoryStrategyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessManagedMemoryStrategyType', ], 'max' => 4, 'min' => 1, ], 'HarnessManagedMemoryStrategyType' => [ 'type' => 'string', 'enum' => [ 'SEMANTIC', 'SUMMARIZATION', 'USER_PREFERENCE', 'EPISODIC', ], ], 'HarnessMemoryConfiguration' => [ 'type' => 'structure', 'members' => [ 'agentCoreMemoryConfiguration' => [ 'shape' => 'HarnessAgentCoreMemoryConfiguration', ], 'managedMemoryConfiguration' => [ 'shape' => 'HarnessManagedMemoryConfiguration', ], 'disabled' => [ 'shape' => 'HarnessDisabledMemoryConfiguration', ], ], 'union' => true, ], 'HarnessModelConfiguration' => [ 'type' => 'structure', 'members' => [ 'bedrockModelConfig' => [ 'shape' => 'HarnessBedrockModelConfig', ], 'openAiModelConfig' => [ 'shape' => 'HarnessOpenAiModelConfig', ], 'geminiModelConfig' => [ 'shape' => 'HarnessGeminiModelConfig', ], 'liteLlmModelConfig' => [ 'shape' => 'HarnessLiteLlmModelConfig', ], ], 'union' => true, ], 'HarnessName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,39}', ], 'HarnessOpenAiApiFormat' => [ 'type' => 'string', 'enum' => [ 'chat_completions', 'responses', ], ], 'HarnessOpenAiModelConfig' => [ 'type' => 'structure', 'required' => [ 'modelId', 'apiKeyArn', ], 'members' => [ 'modelId' => [ 'shape' => 'ModelId', ], 'apiKeyArn' => [ 'shape' => 'ApiKeyArn', ], 'maxTokens' => [ 'shape' => 'MaxTokens', ], 'temperature' => [ 'shape' => 'Temperature', ], 'topP' => [ 'shape' => 'TopP', ], 'apiFormat' => [ 'shape' => 'HarnessOpenAiApiFormat', ], 'additionalParams' => [ 'shape' => 'Document', ], ], ], 'HarnessRemoteMcpConfig' => [ 'type' => 'structure', 'required' => [ 'url', ], 'members' => [ 'url' => [ 'shape' => 'HarnessRemoteMcpUrl', ], 'headers' => [ 'shape' => 'HttpHeadersMap', ], ], ], 'HarnessRemoteMcpUrl' => [ 'type' => 'string', 'max' => 16383, 'min' => 1, 'sensitive' => true, ], 'HarnessSkill' => [ 'type' => 'structure', 'members' => [ 'path' => [ 'shape' => 'HarnessSkillPath', ], 's3' => [ 'shape' => 'HarnessSkillS3Source', ], 'git' => [ 'shape' => 'HarnessSkillGitSource', ], 'awsSkills' => [ 'shape' => 'HarnessSkillAwsSkillsSource', ], ], 'union' => true, ], 'HarnessSkillAwsSkillsSource' => [ 'type' => 'structure', 'members' => [ 'paths' => [ 'shape' => 'HarnessAwsSkillPaths', ], ], ], 'HarnessSkillGitAuth' => [ 'type' => 'structure', 'required' => [ 'credentialArn', ], 'members' => [ 'credentialArn' => [ 'shape' => 'ApiKeyArn', ], 'username' => [ 'shape' => 'String', ], ], ], 'HarnessSkillGitSource' => [ 'type' => 'structure', 'required' => [ 'url', ], 'members' => [ 'url' => [ 'shape' => 'HarnessSkillGitUrl', ], 'path' => [ 'shape' => 'String', ], 'auth' => [ 'shape' => 'HarnessSkillGitAuth', ], ], ], 'HarnessSkillGitUrl' => [ 'type' => 'string', 'min' => 8, 'pattern' => 'https://[^#@]+', ], 'HarnessSkillPath' => [ 'type' => 'string', 'min' => 1, ], 'HarnessSkillS3Source' => [ 'type' => 'structure', 'required' => [ 'uri', ], 'members' => [ 'uri' => [ 'shape' => 'HarnessSkillS3Uri', ], ], ], 'HarnessSkillS3Uri' => [ 'type' => 'string', 'min' => 5, 'pattern' => 's3://.*', ], 'HarnessSkills' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessSkill', ], ], 'HarnessSlidingWindowConfiguration' => [ 'type' => 'structure', 'members' => [ 'messagesCount' => [ 'shape' => 'Integer', ], ], ], 'HarnessStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'CREATE_FAILED', 'UPDATING', 'UPDATE_FAILED', 'READY', 'DELETING', 'DELETE_FAILED', ], ], 'HarnessSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessSummary', ], ], 'HarnessSummarizationConfiguration' => [ 'type' => 'structure', 'members' => [ 'summaryRatio' => [ 'shape' => 'Float', ], 'preserveRecentMessages' => [ 'shape' => 'Integer', ], 'summarizationSystemPrompt' => [ 'shape' => 'String', ], ], ], 'HarnessSummary' => [ 'type' => 'structure', 'required' => [ 'harnessId', 'harnessName', 'arn', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', ], 'harnessName' => [ 'shape' => 'HarnessName', ], 'arn' => [ 'shape' => 'HarnessArn', ], 'status' => [ 'shape' => 'HarnessStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'harnessVersion' => [ 'shape' => 'HarnessVersion', ], ], ], 'HarnessSystemContentBlock' => [ 'type' => 'structure', 'members' => [ 'text' => [ 'shape' => 'SensitiveText', ], ], 'union' => true, ], 'HarnessSystemPrompt' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessSystemContentBlock', ], ], 'HarnessTool' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'HarnessToolType', ], 'name' => [ 'shape' => 'HarnessToolName', ], 'config' => [ 'shape' => 'HarnessToolConfiguration', ], ], ], 'HarnessToolConfiguration' => [ 'type' => 'structure', 'members' => [ 'remoteMcp' => [ 'shape' => 'HarnessRemoteMcpConfig', ], 'agentCoreBrowser' => [ 'shape' => 'HarnessAgentCoreBrowserConfig', ], 'agentCoreGateway' => [ 'shape' => 'HarnessAgentCoreGatewayConfig', ], 'inlineFunction' => [ 'shape' => 'HarnessInlineFunctionConfig', ], 'agentCoreCodeInterpreter' => [ 'shape' => 'HarnessAgentCoreCodeInterpreterConfig', ], ], 'union' => true, ], 'HarnessToolName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9_-]+', ], 'HarnessToolType' => [ 'type' => 'string', 'enum' => [ 'remote_mcp', 'agentcore_browser', 'agentcore_gateway', 'inline_function', 'agentcore_code_interpreter', ], ], 'HarnessTools' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessTool', ], ], 'HarnessTruncationConfiguration' => [ 'type' => 'structure', 'required' => [ 'strategy', ], 'members' => [ 'strategy' => [ 'shape' => 'HarnessTruncationStrategy', ], 'config' => [ 'shape' => 'HarnessTruncationStrategyConfiguration', ], ], ], 'HarnessTruncationStrategy' => [ 'type' => 'string', 'enum' => [ 'sliding_window', 'summarization', 'none', ], ], 'HarnessTruncationStrategyConfiguration' => [ 'type' => 'structure', 'members' => [ 'slidingWindow' => [ 'shape' => 'HarnessSlidingWindowConfiguration', ], 'summarization' => [ 'shape' => 'HarnessSummarizationConfiguration', ], ], 'union' => true, ], 'HarnessVersion' => [ 'type' => 'string', 'max' => 5, 'min' => 1, 'pattern' => '([1-9][0-9]{0,4})', ], 'HarnessVersionSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessVersionSummary', ], ], 'HarnessVersionSummary' => [ 'type' => 'structure', 'required' => [ 'harnessId', 'harnessName', 'arn', 'harnessVersion', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', ], 'harnessName' => [ 'shape' => 'HarnessName', ], 'arn' => [ 'shape' => 'HarnessArn', ], 'harnessVersion' => [ 'shape' => 'HarnessVersion', ], 'status' => [ 'shape' => 'HarnessStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'failureReason' => [ 'shape' => 'String', ], ], ], 'HeaderName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[A-Za-z][A-Za-z0-9_-]{0,255}', ], 'HostingEnvironment' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'BedrockAgentcoreResourceArn', ], ], ], 'HostingEnvironmentListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostingEnvironment', ], 'max' => 10, 'min' => 1, ], 'HttpApiSchemaConfiguration' => [ 'type' => 'structure', 'required' => [ 'source', ], 'members' => [ 'source' => [ 'shape' => 'ApiSchemaConfiguration', ], ], ], 'HttpHeaderKey' => [ 'type' => 'string', 'max' => 16383, 'min' => 1, ], 'HttpHeaderName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'HttpHeaderValue' => [ 'type' => 'string', 'max' => 16383, 'min' => 1, ], 'HttpHeadersMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'HttpHeaderKey', ], 'value' => [ 'shape' => 'HttpHeaderValue', ], 'sensitive' => true, ], 'HttpQueryParameterName' => [ 'type' => 'string', 'max' => 40, 'min' => 1, ], 'HttpTargetConfiguration' => [ 'type' => 'structure', 'members' => [ 'agentcoreRuntime' => [ 'shape' => 'RuntimeTargetConfiguration', ], 'passthrough' => [ 'shape' => 'PassthroughTargetConfiguration', ], ], 'union' => true, ], 'IamCredentialProvider' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'service' => [ 'shape' => 'IamCredentialProviderServiceString', ], 'region' => [ 'shape' => 'IamCredentialProviderRegionString', ], ], ], 'IamCredentialProviderRegionString' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '[a-zA-Z0-9-]+', ], 'IamCredentialProviderServiceString' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9._-]+', ], 'IamPrincipal' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'IamPrincipalArn', ], 'operator' => [ 'shape' => 'PrincipalMatchOperator', ], ], ], 'IamPrincipalArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'pattern' => '(arn:aws[a-zA-Z-]*:iam::(\\d{12}|\\*):(user|role)/[\\w+=,.@*?/-]+|arn:aws[a-zA-Z-]*:sts::(\\d{12}|\\*):assumed-role/[\\w+=,.@*?/-]+)', ], 'IamRoleArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => 'arn:aws(-[^:]+)?:iam::[0-9]{12}:role/.+', ], 'IamSigningRegion' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-z0-9-]+', ], 'IamSigningServiceName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9_-]+', ], 'InboundTokenClaimNameType' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[A-Za-z0-9_.-:]+', ], 'InboundTokenClaimValueType' => [ 'type' => 'string', 'enum' => [ 'STRING', 'STRING_ARRAY', ], ], 'IncludedData' => [ 'type' => 'string', 'enum' => [ 'ALL_DATA', 'METADATA_ONLY', ], ], 'IncludedOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'clientId', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], 'issuer' => [ 'shape' => 'IssuerUrlType', ], 'authorizationEndpoint' => [ 'shape' => 'AuthorizationEndpointType', ], 'tokenEndpoint' => [ 'shape' => 'TokenEndpointType', ], ], ], 'IncludedOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], ], ], 'IndexedKey' => [ 'type' => 'structure', 'required' => [ 'key', 'type', ], 'members' => [ 'key' => [ 'shape' => 'MetadataKey', ], 'type' => [ 'shape' => 'MetadataValueType', ], ], ], 'IndexedKeysList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IndexedKey', ], 'max' => 10, 'min' => 1, ], 'InferenceConfiguration' => [ 'type' => 'structure', 'members' => [ 'maxTokens' => [ 'shape' => 'InferenceConfigurationMaxTokensInteger', ], 'temperature' => [ 'shape' => 'InferenceConfigurationTemperatureFloat', ], 'topP' => [ 'shape' => 'InferenceConfigurationTopPFloat', ], 'stopSequences' => [ 'shape' => 'InferenceConfigurationStopSequencesList', ], ], ], 'InferenceConfigurationMaxTokensInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 1, ], 'InferenceConfigurationStopSequencesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], 'max' => 2500, 'min' => 0, ], 'InferenceConfigurationTemperatureFloat' => [ 'type' => 'float', 'box' => true, 'max' => 1, 'min' => 0, ], 'InferenceConfigurationTopPFloat' => [ 'type' => 'float', 'box' => true, 'max' => 1, 'min' => 0, ], 'InferenceConnectorId' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'InferenceConnectorSource' => [ 'type' => 'structure', 'required' => [ 'connectorId', ], 'members' => [ 'connectorId' => [ 'shape' => 'InferenceConnectorId', ], ], ], 'InferenceConnectorTargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'source', ], 'members' => [ 'source' => [ 'shape' => 'InferenceConnectorSource', ], ], ], 'InferenceOperationConfiguration' => [ 'type' => 'structure', 'required' => [ 'path', ], 'members' => [ 'path' => [ 'shape' => 'InferenceOperationPath', ], 'providerPath' => [ 'shape' => 'InferenceOperationPath', ], 'models' => [ 'shape' => 'ModelEntries', ], ], ], 'InferenceOperationConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'InferenceOperationConfiguration', ], 'max' => 10, 'min' => 1, ], 'InferenceOperationPath' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '/[a-zA-Z0-9\\-\\._/]+', ], 'InferenceProviderTargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'endpoint', ], 'members' => [ 'endpoint' => [ 'shape' => 'PassthroughEndpoint', ], 'modelMapping' => [ 'shape' => 'ModelMapping', ], 'operations' => [ 'shape' => 'InferenceOperationConfigurations', ], ], ], 'InferenceTargetConfiguration' => [ 'type' => 'structure', 'members' => [ 'connector' => [ 'shape' => 'InferenceConnectorTargetConfiguration', ], 'provider' => [ 'shape' => 'InferenceProviderTargetConfiguration', ], ], 'union' => true, ], 'InlineContent' => [ 'type' => 'string', 'max' => 102400, 'min' => 1, ], 'InlineExamplesSource' => [ 'type' => 'structure', 'required' => [ 'examples', ], 'members' => [ 'examples' => [ 'shape' => 'InlineExamplesSourceExamplesList', ], ], ], 'InlineExamplesSourceExamplesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SensitiveJson', ], 'max' => 1000, 'min' => 1, ], 'InlinePayload' => [ 'type' => 'string', 'sensitive' => true, ], 'Insight' => [ 'type' => 'structure', 'required' => [ 'insightId', ], 'members' => [ 'insightId' => [ 'shape' => 'InsightId', ], ], ], 'InsightId' => [ 'type' => 'string', 'pattern' => '(Builtin\\.[a-zA-Z0-9._-]+|[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10})', ], 'InsightList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Insight', ], 'max' => 10, 'min' => 0, ], 'Integer' => [ 'type' => 'integer', 'box' => true, ], 'InterceptorConfiguration' => [ 'type' => 'structure', 'members' => [ 'lambda' => [ 'shape' => 'LambdaInterceptorConfiguration', ], ], 'union' => true, ], 'InterceptorInputConfiguration' => [ 'type' => 'structure', 'required' => [ 'passRequestHeaders', ], 'members' => [ 'passRequestHeaders' => [ 'shape' => 'Boolean', ], 'payloadFilter' => [ 'shape' => 'InterceptorPayloadFilter', ], ], ], 'InterceptorPayloadExclusion' => [ 'type' => 'string', 'enum' => [ 'RESPONSE_BODY', ], ], 'InterceptorPayloadExclusionSelector' => [ 'type' => 'structure', 'members' => [ 'field' => [ 'shape' => 'InterceptorPayloadExclusion', ], ], 'union' => true, ], 'InterceptorPayloadExclusionSelectorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InterceptorPayloadExclusionSelector', ], 'max' => 1, 'min' => 1, ], 'InterceptorPayloadFilter' => [ 'type' => 'structure', 'required' => [ 'exclude', ], 'members' => [ 'exclude' => [ 'shape' => 'InterceptorPayloadExclusionSelectorList', ], ], ], 'InternalServerException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'NonBlankString', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'InvocationConfiguration' => [ 'type' => 'structure', 'required' => [ 'topicArn', 'payloadDeliveryBucketName', ], 'members' => [ 'topicArn' => [ 'shape' => 'Arn', ], 'payloadDeliveryBucketName' => [ 'shape' => 'String', ], ], ], 'InvocationConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'topicArn', 'payloadDeliveryBucketName', ], 'members' => [ 'topicArn' => [ 'shape' => 'Arn', ], 'payloadDeliveryBucketName' => [ 'shape' => 'InvocationConfigurationInputPayloadDeliveryBucketNameString', ], ], ], 'InvocationConfigurationInputPayloadDeliveryBucketNameString' => [ 'type' => 'string', 'pattern' => '[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]', ], 'IssuerUrlType' => [ 'type' => 'string', ], 'KeyType' => [ 'type' => 'string', 'enum' => [ 'CustomerManagedKey', 'ServiceManagedKey', ], ], 'KinesisResource' => [ 'type' => 'structure', 'required' => [ 'dataStreamArn', 'contentConfigurations', ], 'members' => [ 'dataStreamArn' => [ 'shape' => 'Arn', ], 'contentConfigurations' => [ 'shape' => 'KinesisResourceContentConfigurationsList', ], ], ], 'KinesisResourceContentConfigurationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContentConfiguration', ], 'max' => 1, 'min' => 1, ], 'KmsConfiguration' => [ 'type' => 'structure', 'required' => [ 'keyType', ], 'members' => [ 'keyType' => [ 'shape' => 'KeyType', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'KmsKeyArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}', ], 'LambdaArn' => [ 'type' => 'string', 'pattern' => 'arn:(aws[a-zA-Z-]*)?:lambda:([a-z]{2}(-gov)?-[a-z]+-\\d{1}):(\\d{12}):function:([a-zA-Z0-9-_.]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?', ], 'LambdaEvaluatorConfig' => [ 'type' => 'structure', 'required' => [ 'lambdaArn', ], 'members' => [ 'lambdaArn' => [ 'shape' => 'LambdaArn', ], 'lambdaTimeoutInSeconds' => [ 'shape' => 'LambdaEvaluatorConfigLambdaTimeoutInSecondsInteger', ], ], ], 'LambdaEvaluatorConfigLambdaTimeoutInSecondsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 300, 'min' => 1, ], 'LambdaFunctionArn' => [ 'type' => 'string', 'max' => 170, 'min' => 1, 'pattern' => 'arn:(aws[a-zA-Z-]*)?:lambda:([a-z]{2}(-gov)?-[a-z]+-\\d{1}):(\\d{12}):function:([a-zA-Z0-9-_.]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?', ], 'LambdaInterceptorConfiguration' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'LambdaFunctionArn', ], ], ], 'LambdaTransformConfiguration' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'LambdaFunctionArn', ], ], ], 'LifecycleConfiguration' => [ 'type' => 'structure', 'members' => [ 'idleRuntimeSessionTimeout' => [ 'shape' => 'LifecycleConfigurationIdleRuntimeSessionTimeoutInteger', ], 'maxLifetime' => [ 'shape' => 'LifecycleConfigurationMaxLifetimeInteger', ], ], ], 'LifecycleConfigurationIdleRuntimeSessionTimeoutInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 28800, 'min' => 60, ], 'LifecycleConfigurationMaxLifetimeInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 28800, 'min' => 60, ], 'LinkedinOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'clientId', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], ], ], 'LinkedinOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], ], ], 'ListAgentRuntimeEndpointsRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListAgentRuntimeEndpointsResponse' => [ 'type' => 'structure', 'required' => [ 'runtimeEndpoints', ], 'members' => [ 'runtimeEndpoints' => [ 'shape' => 'AgentRuntimeEndpoints', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListAgentRuntimeVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListAgentRuntimeVersionsResponse' => [ 'type' => 'structure', 'required' => [ 'agentRuntimes', ], 'members' => [ 'agentRuntimes' => [ 'shape' => 'AgentRuntimes', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListAgentRuntimesRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListAgentRuntimesResponse' => [ 'type' => 'structure', 'required' => [ 'agentRuntimes', ], 'members' => [ 'agentRuntimes' => [ 'shape' => 'AgentRuntimes', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListApiKeyCredentialProvidersRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListApiKeyCredentialProvidersResponse' => [ 'type' => 'structure', 'required' => [ 'credentialProviders', ], 'members' => [ 'credentialProviders' => [ 'shape' => 'ApiKeyCredentialProviders', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListBrowserProfilesRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'name' => [ 'shape' => 'BrowserProfileName', ], ], ], 'ListBrowserProfilesResponse' => [ 'type' => 'structure', 'required' => [ 'profileSummaries', ], 'members' => [ 'profileSummaries' => [ 'shape' => 'BrowserProfileSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListBrowsersRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'type' => [ 'shape' => 'ResourceType', 'location' => 'querystring', 'locationName' => 'type', ], ], ], 'ListBrowsersResponse' => [ 'type' => 'structure', 'required' => [ 'browserSummaries', ], 'members' => [ 'browserSummaries' => [ 'shape' => 'BrowserSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListCodeInterpretersRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'type' => [ 'shape' => 'ResourceType', 'location' => 'querystring', 'locationName' => 'type', ], ], ], 'ListCodeInterpretersResponse' => [ 'type' => 'structure', 'required' => [ 'codeInterpreterSummaries', ], 'members' => [ 'codeInterpreterSummaries' => [ 'shape' => 'CodeInterpreterSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListConfigurationBundleVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'bundleId', ], 'members' => [ 'bundleId' => [ 'shape' => 'ConfigurationBundleId', 'location' => 'uri', 'locationName' => 'bundleId', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'ListConfigurationBundleVersionsRequestMaxResultsInteger', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'filter' => [ 'shape' => 'VersionFilter', ], ], ], 'ListConfigurationBundleVersionsRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ListConfigurationBundleVersionsResponse' => [ 'type' => 'structure', 'required' => [ 'versions', ], 'members' => [ 'versions' => [ 'shape' => 'ConfigurationBundleVersionSummaryList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListConfigurationBundlesRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'ListConfigurationBundlesRequestMaxResultsInteger', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListConfigurationBundlesRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ListConfigurationBundlesResponse' => [ 'type' => 'structure', 'required' => [ 'bundles', ], 'members' => [ 'bundles' => [ 'shape' => 'ConfigurationBundleSummaryList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListDatasetExamplesRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'datasetVersion' => [ 'shape' => 'DatasetVersion', 'location' => 'querystring', 'locationName' => 'datasetVersion', ], 'maxResults' => [ 'shape' => 'ListDatasetExamplesRequestMaxResultsInteger', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'ListDatasetExamplesRequestNextTokenString', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListDatasetExamplesRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 1000, 'min' => 1, ], 'ListDatasetExamplesRequestNextTokenString' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'ListDatasetExamplesResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'datasetVersion', 'examples', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'datasetVersion' => [ 'shape' => 'DatasetVersion', ], 'examples' => [ 'shape' => 'DatasetExampleList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListDatasetVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'ListDatasetVersionsRequestMaxResultsInteger', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListDatasetVersionsRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ListDatasetVersionsResponse' => [ 'type' => 'structure', 'required' => [ 'versions', ], 'members' => [ 'versions' => [ 'shape' => 'DatasetVersionSummaryList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListDatasetsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'ListDatasetsRequestNextTokenString', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'ListDatasetsRequestMaxResultsInteger', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListDatasetsRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ListDatasetsRequestNextTokenString' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'ListDatasetsResponse' => [ 'type' => 'structure', 'required' => [ 'datasets', ], 'members' => [ 'datasets' => [ 'shape' => 'DatasetSummaryList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListEvaluatorsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'ListEvaluatorsRequestMaxResultsInteger', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListEvaluatorsRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ListEvaluatorsResponse' => [ 'type' => 'structure', 'required' => [ 'evaluators', ], 'members' => [ 'evaluators' => [ 'shape' => 'EvaluatorSummaryList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListGatewayRulesRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'maxResults' => [ 'shape' => 'GatewayRuleMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'GatewayRuleNextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListGatewayRulesResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayRules', ], 'members' => [ 'gatewayRules' => [ 'shape' => 'GatewayRules', ], 'nextToken' => [ 'shape' => 'GatewayRuleNextToken', ], ], ], 'ListGatewayTargetsRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'maxResults' => [ 'shape' => 'TargetMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'TargetNextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListGatewayTargetsResponse' => [ 'type' => 'structure', 'required' => [ 'items', ], 'members' => [ 'items' => [ 'shape' => 'TargetSummaries', ], 'nextToken' => [ 'shape' => 'TargetNextToken', ], ], ], 'ListGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'GatewayMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'GatewayNextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListGatewaysResponse' => [ 'type' => 'structure', 'required' => [ 'items', ], 'members' => [ 'items' => [ 'shape' => 'GatewaySummaries', ], 'nextToken' => [ 'shape' => 'GatewayNextToken', ], ], ], 'ListHarnessEndpointsRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListHarnessEndpointsResponse' => [ 'type' => 'structure', 'required' => [ 'endpoints', ], 'members' => [ 'endpoints' => [ 'shape' => 'HarnessEndpoints', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListHarnessVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListHarnessVersionsResponse' => [ 'type' => 'structure', 'required' => [ 'harnessVersions', ], 'members' => [ 'harnessVersions' => [ 'shape' => 'HarnessVersionSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListHarnessesRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListHarnessesResponse' => [ 'type' => 'structure', 'required' => [ 'harnesses', ], 'members' => [ 'harnesses' => [ 'shape' => 'HarnessSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListMemoriesInput' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'ListMemoriesInputMaxResultsInteger', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListMemoriesInputMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ListMemoriesOutput' => [ 'type' => 'structure', 'required' => [ 'memories', ], 'members' => [ 'memories' => [ 'shape' => 'MemorySummaryList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListOauth2CredentialProvidersRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'ListOauth2CredentialProvidersRequestMaxResultsInteger', ], ], ], 'ListOauth2CredentialProvidersRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 20, 'min' => 1, ], 'ListOauth2CredentialProvidersResponse' => [ 'type' => 'structure', 'required' => [ 'credentialProviders', ], 'members' => [ 'credentialProviders' => [ 'shape' => 'Oauth2CredentialProviders', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListOnlineEvaluationConfigsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'ListOnlineEvaluationConfigsRequestMaxResultsInteger', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListOnlineEvaluationConfigsRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ListOnlineEvaluationConfigsResponse' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigs', ], 'members' => [ 'onlineEvaluationConfigs' => [ 'shape' => 'OnlineEvaluationConfigSummaryList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListPaymentConnectorsRequest' => [ 'type' => 'structure', 'required' => [ 'paymentManagerId', ], 'members' => [ 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', 'location' => 'uri', 'locationName' => 'paymentManagerId', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListPaymentConnectorsResponse' => [ 'type' => 'structure', 'required' => [ 'paymentConnectors', ], 'members' => [ 'paymentConnectors' => [ 'shape' => 'PaymentConnectorSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPaymentCredentialProvidersRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'ListPaymentCredentialProvidersRequestMaxResultsInteger', ], ], ], 'ListPaymentCredentialProvidersRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 20, 'min' => 1, ], 'ListPaymentCredentialProvidersResponse' => [ 'type' => 'structure', 'required' => [ 'credentialProviders', ], 'members' => [ 'credentialProviders' => [ 'shape' => 'PaymentCredentialProviders', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListPaymentManagersRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListPaymentManagersResponse' => [ 'type' => 'structure', 'required' => [ 'paymentManagers', ], 'members' => [ 'paymentManagers' => [ 'shape' => 'PaymentManagerSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPoliciesRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', ], 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'targetResourceScope' => [ 'shape' => 'BedrockAgentcoreResourceArn', 'location' => 'querystring', 'locationName' => 'targetResourceScope', ], ], ], 'ListPoliciesResponse' => [ 'type' => 'structure', 'required' => [ 'policies', ], 'members' => [ 'policies' => [ 'shape' => 'Policies', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPolicyEngineSummariesRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListPolicyEngineSummariesResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngines', ], 'members' => [ 'policyEngines' => [ 'shape' => 'PolicyEngineSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPolicyEnginesRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListPolicyEnginesResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngines', ], 'members' => [ 'policyEngines' => [ 'shape' => 'PolicyEngines', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPolicyGenerationAssetsRequest' => [ 'type' => 'structure', 'required' => [ 'policyGenerationId', 'policyEngineId', ], 'members' => [ 'policyGenerationId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyGenerationId', ], 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListPolicyGenerationAssetsResponse' => [ 'type' => 'structure', 'members' => [ 'policyGenerationAssets' => [ 'shape' => 'PolicyGenerationAssets', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPolicyGenerationSummariesRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', ], 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], ], ], 'ListPolicyGenerationSummariesResponse' => [ 'type' => 'structure', 'required' => [ 'policyGenerations', ], 'members' => [ 'policyGenerations' => [ 'shape' => 'PolicyGenerationSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPolicyGenerationsRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', ], 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], ], ], 'ListPolicyGenerationsResponse' => [ 'type' => 'structure', 'required' => [ 'policyGenerations', ], 'members' => [ 'policyGenerations' => [ 'shape' => 'PolicyGenerations', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPolicySummariesRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', ], 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'targetResourceScope' => [ 'shape' => 'BedrockAgentcoreResourceArn', 'location' => 'querystring', 'locationName' => 'targetResourceScope', ], ], ], 'ListPolicySummariesResponse' => [ 'type' => 'structure', 'required' => [ 'policies', ], 'members' => [ 'policies' => [ 'shape' => 'PolicySummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListRegistriesRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'status' => [ 'shape' => 'RegistryStatus', 'location' => 'querystring', 'locationName' => 'status', ], 'authorizerType' => [ 'shape' => 'RegistryAuthorizerType', 'location' => 'querystring', 'locationName' => 'authorizerType', ], ], ], 'ListRegistriesResponse' => [ 'type' => 'structure', 'required' => [ 'registries', ], 'members' => [ 'registries' => [ 'shape' => 'RegistrySummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListRegistryRecordsRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'name' => [ 'shape' => 'RegistryRecordName', 'location' => 'querystring', 'locationName' => 'name', ], 'status' => [ 'shape' => 'RegistryRecordStatus', 'location' => 'querystring', 'locationName' => 'status', ], 'descriptorType' => [ 'shape' => 'DescriptorType', 'location' => 'querystring', 'locationName' => 'descriptorType', ], ], ], 'ListRegistryRecordsResponse' => [ 'type' => 'structure', 'required' => [ 'registryRecords', ], 'members' => [ 'registryRecords' => [ 'shape' => 'RegistryRecordSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'TaggableResourcesArn', 'location' => 'uri', 'locationName' => 'resourceArn', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'ListWorkloadIdentitiesRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'ListWorkloadIdentitiesRequestMaxResultsInteger', ], ], ], 'ListWorkloadIdentitiesRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 20, 'min' => 1, ], 'ListWorkloadIdentitiesResponse' => [ 'type' => 'structure', 'required' => [ 'workloadIdentities', ], 'members' => [ 'workloadIdentities' => [ 'shape' => 'WorkloadIdentityList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListingMode' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'DYNAMIC', ], ], 'LlmAsAJudgeEvaluatorConfig' => [ 'type' => 'structure', 'required' => [ 'instructions', 'ratingScale', 'modelConfig', ], 'members' => [ 'instructions' => [ 'shape' => 'EvaluatorInstructions', ], 'ratingScale' => [ 'shape' => 'RatingScale', ], 'modelConfig' => [ 'shape' => 'EvaluatorModelConfig', ], ], ], 'LlmExtractionConfig' => [ 'type' => 'structure', 'required' => [ 'definition', ], 'members' => [ 'llmExtractionInstruction' => [ 'shape' => 'LlmExtractionInstruction', ], 'definition' => [ 'shape' => 'Definition', ], 'validation' => [ 'shape' => 'Validation', ], ], ], 'LlmExtractionInstruction' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, 'sensitive' => true, ], 'LogGroupName' => [ 'type' => 'string', 'pattern' => '[.\\-_/#A-Za-z0-9]+', ], 'Long' => [ 'type' => 'long', 'box' => true, ], 'MCPGatewayConfiguration' => [ 'type' => 'structure', 'members' => [ 'supportedVersions' => [ 'shape' => 'McpSupportedVersions', ], 'instructions' => [ 'shape' => 'McpInstructions', ], 'searchType' => [ 'shape' => 'SearchType', ], 'sessionConfiguration' => [ 'shape' => 'SessionConfiguration', ], 'streamingConfiguration' => [ 'shape' => 'StreamingConfiguration', ], ], ], 'ManagedResourceDetails' => [ 'type' => 'structure', 'members' => [ 'domain' => [ 'shape' => 'DomainName', ], 'resourceGatewayArn' => [ 'shape' => 'ResourceGatewayArn', ], 'resourceAssociationArn' => [ 'shape' => 'ResourceAssociationArn', ], ], ], 'ManagedVpcResource' => [ 'type' => 'structure', 'required' => [ 'vpcIdentifier', 'subnetIds', 'endpointIpAddressType', ], 'members' => [ 'vpcIdentifier' => [ 'shape' => 'VpcIdentifier', ], 'subnetIds' => [ 'shape' => 'SubnetIds', ], 'endpointIpAddressType' => [ 'shape' => 'EndpointIpAddressType', ], 'securityGroupIds' => [ 'shape' => 'SecurityGroupIds', ], 'tags' => [ 'shape' => 'TagsMap', ], 'routingDomain' => [ 'shape' => 'RoutingDomain', ], ], ], 'MatchPathPattern' => [ 'type' => 'string', 'max' => 512, 'min' => 0, 'pattern' => '/[\\w\\-.]+/\\*', ], 'MatchPaths' => [ 'type' => 'structure', 'required' => [ 'anyOf', ], 'members' => [ 'anyOf' => [ 'shape' => 'MatchPathsAnyOfList', ], ], ], 'MatchPathsAnyOfList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MatchPathPattern', ], 'max' => 10, 'min' => 1, ], 'MatchPrincipalEntry' => [ 'type' => 'structure', 'members' => [ 'iamPrincipal' => [ 'shape' => 'IamPrincipal', ], ], 'union' => true, ], 'MatchPrincipals' => [ 'type' => 'structure', 'required' => [ 'anyOf', ], 'members' => [ 'anyOf' => [ 'shape' => 'MatchPrincipalsAnyOfList', ], ], ], 'MatchPrincipalsAnyOfList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MatchPrincipalEntry', ], 'max' => 100, 'min' => 1, ], 'MatchValueString' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[A-Za-z0-9_.-]+', ], 'MatchValueStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MatchValueString', ], 'min' => 1, ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'MaxTokens' => [ 'type' => 'integer', 'box' => true, 'min' => 1, ], 'McpDescriptor' => [ 'type' => 'structure', 'members' => [ 'server' => [ 'shape' => 'ServerDefinition', ], 'tools' => [ 'shape' => 'ToolsDefinition', ], ], ], 'McpInstructions' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'sensitive' => true, ], 'McpLambdaTargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'lambdaArn', 'toolSchema', ], 'members' => [ 'lambdaArn' => [ 'shape' => 'LambdaFunctionArn', ], 'toolSchema' => [ 'shape' => 'ToolSchema', ], ], ], 'McpServerTargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'endpoint', ], 'members' => [ 'endpoint' => [ 'shape' => 'McpServerTargetConfigurationEndpointString', ], 'mcpToolSchema' => [ 'shape' => 'McpToolSchemaConfiguration', ], 'listingMode' => [ 'shape' => 'ListingMode', ], 'resourcePriority' => [ 'shape' => 'TargetResourcePriority', ], ], ], 'McpServerTargetConfigurationEndpointString' => [ 'type' => 'string', 'pattern' => 'https://.*', ], 'McpServerUrl' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'https://.*', ], 'McpSupportedVersions' => [ 'type' => 'list', 'member' => [ 'shape' => 'McpVersion', ], ], 'McpTargetConfiguration' => [ 'type' => 'structure', 'members' => [ 'openApiSchema' => [ 'shape' => 'ApiSchemaConfiguration', ], 'smithyModel' => [ 'shape' => 'ApiSchemaConfiguration', ], 'lambda' => [ 'shape' => 'McpLambdaTargetConfiguration', ], 'mcpServer' => [ 'shape' => 'McpServerTargetConfiguration', ], 'apiGateway' => [ 'shape' => 'ApiGatewayTargetConfiguration', ], 'connector' => [ 'shape' => 'ConnectorTargetConfiguration', ], ], 'union' => true, ], 'McpToolSchemaConfiguration' => [ 'type' => 'structure', 'members' => [ 's3' => [ 'shape' => 'S3Configuration', ], 'inlinePayload' => [ 'shape' => 'InlinePayload', ], ], 'union' => true, ], 'McpVersion' => [ 'type' => 'string', ], 'Memory' => [ 'type' => 'structure', 'required' => [ 'arn', 'id', 'name', 'eventExpiryDuration', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'arn' => [ 'shape' => 'MemoryArn', ], 'id' => [ 'shape' => 'MemoryId', ], 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'encryptionKeyArn' => [ 'shape' => 'Arn', ], 'memoryExecutionRoleArn' => [ 'shape' => 'Arn', ], 'eventExpiryDuration' => [ 'shape' => 'MemoryEventExpiryDurationInteger', ], 'status' => [ 'shape' => 'MemoryStatus', ], 'failureReason' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'strategies' => [ 'shape' => 'MemoryStrategyList', ], 'indexedKeys' => [ 'shape' => 'IndexedKeysList', ], 'streamDeliveryResources' => [ 'shape' => 'StreamDeliveryResources', ], 'managedByResourceArn' => [ 'shape' => 'Arn', ], ], ], 'MemoryArn' => [ 'type' => 'string', 'pattern' => 'arn:aws:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:memory\\/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'MemoryEventExpiryDurationInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 365, 'min' => 1, ], 'MemoryId' => [ 'type' => 'string', 'min' => 12, 'pattern' => '[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'MemoryRecordSchema' => [ 'type' => 'structure', 'members' => [ 'metadataSchema' => [ 'shape' => 'MetadataSchemaList', ], ], ], 'MemoryStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'FAILED', 'DELETING', 'UPDATING', ], ], 'MemoryStrategy' => [ 'type' => 'structure', 'required' => [ 'strategyId', 'name', 'type', 'namespaces', 'namespaceTemplates', ], 'members' => [ 'strategyId' => [ 'shape' => 'MemoryStrategyId', ], 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'configuration' => [ 'shape' => 'StrategyConfiguration', ], 'type' => [ 'shape' => 'MemoryStrategyType', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'MemoryStrategyStatus', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'MemoryStrategyId' => [ 'type' => 'string', 'min' => 12, 'pattern' => '[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'MemoryStrategyInput' => [ 'type' => 'structure', 'members' => [ 'semanticMemoryStrategy' => [ 'shape' => 'SemanticMemoryStrategyInput', ], 'summaryMemoryStrategy' => [ 'shape' => 'SummaryMemoryStrategyInput', ], 'userPreferenceMemoryStrategy' => [ 'shape' => 'UserPreferenceMemoryStrategyInput', ], 'customMemoryStrategy' => [ 'shape' => 'CustomMemoryStrategyInput', ], 'episodicMemoryStrategy' => [ 'shape' => 'EpisodicMemoryStrategyInput', ], ], 'union' => true, ], 'MemoryStrategyInputList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MemoryStrategyInput', ], ], 'MemoryStrategyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MemoryStrategy', ], ], 'MemoryStrategyStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'DELETING', 'FAILED', ], ], 'MemoryStrategyType' => [ 'type' => 'string', 'enum' => [ 'SEMANTIC', 'SUMMARIZATION', 'USER_PREFERENCE', 'CUSTOM', 'EPISODIC', ], ], 'MemorySummary' => [ 'type' => 'structure', 'required' => [ 'createdAt', 'updatedAt', ], 'members' => [ 'arn' => [ 'shape' => 'MemoryArn', ], 'id' => [ 'shape' => 'MemoryId', ], 'status' => [ 'shape' => 'MemoryStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'managedByResourceArn' => [ 'shape' => 'Arn', ], ], ], 'MemorySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MemorySummary', ], ], 'MemoryView' => [ 'type' => 'string', 'enum' => [ 'full', 'without_decryption', ], ], 'MessageBasedTrigger' => [ 'type' => 'structure', 'members' => [ 'messageCount' => [ 'shape' => 'Integer', ], ], ], 'MessageBasedTriggerInput' => [ 'type' => 'structure', 'members' => [ 'messageCount' => [ 'shape' => 'MessageBasedTriggerInputMessageCountInteger', ], ], ], 'MessageBasedTriggerInputMessageCountInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 50, 'min' => 1, ], 'MetadataConfiguration' => [ 'type' => 'structure', 'members' => [ 'allowedRequestHeaders' => [ 'shape' => 'AllowedRequestHeaders', ], 'allowedQueryParameters' => [ 'shape' => 'AllowedQueryParameters', ], 'allowedResponseHeaders' => [ 'shape' => 'AllowedResponseHeaders', ], ], ], 'MetadataKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\s._:/=+@-]*', ], 'MetadataSchemaEntry' => [ 'type' => 'structure', 'required' => [ 'key', ], 'members' => [ 'key' => [ 'shape' => 'MetadataKey', ], 'type' => [ 'shape' => 'MetadataValueType', ], 'extractionType' => [ 'shape' => 'ExtractionType', ], 'extractionConfig' => [ 'shape' => 'ExtractionConfig', ], ], ], 'MetadataSchemaList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetadataSchemaEntry', ], 'max' => 20, 'min' => 1, ], 'MetadataValueType' => [ 'type' => 'string', 'enum' => [ 'STRING', 'STRINGLIST', 'NUMBER', ], ], 'MicrosoftOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'clientId', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], 'tenantId' => [ 'shape' => 'TenantIdType', ], ], ], 'MicrosoftOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], ], ], 'ModelEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ModelEntry', ], 'max' => 100, 'min' => 1, ], 'ModelEntry' => [ 'type' => 'structure', 'required' => [ 'model', ], 'members' => [ 'model' => [ 'shape' => 'ModelPattern', ], ], ], 'ModelId' => [ 'type' => 'string', ], 'ModelMapping' => [ 'type' => 'structure', 'members' => [ 'providerPrefix' => [ 'shape' => 'ProviderPrefix', ], ], ], 'ModelPattern' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-\\._\\*\\?@]+(/[a-zA-Z0-9\\-\\._\\*\\?@]+)*', ], 'ModifyConsolidationConfiguration' => [ 'type' => 'structure', 'members' => [ 'customConsolidationConfiguration' => [ 'shape' => 'CustomConsolidationConfigurationInput', ], ], 'union' => true, ], 'ModifyExtractionConfiguration' => [ 'type' => 'structure', 'members' => [ 'customExtractionConfiguration' => [ 'shape' => 'CustomExtractionConfigurationInput', ], ], 'union' => true, ], 'ModifyInvocationConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'topicArn' => [ 'shape' => 'Arn', ], 'payloadDeliveryBucketName' => [ 'shape' => 'ModifyInvocationConfigurationInputPayloadDeliveryBucketNameString', ], ], ], 'ModifyInvocationConfigurationInputPayloadDeliveryBucketNameString' => [ 'type' => 'string', 'pattern' => '[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]', ], 'ModifyMemoryStrategies' => [ 'type' => 'structure', 'members' => [ 'addMemoryStrategies' => [ 'shape' => 'MemoryStrategyInputList', ], 'modifyMemoryStrategies' => [ 'shape' => 'ModifyMemoryStrategiesList', ], 'deleteMemoryStrategies' => [ 'shape' => 'DeleteMemoryStrategiesList', ], ], ], 'ModifyMemoryStrategiesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ModifyMemoryStrategyInput', ], ], 'ModifyMemoryStrategyInput' => [ 'type' => 'structure', 'required' => [ 'memoryStrategyId', ], 'members' => [ 'memoryStrategyId' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'Description', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'configuration' => [ 'shape' => 'ModifyStrategyConfiguration', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'ModifyReflectionConfiguration' => [ 'type' => 'structure', 'members' => [ 'episodicReflectionConfiguration' => [ 'shape' => 'EpisodicReflectionConfigurationInput', ], 'customReflectionConfiguration' => [ 'shape' => 'CustomReflectionConfigurationInput', ], ], 'union' => true, ], 'ModifySelfManagedConfiguration' => [ 'type' => 'structure', 'members' => [ 'triggerConditions' => [ 'shape' => 'TriggerConditionInputList', ], 'invocationConfiguration' => [ 'shape' => 'ModifyInvocationConfigurationInput', ], 'historicalContextWindowSize' => [ 'shape' => 'ModifySelfManagedConfigurationHistoricalContextWindowSizeInteger', ], ], ], 'ModifySelfManagedConfigurationHistoricalContextWindowSizeInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 50, 'min' => 0, ], 'ModifyStrategyConfiguration' => [ 'type' => 'structure', 'members' => [ 'extraction' => [ 'shape' => 'ModifyExtractionConfiguration', ], 'consolidation' => [ 'shape' => 'ModifyConsolidationConfiguration', ], 'reflection' => [ 'shape' => 'ModifyReflectionConfiguration', ], 'selfManagedConfiguration' => [ 'shape' => 'ModifySelfManagedConfiguration', ], ], ], 'MountPath' => [ 'type' => 'string', 'max' => 200, 'min' => 6, 'pattern' => '/mnt/[a-zA-Z0-9._-]+/?', ], 'Name' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'Namespace' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-_\\/]*(\\{(actorId|sessionId|memoryStrategyId)\\}[a-zA-Z0-9\\-_\\/]*)*', ], 'NamespacesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Namespace', ], 'max' => 1, 'min' => 1, ], 'NaturalLanguage' => [ 'type' => 'string', 'max' => 2000, 'min' => 1, ], 'NetworkConfiguration' => [ 'type' => 'structure', 'required' => [ 'networkMode', ], 'members' => [ 'networkMode' => [ 'shape' => 'NetworkMode', ], 'networkModeConfig' => [ 'shape' => 'VpcConfig', ], ], ], 'NetworkMode' => [ 'type' => 'string', 'enum' => [ 'PUBLIC', 'VPC', ], ], 'NextToken' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '\\S*', ], 'NonBlankString' => [ 'type' => 'string', 'pattern' => '[\\s\\S]+', ], 'NonEmptyString' => [ 'type' => 'string', 'min' => 1, ], 'NumberValidation' => [ 'type' => 'structure', 'members' => [ 'minValue' => [ 'shape' => 'Double', ], 'maxValue' => [ 'shape' => 'Double', ], ], ], 'NumericalScaleDefinition' => [ 'type' => 'structure', 'required' => [ 'definition', 'value', 'label', ], 'members' => [ 'definition' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'NumericalScaleDefinitionValueDouble', ], 'label' => [ 'shape' => 'NumericalScaleDefinitionLabelString', ], ], ], 'NumericalScaleDefinitionLabelString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'NumericalScaleDefinitionValueDouble' => [ 'type' => 'double', 'box' => true, 'min' => 0, ], 'NumericalScaleDefinitions' => [ 'type' => 'list', 'member' => [ 'shape' => 'NumericalScaleDefinition', ], ], 'OAuth2AuthorizationData' => [ 'type' => 'structure', 'required' => [ 'authorizationUrl', ], 'members' => [ 'authorizationUrl' => [ 'shape' => 'OAuth2AuthorizationDataAuthorizationUrlString', ], 'userId' => [ 'shape' => 'OAuth2AuthorizationDataUserIdString', ], ], ], 'OAuth2AuthorizationDataAuthorizationUrlString' => [ 'type' => 'string', 'min' => 1, ], 'OAuth2AuthorizationDataUserIdString' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'OAuthCredentialProvider' => [ 'type' => 'structure', 'required' => [ 'providerArn', 'scopes', ], 'members' => [ 'providerArn' => [ 'shape' => 'OAuthCredentialProviderArn', ], 'scopes' => [ 'shape' => 'OAuthScopes', ], 'customParameters' => [ 'shape' => 'OAuthCustomParameters', ], 'grantType' => [ 'shape' => 'OAuthGrantType', ], 'defaultReturnUrl' => [ 'shape' => 'OAuthDefaultReturnUrl', ], ], ], 'OAuthCredentialProviderArn' => [ 'type' => 'string', 'pattern' => 'arn:([^:]*):([^:]*):([^:]*):([0-9]{12})?:(.+)', ], 'OAuthCustomParameters' => [ 'type' => 'map', 'key' => [ 'shape' => 'OAuthCustomParametersKey', ], 'value' => [ 'shape' => 'OAuthCustomParametersValue', ], 'max' => 10, 'min' => 1, ], 'OAuthCustomParametersKey' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'OAuthCustomParametersValue' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'sensitive' => true, ], 'OAuthDefaultReturnUrl' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '\\w+:(\\/?\\/?)[^\\s]+', ], 'OAuthGrantType' => [ 'type' => 'string', 'enum' => [ 'CLIENT_CREDENTIALS', 'AUTHORIZATION_CODE', 'TOKEN_EXCHANGE', ], ], 'OAuthScope' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'OAuthScopes' => [ 'type' => 'list', 'member' => [ 'shape' => 'OAuthScope', ], 'max' => 100, 'min' => 0, ], 'Oauth2AuthorizationServerMetadata' => [ 'type' => 'structure', 'required' => [ 'issuer', 'authorizationEndpoint', 'tokenEndpoint', ], 'members' => [ 'issuer' => [ 'shape' => 'IssuerUrlType', ], 'authorizationEndpoint' => [ 'shape' => 'AuthorizationEndpointType', ], 'tokenEndpoint' => [ 'shape' => 'TokenEndpointType', ], 'responseTypes' => [ 'shape' => 'ResponseListType', ], 'tokenEndpointAuthMethods' => [ 'shape' => 'TokenEndpointAuthMethodsType', ], ], ], 'Oauth2CredentialProviderItem' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderVendor', 'credentialProviderArn', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'CredentialProviderVendorType', ], 'credentialProviderArn' => [ 'shape' => 'CredentialProviderArnType', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'Oauth2CredentialProviders' => [ 'type' => 'list', 'member' => [ 'shape' => 'Oauth2CredentialProviderItem', ], ], 'Oauth2Discovery' => [ 'type' => 'structure', 'members' => [ 'discoveryUrl' => [ 'shape' => 'DiscoveryUrlType', ], 'authorizationServerMetadata' => [ 'shape' => 'Oauth2AuthorizationServerMetadata', ], ], 'union' => true, ], 'Oauth2ProviderConfigInput' => [ 'type' => 'structure', 'members' => [ 'customOauth2ProviderConfig' => [ 'shape' => 'CustomOauth2ProviderConfigInput', ], 'googleOauth2ProviderConfig' => [ 'shape' => 'GoogleOauth2ProviderConfigInput', ], 'githubOauth2ProviderConfig' => [ 'shape' => 'GithubOauth2ProviderConfigInput', ], 'slackOauth2ProviderConfig' => [ 'shape' => 'SlackOauth2ProviderConfigInput', ], 'salesforceOauth2ProviderConfig' => [ 'shape' => 'SalesforceOauth2ProviderConfigInput', ], 'microsoftOauth2ProviderConfig' => [ 'shape' => 'MicrosoftOauth2ProviderConfigInput', ], 'atlassianOauth2ProviderConfig' => [ 'shape' => 'AtlassianOauth2ProviderConfigInput', ], 'linkedinOauth2ProviderConfig' => [ 'shape' => 'LinkedinOauth2ProviderConfigInput', ], 'includedOauth2ProviderConfig' => [ 'shape' => 'IncludedOauth2ProviderConfigInput', ], ], 'union' => true, ], 'Oauth2ProviderConfigOutput' => [ 'type' => 'structure', 'members' => [ 'customOauth2ProviderConfig' => [ 'shape' => 'CustomOauth2ProviderConfigOutput', ], 'googleOauth2ProviderConfig' => [ 'shape' => 'GoogleOauth2ProviderConfigOutput', ], 'githubOauth2ProviderConfig' => [ 'shape' => 'GithubOauth2ProviderConfigOutput', ], 'slackOauth2ProviderConfig' => [ 'shape' => 'SlackOauth2ProviderConfigOutput', ], 'salesforceOauth2ProviderConfig' => [ 'shape' => 'SalesforceOauth2ProviderConfigOutput', ], 'microsoftOauth2ProviderConfig' => [ 'shape' => 'MicrosoftOauth2ProviderConfigOutput', ], 'atlassianOauth2ProviderConfig' => [ 'shape' => 'AtlassianOauth2ProviderConfigOutput', ], 'linkedinOauth2ProviderConfig' => [ 'shape' => 'LinkedinOauth2ProviderConfigOutput', ], 'includedOauth2ProviderConfig' => [ 'shape' => 'IncludedOauth2ProviderConfigOutput', ], ], 'union' => true, ], 'OnBehalfOfTokenExchangeConfigType' => [ 'type' => 'structure', 'required' => [ 'grantType', ], 'members' => [ 'grantType' => [ 'shape' => 'OnBehalfOfTokenExchangeGrantTypeType', ], 'tokenExchangeGrantTypeConfig' => [ 'shape' => 'TokenExchangeGrantTypeConfigType', ], ], ], 'OnBehalfOfTokenExchangeGrantTypeType' => [ 'type' => 'string', 'enum' => [ 'TOKEN_EXCHANGE', 'JWT_AUTHORIZATION_GRANT', ], ], 'OnlineEvaluationConfigArn' => [ 'type' => 'string', 'pattern' => 'arn:aws[a-zA-Z-]*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:online-evaluation-config\\/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'OnlineEvaluationConfigId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'OnlineEvaluationConfigStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'CREATING', 'CREATE_FAILED', 'UPDATING', 'UPDATE_FAILED', 'DELETING', 'ERROR', ], ], 'OnlineEvaluationConfigSummary' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigArn', 'onlineEvaluationConfigId', 'onlineEvaluationConfigName', 'status', 'executionStatus', 'createdAt', 'updatedAt', ], 'members' => [ 'onlineEvaluationConfigArn' => [ 'shape' => 'OnlineEvaluationConfigArn', ], 'onlineEvaluationConfigId' => [ 'shape' => 'OnlineEvaluationConfigId', ], 'onlineEvaluationConfigName' => [ 'shape' => 'EvaluationConfigName', ], 'description' => [ 'shape' => 'EvaluationConfigDescription', ], 'status' => [ 'shape' => 'OnlineEvaluationConfigStatus', ], 'executionStatus' => [ 'shape' => 'OnlineEvaluationExecutionStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'failureReason' => [ 'shape' => 'String', ], 'insights' => [ 'shape' => 'InsightList', ], 'clusteringConfig' => [ 'shape' => 'ClusteringConfig', ], ], ], 'OnlineEvaluationConfigSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OnlineEvaluationConfigSummary', ], ], 'OnlineEvaluationExecutionStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'OutputConfig' => [ 'type' => 'structure', 'required' => [ 'cloudWatchConfig', ], 'members' => [ 'cloudWatchConfig' => [ 'shape' => 'CloudWatchOutputConfig', ], ], ], 'OverrideType' => [ 'type' => 'string', 'enum' => [ 'SEMANTIC_OVERRIDE', 'SUMMARY_OVERRIDE', 'USER_PREFERENCE_OVERRIDE', 'SELF_MANAGED', 'EPISODIC_OVERRIDE', ], ], 'PassthroughEndpoint' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'https://[a-zA-Z0-9\\-\\.]+(:[0-9]{1,5})?(/.*)?', ], 'PassthroughProtocolType' => [ 'type' => 'string', 'enum' => [ 'MCP', 'A2A', 'INFERENCE', 'CUSTOM', ], ], 'PassthroughTargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'endpoint', 'protocolType', ], 'members' => [ 'endpoint' => [ 'shape' => 'PassthroughEndpoint', ], 'protocolType' => [ 'shape' => 'PassthroughProtocolType', ], 'schema' => [ 'shape' => 'HttpApiSchemaConfiguration', ], 'stickinessConfiguration' => [ 'shape' => 'StickinessConfiguration', ], ], ], 'PaymentConnectorId' => [ 'type' => 'string', 'max' => 211, 'min' => 12, 'pattern' => '([0-9a-z][-]?){1,100}-[0-9a-z]{10}', ], 'PaymentConnectorName' => [ 'type' => 'string', 'max' => 48, 'min' => 1, 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'PaymentConnectorStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'UPDATING', 'DELETING', 'READY', 'CREATE_FAILED', 'UPDATE_FAILED', 'DELETE_FAILED', ], ], 'PaymentConnectorSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'PaymentConnectorSummary', ], ], 'PaymentConnectorSummary' => [ 'type' => 'structure', 'required' => [ 'paymentConnectorId', 'name', 'type', 'status', 'lastUpdatedAt', ], 'members' => [ 'paymentConnectorId' => [ 'shape' => 'PaymentConnectorId', ], 'name' => [ 'shape' => 'PaymentConnectorName', ], 'type' => [ 'shape' => 'PaymentConnectorType', ], 'status' => [ 'shape' => 'PaymentConnectorStatus', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'PaymentConnectorType' => [ 'type' => 'string', 'enum' => [ 'CoinbaseCDP', 'StripePrivy', ], ], 'PaymentCredentialProviderArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 69, 'pattern' => 'arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b|aws-iso-e|aws-iso-f|aws-eusc):(acps|bedrock-agentcore):[A-Za-z0-9-]{1,64}:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/paymentcredentialprovider/[a-zA-Z0-9-.]+', ], 'PaymentCredentialProviderArnType' => [ 'type' => 'string', 'pattern' => 'arn:(aws|aws-us-gov):acps:[A-Za-z0-9-]{1,64}:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/paymentcredentialprovider/[a-zA-Z0-9-.]+', ], 'PaymentCredentialProviderConfiguration' => [ 'type' => 'structure', 'required' => [ 'credentialProviderArn', ], 'members' => [ 'credentialProviderArn' => [ 'shape' => 'PaymentCredentialProviderArn', ], ], ], 'PaymentCredentialProviderItem' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderVendor', 'credentialProviderArn', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'PaymentCredentialProviderVendorType', ], 'credentialProviderArn' => [ 'shape' => 'PaymentCredentialProviderArnType', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'PaymentCredentialProviderVendorType' => [ 'type' => 'string', 'enum' => [ 'CoinbaseCDP', 'StripePrivy', ], ], 'PaymentCredentialProviders' => [ 'type' => 'list', 'member' => [ 'shape' => 'PaymentCredentialProviderItem', ], ], 'PaymentManagerArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 66, 'pattern' => 'arn:(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:payment-manager/([0-9a-z][-]?){1,48}-[a-z0-9]{10}', ], 'PaymentManagerId' => [ 'type' => 'string', 'max' => 211, 'min' => 12, 'pattern' => '([0-9a-z][-]?){1,100}-[0-9a-z]{10}', ], 'PaymentManagerName' => [ 'type' => 'string', 'max' => 48, 'min' => 1, 'pattern' => '[a-zA-Z][a-zA-Z0-9]{0,47}', ], 'PaymentManagerStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'UPDATING', 'DELETING', 'READY', 'CREATE_FAILED', 'UPDATE_FAILED', 'DELETE_FAILED', ], ], 'PaymentManagerSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'PaymentManagerSummary', ], ], 'PaymentManagerSummary' => [ 'type' => 'structure', 'required' => [ 'paymentManagerArn', 'paymentManagerId', 'name', 'authorizerType', 'roleArn', 'status', 'lastUpdatedAt', ], 'members' => [ 'paymentManagerArn' => [ 'shape' => 'PaymentManagerArn', ], 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', ], 'name' => [ 'shape' => 'PaymentManagerName', ], 'description' => [ 'shape' => 'PaymentsDescription', ], 'authorizerType' => [ 'shape' => 'PaymentsAuthorizerType', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'status' => [ 'shape' => 'PaymentManagerStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'PaymentProviderConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'coinbaseCdpConfiguration' => [ 'shape' => 'CoinbaseCdpConfigurationInput', ], 'stripePrivyConfiguration' => [ 'shape' => 'StripePrivyConfigurationInput', ], ], 'union' => true, ], 'PaymentProviderConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'coinbaseCdpConfiguration' => [ 'shape' => 'CoinbaseCdpConfigurationOutput', ], 'stripePrivyConfiguration' => [ 'shape' => 'StripePrivyConfigurationOutput', ], ], 'union' => true, ], 'PaymentsAuthorizerType' => [ 'type' => 'string', 'enum' => [ 'CUSTOM_JWT', 'AWS_IAM', ], ], 'PaymentsDescription' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\s]+', ], 'Policies' => [ 'type' => 'list', 'member' => [ 'shape' => 'Policy', ], 'max' => 100, 'min' => 0, ], 'Policy' => [ 'type' => 'structure', 'required' => [ 'policyId', 'name', 'policyEngineId', 'createdAt', 'updatedAt', 'policyArn', 'status', 'definition', 'statusReasons', ], 'members' => [ 'policyId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyName', ], 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'status' => [ 'shape' => 'PolicyStatus', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], 'definition' => [ 'shape' => 'PolicyDefinition', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'PolicyArn' => [ 'type' => 'string', 'max' => 203, 'min' => 96, 'pattern' => 'arn:aws[-a-z]{0,7}:bedrock-agentcore:[a-z0-9-]{9,15}:[0-9]{12}:policy-engine/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}/policy/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}', ], 'PolicyDefinition' => [ 'type' => 'structure', 'members' => [ 'cedar' => [ 'shape' => 'CedarPolicy', ], 'policyGeneration' => [ 'shape' => 'PolicyGenerationDetails', ], 'policy' => [ 'shape' => 'PolicyStatement', ], ], 'union' => true, ], 'PolicyEngine' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'name', 'createdAt', 'updatedAt', 'policyEngineArn', 'status', 'statusReasons', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyEngineName', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyEngineArn' => [ 'shape' => 'PolicyEngineArn', ], 'status' => [ 'shape' => 'PolicyEngineStatus', ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'PolicyEngineArn' => [ 'type' => 'string', 'max' => 136, 'min' => 76, 'pattern' => 'arn:aws[-a-z]{0,7}:bedrock-agentcore:[a-z0-9-]{9,15}:[0-9]{12}:policy-engine/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}', ], 'PolicyEngineName' => [ 'type' => 'string', 'max' => 48, 'min' => 1, 'pattern' => '[A-Za-z][A-Za-z0-9_]*', ], 'PolicyEngineStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'UPDATING', 'DELETING', 'CREATE_FAILED', 'UPDATE_FAILED', 'DELETE_FAILED', ], ], 'PolicyEngineSummary' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'name', 'createdAt', 'updatedAt', 'policyEngineArn', 'status', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyEngineName', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyEngineArn' => [ 'shape' => 'PolicyEngineArn', ], 'status' => [ 'shape' => 'PolicyEngineStatus', ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'PolicyEngineSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyEngineSummary', ], 'max' => 100, 'min' => 0, ], 'PolicyEngines' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyEngine', ], 'max' => 100, 'min' => 0, ], 'PolicyGeneration' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyGenerationId', 'name', 'policyGenerationArn', 'resource', 'createdAt', 'updatedAt', 'status', 'statusReasons', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'policyGenerationId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyGenerationName', ], 'policyGenerationArn' => [ 'shape' => 'PolicyGenerationArn', ], 'resource' => [ 'shape' => 'Resource', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PolicyGenerationStatus', ], 'findings' => [ 'shape' => 'String', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'PolicyGenerationArn' => [ 'type' => 'string', 'max' => 210, 'min' => 103, 'pattern' => 'arn:aws[-a-z]{0,7}:bedrock-agentcore:[a-z0-9-]{9,15}:[0-9]{12}:policy-engine/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}/policy-generation/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}', ], 'PolicyGenerationAsset' => [ 'type' => 'structure', 'required' => [ 'policyGenerationAssetId', 'rawTextFragment', 'findings', ], 'members' => [ 'policyGenerationAssetId' => [ 'shape' => 'ResourceId', ], 'definition' => [ 'shape' => 'PolicyDefinition', ], 'rawTextFragment' => [ 'shape' => 'NaturalLanguage', ], 'findings' => [ 'shape' => 'Findings', ], ], ], 'PolicyGenerationAssets' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyGenerationAsset', ], ], 'PolicyGenerationDetails' => [ 'type' => 'structure', 'required' => [ 'policyGenerationId', 'policyGenerationAssetId', ], 'members' => [ 'policyGenerationId' => [ 'shape' => 'ResourceId', ], 'policyGenerationAssetId' => [ 'shape' => 'ResourceId', ], ], ], 'PolicyGenerationName' => [ 'type' => 'string', 'max' => 48, 'min' => 1, 'pattern' => '[A-Za-z][A-Za-z0-9_]*', ], 'PolicyGenerationStatus' => [ 'type' => 'string', 'enum' => [ 'GENERATING', 'GENERATED', 'GENERATE_FAILED', 'DELETE_FAILED', ], ], 'PolicyGenerationSummary' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyGenerationId', 'name', 'policyGenerationArn', 'resource', 'createdAt', 'updatedAt', 'status', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'policyGenerationId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyGenerationName', ], 'policyGenerationArn' => [ 'shape' => 'PolicyGenerationArn', ], 'resource' => [ 'shape' => 'Resource', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PolicyGenerationStatus', ], 'findings' => [ 'shape' => 'String', ], ], ], 'PolicyGenerationSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyGenerationSummary', ], 'max' => 100, 'min' => 0, ], 'PolicyGenerations' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyGeneration', ], 'max' => 100, 'min' => 0, ], 'PolicyName' => [ 'type' => 'string', 'max' => 48, 'min' => 1, 'pattern' => '[A-Za-z][A-Za-z0-9_]*', ], 'PolicyStatement' => [ 'type' => 'structure', 'required' => [ 'statement', ], 'members' => [ 'statement' => [ 'shape' => 'Statement', ], ], ], 'PolicyStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'UPDATING', 'DELETING', 'CREATE_FAILED', 'UPDATE_FAILED', 'DELETE_FAILED', ], ], 'PolicyStatusReasons' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'PolicySummary' => [ 'type' => 'structure', 'required' => [ 'policyId', 'name', 'policyEngineId', 'createdAt', 'updatedAt', 'policyArn', 'status', ], 'members' => [ 'policyId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyName', ], 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'status' => [ 'shape' => 'PolicyStatus', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], ], ], 'PolicySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicySummary', ], 'max' => 100, 'min' => 0, ], 'PolicyValidationMode' => [ 'type' => 'string', 'enum' => [ 'FAIL_ON_ANY_FINDINGS', 'IGNORE_ALL_FINDINGS', ], ], 'PrincipalMatchOperator' => [ 'type' => 'string', 'enum' => [ 'StringEquals', 'StringLike', ], ], 'PrivateEndpoint' => [ 'type' => 'structure', 'members' => [ 'selfManagedLatticeResource' => [ 'shape' => 'SelfManagedLatticeResource', ], 'managedVpcResource' => [ 'shape' => 'ManagedVpcResource', ], ], 'union' => true, ], 'PrivateEndpointManagedResources' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedResourceDetails', ], ], 'PrivateEndpointOverride' => [ 'type' => 'structure', 'required' => [ 'domain', 'privateEndpoint', ], 'members' => [ 'domain' => [ 'shape' => 'PrivateEndpointOverrideDomain', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], ], ], 'PrivateEndpointOverrideDomain' => [ 'type' => 'string', 'max' => 253, 'min' => 1, ], 'PrivateEndpointOverrides' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrivateEndpointOverride', ], 'max' => 5, 'min' => 0, ], 'Prompt' => [ 'type' => 'string', 'max' => 30000, 'min' => 1, 'sensitive' => true, ], 'ProtocolConfiguration' => [ 'type' => 'structure', 'required' => [ 'serverProtocol', ], 'members' => [ 'serverProtocol' => [ 'shape' => 'ServerProtocol', ], ], ], 'ProviderPrefix' => [ 'type' => 'structure', 'members' => [ 'strip' => [ 'shape' => 'Boolean', ], 'separator' => [ 'shape' => 'ProviderPrefixSeparatorString', ], ], ], 'ProviderPrefixSeparatorString' => [ 'type' => 'string', 'max' => 1, 'min' => 1, ], 'PutResourcePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'policy', ], 'members' => [ 'resourceArn' => [ 'shape' => 'BedrockAgentcoreResourceArn', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'policy' => [ 'shape' => 'ResourcePolicyBody', ], ], ], 'PutResourcePolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policy', ], 'members' => [ 'policy' => [ 'shape' => 'ResourcePolicyBody', ], ], ], 'RatingScale' => [ 'type' => 'structure', 'members' => [ 'numerical' => [ 'shape' => 'NumericalScaleDefinitions', ], 'categorical' => [ 'shape' => 'CategoricalScaleDefinitions', ], ], 'sensitive' => true, 'union' => true, ], 'RecordIdentifier' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '(arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:registry/[a-zA-Z0-9]{12,16}/record/)?[a-zA-Z0-9]{12}', ], 'RecordingConfig' => [ 'type' => 'structure', 'members' => [ 'enabled' => [ 'shape' => 'Boolean', ], 's3Location' => [ 'shape' => 'S3Location', ], ], ], 'ReflectionConfiguration' => [ 'type' => 'structure', 'members' => [ 'customReflectionConfiguration' => [ 'shape' => 'CustomReflectionConfiguration', ], 'episodicReflectionConfiguration' => [ 'shape' => 'EpisodicReflectionConfiguration', ], ], 'union' => true, ], 'RegistryArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:registry/[a-zA-Z0-9]{12,16}', ], 'RegistryAuthorizerType' => [ 'type' => 'string', 'enum' => [ 'CUSTOM_JWT', 'AWS_IAM', ], ], 'RegistryId' => [ 'type' => 'string', 'max' => 16, 'min' => 12, 'pattern' => '[a-zA-Z0-9]{12,16}', ], 'RegistryIdentifier' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '(arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:registry/)?[a-zA-Z0-9]{12,16}', ], 'RegistryName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9][a-zA-Z0-9_\\-\\.\\/]*', ], 'RegistryRecordArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:registry/[a-zA-Z0-9]{12,16}/record/[a-zA-Z0-9]{12}', ], 'RegistryRecordCredentialProviderConfiguration' => [ 'type' => 'structure', 'required' => [ 'credentialProviderType', 'credentialProvider', ], 'members' => [ 'credentialProviderType' => [ 'shape' => 'RegistryRecordCredentialProviderType', ], 'credentialProvider' => [ 'shape' => 'RegistryRecordCredentialProviderUnion', ], ], ], 'RegistryRecordCredentialProviderConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegistryRecordCredentialProviderConfiguration', ], 'max' => 1, 'min' => 0, ], 'RegistryRecordCredentialProviderType' => [ 'type' => 'string', 'enum' => [ 'OAUTH', 'IAM', ], ], 'RegistryRecordCredentialProviderUnion' => [ 'type' => 'structure', 'members' => [ 'oauthCredentialProvider' => [ 'shape' => 'RegistryRecordOAuthCredentialProvider', ], 'iamCredentialProvider' => [ 'shape' => 'RegistryRecordIamCredentialProvider', ], ], 'union' => true, ], 'RegistryRecordIamCredentialProvider' => [ 'type' => 'structure', 'members' => [ 'roleArn' => [ 'shape' => 'IamRoleArn', ], 'service' => [ 'shape' => 'IamSigningServiceName', ], 'region' => [ 'shape' => 'IamSigningRegion', ], ], ], 'RegistryRecordId' => [ 'type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '[a-zA-Z0-9]{12}', ], 'RegistryRecordName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[a-zA-Z0-9][a-zA-Z0-9_\\-\\.\\/]*', ], 'RegistryRecordOAuthCredentialProvider' => [ 'type' => 'structure', 'required' => [ 'providerArn', ], 'members' => [ 'providerArn' => [ 'shape' => 'CredentialProviderArn', ], 'grantType' => [ 'shape' => 'RegistryRecordOAuthGrantType', ], 'scopes' => [ 'shape' => 'ScopeList', ], 'customParameters' => [ 'shape' => 'CustomParameterMap', ], ], ], 'RegistryRecordOAuthGrantType' => [ 'type' => 'string', 'enum' => [ 'CLIENT_CREDENTIALS', ], ], 'RegistryRecordStatus' => [ 'type' => 'string', 'enum' => [ 'DRAFT', 'PENDING_APPROVAL', 'APPROVED', 'REJECTED', 'DEPRECATED', 'CREATING', 'UPDATING', 'CREATE_FAILED', 'UPDATE_FAILED', ], ], 'RegistryRecordSummary' => [ 'type' => 'structure', 'required' => [ 'registryArn', 'recordArn', 'recordId', 'name', 'descriptorType', 'recordVersion', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'registryArn' => [ 'shape' => 'RegistryArn', ], 'recordArn' => [ 'shape' => 'RegistryRecordArn', ], 'recordId' => [ 'shape' => 'RegistryRecordId', ], 'name' => [ 'shape' => 'RegistryRecordName', ], 'description' => [ 'shape' => 'Description', ], 'descriptorType' => [ 'shape' => 'DescriptorType', ], 'recordVersion' => [ 'shape' => 'RegistryRecordVersion', ], 'status' => [ 'shape' => 'RegistryRecordStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'RegistryRecordSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegistryRecordSummary', ], ], 'RegistryRecordVersion' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[a-zA-Z0-9.-]+', ], 'RegistryStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'READY', 'UPDATING', 'CREATE_FAILED', 'UPDATE_FAILED', 'DELETING', 'DELETE_FAILED', ], ], 'RegistrySummary' => [ 'type' => 'structure', 'required' => [ 'name', 'registryId', 'registryArn', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'name' => [ 'shape' => 'RegistryName', ], 'description' => [ 'shape' => 'Description', ], 'registryId' => [ 'shape' => 'RegistryId', ], 'registryArn' => [ 'shape' => 'RegistryArn', ], 'authorizerType' => [ 'shape' => 'RegistryAuthorizerType', ], 'status' => [ 'shape' => 'RegistryStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'RegistrySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegistrySummary', ], ], 'RequestHeaderAllowlist' => [ 'type' => 'list', 'member' => [ 'shape' => 'HeaderName', ], 'max' => 20, 'min' => 1, ], 'RequestHeaderConfiguration' => [ 'type' => 'structure', 'members' => [ 'requestHeaderAllowlist' => [ 'shape' => 'RequestHeaderAllowlist', ], ], 'union' => true, ], 'RequiredProperties' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'Resource' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'BedrockAgentcoreResourceArn', ], ], 'union' => true, ], 'ResourceAssociationArn' => [ 'type' => 'string', 'pattern' => 'arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetworkresourceassociation/snra-[0-9a-f]{17}', ], 'ResourceConfigurationIdentifier' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => '((rcfg-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourceconfiguration/rcfg-[0-9a-z]{17}))', ], 'ResourceGatewayArn' => [ 'type' => 'string', 'pattern' => 'arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourcegateway/rgw-[0-9a-z]{17}', ], 'ResourceId' => [ 'type' => 'string', 'max' => 59, 'min' => 12, 'pattern' => '[A-Za-z][A-Za-z0-9_]*-[a-z0-9_]{10}', ], 'ResourceLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ResourceLocation' => [ 'type' => 'structure', 'members' => [ 's3' => [ 'shape' => 'S3Location', ], ], 'union' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'NonBlankString', ], ], 'error' => [ 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'ResourceOauth2ReturnUrlListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceOauth2ReturnUrlType', ], ], 'ResourceOauth2ReturnUrlType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '\\w+:(\\/?\\/?)[^\\s]+', ], 'ResourcePolicyBody' => [ 'type' => 'string', 'max' => 20480, 'min' => 1, ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'SYSTEM', 'CUSTOM', ], ], 'ResponseListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResponseType', ], ], 'ResponseType' => [ 'type' => 'string', ], 'RestApiMethod' => [ 'type' => 'string', 'enum' => [ 'GET', 'DELETE', 'HEAD', 'OPTIONS', 'PATCH', 'PUT', 'POST', ], ], 'RestApiMethods' => [ 'type' => 'list', 'member' => [ 'shape' => 'RestApiMethod', ], ], 'RoleArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/.+', ], 'RouteToTargetAction' => [ 'type' => 'structure', 'members' => [ 'staticRoute' => [ 'shape' => 'StaticRoute', ], 'weightedRoute' => [ 'shape' => 'WeightedRoute', ], ], 'union' => true, ], 'RoutingDomain' => [ 'type' => 'string', 'max' => 255, 'min' => 3, ], 'Rule' => [ 'type' => 'structure', 'required' => [ 'samplingConfig', ], 'members' => [ 'samplingConfig' => [ 'shape' => 'SamplingConfig', ], 'filters' => [ 'shape' => 'FilterList', ], 'sessionConfig' => [ 'shape' => 'SessionConfig', ], ], ], 'RuntimeArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:runtime/[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10}', ], 'RuntimeContainerUri' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '(([0-9]{12})\\.dkr\\.ecr\\.([a-z0-9-]+)\\.amazonaws\\.com(\\.cn)?|public\\.ecr\\.aws)/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(?::([^:@]{1,300}))?(?:@(.+))?', ], 'RuntimeMetadataConfiguration' => [ 'type' => 'structure', 'required' => [ 'requireMMDSV2', ], 'members' => [ 'requireMMDSV2' => [ 'shape' => 'Boolean', ], ], ], 'RuntimeQualifier' => [ 'type' => 'string', 'pattern' => '.*([1-9][0-9]{0,4})|([a-zA-Z][a-zA-Z0-9_]{0,47}).*', ], 'RuntimeTargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'RuntimeArn', ], 'qualifier' => [ 'shape' => 'RuntimeQualifier', ], 'schema' => [ 'shape' => 'HttpApiSchemaConfiguration', ], ], ], 'S3BucketUri' => [ 'type' => 'string', 'pattern' => 's3://.{1,2043}', ], 'S3Configuration' => [ 'type' => 'structure', 'members' => [ 'uri' => [ 'shape' => 'S3BucketUri', ], 'bucketOwnerAccountId' => [ 'shape' => 'AwsAccountId', ], ], ], 'S3FilesAccessPointArn' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => 'arn:aws[-a-z]*:s3files:[0-9a-z-:]+:file-system/fs-[0-9a-f]{17,40}/access-point/fsap-[0-9a-f]{17,40}', ], 'S3FilesAccessPointConfiguration' => [ 'type' => 'structure', 'required' => [ 'accessPointArn', 'mountPath', ], 'members' => [ 'accessPointArn' => [ 'shape' => 'S3FilesAccessPointArn', ], 'mountPath' => [ 'shape' => 'MountPath', ], ], ], 'S3Location' => [ 'type' => 'structure', 'required' => [ 'bucket', 'prefix', ], 'members' => [ 'bucket' => [ 'shape' => 'S3LocationBucketString', ], 'prefix' => [ 'shape' => 'S3LocationPrefixString', ], 'versionId' => [ 'shape' => 'S3LocationVersionIdString', ], ], ], 'S3LocationBucketString' => [ 'type' => 'string', 'pattern' => '[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]', ], 'S3LocationPrefixString' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'S3LocationVersionIdString' => [ 'type' => 'string', 'max' => 1024, 'min' => 3, ], 'S3Source' => [ 'type' => 'structure', 'required' => [ 's3Uri', ], 'members' => [ 's3Uri' => [ 'shape' => 'S3Uri', ], ], ], 'S3Uri' => [ 'type' => 'string', 'pattern' => 's3://[a-z0-9][a-z0-9.\\-]{1,61}[a-z0-9]/.{1,1024}', ], 'SalesforceOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'clientId', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], ], ], 'SalesforceOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], ], ], 'SamplingConfig' => [ 'type' => 'structure', 'required' => [ 'samplingPercentage', ], 'members' => [ 'samplingPercentage' => [ 'shape' => 'SamplingConfigSamplingPercentageDouble', ], ], ], 'SamplingConfigSamplingPercentageDouble' => [ 'type' => 'double', 'box' => true, 'max' => 100.0, 'min' => 0.01, ], 'SandboxName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'SchemaDefinition' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'SchemaType', ], 'properties' => [ 'shape' => 'SchemaProperties', ], 'required' => [ 'shape' => 'RequiredProperties', ], 'items' => [ 'shape' => 'SchemaDefinition', ], 'description' => [ 'shape' => 'String', ], ], ], 'SchemaProperties' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'SchemaDefinition', ], ], 'SchemaType' => [ 'type' => 'string', 'enum' => [ 'string', 'number', 'object', 'array', 'boolean', 'integer', ], ], 'SchemaVersion' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'ScopeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ScopeType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'ScopesListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScopeType', ], ], 'SearchType' => [ 'type' => 'string', 'enum' => [ 'SEMANTIC', ], ], 'Secret' => [ 'type' => 'structure', 'required' => [ 'secretArn', ], 'members' => [ 'secretArn' => [ 'shape' => 'SecretArn', ], ], ], 'SecretArn' => [ 'type' => 'string', 'pattern' => 'arn:(aws|aws-us-gov):secretsmanager:[A-Za-z0-9-]{1,64}:[0-9]{12}:secret:[a-zA-Z0-9-_/+=.@!]+', ], 'SecretIdType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'SecretJsonKeyType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'SecretReference' => [ 'type' => 'structure', 'required' => [ 'secretId', 'jsonKey', ], 'members' => [ 'secretId' => [ 'shape' => 'SecretIdType', ], 'jsonKey' => [ 'shape' => 'SecretJsonKeyType', ], ], ], 'SecretSourceType' => [ 'type' => 'string', 'enum' => [ 'MANAGED', 'EXTERNAL', ], ], 'SecretsManagerLocation' => [ 'type' => 'structure', 'required' => [ 'secretArn', ], 'members' => [ 'secretArn' => [ 'shape' => 'ToolSecretArn', ], ], ], 'SecurityGroupId' => [ 'type' => 'string', 'pattern' => 'sg-[0-9a-zA-Z]{8,17}', ], 'SecurityGroupIdentifier' => [ 'type' => 'string', 'pattern' => 'sg-(([0-9a-z]{8})|([0-9a-z]{17}))', ], 'SecurityGroupIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupIdentifier', ], 'max' => 5, 'min' => 0, ], 'SecurityGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', ], 'max' => 16, 'min' => 1, ], 'SelfManagedConfiguration' => [ 'type' => 'structure', 'required' => [ 'triggerConditions', 'invocationConfiguration', 'historicalContextWindowSize', ], 'members' => [ 'triggerConditions' => [ 'shape' => 'TriggerConditionsList', ], 'invocationConfiguration' => [ 'shape' => 'InvocationConfiguration', ], 'historicalContextWindowSize' => [ 'shape' => 'Integer', ], ], ], 'SelfManagedConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'invocationConfiguration', ], 'members' => [ 'triggerConditions' => [ 'shape' => 'TriggerConditionInputList', ], 'invocationConfiguration' => [ 'shape' => 'InvocationConfigurationInput', ], 'historicalContextWindowSize' => [ 'shape' => 'SelfManagedConfigurationInputHistoricalContextWindowSizeInteger', ], ], ], 'SelfManagedConfigurationInputHistoricalContextWindowSizeInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 50, 'min' => 0, ], 'SelfManagedLatticeResource' => [ 'type' => 'structure', 'members' => [ 'resourceConfigurationIdentifier' => [ 'shape' => 'ResourceConfigurationIdentifier', ], ], 'union' => true, ], 'SemanticConsolidationOverride' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'SemanticExtractionOverride' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'SemanticMemoryStrategyInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'SemanticOverrideConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'extraction' => [ 'shape' => 'SemanticOverrideExtractionConfigurationInput', ], 'consolidation' => [ 'shape' => 'SemanticOverrideConsolidationConfigurationInput', ], ], ], 'SemanticOverrideConsolidationConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'SemanticOverrideExtractionConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'SensitiveJson' => [ 'type' => 'structure', 'members' => [], 'document' => true, 'sensitive' => true, ], 'SensitiveText' => [ 'type' => 'string', 'min' => 1, 'sensitive' => true, ], 'ServerDefinition' => [ 'type' => 'structure', 'members' => [ 'schemaVersion' => [ 'shape' => 'SchemaVersion', ], 'inlineContent' => [ 'shape' => 'InlineContent', ], ], ], 'ServerProtocol' => [ 'type' => 'string', 'enum' => [ 'MCP', 'HTTP', 'A2A', 'AGUI', ], ], 'ServiceException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, 'retryable' => [ 'throttling' => false, ], ], 'ServiceName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[a-zA-Z0-9._-]+', ], 'ServiceQuotaExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'NonBlankString', ], ], 'error' => [ 'httpStatusCode' => 402, 'senderFault' => true, ], 'exception' => true, ], 'SessionConfig' => [ 'type' => 'structure', 'required' => [ 'sessionTimeoutMinutes', ], 'members' => [ 'sessionTimeoutMinutes' => [ 'shape' => 'SessionConfigSessionTimeoutMinutesInteger', ], ], ], 'SessionConfigSessionTimeoutMinutesInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 1440, 'min' => 1, ], 'SessionConfiguration' => [ 'type' => 'structure', 'members' => [ 'sessionTimeoutInSeconds' => [ 'shape' => 'SessionConfigurationSessionTimeoutInSecondsInteger', ], ], ], 'SessionConfigurationSessionTimeoutInSecondsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 28800, 'min' => 900, ], 'SessionStorageConfiguration' => [ 'type' => 'structure', 'required' => [ 'mountPath', ], 'members' => [ 'mountPath' => [ 'shape' => 'MountPath', ], ], ], 'SetTokenVaultCMKRequest' => [ 'type' => 'structure', 'required' => [ 'kmsConfiguration', ], 'members' => [ 'tokenVaultId' => [ 'shape' => 'TokenVaultIdType', ], 'kmsConfiguration' => [ 'shape' => 'KmsConfiguration', ], ], ], 'SetTokenVaultCMKResponse' => [ 'type' => 'structure', 'required' => [ 'tokenVaultId', 'kmsConfiguration', 'lastModifiedDate', ], 'members' => [ 'tokenVaultId' => [ 'shape' => 'TokenVaultIdType', ], 'kmsConfiguration' => [ 'shape' => 'KmsConfiguration', ], 'lastModifiedDate' => [ 'shape' => 'Timestamp', ], ], ], 'SkillDefinition' => [ 'type' => 'structure', 'members' => [ 'schemaVersion' => [ 'shape' => 'SchemaVersion', ], 'inlineContent' => [ 'shape' => 'InlineContent', ], ], ], 'SkillMdDefinition' => [ 'type' => 'structure', 'members' => [ 'inlineContent' => [ 'shape' => 'InlineContent', ], ], ], 'SlackOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'clientId', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], ], ], 'SlackOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], ], ], 'StartPolicyGenerationRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'resource', 'content', 'name', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'resource' => [ 'shape' => 'Resource', ], 'content' => [ 'shape' => 'Content', ], 'name' => [ 'shape' => 'PolicyGenerationName', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'StartPolicyGenerationResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyGenerationId', 'name', 'policyGenerationArn', 'resource', 'createdAt', 'updatedAt', 'status', 'statusReasons', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'policyGenerationId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyGenerationName', ], 'policyGenerationArn' => [ 'shape' => 'PolicyGenerationArn', ], 'resource' => [ 'shape' => 'Resource', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PolicyGenerationStatus', ], 'findings' => [ 'shape' => 'String', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'Statement' => [ 'type' => 'string', 'max' => 10000, 'min' => 35, ], 'StaticOverride' => [ 'type' => 'structure', 'required' => [ 'bundleArn', 'bundleVersion', ], 'members' => [ 'bundleArn' => [ 'shape' => 'GatewayConfigurationBundleArn', ], 'bundleVersion' => [ 'shape' => 'StaticOverrideBundleVersionString', ], ], ], 'StaticOverrideBundleVersionString' => [ 'type' => 'string', 'pattern' => '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}', ], 'StaticRoute' => [ 'type' => 'structure', 'required' => [ 'targetName', ], 'members' => [ 'targetName' => [ 'shape' => 'TargetName', ], ], ], 'Status' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'CREATE_FAILED', 'UPDATING', 'UPDATE_FAILED', 'READY', 'DELETING', 'DELETE_FAILED', ], ], 'StatusReason' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'StatusReasons' => [ 'type' => 'list', 'member' => [ 'shape' => 'StatusReason', ], 'max' => 100, 'min' => 0, ], 'StickinessConfiguration' => [ 'type' => 'structure', 'required' => [ 'identifier', ], 'members' => [ 'identifier' => [ 'shape' => 'StickinessConfigurationIdentifierString', ], 'timeout' => [ 'shape' => 'StickinessTimeout', ], ], ], 'StickinessConfigurationIdentifierString' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'StickinessTimeout' => [ 'type' => 'integer', 'box' => true, 'max' => 86400, 'min' => 1, ], 'StrategyConfiguration' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'OverrideType', ], 'extraction' => [ 'shape' => 'ExtractionConfiguration', ], 'consolidation' => [ 'shape' => 'ConsolidationConfiguration', ], 'reflection' => [ 'shape' => 'ReflectionConfiguration', ], 'selfManagedConfiguration' => [ 'shape' => 'SelfManagedConfiguration', ], ], ], 'StreamDeliveryResource' => [ 'type' => 'structure', 'members' => [ 'kinesis' => [ 'shape' => 'KinesisResource', ], ], 'union' => true, ], 'StreamDeliveryResources' => [ 'type' => 'structure', 'required' => [ 'resources', ], 'members' => [ 'resources' => [ 'shape' => 'StreamDeliveryResourcesList', ], ], ], 'StreamDeliveryResourcesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StreamDeliveryResource', ], 'max' => 1, 'min' => 0, ], 'StreamingConfiguration' => [ 'type' => 'structure', 'members' => [ 'enableResponseStreaming' => [ 'shape' => 'Boolean', ], ], ], 'String' => [ 'type' => 'string', ], 'StringListValidation' => [ 'type' => 'structure', 'members' => [ 'allowedValues' => [ 'shape' => 'AllowedStringListValuesList', ], 'maxItems' => [ 'shape' => 'StringListValidationMaxItemsInteger', ], ], ], 'StringListValidationMaxItemsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 5, 'min' => 1, ], 'StringValidation' => [ 'type' => 'structure', 'required' => [ 'allowedValues', ], 'members' => [ 'allowedValues' => [ 'shape' => 'AllowedStringValuesList', ], ], ], 'StripePrivyAppIdType' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-_]+', ], 'StripePrivyAuthorizationIdType' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-_]+', ], 'StripePrivyConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appId', 'authorizationId', ], 'members' => [ 'appId' => [ 'shape' => 'StripePrivyAppIdType', ], 'appSecret' => [ 'shape' => 'DefaultStripePrivyAppSecretType', ], 'appSecretSource' => [ 'shape' => 'SecretSourceType', ], 'appSecretConfig' => [ 'shape' => 'SecretReference', ], 'authorizationPrivateKey' => [ 'shape' => 'DefaultStripePrivyAuthorizationPrivateKeyType', ], 'authorizationPrivateKeySource' => [ 'shape' => 'SecretSourceType', ], 'authorizationPrivateKeyConfig' => [ 'shape' => 'SecretReference', ], 'authorizationId' => [ 'shape' => 'StripePrivyAuthorizationIdType', ], ], ], 'StripePrivyConfigurationOutput' => [ 'type' => 'structure', 'required' => [ 'appId', 'appSecretArn', 'authorizationPrivateKeyArn', 'authorizationId', ], 'members' => [ 'appId' => [ 'shape' => 'StripePrivyAppIdType', ], 'appSecretArn' => [ 'shape' => 'Secret', ], 'appSecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'appSecretSource' => [ 'shape' => 'SecretSourceType', ], 'authorizationPrivateKeyArn' => [ 'shape' => 'Secret', ], 'authorizationPrivateKeyJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'authorizationPrivateKeySource' => [ 'shape' => 'SecretSourceType', ], 'authorizationId' => [ 'shape' => 'StripePrivyAuthorizationIdType', ], ], ], 'SubmitRegistryRecordForApprovalRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', 'recordId', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], 'recordId' => [ 'shape' => 'RecordIdentifier', 'location' => 'uri', 'locationName' => 'recordId', ], ], ], 'SubmitRegistryRecordForApprovalResponse' => [ 'type' => 'structure', 'required' => [ 'registryArn', 'recordArn', 'recordId', 'status', 'updatedAt', ], 'members' => [ 'registryArn' => [ 'shape' => 'RegistryArn', ], 'recordArn' => [ 'shape' => 'RegistryRecordArn', ], 'recordId' => [ 'shape' => 'RegistryRecordId', ], 'status' => [ 'shape' => 'RegistryRecordStatus', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'SubnetId' => [ 'type' => 'string', 'pattern' => 'subnet-[0-9a-zA-Z]{8,17}', ], 'SubnetIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', ], ], 'Subnets' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', ], 'max' => 16, 'min' => 1, ], 'SummaryConsolidationOverride' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'SummaryMemoryStrategyInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'SummaryOverrideConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'consolidation' => [ 'shape' => 'SummaryOverrideConsolidationConfigurationInput', ], ], ], 'SummaryOverrideConsolidationConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'SynchronizationConfiguration' => [ 'type' => 'structure', 'members' => [ 'fromUrl' => [ 'shape' => 'FromUrlSynchronizationConfiguration', ], ], ], 'SynchronizationType' => [ 'type' => 'string', 'enum' => [ 'URL', ], ], 'SynchronizeGatewayTargetsRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'targetIdList', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'targetIdList' => [ 'shape' => 'TargetIdList', ], ], ], 'SynchronizeGatewayTargetsResponse' => [ 'type' => 'structure', 'members' => [ 'targets' => [ 'shape' => 'GatewayTargetList', ], ], ], 'SystemManagedBlock' => [ 'type' => 'structure', 'required' => [ 'managedBy', ], 'members' => [ 'managedBy' => [ 'shape' => 'String', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\s._:/=+@-]*', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 200, 'min' => 0, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'TaggableResourcesArn', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '[a-zA-Z0-9\\s._:/=+@-]*', ], 'TaggableResourcesArn' => [ 'type' => 'string', 'max' => 1011, 'min' => 20, 'pattern' => 'arn:(?:[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:([a-z-]+/[^/]+)(?:/[a-z-]+/[^/]+)*', ], 'TagsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'max' => 50, 'min' => 0, ], 'TargetConfiguration' => [ 'type' => 'structure', 'members' => [ 'mcp' => [ 'shape' => 'McpTargetConfiguration', ], 'http' => [ 'shape' => 'HttpTargetConfiguration', ], 'inference' => [ 'shape' => 'InferenceTargetConfiguration', ], ], 'union' => true, ], 'TargetDescription' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'sensitive' => true, ], 'TargetId' => [ 'type' => 'string', 'pattern' => '[0-9a-zA-Z]{10}', ], 'TargetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetId', ], 'max' => 1, 'min' => 1, ], 'TargetMaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 1000, 'min' => 1, ], 'TargetName' => [ 'type' => 'string', 'pattern' => '([0-9a-zA-Z][-]?){1,100}', 'sensitive' => true, ], 'TargetNextToken' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '\\S*', ], 'TargetProtocolType' => [ 'type' => 'string', 'enum' => [ 'MCP', 'HTTP', ], ], 'TargetResourcePriority' => [ 'type' => 'integer', 'box' => true, 'max' => 1000, 'min' => 0, ], 'TargetStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'UPDATING', 'UPDATE_UNSUCCESSFUL', 'DELETING', 'READY', 'FAILED', 'SYNCHRONIZING', 'SYNCHRONIZE_UNSUCCESSFUL', 'CREATE_PENDING_AUTH', 'UPDATE_PENDING_AUTH', 'SYNCHRONIZE_PENDING_AUTH', ], ], 'TargetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetSummary', ], ], 'TargetSummary' => [ 'type' => 'structure', 'required' => [ 'targetId', 'name', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'targetId' => [ 'shape' => 'TargetId', ], 'name' => [ 'shape' => 'TargetName', ], 'status' => [ 'shape' => 'TargetStatus', ], 'description' => [ 'shape' => 'TargetDescription', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'resourcePriority' => [ 'shape' => 'TargetResourcePriority', ], 'lastSynchronizedAt' => [ 'shape' => 'DateTimestamp', ], 'authorizationData' => [ 'shape' => 'AuthorizationData', ], 'targetType' => [ 'shape' => 'TargetType', ], 'listingMode' => [ 'shape' => 'ListingMode', ], ], ], 'TargetTrafficSplitEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetTrafficSplitEntry', ], 'max' => 2, 'min' => 2, ], 'TargetTrafficSplitEntry' => [ 'type' => 'structure', 'required' => [ 'name', 'weight', 'targetName', ], 'members' => [ 'name' => [ 'shape' => 'TargetTrafficSplitEntryNameString', ], 'weight' => [ 'shape' => 'TargetTrafficSplitEntryWeightInteger', ], 'targetName' => [ 'shape' => 'TargetName', ], 'description' => [ 'shape' => 'TargetTrafficSplitEntryDescriptionString', ], 'metadata' => [ 'shape' => 'TrafficSplitMetadataMap', ], ], ], 'TargetTrafficSplitEntryDescriptionString' => [ 'type' => 'string', 'max' => 200, 'min' => 1, ], 'TargetTrafficSplitEntryNameString' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9]([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?', ], 'TargetTrafficSplitEntryWeightInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 99, 'min' => 1, ], 'TargetType' => [ 'type' => 'string', 'enum' => [ 'OPEN_API_SCHEMA', 'SMITHY_MODEL', 'MCP_SERVER', 'LAMBDA', 'API_GATEWAY', 'CONNECTOR', 'AGENTCORE_RUNTIME', 'PASSTHROUGH', 'PROVIDER', ], ], 'Temperature' => [ 'type' => 'float', 'box' => true, 'max' => 2.0, 'min' => 0.0, ], 'TenantIdType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'ThrottledException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 429, 'senderFault' => true, ], 'exception' => true, 'retryable' => [ 'throttling' => false, ], ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'NonBlankString', ], ], 'error' => [ 'httpStatusCode' => 429, 'senderFault' => true, ], 'exception' => true, ], 'TimeBasedTrigger' => [ 'type' => 'structure', 'members' => [ 'idleSessionTimeout' => [ 'shape' => 'Integer', ], ], ], 'TimeBasedTriggerInput' => [ 'type' => 'structure', 'members' => [ 'idleSessionTimeout' => [ 'shape' => 'TimeBasedTriggerInputIdleSessionTimeoutInteger', ], ], ], 'TimeBasedTriggerInputIdleSessionTimeoutInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 3000, 'min' => 10, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TokenAuthMethod' => [ 'type' => 'string', 'pattern' => '(client_secret_post|client_secret_basic)', ], 'TokenBasedTrigger' => [ 'type' => 'structure', 'members' => [ 'tokenCount' => [ 'shape' => 'Integer', ], ], ], 'TokenBasedTriggerInput' => [ 'type' => 'structure', 'members' => [ 'tokenCount' => [ 'shape' => 'TokenBasedTriggerInputTokenCountInteger', ], ], ], 'TokenBasedTriggerInputTokenCountInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 500000, 'min' => 100, ], 'TokenEndpointAuthMethodsType' => [ 'type' => 'list', 'member' => [ 'shape' => 'TokenAuthMethod', ], 'max' => 2, 'min' => 1, ], 'TokenEndpointType' => [ 'type' => 'string', ], 'TokenExchangeGrantTypeConfigType' => [ 'type' => 'structure', 'required' => [ 'actorTokenContent', ], 'members' => [ 'actorTokenContent' => [ 'shape' => 'ActorTokenContentType', ], 'actorTokenScopes' => [ 'shape' => 'ScopesListType', ], ], ], 'TokenVaultIdType' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-_]+', ], 'ToolDefinition' => [ 'type' => 'structure', 'required' => [ 'name', 'description', 'inputSchema', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'inputSchema' => [ 'shape' => 'SchemaDefinition', ], 'outputSchema' => [ 'shape' => 'SchemaDefinition', ], ], 'sensitive' => true, ], 'ToolDefinitions' => [ 'type' => 'list', 'member' => [ 'shape' => 'ToolDefinition', ], ], 'ToolSchema' => [ 'type' => 'structure', 'members' => [ 's3' => [ 'shape' => 'S3Configuration', ], 'inlinePayload' => [ 'shape' => 'ToolDefinitions', ], ], 'union' => true, ], 'ToolSecretArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[a-z-]+)?:secretsmanager:[a-z0-9-]+:[0-9]{12}:secret:[a-zA-Z0-9/_+=.@-]+', ], 'ToolsDefinition' => [ 'type' => 'structure', 'members' => [ 'protocolVersion' => [ 'shape' => 'SchemaVersion', ], 'inlineContent' => [ 'shape' => 'InlineContent', ], ], ], 'TopK' => [ 'type' => 'integer', 'box' => true, 'max' => 500, 'min' => 0, ], 'TopP' => [ 'type' => 'float', 'box' => true, 'max' => 1.0, 'min' => 0.0, ], 'TrafficSplitEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficSplitEntry', ], 'max' => 2, 'min' => 2, ], 'TrafficSplitEntry' => [ 'type' => 'structure', 'required' => [ 'name', 'weight', 'configurationBundle', ], 'members' => [ 'name' => [ 'shape' => 'TrafficSplitEntryNameString', ], 'weight' => [ 'shape' => 'TrafficSplitEntryWeightInteger', ], 'configurationBundle' => [ 'shape' => 'ConfigurationBundleReference', ], 'description' => [ 'shape' => 'TrafficSplitEntryDescriptionString', ], 'metadata' => [ 'shape' => 'TrafficSplitMetadataMap', ], ], ], 'TrafficSplitEntryDescriptionString' => [ 'type' => 'string', 'max' => 200, 'min' => 1, ], 'TrafficSplitEntryNameString' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9]([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?', ], 'TrafficSplitEntryWeightInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 99, 'min' => 1, ], 'TrafficSplitMetadataKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TrafficSplitMetadataMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TrafficSplitMetadataKey', ], 'value' => [ 'shape' => 'TrafficSplitMetadataValue', ], 'max' => 25, 'min' => 0, ], 'TrafficSplitMetadataValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'TriggerCondition' => [ 'type' => 'structure', 'members' => [ 'messageBasedTrigger' => [ 'shape' => 'MessageBasedTrigger', ], 'tokenBasedTrigger' => [ 'shape' => 'TokenBasedTrigger', ], 'timeBasedTrigger' => [ 'shape' => 'TimeBasedTrigger', ], ], 'union' => true, ], 'TriggerConditionInput' => [ 'type' => 'structure', 'members' => [ 'messageBasedTrigger' => [ 'shape' => 'MessageBasedTriggerInput', ], 'tokenBasedTrigger' => [ 'shape' => 'TokenBasedTriggerInput', ], 'timeBasedTrigger' => [ 'shape' => 'TimeBasedTriggerInput', ], ], 'union' => true, ], 'TriggerConditionInputList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TriggerConditionInput', ], 'min' => 1, ], 'TriggerConditionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TriggerCondition', ], 'min' => 1, ], 'UnauthorizedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'NonBlankString', ], ], 'error' => [ 'httpStatusCode' => 401, 'senderFault' => true, ], 'exception' => true, ], 'Unit' => [ 'type' => 'structure', 'members' => [], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'TaggableResourcesArn', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'tagKeys' => [ 'shape' => 'TagKeyList', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateAgentRuntimeEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', 'endpointName', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'endpointName' => [ 'shape' => 'EndpointName', 'location' => 'uri', 'locationName' => 'endpointName', ], 'agentRuntimeVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'description' => [ 'shape' => 'AgentEndpointDescription', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'UpdateAgentRuntimeEndpointResponse' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeEndpointArn', 'agentRuntimeArn', 'status', 'createdAt', 'lastUpdatedAt', ], 'members' => [ 'liveVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'targetVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'agentRuntimeEndpointArn' => [ 'shape' => 'AgentRuntimeEndpointArn', ], 'agentRuntimeArn' => [ 'shape' => 'AgentRuntimeArn', ], 'status' => [ 'shape' => 'AgentRuntimeEndpointStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'UpdateAgentRuntimeRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', 'agentRuntimeArtifact', 'roleArn', 'networkConfiguration', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'agentRuntimeArtifact' => [ 'shape' => 'AgentRuntimeArtifact', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'description' => [ 'shape' => 'Description', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'requestHeaderConfiguration' => [ 'shape' => 'RequestHeaderConfiguration', ], 'protocolConfiguration' => [ 'shape' => 'ProtocolConfiguration', ], 'lifecycleConfiguration' => [ 'shape' => 'LifecycleConfiguration', ], 'metadataConfiguration' => [ 'shape' => 'RuntimeMetadataConfiguration', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariablesMap', ], 'filesystemConfigurations' => [ 'shape' => 'FilesystemConfigurations', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'UpdateAgentRuntimeResponse' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeArn', 'agentRuntimeId', 'agentRuntimeVersion', 'createdAt', 'lastUpdatedAt', 'status', ], 'members' => [ 'agentRuntimeArn' => [ 'shape' => 'AgentRuntimeArn', ], 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'agentRuntimeVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'AgentRuntimeStatus', ], ], ], 'UpdateApiKeyCredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'apiKey' => [ 'shape' => 'DefaultApiKeyType', ], 'apiKeySecretConfig' => [ 'shape' => 'SecretReference', ], 'apiKeySecretSource' => [ 'shape' => 'SecretSourceType', ], ], ], 'UpdateApiKeyCredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'apiKeySecretArn', 'name', 'credentialProviderArn', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'apiKeySecretArn' => [ 'shape' => 'Secret', ], 'apiKeySecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'apiKeySecretSource' => [ 'shape' => 'SecretSourceType', ], 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderArn' => [ 'shape' => 'ApiKeyCredentialProviderArnType', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'UpdateConfigurationBundleRequest' => [ 'type' => 'structure', 'required' => [ 'bundleId', ], 'members' => [ 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'bundleId' => [ 'shape' => 'ConfigurationBundleId', 'location' => 'uri', 'locationName' => 'bundleId', ], 'bundleName' => [ 'shape' => 'ConfigurationBundleName', ], 'description' => [ 'shape' => 'ConfigurationBundleDescription', ], 'components' => [ 'shape' => 'ComponentConfigurationMap', ], 'parentVersionIds' => [ 'shape' => 'ConfigurationBundleVersionList', ], 'branchName' => [ 'shape' => 'BranchName', ], 'commitMessage' => [ 'shape' => 'UpdateConfigurationBundleRequestCommitMessageString', ], 'createdBy' => [ 'shape' => 'VersionCreatedBySource', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'UpdateConfigurationBundleRequestCommitMessageString' => [ 'type' => 'string', 'max' => 500, 'min' => 1, ], 'UpdateConfigurationBundleResponse' => [ 'type' => 'structure', 'required' => [ 'bundleArn', 'bundleId', 'versionId', 'updatedAt', ], 'members' => [ 'bundleArn' => [ 'shape' => 'ConfigurationBundleArn', ], 'bundleId' => [ 'shape' => 'ConfigurationBundleId', ], 'versionId' => [ 'shape' => 'ConfigurationBundleVersion', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'UpdateDatasetExamplesRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', 'examples', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'examples' => [ 'shape' => 'UpdateDatasetExamplesRequestExamplesList', ], ], ], 'UpdateDatasetExamplesRequestExamplesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SensitiveJson', ], 'max' => 1000, 'min' => 1, ], 'UpdateDatasetExamplesResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'status', 'updatedCount', 'updatedAt', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'updatedCount' => [ 'shape' => 'Long', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'UpdateDatasetRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'description' => [ 'shape' => 'UpdateDatasetRequestDescriptionString', ], ], ], 'UpdateDatasetRequestDescriptionString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, ], 'UpdateDatasetResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'updatedAt', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'UpdateEvaluatorRequest' => [ 'type' => 'structure', 'required' => [ 'evaluatorId', ], 'members' => [ 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'evaluatorId' => [ 'shape' => 'EvaluatorId', 'location' => 'uri', 'locationName' => 'evaluatorId', ], 'description' => [ 'shape' => 'EvaluatorDescription', ], 'evaluatorConfig' => [ 'shape' => 'EvaluatorConfig', ], 'level' => [ 'shape' => 'EvaluatorLevel', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'UpdateEvaluatorResponse' => [ 'type' => 'structure', 'required' => [ 'evaluatorArn', 'evaluatorId', 'updatedAt', 'status', ], 'members' => [ 'evaluatorArn' => [ 'shape' => 'EvaluatorArn', ], 'evaluatorId' => [ 'shape' => 'EvaluatorId', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'EvaluatorStatus', ], ], ], 'UpdateGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'name', 'roleArn', 'authorizerType', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'name' => [ 'shape' => 'GatewayName', ], 'description' => [ 'shape' => 'GatewayDescription', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'protocolType' => [ 'shape' => 'GatewayProtocolType', ], 'protocolConfiguration' => [ 'shape' => 'GatewayProtocolConfiguration', ], 'authorizerType' => [ 'shape' => 'AuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'customTransformConfiguration' => [ 'shape' => 'CustomTransformConfiguration', ], 'interceptorConfigurations' => [ 'shape' => 'GatewayInterceptorConfigurations', ], 'policyEngineConfiguration' => [ 'shape' => 'GatewayPolicyEngineConfiguration', ], 'exceptionLevel' => [ 'shape' => 'ExceptionLevel', ], 'wafConfiguration' => [ 'shape' => 'WafConfiguration', ], ], ], 'UpdateGatewayResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', 'gatewayId', 'createdAt', 'updatedAt', 'status', 'name', 'authorizerType', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'gatewayId' => [ 'shape' => 'GatewayId', ], 'gatewayUrl' => [ 'shape' => 'GatewayUrl', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'GatewayStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], 'name' => [ 'shape' => 'GatewayName', ], 'description' => [ 'shape' => 'GatewayDescription', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'protocolType' => [ 'shape' => 'GatewayProtocolType', ], 'protocolConfiguration' => [ 'shape' => 'GatewayProtocolConfiguration', ], 'authorizerType' => [ 'shape' => 'AuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'customTransformConfiguration' => [ 'shape' => 'CustomTransformConfiguration', ], 'interceptorConfigurations' => [ 'shape' => 'GatewayInterceptorConfigurations', ], 'policyEngineConfiguration' => [ 'shape' => 'GatewayPolicyEngineConfiguration', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'exceptionLevel' => [ 'shape' => 'ExceptionLevel', ], 'webAclArn' => [ 'shape' => 'WebAclArn', ], 'wafConfiguration' => [ 'shape' => 'WafConfiguration', ], ], ], 'UpdateGatewayRuleRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'ruleId', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'ruleId' => [ 'shape' => 'GatewayRuleId', 'location' => 'uri', 'locationName' => 'ruleId', ], 'priority' => [ 'shape' => 'GatewayRulePriority', ], 'conditions' => [ 'shape' => 'Conditions', ], 'actions' => [ 'shape' => 'Actions', ], 'description' => [ 'shape' => 'GatewayRuleDescription', ], ], ], 'UpdateGatewayRuleResponse' => [ 'type' => 'structure', 'required' => [ 'ruleId', 'gatewayArn', 'priority', 'actions', 'createdAt', 'status', ], 'members' => [ 'ruleId' => [ 'shape' => 'GatewayRuleId', ], 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'priority' => [ 'shape' => 'GatewayRulePriority', ], 'conditions' => [ 'shape' => 'Conditions', ], 'actions' => [ 'shape' => 'Actions', ], 'description' => [ 'shape' => 'GatewayRuleDescription', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'GatewayRuleStatus', ], 'system' => [ 'shape' => 'SystemManagedBlock', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'UpdateGatewayTargetRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'targetId', 'targetConfiguration', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'targetId' => [ 'shape' => 'TargetId', 'location' => 'uri', 'locationName' => 'targetId', ], 'name' => [ 'shape' => 'TargetName', ], 'description' => [ 'shape' => 'TargetDescription', ], 'targetConfiguration' => [ 'shape' => 'TargetConfiguration', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialProviderConfigurations', ], 'metadataConfiguration' => [ 'shape' => 'MetadataConfiguration', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], ], ], 'UpdateGatewayTargetResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', 'targetId', 'createdAt', 'updatedAt', 'status', 'name', 'targetConfiguration', 'credentialProviderConfigurations', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'targetId' => [ 'shape' => 'TargetId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'TargetStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], 'name' => [ 'shape' => 'TargetName', ], 'description' => [ 'shape' => 'TargetDescription', ], 'targetConfiguration' => [ 'shape' => 'TargetConfiguration', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialProviderConfigurations', ], 'lastSynchronizedAt' => [ 'shape' => 'DateTimestamp', ], 'metadataConfiguration' => [ 'shape' => 'MetadataConfiguration', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], 'privateEndpointManagedResources' => [ 'shape' => 'PrivateEndpointManagedResources', ], 'authorizationData' => [ 'shape' => 'AuthorizationData', ], 'protocolType' => [ 'shape' => 'TargetProtocolType', ], ], ], 'UpdateHarnessEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', 'endpointName', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'endpointName' => [ 'shape' => 'HarnessEndpointName', 'location' => 'uri', 'locationName' => 'endpointName', ], 'targetVersion' => [ 'shape' => 'HarnessVersion', ], 'description' => [ 'shape' => 'HarnessEndpointDescription', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'UpdateHarnessEndpointResponse' => [ 'type' => 'structure', 'required' => [ 'endpoint', ], 'members' => [ 'endpoint' => [ 'shape' => 'HarnessEndpoint', ], ], ], 'UpdateHarnessRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'executionRoleArn' => [ 'shape' => 'RoleArn', ], 'environment' => [ 'shape' => 'HarnessEnvironmentProviderRequest', ], 'environmentArtifact' => [ 'shape' => 'UpdatedHarnessEnvironmentArtifact', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariablesMap', ], 'authorizerConfiguration' => [ 'shape' => 'UpdatedAuthorizerConfiguration', ], 'model' => [ 'shape' => 'HarnessModelConfiguration', ], 'systemPrompt' => [ 'shape' => 'HarnessSystemPrompt', ], 'tools' => [ 'shape' => 'HarnessTools', ], 'skills' => [ 'shape' => 'HarnessSkills', ], 'allowedTools' => [ 'shape' => 'HarnessAllowedTools', ], 'memory' => [ 'shape' => 'UpdatedHarnessMemoryConfiguration', ], 'truncation' => [ 'shape' => 'HarnessTruncationConfiguration', ], 'maxIterations' => [ 'shape' => 'Integer', ], 'maxTokens' => [ 'shape' => 'Integer', ], 'timeoutSeconds' => [ 'shape' => 'Integer', ], ], ], 'UpdateHarnessResponse' => [ 'type' => 'structure', 'required' => [ 'harness', ], 'members' => [ 'harness' => [ 'shape' => 'Harness', ], ], ], 'UpdateMemoryInput' => [ 'type' => 'structure', 'required' => [ 'memoryId', ], 'members' => [ 'clientToken' => [ 'shape' => 'UpdateMemoryInputClientTokenString', 'idempotencyToken' => true, ], 'memoryId' => [ 'shape' => 'MemoryId', 'location' => 'uri', 'locationName' => 'memoryId', ], 'description' => [ 'shape' => 'Description', ], 'eventExpiryDuration' => [ 'shape' => 'UpdateMemoryInputEventExpiryDurationInteger', ], 'memoryExecutionRoleArn' => [ 'shape' => 'Arn', ], 'memoryStrategies' => [ 'shape' => 'ModifyMemoryStrategies', ], 'addIndexedKeys' => [ 'shape' => 'IndexedKeysList', ], 'streamDeliveryResources' => [ 'shape' => 'StreamDeliveryResources', ], ], ], 'UpdateMemoryInputClientTokenString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, ], 'UpdateMemoryInputEventExpiryDurationInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 365, 'min' => 3, ], 'UpdateMemoryOutput' => [ 'type' => 'structure', 'members' => [ 'memory' => [ 'shape' => 'Memory', ], ], ], 'UpdateOauth2CredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderVendor', 'oauth2ProviderConfigInput', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'CredentialProviderVendorType', ], 'oauth2ProviderConfigInput' => [ 'shape' => 'Oauth2ProviderConfigInput', ], ], ], 'UpdateOauth2CredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'clientSecretArn', 'name', 'credentialProviderVendor', 'credentialProviderArn', 'oauth2ProviderConfigOutput', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'clientSecretArn' => [ 'shape' => 'Secret', ], 'clientSecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'CredentialProviderVendorType', ], 'credentialProviderArn' => [ 'shape' => 'CredentialProviderArnType', ], 'callbackUrl' => [ 'shape' => 'String', ], 'oauth2ProviderConfigOutput' => [ 'shape' => 'Oauth2ProviderConfigOutput', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'Status', ], ], ], 'UpdateOnlineEvaluationConfigRequest' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigId', ], 'members' => [ 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'onlineEvaluationConfigId' => [ 'shape' => 'OnlineEvaluationConfigId', 'location' => 'uri', 'locationName' => 'onlineEvaluationConfigId', ], 'description' => [ 'shape' => 'EvaluationConfigDescription', ], 'rule' => [ 'shape' => 'Rule', ], 'dataSourceConfig' => [ 'shape' => 'DataSourceConfig', ], 'evaluators' => [ 'shape' => 'EvaluatorList', ], 'insights' => [ 'shape' => 'InsightList', ], 'clusteringConfig' => [ 'shape' => 'ClusteringConfig', ], 'evaluationExecutionRoleArn' => [ 'shape' => 'RoleArn', ], 'executionStatus' => [ 'shape' => 'OnlineEvaluationExecutionStatus', ], ], ], 'UpdateOnlineEvaluationConfigResponse' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigArn', 'onlineEvaluationConfigId', 'updatedAt', 'status', 'executionStatus', ], 'members' => [ 'onlineEvaluationConfigArn' => [ 'shape' => 'OnlineEvaluationConfigArn', ], 'onlineEvaluationConfigId' => [ 'shape' => 'OnlineEvaluationConfigId', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'OnlineEvaluationConfigStatus', ], 'executionStatus' => [ 'shape' => 'OnlineEvaluationExecutionStatus', ], 'failureReason' => [ 'shape' => 'String', ], ], ], 'UpdatePaymentConnectorRequest' => [ 'type' => 'structure', 'required' => [ 'paymentManagerId', 'paymentConnectorId', ], 'members' => [ 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', 'location' => 'uri', 'locationName' => 'paymentManagerId', ], 'paymentConnectorId' => [ 'shape' => 'PaymentConnectorId', 'location' => 'uri', 'locationName' => 'paymentConnectorId', ], 'description' => [ 'shape' => 'PaymentsDescription', ], 'type' => [ 'shape' => 'PaymentConnectorType', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialsProviderConfigurations', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'UpdatePaymentConnectorResponse' => [ 'type' => 'structure', 'required' => [ 'paymentConnectorId', 'paymentManagerId', 'name', 'type', 'credentialProviderConfigurations', 'lastUpdatedAt', 'status', ], 'members' => [ 'paymentConnectorId' => [ 'shape' => 'PaymentConnectorId', ], 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', ], 'name' => [ 'shape' => 'PaymentConnectorName', ], 'type' => [ 'shape' => 'PaymentConnectorType', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialsProviderConfigurations', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PaymentConnectorStatus', ], ], ], 'UpdatePaymentCredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderVendor', 'providerConfigurationInput', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'PaymentCredentialProviderVendorType', ], 'providerConfigurationInput' => [ 'shape' => 'PaymentProviderConfigurationInput', ], ], ], 'UpdatePaymentCredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderVendor', 'credentialProviderArn', 'providerConfigurationOutput', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'PaymentCredentialProviderVendorType', ], 'credentialProviderArn' => [ 'shape' => 'PaymentCredentialProviderArnType', ], 'providerConfigurationOutput' => [ 'shape' => 'PaymentProviderConfigurationOutput', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'UpdatePaymentManagerRequest' => [ 'type' => 'structure', 'required' => [ 'paymentManagerId', ], 'members' => [ 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', 'location' => 'uri', 'locationName' => 'paymentManagerId', ], 'description' => [ 'shape' => 'PaymentsDescription', ], 'authorizerType' => [ 'shape' => 'PaymentsAuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'UpdatePaymentManagerResponse' => [ 'type' => 'structure', 'required' => [ 'paymentManagerArn', 'paymentManagerId', 'name', 'authorizerType', 'roleArn', 'lastUpdatedAt', 'status', ], 'members' => [ 'paymentManagerArn' => [ 'shape' => 'PaymentManagerArn', ], 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', ], 'name' => [ 'shape' => 'PaymentManagerName', ], 'authorizerType' => [ 'shape' => 'PaymentsAuthorizerType', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PaymentManagerStatus', ], ], ], 'UpdatePolicyEngineRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'description' => [ 'shape' => 'UpdatedDescription', ], ], ], 'UpdatePolicyEngineResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'name', 'createdAt', 'updatedAt', 'policyEngineArn', 'status', 'statusReasons', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyEngineName', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyEngineArn' => [ 'shape' => 'PolicyEngineArn', ], 'status' => [ 'shape' => 'PolicyEngineStatus', ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'UpdatePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyId', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'policyId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyId', ], 'description' => [ 'shape' => 'UpdatedDescription', ], 'definition' => [ 'shape' => 'PolicyDefinition', ], 'validationMode' => [ 'shape' => 'PolicyValidationMode', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], ], ], 'UpdatePolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policyId', 'name', 'policyEngineId', 'createdAt', 'updatedAt', 'policyArn', 'status', 'definition', 'statusReasons', ], 'members' => [ 'policyId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyName', ], 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'status' => [ 'shape' => 'PolicyStatus', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], 'definition' => [ 'shape' => 'PolicyDefinition', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'UpdateRegistryRecordRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', 'recordId', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], 'recordId' => [ 'shape' => 'RecordIdentifier', 'location' => 'uri', 'locationName' => 'recordId', ], 'name' => [ 'shape' => 'RegistryRecordName', ], 'description' => [ 'shape' => 'UpdatedDescription', ], 'descriptorType' => [ 'shape' => 'DescriptorType', ], 'descriptors' => [ 'shape' => 'UpdatedDescriptors', ], 'recordVersion' => [ 'shape' => 'RegistryRecordVersion', ], 'synchronizationType' => [ 'shape' => 'UpdatedSynchronizationType', ], 'synchronizationConfiguration' => [ 'shape' => 'UpdatedSynchronizationConfiguration', ], 'triggerSynchronization' => [ 'shape' => 'Boolean', ], ], ], 'UpdateRegistryRecordResponse' => [ 'type' => 'structure', 'required' => [ 'registryArn', 'recordArn', 'recordId', 'name', 'descriptorType', 'descriptors', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'registryArn' => [ 'shape' => 'RegistryArn', ], 'recordArn' => [ 'shape' => 'RegistryRecordArn', ], 'recordId' => [ 'shape' => 'RegistryRecordId', ], 'name' => [ 'shape' => 'RegistryRecordName', ], 'description' => [ 'shape' => 'Description', ], 'descriptorType' => [ 'shape' => 'DescriptorType', ], 'descriptors' => [ 'shape' => 'Descriptors', ], 'recordVersion' => [ 'shape' => 'RegistryRecordVersion', ], 'status' => [ 'shape' => 'RegistryRecordStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'statusReason' => [ 'shape' => 'String', ], 'synchronizationType' => [ 'shape' => 'SynchronizationType', ], 'synchronizationConfiguration' => [ 'shape' => 'SynchronizationConfiguration', ], ], ], 'UpdateRegistryRecordStatusRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', 'recordId', 'status', 'statusReason', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], 'recordId' => [ 'shape' => 'RecordIdentifier', 'location' => 'uri', 'locationName' => 'recordId', ], 'status' => [ 'shape' => 'RegistryRecordStatus', ], 'statusReason' => [ 'shape' => 'UpdateRegistryRecordStatusRequestStatusReasonString', ], ], ], 'UpdateRegistryRecordStatusRequestStatusReasonString' => [ 'type' => 'string', 'max' => 255, 'min' => 0, ], 'UpdateRegistryRecordStatusResponse' => [ 'type' => 'structure', 'required' => [ 'registryArn', 'recordArn', 'recordId', 'status', 'statusReason', 'updatedAt', ], 'members' => [ 'registryArn' => [ 'shape' => 'RegistryArn', ], 'recordArn' => [ 'shape' => 'RegistryRecordArn', ], 'recordId' => [ 'shape' => 'RegistryRecordId', ], 'status' => [ 'shape' => 'RegistryRecordStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'UpdateRegistryRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], 'name' => [ 'shape' => 'RegistryName', ], 'description' => [ 'shape' => 'UpdatedDescription', ], 'authorizerConfiguration' => [ 'shape' => 'UpdatedAuthorizerConfiguration', ], 'approvalConfiguration' => [ 'shape' => 'UpdatedApprovalConfiguration', ], ], ], 'UpdateRegistryResponse' => [ 'type' => 'structure', 'required' => [ 'name', 'registryId', 'registryArn', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'name' => [ 'shape' => 'RegistryName', ], 'description' => [ 'shape' => 'Description', ], 'registryId' => [ 'shape' => 'RegistryId', ], 'registryArn' => [ 'shape' => 'RegistryArn', ], 'authorizerType' => [ 'shape' => 'RegistryAuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'approvalConfiguration' => [ 'shape' => 'ApprovalConfiguration', ], 'status' => [ 'shape' => 'RegistryStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'UpdateWorkloadIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'WorkloadIdentityNameType', ], 'allowedResourceOauth2ReturnUrls' => [ 'shape' => 'ResourceOauth2ReturnUrlListType', ], ], ], 'UpdateWorkloadIdentityResponse' => [ 'type' => 'structure', 'required' => [ 'name', 'workloadIdentityArn', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'name' => [ 'shape' => 'WorkloadIdentityNameType', ], 'workloadIdentityArn' => [ 'shape' => 'WorkloadIdentityArnType', ], 'allowedResourceOauth2ReturnUrls' => [ 'shape' => 'ResourceOauth2ReturnUrlListType', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'UpdatedA2aDescriptor' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'A2aDescriptor', ], ], ], 'UpdatedAgentSkillsDescriptor' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'UpdatedAgentSkillsDescriptorFields', ], ], ], 'UpdatedAgentSkillsDescriptorFields' => [ 'type' => 'structure', 'members' => [ 'skillMd' => [ 'shape' => 'UpdatedSkillMdDefinition', ], 'skillDefinition' => [ 'shape' => 'UpdatedSkillDefinition', ], ], ], 'UpdatedApprovalConfiguration' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'ApprovalConfiguration', ], ], ], 'UpdatedAuthorizerConfiguration' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'AuthorizerConfiguration', ], ], ], 'UpdatedCustomDescriptor' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'CustomDescriptor', ], ], ], 'UpdatedDescription' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'Description', ], ], ], 'UpdatedDescriptors' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'UpdatedDescriptorsUnion', ], ], ], 'UpdatedDescriptorsUnion' => [ 'type' => 'structure', 'members' => [ 'mcp' => [ 'shape' => 'UpdatedMcpDescriptor', ], 'a2a' => [ 'shape' => 'UpdatedA2aDescriptor', ], 'custom' => [ 'shape' => 'UpdatedCustomDescriptor', ], 'agentSkills' => [ 'shape' => 'UpdatedAgentSkillsDescriptor', ], ], ], 'UpdatedHarnessEnvironmentArtifact' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'HarnessEnvironmentArtifact', ], ], ], 'UpdatedHarnessMemoryConfiguration' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'HarnessMemoryConfiguration', ], ], ], 'UpdatedMcpDescriptor' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'UpdatedMcpDescriptorFields', ], ], ], 'UpdatedMcpDescriptorFields' => [ 'type' => 'structure', 'members' => [ 'server' => [ 'shape' => 'UpdatedServerDefinition', ], 'tools' => [ 'shape' => 'UpdatedToolsDefinition', ], ], ], 'UpdatedServerDefinition' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'ServerDefinition', ], ], ], 'UpdatedSkillDefinition' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'SkillDefinition', ], ], ], 'UpdatedSkillMdDefinition' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'SkillMdDefinition', ], ], ], 'UpdatedSynchronizationConfiguration' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'SynchronizationConfiguration', ], ], ], 'UpdatedSynchronizationType' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'SynchronizationType', ], ], ], 'UpdatedToolsDefinition' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'ToolsDefinition', ], ], ], 'UserPreferenceConsolidationOverride' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'UserPreferenceExtractionOverride' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'UserPreferenceMemoryStrategyInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'UserPreferenceOverrideConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'extraction' => [ 'shape' => 'UserPreferenceOverrideExtractionConfigurationInput', ], 'consolidation' => [ 'shape' => 'UserPreferenceOverrideConsolidationConfigurationInput', ], ], ], 'UserPreferenceOverrideConsolidationConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'UserPreferenceOverrideExtractionConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'Validation' => [ 'type' => 'structure', 'members' => [ 'stringValidation' => [ 'shape' => 'StringValidation', ], 'stringListValidation' => [ 'shape' => 'StringListValidation', ], 'numberValidation' => [ 'shape' => 'NumberValidation', ], ], 'union' => true, ], 'ValidationException' => [ 'type' => 'structure', 'required' => [ 'message', 'reason', ], 'members' => [ 'message' => [ 'shape' => 'String', ], 'reason' => [ 'shape' => 'ValidationExceptionReason', ], 'fieldList' => [ 'shape' => 'ValidationExceptionFieldList', ], ], 'error' => [ 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ValidationExceptionField' => [ 'type' => 'structure', 'required' => [ 'name', 'message', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], ], 'ValidationExceptionFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValidationExceptionField', ], ], 'ValidationExceptionReason' => [ 'type' => 'string', 'enum' => [ 'CannotParse', 'FieldValidationFailed', 'IdempotentParameterMismatchException', 'EventInOtherSession', 'ResourceConflict', ], ], 'VersionCreatedBySource' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'arn' => [ 'shape' => 'String', ], ], ], 'VersionFilter' => [ 'type' => 'structure', 'members' => [ 'branchName' => [ 'shape' => 'BranchName', ], 'createdByName' => [ 'shape' => 'String', ], 'latestPerBranch' => [ 'shape' => 'Boolean', ], ], ], 'VersionLineageMetadata' => [ 'type' => 'structure', 'members' => [ 'parentVersionIds' => [ 'shape' => 'ConfigurationBundleVersionList', ], 'branchName' => [ 'shape' => 'BranchName', ], 'createdBy' => [ 'shape' => 'VersionCreatedBySource', ], 'commitMessage' => [ 'shape' => 'VersionLineageMetadataCommitMessageString', ], ], ], 'VersionLineageMetadataCommitMessageString' => [ 'type' => 'string', 'max' => 500, 'min' => 1, ], 'VpcConfig' => [ 'type' => 'structure', 'required' => [ 'securityGroups', 'subnets', ], 'members' => [ 'securityGroups' => [ 'shape' => 'SecurityGroups', ], 'subnets' => [ 'shape' => 'Subnets', ], 'requireServiceS3Endpoint' => [ 'shape' => 'Boolean', ], ], ], 'VpcIdentifier' => [ 'type' => 'string', 'pattern' => 'vpc-(([0-9a-z]{8})|([0-9a-z]{17}))', ], 'WafConfiguration' => [ 'type' => 'structure', 'members' => [ 'failureMode' => [ 'shape' => 'WafFailureMode', ], ], ], 'WafFailureMode' => [ 'type' => 'string', 'enum' => [ 'FAIL_CLOSE', 'FAIL_OPEN', ], ], 'WebAclArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:[a-z0-9\\-]+:wafv2:[a-z0-9\\-]+:[0-9]{12}:regional/webacl/.+', ], 'WeightedOverride' => [ 'type' => 'structure', 'required' => [ 'trafficSplit', ], 'members' => [ 'trafficSplit' => [ 'shape' => 'TrafficSplitEntries', ], ], ], 'WeightedRoute' => [ 'type' => 'structure', 'required' => [ 'trafficSplit', ], 'members' => [ 'trafficSplit' => [ 'shape' => 'TargetTrafficSplitEntries', ], ], ], 'WorkloadIdentityArn' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'WorkloadIdentityArnType' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'WorkloadIdentityDetails' => [ 'type' => 'structure', 'required' => [ 'workloadIdentityArn', ], 'members' => [ 'workloadIdentityArn' => [ 'shape' => 'WorkloadIdentityArn', ], ], ], 'WorkloadIdentityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WorkloadIdentityType', ], ], 'WorkloadIdentityNameListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'WorkloadIdentityNameType', ], 'max' => 10, 'min' => 1, ], 'WorkloadIdentityNameType' => [ 'type' => 'string', 'max' => 255, 'min' => 3, 'pattern' => '[A-Za-z0-9_.-]+', ], 'WorkloadIdentityType' => [ 'type' => 'structure', 'required' => [ 'name', 'workloadIdentityArn', ], 'members' => [ 'name' => [ 'shape' => 'WorkloadIdentityNameType', ], 'workloadIdentityArn' => [ 'shape' => 'WorkloadIdentityArnType', ], ], ], 'entryPoint' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], ],]; +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2023-06-05', 'auth' => [ 'aws.auth#sigv4', ], 'endpointPrefix' => 'bedrock-agentcore-control', 'protocol' => 'rest-json', 'protocols' => [ 'rest-json', ], 'serviceFullName' => 'Amazon Bedrock AgentCore Control', 'serviceId' => 'Bedrock AgentCore Control', 'signatureVersion' => 'v4', 'signingName' => 'bedrock-agentcore', 'uid' => 'bedrock-agentcore-control-2023-06-05', ], 'operations' => [ 'AddDatasetExamples' => [ 'name' => 'AddDatasetExamples', 'http' => [ 'method' => 'POST', 'requestUri' => '/datasets/{datasetId}/examples/add', 'responseCode' => 202, ], 'input' => [ 'shape' => 'AddDatasetExamplesRequest', ], 'output' => [ 'shape' => 'AddDatasetExamplesResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateAgentRuntime' => [ 'name' => 'CreateAgentRuntime', 'http' => [ 'method' => 'PUT', 'requestUri' => '/runtimes/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateAgentRuntimeRequest', ], 'output' => [ 'shape' => 'CreateAgentRuntimeResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateAgentRuntimeEndpoint' => [ 'name' => 'CreateAgentRuntimeEndpoint', 'http' => [ 'method' => 'PUT', 'requestUri' => '/runtimes/{agentRuntimeId}/runtime-endpoints/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateAgentRuntimeEndpointRequest', ], 'output' => [ 'shape' => 'CreateAgentRuntimeEndpointResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateApiKeyCredentialProvider' => [ 'name' => 'CreateApiKeyCredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/CreateApiKeyCredentialProvider', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateApiKeyCredentialProviderRequest', ], 'output' => [ 'shape' => 'CreateApiKeyCredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'EncryptionFailure', ], ], 'idempotent' => true, ], 'CreateBrowser' => [ 'name' => 'CreateBrowser', 'http' => [ 'method' => 'PUT', 'requestUri' => '/browsers', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateBrowserRequest', ], 'output' => [ 'shape' => 'CreateBrowserResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateBrowserProfile' => [ 'name' => 'CreateBrowserProfile', 'http' => [ 'method' => 'PUT', 'requestUri' => '/browser-profiles', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateBrowserProfileRequest', ], 'output' => [ 'shape' => 'CreateBrowserProfileResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateCodeInterpreter' => [ 'name' => 'CreateCodeInterpreter', 'http' => [ 'method' => 'PUT', 'requestUri' => '/code-interpreters', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateCodeInterpreterRequest', ], 'output' => [ 'shape' => 'CreateCodeInterpreterResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateConfigurationBundle' => [ 'name' => 'CreateConfigurationBundle', 'http' => [ 'method' => 'POST', 'requestUri' => '/configuration-bundles/create', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateConfigurationBundleRequest', ], 'output' => [ 'shape' => 'CreateConfigurationBundleResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateDataset' => [ 'name' => 'CreateDataset', 'http' => [ 'method' => 'POST', 'requestUri' => '/datasets', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateDatasetRequest', ], 'output' => [ 'shape' => 'CreateDatasetResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateDatasetVersion' => [ 'name' => 'CreateDatasetVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/datasets/{datasetId}/versions', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateDatasetVersionRequest', ], 'output' => [ 'shape' => 'CreateDatasetVersionResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateEvaluator' => [ 'name' => 'CreateEvaluator', 'http' => [ 'method' => 'POST', 'requestUri' => '/evaluators/create', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateEvaluatorRequest', ], 'output' => [ 'shape' => 'CreateEvaluatorResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateGateway' => [ 'name' => 'CreateGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/gateways/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateGatewayRequest', ], 'output' => [ 'shape' => 'CreateGatewayResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateGatewayRule' => [ 'name' => 'CreateGatewayRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/gateways/{gatewayIdentifier}/rules', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateGatewayRuleRequest', ], 'output' => [ 'shape' => 'CreateGatewayRuleResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateGatewayTarget' => [ 'name' => 'CreateGatewayTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/gateways/{gatewayIdentifier}/targets/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateGatewayTargetRequest', ], 'output' => [ 'shape' => 'CreateGatewayTargetResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateHarness' => [ 'name' => 'CreateHarness', 'http' => [ 'method' => 'POST', 'requestUri' => '/harnesses', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateHarnessRequest', ], 'output' => [ 'shape' => 'CreateHarnessResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateHarnessEndpoint' => [ 'name' => 'CreateHarnessEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/harnesses/{harnessId}/endpoints', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateHarnessEndpointRequest', ], 'output' => [ 'shape' => 'CreateHarnessEndpointResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateMemory' => [ 'name' => 'CreateMemory', 'http' => [ 'method' => 'POST', 'requestUri' => '/memories/create', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateMemoryInput', ], 'output' => [ 'shape' => 'CreateMemoryOutput', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ServiceException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottledException', ], ], 'idempotent' => true, ], 'CreateOauth2CredentialProvider' => [ 'name' => 'CreateOauth2CredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/CreateOauth2CredentialProvider', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateOauth2CredentialProviderRequest', ], 'output' => [ 'shape' => 'CreateOauth2CredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'EncryptionFailure', ], ], 'idempotent' => true, ], 'CreateOnlineEvaluationConfig' => [ 'name' => 'CreateOnlineEvaluationConfig', 'http' => [ 'method' => 'POST', 'requestUri' => '/online-evaluation-configs/create', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateOnlineEvaluationConfigRequest', ], 'output' => [ 'shape' => 'CreateOnlineEvaluationConfigResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreatePaymentConnector' => [ 'name' => 'CreatePaymentConnector', 'http' => [ 'method' => 'POST', 'requestUri' => '/payments/managers/{paymentManagerId}/connectors', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreatePaymentConnectorRequest', ], 'output' => [ 'shape' => 'CreatePaymentConnectorResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreatePaymentCredentialProvider' => [ 'name' => 'CreatePaymentCredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/CreatePaymentCredentialProvider', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreatePaymentCredentialProviderRequest', ], 'output' => [ 'shape' => 'CreatePaymentCredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ResourceLimitExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'EncryptionFailure', ], ], 'idempotent' => true, ], 'CreatePaymentManager' => [ 'name' => 'CreatePaymentManager', 'http' => [ 'method' => 'POST', 'requestUri' => '/payments/managers', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreatePaymentManagerRequest', ], 'output' => [ 'shape' => 'CreatePaymentManagerResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreatePolicy' => [ 'name' => 'CreatePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/policy-engines/{policyEngineId}/policies', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreatePolicyRequest', ], 'output' => [ 'shape' => 'CreatePolicyResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreatePolicyEngine' => [ 'name' => 'CreatePolicyEngine', 'http' => [ 'method' => 'POST', 'requestUri' => '/policy-engines', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreatePolicyEngineRequest', ], 'output' => [ 'shape' => 'CreatePolicyEngineResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateRegistry' => [ 'name' => 'CreateRegistry', 'http' => [ 'method' => 'POST', 'requestUri' => '/registries', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateRegistryRequest', ], 'output' => [ 'shape' => 'CreateRegistryResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateRegistryRecord' => [ 'name' => 'CreateRegistryRecord', 'http' => [ 'method' => 'POST', 'requestUri' => '/registries/{registryId}/records', 'responseCode' => 202, ], 'input' => [ 'shape' => 'CreateRegistryRecordRequest', ], 'output' => [ 'shape' => 'CreateRegistryRecordResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'CreateWorkloadIdentity' => [ 'name' => 'CreateWorkloadIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/CreateWorkloadIdentity', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateWorkloadIdentityRequest', ], 'output' => [ 'shape' => 'CreateWorkloadIdentityResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteAgentRuntime' => [ 'name' => 'DeleteAgentRuntime', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/runtimes/{agentRuntimeId}/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteAgentRuntimeRequest', ], 'output' => [ 'shape' => 'DeleteAgentRuntimeResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteAgentRuntimeEndpoint' => [ 'name' => 'DeleteAgentRuntimeEndpoint', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/runtimes/{agentRuntimeId}/runtime-endpoints/{endpointName}/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteAgentRuntimeEndpointRequest', ], 'output' => [ 'shape' => 'DeleteAgentRuntimeEndpointResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteApiKeyCredentialProvider' => [ 'name' => 'DeleteApiKeyCredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/DeleteApiKeyCredentialProvider', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteApiKeyCredentialProviderRequest', ], 'output' => [ 'shape' => 'DeleteApiKeyCredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteBrowser' => [ 'name' => 'DeleteBrowser', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/browsers/{browserId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteBrowserRequest', ], 'output' => [ 'shape' => 'DeleteBrowserResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteBrowserProfile' => [ 'name' => 'DeleteBrowserProfile', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/browser-profiles/{profileId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteBrowserProfileRequest', ], 'output' => [ 'shape' => 'DeleteBrowserProfileResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteCodeInterpreter' => [ 'name' => 'DeleteCodeInterpreter', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/code-interpreters/{codeInterpreterId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteCodeInterpreterRequest', ], 'output' => [ 'shape' => 'DeleteCodeInterpreterResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteConfigurationBundle' => [ 'name' => 'DeleteConfigurationBundle', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/configuration-bundles/{bundleId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteConfigurationBundleRequest', ], 'output' => [ 'shape' => 'DeleteConfigurationBundleResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteDataset' => [ 'name' => 'DeleteDataset', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/datasets/{datasetId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteDatasetRequest', ], 'output' => [ 'shape' => 'DeleteDatasetResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteDatasetExamples' => [ 'name' => 'DeleteDatasetExamples', 'http' => [ 'method' => 'POST', 'requestUri' => '/datasets/{datasetId}/examples/delete', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteDatasetExamplesRequest', ], 'output' => [ 'shape' => 'DeleteDatasetExamplesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DeleteEvaluator' => [ 'name' => 'DeleteEvaluator', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/evaluators/{evaluatorId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteEvaluatorRequest', ], 'output' => [ 'shape' => 'DeleteEvaluatorResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteGateway' => [ 'name' => 'DeleteGateway', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/gateways/{gatewayIdentifier}/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteGatewayRequest', ], 'output' => [ 'shape' => 'DeleteGatewayResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteGatewayRule' => [ 'name' => 'DeleteGatewayRule', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/gateways/{gatewayIdentifier}/rules/{ruleId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteGatewayRuleRequest', ], 'output' => [ 'shape' => 'DeleteGatewayRuleResponse', ], 'errors' => [ [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteGatewayTarget' => [ 'name' => 'DeleteGatewayTarget', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/gateways/{gatewayIdentifier}/targets/{targetId}/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteGatewayTargetRequest', ], 'output' => [ 'shape' => 'DeleteGatewayTargetResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteHarness' => [ 'name' => 'DeleteHarness', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/harnesses/{harnessId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteHarnessRequest', ], 'output' => [ 'shape' => 'DeleteHarnessResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteHarnessEndpoint' => [ 'name' => 'DeleteHarnessEndpoint', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/harnesses/{harnessId}/endpoints/{endpointName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteHarnessEndpointRequest', ], 'output' => [ 'shape' => 'DeleteHarnessEndpointResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteMemory' => [ 'name' => 'DeleteMemory', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/memories/{memoryId}/delete', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteMemoryInput', ], 'output' => [ 'shape' => 'DeleteMemoryOutput', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottledException', ], ], 'idempotent' => true, ], 'DeleteOauth2CredentialProvider' => [ 'name' => 'DeleteOauth2CredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/DeleteOauth2CredentialProvider', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteOauth2CredentialProviderRequest', ], 'output' => [ 'shape' => 'DeleteOauth2CredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteOnlineEvaluationConfig' => [ 'name' => 'DeleteOnlineEvaluationConfig', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/online-evaluation-configs/{onlineEvaluationConfigId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteOnlineEvaluationConfigRequest', ], 'output' => [ 'shape' => 'DeleteOnlineEvaluationConfigResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeletePaymentConnector' => [ 'name' => 'DeletePaymentConnector', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/payments/managers/{paymentManagerId}/connectors/{paymentConnectorId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeletePaymentConnectorRequest', ], 'output' => [ 'shape' => 'DeletePaymentConnectorResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeletePaymentCredentialProvider' => [ 'name' => 'DeletePaymentCredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/DeletePaymentCredentialProvider', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeletePaymentCredentialProviderRequest', ], 'output' => [ 'shape' => 'DeletePaymentCredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeletePaymentManager' => [ 'name' => 'DeletePaymentManager', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/payments/managers/{paymentManagerId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeletePaymentManagerRequest', ], 'output' => [ 'shape' => 'DeletePaymentManagerResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeletePolicy' => [ 'name' => 'DeletePolicy', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/policy-engines/{policyEngineId}/policies/{policyId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeletePolicyRequest', ], 'output' => [ 'shape' => 'DeletePolicyResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeletePolicyEngine' => [ 'name' => 'DeletePolicyEngine', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/policy-engines/{policyEngineId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeletePolicyEngineRequest', ], 'output' => [ 'shape' => 'DeletePolicyEngineResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteRegistry' => [ 'name' => 'DeleteRegistry', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/registries/{registryId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'DeleteRegistryRequest', ], 'output' => [ 'shape' => 'DeleteRegistryResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteRegistryRecord' => [ 'name' => 'DeleteRegistryRecord', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/registries/{registryId}/records/{recordId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteRegistryRecordRequest', ], 'output' => [ 'shape' => 'DeleteRegistryRecordResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteResourcePolicy' => [ 'name' => 'DeleteResourcePolicy', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/resourcepolicy/{resourceArn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteResourcePolicyRequest', ], 'output' => [ 'shape' => 'DeleteResourcePolicyResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'DeleteWorkloadIdentity' => [ 'name' => 'DeleteWorkloadIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/DeleteWorkloadIdentity', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteWorkloadIdentityRequest', ], 'output' => [ 'shape' => 'DeleteWorkloadIdentityResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'GetAgentRuntime' => [ 'name' => 'GetAgentRuntime', 'http' => [ 'method' => 'GET', 'requestUri' => '/runtimes/{agentRuntimeId}/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetAgentRuntimeRequest', ], 'output' => [ 'shape' => 'GetAgentRuntimeResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetAgentRuntimeEndpoint' => [ 'name' => 'GetAgentRuntimeEndpoint', 'http' => [ 'method' => 'GET', 'requestUri' => '/runtimes/{agentRuntimeId}/runtime-endpoints/{endpointName}/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetAgentRuntimeEndpointRequest', ], 'output' => [ 'shape' => 'GetAgentRuntimeEndpointResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetApiKeyCredentialProvider' => [ 'name' => 'GetApiKeyCredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/GetApiKeyCredentialProvider', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetApiKeyCredentialProviderRequest', ], 'output' => [ 'shape' => 'GetApiKeyCredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetBrowser' => [ 'name' => 'GetBrowser', 'http' => [ 'method' => 'GET', 'requestUri' => '/browsers/{browserId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBrowserRequest', ], 'output' => [ 'shape' => 'GetBrowserResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetBrowserProfile' => [ 'name' => 'GetBrowserProfile', 'http' => [ 'method' => 'GET', 'requestUri' => '/browser-profiles/{profileId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetBrowserProfileRequest', ], 'output' => [ 'shape' => 'GetBrowserProfileResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetCodeInterpreter' => [ 'name' => 'GetCodeInterpreter', 'http' => [ 'method' => 'GET', 'requestUri' => '/code-interpreters/{codeInterpreterId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetCodeInterpreterRequest', ], 'output' => [ 'shape' => 'GetCodeInterpreterResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetConfigurationBundle' => [ 'name' => 'GetConfigurationBundle', 'http' => [ 'method' => 'GET', 'requestUri' => '/configuration-bundles/{bundleId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetConfigurationBundleRequest', ], 'output' => [ 'shape' => 'GetConfigurationBundleResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetConfigurationBundleVersion' => [ 'name' => 'GetConfigurationBundleVersion', 'http' => [ 'method' => 'GET', 'requestUri' => '/configuration-bundles/{bundleId}/versions/{versionId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetConfigurationBundleVersionRequest', ], 'output' => [ 'shape' => 'GetConfigurationBundleVersionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetDataset' => [ 'name' => 'GetDataset', 'http' => [ 'method' => 'GET', 'requestUri' => '/datasets/{datasetId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetDatasetRequest', ], 'output' => [ 'shape' => 'GetDatasetResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetEvaluator' => [ 'name' => 'GetEvaluator', 'http' => [ 'method' => 'GET', 'requestUri' => '/evaluators/{evaluatorId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetEvaluatorRequest', ], 'output' => [ 'shape' => 'GetEvaluatorResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetGateway' => [ 'name' => 'GetGateway', 'http' => [ 'method' => 'GET', 'requestUri' => '/gateways/{gatewayIdentifier}/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetGatewayRequest', ], 'output' => [ 'shape' => 'GetGatewayResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetGatewayRule' => [ 'name' => 'GetGatewayRule', 'http' => [ 'method' => 'GET', 'requestUri' => '/gateways/{gatewayIdentifier}/rules/{ruleId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetGatewayRuleRequest', ], 'output' => [ 'shape' => 'GetGatewayRuleResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetGatewayTarget' => [ 'name' => 'GetGatewayTarget', 'http' => [ 'method' => 'GET', 'requestUri' => '/gateways/{gatewayIdentifier}/targets/{targetId}/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetGatewayTargetRequest', ], 'output' => [ 'shape' => 'GetGatewayTargetResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetHarness' => [ 'name' => 'GetHarness', 'http' => [ 'method' => 'GET', 'requestUri' => '/harnesses/{harnessId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetHarnessRequest', ], 'output' => [ 'shape' => 'GetHarnessResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetHarnessEndpoint' => [ 'name' => 'GetHarnessEndpoint', 'http' => [ 'method' => 'GET', 'requestUri' => '/harnesses/{harnessId}/endpoints/{endpointName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetHarnessEndpointRequest', ], 'output' => [ 'shape' => 'GetHarnessEndpointResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetMemory' => [ 'name' => 'GetMemory', 'http' => [ 'method' => 'GET', 'requestUri' => '/memories/{memoryId}/details', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetMemoryInput', ], 'output' => [ 'shape' => 'GetMemoryOutput', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottledException', ], ], 'readonly' => true, ], 'GetOauth2CredentialProvider' => [ 'name' => 'GetOauth2CredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/GetOauth2CredentialProvider', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetOauth2CredentialProviderRequest', ], 'output' => [ 'shape' => 'GetOauth2CredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetOnlineEvaluationConfig' => [ 'name' => 'GetOnlineEvaluationConfig', 'http' => [ 'method' => 'GET', 'requestUri' => '/online-evaluation-configs/{onlineEvaluationConfigId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetOnlineEvaluationConfigRequest', ], 'output' => [ 'shape' => 'GetOnlineEvaluationConfigResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPaymentConnector' => [ 'name' => 'GetPaymentConnector', 'http' => [ 'method' => 'GET', 'requestUri' => '/payments/managers/{paymentManagerId}/connectors/{paymentConnectorId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPaymentConnectorRequest', ], 'output' => [ 'shape' => 'GetPaymentConnectorResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPaymentCredentialProvider' => [ 'name' => 'GetPaymentCredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/GetPaymentCredentialProvider', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPaymentCredentialProviderRequest', ], 'output' => [ 'shape' => 'GetPaymentCredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPaymentManager' => [ 'name' => 'GetPaymentManager', 'http' => [ 'method' => 'GET', 'requestUri' => '/payments/managers/{paymentManagerId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPaymentManagerRequest', ], 'output' => [ 'shape' => 'GetPaymentManagerResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPolicy' => [ 'name' => 'GetPolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policies/{policyId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPolicyRequest', ], 'output' => [ 'shape' => 'GetPolicyResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPolicyEngine' => [ 'name' => 'GetPolicyEngine', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPolicyEngineRequest', ], 'output' => [ 'shape' => 'GetPolicyEngineResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPolicyEngineSummary' => [ 'name' => 'GetPolicyEngineSummary', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engine-summaries/{policyEngineId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPolicyEngineSummaryRequest', ], 'output' => [ 'shape' => 'GetPolicyEngineSummaryResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPolicyGeneration' => [ 'name' => 'GetPolicyGeneration', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policy-generations/{policyGenerationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPolicyGenerationRequest', ], 'output' => [ 'shape' => 'GetPolicyGenerationResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPolicyGenerationSummary' => [ 'name' => 'GetPolicyGenerationSummary', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policy-generation-summaries/{policyGenerationId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPolicyGenerationSummaryRequest', ], 'output' => [ 'shape' => 'GetPolicyGenerationSummaryResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetPolicySummary' => [ 'name' => 'GetPolicySummary', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policy-summaries/{policyId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPolicySummaryRequest', ], 'output' => [ 'shape' => 'GetPolicySummaryResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetRegistry' => [ 'name' => 'GetRegistry', 'http' => [ 'method' => 'GET', 'requestUri' => '/registries/{registryId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetRegistryRequest', ], 'output' => [ 'shape' => 'GetRegistryResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetRegistryRecord' => [ 'name' => 'GetRegistryRecord', 'http' => [ 'method' => 'GET', 'requestUri' => '/registries/{registryId}/records/{recordId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetRegistryRecordRequest', ], 'output' => [ 'shape' => 'GetRegistryRecordResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetResourcePolicy' => [ 'name' => 'GetResourcePolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/resourcepolicy/{resourceArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetResourcePolicyRequest', ], 'output' => [ 'shape' => 'GetResourcePolicyResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetTokenVault' => [ 'name' => 'GetTokenVault', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/get-token-vault', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetTokenVaultRequest', ], 'output' => [ 'shape' => 'GetTokenVaultResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'GetWorkloadIdentity' => [ 'name' => 'GetWorkloadIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/GetWorkloadIdentity', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetWorkloadIdentityRequest', ], 'output' => [ 'shape' => 'GetWorkloadIdentityResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListAgentRuntimeEndpoints' => [ 'name' => 'ListAgentRuntimeEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/runtimes/{agentRuntimeId}/runtime-endpoints/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListAgentRuntimeEndpointsRequest', ], 'output' => [ 'shape' => 'ListAgentRuntimeEndpointsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListAgentRuntimeVersions' => [ 'name' => 'ListAgentRuntimeVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/runtimes/{agentRuntimeId}/versions/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListAgentRuntimeVersionsRequest', ], 'output' => [ 'shape' => 'ListAgentRuntimeVersionsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListAgentRuntimes' => [ 'name' => 'ListAgentRuntimes', 'http' => [ 'method' => 'POST', 'requestUri' => '/runtimes/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListAgentRuntimesRequest', ], 'output' => [ 'shape' => 'ListAgentRuntimesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListApiKeyCredentialProviders' => [ 'name' => 'ListApiKeyCredentialProviders', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/ListApiKeyCredentialProviders', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListApiKeyCredentialProvidersRequest', ], 'output' => [ 'shape' => 'ListApiKeyCredentialProvidersResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListBrowserProfiles' => [ 'name' => 'ListBrowserProfiles', 'http' => [ 'method' => 'POST', 'requestUri' => '/browser-profiles', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListBrowserProfilesRequest', ], 'output' => [ 'shape' => 'ListBrowserProfilesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListBrowsers' => [ 'name' => 'ListBrowsers', 'http' => [ 'method' => 'POST', 'requestUri' => '/browsers', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListBrowsersRequest', ], 'output' => [ 'shape' => 'ListBrowsersResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListCodeInterpreters' => [ 'name' => 'ListCodeInterpreters', 'http' => [ 'method' => 'POST', 'requestUri' => '/code-interpreters', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListCodeInterpretersRequest', ], 'output' => [ 'shape' => 'ListCodeInterpretersResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListConfigurationBundleVersions' => [ 'name' => 'ListConfigurationBundleVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/configuration-bundles/{bundleId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListConfigurationBundleVersionsRequest', ], 'output' => [ 'shape' => 'ListConfigurationBundleVersionsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListConfigurationBundles' => [ 'name' => 'ListConfigurationBundles', 'http' => [ 'method' => 'POST', 'requestUri' => '/configuration-bundles', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListConfigurationBundlesRequest', ], 'output' => [ 'shape' => 'ListConfigurationBundlesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListDatasetExamples' => [ 'name' => 'ListDatasetExamples', 'http' => [ 'method' => 'GET', 'requestUri' => '/datasets/{datasetId}/examples', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDatasetExamplesRequest', ], 'output' => [ 'shape' => 'ListDatasetExamplesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListDatasetVersions' => [ 'name' => 'ListDatasetVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/datasets/{datasetId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDatasetVersionsRequest', ], 'output' => [ 'shape' => 'ListDatasetVersionsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListDatasets' => [ 'name' => 'ListDatasets', 'http' => [ 'method' => 'GET', 'requestUri' => '/datasets', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDatasetsRequest', ], 'output' => [ 'shape' => 'ListDatasetsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListEvaluators' => [ 'name' => 'ListEvaluators', 'http' => [ 'method' => 'POST', 'requestUri' => '/evaluators', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListEvaluatorsRequest', ], 'output' => [ 'shape' => 'ListEvaluatorsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListGatewayRules' => [ 'name' => 'ListGatewayRules', 'http' => [ 'method' => 'GET', 'requestUri' => '/gateways/{gatewayIdentifier}/rules', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListGatewayRulesRequest', ], 'output' => [ 'shape' => 'ListGatewayRulesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListGatewayTargets' => [ 'name' => 'ListGatewayTargets', 'http' => [ 'method' => 'GET', 'requestUri' => '/gateways/{gatewayIdentifier}/targets/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListGatewayTargetsRequest', ], 'output' => [ 'shape' => 'ListGatewayTargetsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListGateways' => [ 'name' => 'ListGateways', 'http' => [ 'method' => 'GET', 'requestUri' => '/gateways/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListGatewaysRequest', ], 'output' => [ 'shape' => 'ListGatewaysResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListHarnessEndpoints' => [ 'name' => 'ListHarnessEndpoints', 'http' => [ 'method' => 'GET', 'requestUri' => '/harnesses/{harnessId}/endpoints', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListHarnessEndpointsRequest', ], 'output' => [ 'shape' => 'ListHarnessEndpointsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListHarnessVersions' => [ 'name' => 'ListHarnessVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/harnesses/{harnessId}/versions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListHarnessVersionsRequest', ], 'output' => [ 'shape' => 'ListHarnessVersionsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListHarnesses' => [ 'name' => 'ListHarnesses', 'http' => [ 'method' => 'GET', 'requestUri' => '/harnesses', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListHarnessesRequest', ], 'output' => [ 'shape' => 'ListHarnessesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListMemories' => [ 'name' => 'ListMemories', 'http' => [ 'method' => 'POST', 'requestUri' => '/memories/', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListMemoriesInput', ], 'output' => [ 'shape' => 'ListMemoriesOutput', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottledException', ], ], 'readonly' => true, ], 'ListOauth2CredentialProviders' => [ 'name' => 'ListOauth2CredentialProviders', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/ListOauth2CredentialProviders', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListOauth2CredentialProvidersRequest', ], 'output' => [ 'shape' => 'ListOauth2CredentialProvidersResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListOnlineEvaluationConfigs' => [ 'name' => 'ListOnlineEvaluationConfigs', 'http' => [ 'method' => 'POST', 'requestUri' => '/online-evaluation-configs', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListOnlineEvaluationConfigsRequest', ], 'output' => [ 'shape' => 'ListOnlineEvaluationConfigsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPaymentConnectors' => [ 'name' => 'ListPaymentConnectors', 'http' => [ 'method' => 'POST', 'requestUri' => '/payments/managers/{paymentManagerId}/connectors-list', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPaymentConnectorsRequest', ], 'output' => [ 'shape' => 'ListPaymentConnectorsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPaymentCredentialProviders' => [ 'name' => 'ListPaymentCredentialProviders', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/ListPaymentCredentialProviders', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPaymentCredentialProvidersRequest', ], 'output' => [ 'shape' => 'ListPaymentCredentialProvidersResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPaymentManagers' => [ 'name' => 'ListPaymentManagers', 'http' => [ 'method' => 'POST', 'requestUri' => '/payments/managers-list', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPaymentManagersRequest', ], 'output' => [ 'shape' => 'ListPaymentManagersResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPolicies' => [ 'name' => 'ListPolicies', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policies', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPoliciesRequest', ], 'output' => [ 'shape' => 'ListPoliciesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPolicyEngineSummaries' => [ 'name' => 'ListPolicyEngineSummaries', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engine-summaries', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPolicyEngineSummariesRequest', ], 'output' => [ 'shape' => 'ListPolicyEngineSummariesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPolicyEngines' => [ 'name' => 'ListPolicyEngines', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPolicyEnginesRequest', ], 'output' => [ 'shape' => 'ListPolicyEnginesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPolicyGenerationAssets' => [ 'name' => 'ListPolicyGenerationAssets', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policy-generations/{policyGenerationId}/assets', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPolicyGenerationAssetsRequest', ], 'output' => [ 'shape' => 'ListPolicyGenerationAssetsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPolicyGenerationSummaries' => [ 'name' => 'ListPolicyGenerationSummaries', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policy-generation-summaries', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPolicyGenerationSummariesRequest', ], 'output' => [ 'shape' => 'ListPolicyGenerationSummariesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPolicyGenerations' => [ 'name' => 'ListPolicyGenerations', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policy-generations', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPolicyGenerationsRequest', ], 'output' => [ 'shape' => 'ListPolicyGenerationsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListPolicySummaries' => [ 'name' => 'ListPolicySummaries', 'http' => [ 'method' => 'GET', 'requestUri' => '/policy-engines/{policyEngineId}/policy-summaries', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPolicySummariesRequest', ], 'output' => [ 'shape' => 'ListPolicySummariesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListRegistries' => [ 'name' => 'ListRegistries', 'http' => [ 'method' => 'GET', 'requestUri' => '/registries', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListRegistriesRequest', ], 'output' => [ 'shape' => 'ListRegistriesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListRegistryRecords' => [ 'name' => 'ListRegistryRecords', 'http' => [ 'method' => 'GET', 'requestUri' => '/registries/{registryId}/records', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListRegistryRecordsRequest', ], 'output' => [ 'shape' => 'ListRegistryRecordsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags/{resourceArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'ListWorkloadIdentities' => [ 'name' => 'ListWorkloadIdentities', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/ListWorkloadIdentities', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListWorkloadIdentitiesRequest', ], 'output' => [ 'shape' => 'ListWorkloadIdentitiesResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'readonly' => true, ], 'PutResourcePolicy' => [ 'name' => 'PutResourcePolicy', 'http' => [ 'method' => 'PUT', 'requestUri' => '/resourcepolicy/{resourceArn}', 'responseCode' => 201, ], 'input' => [ 'shape' => 'PutResourcePolicyRequest', ], 'output' => [ 'shape' => 'PutResourcePolicyResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'SetTokenVaultCMK' => [ 'name' => 'SetTokenVaultCMK', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/set-token-vault-cmk', 'responseCode' => 200, ], 'input' => [ 'shape' => 'SetTokenVaultCMKRequest', ], 'output' => [ 'shape' => 'SetTokenVaultCMKResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ConcurrentModificationException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StartPolicyGeneration' => [ 'name' => 'StartPolicyGeneration', 'http' => [ 'method' => 'POST', 'requestUri' => '/policy-engines/{policyEngineId}/policy-generations', 'responseCode' => 202, ], 'input' => [ 'shape' => 'StartPolicyGenerationRequest', ], 'output' => [ 'shape' => 'StartPolicyGenerationResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'SubmitRegistryRecordForApproval' => [ 'name' => 'SubmitRegistryRecordForApproval', 'http' => [ 'method' => 'POST', 'requestUri' => '/registries/{registryId}/records/{recordId}/submit-for-approval', 'responseCode' => 202, ], 'input' => [ 'shape' => 'SubmitRegistryRecordForApprovalRequest', ], 'output' => [ 'shape' => 'SubmitRegistryRecordForApprovalResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'SynchronizeGatewayTargets' => [ 'name' => 'SynchronizeGatewayTargets', 'http' => [ 'method' => 'PUT', 'requestUri' => '/gateways/{gatewayIdentifier}/synchronizeTargets', 'responseCode' => 202, ], 'input' => [ 'shape' => 'SynchronizeGatewayTargetsRequest', ], 'output' => [ 'shape' => 'SynchronizeGatewayTargetsResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tags/{resourceArn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/tags/{resourceArn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateAgentRuntime' => [ 'name' => 'UpdateAgentRuntime', 'http' => [ 'method' => 'PUT', 'requestUri' => '/runtimes/{agentRuntimeId}/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateAgentRuntimeRequest', ], 'output' => [ 'shape' => 'UpdateAgentRuntimeResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateAgentRuntimeEndpoint' => [ 'name' => 'UpdateAgentRuntimeEndpoint', 'http' => [ 'method' => 'PUT', 'requestUri' => '/runtimes/{agentRuntimeId}/runtime-endpoints/{endpointName}/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateAgentRuntimeEndpointRequest', ], 'output' => [ 'shape' => 'UpdateAgentRuntimeEndpointResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateApiKeyCredentialProvider' => [ 'name' => 'UpdateApiKeyCredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/UpdateApiKeyCredentialProvider', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateApiKeyCredentialProviderRequest', ], 'output' => [ 'shape' => 'UpdateApiKeyCredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'EncryptionFailure', ], ], 'idempotent' => true, ], 'UpdateConfigurationBundle' => [ 'name' => 'UpdateConfigurationBundle', 'http' => [ 'method' => 'PUT', 'requestUri' => '/configuration-bundles/{bundleId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateConfigurationBundleRequest', ], 'output' => [ 'shape' => 'UpdateConfigurationBundleResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateDataset' => [ 'name' => 'UpdateDataset', 'http' => [ 'method' => 'PUT', 'requestUri' => '/datasets/{datasetId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateDatasetRequest', ], 'output' => [ 'shape' => 'UpdateDatasetResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateDatasetExamples' => [ 'name' => 'UpdateDatasetExamples', 'http' => [ 'method' => 'POST', 'requestUri' => '/datasets/{datasetId}/examples/update', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateDatasetExamplesRequest', ], 'output' => [ 'shape' => 'UpdateDatasetExamplesResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateEvaluator' => [ 'name' => 'UpdateEvaluator', 'http' => [ 'method' => 'PUT', 'requestUri' => '/evaluators/{evaluatorId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateEvaluatorRequest', ], 'output' => [ 'shape' => 'UpdateEvaluatorResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateGateway' => [ 'name' => 'UpdateGateway', 'http' => [ 'method' => 'PUT', 'requestUri' => '/gateways/{gatewayIdentifier}/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateGatewayRequest', ], 'output' => [ 'shape' => 'UpdateGatewayResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateGatewayRule' => [ 'name' => 'UpdateGatewayRule', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/gateways/{gatewayIdentifier}/rules/{ruleId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateGatewayRuleRequest', ], 'output' => [ 'shape' => 'UpdateGatewayRuleResponse', ], 'errors' => [ [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateGatewayTarget' => [ 'name' => 'UpdateGatewayTarget', 'http' => [ 'method' => 'PUT', 'requestUri' => '/gateways/{gatewayIdentifier}/targets/{targetId}/', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateGatewayTargetRequest', ], 'output' => [ 'shape' => 'UpdateGatewayTargetResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateHarness' => [ 'name' => 'UpdateHarness', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/harnesses/{harnessId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateHarnessRequest', ], 'output' => [ 'shape' => 'UpdateHarnessResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateHarnessEndpoint' => [ 'name' => 'UpdateHarnessEndpoint', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/harnesses/{harnessId}/endpoints/{endpointName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateHarnessEndpointRequest', ], 'output' => [ 'shape' => 'UpdateHarnessEndpointResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateMemory' => [ 'name' => 'UpdateMemory', 'http' => [ 'method' => 'PUT', 'requestUri' => '/memories/{memoryId}/update', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateMemoryInput', ], 'output' => [ 'shape' => 'UpdateMemoryOutput', ], 'errors' => [ [ 'shape' => 'ServiceException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottledException', ], ], 'idempotent' => true, ], 'UpdateOauth2CredentialProvider' => [ 'name' => 'UpdateOauth2CredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/UpdateOauth2CredentialProvider', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateOauth2CredentialProviderRequest', ], 'output' => [ 'shape' => 'UpdateOauth2CredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'EncryptionFailure', ], ], ], 'UpdateOnlineEvaluationConfig' => [ 'name' => 'UpdateOnlineEvaluationConfig', 'http' => [ 'method' => 'PUT', 'requestUri' => '/online-evaluation-configs/{onlineEvaluationConfigId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateOnlineEvaluationConfigRequest', ], 'output' => [ 'shape' => 'UpdateOnlineEvaluationConfigResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdatePaymentConnector' => [ 'name' => 'UpdatePaymentConnector', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/payments/managers/{paymentManagerId}/connectors/{paymentConnectorId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdatePaymentConnectorRequest', ], 'output' => [ 'shape' => 'UpdatePaymentConnectorResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdatePaymentCredentialProvider' => [ 'name' => 'UpdatePaymentCredentialProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/UpdatePaymentCredentialProvider', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdatePaymentCredentialProviderRequest', ], 'output' => [ 'shape' => 'UpdatePaymentCredentialProviderResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'DecryptionFailure', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'EncryptionFailure', ], ], ], 'UpdatePaymentManager' => [ 'name' => 'UpdatePaymentManager', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/payments/managers/{paymentManagerId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdatePaymentManagerRequest', ], 'output' => [ 'shape' => 'UpdatePaymentManagerResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdatePolicy' => [ 'name' => 'UpdatePolicy', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/policy-engines/{policyEngineId}/policies/{policyId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdatePolicyRequest', ], 'output' => [ 'shape' => 'UpdatePolicyResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdatePolicyEngine' => [ 'name' => 'UpdatePolicyEngine', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/policy-engines/{policyEngineId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdatePolicyEngineRequest', ], 'output' => [ 'shape' => 'UpdatePolicyEngineResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], 'UpdateRegistry' => [ 'name' => 'UpdateRegistry', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/registries/{registryId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateRegistryRequest', ], 'output' => [ 'shape' => 'UpdateRegistryResponse', ], 'errors' => [ [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateRegistryRecord' => [ 'name' => 'UpdateRegistryRecord', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/registries/{registryId}/records/{recordId}', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateRegistryRecordRequest', ], 'output' => [ 'shape' => 'UpdateRegistryRecordResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateRegistryRecordStatus' => [ 'name' => 'UpdateRegistryRecordStatus', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/registries/{registryId}/records/{recordId}/status', 'responseCode' => 202, ], 'input' => [ 'shape' => 'UpdateRegistryRecordStatusRequest', ], 'output' => [ 'shape' => 'UpdateRegistryRecordStatusResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateWorkloadIdentity' => [ 'name' => 'UpdateWorkloadIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/identities/UpdateWorkloadIdentity', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateWorkloadIdentityRequest', ], 'output' => [ 'shape' => 'UpdateWorkloadIdentityResponse', ], 'errors' => [ [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'idempotent' => true, ], ], 'shapes' => [ 'A2aDescriptor' => [ 'type' => 'structure', 'members' => [ 'agentCard' => [ 'shape' => 'AgentCardDefinition', ], ], ], 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'NonBlankString', ], ], 'error' => [ 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'Action' => [ 'type' => 'structure', 'members' => [ 'configurationBundle' => [ 'shape' => 'ConfigurationBundleAction', ], 'routeToTarget' => [ 'shape' => 'RouteToTargetAction', ], ], 'union' => true, ], 'Actions' => [ 'type' => 'list', 'member' => [ 'shape' => 'Action', ], 'max' => 2, 'min' => 1, ], 'ActorTokenContentType' => [ 'type' => 'string', 'enum' => [ 'NONE', 'M2M', 'AWS_IAM_ID_TOKEN_JWT', ], ], 'AddDatasetExamplesRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', 'source', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'source' => [ 'shape' => 'DataSourceType', ], ], ], 'AddDatasetExamplesResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'status', 'addedCount', 'updatedAt', 'exampleIds', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'addedCount' => [ 'shape' => 'Long', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'exampleIds' => [ 'shape' => 'ExampleIdList', ], ], ], 'AdditionalModelRequestFields' => [ 'type' => 'structure', 'members' => [], 'document' => true, ], 'AdvertisedScopeMappingType' => [ 'type' => 'map', 'key' => [ 'shape' => 'AllowedScopeType', ], 'value' => [ 'shape' => 'AllowedScopeType', ], 'max' => 50, 'min' => 1, ], 'AgentCardDefinition' => [ 'type' => 'structure', 'members' => [ 'schemaVersion' => [ 'shape' => 'SchemaVersion', ], 'inlineContent' => [ 'shape' => 'InlineContent', ], ], ], 'AgentEndpointDescription' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'AgentManagedRuntimeType' => [ 'type' => 'string', 'enum' => [ 'PYTHON_3_10', 'PYTHON_3_11', 'PYTHON_3_12', 'PYTHON_3_13', 'PYTHON_3_14', 'NODE_22', ], ], 'AgentRuntime' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeArn', 'agentRuntimeId', 'agentRuntimeVersion', 'agentRuntimeName', 'description', 'lastUpdatedAt', 'status', ], 'members' => [ 'agentRuntimeArn' => [ 'shape' => 'AgentRuntimeArn', ], 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', ], 'agentRuntimeVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'agentRuntimeName' => [ 'shape' => 'AgentRuntimeName', ], 'description' => [ 'shape' => 'Description', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'AgentRuntimeStatus', ], ], ], 'AgentRuntimeArn' => [ 'type' => 'string', 'pattern' => 'arn:(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:agent/[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}:([0-9]{0,4}[1-9][0-9]{0,4})', ], 'AgentRuntimeArtifact' => [ 'type' => 'structure', 'members' => [ 'containerConfiguration' => [ 'shape' => 'ContainerConfiguration', ], 'codeConfiguration' => [ 'shape' => 'CodeConfiguration', ], ], 'union' => true, ], 'AgentRuntimeEndpoint' => [ 'type' => 'structure', 'required' => [ 'name', 'agentRuntimeEndpointArn', 'agentRuntimeArn', 'status', 'id', 'createdAt', 'lastUpdatedAt', ], 'members' => [ 'name' => [ 'shape' => 'EndpointName', ], 'liveVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'targetVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'agentRuntimeEndpointArn' => [ 'shape' => 'AgentRuntimeEndpointArn', ], 'agentRuntimeArn' => [ 'shape' => 'AgentRuntimeArn', ], 'status' => [ 'shape' => 'AgentRuntimeEndpointStatus', ], 'id' => [ 'shape' => 'AgentRuntimeEndpointId', ], 'description' => [ 'shape' => 'AgentEndpointDescription', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'AgentRuntimeEndpointArn' => [ 'type' => 'string', 'pattern' => 'arn:(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:agentEndpoint/[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}', ], 'AgentRuntimeEndpointId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,99}-[a-zA-Z0-9]{10}', ], 'AgentRuntimeEndpointStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'CREATE_FAILED', 'UPDATING', 'UPDATE_FAILED', 'READY', 'DELETING', ], ], 'AgentRuntimeEndpoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'AgentRuntimeEndpoint', ], ], 'AgentRuntimeId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,99}-[a-zA-Z0-9]{10}', ], 'AgentRuntimeName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'AgentRuntimeStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'CREATE_FAILED', 'UPDATING', 'UPDATE_FAILED', 'READY', 'DELETING', ], ], 'AgentRuntimeVersion' => [ 'type' => 'string', 'max' => 5, 'min' => 1, 'pattern' => '([1-9][0-9]{0,4})', ], 'AgentRuntimes' => [ 'type' => 'list', 'member' => [ 'shape' => 'AgentRuntime', ], ], 'AgentSkillsDescriptor' => [ 'type' => 'structure', 'members' => [ 'skillMd' => [ 'shape' => 'SkillMdDefinition', ], 'skillDefinition' => [ 'shape' => 'SkillDefinition', ], ], ], 'AllowedAudience' => [ 'type' => 'string', ], 'AllowedAudienceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedAudience', ], 'min' => 1, ], 'AllowedClient' => [ 'type' => 'string', ], 'AllowedClientsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedClient', ], 'min' => 1, ], 'AllowedQueryParameters' => [ 'type' => 'list', 'member' => [ 'shape' => 'HttpQueryParameterName', ], 'max' => 10, 'min' => 1, ], 'AllowedRequestHeaders' => [ 'type' => 'list', 'member' => [ 'shape' => 'HttpHeaderName', ], 'max' => 10, 'min' => 1, ], 'AllowedResponseHeaders' => [ 'type' => 'list', 'member' => [ 'shape' => 'HttpHeaderName', ], 'max' => 10, 'min' => 1, ], 'AllowedScopeType' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[\\x21\\x23-\\x5B\\x5D-\\x7E]+', ], 'AllowedScopesType' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedScopeType', ], 'min' => 1, ], 'AllowedStringListValue' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\s._:/=+@-]*', ], 'AllowedStringListValuesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedStringListValue', ], 'max' => 10, 'min' => 1, ], 'AllowedStringValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\s._:/=+@-]*', ], 'AllowedStringValuesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedStringValue', ], 'max' => 10, 'min' => 1, ], 'AllowedWorkloadConfiguration' => [ 'type' => 'structure', 'members' => [ 'hostingEnvironments' => [ 'shape' => 'HostingEnvironmentListType', ], 'workloadIdentities' => [ 'shape' => 'WorkloadIdentityNameListType', ], ], ], 'ApiGatewayTargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'restApiId', 'stage', 'apiGatewayToolConfiguration', ], 'members' => [ 'restApiId' => [ 'shape' => 'String', ], 'stage' => [ 'shape' => 'String', ], 'apiGatewayToolConfiguration' => [ 'shape' => 'ApiGatewayToolConfiguration', ], ], ], 'ApiGatewayToolConfiguration' => [ 'type' => 'structure', 'required' => [ 'toolFilters', ], 'members' => [ 'toolOverrides' => [ 'shape' => 'ApiGatewayToolOverrides', ], 'toolFilters' => [ 'shape' => 'ApiGatewayToolFilters', ], ], ], 'ApiGatewayToolFilter' => [ 'type' => 'structure', 'required' => [ 'filterPath', 'methods', ], 'members' => [ 'filterPath' => [ 'shape' => 'String', ], 'methods' => [ 'shape' => 'RestApiMethods', ], ], ], 'ApiGatewayToolFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApiGatewayToolFilter', ], ], 'ApiGatewayToolOverride' => [ 'type' => 'structure', 'required' => [ 'name', 'path', 'method', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'path' => [ 'shape' => 'String', ], 'method' => [ 'shape' => 'RestApiMethod', ], ], ], 'ApiGatewayToolOverrides' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApiGatewayToolOverride', ], ], 'ApiKeyArn' => [ 'type' => 'string', 'pattern' => 'arn:aws:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/apikeycredentialprovider/[a-zA-Z0-9-.]+', ], 'ApiKeyCredentialLocation' => [ 'type' => 'string', 'enum' => [ 'HEADER', 'QUERY_PARAMETER', ], ], 'ApiKeyCredentialParameterName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'ApiKeyCredentialPrefix' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'ApiKeyCredentialProvider' => [ 'type' => 'structure', 'required' => [ 'providerArn', ], 'members' => [ 'providerArn' => [ 'shape' => 'ApiKeyCredentialProviderArn', ], 'credentialParameterName' => [ 'shape' => 'ApiKeyCredentialParameterName', ], 'credentialPrefix' => [ 'shape' => 'ApiKeyCredentialPrefix', ], 'credentialLocation' => [ 'shape' => 'ApiKeyCredentialLocation', ], ], ], 'ApiKeyCredentialProviderArn' => [ 'type' => 'string', 'pattern' => 'arn:([^:]*):([^:]*):([^:]*):([0-9]{12})?:(.+)', ], 'ApiKeyCredentialProviderArnType' => [ 'type' => 'string', 'pattern' => 'arn:(aws|aws-us-gov):acps:[A-Za-z0-9-]{1,64}:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/apikeycredentialprovider/[a-zA-Z0-9-.]+', ], 'ApiKeyCredentialProviderItem' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderArn', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderArn' => [ 'shape' => 'ApiKeyCredentialProviderArnType', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'ApiKeyCredentialProviders' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApiKeyCredentialProviderItem', ], ], 'ApiSchemaConfiguration' => [ 'type' => 'structure', 'members' => [ 's3' => [ 'shape' => 'S3Configuration', ], 'inlinePayload' => [ 'shape' => 'InlinePayload', ], ], 'union' => true, ], 'ApprovalConfiguration' => [ 'type' => 'structure', 'members' => [ 'autoApproval' => [ 'shape' => 'Boolean', ], ], ], 'Arn' => [ 'type' => 'string', 'pattern' => 'arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}', ], 'AtlassianOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'clientId', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], ], ], 'AtlassianOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], ], ], 'AuthorizationData' => [ 'type' => 'structure', 'members' => [ 'oauth2' => [ 'shape' => 'OAuth2AuthorizationData', ], ], 'union' => true, ], 'AuthorizationEndpointType' => [ 'type' => 'string', ], 'AuthorizerConfiguration' => [ 'type' => 'structure', 'members' => [ 'customJWTAuthorizer' => [ 'shape' => 'CustomJWTAuthorizerConfiguration', ], ], 'union' => true, ], 'AuthorizerType' => [ 'type' => 'string', 'enum' => [ 'CUSTOM_JWT', 'AWS_IAM', 'NONE', 'AUTHENTICATE_ONLY', ], ], 'AuthorizingClaimMatchValueType' => [ 'type' => 'structure', 'required' => [ 'claimMatchValue', 'claimMatchOperator', ], 'members' => [ 'claimMatchValue' => [ 'shape' => 'ClaimMatchValueType', ], 'claimMatchOperator' => [ 'shape' => 'ClaimMatchOperatorType', ], ], ], 'AwsAccountId' => [ 'type' => 'string', 'pattern' => '[0-9]{12}', ], 'BedrockAgentcoreResourceArn' => [ 'type' => 'string', 'max' => 1011, 'min' => 20, ], 'BedrockEvaluatorModelConfig' => [ 'type' => 'structure', 'required' => [ 'modelId', ], 'members' => [ 'modelId' => [ 'shape' => 'ModelId', ], 'inferenceConfig' => [ 'shape' => 'InferenceConfiguration', ], 'additionalModelRequestFields' => [ 'shape' => 'AdditionalModelRequestFields', ], ], ], 'Boolean' => [ 'type' => 'boolean', 'box' => true, ], 'BranchName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z][a-zA-Z0-9_/-]{0,127}', ], 'BrowserArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):browser(-custom)?/(aws\\.browser\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})', ], 'BrowserEnterprisePolicies' => [ 'type' => 'list', 'member' => [ 'shape' => 'BrowserEnterprisePolicy', ], 'max' => 100, 'min' => 0, ], 'BrowserEnterprisePolicy' => [ 'type' => 'structure', 'required' => [ 'location', ], 'members' => [ 'location' => [ 'shape' => 'ResourceLocation', ], 'type' => [ 'shape' => 'BrowserEnterprisePolicyType', ], ], ], 'BrowserEnterprisePolicyType' => [ 'type' => 'string', 'enum' => [ 'MANAGED', 'RECOMMENDED', ], ], 'BrowserId' => [ 'type' => 'string', 'pattern' => '(aws\\.browser\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})', ], 'BrowserNetworkConfiguration' => [ 'type' => 'structure', 'required' => [ 'networkMode', ], 'members' => [ 'networkMode' => [ 'shape' => 'BrowserNetworkMode', ], 'vpcConfig' => [ 'shape' => 'VpcConfig', ], ], ], 'BrowserNetworkMode' => [ 'type' => 'string', 'enum' => [ 'PUBLIC', 'VPC', ], ], 'BrowserProfileArn' => [ 'type' => 'string', 'pattern' => 'arn:(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:browser-profile/[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10}', ], 'BrowserProfileId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10}', ], 'BrowserProfileName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'BrowserProfileStatus' => [ 'type' => 'string', 'enum' => [ 'READY', 'DELETING', 'DELETED', 'SAVING', ], ], 'BrowserProfileSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'BrowserProfileSummary', ], ], 'BrowserProfileSummary' => [ 'type' => 'structure', 'required' => [ 'profileId', 'profileArn', 'name', 'status', 'createdAt', 'lastUpdatedAt', ], 'members' => [ 'profileId' => [ 'shape' => 'BrowserProfileId', ], 'profileArn' => [ 'shape' => 'BrowserProfileArn', ], 'name' => [ 'shape' => 'BrowserProfileName', ], 'description' => [ 'shape' => 'Description', ], 'status' => [ 'shape' => 'BrowserProfileStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'lastSavedAt' => [ 'shape' => 'DateTimestamp', ], 'lastSavedBrowserSessionId' => [ 'shape' => 'BrowserSessionId', ], 'lastSavedBrowserId' => [ 'shape' => 'BrowserId', ], ], ], 'BrowserSessionId' => [ 'type' => 'string', 'pattern' => '[0-9a-zA-Z]{1,40}', ], 'BrowserSigningConfigInput' => [ 'type' => 'structure', 'required' => [ 'enabled', ], 'members' => [ 'enabled' => [ 'shape' => 'Boolean', ], ], ], 'BrowserSigningConfigOutput' => [ 'type' => 'structure', 'required' => [ 'enabled', ], 'members' => [ 'enabled' => [ 'shape' => 'Boolean', ], ], ], 'BrowserStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'CREATE_FAILED', 'READY', 'DELETING', 'DELETE_FAILED', 'DELETED', ], ], 'BrowserSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'BrowserSummary', ], ], 'BrowserSummary' => [ 'type' => 'structure', 'required' => [ 'browserId', 'browserArn', 'status', 'createdAt', ], 'members' => [ 'browserId' => [ 'shape' => 'BrowserId', ], 'browserArn' => [ 'shape' => 'BrowserArn', ], 'name' => [ 'shape' => 'SandboxName', ], 'description' => [ 'shape' => 'Description', ], 'status' => [ 'shape' => 'BrowserStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'CategoricalScaleDefinition' => [ 'type' => 'structure', 'required' => [ 'definition', 'label', ], 'members' => [ 'definition' => [ 'shape' => 'String', ], 'label' => [ 'shape' => 'CategoricalScaleDefinitionLabelString', ], ], ], 'CategoricalScaleDefinitionLabelString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'CategoricalScaleDefinitions' => [ 'type' => 'list', 'member' => [ 'shape' => 'CategoricalScaleDefinition', ], ], 'CedarPolicy' => [ 'type' => 'structure', 'required' => [ 'statement', ], 'members' => [ 'statement' => [ 'shape' => 'Statement', ], ], ], 'Certificate' => [ 'type' => 'structure', 'required' => [ 'location', ], 'members' => [ 'location' => [ 'shape' => 'CertificateLocation', ], ], ], 'CertificateLocation' => [ 'type' => 'structure', 'members' => [ 'secretsManager' => [ 'shape' => 'SecretsManagerLocation', ], ], 'union' => true, ], 'Certificates' => [ 'type' => 'list', 'member' => [ 'shape' => 'Certificate', ], 'max' => 200, 'min' => 1, ], 'ClaimMatchOperatorType' => [ 'type' => 'string', 'enum' => [ 'EQUALS', 'CONTAINS', 'CONTAINS_ANY', ], ], 'ClaimMatchValueType' => [ 'type' => 'structure', 'members' => [ 'matchValueString' => [ 'shape' => 'MatchValueString', ], 'matchValueStringList' => [ 'shape' => 'MatchValueStringList', ], ], 'union' => true, ], 'ClientAuthenticationMethodType' => [ 'type' => 'string', 'enum' => [ 'CLIENT_SECRET_BASIC', 'CLIENT_SECRET_POST', 'AWS_IAM_ID_TOKEN_JWT', ], ], 'ClientIdType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ClientToken' => [ 'type' => 'string', 'max' => 256, 'min' => 33, 'pattern' => '[a-zA-Z0-9](-*[a-zA-Z0-9]){0,256}', ], 'CloudWatchLogsInputConfig' => [ 'type' => 'structure', 'required' => [ 'logGroupNames', 'serviceNames', ], 'members' => [ 'logGroupNames' => [ 'shape' => 'CloudWatchLogsInputConfigLogGroupNamesList', ], 'serviceNames' => [ 'shape' => 'CloudWatchLogsInputConfigServiceNamesList', ], ], ], 'CloudWatchLogsInputConfigLogGroupNamesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LogGroupName', ], 'max' => 5, 'min' => 1, ], 'CloudWatchLogsInputConfigServiceNamesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceName', ], 'max' => 1, 'min' => 1, ], 'CloudWatchOutputConfig' => [ 'type' => 'structure', 'required' => [ 'logGroupName', ], 'members' => [ 'logGroupName' => [ 'shape' => 'LogGroupName', ], ], ], 'ClusteringConfig' => [ 'type' => 'structure', 'required' => [ 'frequencies', ], 'members' => [ 'frequencies' => [ 'shape' => 'ClusteringFrequencyList', ], ], ], 'ClusteringFrequency' => [ 'type' => 'string', 'enum' => [ 'DAILY', 'WEEKLY', 'MONTHLY', ], ], 'ClusteringFrequencyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClusteringFrequency', ], 'max' => 3, 'min' => 0, ], 'Code' => [ 'type' => 'structure', 'members' => [ 's3' => [ 'shape' => 'S3Location', ], ], 'union' => true, ], 'CodeBasedEvaluatorConfig' => [ 'type' => 'structure', 'members' => [ 'lambdaConfig' => [ 'shape' => 'LambdaEvaluatorConfig', ], ], 'union' => true, ], 'CodeConfiguration' => [ 'type' => 'structure', 'required' => [ 'code', 'runtime', 'entryPoint', ], 'members' => [ 'code' => [ 'shape' => 'Code', ], 'runtime' => [ 'shape' => 'AgentManagedRuntimeType', ], 'entryPoint' => [ 'shape' => 'CodeConfigurationEntryPointList', ], ], ], 'CodeConfigurationEntryPointList' => [ 'type' => 'list', 'member' => [ 'shape' => 'entryPoint', ], 'max' => 2, 'min' => 1, ], 'CodeInterpreterArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):code-interpreter(-custom)?/(aws\\.codeinterpreter\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})', ], 'CodeInterpreterId' => [ 'type' => 'string', 'pattern' => '(aws\\.codeinterpreter\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})', ], 'CodeInterpreterNetworkConfiguration' => [ 'type' => 'structure', 'required' => [ 'networkMode', ], 'members' => [ 'networkMode' => [ 'shape' => 'CodeInterpreterNetworkMode', ], 'vpcConfig' => [ 'shape' => 'VpcConfig', ], ], ], 'CodeInterpreterNetworkMode' => [ 'type' => 'string', 'enum' => [ 'PUBLIC', 'SANDBOX', 'VPC', ], ], 'CodeInterpreterStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'CREATE_FAILED', 'READY', 'DELETING', 'DELETE_FAILED', 'DELETED', ], ], 'CodeInterpreterSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'CodeInterpreterSummary', ], ], 'CodeInterpreterSummary' => [ 'type' => 'structure', 'required' => [ 'codeInterpreterId', 'codeInterpreterArn', 'status', 'createdAt', ], 'members' => [ 'codeInterpreterId' => [ 'shape' => 'CodeInterpreterId', ], 'codeInterpreterArn' => [ 'shape' => 'CodeInterpreterArn', ], 'name' => [ 'shape' => 'SandboxName', ], 'description' => [ 'shape' => 'Description', ], 'status' => [ 'shape' => 'CodeInterpreterStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'CoinbaseCdpApiKeyIdType' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-_]+', ], 'CoinbaseCdpConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'apiKeyId', ], 'members' => [ 'apiKeyId' => [ 'shape' => 'CoinbaseCdpApiKeyIdType', ], 'apiKeySecret' => [ 'shape' => 'DefaultCoinbaseCdpApiKeySecretType', ], 'apiKeySecretSource' => [ 'shape' => 'SecretSourceType', ], 'apiKeySecretConfig' => [ 'shape' => 'SecretReference', ], 'walletSecret' => [ 'shape' => 'DefaultCoinbaseCdpWalletSecretType', ], 'walletSecretSource' => [ 'shape' => 'SecretSourceType', ], 'walletSecretConfig' => [ 'shape' => 'SecretReference', ], ], ], 'CoinbaseCdpConfigurationOutput' => [ 'type' => 'structure', 'required' => [ 'apiKeyId', 'apiKeySecretArn', 'walletSecretArn', ], 'members' => [ 'apiKeyId' => [ 'shape' => 'CoinbaseCdpApiKeyIdType', ], 'apiKeySecretArn' => [ 'shape' => 'Secret', ], 'apiKeySecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'apiKeySecretSource' => [ 'shape' => 'SecretSourceType', ], 'walletSecretArn' => [ 'shape' => 'Secret', ], 'walletSecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'walletSecretSource' => [ 'shape' => 'SecretSourceType', ], ], ], 'ComponentConfiguration' => [ 'type' => 'structure', 'required' => [ 'configuration', ], 'members' => [ 'configuration' => [ 'shape' => 'Document', ], ], 'sensitive' => true, ], 'ComponentConfigurationMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'ComponentIdentifier', ], 'value' => [ 'shape' => 'ComponentConfiguration', ], ], 'ComponentIdentifier' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '[a-zA-Z][a-zA-Z0-9_:/.\\-]{0,2047}', ], 'ConcurrentModificationException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 409, 'senderFault' => true, ], 'exception' => true, ], 'Condition' => [ 'type' => 'structure', 'members' => [ 'matchPrincipals' => [ 'shape' => 'MatchPrincipals', ], 'matchPaths' => [ 'shape' => 'MatchPaths', ], ], 'union' => true, ], 'Conditions' => [ 'type' => 'list', 'member' => [ 'shape' => 'Condition', ], 'max' => 2, 'min' => 0, ], 'ConfigurationBundleAction' => [ 'type' => 'structure', 'members' => [ 'staticOverride' => [ 'shape' => 'StaticOverride', ], 'weightedOverride' => [ 'shape' => 'WeightedOverride', ], ], 'union' => true, ], 'ConfigurationBundleArn' => [ 'type' => 'string', 'pattern' => 'arn:aws[a-zA-Z-]*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:configuration-bundle/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'ConfigurationBundleDescription' => [ 'type' => 'string', 'max' => 500, 'min' => 1, 'pattern' => '.+', 'sensitive' => true, ], 'ConfigurationBundleId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'ConfigurationBundleName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,99}', ], 'ConfigurationBundleReference' => [ 'type' => 'structure', 'required' => [ 'bundleArn', 'bundleVersion', ], 'members' => [ 'bundleArn' => [ 'shape' => 'GatewayConfigurationBundleArn', ], 'bundleVersion' => [ 'shape' => 'ConfigurationBundleReferenceBundleVersionString', ], ], ], 'ConfigurationBundleReferenceBundleVersionString' => [ 'type' => 'string', 'pattern' => '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}', ], 'ConfigurationBundleStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'CREATING', 'CREATE_FAILED', 'UPDATING', 'UPDATE_FAILED', 'DELETING', 'DELETE_FAILED', ], ], 'ConfigurationBundleSummary' => [ 'type' => 'structure', 'required' => [ 'bundleArn', 'bundleId', 'bundleName', ], 'members' => [ 'bundleArn' => [ 'shape' => 'ConfigurationBundleArn', ], 'bundleId' => [ 'shape' => 'ConfigurationBundleId', ], 'bundleName' => [ 'shape' => 'ConfigurationBundleName', ], 'description' => [ 'shape' => 'ConfigurationBundleDescription', ], 'createdAt' => [ 'shape' => 'Timestamp', ], ], ], 'ConfigurationBundleSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationBundleSummary', ], ], 'ConfigurationBundleVersion' => [ 'type' => 'string', 'pattern' => '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}', ], 'ConfigurationBundleVersionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationBundleVersion', ], ], 'ConfigurationBundleVersionSummary' => [ 'type' => 'structure', 'required' => [ 'bundleArn', 'bundleId', 'versionId', 'versionCreatedAt', ], 'members' => [ 'bundleArn' => [ 'shape' => 'ConfigurationBundleArn', ], 'bundleId' => [ 'shape' => 'ConfigurationBundleId', ], 'versionId' => [ 'shape' => 'ConfigurationBundleVersion', ], 'lineageMetadata' => [ 'shape' => 'VersionLineageMetadata', ], 'versionCreatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ConfigurationBundleVersionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConfigurationBundleVersionSummary', ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'NonBlankString', ], ], 'error' => [ 'httpStatusCode' => 409, 'senderFault' => true, ], 'exception' => true, ], 'ConnectorConfiguration' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'ConnectorConfigurationNameString', ], 'description' => [ 'shape' => 'ConnectorConfigurationDescriptionString', ], 'parameterValues' => [ 'shape' => 'Document', ], 'parameterOverrides' => [ 'shape' => 'ConnectorParameterOverrides', ], ], ], 'ConnectorConfigurationDescriptionString' => [ 'type' => 'string', 'max' => 2000, 'min' => 0, ], 'ConnectorConfigurationNameString' => [ 'type' => 'string', 'max' => 64, 'min' => 0, 'pattern' => '[a-zA-Z][a-zA-Z0-9_-]*', ], 'ConnectorConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConnectorConfiguration', ], ], 'ConnectorId' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ConnectorParameterOverride' => [ 'type' => 'structure', 'required' => [ 'path', ], 'members' => [ 'path' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'visible' => [ 'shape' => 'Boolean', ], ], ], 'ConnectorParameterOverrides' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConnectorParameterOverride', ], ], 'ConnectorSource' => [ 'type' => 'structure', 'required' => [ 'connectorId', ], 'members' => [ 'connectorId' => [ 'shape' => 'ConnectorId', ], ], ], 'ConnectorTargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'source', ], 'members' => [ 'source' => [ 'shape' => 'ConnectorSource', ], 'enabled' => [ 'shape' => 'EnabledConnectors', ], 'configurations' => [ 'shape' => 'ConnectorConfigurations', ], ], ], 'ConsolidationConfiguration' => [ 'type' => 'structure', 'members' => [ 'customConsolidationConfiguration' => [ 'shape' => 'CustomConsolidationConfiguration', ], ], 'union' => true, ], 'ContainerConfiguration' => [ 'type' => 'structure', 'required' => [ 'containerUri', ], 'members' => [ 'containerUri' => [ 'shape' => 'RuntimeContainerUri', ], ], ], 'Content' => [ 'type' => 'structure', 'members' => [ 'rawText' => [ 'shape' => 'NaturalLanguage', ], ], 'union' => true, ], 'ContentConfiguration' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'ContentType', ], 'level' => [ 'shape' => 'ContentLevel', ], ], ], 'ContentLevel' => [ 'type' => 'string', 'enum' => [ 'METADATA_ONLY', 'FULL_CONTENT', ], ], 'ContentType' => [ 'type' => 'string', 'enum' => [ 'MEMORY_RECORDS', ], ], 'CreateAgentRuntimeEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', 'name', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'name' => [ 'shape' => 'EndpointName', ], 'agentRuntimeVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'description' => [ 'shape' => 'AgentEndpointDescription', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateAgentRuntimeEndpointResponse' => [ 'type' => 'structure', 'required' => [ 'targetVersion', 'agentRuntimeEndpointArn', 'agentRuntimeArn', 'status', 'createdAt', ], 'members' => [ 'targetVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'agentRuntimeEndpointArn' => [ 'shape' => 'AgentRuntimeEndpointArn', ], 'agentRuntimeArn' => [ 'shape' => 'AgentRuntimeArn', ], 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', ], 'endpointName' => [ 'shape' => 'EndpointName', ], 'status' => [ 'shape' => 'AgentRuntimeEndpointStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'CreateAgentRuntimeRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeName', 'agentRuntimeArtifact', 'roleArn', 'networkConfiguration', ], 'members' => [ 'agentRuntimeName' => [ 'shape' => 'AgentRuntimeName', ], 'agentRuntimeArtifact' => [ 'shape' => 'AgentRuntimeArtifact', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'description' => [ 'shape' => 'Description', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'requestHeaderConfiguration' => [ 'shape' => 'RequestHeaderConfiguration', ], 'protocolConfiguration' => [ 'shape' => 'ProtocolConfiguration', ], 'lifecycleConfiguration' => [ 'shape' => 'LifecycleConfiguration', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariablesMap', ], 'filesystemConfigurations' => [ 'shape' => 'FilesystemConfigurations', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateAgentRuntimeResponse' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeArn', 'agentRuntimeId', 'agentRuntimeVersion', 'createdAt', 'status', ], 'members' => [ 'agentRuntimeArn' => [ 'shape' => 'AgentRuntimeArn', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', ], 'agentRuntimeVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'AgentRuntimeStatus', ], ], ], 'CreateApiKeyCredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'apiKey' => [ 'shape' => 'DefaultApiKeyType', ], 'apiKeySecretConfig' => [ 'shape' => 'SecretReference', ], 'apiKeySecretSource' => [ 'shape' => 'SecretSourceType', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateApiKeyCredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'apiKeySecretArn', 'name', 'credentialProviderArn', ], 'members' => [ 'apiKeySecretArn' => [ 'shape' => 'Secret', ], 'apiKeySecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'apiKeySecretSource' => [ 'shape' => 'SecretSourceType', ], 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderArn' => [ 'shape' => 'ApiKeyCredentialProviderArnType', ], ], ], 'CreateBrowserProfileRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'BrowserProfileName', ], 'description' => [ 'shape' => 'Description', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateBrowserProfileResponse' => [ 'type' => 'structure', 'required' => [ 'profileId', 'profileArn', 'createdAt', 'status', ], 'members' => [ 'profileId' => [ 'shape' => 'BrowserProfileId', ], 'profileArn' => [ 'shape' => 'BrowserProfileArn', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'BrowserProfileStatus', ], ], ], 'CreateBrowserRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'networkConfiguration', ], 'members' => [ 'name' => [ 'shape' => 'SandboxName', ], 'description' => [ 'shape' => 'Description', ], 'executionRoleArn' => [ 'shape' => 'RoleArn', ], 'networkConfiguration' => [ 'shape' => 'BrowserNetworkConfiguration', ], 'recording' => [ 'shape' => 'RecordingConfig', ], 'browserSigning' => [ 'shape' => 'BrowserSigningConfigInput', ], 'enterprisePolicies' => [ 'shape' => 'BrowserEnterprisePolicies', ], 'certificates' => [ 'shape' => 'Certificates', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateBrowserResponse' => [ 'type' => 'structure', 'required' => [ 'browserId', 'browserArn', 'createdAt', 'status', ], 'members' => [ 'browserId' => [ 'shape' => 'BrowserId', ], 'browserArn' => [ 'shape' => 'BrowserArn', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'BrowserStatus', ], ], ], 'CreateCodeInterpreterRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'networkConfiguration', ], 'members' => [ 'name' => [ 'shape' => 'SandboxName', ], 'description' => [ 'shape' => 'Description', ], 'executionRoleArn' => [ 'shape' => 'RoleArn', ], 'networkConfiguration' => [ 'shape' => 'CodeInterpreterNetworkConfiguration', ], 'certificates' => [ 'shape' => 'Certificates', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateCodeInterpreterResponse' => [ 'type' => 'structure', 'required' => [ 'codeInterpreterId', 'codeInterpreterArn', 'createdAt', 'status', ], 'members' => [ 'codeInterpreterId' => [ 'shape' => 'CodeInterpreterId', ], 'codeInterpreterArn' => [ 'shape' => 'CodeInterpreterArn', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'CodeInterpreterStatus', ], ], ], 'CreateConfigurationBundleRequest' => [ 'type' => 'structure', 'required' => [ 'bundleName', 'components', ], 'members' => [ 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'bundleName' => [ 'shape' => 'ConfigurationBundleName', ], 'description' => [ 'shape' => 'ConfigurationBundleDescription', ], 'components' => [ 'shape' => 'ComponentConfigurationMap', ], 'branchName' => [ 'shape' => 'BranchName', ], 'commitMessage' => [ 'shape' => 'CreateConfigurationBundleRequestCommitMessageString', ], 'createdBy' => [ 'shape' => 'VersionCreatedBySource', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateConfigurationBundleRequestCommitMessageString' => [ 'type' => 'string', 'max' => 500, 'min' => 1, ], 'CreateConfigurationBundleResponse' => [ 'type' => 'structure', 'required' => [ 'bundleArn', 'bundleId', 'versionId', 'createdAt', ], 'members' => [ 'bundleArn' => [ 'shape' => 'ConfigurationBundleArn', ], 'bundleId' => [ 'shape' => 'ConfigurationBundleId', ], 'versionId' => [ 'shape' => 'ConfigurationBundleVersion', ], 'createdAt' => [ 'shape' => 'Timestamp', ], ], ], 'CreateDatasetRequest' => [ 'type' => 'structure', 'required' => [ 'datasetName', 'source', 'schemaType', ], 'members' => [ 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'datasetName' => [ 'shape' => 'DatasetName', ], 'description' => [ 'shape' => 'CreateDatasetRequestDescriptionString', ], 'source' => [ 'shape' => 'DataSourceType', ], 'schemaType' => [ 'shape' => 'DatasetSchemaType', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateDatasetRequestDescriptionString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, ], 'CreateDatasetResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'status', 'createdAt', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], ], ], 'CreateDatasetVersionRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateDatasetVersionResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'status', 'datasetVersion', 'createdAt', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'datasetVersion' => [ 'shape' => 'DatasetVersion', ], 'createdAt' => [ 'shape' => 'Timestamp', ], ], ], 'CreateEvaluatorRequest' => [ 'type' => 'structure', 'required' => [ 'evaluatorName', 'evaluatorConfig', 'level', ], 'members' => [ 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'evaluatorName' => [ 'shape' => 'CustomEvaluatorName', ], 'description' => [ 'shape' => 'EvaluatorDescription', ], 'evaluatorConfig' => [ 'shape' => 'EvaluatorConfig', ], 'level' => [ 'shape' => 'EvaluatorLevel', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateEvaluatorResponse' => [ 'type' => 'structure', 'required' => [ 'evaluatorArn', 'evaluatorId', 'createdAt', 'status', ], 'members' => [ 'evaluatorArn' => [ 'shape' => 'CustomEvaluatorArn', ], 'evaluatorId' => [ 'shape' => 'EvaluatorId', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'EvaluatorStatus', ], ], ], 'CreateGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'roleArn', 'authorizerType', ], 'members' => [ 'name' => [ 'shape' => 'GatewayName', ], 'description' => [ 'shape' => 'GatewayDescription', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'protocolType' => [ 'shape' => 'GatewayProtocolType', ], 'protocolConfiguration' => [ 'shape' => 'GatewayProtocolConfiguration', ], 'authorizerType' => [ 'shape' => 'AuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'interceptorConfigurations' => [ 'shape' => 'GatewayInterceptorConfigurations', ], 'policyEngineConfiguration' => [ 'shape' => 'GatewayPolicyEngineConfiguration', ], 'exceptionLevel' => [ 'shape' => 'ExceptionLevel', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateGatewayResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', 'gatewayId', 'createdAt', 'updatedAt', 'status', 'name', 'authorizerType', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'gatewayId' => [ 'shape' => 'GatewayId', ], 'gatewayUrl' => [ 'shape' => 'GatewayUrl', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'GatewayStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], 'name' => [ 'shape' => 'GatewayName', ], 'description' => [ 'shape' => 'GatewayDescription', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'protocolType' => [ 'shape' => 'GatewayProtocolType', ], 'protocolConfiguration' => [ 'shape' => 'GatewayProtocolConfiguration', ], 'authorizerType' => [ 'shape' => 'AuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'customTransformConfiguration' => [ 'shape' => 'CustomTransformConfiguration', ], 'interceptorConfigurations' => [ 'shape' => 'GatewayInterceptorConfigurations', ], 'policyEngineConfiguration' => [ 'shape' => 'GatewayPolicyEngineConfiguration', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'exceptionLevel' => [ 'shape' => 'ExceptionLevel', ], 'webAclArn' => [ 'shape' => 'WebAclArn', ], 'wafConfiguration' => [ 'shape' => 'WafConfiguration', ], ], ], 'CreateGatewayRuleRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'priority', 'actions', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'priority' => [ 'shape' => 'GatewayRulePriority', ], 'conditions' => [ 'shape' => 'Conditions', ], 'actions' => [ 'shape' => 'Actions', ], 'description' => [ 'shape' => 'GatewayRuleDescription', ], ], ], 'CreateGatewayRuleResponse' => [ 'type' => 'structure', 'required' => [ 'ruleId', 'gatewayArn', 'priority', 'actions', 'createdAt', 'status', ], 'members' => [ 'ruleId' => [ 'shape' => 'GatewayRuleId', ], 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'priority' => [ 'shape' => 'GatewayRulePriority', ], 'conditions' => [ 'shape' => 'Conditions', ], 'actions' => [ 'shape' => 'Actions', ], 'description' => [ 'shape' => 'GatewayRuleDescription', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'GatewayRuleStatus', ], 'system' => [ 'shape' => 'SystemManagedBlock', ], ], ], 'CreateGatewayTargetRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'targetConfiguration', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'name' => [ 'shape' => 'TargetName', ], 'description' => [ 'shape' => 'TargetDescription', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'targetConfiguration' => [ 'shape' => 'TargetConfiguration', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialProviderConfigurations', ], 'metadataConfiguration' => [ 'shape' => 'MetadataConfiguration', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], ], ], 'CreateGatewayTargetResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', 'targetId', 'createdAt', 'updatedAt', 'status', 'name', 'targetConfiguration', 'credentialProviderConfigurations', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'targetId' => [ 'shape' => 'TargetId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'TargetStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], 'name' => [ 'shape' => 'TargetName', ], 'description' => [ 'shape' => 'TargetDescription', ], 'targetConfiguration' => [ 'shape' => 'TargetConfiguration', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialProviderConfigurations', ], 'lastSynchronizedAt' => [ 'shape' => 'DateTimestamp', ], 'metadataConfiguration' => [ 'shape' => 'MetadataConfiguration', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], 'privateEndpointManagedResources' => [ 'shape' => 'PrivateEndpointManagedResources', ], 'authorizationData' => [ 'shape' => 'AuthorizationData', ], 'protocolType' => [ 'shape' => 'TargetProtocolType', ], ], ], 'CreateHarnessEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', 'endpointName', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'endpointName' => [ 'shape' => 'HarnessEndpointName', ], 'targetVersion' => [ 'shape' => 'HarnessVersion', ], 'description' => [ 'shape' => 'HarnessEndpointDescription', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateHarnessEndpointResponse' => [ 'type' => 'structure', 'required' => [ 'endpoint', ], 'members' => [ 'endpoint' => [ 'shape' => 'HarnessEndpoint', ], ], ], 'CreateHarnessRequest' => [ 'type' => 'structure', 'required' => [ 'harnessName', 'executionRoleArn', ], 'members' => [ 'harnessName' => [ 'shape' => 'HarnessName', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'executionRoleArn' => [ 'shape' => 'RoleArn', ], 'environment' => [ 'shape' => 'HarnessEnvironmentProviderRequest', ], 'environmentArtifact' => [ 'shape' => 'HarnessEnvironmentArtifact', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariablesMap', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'model' => [ 'shape' => 'HarnessModelConfiguration', ], 'systemPrompt' => [ 'shape' => 'HarnessSystemPrompt', ], 'tools' => [ 'shape' => 'HarnessTools', ], 'skills' => [ 'shape' => 'HarnessSkills', ], 'allowedTools' => [ 'shape' => 'HarnessAllowedTools', ], 'memory' => [ 'shape' => 'HarnessMemoryConfiguration', ], 'truncation' => [ 'shape' => 'HarnessTruncationConfiguration', ], 'maxIterations' => [ 'shape' => 'Integer', ], 'maxTokens' => [ 'shape' => 'Integer', ], 'timeoutSeconds' => [ 'shape' => 'Integer', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateHarnessResponse' => [ 'type' => 'structure', 'required' => [ 'harness', ], 'members' => [ 'harness' => [ 'shape' => 'Harness', ], ], ], 'CreateMemoryInput' => [ 'type' => 'structure', 'required' => [ 'name', 'eventExpiryDuration', ], 'members' => [ 'clientToken' => [ 'shape' => 'CreateMemoryInputClientTokenString', 'idempotencyToken' => true, ], 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'encryptionKeyArn' => [ 'shape' => 'Arn', ], 'memoryExecutionRoleArn' => [ 'shape' => 'Arn', ], 'eventExpiryDuration' => [ 'shape' => 'CreateMemoryInputEventExpiryDurationInteger', ], 'memoryStrategies' => [ 'shape' => 'MemoryStrategyInputList', ], 'indexedKeys' => [ 'shape' => 'IndexedKeysList', ], 'streamDeliveryResources' => [ 'shape' => 'StreamDeliveryResources', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateMemoryInputClientTokenString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, ], 'CreateMemoryInputEventExpiryDurationInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 365, 'min' => 3, ], 'CreateMemoryOutput' => [ 'type' => 'structure', 'members' => [ 'memory' => [ 'shape' => 'Memory', ], ], ], 'CreateOauth2CredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderVendor', 'oauth2ProviderConfigInput', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'CredentialProviderVendorType', ], 'oauth2ProviderConfigInput' => [ 'shape' => 'Oauth2ProviderConfigInput', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateOauth2CredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'clientSecretArn', 'name', 'credentialProviderArn', ], 'members' => [ 'clientSecretArn' => [ 'shape' => 'Secret', ], 'clientSecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderArn' => [ 'shape' => 'CredentialProviderArnType', ], 'callbackUrl' => [ 'shape' => 'String', ], 'oauth2ProviderConfigOutput' => [ 'shape' => 'Oauth2ProviderConfigOutput', ], 'status' => [ 'shape' => 'Status', ], ], ], 'CreateOnlineEvaluationConfigRequest' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigName', 'rule', 'dataSourceConfig', 'evaluationExecutionRoleArn', 'enableOnCreate', ], 'members' => [ 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'onlineEvaluationConfigName' => [ 'shape' => 'EvaluationConfigName', ], 'description' => [ 'shape' => 'EvaluationConfigDescription', ], 'rule' => [ 'shape' => 'Rule', ], 'dataSourceConfig' => [ 'shape' => 'DataSourceConfig', ], 'evaluators' => [ 'shape' => 'EvaluatorList', ], 'insights' => [ 'shape' => 'InsightList', ], 'clusteringConfig' => [ 'shape' => 'ClusteringConfig', ], 'evaluationExecutionRoleArn' => [ 'shape' => 'RoleArn', ], 'enableOnCreate' => [ 'shape' => 'Boolean', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateOnlineEvaluationConfigResponse' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigArn', 'onlineEvaluationConfigId', 'createdAt', 'status', 'executionStatus', ], 'members' => [ 'onlineEvaluationConfigArn' => [ 'shape' => 'OnlineEvaluationConfigArn', ], 'onlineEvaluationConfigId' => [ 'shape' => 'OnlineEvaluationConfigId', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'outputConfig' => [ 'shape' => 'OutputConfig', ], 'status' => [ 'shape' => 'OnlineEvaluationConfigStatus', ], 'executionStatus' => [ 'shape' => 'OnlineEvaluationExecutionStatus', ], 'failureReason' => [ 'shape' => 'String', ], ], ], 'CreatePaymentConnectorRequest' => [ 'type' => 'structure', 'required' => [ 'paymentManagerId', 'name', 'type', 'credentialProviderConfigurations', ], 'members' => [ 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', 'location' => 'uri', 'locationName' => 'paymentManagerId', ], 'name' => [ 'shape' => 'PaymentConnectorName', ], 'description' => [ 'shape' => 'PaymentsDescription', ], 'type' => [ 'shape' => 'PaymentConnectorType', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialsProviderConfigurations', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreatePaymentConnectorResponse' => [ 'type' => 'structure', 'required' => [ 'paymentConnectorId', 'paymentManagerId', 'name', 'type', 'credentialProviderConfigurations', 'createdAt', 'status', ], 'members' => [ 'paymentConnectorId' => [ 'shape' => 'PaymentConnectorId', ], 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', ], 'name' => [ 'shape' => 'PaymentConnectorName', ], 'type' => [ 'shape' => 'PaymentConnectorType', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialsProviderConfigurations', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PaymentConnectorStatus', ], ], ], 'CreatePaymentCredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderVendor', 'providerConfigurationInput', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'PaymentCredentialProviderVendorType', ], 'providerConfigurationInput' => [ 'shape' => 'PaymentProviderConfigurationInput', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreatePaymentCredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderVendor', 'credentialProviderArn', 'providerConfigurationOutput', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'PaymentCredentialProviderVendorType', ], 'credentialProviderArn' => [ 'shape' => 'PaymentCredentialProviderArnType', ], 'providerConfigurationOutput' => [ 'shape' => 'PaymentProviderConfigurationOutput', ], ], ], 'CreatePaymentManagerRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'authorizerType', 'roleArn', ], 'members' => [ 'name' => [ 'shape' => 'PaymentManagerName', ], 'description' => [ 'shape' => 'PaymentsDescription', ], 'authorizerType' => [ 'shape' => 'PaymentsAuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreatePaymentManagerResponse' => [ 'type' => 'structure', 'required' => [ 'paymentManagerArn', 'paymentManagerId', 'name', 'authorizerType', 'roleArn', 'createdAt', 'status', ], 'members' => [ 'paymentManagerArn' => [ 'shape' => 'PaymentManagerArn', ], 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', ], 'name' => [ 'shape' => 'PaymentManagerName', ], 'authorizerType' => [ 'shape' => 'PaymentsAuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PaymentManagerStatus', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreatePolicyEngineRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'PolicyEngineName', ], 'description' => [ 'shape' => 'Description', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreatePolicyEngineResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'name', 'createdAt', 'updatedAt', 'policyEngineArn', 'status', 'statusReasons', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyEngineName', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyEngineArn' => [ 'shape' => 'PolicyEngineArn', ], 'status' => [ 'shape' => 'PolicyEngineStatus', ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'CreatePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'definition', 'policyEngineId', ], 'members' => [ 'name' => [ 'shape' => 'PolicyName', ], 'definition' => [ 'shape' => 'PolicyDefinition', ], 'description' => [ 'shape' => 'Description', ], 'validationMode' => [ 'shape' => 'PolicyValidationMode', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreatePolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policyId', 'name', 'policyEngineId', 'createdAt', 'updatedAt', 'policyArn', 'status', 'definition', 'statusReasons', ], 'members' => [ 'policyId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyName', ], 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'status' => [ 'shape' => 'PolicyStatus', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], 'definition' => [ 'shape' => 'PolicyDefinition', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'CreateRegistryRecordRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', 'name', 'descriptorType', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], 'name' => [ 'shape' => 'RegistryRecordName', ], 'description' => [ 'shape' => 'Description', ], 'descriptorType' => [ 'shape' => 'DescriptorType', ], 'descriptors' => [ 'shape' => 'Descriptors', ], 'recordVersion' => [ 'shape' => 'RegistryRecordVersion', ], 'synchronizationType' => [ 'shape' => 'SynchronizationType', ], 'synchronizationConfiguration' => [ 'shape' => 'SynchronizationConfiguration', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateRegistryRecordResponse' => [ 'type' => 'structure', 'required' => [ 'recordArn', 'status', ], 'members' => [ 'recordArn' => [ 'shape' => 'RegistryRecordArn', ], 'status' => [ 'shape' => 'RegistryRecordStatus', ], ], ], 'CreateRegistryRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'RegistryName', ], 'description' => [ 'shape' => 'Description', ], 'authorizerType' => [ 'shape' => 'RegistryAuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'approvalConfiguration' => [ 'shape' => 'ApprovalConfiguration', ], ], ], 'CreateRegistryResponse' => [ 'type' => 'structure', 'required' => [ 'registryArn', ], 'members' => [ 'registryArn' => [ 'shape' => 'RegistryArn', ], ], ], 'CreateWorkloadIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'WorkloadIdentityNameType', ], 'allowedResourceOauth2ReturnUrls' => [ 'shape' => 'ResourceOauth2ReturnUrlListType', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'CreateWorkloadIdentityResponse' => [ 'type' => 'structure', 'required' => [ 'name', 'workloadIdentityArn', ], 'members' => [ 'name' => [ 'shape' => 'WorkloadIdentityNameType', ], 'workloadIdentityArn' => [ 'shape' => 'WorkloadIdentityArnType', ], 'allowedResourceOauth2ReturnUrls' => [ 'shape' => 'ResourceOauth2ReturnUrlListType', ], ], ], 'CredentialProvider' => [ 'type' => 'structure', 'members' => [ 'oauthCredentialProvider' => [ 'shape' => 'OAuthCredentialProvider', ], 'apiKeyCredentialProvider' => [ 'shape' => 'ApiKeyCredentialProvider', ], 'iamCredentialProvider' => [ 'shape' => 'IamCredentialProvider', ], ], 'union' => true, ], 'CredentialProviderArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:.*', ], 'CredentialProviderArnType' => [ 'type' => 'string', 'pattern' => 'arn:(aws|aws-us-gov):acps:[A-Za-z0-9-]{1,64}:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/oauth2credentialprovider/[a-zA-Z0-9-.]+', ], 'CredentialProviderConfiguration' => [ 'type' => 'structure', 'required' => [ 'credentialProviderType', ], 'members' => [ 'credentialProviderType' => [ 'shape' => 'CredentialProviderType', ], 'credentialProvider' => [ 'shape' => 'CredentialProvider', ], ], ], 'CredentialProviderConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'CredentialProviderConfiguration', ], 'max' => 1, 'min' => 1, ], 'CredentialProviderName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-_]+', ], 'CredentialProviderType' => [ 'type' => 'string', 'enum' => [ 'GATEWAY_IAM_ROLE', 'OAUTH', 'API_KEY', 'CALLER_IAM_CREDENTIALS', 'JWT_PASSTHROUGH', ], ], 'CredentialProviderVendorType' => [ 'type' => 'string', 'enum' => [ 'GoogleOauth2', 'GithubOauth2', 'SlackOauth2', 'SalesforceOauth2', 'MicrosoftOauth2', 'CustomOauth2', 'AtlassianOauth2', 'LinkedinOauth2', 'XOauth2', 'OktaOauth2', 'OneLoginOauth2', 'PingOneOauth2', 'FacebookOauth2', 'YandexOauth2', 'RedditOauth2', 'ZoomOauth2', 'TwitchOauth2', 'SpotifyOauth2', 'DropboxOauth2', 'NotionOauth2', 'HubspotOauth2', 'CyberArkOauth2', 'FusionAuthOauth2', 'Auth0Oauth2', 'CognitoOauth2', ], ], 'CredentialsProviderConfiguration' => [ 'type' => 'structure', 'members' => [ 'coinbaseCDP' => [ 'shape' => 'PaymentCredentialProviderConfiguration', ], 'stripePrivy' => [ 'shape' => 'PaymentCredentialProviderConfiguration', ], ], 'union' => true, ], 'CredentialsProviderConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'CredentialsProviderConfiguration', ], 'max' => 1, 'min' => 1, ], 'CustomClaimValidationType' => [ 'type' => 'structure', 'required' => [ 'inboundTokenClaimName', 'inboundTokenClaimValueType', 'authorizingClaimMatchValue', ], 'members' => [ 'inboundTokenClaimName' => [ 'shape' => 'InboundTokenClaimNameType', ], 'inboundTokenClaimValueType' => [ 'shape' => 'InboundTokenClaimValueType', ], 'authorizingClaimMatchValue' => [ 'shape' => 'AuthorizingClaimMatchValueType', ], ], ], 'CustomClaimValidationsType' => [ 'type' => 'list', 'member' => [ 'shape' => 'CustomClaimValidationType', ], 'min' => 1, ], 'CustomConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'semanticOverride' => [ 'shape' => 'SemanticOverrideConfigurationInput', ], 'summaryOverride' => [ 'shape' => 'SummaryOverrideConfigurationInput', ], 'userPreferenceOverride' => [ 'shape' => 'UserPreferenceOverrideConfigurationInput', ], 'episodicOverride' => [ 'shape' => 'EpisodicOverrideConfigurationInput', ], 'selfManagedConfiguration' => [ 'shape' => 'SelfManagedConfigurationInput', ], ], 'union' => true, ], 'CustomConsolidationConfiguration' => [ 'type' => 'structure', 'members' => [ 'semanticConsolidationOverride' => [ 'shape' => 'SemanticConsolidationOverride', ], 'summaryConsolidationOverride' => [ 'shape' => 'SummaryConsolidationOverride', ], 'userPreferenceConsolidationOverride' => [ 'shape' => 'UserPreferenceConsolidationOverride', ], 'episodicConsolidationOverride' => [ 'shape' => 'EpisodicConsolidationOverride', ], ], 'union' => true, ], 'CustomConsolidationConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'semanticConsolidationOverride' => [ 'shape' => 'SemanticOverrideConsolidationConfigurationInput', ], 'summaryConsolidationOverride' => [ 'shape' => 'SummaryOverrideConsolidationConfigurationInput', ], 'userPreferenceConsolidationOverride' => [ 'shape' => 'UserPreferenceOverrideConsolidationConfigurationInput', ], 'episodicConsolidationOverride' => [ 'shape' => 'EpisodicOverrideConsolidationConfigurationInput', ], ], 'union' => true, ], 'CustomDescriptor' => [ 'type' => 'structure', 'members' => [ 'inlineContent' => [ 'shape' => 'InlineContent', ], ], ], 'CustomEvaluatorArn' => [ 'type' => 'string', 'pattern' => 'arn:aws[a-zA-Z-]*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:evaluator\\/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'CustomEvaluatorName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'CustomExtractionConfiguration' => [ 'type' => 'structure', 'members' => [ 'semanticExtractionOverride' => [ 'shape' => 'SemanticExtractionOverride', ], 'userPreferenceExtractionOverride' => [ 'shape' => 'UserPreferenceExtractionOverride', ], 'episodicExtractionOverride' => [ 'shape' => 'EpisodicExtractionOverride', ], ], 'union' => true, ], 'CustomExtractionConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'semanticExtractionOverride' => [ 'shape' => 'SemanticOverrideExtractionConfigurationInput', ], 'userPreferenceExtractionOverride' => [ 'shape' => 'UserPreferenceOverrideExtractionConfigurationInput', ], 'episodicExtractionOverride' => [ 'shape' => 'EpisodicOverrideExtractionConfigurationInput', ], ], 'union' => true, ], 'CustomJWTAuthorizerConfiguration' => [ 'type' => 'structure', 'required' => [ 'discoveryUrl', ], 'members' => [ 'discoveryUrl' => [ 'shape' => 'DiscoveryUrl', ], 'allowedAudience' => [ 'shape' => 'AllowedAudienceList', ], 'allowedClients' => [ 'shape' => 'AllowedClientsList', ], 'allowedScopes' => [ 'shape' => 'AllowedScopesType', ], 'advertisedScopeMapping' => [ 'shape' => 'AdvertisedScopeMappingType', ], 'customClaims' => [ 'shape' => 'CustomClaimValidationsType', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], 'privateEndpointOverrides' => [ 'shape' => 'PrivateEndpointOverrides', ], 'allowedWorkloadConfiguration' => [ 'shape' => 'AllowedWorkloadConfiguration', ], ], ], 'CustomMemoryStrategyInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'configuration' => [ 'shape' => 'CustomConfigurationInput', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'CustomOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'DefaultClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], 'onBehalfOfTokenExchangeConfig' => [ 'shape' => 'OnBehalfOfTokenExchangeConfigType', ], 'clientAuthenticationMethod' => [ 'shape' => 'ClientAuthenticationMethodType', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], 'privateEndpointOverrides' => [ 'shape' => 'PrivateEndpointOverrides', ], ], ], 'CustomOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], 'privateEndpointOverrides' => [ 'shape' => 'PrivateEndpointOverrides', ], 'onBehalfOfTokenExchangeConfig' => [ 'shape' => 'OnBehalfOfTokenExchangeConfigType', ], 'clientAuthenticationMethod' => [ 'shape' => 'ClientAuthenticationMethodType', ], ], ], 'CustomParameterMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'CustomReflectionConfiguration' => [ 'type' => 'structure', 'members' => [ 'episodicReflectionOverride' => [ 'shape' => 'EpisodicReflectionOverride', ], ], 'union' => true, ], 'CustomReflectionConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'episodicReflectionOverride' => [ 'shape' => 'EpisodicOverrideReflectionConfigurationInput', ], ], 'union' => true, ], 'CustomTransformConfiguration' => [ 'type' => 'structure', 'members' => [ 'lambda' => [ 'shape' => 'LambdaTransformConfiguration', ], ], ], 'DataSourceConfig' => [ 'type' => 'structure', 'members' => [ 'cloudWatchLogs' => [ 'shape' => 'CloudWatchLogsInputConfig', ], ], 'union' => true, ], 'DataSourceType' => [ 'type' => 'structure', 'members' => [ 'inlineExamples' => [ 'shape' => 'InlineExamplesSource', ], 's3Source' => [ 'shape' => 'S3Source', ], ], 'union' => true, ], 'DatasetArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[a-z]+)*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:dataset/[a-zA-Z0-9_-]{1,110}', ], 'DatasetExampleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SensitiveJson', ], ], 'DatasetId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z0-9_-]{1,110}', ], 'DatasetName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'DatasetSchemaType' => [ 'type' => 'string', 'enum' => [ 'AGENTCORE_EVALUATION_PREDEFINED_V1', 'AGENTCORE_EVALUATION_SIMULATED_V1', ], ], 'DatasetStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'UPDATING', 'DELETING', 'ACTIVE', 'CREATE_FAILED', 'UPDATE_FAILED', 'DELETE_FAILED', ], ], 'DatasetSummary' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'datasetName', 'status', 'schemaType', 'exampleCount', 'createdAt', 'updatedAt', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'datasetName' => [ 'shape' => 'DatasetName', ], 'description' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'draftStatus' => [ 'shape' => 'DraftStatus', ], 'schemaType' => [ 'shape' => 'DatasetSchemaType', ], 'exampleCount' => [ 'shape' => 'Long', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'DatasetSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DatasetSummary', ], ], 'DatasetVersion' => [ 'type' => 'string', 'pattern' => '(DRAFT|[0-9]+)', ], 'DatasetVersionSummary' => [ 'type' => 'structure', 'required' => [ 'datasetVersion', 'exampleCount', 'createdAt', ], 'members' => [ 'datasetVersion' => [ 'shape' => 'DatasetVersion', ], 'exampleCount' => [ 'shape' => 'Long', ], 'createdAt' => [ 'shape' => 'Timestamp', ], ], ], 'DatasetVersionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DatasetVersionSummary', ], ], 'DateTimestamp' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'DecryptionFailure' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'DefaultApiKeyType' => [ 'type' => 'string', 'max' => 65536, 'min' => 0, 'sensitive' => true, ], 'DefaultClientIdType' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'DefaultClientSecretType' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'sensitive' => true, ], 'DefaultCoinbaseCdpApiKeySecretType' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'pattern' => '[a-zA-Z0-9+/=\\-_\\s]*', 'sensitive' => true, ], 'DefaultCoinbaseCdpWalletSecretType' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'pattern' => '[a-zA-Z0-9+/=\\-_\\s]*', 'sensitive' => true, ], 'DefaultStripePrivyAppSecretType' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'pattern' => '[a-zA-Z0-9+/=\\-_\\s]*', 'sensitive' => true, ], 'DefaultStripePrivyAuthorizationPrivateKeyType' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'pattern' => '(wallet-auth:)?[a-zA-Z0-9+/=\\-_\\s]*', 'sensitive' => true, ], 'Definition' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, 'sensitive' => true, ], 'DeleteAgentRuntimeEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', 'endpointName', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'endpointName' => [ 'shape' => 'EndpointName', 'location' => 'uri', 'locationName' => 'endpointName', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeleteAgentRuntimeEndpointResponse' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'AgentRuntimeEndpointStatus', ], 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', ], 'endpointName' => [ 'shape' => 'EndpointName', ], ], ], 'DeleteAgentRuntimeRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeleteAgentRuntimeResponse' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'AgentRuntimeStatus', ], 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', ], ], ], 'DeleteApiKeyCredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], ], ], 'DeleteApiKeyCredentialProviderResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteBrowserProfileRequest' => [ 'type' => 'structure', 'required' => [ 'profileId', ], 'members' => [ 'profileId' => [ 'shape' => 'BrowserProfileId', 'location' => 'uri', 'locationName' => 'profileId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeleteBrowserProfileResponse' => [ 'type' => 'structure', 'required' => [ 'profileId', 'profileArn', 'status', 'lastUpdatedAt', ], 'members' => [ 'profileId' => [ 'shape' => 'BrowserProfileId', ], 'profileArn' => [ 'shape' => 'BrowserProfileArn', ], 'status' => [ 'shape' => 'BrowserProfileStatus', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'lastSavedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'DeleteBrowserRequest' => [ 'type' => 'structure', 'required' => [ 'browserId', ], 'members' => [ 'browserId' => [ 'shape' => 'BrowserId', 'location' => 'uri', 'locationName' => 'browserId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeleteBrowserResponse' => [ 'type' => 'structure', 'required' => [ 'browserId', 'status', 'lastUpdatedAt', ], 'members' => [ 'browserId' => [ 'shape' => 'BrowserId', ], 'status' => [ 'shape' => 'BrowserStatus', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'DeleteCodeInterpreterRequest' => [ 'type' => 'structure', 'required' => [ 'codeInterpreterId', ], 'members' => [ 'codeInterpreterId' => [ 'shape' => 'CodeInterpreterId', 'location' => 'uri', 'locationName' => 'codeInterpreterId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeleteCodeInterpreterResponse' => [ 'type' => 'structure', 'required' => [ 'codeInterpreterId', 'status', 'lastUpdatedAt', ], 'members' => [ 'codeInterpreterId' => [ 'shape' => 'CodeInterpreterId', ], 'status' => [ 'shape' => 'CodeInterpreterStatus', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'DeleteConfigurationBundleRequest' => [ 'type' => 'structure', 'required' => [ 'bundleId', ], 'members' => [ 'bundleId' => [ 'shape' => 'ConfigurationBundleId', 'location' => 'uri', 'locationName' => 'bundleId', ], ], ], 'DeleteConfigurationBundleResponse' => [ 'type' => 'structure', 'required' => [ 'bundleId', 'status', ], 'members' => [ 'bundleId' => [ 'shape' => 'ConfigurationBundleId', ], 'status' => [ 'shape' => 'ConfigurationBundleStatus', ], ], ], 'DeleteDatasetExamplesRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', 'exampleIds', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'exampleIds' => [ 'shape' => 'DeleteDatasetExamplesRequestExampleIdsList', ], ], ], 'DeleteDatasetExamplesRequestExampleIdsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExampleId', ], 'max' => 1000, 'min' => 1, ], 'DeleteDatasetExamplesResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'status', 'deletedCount', 'updatedAt', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'deletedCount' => [ 'shape' => 'Long', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'DeleteDatasetRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'datasetVersion' => [ 'shape' => 'DatasetVersion', 'location' => 'querystring', 'locationName' => 'datasetVersion', ], ], ], 'DeleteDatasetResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'status', 'datasetVersion', 'updatedAt', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'datasetVersion' => [ 'shape' => 'DatasetVersion', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'DeleteEvaluatorRequest' => [ 'type' => 'structure', 'required' => [ 'evaluatorId', ], 'members' => [ 'evaluatorId' => [ 'shape' => 'EvaluatorId', 'location' => 'uri', 'locationName' => 'evaluatorId', ], ], ], 'DeleteEvaluatorResponse' => [ 'type' => 'structure', 'required' => [ 'evaluatorArn', 'evaluatorId', 'status', ], 'members' => [ 'evaluatorArn' => [ 'shape' => 'EvaluatorArn', ], 'evaluatorId' => [ 'shape' => 'EvaluatorId', ], 'status' => [ 'shape' => 'EvaluatorStatus', ], ], ], 'DeleteGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], ], ], 'DeleteGatewayResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayId', 'status', ], 'members' => [ 'gatewayId' => [ 'shape' => 'GatewayId', ], 'status' => [ 'shape' => 'GatewayStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], ], ], 'DeleteGatewayRuleRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'ruleId', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'ruleId' => [ 'shape' => 'GatewayRuleId', 'location' => 'uri', 'locationName' => 'ruleId', ], ], ], 'DeleteGatewayRuleResponse' => [ 'type' => 'structure', 'required' => [ 'ruleId', 'status', ], 'members' => [ 'ruleId' => [ 'shape' => 'GatewayRuleId', ], 'status' => [ 'shape' => 'GatewayRuleStatus', ], ], ], 'DeleteGatewayTargetRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'targetId', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'targetId' => [ 'shape' => 'TargetId', 'location' => 'uri', 'locationName' => 'targetId', ], ], ], 'DeleteGatewayTargetResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', 'targetId', 'status', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'targetId' => [ 'shape' => 'TargetId', ], 'status' => [ 'shape' => 'TargetStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], ], ], 'DeleteHarnessEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', 'endpointName', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'endpointName' => [ 'shape' => 'HarnessEndpointName', 'location' => 'uri', 'locationName' => 'endpointName', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeleteHarnessEndpointResponse' => [ 'type' => 'structure', 'required' => [ 'endpoint', ], 'members' => [ 'endpoint' => [ 'shape' => 'HarnessEndpoint', ], ], ], 'DeleteHarnessRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], 'deleteManagedMemory' => [ 'shape' => 'Boolean', 'location' => 'querystring', 'locationName' => 'deleteManagedMemory', ], ], ], 'DeleteHarnessResponse' => [ 'type' => 'structure', 'members' => [ 'harness' => [ 'shape' => 'Harness', ], ], ], 'DeleteMemoryInput' => [ 'type' => 'structure', 'required' => [ 'memoryId', ], 'members' => [ 'clientToken' => [ 'shape' => 'DeleteMemoryInputClientTokenString', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], 'memoryId' => [ 'shape' => 'MemoryId', 'location' => 'uri', 'locationName' => 'memoryId', ], ], ], 'DeleteMemoryInputClientTokenString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, ], 'DeleteMemoryOutput' => [ 'type' => 'structure', 'required' => [ 'memoryId', ], 'members' => [ 'memoryId' => [ 'shape' => 'MemoryId', ], 'status' => [ 'shape' => 'MemoryStatus', ], ], ], 'DeleteMemoryStrategiesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteMemoryStrategyInput', ], ], 'DeleteMemoryStrategyInput' => [ 'type' => 'structure', 'required' => [ 'memoryStrategyId', ], 'members' => [ 'memoryStrategyId' => [ 'shape' => 'String', ], ], ], 'DeleteOauth2CredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], ], ], 'DeleteOauth2CredentialProviderResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteOnlineEvaluationConfigRequest' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigId', ], 'members' => [ 'onlineEvaluationConfigId' => [ 'shape' => 'OnlineEvaluationConfigId', 'location' => 'uri', 'locationName' => 'onlineEvaluationConfigId', ], ], ], 'DeleteOnlineEvaluationConfigResponse' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigArn', 'onlineEvaluationConfigId', 'status', ], 'members' => [ 'onlineEvaluationConfigArn' => [ 'shape' => 'OnlineEvaluationConfigArn', ], 'onlineEvaluationConfigId' => [ 'shape' => 'OnlineEvaluationConfigId', ], 'status' => [ 'shape' => 'OnlineEvaluationConfigStatus', ], ], ], 'DeletePaymentConnectorRequest' => [ 'type' => 'structure', 'required' => [ 'paymentManagerId', 'paymentConnectorId', ], 'members' => [ 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', 'location' => 'uri', 'locationName' => 'paymentManagerId', ], 'paymentConnectorId' => [ 'shape' => 'PaymentConnectorId', 'location' => 'uri', 'locationName' => 'paymentConnectorId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeletePaymentConnectorResponse' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'PaymentConnectorStatus', ], 'paymentConnectorId' => [ 'shape' => 'PaymentConnectorId', ], ], ], 'DeletePaymentCredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], ], ], 'DeletePaymentCredentialProviderResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeletePaymentManagerRequest' => [ 'type' => 'structure', 'required' => [ 'paymentManagerId', ], 'members' => [ 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', 'location' => 'uri', 'locationName' => 'paymentManagerId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'querystring', 'locationName' => 'clientToken', ], ], ], 'DeletePaymentManagerResponse' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'PaymentManagerStatus', ], 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', ], ], ], 'DeletePolicyEngineRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], ], ], 'DeletePolicyEngineResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'name', 'createdAt', 'updatedAt', 'policyEngineArn', 'status', 'statusReasons', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyEngineName', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyEngineArn' => [ 'shape' => 'PolicyEngineArn', ], 'status' => [ 'shape' => 'PolicyEngineStatus', ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'DeletePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyId', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'policyId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyId', ], ], ], 'DeletePolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policyId', 'name', 'policyEngineId', 'createdAt', 'updatedAt', 'policyArn', 'status', 'definition', 'statusReasons', ], 'members' => [ 'policyId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyName', ], 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'status' => [ 'shape' => 'PolicyStatus', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], 'definition' => [ 'shape' => 'PolicyDefinition', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'DeleteRegistryRecordRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', 'recordId', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], 'recordId' => [ 'shape' => 'RecordIdentifier', 'location' => 'uri', 'locationName' => 'recordId', ], ], ], 'DeleteRegistryRecordResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteRegistryRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], ], ], 'DeleteRegistryResponse' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'RegistryStatus', ], ], ], 'DeleteResourcePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'BedrockAgentcoreResourceArn', 'location' => 'uri', 'locationName' => 'resourceArn', ], ], ], 'DeleteResourcePolicyResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteWorkloadIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'WorkloadIdentityNameType', ], ], ], 'DeleteWorkloadIdentityResponse' => [ 'type' => 'structure', 'members' => [], ], 'Description' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, 'sensitive' => true, ], 'DescriptorType' => [ 'type' => 'string', 'enum' => [ 'MCP', 'A2A', 'CUSTOM', 'AGENT_SKILLS', ], ], 'Descriptors' => [ 'type' => 'structure', 'members' => [ 'mcp' => [ 'shape' => 'McpDescriptor', ], 'a2a' => [ 'shape' => 'A2aDescriptor', ], 'custom' => [ 'shape' => 'CustomDescriptor', ], 'agentSkills' => [ 'shape' => 'AgentSkillsDescriptor', ], ], ], 'DiscoveryUrl' => [ 'type' => 'string', 'pattern' => '.+/\\.well-known/openid-configuration', ], 'DiscoveryUrlType' => [ 'type' => 'string', 'pattern' => '.+/\\.well-known/(openid-configuration|oauth-authorization-server)', ], 'Document' => [ 'type' => 'structure', 'members' => [], 'document' => true, ], 'DomainName' => [ 'type' => 'string', ], 'Double' => [ 'type' => 'double', 'box' => true, ], 'DownloadUrl' => [ 'type' => 'string', 'sensitive' => true, ], 'DraftStatus' => [ 'type' => 'string', 'enum' => [ 'MODIFIED', 'UNMODIFIED', ], ], 'EfsAccessPointArn' => [ 'type' => 'string', 'max' => 128, 'min' => 0, 'pattern' => 'arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:access-point/fsap-[0-9a-f]{8,40}', ], 'EfsAccessPointConfiguration' => [ 'type' => 'structure', 'required' => [ 'accessPointArn', 'mountPath', ], 'members' => [ 'accessPointArn' => [ 'shape' => 'EfsAccessPointArn', ], 'mountPath' => [ 'shape' => 'MountPath', ], ], ], 'EnabledConnectors' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], 'max' => 50, 'min' => 1, ], 'EncryptionFailure' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'EndpointIpAddressType' => [ 'type' => 'string', 'enum' => [ 'IPV4', 'IPV6', ], ], 'EndpointName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', 'sensitive' => true, ], 'EnforcementMode' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'LOG_ONLY', ], ], 'EnvironmentVariableKey' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'EnvironmentVariableValue' => [ 'type' => 'string', 'max' => 5000, 'min' => 0, ], 'EnvironmentVariablesMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'EnvironmentVariableKey', ], 'value' => [ 'shape' => 'EnvironmentVariableValue', ], 'max' => 50, 'min' => 0, 'sensitive' => true, ], 'EpisodicConsolidationOverride' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'EpisodicExtractionOverride' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'EpisodicMemoryStrategyInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'reflectionConfiguration' => [ 'shape' => 'EpisodicReflectionConfigurationInput', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'EpisodicOverrideConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'extraction' => [ 'shape' => 'EpisodicOverrideExtractionConfigurationInput', ], 'consolidation' => [ 'shape' => 'EpisodicOverrideConsolidationConfigurationInput', ], 'reflection' => [ 'shape' => 'EpisodicOverrideReflectionConfigurationInput', ], ], ], 'EpisodicOverrideConsolidationConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'EpisodicOverrideExtractionConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'EpisodicOverrideReflectionConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'EpisodicReflectionConfiguration' => [ 'type' => 'structure', 'members' => [ 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'EpisodicReflectionConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'EpisodicReflectionOverride' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'EvaluationConfigDescription' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'pattern' => '.+', 'sensitive' => true, ], 'EvaluationConfigName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'EvaluatorArn' => [ 'type' => 'string', 'pattern' => 'arn:aws[a-zA-Z-]*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:evaluator\\/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$|^arn:aws[a-zA-Z-]*:bedrock-agentcore:::evaluator/Builtin.[a-zA-Z0-9_-]+', ], 'EvaluatorConfig' => [ 'type' => 'structure', 'members' => [ 'llmAsAJudge' => [ 'shape' => 'LlmAsAJudgeEvaluatorConfig', ], 'codeBased' => [ 'shape' => 'CodeBasedEvaluatorConfig', ], ], 'union' => true, ], 'EvaluatorDescription' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'sensitive' => true, ], 'EvaluatorId' => [ 'type' => 'string', 'pattern' => '(Builtin.[a-zA-Z0-9_-]+|[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10})', ], 'EvaluatorInstructions' => [ 'type' => 'string', 'sensitive' => true, ], 'EvaluatorLevel' => [ 'type' => 'string', 'enum' => [ 'TOOL_CALL', 'TRACE', 'SESSION', ], ], 'EvaluatorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EvaluatorReference', ], 'max' => 10, 'min' => 0, ], 'EvaluatorModelConfig' => [ 'type' => 'structure', 'members' => [ 'bedrockEvaluatorModelConfig' => [ 'shape' => 'BedrockEvaluatorModelConfig', ], ], 'union' => true, ], 'EvaluatorName' => [ 'type' => 'string', 'pattern' => '(Builtin.[a-zA-Z0-9_-]+|[a-zA-Z][a-zA-Z0-9_]{0,47})', ], 'EvaluatorReference' => [ 'type' => 'structure', 'members' => [ 'evaluatorId' => [ 'shape' => 'EvaluatorId', ], ], 'union' => true, ], 'EvaluatorStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'CREATING', 'CREATE_FAILED', 'UPDATING', 'UPDATE_FAILED', 'DELETING', ], ], 'EvaluatorSummary' => [ 'type' => 'structure', 'required' => [ 'evaluatorArn', 'evaluatorId', 'evaluatorName', 'evaluatorType', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'evaluatorArn' => [ 'shape' => 'EvaluatorArn', ], 'evaluatorId' => [ 'shape' => 'EvaluatorId', ], 'evaluatorName' => [ 'shape' => 'EvaluatorName', ], 'description' => [ 'shape' => 'EvaluatorDescription', ], 'evaluatorType' => [ 'shape' => 'EvaluatorType', ], 'level' => [ 'shape' => 'EvaluatorLevel', ], 'status' => [ 'shape' => 'EvaluatorStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'lockedForModification' => [ 'shape' => 'Boolean', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'EvaluatorSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EvaluatorSummary', ], ], 'EvaluatorType' => [ 'type' => 'string', 'enum' => [ 'Builtin', 'Custom', 'CustomCode', ], ], 'ExampleId' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '[a-zA-Z0-9_.:-]+', ], 'ExampleIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExampleId', ], ], 'ExceptionLevel' => [ 'type' => 'string', 'enum' => [ 'DEBUG', ], ], 'ExtractionConfig' => [ 'type' => 'structure', 'members' => [ 'llmExtractionConfig' => [ 'shape' => 'LlmExtractionConfig', ], ], 'union' => true, ], 'ExtractionConfiguration' => [ 'type' => 'structure', 'members' => [ 'customExtractionConfiguration' => [ 'shape' => 'CustomExtractionConfiguration', ], ], 'union' => true, ], 'ExtractionType' => [ 'type' => 'string', 'enum' => [ 'LLM_INFERRED', 'STRICTLY_CONSISTENT', ], ], 'FilesystemConfiguration' => [ 'type' => 'structure', 'members' => [ 'sessionStorage' => [ 'shape' => 'SessionStorageConfiguration', ], 's3FilesAccessPoint' => [ 'shape' => 'S3FilesAccessPointConfiguration', ], 'efsAccessPoint' => [ 'shape' => 'EfsAccessPointConfiguration', ], ], 'union' => true, ], 'FilesystemConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilesystemConfiguration', ], 'max' => 5, 'min' => 0, ], 'Filter' => [ 'type' => 'structure', 'required' => [ 'key', 'operator', 'value', ], 'members' => [ 'key' => [ 'shape' => 'FilterKeyString', ], 'operator' => [ 'shape' => 'FilterOperator', ], 'value' => [ 'shape' => 'FilterValue', ], ], ], 'FilterKeyString' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[a-zA-Z0-9._-]+', ], 'FilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Filter', ], 'max' => 5, 'min' => 0, ], 'FilterOperator' => [ 'type' => 'string', 'enum' => [ 'Equals', 'NotEquals', 'GreaterThan', 'LessThan', 'GreaterThanOrEqual', 'LessThanOrEqual', 'Contains', 'NotContains', ], ], 'FilterValue' => [ 'type' => 'structure', 'members' => [ 'stringValue' => [ 'shape' => 'FilterValueStringValueString', ], 'doubleValue' => [ 'shape' => 'Double', ], 'booleanValue' => [ 'shape' => 'Boolean', ], ], 'union' => true, ], 'FilterValueStringValueString' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'Finding' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'FindingType', ], 'description' => [ 'shape' => 'String', ], ], ], 'FindingType' => [ 'type' => 'string', 'enum' => [ 'VALID', 'INVALID', 'NOT_TRANSLATABLE', 'ALLOW_ALL', 'ALLOW_NONE', 'DENY_ALL', 'DENY_NONE', ], ], 'Findings' => [ 'type' => 'list', 'member' => [ 'shape' => 'Finding', ], ], 'Float' => [ 'type' => 'float', 'box' => true, ], 'FromUrlSynchronizationConfiguration' => [ 'type' => 'structure', 'required' => [ 'url', ], 'members' => [ 'url' => [ 'shape' => 'McpServerUrl', ], 'credentialProviderConfigurations' => [ 'shape' => 'RegistryRecordCredentialProviderConfigurationList', ], ], ], 'GatewayArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(|-cn|-us-gov):bedrock-agentcore:[a-z0-9-]{1,20}:[0-9]{12}:gateway/([0-9a-z][-]?){1,48}-[a-z0-9]{10}', ], 'GatewayConfigurationBundleArn' => [ 'type' => 'string', 'pattern' => 'arn:aws[a-zA-Z-]*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:configuration-bundle/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'GatewayDescription' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'sensitive' => true, ], 'GatewayId' => [ 'type' => 'string', 'pattern' => '([0-9a-z][-]?){1,100}-[0-9a-z]{10}', ], 'GatewayIdentifier' => [ 'type' => 'string', 'pattern' => '([0-9a-z][-]?){1,100}-[0-9a-z]{10}', ], 'GatewayInterceptionPoint' => [ 'type' => 'string', 'enum' => [ 'REQUEST', 'RESPONSE', ], ], 'GatewayInterceptionPoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'GatewayInterceptionPoint', ], 'max' => 2, 'min' => 1, ], 'GatewayInterceptorConfiguration' => [ 'type' => 'structure', 'required' => [ 'interceptor', 'interceptionPoints', ], 'members' => [ 'interceptor' => [ 'shape' => 'InterceptorConfiguration', ], 'interceptionPoints' => [ 'shape' => 'GatewayInterceptionPoints', ], 'inputConfiguration' => [ 'shape' => 'InterceptorInputConfiguration', ], ], ], 'GatewayInterceptorConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'GatewayInterceptorConfiguration', ], 'max' => 2, 'min' => 1, ], 'GatewayMaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 1000, 'min' => 1, ], 'GatewayName' => [ 'type' => 'string', 'pattern' => '([0-9a-zA-Z][-]?){1,48}', ], 'GatewayNextToken' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '\\S*', ], 'GatewayPolicyEngineArn' => [ 'type' => 'string', 'max' => 170, 'min' => 1, 'pattern' => 'arn:aws:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:policy-engine\\/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9_]{10}', ], 'GatewayPolicyEngineConfiguration' => [ 'type' => 'structure', 'required' => [ 'arn', 'mode', ], 'members' => [ 'arn' => [ 'shape' => 'GatewayPolicyEngineArn', ], 'mode' => [ 'shape' => 'GatewayPolicyEngineMode', ], ], ], 'GatewayPolicyEngineMode' => [ 'type' => 'string', 'enum' => [ 'LOG_ONLY', 'ENFORCE', ], ], 'GatewayProtocolConfiguration' => [ 'type' => 'structure', 'members' => [ 'mcp' => [ 'shape' => 'MCPGatewayConfiguration', ], ], 'union' => true, ], 'GatewayProtocolType' => [ 'type' => 'string', 'enum' => [ 'MCP', ], ], 'GatewayRuleDescription' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'GatewayRuleDetail' => [ 'type' => 'structure', 'required' => [ 'ruleId', 'gatewayArn', 'priority', 'actions', 'createdAt', 'status', ], 'members' => [ 'ruleId' => [ 'shape' => 'GatewayRuleId', ], 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'priority' => [ 'shape' => 'GatewayRulePriority', ], 'conditions' => [ 'shape' => 'Conditions', ], 'actions' => [ 'shape' => 'Actions', ], 'description' => [ 'shape' => 'GatewayRuleDescription', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'GatewayRuleStatus', ], 'system' => [ 'shape' => 'SystemManagedBlock', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'GatewayRuleId' => [ 'type' => 'string', 'max' => 36, 'min' => 36, 'pattern' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', ], 'GatewayRuleMaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'GatewayRuleNextToken' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '\\S*', ], 'GatewayRulePriority' => [ 'type' => 'integer', 'box' => true, 'max' => 1000000, 'min' => 1, ], 'GatewayRuleStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'UPDATING', 'DELETING', ], ], 'GatewayRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'GatewayRuleDetail', ], ], 'GatewayStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'UPDATING', 'UPDATE_UNSUCCESSFUL', 'DELETING', 'READY', 'FAILED', ], ], 'GatewaySummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'GatewaySummary', ], ], 'GatewaySummary' => [ 'type' => 'structure', 'required' => [ 'gatewayId', 'name', 'status', 'createdAt', 'updatedAt', 'authorizerType', ], 'members' => [ 'gatewayId' => [ 'shape' => 'GatewayId', ], 'name' => [ 'shape' => 'GatewayName', ], 'status' => [ 'shape' => 'GatewayStatus', ], 'description' => [ 'shape' => 'GatewayDescription', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'authorizerType' => [ 'shape' => 'AuthorizerType', ], 'protocolType' => [ 'shape' => 'GatewayProtocolType', ], ], ], 'GatewayTarget' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', 'targetId', 'createdAt', 'updatedAt', 'status', 'name', 'targetConfiguration', 'credentialProviderConfigurations', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'targetId' => [ 'shape' => 'TargetId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'TargetStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], 'name' => [ 'shape' => 'TargetName', ], 'description' => [ 'shape' => 'TargetDescription', ], 'targetConfiguration' => [ 'shape' => 'TargetConfiguration', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialProviderConfigurations', ], 'lastSynchronizedAt' => [ 'shape' => 'DateTimestamp', ], 'metadataConfiguration' => [ 'shape' => 'MetadataConfiguration', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], 'privateEndpointManagedResources' => [ 'shape' => 'PrivateEndpointManagedResources', ], 'authorizationData' => [ 'shape' => 'AuthorizationData', ], 'protocolType' => [ 'shape' => 'TargetProtocolType', ], ], ], 'GatewayTargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GatewayTarget', ], ], 'GatewayUrl' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'GetAgentRuntimeEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', 'endpointName', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'endpointName' => [ 'shape' => 'EndpointName', 'location' => 'uri', 'locationName' => 'endpointName', ], ], ], 'GetAgentRuntimeEndpointResponse' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeEndpointArn', 'agentRuntimeArn', 'status', 'createdAt', 'lastUpdatedAt', 'name', 'id', ], 'members' => [ 'liveVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'targetVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'agentRuntimeEndpointArn' => [ 'shape' => 'AgentRuntimeEndpointArn', ], 'agentRuntimeArn' => [ 'shape' => 'AgentRuntimeArn', ], 'description' => [ 'shape' => 'AgentEndpointDescription', ], 'status' => [ 'shape' => 'AgentRuntimeEndpointStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'failureReason' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'EndpointName', ], 'id' => [ 'shape' => 'AgentRuntimeEndpointId', ], ], ], 'GetAgentRuntimeRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'agentRuntimeVersion' => [ 'shape' => 'AgentRuntimeVersion', 'location' => 'querystring', 'locationName' => 'version', ], ], ], 'GetAgentRuntimeResponse' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeArn', 'agentRuntimeName', 'agentRuntimeId', 'agentRuntimeVersion', 'createdAt', 'lastUpdatedAt', 'roleArn', 'networkConfiguration', 'status', 'lifecycleConfiguration', ], 'members' => [ 'agentRuntimeArn' => [ 'shape' => 'AgentRuntimeArn', ], 'agentRuntimeName' => [ 'shape' => 'AgentRuntimeName', ], 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', ], 'agentRuntimeVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'status' => [ 'shape' => 'AgentRuntimeStatus', ], 'lifecycleConfiguration' => [ 'shape' => 'LifecycleConfiguration', ], 'failureReason' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'Description', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'agentRuntimeArtifact' => [ 'shape' => 'AgentRuntimeArtifact', ], 'protocolConfiguration' => [ 'shape' => 'ProtocolConfiguration', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariablesMap', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'requestHeaderConfiguration' => [ 'shape' => 'RequestHeaderConfiguration', ], 'metadataConfiguration' => [ 'shape' => 'RuntimeMetadataConfiguration', ], 'filesystemConfigurations' => [ 'shape' => 'FilesystemConfigurations', ], ], ], 'GetApiKeyCredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], ], ], 'GetApiKeyCredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'apiKeySecretArn', 'name', 'credentialProviderArn', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'apiKeySecretArn' => [ 'shape' => 'Secret', ], 'apiKeySecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'apiKeySecretSource' => [ 'shape' => 'SecretSourceType', ], 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderArn' => [ 'shape' => 'ApiKeyCredentialProviderArnType', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'GetBrowserProfileRequest' => [ 'type' => 'structure', 'required' => [ 'profileId', ], 'members' => [ 'profileId' => [ 'shape' => 'BrowserProfileId', 'location' => 'uri', 'locationName' => 'profileId', ], ], ], 'GetBrowserProfileResponse' => [ 'type' => 'structure', 'required' => [ 'profileId', 'profileArn', 'name', 'status', 'createdAt', 'lastUpdatedAt', ], 'members' => [ 'profileId' => [ 'shape' => 'BrowserProfileId', ], 'profileArn' => [ 'shape' => 'BrowserProfileArn', ], 'name' => [ 'shape' => 'BrowserProfileName', ], 'description' => [ 'shape' => 'Description', ], 'status' => [ 'shape' => 'BrowserProfileStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'lastSavedAt' => [ 'shape' => 'DateTimestamp', ], 'lastSavedBrowserSessionId' => [ 'shape' => 'BrowserSessionId', ], 'lastSavedBrowserId' => [ 'shape' => 'BrowserId', ], ], ], 'GetBrowserRequest' => [ 'type' => 'structure', 'required' => [ 'browserId', ], 'members' => [ 'browserId' => [ 'shape' => 'BrowserId', 'location' => 'uri', 'locationName' => 'browserId', ], ], ], 'GetBrowserResponse' => [ 'type' => 'structure', 'required' => [ 'browserId', 'browserArn', 'name', 'networkConfiguration', 'status', 'createdAt', 'lastUpdatedAt', ], 'members' => [ 'browserId' => [ 'shape' => 'BrowserId', ], 'browserArn' => [ 'shape' => 'BrowserArn', ], 'name' => [ 'shape' => 'SandboxName', ], 'description' => [ 'shape' => 'Description', ], 'executionRoleArn' => [ 'shape' => 'RoleArn', ], 'networkConfiguration' => [ 'shape' => 'BrowserNetworkConfiguration', ], 'recording' => [ 'shape' => 'RecordingConfig', ], 'browserSigning' => [ 'shape' => 'BrowserSigningConfigOutput', ], 'enterprisePolicies' => [ 'shape' => 'BrowserEnterprisePolicies', ], 'certificates' => [ 'shape' => 'Certificates', ], 'status' => [ 'shape' => 'BrowserStatus', ], 'failureReason' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'GetCodeInterpreterRequest' => [ 'type' => 'structure', 'required' => [ 'codeInterpreterId', ], 'members' => [ 'codeInterpreterId' => [ 'shape' => 'CodeInterpreterId', 'location' => 'uri', 'locationName' => 'codeInterpreterId', ], ], ], 'GetCodeInterpreterResponse' => [ 'type' => 'structure', 'required' => [ 'codeInterpreterId', 'codeInterpreterArn', 'name', 'networkConfiguration', 'status', 'createdAt', 'lastUpdatedAt', ], 'members' => [ 'codeInterpreterId' => [ 'shape' => 'CodeInterpreterId', ], 'codeInterpreterArn' => [ 'shape' => 'CodeInterpreterArn', ], 'name' => [ 'shape' => 'SandboxName', ], 'description' => [ 'shape' => 'Description', ], 'executionRoleArn' => [ 'shape' => 'RoleArn', ], 'networkConfiguration' => [ 'shape' => 'CodeInterpreterNetworkConfiguration', ], 'status' => [ 'shape' => 'CodeInterpreterStatus', ], 'certificates' => [ 'shape' => 'Certificates', ], 'failureReason' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'GetConfigurationBundleRequest' => [ 'type' => 'structure', 'required' => [ 'bundleId', ], 'members' => [ 'bundleId' => [ 'shape' => 'ConfigurationBundleId', 'location' => 'uri', 'locationName' => 'bundleId', ], 'branchName' => [ 'shape' => 'BranchName', 'location' => 'querystring', 'locationName' => 'branchName', ], ], ], 'GetConfigurationBundleResponse' => [ 'type' => 'structure', 'required' => [ 'bundleArn', 'bundleId', 'bundleName', 'versionId', 'components', 'createdAt', 'updatedAt', ], 'members' => [ 'bundleArn' => [ 'shape' => 'ConfigurationBundleArn', ], 'bundleId' => [ 'shape' => 'ConfigurationBundleId', ], 'bundleName' => [ 'shape' => 'ConfigurationBundleName', ], 'description' => [ 'shape' => 'ConfigurationBundleDescription', ], 'versionId' => [ 'shape' => 'ConfigurationBundleVersion', ], 'components' => [ 'shape' => 'ComponentConfigurationMap', ], 'lineageMetadata' => [ 'shape' => 'VersionLineageMetadata', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'GetConfigurationBundleVersionRequest' => [ 'type' => 'structure', 'required' => [ 'bundleId', 'versionId', ], 'members' => [ 'bundleId' => [ 'shape' => 'ConfigurationBundleId', 'location' => 'uri', 'locationName' => 'bundleId', ], 'versionId' => [ 'shape' => 'ConfigurationBundleVersion', 'location' => 'uri', 'locationName' => 'versionId', ], ], ], 'GetConfigurationBundleVersionResponse' => [ 'type' => 'structure', 'required' => [ 'bundleArn', 'bundleId', 'bundleName', 'versionId', 'components', 'createdAt', 'versionCreatedAt', ], 'members' => [ 'bundleArn' => [ 'shape' => 'ConfigurationBundleArn', ], 'bundleId' => [ 'shape' => 'ConfigurationBundleId', ], 'bundleName' => [ 'shape' => 'ConfigurationBundleName', ], 'description' => [ 'shape' => 'ConfigurationBundleDescription', ], 'versionId' => [ 'shape' => 'ConfigurationBundleVersion', ], 'components' => [ 'shape' => 'ComponentConfigurationMap', ], 'lineageMetadata' => [ 'shape' => 'VersionLineageMetadata', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'versionCreatedAt' => [ 'shape' => 'Timestamp', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'GetDatasetRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'datasetVersion' => [ 'shape' => 'DatasetVersion', 'location' => 'querystring', 'locationName' => 'datasetVersion', ], ], ], 'GetDatasetResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'datasetVersion', 'datasetName', 'status', 'schemaType', 'exampleCount', 'createdAt', 'updatedAt', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'datasetVersion' => [ 'shape' => 'DatasetVersion', ], 'datasetName' => [ 'shape' => 'DatasetName', ], 'description' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'draftStatus' => [ 'shape' => 'DraftStatus', ], 'failureReason' => [ 'shape' => 'String', ], 'schemaType' => [ 'shape' => 'DatasetSchemaType', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'exampleCount' => [ 'shape' => 'Long', ], 'downloadUrl' => [ 'shape' => 'DownloadUrl', ], 'downloadUrlExpiresAt' => [ 'shape' => 'Timestamp', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'GetEvaluatorRequest' => [ 'type' => 'structure', 'required' => [ 'evaluatorId', ], 'members' => [ 'evaluatorId' => [ 'shape' => 'EvaluatorId', 'location' => 'uri', 'locationName' => 'evaluatorId', ], 'includedData' => [ 'shape' => 'IncludedData', 'location' => 'querystring', 'locationName' => 'includedData', ], ], ], 'GetEvaluatorResponse' => [ 'type' => 'structure', 'required' => [ 'evaluatorArn', 'evaluatorId', 'evaluatorName', 'evaluatorConfig', 'level', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'evaluatorArn' => [ 'shape' => 'EvaluatorArn', ], 'evaluatorId' => [ 'shape' => 'EvaluatorId', ], 'evaluatorName' => [ 'shape' => 'EvaluatorName', ], 'description' => [ 'shape' => 'EvaluatorDescription', ], 'evaluatorConfig' => [ 'shape' => 'EvaluatorConfig', ], 'level' => [ 'shape' => 'EvaluatorLevel', ], 'status' => [ 'shape' => 'EvaluatorStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'lockedForModification' => [ 'shape' => 'Boolean', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'GetGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], ], ], 'GetGatewayResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', 'gatewayId', 'createdAt', 'updatedAt', 'status', 'name', 'authorizerType', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'gatewayId' => [ 'shape' => 'GatewayId', ], 'gatewayUrl' => [ 'shape' => 'GatewayUrl', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'GatewayStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], 'name' => [ 'shape' => 'GatewayName', ], 'description' => [ 'shape' => 'GatewayDescription', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'protocolType' => [ 'shape' => 'GatewayProtocolType', ], 'protocolConfiguration' => [ 'shape' => 'GatewayProtocolConfiguration', ], 'authorizerType' => [ 'shape' => 'AuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'customTransformConfiguration' => [ 'shape' => 'CustomTransformConfiguration', ], 'interceptorConfigurations' => [ 'shape' => 'GatewayInterceptorConfigurations', ], 'policyEngineConfiguration' => [ 'shape' => 'GatewayPolicyEngineConfiguration', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'exceptionLevel' => [ 'shape' => 'ExceptionLevel', ], 'webAclArn' => [ 'shape' => 'WebAclArn', ], 'wafConfiguration' => [ 'shape' => 'WafConfiguration', ], ], ], 'GetGatewayRuleRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'ruleId', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'ruleId' => [ 'shape' => 'GatewayRuleId', 'location' => 'uri', 'locationName' => 'ruleId', ], ], ], 'GetGatewayRuleResponse' => [ 'type' => 'structure', 'required' => [ 'ruleId', 'gatewayArn', 'priority', 'actions', 'createdAt', 'status', ], 'members' => [ 'ruleId' => [ 'shape' => 'GatewayRuleId', ], 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'priority' => [ 'shape' => 'GatewayRulePriority', ], 'conditions' => [ 'shape' => 'Conditions', ], 'actions' => [ 'shape' => 'Actions', ], 'description' => [ 'shape' => 'GatewayRuleDescription', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'GatewayRuleStatus', ], 'system' => [ 'shape' => 'SystemManagedBlock', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'GetGatewayTargetRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'targetId', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'targetId' => [ 'shape' => 'TargetId', 'location' => 'uri', 'locationName' => 'targetId', ], ], ], 'GetGatewayTargetResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', 'targetId', 'createdAt', 'updatedAt', 'status', 'name', 'targetConfiguration', 'credentialProviderConfigurations', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'targetId' => [ 'shape' => 'TargetId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'TargetStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], 'name' => [ 'shape' => 'TargetName', ], 'description' => [ 'shape' => 'TargetDescription', ], 'targetConfiguration' => [ 'shape' => 'TargetConfiguration', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialProviderConfigurations', ], 'lastSynchronizedAt' => [ 'shape' => 'DateTimestamp', ], 'metadataConfiguration' => [ 'shape' => 'MetadataConfiguration', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], 'privateEndpointManagedResources' => [ 'shape' => 'PrivateEndpointManagedResources', ], 'authorizationData' => [ 'shape' => 'AuthorizationData', ], 'protocolType' => [ 'shape' => 'TargetProtocolType', ], ], ], 'GetHarnessEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', 'endpointName', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'endpointName' => [ 'shape' => 'HarnessEndpointName', 'location' => 'uri', 'locationName' => 'endpointName', ], ], ], 'GetHarnessEndpointResponse' => [ 'type' => 'structure', 'required' => [ 'endpoint', ], 'members' => [ 'endpoint' => [ 'shape' => 'HarnessEndpoint', ], ], ], 'GetHarnessRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'harnessVersion' => [ 'shape' => 'HarnessVersion', 'location' => 'querystring', 'locationName' => 'harnessVersion', ], ], ], 'GetHarnessResponse' => [ 'type' => 'structure', 'required' => [ 'harness', ], 'members' => [ 'harness' => [ 'shape' => 'Harness', ], ], ], 'GetMemoryInput' => [ 'type' => 'structure', 'required' => [ 'memoryId', ], 'members' => [ 'memoryId' => [ 'shape' => 'MemoryId', 'location' => 'uri', 'locationName' => 'memoryId', ], 'view' => [ 'shape' => 'MemoryView', 'location' => 'querystring', 'locationName' => 'view', ], ], ], 'GetMemoryOutput' => [ 'type' => 'structure', 'required' => [ 'memory', ], 'members' => [ 'memory' => [ 'shape' => 'Memory', ], ], ], 'GetOauth2CredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], ], ], 'GetOauth2CredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'clientSecretArn', 'name', 'credentialProviderArn', 'credentialProviderVendor', 'oauth2ProviderConfigOutput', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'clientSecretArn' => [ 'shape' => 'Secret', ], 'clientSecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderArn' => [ 'shape' => 'CredentialProviderArnType', ], 'credentialProviderVendor' => [ 'shape' => 'CredentialProviderVendorType', ], 'callbackUrl' => [ 'shape' => 'String', ], 'oauth2ProviderConfigOutput' => [ 'shape' => 'Oauth2ProviderConfigOutput', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'Status', ], 'failureReason' => [ 'shape' => 'String', ], ], ], 'GetOnlineEvaluationConfigRequest' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigId', ], 'members' => [ 'onlineEvaluationConfigId' => [ 'shape' => 'OnlineEvaluationConfigId', 'location' => 'uri', 'locationName' => 'onlineEvaluationConfigId', ], ], ], 'GetOnlineEvaluationConfigResponse' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigArn', 'onlineEvaluationConfigId', 'onlineEvaluationConfigName', 'rule', 'dataSourceConfig', 'status', 'executionStatus', 'createdAt', 'updatedAt', ], 'members' => [ 'onlineEvaluationConfigArn' => [ 'shape' => 'OnlineEvaluationConfigArn', ], 'onlineEvaluationConfigId' => [ 'shape' => 'OnlineEvaluationConfigId', ], 'onlineEvaluationConfigName' => [ 'shape' => 'EvaluationConfigName', ], 'description' => [ 'shape' => 'EvaluationConfigDescription', ], 'rule' => [ 'shape' => 'Rule', ], 'dataSourceConfig' => [ 'shape' => 'DataSourceConfig', ], 'evaluators' => [ 'shape' => 'EvaluatorList', ], 'insights' => [ 'shape' => 'InsightList', ], 'clusteringConfig' => [ 'shape' => 'ClusteringConfig', ], 'outputConfig' => [ 'shape' => 'OutputConfig', ], 'evaluationExecutionRoleArn' => [ 'shape' => 'RoleArn', ], 'status' => [ 'shape' => 'OnlineEvaluationConfigStatus', ], 'executionStatus' => [ 'shape' => 'OnlineEvaluationExecutionStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'failureReason' => [ 'shape' => 'String', ], ], ], 'GetPaymentConnectorRequest' => [ 'type' => 'structure', 'required' => [ 'paymentManagerId', 'paymentConnectorId', ], 'members' => [ 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', 'location' => 'uri', 'locationName' => 'paymentManagerId', ], 'paymentConnectorId' => [ 'shape' => 'PaymentConnectorId', 'location' => 'uri', 'locationName' => 'paymentConnectorId', ], ], ], 'GetPaymentConnectorResponse' => [ 'type' => 'structure', 'required' => [ 'paymentConnectorId', 'name', 'type', 'credentialProviderConfigurations', 'createdAt', 'lastUpdatedAt', 'status', ], 'members' => [ 'paymentConnectorId' => [ 'shape' => 'PaymentConnectorId', ], 'name' => [ 'shape' => 'PaymentConnectorName', ], 'description' => [ 'shape' => 'PaymentsDescription', ], 'type' => [ 'shape' => 'PaymentConnectorType', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialsProviderConfigurations', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PaymentConnectorStatus', ], ], ], 'GetPaymentCredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], ], ], 'GetPaymentCredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderArn', 'credentialProviderVendor', 'providerConfigurationOutput', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderArn' => [ 'shape' => 'PaymentCredentialProviderArnType', ], 'credentialProviderVendor' => [ 'shape' => 'PaymentCredentialProviderVendorType', ], 'providerConfigurationOutput' => [ 'shape' => 'PaymentProviderConfigurationOutput', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'GetPaymentManagerRequest' => [ 'type' => 'structure', 'required' => [ 'paymentManagerId', ], 'members' => [ 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', 'location' => 'uri', 'locationName' => 'paymentManagerId', ], ], ], 'GetPaymentManagerResponse' => [ 'type' => 'structure', 'required' => [ 'paymentManagerArn', 'paymentManagerId', 'name', 'authorizerType', 'roleArn', 'createdAt', 'lastUpdatedAt', 'status', ], 'members' => [ 'paymentManagerArn' => [ 'shape' => 'PaymentManagerArn', ], 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', ], 'name' => [ 'shape' => 'PaymentManagerName', ], 'description' => [ 'shape' => 'PaymentsDescription', ], 'authorizerType' => [ 'shape' => 'PaymentsAuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PaymentManagerStatus', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'GetPolicyEngineRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], ], ], 'GetPolicyEngineResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'name', 'createdAt', 'updatedAt', 'policyEngineArn', 'status', 'statusReasons', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyEngineName', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyEngineArn' => [ 'shape' => 'PolicyEngineArn', ], 'status' => [ 'shape' => 'PolicyEngineStatus', ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'GetPolicyEngineSummaryRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], ], ], 'GetPolicyEngineSummaryResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'name', 'createdAt', 'updatedAt', 'policyEngineArn', 'status', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyEngineName', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyEngineArn' => [ 'shape' => 'PolicyEngineArn', ], 'status' => [ 'shape' => 'PolicyEngineStatus', ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'GetPolicyGenerationRequest' => [ 'type' => 'structure', 'required' => [ 'policyGenerationId', 'policyEngineId', ], 'members' => [ 'policyGenerationId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyGenerationId', ], 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], ], ], 'GetPolicyGenerationResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyGenerationId', 'name', 'policyGenerationArn', 'resource', 'createdAt', 'updatedAt', 'status', 'statusReasons', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'policyGenerationId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyGenerationName', ], 'policyGenerationArn' => [ 'shape' => 'PolicyGenerationArn', ], 'resource' => [ 'shape' => 'Resource', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PolicyGenerationStatus', ], 'findings' => [ 'shape' => 'String', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'GetPolicyGenerationSummaryRequest' => [ 'type' => 'structure', 'required' => [ 'policyGenerationId', 'policyEngineId', ], 'members' => [ 'policyGenerationId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyGenerationId', ], 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], ], ], 'GetPolicyGenerationSummaryResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyGenerationId', 'name', 'policyGenerationArn', 'resource', 'createdAt', 'updatedAt', 'status', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'policyGenerationId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyGenerationName', ], 'policyGenerationArn' => [ 'shape' => 'PolicyGenerationArn', ], 'resource' => [ 'shape' => 'Resource', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PolicyGenerationStatus', ], 'findings' => [ 'shape' => 'String', ], ], ], 'GetPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyId', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'policyId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyId', ], ], ], 'GetPolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policyId', 'name', 'policyEngineId', 'createdAt', 'updatedAt', 'policyArn', 'status', 'definition', 'statusReasons', ], 'members' => [ 'policyId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyName', ], 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'status' => [ 'shape' => 'PolicyStatus', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], 'definition' => [ 'shape' => 'PolicyDefinition', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'GetPolicySummaryRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyId', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'policyId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyId', ], ], ], 'GetPolicySummaryResponse' => [ 'type' => 'structure', 'required' => [ 'policyId', 'name', 'policyEngineId', 'createdAt', 'updatedAt', 'policyArn', 'status', ], 'members' => [ 'policyId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyName', ], 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'status' => [ 'shape' => 'PolicyStatus', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], ], ], 'GetRegistryRecordRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', 'recordId', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], 'recordId' => [ 'shape' => 'RecordIdentifier', 'location' => 'uri', 'locationName' => 'recordId', ], ], ], 'GetRegistryRecordResponse' => [ 'type' => 'structure', 'required' => [ 'registryArn', 'recordArn', 'recordId', 'name', 'descriptorType', 'descriptors', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'registryArn' => [ 'shape' => 'RegistryArn', ], 'recordArn' => [ 'shape' => 'RegistryRecordArn', ], 'recordId' => [ 'shape' => 'RegistryRecordId', ], 'name' => [ 'shape' => 'RegistryRecordName', ], 'description' => [ 'shape' => 'Description', ], 'descriptorType' => [ 'shape' => 'DescriptorType', ], 'descriptors' => [ 'shape' => 'Descriptors', ], 'recordVersion' => [ 'shape' => 'RegistryRecordVersion', ], 'status' => [ 'shape' => 'RegistryRecordStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'statusReason' => [ 'shape' => 'String', ], 'synchronizationType' => [ 'shape' => 'SynchronizationType', ], 'synchronizationConfiguration' => [ 'shape' => 'SynchronizationConfiguration', ], ], ], 'GetRegistryRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], ], ], 'GetRegistryResponse' => [ 'type' => 'structure', 'required' => [ 'name', 'registryId', 'registryArn', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'name' => [ 'shape' => 'RegistryName', ], 'description' => [ 'shape' => 'Description', ], 'registryId' => [ 'shape' => 'RegistryId', ], 'registryArn' => [ 'shape' => 'RegistryArn', ], 'authorizerType' => [ 'shape' => 'RegistryAuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'approvalConfiguration' => [ 'shape' => 'ApprovalConfiguration', ], 'status' => [ 'shape' => 'RegistryStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'GetResourcePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'BedrockAgentcoreResourceArn', 'location' => 'uri', 'locationName' => 'resourceArn', ], ], ], 'GetResourcePolicyResponse' => [ 'type' => 'structure', 'members' => [ 'policy' => [ 'shape' => 'ResourcePolicyBody', ], ], ], 'GetTokenVaultRequest' => [ 'type' => 'structure', 'members' => [ 'tokenVaultId' => [ 'shape' => 'TokenVaultIdType', ], ], ], 'GetTokenVaultResponse' => [ 'type' => 'structure', 'required' => [ 'tokenVaultId', 'kmsConfiguration', 'lastModifiedDate', ], 'members' => [ 'tokenVaultId' => [ 'shape' => 'TokenVaultIdType', ], 'kmsConfiguration' => [ 'shape' => 'KmsConfiguration', ], 'lastModifiedDate' => [ 'shape' => 'Timestamp', ], ], ], 'GetWorkloadIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'WorkloadIdentityNameType', ], ], ], 'GetWorkloadIdentityResponse' => [ 'type' => 'structure', 'required' => [ 'name', 'workloadIdentityArn', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'name' => [ 'shape' => 'WorkloadIdentityNameType', ], 'workloadIdentityArn' => [ 'shape' => 'WorkloadIdentityArnType', ], 'allowedResourceOauth2ReturnUrls' => [ 'shape' => 'ResourceOauth2ReturnUrlListType', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'GithubOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'clientId', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], ], ], 'GithubOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], ], ], 'GoogleOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'clientId', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], ], ], 'GoogleOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], ], ], 'Harness' => [ 'type' => 'structure', 'required' => [ 'harnessId', 'harnessName', 'arn', 'status', 'executionRoleArn', 'createdAt', 'updatedAt', 'model', 'systemPrompt', 'tools', 'skills', 'allowedTools', 'truncation', 'environment', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', ], 'harnessName' => [ 'shape' => 'HarnessName', ], 'arn' => [ 'shape' => 'HarnessArn', ], 'status' => [ 'shape' => 'HarnessStatus', ], 'harnessVersion' => [ 'shape' => 'HarnessVersion', ], 'executionRoleArn' => [ 'shape' => 'RoleArn', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'model' => [ 'shape' => 'HarnessModelConfiguration', ], 'systemPrompt' => [ 'shape' => 'HarnessSystemPrompt', ], 'tools' => [ 'shape' => 'HarnessTools', ], 'skills' => [ 'shape' => 'HarnessSkills', ], 'allowedTools' => [ 'shape' => 'HarnessAllowedTools', ], 'truncation' => [ 'shape' => 'HarnessTruncationConfiguration', ], 'environment' => [ 'shape' => 'HarnessEnvironmentProvider', ], 'environmentArtifact' => [ 'shape' => 'HarnessEnvironmentArtifact', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariablesMap', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'memory' => [ 'shape' => 'HarnessMemoryConfiguration', ], 'maxIterations' => [ 'shape' => 'Integer', ], 'maxTokens' => [ 'shape' => 'Integer', ], 'timeoutSeconds' => [ 'shape' => 'Integer', ], 'failureReason' => [ 'shape' => 'String', ], ], ], 'HarnessAgentCoreBrowserConfig' => [ 'type' => 'structure', 'members' => [ 'browserArn' => [ 'shape' => 'HarnessBrowserArn', ], ], ], 'HarnessAgentCoreCodeInterpreterConfig' => [ 'type' => 'structure', 'members' => [ 'codeInterpreterArn' => [ 'shape' => 'HarnessCodeInterpreterArn', ], ], ], 'HarnessAgentCoreGatewayConfig' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'outboundAuth' => [ 'shape' => 'HarnessGatewayOutboundAuth', ], ], ], 'HarnessAgentCoreMemoryConfiguration' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'MemoryArn', ], 'actorId' => [ 'shape' => 'String', ], 'messagesCount' => [ 'shape' => 'Integer', ], 'retrievalConfig' => [ 'shape' => 'HarnessAgentCoreMemoryRetrievalConfigs', ], ], ], 'HarnessAgentCoreMemoryRetrievalConfig' => [ 'type' => 'structure', 'members' => [ 'topK' => [ 'shape' => 'Integer', ], 'relevanceScore' => [ 'shape' => 'Float', ], 'strategyId' => [ 'shape' => 'String', ], ], ], 'HarnessAgentCoreMemoryRetrievalConfigs' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'HarnessAgentCoreMemoryRetrievalConfig', ], ], 'HarnessAgentCoreRuntimeEnvironment' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeArn', 'agentRuntimeName', 'agentRuntimeId', 'lifecycleConfiguration', 'networkConfiguration', ], 'members' => [ 'agentRuntimeArn' => [ 'shape' => 'BedrockAgentcoreResourceArn', ], 'agentRuntimeName' => [ 'shape' => 'String', ], 'agentRuntimeId' => [ 'shape' => 'String', ], 'lifecycleConfiguration' => [ 'shape' => 'LifecycleConfiguration', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'filesystemConfigurations' => [ 'shape' => 'FilesystemConfigurations', ], ], ], 'HarnessAgentCoreRuntimeEnvironmentRequest' => [ 'type' => 'structure', 'members' => [ 'lifecycleConfiguration' => [ 'shape' => 'LifecycleConfiguration', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'filesystemConfigurations' => [ 'shape' => 'FilesystemConfigurations', ], ], ], 'HarnessAllowedTool' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '(\\*|@?[^/]+(/[^/]+)?)', ], 'HarnessAllowedTools' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessAllowedTool', ], ], 'HarnessArn' => [ 'type' => 'string', 'pattern' => 'arn:([^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:harness/[a-zA-Z][a-zA-Z0-9_]{0,39}-[a-zA-Z0-9]{10}', ], 'HarnessAwsSkillPath' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, 'pattern' => '([^*?\\[\\]]|\\*)+', ], 'HarnessAwsSkillPaths' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessAwsSkillPath', ], ], 'HarnessBedrockApiFormat' => [ 'type' => 'string', 'enum' => [ 'converse_stream', 'responses', 'chat_completions', ], ], 'HarnessBedrockModelConfig' => [ 'type' => 'structure', 'required' => [ 'modelId', ], 'members' => [ 'modelId' => [ 'shape' => 'ModelId', ], 'maxTokens' => [ 'shape' => 'MaxTokens', ], 'temperature' => [ 'shape' => 'Temperature', ], 'topP' => [ 'shape' => 'TopP', ], 'apiFormat' => [ 'shape' => 'HarnessBedrockApiFormat', ], 'additionalParams' => [ 'shape' => 'Document', ], ], ], 'HarnessBrowserArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):browser(-custom)?/(aws\\.browser\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})', ], 'HarnessCodeInterpreterArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:(aws|[0-9]{12}):code-interpreter(-custom)?/(aws\\.codeinterpreter\\.v1|[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10})', ], 'HarnessDisabledMemoryConfiguration' => [ 'type' => 'structure', 'members' => [], ], 'HarnessEndpoint' => [ 'type' => 'structure', 'required' => [ 'harnessId', 'harnessName', 'endpointName', 'arn', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', ], 'harnessName' => [ 'shape' => 'HarnessName', ], 'endpointName' => [ 'shape' => 'HarnessEndpointName', ], 'arn' => [ 'shape' => 'HarnessEndpointArn', ], 'status' => [ 'shape' => 'HarnessEndpointStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'liveVersion' => [ 'shape' => 'HarnessVersion', ], 'targetVersion' => [ 'shape' => 'HarnessVersion', ], 'description' => [ 'shape' => 'HarnessEndpointDescription', ], 'failureReason' => [ 'shape' => 'String', ], ], ], 'HarnessEndpointArn' => [ 'type' => 'string', 'pattern' => 'arn:([^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:harness/[a-zA-Z][a-zA-Z0-9_]{0,39}-[a-zA-Z0-9]{10}/endpoint/[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'HarnessEndpointDescription' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'HarnessEndpointName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'HarnessEndpointStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'CREATE_FAILED', 'UPDATING', 'UPDATE_FAILED', 'READY', 'DELETING', 'DELETE_FAILED', ], ], 'HarnessEndpoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessEndpoint', ], ], 'HarnessEnvironmentArtifact' => [ 'type' => 'structure', 'members' => [ 'containerConfiguration' => [ 'shape' => 'ContainerConfiguration', ], ], 'union' => true, ], 'HarnessEnvironmentProvider' => [ 'type' => 'structure', 'members' => [ 'agentCoreRuntimeEnvironment' => [ 'shape' => 'HarnessAgentCoreRuntimeEnvironment', ], ], 'union' => true, ], 'HarnessEnvironmentProviderRequest' => [ 'type' => 'structure', 'members' => [ 'agentCoreRuntimeEnvironment' => [ 'shape' => 'HarnessAgentCoreRuntimeEnvironmentRequest', ], ], 'union' => true, ], 'HarnessGatewayOutboundAuth' => [ 'type' => 'structure', 'members' => [ 'awsIam' => [ 'shape' => 'Unit', ], 'none' => [ 'shape' => 'Unit', ], 'oauth' => [ 'shape' => 'OAuthCredentialProvider', ], ], 'union' => true, ], 'HarnessGeminiModelConfig' => [ 'type' => 'structure', 'required' => [ 'modelId', 'apiKeyArn', ], 'members' => [ 'modelId' => [ 'shape' => 'ModelId', ], 'apiKeyArn' => [ 'shape' => 'ApiKeyArn', ], 'maxTokens' => [ 'shape' => 'MaxTokens', ], 'temperature' => [ 'shape' => 'Temperature', ], 'topP' => [ 'shape' => 'TopP', ], 'topK' => [ 'shape' => 'TopK', ], ], ], 'HarnessId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,39}-[a-zA-Z0-9]{10}', ], 'HarnessInlineFunctionConfig' => [ 'type' => 'structure', 'required' => [ 'description', 'inputSchema', ], 'members' => [ 'description' => [ 'shape' => 'HarnessInlineFunctionDescription', ], 'inputSchema' => [ 'shape' => 'SensitiveJson', ], ], ], 'HarnessInlineFunctionDescription' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, 'sensitive' => true, ], 'HarnessLiteLlmApiBase' => [ 'type' => 'string', 'max' => 16383, 'min' => 1, 'sensitive' => true, ], 'HarnessLiteLlmModelConfig' => [ 'type' => 'structure', 'required' => [ 'modelId', ], 'members' => [ 'modelId' => [ 'shape' => 'ModelId', ], 'apiKeyArn' => [ 'shape' => 'ApiKeyArn', ], 'apiBase' => [ 'shape' => 'HarnessLiteLlmApiBase', ], 'maxTokens' => [ 'shape' => 'MaxTokens', ], 'temperature' => [ 'shape' => 'Temperature', ], 'topP' => [ 'shape' => 'TopP', ], 'additionalParams' => [ 'shape' => 'Document', ], ], ], 'HarnessManagedMemoryConfiguration' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'MemoryArn', ], 'strategies' => [ 'shape' => 'HarnessManagedMemoryStrategyList', ], 'eventExpiryDuration' => [ 'shape' => 'HarnessManagedMemoryConfigurationEventExpiryDurationInteger', ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'HarnessManagedMemoryConfigurationEventExpiryDurationInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 365, 'min' => 3, ], 'HarnessManagedMemoryStrategyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessManagedMemoryStrategyType', ], 'max' => 4, 'min' => 1, ], 'HarnessManagedMemoryStrategyType' => [ 'type' => 'string', 'enum' => [ 'SEMANTIC', 'SUMMARIZATION', 'USER_PREFERENCE', 'EPISODIC', ], ], 'HarnessMemoryConfiguration' => [ 'type' => 'structure', 'members' => [ 'agentCoreMemoryConfiguration' => [ 'shape' => 'HarnessAgentCoreMemoryConfiguration', ], 'managedMemoryConfiguration' => [ 'shape' => 'HarnessManagedMemoryConfiguration', ], 'disabled' => [ 'shape' => 'HarnessDisabledMemoryConfiguration', ], ], 'union' => true, ], 'HarnessModelConfiguration' => [ 'type' => 'structure', 'members' => [ 'bedrockModelConfig' => [ 'shape' => 'HarnessBedrockModelConfig', ], 'openAiModelConfig' => [ 'shape' => 'HarnessOpenAiModelConfig', ], 'geminiModelConfig' => [ 'shape' => 'HarnessGeminiModelConfig', ], 'liteLlmModelConfig' => [ 'shape' => 'HarnessLiteLlmModelConfig', ], ], 'union' => true, ], 'HarnessName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,39}', ], 'HarnessOpenAiApiFormat' => [ 'type' => 'string', 'enum' => [ 'chat_completions', 'responses', ], ], 'HarnessOpenAiModelConfig' => [ 'type' => 'structure', 'required' => [ 'modelId', 'apiKeyArn', ], 'members' => [ 'modelId' => [ 'shape' => 'ModelId', ], 'apiKeyArn' => [ 'shape' => 'ApiKeyArn', ], 'maxTokens' => [ 'shape' => 'MaxTokens', ], 'temperature' => [ 'shape' => 'Temperature', ], 'topP' => [ 'shape' => 'TopP', ], 'apiFormat' => [ 'shape' => 'HarnessOpenAiApiFormat', ], 'additionalParams' => [ 'shape' => 'Document', ], ], ], 'HarnessRemoteMcpConfig' => [ 'type' => 'structure', 'required' => [ 'url', ], 'members' => [ 'url' => [ 'shape' => 'HarnessRemoteMcpUrl', ], 'headers' => [ 'shape' => 'HttpHeadersMap', ], ], ], 'HarnessRemoteMcpUrl' => [ 'type' => 'string', 'max' => 16383, 'min' => 1, 'sensitive' => true, ], 'HarnessSkill' => [ 'type' => 'structure', 'members' => [ 'path' => [ 'shape' => 'HarnessSkillPath', ], 's3' => [ 'shape' => 'HarnessSkillS3Source', ], 'git' => [ 'shape' => 'HarnessSkillGitSource', ], 'awsSkills' => [ 'shape' => 'HarnessSkillAwsSkillsSource', ], ], 'union' => true, ], 'HarnessSkillAwsSkillsSource' => [ 'type' => 'structure', 'members' => [ 'paths' => [ 'shape' => 'HarnessAwsSkillPaths', ], ], ], 'HarnessSkillGitAuth' => [ 'type' => 'structure', 'required' => [ 'credentialArn', ], 'members' => [ 'credentialArn' => [ 'shape' => 'ApiKeyArn', ], 'username' => [ 'shape' => 'String', ], ], ], 'HarnessSkillGitSource' => [ 'type' => 'structure', 'required' => [ 'url', ], 'members' => [ 'url' => [ 'shape' => 'HarnessSkillGitUrl', ], 'path' => [ 'shape' => 'String', ], 'auth' => [ 'shape' => 'HarnessSkillGitAuth', ], ], ], 'HarnessSkillGitUrl' => [ 'type' => 'string', 'min' => 8, 'pattern' => 'https://[^#@]+', ], 'HarnessSkillPath' => [ 'type' => 'string', 'min' => 1, ], 'HarnessSkillS3Source' => [ 'type' => 'structure', 'required' => [ 'uri', ], 'members' => [ 'uri' => [ 'shape' => 'HarnessSkillS3Uri', ], ], ], 'HarnessSkillS3Uri' => [ 'type' => 'string', 'min' => 5, 'pattern' => 's3://.*', ], 'HarnessSkills' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessSkill', ], ], 'HarnessSlidingWindowConfiguration' => [ 'type' => 'structure', 'members' => [ 'messagesCount' => [ 'shape' => 'Integer', ], ], ], 'HarnessStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'CREATE_FAILED', 'UPDATING', 'UPDATE_FAILED', 'READY', 'DELETING', 'DELETE_FAILED', ], ], 'HarnessSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessSummary', ], ], 'HarnessSummarizationConfiguration' => [ 'type' => 'structure', 'members' => [ 'summaryRatio' => [ 'shape' => 'Float', ], 'preserveRecentMessages' => [ 'shape' => 'Integer', ], 'summarizationSystemPrompt' => [ 'shape' => 'String', ], ], ], 'HarnessSummary' => [ 'type' => 'structure', 'required' => [ 'harnessId', 'harnessName', 'arn', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', ], 'harnessName' => [ 'shape' => 'HarnessName', ], 'arn' => [ 'shape' => 'HarnessArn', ], 'status' => [ 'shape' => 'HarnessStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'harnessVersion' => [ 'shape' => 'HarnessVersion', ], ], ], 'HarnessSystemContentBlock' => [ 'type' => 'structure', 'members' => [ 'text' => [ 'shape' => 'SensitiveText', ], ], 'union' => true, ], 'HarnessSystemPrompt' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessSystemContentBlock', ], ], 'HarnessTool' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'HarnessToolType', ], 'name' => [ 'shape' => 'HarnessToolName', ], 'config' => [ 'shape' => 'HarnessToolConfiguration', ], ], ], 'HarnessToolConfiguration' => [ 'type' => 'structure', 'members' => [ 'remoteMcp' => [ 'shape' => 'HarnessRemoteMcpConfig', ], 'agentCoreBrowser' => [ 'shape' => 'HarnessAgentCoreBrowserConfig', ], 'agentCoreGateway' => [ 'shape' => 'HarnessAgentCoreGatewayConfig', ], 'inlineFunction' => [ 'shape' => 'HarnessInlineFunctionConfig', ], 'agentCoreCodeInterpreter' => [ 'shape' => 'HarnessAgentCoreCodeInterpreterConfig', ], ], 'union' => true, ], 'HarnessToolName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9_-]+', ], 'HarnessToolType' => [ 'type' => 'string', 'enum' => [ 'remote_mcp', 'agentcore_browser', 'agentcore_gateway', 'inline_function', 'agentcore_code_interpreter', ], ], 'HarnessTools' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessTool', ], ], 'HarnessTruncationConfiguration' => [ 'type' => 'structure', 'required' => [ 'strategy', ], 'members' => [ 'strategy' => [ 'shape' => 'HarnessTruncationStrategy', ], 'config' => [ 'shape' => 'HarnessTruncationStrategyConfiguration', ], ], ], 'HarnessTruncationStrategy' => [ 'type' => 'string', 'enum' => [ 'sliding_window', 'summarization', 'none', ], ], 'HarnessTruncationStrategyConfiguration' => [ 'type' => 'structure', 'members' => [ 'slidingWindow' => [ 'shape' => 'HarnessSlidingWindowConfiguration', ], 'summarization' => [ 'shape' => 'HarnessSummarizationConfiguration', ], ], 'union' => true, ], 'HarnessVersion' => [ 'type' => 'string', 'max' => 5, 'min' => 1, 'pattern' => '([1-9][0-9]{0,4})', ], 'HarnessVersionSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'HarnessVersionSummary', ], ], 'HarnessVersionSummary' => [ 'type' => 'structure', 'required' => [ 'harnessId', 'harnessName', 'arn', 'harnessVersion', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', ], 'harnessName' => [ 'shape' => 'HarnessName', ], 'arn' => [ 'shape' => 'HarnessArn', ], 'harnessVersion' => [ 'shape' => 'HarnessVersion', ], 'status' => [ 'shape' => 'HarnessStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'failureReason' => [ 'shape' => 'String', ], ], ], 'HeaderName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[A-Za-z][A-Za-z0-9_-]{0,255}', ], 'HostingEnvironment' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'BedrockAgentcoreResourceArn', ], ], ], 'HostingEnvironmentListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostingEnvironment', ], 'max' => 10, 'min' => 1, ], 'HttpApiSchemaConfiguration' => [ 'type' => 'structure', 'required' => [ 'source', ], 'members' => [ 'source' => [ 'shape' => 'ApiSchemaConfiguration', ], ], ], 'HttpHeaderKey' => [ 'type' => 'string', 'max' => 16383, 'min' => 1, ], 'HttpHeaderName' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'HttpHeaderValue' => [ 'type' => 'string', 'max' => 16383, 'min' => 1, ], 'HttpHeadersMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'HttpHeaderKey', ], 'value' => [ 'shape' => 'HttpHeaderValue', ], 'sensitive' => true, ], 'HttpQueryParameterName' => [ 'type' => 'string', 'max' => 40, 'min' => 1, ], 'HttpTargetConfiguration' => [ 'type' => 'structure', 'members' => [ 'agentcoreRuntime' => [ 'shape' => 'RuntimeTargetConfiguration', ], 'passthrough' => [ 'shape' => 'PassthroughTargetConfiguration', ], ], 'union' => true, ], 'IamCredentialProvider' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'service' => [ 'shape' => 'IamCredentialProviderServiceString', ], 'region' => [ 'shape' => 'IamCredentialProviderRegionString', ], ], ], 'IamCredentialProviderRegionString' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '[a-zA-Z0-9-]+', ], 'IamCredentialProviderServiceString' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9._-]+', ], 'IamPrincipal' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'IamPrincipalArn', ], 'operator' => [ 'shape' => 'PrincipalMatchOperator', ], ], ], 'IamPrincipalArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, 'pattern' => '(arn:aws[a-zA-Z-]*:iam::(\\d{12}|\\*):(user|role)/[\\w+=,.@*?/-]+|arn:aws[a-zA-Z-]*:sts::(\\d{12}|\\*):assumed-role/[\\w+=,.@*?/-]+)', ], 'IamRoleArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => 'arn:aws(-[^:]+)?:iam::[0-9]{12}:role/.+', ], 'IamSigningRegion' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-z0-9-]+', ], 'IamSigningServiceName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9_-]+', ], 'InboundTokenClaimNameType' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[A-Za-z0-9_.-:]+', ], 'InboundTokenClaimValueType' => [ 'type' => 'string', 'enum' => [ 'STRING', 'STRING_ARRAY', ], ], 'IncludedData' => [ 'type' => 'string', 'enum' => [ 'ALL_DATA', 'METADATA_ONLY', ], ], 'IncludedOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'clientId', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], 'issuer' => [ 'shape' => 'IssuerUrlType', ], 'authorizationEndpoint' => [ 'shape' => 'AuthorizationEndpointType', ], 'tokenEndpoint' => [ 'shape' => 'TokenEndpointType', ], ], ], 'IncludedOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], ], ], 'IndexedKey' => [ 'type' => 'structure', 'required' => [ 'key', 'type', ], 'members' => [ 'key' => [ 'shape' => 'MetadataKey', ], 'type' => [ 'shape' => 'MetadataValueType', ], ], ], 'IndexedKeysList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IndexedKey', ], 'max' => 10, 'min' => 1, ], 'InferenceConfiguration' => [ 'type' => 'structure', 'members' => [ 'maxTokens' => [ 'shape' => 'InferenceConfigurationMaxTokensInteger', ], 'temperature' => [ 'shape' => 'InferenceConfigurationTemperatureFloat', ], 'topP' => [ 'shape' => 'InferenceConfigurationTopPFloat', ], 'stopSequences' => [ 'shape' => 'InferenceConfigurationStopSequencesList', ], ], ], 'InferenceConfigurationMaxTokensInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 1, ], 'InferenceConfigurationStopSequencesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NonEmptyString', ], 'max' => 2500, 'min' => 0, ], 'InferenceConfigurationTemperatureFloat' => [ 'type' => 'float', 'box' => true, 'max' => 1, 'min' => 0, ], 'InferenceConfigurationTopPFloat' => [ 'type' => 'float', 'box' => true, 'max' => 1, 'min' => 0, ], 'InferenceConnectorId' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'InferenceConnectorSource' => [ 'type' => 'structure', 'required' => [ 'connectorId', ], 'members' => [ 'connectorId' => [ 'shape' => 'InferenceConnectorId', ], ], ], 'InferenceConnectorTargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'source', ], 'members' => [ 'source' => [ 'shape' => 'InferenceConnectorSource', ], ], ], 'InferenceOperationConfiguration' => [ 'type' => 'structure', 'required' => [ 'path', ], 'members' => [ 'path' => [ 'shape' => 'InferenceOperationPath', ], 'providerPath' => [ 'shape' => 'InferenceOperationPath', ], 'models' => [ 'shape' => 'ModelEntries', ], ], ], 'InferenceOperationConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'InferenceOperationConfiguration', ], 'max' => 10, 'min' => 1, ], 'InferenceOperationPath' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '/[a-zA-Z0-9\\-\\._/]+', ], 'InferenceProviderTargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'endpoint', ], 'members' => [ 'endpoint' => [ 'shape' => 'PassthroughEndpoint', ], 'modelMapping' => [ 'shape' => 'ModelMapping', ], 'operations' => [ 'shape' => 'InferenceOperationConfigurations', ], ], ], 'InferenceTargetConfiguration' => [ 'type' => 'structure', 'members' => [ 'connector' => [ 'shape' => 'InferenceConnectorTargetConfiguration', ], 'provider' => [ 'shape' => 'InferenceProviderTargetConfiguration', ], ], 'union' => true, ], 'InlineContent' => [ 'type' => 'string', 'max' => 102400, 'min' => 1, ], 'InlineExamplesSource' => [ 'type' => 'structure', 'required' => [ 'examples', ], 'members' => [ 'examples' => [ 'shape' => 'InlineExamplesSourceExamplesList', ], ], ], 'InlineExamplesSourceExamplesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SensitiveJson', ], 'max' => 1000, 'min' => 1, ], 'InlinePayload' => [ 'type' => 'string', 'sensitive' => true, ], 'Insight' => [ 'type' => 'structure', 'required' => [ 'insightId', ], 'members' => [ 'insightId' => [ 'shape' => 'InsightId', ], ], ], 'InsightId' => [ 'type' => 'string', 'pattern' => '(Builtin\\.[a-zA-Z0-9._-]+|[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10})', ], 'InsightList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Insight', ], 'max' => 10, 'min' => 0, ], 'Integer' => [ 'type' => 'integer', 'box' => true, ], 'InterceptorConfiguration' => [ 'type' => 'structure', 'members' => [ 'lambda' => [ 'shape' => 'LambdaInterceptorConfiguration', ], ], 'union' => true, ], 'InterceptorInputConfiguration' => [ 'type' => 'structure', 'required' => [ 'passRequestHeaders', ], 'members' => [ 'passRequestHeaders' => [ 'shape' => 'Boolean', ], 'payloadFilter' => [ 'shape' => 'InterceptorPayloadFilter', ], ], ], 'InterceptorPayloadExclusion' => [ 'type' => 'string', 'enum' => [ 'RESPONSE_BODY', ], ], 'InterceptorPayloadExclusionSelector' => [ 'type' => 'structure', 'members' => [ 'field' => [ 'shape' => 'InterceptorPayloadExclusion', ], ], 'union' => true, ], 'InterceptorPayloadExclusionSelectorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InterceptorPayloadExclusionSelector', ], 'max' => 1, 'min' => 1, ], 'InterceptorPayloadFilter' => [ 'type' => 'structure', 'required' => [ 'exclude', ], 'members' => [ 'exclude' => [ 'shape' => 'InterceptorPayloadExclusionSelectorList', ], ], ], 'InternalServerException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'NonBlankString', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'InvocationConfiguration' => [ 'type' => 'structure', 'required' => [ 'topicArn', 'payloadDeliveryBucketName', ], 'members' => [ 'topicArn' => [ 'shape' => 'Arn', ], 'payloadDeliveryBucketName' => [ 'shape' => 'String', ], ], ], 'InvocationConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'topicArn', 'payloadDeliveryBucketName', ], 'members' => [ 'topicArn' => [ 'shape' => 'Arn', ], 'payloadDeliveryBucketName' => [ 'shape' => 'InvocationConfigurationInputPayloadDeliveryBucketNameString', ], ], ], 'InvocationConfigurationInputPayloadDeliveryBucketNameString' => [ 'type' => 'string', 'pattern' => '[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]', ], 'IssuerUrlType' => [ 'type' => 'string', ], 'KeyType' => [ 'type' => 'string', 'enum' => [ 'CustomerManagedKey', 'ServiceManagedKey', ], ], 'KinesisResource' => [ 'type' => 'structure', 'required' => [ 'dataStreamArn', 'contentConfigurations', ], 'members' => [ 'dataStreamArn' => [ 'shape' => 'Arn', ], 'contentConfigurations' => [ 'shape' => 'KinesisResourceContentConfigurationsList', ], ], ], 'KinesisResourceContentConfigurationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContentConfiguration', ], 'max' => 1, 'min' => 1, ], 'KmsConfiguration' => [ 'type' => 'structure', 'required' => [ 'keyType', ], 'members' => [ 'keyType' => [ 'shape' => 'KeyType', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'KmsKeyArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}', ], 'LambdaArn' => [ 'type' => 'string', 'pattern' => 'arn:(aws[a-zA-Z-]*)?:lambda:([a-z]{2}(-gov)?-[a-z]+-\\d{1}):(\\d{12}):function:([a-zA-Z0-9-_.]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?', ], 'LambdaEvaluatorConfig' => [ 'type' => 'structure', 'required' => [ 'lambdaArn', ], 'members' => [ 'lambdaArn' => [ 'shape' => 'LambdaArn', ], 'lambdaTimeoutInSeconds' => [ 'shape' => 'LambdaEvaluatorConfigLambdaTimeoutInSecondsInteger', ], ], ], 'LambdaEvaluatorConfigLambdaTimeoutInSecondsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 300, 'min' => 1, ], 'LambdaFunctionArn' => [ 'type' => 'string', 'max' => 170, 'min' => 1, 'pattern' => 'arn:(aws[a-zA-Z-]*)?:lambda:([a-z]{2}(-gov)?-[a-z]+-\\d{1}):(\\d{12}):function:([a-zA-Z0-9-_.]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?', ], 'LambdaInterceptorConfiguration' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'LambdaFunctionArn', ], ], ], 'LambdaTransformConfiguration' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'LambdaFunctionArn', ], ], ], 'LifecycleConfiguration' => [ 'type' => 'structure', 'members' => [ 'idleRuntimeSessionTimeout' => [ 'shape' => 'LifecycleConfigurationIdleRuntimeSessionTimeoutInteger', ], 'maxLifetime' => [ 'shape' => 'LifecycleConfigurationMaxLifetimeInteger', ], ], ], 'LifecycleConfigurationIdleRuntimeSessionTimeoutInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 28800, 'min' => 60, ], 'LifecycleConfigurationMaxLifetimeInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 28800, 'min' => 60, ], 'LinkedinOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'clientId', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], ], ], 'LinkedinOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], ], ], 'ListAgentRuntimeEndpointsRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListAgentRuntimeEndpointsResponse' => [ 'type' => 'structure', 'required' => [ 'runtimeEndpoints', ], 'members' => [ 'runtimeEndpoints' => [ 'shape' => 'AgentRuntimeEndpoints', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListAgentRuntimeVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListAgentRuntimeVersionsResponse' => [ 'type' => 'structure', 'required' => [ 'agentRuntimes', ], 'members' => [ 'agentRuntimes' => [ 'shape' => 'AgentRuntimes', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListAgentRuntimesRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListAgentRuntimesResponse' => [ 'type' => 'structure', 'required' => [ 'agentRuntimes', ], 'members' => [ 'agentRuntimes' => [ 'shape' => 'AgentRuntimes', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListApiKeyCredentialProvidersRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'MaxResults', ], ], ], 'ListApiKeyCredentialProvidersResponse' => [ 'type' => 'structure', 'required' => [ 'credentialProviders', ], 'members' => [ 'credentialProviders' => [ 'shape' => 'ApiKeyCredentialProviders', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListBrowserProfilesRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'name' => [ 'shape' => 'BrowserProfileName', ], ], ], 'ListBrowserProfilesResponse' => [ 'type' => 'structure', 'required' => [ 'profileSummaries', ], 'members' => [ 'profileSummaries' => [ 'shape' => 'BrowserProfileSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListBrowsersRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'type' => [ 'shape' => 'ResourceType', 'location' => 'querystring', 'locationName' => 'type', ], ], ], 'ListBrowsersResponse' => [ 'type' => 'structure', 'required' => [ 'browserSummaries', ], 'members' => [ 'browserSummaries' => [ 'shape' => 'BrowserSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListCodeInterpretersRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'type' => [ 'shape' => 'ResourceType', 'location' => 'querystring', 'locationName' => 'type', ], ], ], 'ListCodeInterpretersResponse' => [ 'type' => 'structure', 'required' => [ 'codeInterpreterSummaries', ], 'members' => [ 'codeInterpreterSummaries' => [ 'shape' => 'CodeInterpreterSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListConfigurationBundleVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'bundleId', ], 'members' => [ 'bundleId' => [ 'shape' => 'ConfigurationBundleId', 'location' => 'uri', 'locationName' => 'bundleId', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'ListConfigurationBundleVersionsRequestMaxResultsInteger', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'filter' => [ 'shape' => 'VersionFilter', ], ], ], 'ListConfigurationBundleVersionsRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ListConfigurationBundleVersionsResponse' => [ 'type' => 'structure', 'required' => [ 'versions', ], 'members' => [ 'versions' => [ 'shape' => 'ConfigurationBundleVersionSummaryList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListConfigurationBundlesRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'ListConfigurationBundlesRequestMaxResultsInteger', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListConfigurationBundlesRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ListConfigurationBundlesResponse' => [ 'type' => 'structure', 'required' => [ 'bundles', ], 'members' => [ 'bundles' => [ 'shape' => 'ConfigurationBundleSummaryList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListDatasetExamplesRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'datasetVersion' => [ 'shape' => 'DatasetVersion', 'location' => 'querystring', 'locationName' => 'datasetVersion', ], 'maxResults' => [ 'shape' => 'ListDatasetExamplesRequestMaxResultsInteger', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'ListDatasetExamplesRequestNextTokenString', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListDatasetExamplesRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 1000, 'min' => 1, ], 'ListDatasetExamplesRequestNextTokenString' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'ListDatasetExamplesResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'datasetVersion', 'examples', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'datasetVersion' => [ 'shape' => 'DatasetVersion', ], 'examples' => [ 'shape' => 'DatasetExampleList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListDatasetVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'ListDatasetVersionsRequestMaxResultsInteger', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListDatasetVersionsRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ListDatasetVersionsResponse' => [ 'type' => 'structure', 'required' => [ 'versions', ], 'members' => [ 'versions' => [ 'shape' => 'DatasetVersionSummaryList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListDatasetsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'ListDatasetsRequestNextTokenString', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'ListDatasetsRequestMaxResultsInteger', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListDatasetsRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ListDatasetsRequestNextTokenString' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'ListDatasetsResponse' => [ 'type' => 'structure', 'required' => [ 'datasets', ], 'members' => [ 'datasets' => [ 'shape' => 'DatasetSummaryList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListEvaluatorsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'ListEvaluatorsRequestMaxResultsInteger', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListEvaluatorsRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ListEvaluatorsResponse' => [ 'type' => 'structure', 'required' => [ 'evaluators', ], 'members' => [ 'evaluators' => [ 'shape' => 'EvaluatorSummaryList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListGatewayRulesRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'maxResults' => [ 'shape' => 'GatewayRuleMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'GatewayRuleNextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListGatewayRulesResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayRules', ], 'members' => [ 'gatewayRules' => [ 'shape' => 'GatewayRules', ], 'nextToken' => [ 'shape' => 'GatewayRuleNextToken', ], ], ], 'ListGatewayTargetsRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'maxResults' => [ 'shape' => 'TargetMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'TargetNextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListGatewayTargetsResponse' => [ 'type' => 'structure', 'required' => [ 'items', ], 'members' => [ 'items' => [ 'shape' => 'TargetSummaries', ], 'nextToken' => [ 'shape' => 'TargetNextToken', ], ], ], 'ListGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'GatewayMaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'GatewayNextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListGatewaysResponse' => [ 'type' => 'structure', 'required' => [ 'items', ], 'members' => [ 'items' => [ 'shape' => 'GatewaySummaries', ], 'nextToken' => [ 'shape' => 'GatewayNextToken', ], ], ], 'ListHarnessEndpointsRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListHarnessEndpointsResponse' => [ 'type' => 'structure', 'required' => [ 'endpoints', ], 'members' => [ 'endpoints' => [ 'shape' => 'HarnessEndpoints', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListHarnessVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListHarnessVersionsResponse' => [ 'type' => 'structure', 'required' => [ 'harnessVersions', ], 'members' => [ 'harnessVersions' => [ 'shape' => 'HarnessVersionSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListHarnessesRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListHarnessesResponse' => [ 'type' => 'structure', 'required' => [ 'harnesses', ], 'members' => [ 'harnesses' => [ 'shape' => 'HarnessSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListMemoriesInput' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'ListMemoriesInputMaxResultsInteger', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListMemoriesInputMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ListMemoriesOutput' => [ 'type' => 'structure', 'required' => [ 'memories', ], 'members' => [ 'memories' => [ 'shape' => 'MemorySummaryList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListOauth2CredentialProvidersRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'ListOauth2CredentialProvidersRequestMaxResultsInteger', ], ], ], 'ListOauth2CredentialProvidersRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 20, 'min' => 1, ], 'ListOauth2CredentialProvidersResponse' => [ 'type' => 'structure', 'required' => [ 'credentialProviders', ], 'members' => [ 'credentialProviders' => [ 'shape' => 'Oauth2CredentialProviders', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListOnlineEvaluationConfigsRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'ListOnlineEvaluationConfigsRequestMaxResultsInteger', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListOnlineEvaluationConfigsRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ListOnlineEvaluationConfigsResponse' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigs', ], 'members' => [ 'onlineEvaluationConfigs' => [ 'shape' => 'OnlineEvaluationConfigSummaryList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListPaymentConnectorsRequest' => [ 'type' => 'structure', 'required' => [ 'paymentManagerId', ], 'members' => [ 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', 'location' => 'uri', 'locationName' => 'paymentManagerId', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListPaymentConnectorsResponse' => [ 'type' => 'structure', 'required' => [ 'paymentConnectors', ], 'members' => [ 'paymentConnectors' => [ 'shape' => 'PaymentConnectorSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPaymentCredentialProvidersRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'ListPaymentCredentialProvidersRequestMaxResultsInteger', ], ], ], 'ListPaymentCredentialProvidersRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 20, 'min' => 1, ], 'ListPaymentCredentialProvidersResponse' => [ 'type' => 'structure', 'required' => [ 'credentialProviders', ], 'members' => [ 'credentialProviders' => [ 'shape' => 'PaymentCredentialProviders', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListPaymentManagersRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListPaymentManagersResponse' => [ 'type' => 'structure', 'required' => [ 'paymentManagers', ], 'members' => [ 'paymentManagers' => [ 'shape' => 'PaymentManagerSummaries', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPoliciesRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', ], 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'targetResourceScope' => [ 'shape' => 'BedrockAgentcoreResourceArn', 'location' => 'querystring', 'locationName' => 'targetResourceScope', ], ], ], 'ListPoliciesResponse' => [ 'type' => 'structure', 'required' => [ 'policies', ], 'members' => [ 'policies' => [ 'shape' => 'Policies', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPolicyEngineSummariesRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListPolicyEngineSummariesResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngines', ], 'members' => [ 'policyEngines' => [ 'shape' => 'PolicyEngineSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPolicyEnginesRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListPolicyEnginesResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngines', ], 'members' => [ 'policyEngines' => [ 'shape' => 'PolicyEngines', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPolicyGenerationAssetsRequest' => [ 'type' => 'structure', 'required' => [ 'policyGenerationId', 'policyEngineId', ], 'members' => [ 'policyGenerationId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyGenerationId', ], 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListPolicyGenerationAssetsResponse' => [ 'type' => 'structure', 'members' => [ 'policyGenerationAssets' => [ 'shape' => 'PolicyGenerationAssets', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPolicyGenerationSummariesRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', ], 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], ], ], 'ListPolicyGenerationSummariesResponse' => [ 'type' => 'structure', 'required' => [ 'policyGenerations', ], 'members' => [ 'policyGenerations' => [ 'shape' => 'PolicyGenerationSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPolicyGenerationsRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', ], 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], ], ], 'ListPolicyGenerationsResponse' => [ 'type' => 'structure', 'required' => [ 'policyGenerations', ], 'members' => [ 'policyGenerations' => [ 'shape' => 'PolicyGenerations', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPolicySummariesRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', ], 'members' => [ 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'targetResourceScope' => [ 'shape' => 'BedrockAgentcoreResourceArn', 'location' => 'querystring', 'locationName' => 'targetResourceScope', ], ], ], 'ListPolicySummariesResponse' => [ 'type' => 'structure', 'required' => [ 'policies', ], 'members' => [ 'policies' => [ 'shape' => 'PolicySummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListRegistriesRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'status' => [ 'shape' => 'RegistryStatus', 'location' => 'querystring', 'locationName' => 'status', ], 'authorizerType' => [ 'shape' => 'RegistryAuthorizerType', 'location' => 'querystring', 'locationName' => 'authorizerType', ], ], ], 'ListRegistriesResponse' => [ 'type' => 'structure', 'required' => [ 'registries', ], 'members' => [ 'registries' => [ 'shape' => 'RegistrySummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListRegistryRecordsRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'name' => [ 'shape' => 'RegistryRecordName', 'location' => 'querystring', 'locationName' => 'name', ], 'status' => [ 'shape' => 'RegistryRecordStatus', 'location' => 'querystring', 'locationName' => 'status', ], 'descriptorType' => [ 'shape' => 'DescriptorType', 'location' => 'querystring', 'locationName' => 'descriptorType', ], ], ], 'ListRegistryRecordsResponse' => [ 'type' => 'structure', 'required' => [ 'registryRecords', ], 'members' => [ 'registryRecords' => [ 'shape' => 'RegistryRecordSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'TaggableResourcesArn', 'location' => 'uri', 'locationName' => 'resourceArn', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'ListWorkloadIdentitiesRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'ListWorkloadIdentitiesRequestMaxResultsInteger', ], ], ], 'ListWorkloadIdentitiesRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 20, 'min' => 1, ], 'ListWorkloadIdentitiesResponse' => [ 'type' => 'structure', 'required' => [ 'workloadIdentities', ], 'members' => [ 'workloadIdentities' => [ 'shape' => 'WorkloadIdentityList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListingMode' => [ 'type' => 'string', 'enum' => [ 'DEFAULT', 'DYNAMIC', ], ], 'LlmAsAJudgeEvaluatorConfig' => [ 'type' => 'structure', 'required' => [ 'instructions', 'ratingScale', 'modelConfig', ], 'members' => [ 'instructions' => [ 'shape' => 'EvaluatorInstructions', ], 'ratingScale' => [ 'shape' => 'RatingScale', ], 'modelConfig' => [ 'shape' => 'EvaluatorModelConfig', ], ], ], 'LlmExtractionConfig' => [ 'type' => 'structure', 'required' => [ 'definition', ], 'members' => [ 'llmExtractionInstruction' => [ 'shape' => 'LlmExtractionInstruction', ], 'definition' => [ 'shape' => 'Definition', ], 'validation' => [ 'shape' => 'Validation', ], ], ], 'LlmExtractionInstruction' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, 'sensitive' => true, ], 'LogGroupName' => [ 'type' => 'string', 'pattern' => '[.\\-_/#A-Za-z0-9]+', ], 'Long' => [ 'type' => 'long', 'box' => true, ], 'MCPGatewayConfiguration' => [ 'type' => 'structure', 'members' => [ 'supportedVersions' => [ 'shape' => 'McpSupportedVersions', ], 'instructions' => [ 'shape' => 'McpInstructions', ], 'searchType' => [ 'shape' => 'SearchType', ], 'sessionConfiguration' => [ 'shape' => 'SessionConfiguration', ], 'streamingConfiguration' => [ 'shape' => 'StreamingConfiguration', ], ], ], 'ManagedResourceDetails' => [ 'type' => 'structure', 'members' => [ 'domain' => [ 'shape' => 'DomainName', ], 'resourceGatewayArn' => [ 'shape' => 'ResourceGatewayArn', ], 'resourceAssociationArn' => [ 'shape' => 'ResourceAssociationArn', ], ], ], 'ManagedVpcResource' => [ 'type' => 'structure', 'required' => [ 'vpcIdentifier', 'subnetIds', 'endpointIpAddressType', ], 'members' => [ 'vpcIdentifier' => [ 'shape' => 'VpcIdentifier', ], 'subnetIds' => [ 'shape' => 'SubnetIds', ], 'endpointIpAddressType' => [ 'shape' => 'EndpointIpAddressType', ], 'securityGroupIds' => [ 'shape' => 'SecurityGroupIds', ], 'tags' => [ 'shape' => 'TagsMap', ], 'routingDomain' => [ 'shape' => 'RoutingDomain', ], ], ], 'MatchPathPattern' => [ 'type' => 'string', 'max' => 512, 'min' => 0, 'pattern' => '/[\\w\\-.]+/\\*', ], 'MatchPaths' => [ 'type' => 'structure', 'required' => [ 'anyOf', ], 'members' => [ 'anyOf' => [ 'shape' => 'MatchPathsAnyOfList', ], ], ], 'MatchPathsAnyOfList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MatchPathPattern', ], 'max' => 10, 'min' => 1, ], 'MatchPrincipalEntry' => [ 'type' => 'structure', 'members' => [ 'iamPrincipal' => [ 'shape' => 'IamPrincipal', ], ], 'union' => true, ], 'MatchPrincipals' => [ 'type' => 'structure', 'required' => [ 'anyOf', ], 'members' => [ 'anyOf' => [ 'shape' => 'MatchPrincipalsAnyOfList', ], ], ], 'MatchPrincipalsAnyOfList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MatchPrincipalEntry', ], 'max' => 100, 'min' => 1, ], 'MatchValueString' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[A-Za-z0-9_.-]+', ], 'MatchValueStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MatchValueString', ], 'min' => 1, ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'MaxTokens' => [ 'type' => 'integer', 'box' => true, 'min' => 1, ], 'McpDescriptor' => [ 'type' => 'structure', 'members' => [ 'server' => [ 'shape' => 'ServerDefinition', ], 'tools' => [ 'shape' => 'ToolsDefinition', ], ], ], 'McpInstructions' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'sensitive' => true, ], 'McpLambdaTargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'lambdaArn', 'toolSchema', ], 'members' => [ 'lambdaArn' => [ 'shape' => 'LambdaFunctionArn', ], 'toolSchema' => [ 'shape' => 'ToolSchema', ], ], ], 'McpServerTargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'endpoint', ], 'members' => [ 'endpoint' => [ 'shape' => 'McpServerTargetConfigurationEndpointString', ], 'mcpToolSchema' => [ 'shape' => 'McpToolSchemaConfiguration', ], 'listingMode' => [ 'shape' => 'ListingMode', ], 'resourcePriority' => [ 'shape' => 'TargetResourcePriority', ], ], ], 'McpServerTargetConfigurationEndpointString' => [ 'type' => 'string', 'pattern' => 'https://.*', ], 'McpServerUrl' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'https://.*', ], 'McpSupportedVersions' => [ 'type' => 'list', 'member' => [ 'shape' => 'McpVersion', ], ], 'McpTargetConfiguration' => [ 'type' => 'structure', 'members' => [ 'openApiSchema' => [ 'shape' => 'ApiSchemaConfiguration', ], 'smithyModel' => [ 'shape' => 'ApiSchemaConfiguration', ], 'lambda' => [ 'shape' => 'McpLambdaTargetConfiguration', ], 'mcpServer' => [ 'shape' => 'McpServerTargetConfiguration', ], 'apiGateway' => [ 'shape' => 'ApiGatewayTargetConfiguration', ], 'connector' => [ 'shape' => 'ConnectorTargetConfiguration', ], ], 'union' => true, ], 'McpToolSchemaConfiguration' => [ 'type' => 'structure', 'members' => [ 's3' => [ 'shape' => 'S3Configuration', ], 'inlinePayload' => [ 'shape' => 'InlinePayload', ], ], 'union' => true, ], 'McpVersion' => [ 'type' => 'string', ], 'Memory' => [ 'type' => 'structure', 'required' => [ 'arn', 'id', 'name', 'eventExpiryDuration', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'arn' => [ 'shape' => 'MemoryArn', ], 'id' => [ 'shape' => 'MemoryId', ], 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'encryptionKeyArn' => [ 'shape' => 'Arn', ], 'memoryExecutionRoleArn' => [ 'shape' => 'Arn', ], 'eventExpiryDuration' => [ 'shape' => 'MemoryEventExpiryDurationInteger', ], 'status' => [ 'shape' => 'MemoryStatus', ], 'failureReason' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'strategies' => [ 'shape' => 'MemoryStrategyList', ], 'indexedKeys' => [ 'shape' => 'IndexedKeysList', ], 'streamDeliveryResources' => [ 'shape' => 'StreamDeliveryResources', ], 'managedByResourceArn' => [ 'shape' => 'Arn', ], ], ], 'MemoryArn' => [ 'type' => 'string', 'pattern' => 'arn:aws:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:memory\\/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'MemoryEventExpiryDurationInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 365, 'min' => 1, ], 'MemoryId' => [ 'type' => 'string', 'min' => 12, 'pattern' => '[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'MemoryRecordSchema' => [ 'type' => 'structure', 'members' => [ 'metadataSchema' => [ 'shape' => 'MetadataSchemaList', ], ], ], 'MemoryStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'FAILED', 'DELETING', 'UPDATING', ], ], 'MemoryStrategy' => [ 'type' => 'structure', 'required' => [ 'strategyId', 'name', 'type', 'namespaces', 'namespaceTemplates', ], 'members' => [ 'strategyId' => [ 'shape' => 'MemoryStrategyId', ], 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'configuration' => [ 'shape' => 'StrategyConfiguration', ], 'type' => [ 'shape' => 'MemoryStrategyType', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'MemoryStrategyStatus', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'MemoryStrategyId' => [ 'type' => 'string', 'min' => 12, 'pattern' => '[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'MemoryStrategyInput' => [ 'type' => 'structure', 'members' => [ 'semanticMemoryStrategy' => [ 'shape' => 'SemanticMemoryStrategyInput', ], 'summaryMemoryStrategy' => [ 'shape' => 'SummaryMemoryStrategyInput', ], 'userPreferenceMemoryStrategy' => [ 'shape' => 'UserPreferenceMemoryStrategyInput', ], 'customMemoryStrategy' => [ 'shape' => 'CustomMemoryStrategyInput', ], 'episodicMemoryStrategy' => [ 'shape' => 'EpisodicMemoryStrategyInput', ], ], 'union' => true, ], 'MemoryStrategyInputList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MemoryStrategyInput', ], ], 'MemoryStrategyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MemoryStrategy', ], ], 'MemoryStrategyStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'DELETING', 'FAILED', ], ], 'MemoryStrategyType' => [ 'type' => 'string', 'enum' => [ 'SEMANTIC', 'SUMMARIZATION', 'USER_PREFERENCE', 'CUSTOM', 'EPISODIC', ], ], 'MemorySummary' => [ 'type' => 'structure', 'required' => [ 'createdAt', 'updatedAt', ], 'members' => [ 'arn' => [ 'shape' => 'MemoryArn', ], 'id' => [ 'shape' => 'MemoryId', ], 'status' => [ 'shape' => 'MemoryStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'managedByResourceArn' => [ 'shape' => 'Arn', ], ], ], 'MemorySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MemorySummary', ], ], 'MemoryView' => [ 'type' => 'string', 'enum' => [ 'full', 'without_decryption', ], ], 'MessageBasedTrigger' => [ 'type' => 'structure', 'members' => [ 'messageCount' => [ 'shape' => 'Integer', ], ], ], 'MessageBasedTriggerInput' => [ 'type' => 'structure', 'members' => [ 'messageCount' => [ 'shape' => 'MessageBasedTriggerInputMessageCountInteger', ], ], ], 'MessageBasedTriggerInputMessageCountInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 50, 'min' => 1, ], 'MetadataConfiguration' => [ 'type' => 'structure', 'members' => [ 'allowedRequestHeaders' => [ 'shape' => 'AllowedRequestHeaders', ], 'allowedQueryParameters' => [ 'shape' => 'AllowedQueryParameters', ], 'allowedResponseHeaders' => [ 'shape' => 'AllowedResponseHeaders', ], ], ], 'MetadataKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\s._:/=+@-]*', ], 'MetadataSchemaEntry' => [ 'type' => 'structure', 'required' => [ 'key', ], 'members' => [ 'key' => [ 'shape' => 'MetadataKey', ], 'type' => [ 'shape' => 'MetadataValueType', ], 'extractionType' => [ 'shape' => 'ExtractionType', ], 'extractionConfig' => [ 'shape' => 'ExtractionConfig', ], ], ], 'MetadataSchemaList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetadataSchemaEntry', ], 'max' => 20, 'min' => 1, ], 'MetadataValueType' => [ 'type' => 'string', 'enum' => [ 'STRING', 'STRINGLIST', 'NUMBER', ], ], 'MicrosoftOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'clientId', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], 'tenantId' => [ 'shape' => 'TenantIdType', ], ], ], 'MicrosoftOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], ], ], 'ModelEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ModelEntry', ], 'max' => 100, 'min' => 1, ], 'ModelEntry' => [ 'type' => 'structure', 'required' => [ 'model', ], 'members' => [ 'model' => [ 'shape' => 'ModelPattern', ], ], ], 'ModelId' => [ 'type' => 'string', ], 'ModelMapping' => [ 'type' => 'structure', 'members' => [ 'providerPrefix' => [ 'shape' => 'ProviderPrefix', ], ], ], 'ModelPattern' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-\\._\\*\\?@]+(/[a-zA-Z0-9\\-\\._\\*\\?@]+)*', ], 'ModifyConsolidationConfiguration' => [ 'type' => 'structure', 'members' => [ 'customConsolidationConfiguration' => [ 'shape' => 'CustomConsolidationConfigurationInput', ], ], 'union' => true, ], 'ModifyExtractionConfiguration' => [ 'type' => 'structure', 'members' => [ 'customExtractionConfiguration' => [ 'shape' => 'CustomExtractionConfigurationInput', ], ], 'union' => true, ], 'ModifyInvocationConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'topicArn' => [ 'shape' => 'Arn', ], 'payloadDeliveryBucketName' => [ 'shape' => 'ModifyInvocationConfigurationInputPayloadDeliveryBucketNameString', ], ], ], 'ModifyInvocationConfigurationInputPayloadDeliveryBucketNameString' => [ 'type' => 'string', 'pattern' => '[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]', ], 'ModifyMemoryStrategies' => [ 'type' => 'structure', 'members' => [ 'addMemoryStrategies' => [ 'shape' => 'MemoryStrategyInputList', ], 'modifyMemoryStrategies' => [ 'shape' => 'ModifyMemoryStrategiesList', ], 'deleteMemoryStrategies' => [ 'shape' => 'DeleteMemoryStrategiesList', ], ], ], 'ModifyMemoryStrategiesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ModifyMemoryStrategyInput', ], ], 'ModifyMemoryStrategyInput' => [ 'type' => 'structure', 'required' => [ 'memoryStrategyId', ], 'members' => [ 'memoryStrategyId' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'Description', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'configuration' => [ 'shape' => 'ModifyStrategyConfiguration', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'ModifyReflectionConfiguration' => [ 'type' => 'structure', 'members' => [ 'episodicReflectionConfiguration' => [ 'shape' => 'EpisodicReflectionConfigurationInput', ], 'customReflectionConfiguration' => [ 'shape' => 'CustomReflectionConfigurationInput', ], ], 'union' => true, ], 'ModifySelfManagedConfiguration' => [ 'type' => 'structure', 'members' => [ 'triggerConditions' => [ 'shape' => 'TriggerConditionInputList', ], 'invocationConfiguration' => [ 'shape' => 'ModifyInvocationConfigurationInput', ], 'historicalContextWindowSize' => [ 'shape' => 'ModifySelfManagedConfigurationHistoricalContextWindowSizeInteger', ], ], ], 'ModifySelfManagedConfigurationHistoricalContextWindowSizeInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 50, 'min' => 0, ], 'ModifyStrategyConfiguration' => [ 'type' => 'structure', 'members' => [ 'extraction' => [ 'shape' => 'ModifyExtractionConfiguration', ], 'consolidation' => [ 'shape' => 'ModifyConsolidationConfiguration', ], 'reflection' => [ 'shape' => 'ModifyReflectionConfiguration', ], 'selfManagedConfiguration' => [ 'shape' => 'ModifySelfManagedConfiguration', ], ], ], 'MountPath' => [ 'type' => 'string', 'max' => 200, 'min' => 6, 'pattern' => '/mnt/[a-zA-Z0-9._-]+/?', ], 'Name' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'Namespace' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-_\\/]*(\\{(actorId|sessionId|memoryStrategyId)\\}[a-zA-Z0-9\\-_\\/]*)*', ], 'NamespacesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Namespace', ], 'max' => 1, 'min' => 1, ], 'NaturalLanguage' => [ 'type' => 'string', 'max' => 2000, 'min' => 1, ], 'NetworkConfiguration' => [ 'type' => 'structure', 'required' => [ 'networkMode', ], 'members' => [ 'networkMode' => [ 'shape' => 'NetworkMode', ], 'networkModeConfig' => [ 'shape' => 'VpcConfig', ], ], ], 'NetworkMode' => [ 'type' => 'string', 'enum' => [ 'PUBLIC', 'VPC', ], ], 'NextToken' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '\\S*', ], 'NonBlankString' => [ 'type' => 'string', 'pattern' => '[\\s\\S]+', ], 'NonEmptyString' => [ 'type' => 'string', 'min' => 1, ], 'NumberValidation' => [ 'type' => 'structure', 'members' => [ 'minValue' => [ 'shape' => 'Double', ], 'maxValue' => [ 'shape' => 'Double', ], ], ], 'NumericalScaleDefinition' => [ 'type' => 'structure', 'required' => [ 'definition', 'value', 'label', ], 'members' => [ 'definition' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'NumericalScaleDefinitionValueDouble', ], 'label' => [ 'shape' => 'NumericalScaleDefinitionLabelString', ], ], ], 'NumericalScaleDefinitionLabelString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, ], 'NumericalScaleDefinitionValueDouble' => [ 'type' => 'double', 'box' => true, 'min' => 0, ], 'NumericalScaleDefinitions' => [ 'type' => 'list', 'member' => [ 'shape' => 'NumericalScaleDefinition', ], ], 'OAuth2AuthorizationData' => [ 'type' => 'structure', 'required' => [ 'authorizationUrl', ], 'members' => [ 'authorizationUrl' => [ 'shape' => 'OAuth2AuthorizationDataAuthorizationUrlString', ], 'userId' => [ 'shape' => 'OAuth2AuthorizationDataUserIdString', ], ], ], 'OAuth2AuthorizationDataAuthorizationUrlString' => [ 'type' => 'string', 'min' => 1, ], 'OAuth2AuthorizationDataUserIdString' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'OAuthCredentialProvider' => [ 'type' => 'structure', 'required' => [ 'providerArn', 'scopes', ], 'members' => [ 'providerArn' => [ 'shape' => 'OAuthCredentialProviderArn', ], 'scopes' => [ 'shape' => 'OAuthScopes', ], 'customParameters' => [ 'shape' => 'OAuthCustomParameters', ], 'grantType' => [ 'shape' => 'OAuthGrantType', ], 'defaultReturnUrl' => [ 'shape' => 'OAuthDefaultReturnUrl', ], ], ], 'OAuthCredentialProviderArn' => [ 'type' => 'string', 'pattern' => 'arn:([^:]*):([^:]*):([^:]*):([0-9]{12})?:(.+)', ], 'OAuthCustomParameters' => [ 'type' => 'map', 'key' => [ 'shape' => 'OAuthCustomParametersKey', ], 'value' => [ 'shape' => 'OAuthCustomParametersValue', ], 'max' => 10, 'min' => 1, ], 'OAuthCustomParametersKey' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'OAuthCustomParametersValue' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'sensitive' => true, ], 'OAuthDefaultReturnUrl' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '\\w+:(\\/?\\/?)[^\\s]+', ], 'OAuthGrantType' => [ 'type' => 'string', 'enum' => [ 'CLIENT_CREDENTIALS', 'AUTHORIZATION_CODE', 'TOKEN_EXCHANGE', ], ], 'OAuthScope' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'OAuthScopes' => [ 'type' => 'list', 'member' => [ 'shape' => 'OAuthScope', ], 'max' => 100, 'min' => 0, ], 'Oauth2AuthorizationServerMetadata' => [ 'type' => 'structure', 'required' => [ 'issuer', 'authorizationEndpoint', 'tokenEndpoint', ], 'members' => [ 'issuer' => [ 'shape' => 'IssuerUrlType', ], 'authorizationEndpoint' => [ 'shape' => 'AuthorizationEndpointType', ], 'tokenEndpoint' => [ 'shape' => 'TokenEndpointType', ], 'responseTypes' => [ 'shape' => 'ResponseListType', ], 'tokenEndpointAuthMethods' => [ 'shape' => 'TokenEndpointAuthMethodsType', ], ], ], 'Oauth2CredentialProviderItem' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderVendor', 'credentialProviderArn', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'CredentialProviderVendorType', ], 'credentialProviderArn' => [ 'shape' => 'CredentialProviderArnType', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'Oauth2CredentialProviders' => [ 'type' => 'list', 'member' => [ 'shape' => 'Oauth2CredentialProviderItem', ], ], 'Oauth2Discovery' => [ 'type' => 'structure', 'members' => [ 'discoveryUrl' => [ 'shape' => 'DiscoveryUrlType', ], 'authorizationServerMetadata' => [ 'shape' => 'Oauth2AuthorizationServerMetadata', ], ], 'union' => true, ], 'Oauth2ProviderConfigInput' => [ 'type' => 'structure', 'members' => [ 'customOauth2ProviderConfig' => [ 'shape' => 'CustomOauth2ProviderConfigInput', ], 'googleOauth2ProviderConfig' => [ 'shape' => 'GoogleOauth2ProviderConfigInput', ], 'githubOauth2ProviderConfig' => [ 'shape' => 'GithubOauth2ProviderConfigInput', ], 'slackOauth2ProviderConfig' => [ 'shape' => 'SlackOauth2ProviderConfigInput', ], 'salesforceOauth2ProviderConfig' => [ 'shape' => 'SalesforceOauth2ProviderConfigInput', ], 'microsoftOauth2ProviderConfig' => [ 'shape' => 'MicrosoftOauth2ProviderConfigInput', ], 'atlassianOauth2ProviderConfig' => [ 'shape' => 'AtlassianOauth2ProviderConfigInput', ], 'linkedinOauth2ProviderConfig' => [ 'shape' => 'LinkedinOauth2ProviderConfigInput', ], 'includedOauth2ProviderConfig' => [ 'shape' => 'IncludedOauth2ProviderConfigInput', ], ], 'union' => true, ], 'Oauth2ProviderConfigOutput' => [ 'type' => 'structure', 'members' => [ 'customOauth2ProviderConfig' => [ 'shape' => 'CustomOauth2ProviderConfigOutput', ], 'googleOauth2ProviderConfig' => [ 'shape' => 'GoogleOauth2ProviderConfigOutput', ], 'githubOauth2ProviderConfig' => [ 'shape' => 'GithubOauth2ProviderConfigOutput', ], 'slackOauth2ProviderConfig' => [ 'shape' => 'SlackOauth2ProviderConfigOutput', ], 'salesforceOauth2ProviderConfig' => [ 'shape' => 'SalesforceOauth2ProviderConfigOutput', ], 'microsoftOauth2ProviderConfig' => [ 'shape' => 'MicrosoftOauth2ProviderConfigOutput', ], 'atlassianOauth2ProviderConfig' => [ 'shape' => 'AtlassianOauth2ProviderConfigOutput', ], 'linkedinOauth2ProviderConfig' => [ 'shape' => 'LinkedinOauth2ProviderConfigOutput', ], 'includedOauth2ProviderConfig' => [ 'shape' => 'IncludedOauth2ProviderConfigOutput', ], ], 'union' => true, ], 'OnBehalfOfTokenExchangeConfigType' => [ 'type' => 'structure', 'required' => [ 'grantType', ], 'members' => [ 'grantType' => [ 'shape' => 'OnBehalfOfTokenExchangeGrantTypeType', ], 'tokenExchangeGrantTypeConfig' => [ 'shape' => 'TokenExchangeGrantTypeConfigType', ], ], ], 'OnBehalfOfTokenExchangeGrantTypeType' => [ 'type' => 'string', 'enum' => [ 'TOKEN_EXCHANGE', 'JWT_AUTHORIZATION_GRANT', ], ], 'OnlineEvaluationConfigArn' => [ 'type' => 'string', 'pattern' => 'arn:aws[a-zA-Z-]*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:online-evaluation-config\\/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'OnlineEvaluationConfigId' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}', ], 'OnlineEvaluationConfigStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'CREATING', 'CREATE_FAILED', 'UPDATING', 'UPDATE_FAILED', 'DELETING', 'ERROR', ], ], 'OnlineEvaluationConfigSummary' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigArn', 'onlineEvaluationConfigId', 'onlineEvaluationConfigName', 'status', 'executionStatus', 'createdAt', 'updatedAt', ], 'members' => [ 'onlineEvaluationConfigArn' => [ 'shape' => 'OnlineEvaluationConfigArn', ], 'onlineEvaluationConfigId' => [ 'shape' => 'OnlineEvaluationConfigId', ], 'onlineEvaluationConfigName' => [ 'shape' => 'EvaluationConfigName', ], 'description' => [ 'shape' => 'EvaluationConfigDescription', ], 'status' => [ 'shape' => 'OnlineEvaluationConfigStatus', ], 'executionStatus' => [ 'shape' => 'OnlineEvaluationExecutionStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'failureReason' => [ 'shape' => 'String', ], 'insights' => [ 'shape' => 'InsightList', ], 'clusteringConfig' => [ 'shape' => 'ClusteringConfig', ], ], ], 'OnlineEvaluationConfigSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OnlineEvaluationConfigSummary', ], ], 'OnlineEvaluationExecutionStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'OutputConfig' => [ 'type' => 'structure', 'required' => [ 'cloudWatchConfig', ], 'members' => [ 'cloudWatchConfig' => [ 'shape' => 'CloudWatchOutputConfig', ], ], ], 'OverrideType' => [ 'type' => 'string', 'enum' => [ 'SEMANTIC_OVERRIDE', 'SUMMARY_OVERRIDE', 'USER_PREFERENCE_OVERRIDE', 'SELF_MANAGED', 'EPISODIC_OVERRIDE', ], ], 'PassthroughEndpoint' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'https://[a-zA-Z0-9\\-\\.]+(:[0-9]{1,5})?(/.*)?', ], 'PassthroughProtocolType' => [ 'type' => 'string', 'enum' => [ 'MCP', 'A2A', 'INFERENCE', 'CUSTOM', ], ], 'PassthroughTargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'endpoint', 'protocolType', ], 'members' => [ 'endpoint' => [ 'shape' => 'PassthroughEndpoint', ], 'protocolType' => [ 'shape' => 'PassthroughProtocolType', ], 'schema' => [ 'shape' => 'HttpApiSchemaConfiguration', ], 'stickinessConfiguration' => [ 'shape' => 'StickinessConfiguration', ], ], ], 'PaymentConnectorId' => [ 'type' => 'string', 'max' => 211, 'min' => 12, 'pattern' => '([0-9a-z][-]?){1,100}-[0-9a-z]{10}', ], 'PaymentConnectorName' => [ 'type' => 'string', 'max' => 48, 'min' => 1, 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'PaymentConnectorStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'UPDATING', 'DELETING', 'READY', 'CREATE_FAILED', 'UPDATE_FAILED', 'DELETE_FAILED', ], ], 'PaymentConnectorSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'PaymentConnectorSummary', ], ], 'PaymentConnectorSummary' => [ 'type' => 'structure', 'required' => [ 'paymentConnectorId', 'name', 'type', 'status', 'lastUpdatedAt', ], 'members' => [ 'paymentConnectorId' => [ 'shape' => 'PaymentConnectorId', ], 'name' => [ 'shape' => 'PaymentConnectorName', ], 'type' => [ 'shape' => 'PaymentConnectorType', ], 'status' => [ 'shape' => 'PaymentConnectorStatus', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'PaymentConnectorType' => [ 'type' => 'string', 'enum' => [ 'CoinbaseCDP', 'StripePrivy', ], ], 'PaymentCredentialProviderArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 69, 'pattern' => 'arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b|aws-iso-e|aws-iso-f|aws-eusc):(acps|bedrock-agentcore):[A-Za-z0-9-]{1,64}:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/paymentcredentialprovider/[a-zA-Z0-9-.]+', ], 'PaymentCredentialProviderArnType' => [ 'type' => 'string', 'pattern' => 'arn:(aws|aws-us-gov):acps:[A-Za-z0-9-]{1,64}:[0-9]{12}:token-vault/[a-zA-Z0-9-.]+/paymentcredentialprovider/[a-zA-Z0-9-.]+', ], 'PaymentCredentialProviderConfiguration' => [ 'type' => 'structure', 'required' => [ 'credentialProviderArn', ], 'members' => [ 'credentialProviderArn' => [ 'shape' => 'PaymentCredentialProviderArn', ], ], ], 'PaymentCredentialProviderItem' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderVendor', 'credentialProviderArn', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'PaymentCredentialProviderVendorType', ], 'credentialProviderArn' => [ 'shape' => 'PaymentCredentialProviderArnType', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'PaymentCredentialProviderVendorType' => [ 'type' => 'string', 'enum' => [ 'CoinbaseCDP', 'StripePrivy', ], ], 'PaymentCredentialProviders' => [ 'type' => 'list', 'member' => [ 'shape' => 'PaymentCredentialProviderItem', ], ], 'PaymentManagerArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 66, 'pattern' => 'arn:(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:payment-manager/([0-9a-z][-]?){1,48}-[a-z0-9]{10}', ], 'PaymentManagerId' => [ 'type' => 'string', 'max' => 211, 'min' => 12, 'pattern' => '([0-9a-z][-]?){1,100}-[0-9a-z]{10}', ], 'PaymentManagerName' => [ 'type' => 'string', 'max' => 48, 'min' => 1, 'pattern' => '[a-zA-Z][a-zA-Z0-9]{0,47}', ], 'PaymentManagerStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'UPDATING', 'DELETING', 'READY', 'CREATE_FAILED', 'UPDATE_FAILED', 'DELETE_FAILED', ], ], 'PaymentManagerSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'PaymentManagerSummary', ], ], 'PaymentManagerSummary' => [ 'type' => 'structure', 'required' => [ 'paymentManagerArn', 'paymentManagerId', 'name', 'authorizerType', 'roleArn', 'status', 'lastUpdatedAt', ], 'members' => [ 'paymentManagerArn' => [ 'shape' => 'PaymentManagerArn', ], 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', ], 'name' => [ 'shape' => 'PaymentManagerName', ], 'description' => [ 'shape' => 'PaymentsDescription', ], 'authorizerType' => [ 'shape' => 'PaymentsAuthorizerType', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'status' => [ 'shape' => 'PaymentManagerStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'PaymentProviderConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'coinbaseCdpConfiguration' => [ 'shape' => 'CoinbaseCdpConfigurationInput', ], 'stripePrivyConfiguration' => [ 'shape' => 'StripePrivyConfigurationInput', ], ], 'union' => true, ], 'PaymentProviderConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'coinbaseCdpConfiguration' => [ 'shape' => 'CoinbaseCdpConfigurationOutput', ], 'stripePrivyConfiguration' => [ 'shape' => 'StripePrivyConfigurationOutput', ], ], 'union' => true, ], 'PaymentsAuthorizerType' => [ 'type' => 'string', 'enum' => [ 'CUSTOM_JWT', 'AWS_IAM', ], ], 'PaymentsDescription' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\s]+', ], 'Policies' => [ 'type' => 'list', 'member' => [ 'shape' => 'Policy', ], 'max' => 100, 'min' => 0, ], 'Policy' => [ 'type' => 'structure', 'required' => [ 'policyId', 'name', 'policyEngineId', 'createdAt', 'updatedAt', 'policyArn', 'status', 'definition', 'statusReasons', ], 'members' => [ 'policyId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyName', ], 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'status' => [ 'shape' => 'PolicyStatus', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], 'definition' => [ 'shape' => 'PolicyDefinition', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'PolicyArn' => [ 'type' => 'string', 'max' => 203, 'min' => 96, 'pattern' => 'arn:aws[-a-z]{0,7}:bedrock-agentcore:[a-z0-9-]{9,15}:[0-9]{12}:policy-engine/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}/policy/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}', ], 'PolicyDefinition' => [ 'type' => 'structure', 'members' => [ 'cedar' => [ 'shape' => 'CedarPolicy', ], 'policyGeneration' => [ 'shape' => 'PolicyGenerationDetails', ], 'policy' => [ 'shape' => 'PolicyStatement', ], ], 'union' => true, ], 'PolicyEngine' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'name', 'createdAt', 'updatedAt', 'policyEngineArn', 'status', 'statusReasons', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyEngineName', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyEngineArn' => [ 'shape' => 'PolicyEngineArn', ], 'status' => [ 'shape' => 'PolicyEngineStatus', ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'PolicyEngineArn' => [ 'type' => 'string', 'max' => 136, 'min' => 76, 'pattern' => 'arn:aws[-a-z]{0,7}:bedrock-agentcore:[a-z0-9-]{9,15}:[0-9]{12}:policy-engine/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}', ], 'PolicyEngineName' => [ 'type' => 'string', 'max' => 48, 'min' => 1, 'pattern' => '[A-Za-z][A-Za-z0-9_]*', ], 'PolicyEngineStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'UPDATING', 'DELETING', 'CREATE_FAILED', 'UPDATE_FAILED', 'DELETE_FAILED', ], ], 'PolicyEngineSummary' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'name', 'createdAt', 'updatedAt', 'policyEngineArn', 'status', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyEngineName', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyEngineArn' => [ 'shape' => 'PolicyEngineArn', ], 'status' => [ 'shape' => 'PolicyEngineStatus', ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'PolicyEngineSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyEngineSummary', ], 'max' => 100, 'min' => 0, ], 'PolicyEngines' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyEngine', ], 'max' => 100, 'min' => 0, ], 'PolicyGeneration' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyGenerationId', 'name', 'policyGenerationArn', 'resource', 'createdAt', 'updatedAt', 'status', 'statusReasons', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'policyGenerationId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyGenerationName', ], 'policyGenerationArn' => [ 'shape' => 'PolicyGenerationArn', ], 'resource' => [ 'shape' => 'Resource', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PolicyGenerationStatus', ], 'findings' => [ 'shape' => 'String', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'PolicyGenerationArn' => [ 'type' => 'string', 'max' => 210, 'min' => 103, 'pattern' => 'arn:aws[-a-z]{0,7}:bedrock-agentcore:[a-z0-9-]{9,15}:[0-9]{12}:policy-engine/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}/policy-generation/[a-zA-Z][a-zA-Z0-9-_]{0,47}-[a-zA-Z0-9_]{10}', ], 'PolicyGenerationAsset' => [ 'type' => 'structure', 'required' => [ 'policyGenerationAssetId', 'rawTextFragment', 'findings', ], 'members' => [ 'policyGenerationAssetId' => [ 'shape' => 'ResourceId', ], 'definition' => [ 'shape' => 'PolicyDefinition', ], 'rawTextFragment' => [ 'shape' => 'NaturalLanguage', ], 'findings' => [ 'shape' => 'Findings', ], ], ], 'PolicyGenerationAssets' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyGenerationAsset', ], ], 'PolicyGenerationDetails' => [ 'type' => 'structure', 'required' => [ 'policyGenerationId', 'policyGenerationAssetId', ], 'members' => [ 'policyGenerationId' => [ 'shape' => 'ResourceId', ], 'policyGenerationAssetId' => [ 'shape' => 'ResourceId', ], ], ], 'PolicyGenerationName' => [ 'type' => 'string', 'max' => 48, 'min' => 1, 'pattern' => '[A-Za-z][A-Za-z0-9_]*', ], 'PolicyGenerationStatus' => [ 'type' => 'string', 'enum' => [ 'GENERATING', 'GENERATED', 'GENERATE_FAILED', 'DELETE_FAILED', ], ], 'PolicyGenerationSummary' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyGenerationId', 'name', 'policyGenerationArn', 'resource', 'createdAt', 'updatedAt', 'status', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'policyGenerationId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyGenerationName', ], 'policyGenerationArn' => [ 'shape' => 'PolicyGenerationArn', ], 'resource' => [ 'shape' => 'Resource', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PolicyGenerationStatus', ], 'findings' => [ 'shape' => 'String', ], ], ], 'PolicyGenerationSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyGenerationSummary', ], 'max' => 100, 'min' => 0, ], 'PolicyGenerations' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyGeneration', ], 'max' => 100, 'min' => 0, ], 'PolicyName' => [ 'type' => 'string', 'max' => 48, 'min' => 1, 'pattern' => '[A-Za-z][A-Za-z0-9_]*', ], 'PolicyStatement' => [ 'type' => 'structure', 'required' => [ 'statement', ], 'members' => [ 'statement' => [ 'shape' => 'Statement', ], ], ], 'PolicyStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'ACTIVE', 'UPDATING', 'DELETING', 'CREATE_FAILED', 'UPDATE_FAILED', 'DELETE_FAILED', ], ], 'PolicyStatusReasons' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'PolicySummary' => [ 'type' => 'structure', 'required' => [ 'policyId', 'name', 'policyEngineId', 'createdAt', 'updatedAt', 'policyArn', 'status', ], 'members' => [ 'policyId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyName', ], 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'status' => [ 'shape' => 'PolicyStatus', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], ], ], 'PolicySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicySummary', ], 'max' => 100, 'min' => 0, ], 'PolicyValidationMode' => [ 'type' => 'string', 'enum' => [ 'FAIL_ON_ANY_FINDINGS', 'IGNORE_ALL_FINDINGS', ], ], 'PrincipalMatchOperator' => [ 'type' => 'string', 'enum' => [ 'StringEquals', 'StringLike', ], ], 'PrivateEndpoint' => [ 'type' => 'structure', 'members' => [ 'selfManagedLatticeResource' => [ 'shape' => 'SelfManagedLatticeResource', ], 'managedVpcResource' => [ 'shape' => 'ManagedVpcResource', ], ], 'union' => true, ], 'PrivateEndpointManagedResources' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedResourceDetails', ], ], 'PrivateEndpointOverride' => [ 'type' => 'structure', 'required' => [ 'domain', 'privateEndpoint', ], 'members' => [ 'domain' => [ 'shape' => 'PrivateEndpointOverrideDomain', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], ], ], 'PrivateEndpointOverrideDomain' => [ 'type' => 'string', 'max' => 253, 'min' => 1, ], 'PrivateEndpointOverrides' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrivateEndpointOverride', ], 'max' => 5, 'min' => 0, ], 'Prompt' => [ 'type' => 'string', 'max' => 30000, 'min' => 1, 'sensitive' => true, ], 'ProtocolConfiguration' => [ 'type' => 'structure', 'required' => [ 'serverProtocol', ], 'members' => [ 'serverProtocol' => [ 'shape' => 'ServerProtocol', ], ], ], 'ProviderPrefix' => [ 'type' => 'structure', 'members' => [ 'strip' => [ 'shape' => 'Boolean', ], 'separator' => [ 'shape' => 'ProviderPrefixSeparatorString', ], ], ], 'ProviderPrefixSeparatorString' => [ 'type' => 'string', 'max' => 1, 'min' => 1, ], 'PutResourcePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'policy', ], 'members' => [ 'resourceArn' => [ 'shape' => 'BedrockAgentcoreResourceArn', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'policy' => [ 'shape' => 'ResourcePolicyBody', ], ], ], 'PutResourcePolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policy', ], 'members' => [ 'policy' => [ 'shape' => 'ResourcePolicyBody', ], ], ], 'RatingScale' => [ 'type' => 'structure', 'members' => [ 'numerical' => [ 'shape' => 'NumericalScaleDefinitions', ], 'categorical' => [ 'shape' => 'CategoricalScaleDefinitions', ], ], 'sensitive' => true, 'union' => true, ], 'RecordIdentifier' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '(arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:registry/[a-zA-Z0-9]{12,16}/record/)?[a-zA-Z0-9]{12}', ], 'RecordingConfig' => [ 'type' => 'structure', 'members' => [ 'enabled' => [ 'shape' => 'Boolean', ], 's3Location' => [ 'shape' => 'S3Location', ], ], ], 'ReflectionConfiguration' => [ 'type' => 'structure', 'members' => [ 'customReflectionConfiguration' => [ 'shape' => 'CustomReflectionConfiguration', ], 'episodicReflectionConfiguration' => [ 'shape' => 'EpisodicReflectionConfiguration', ], ], 'union' => true, ], 'RegistryArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:registry/[a-zA-Z0-9]{12,16}', ], 'RegistryAuthorizerType' => [ 'type' => 'string', 'enum' => [ 'CUSTOM_JWT', 'AWS_IAM', ], ], 'RegistryId' => [ 'type' => 'string', 'max' => 16, 'min' => 12, 'pattern' => '[a-zA-Z0-9]{12,16}', ], 'RegistryIdentifier' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '(arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:registry/)?[a-zA-Z0-9]{12,16}', ], 'RegistryName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9][a-zA-Z0-9_\\-\\.\\/]*', ], 'RegistryRecordArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:registry/[a-zA-Z0-9]{12,16}/record/[a-zA-Z0-9]{12}', ], 'RegistryRecordCredentialProviderConfiguration' => [ 'type' => 'structure', 'required' => [ 'credentialProviderType', 'credentialProvider', ], 'members' => [ 'credentialProviderType' => [ 'shape' => 'RegistryRecordCredentialProviderType', ], 'credentialProvider' => [ 'shape' => 'RegistryRecordCredentialProviderUnion', ], ], ], 'RegistryRecordCredentialProviderConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegistryRecordCredentialProviderConfiguration', ], 'max' => 1, 'min' => 0, ], 'RegistryRecordCredentialProviderType' => [ 'type' => 'string', 'enum' => [ 'OAUTH', 'IAM', ], ], 'RegistryRecordCredentialProviderUnion' => [ 'type' => 'structure', 'members' => [ 'oauthCredentialProvider' => [ 'shape' => 'RegistryRecordOAuthCredentialProvider', ], 'iamCredentialProvider' => [ 'shape' => 'RegistryRecordIamCredentialProvider', ], ], 'union' => true, ], 'RegistryRecordIamCredentialProvider' => [ 'type' => 'structure', 'members' => [ 'roleArn' => [ 'shape' => 'IamRoleArn', ], 'service' => [ 'shape' => 'IamSigningServiceName', ], 'region' => [ 'shape' => 'IamSigningRegion', ], ], ], 'RegistryRecordId' => [ 'type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '[a-zA-Z0-9]{12}', ], 'RegistryRecordName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[a-zA-Z0-9][a-zA-Z0-9_\\-\\.\\/]*', ], 'RegistryRecordOAuthCredentialProvider' => [ 'type' => 'structure', 'required' => [ 'providerArn', ], 'members' => [ 'providerArn' => [ 'shape' => 'CredentialProviderArn', ], 'grantType' => [ 'shape' => 'RegistryRecordOAuthGrantType', ], 'scopes' => [ 'shape' => 'ScopeList', ], 'customParameters' => [ 'shape' => 'CustomParameterMap', ], ], ], 'RegistryRecordOAuthGrantType' => [ 'type' => 'string', 'enum' => [ 'CLIENT_CREDENTIALS', ], ], 'RegistryRecordStatus' => [ 'type' => 'string', 'enum' => [ 'DRAFT', 'PENDING_APPROVAL', 'APPROVED', 'REJECTED', 'DEPRECATED', 'CREATING', 'UPDATING', 'CREATE_FAILED', 'UPDATE_FAILED', ], ], 'RegistryRecordSummary' => [ 'type' => 'structure', 'required' => [ 'registryArn', 'recordArn', 'recordId', 'name', 'descriptorType', 'recordVersion', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'registryArn' => [ 'shape' => 'RegistryArn', ], 'recordArn' => [ 'shape' => 'RegistryRecordArn', ], 'recordId' => [ 'shape' => 'RegistryRecordId', ], 'name' => [ 'shape' => 'RegistryRecordName', ], 'description' => [ 'shape' => 'Description', ], 'descriptorType' => [ 'shape' => 'DescriptorType', ], 'recordVersion' => [ 'shape' => 'RegistryRecordVersion', ], 'status' => [ 'shape' => 'RegistryRecordStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'RegistryRecordSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegistryRecordSummary', ], ], 'RegistryRecordVersion' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '[a-zA-Z0-9.-]+', ], 'RegistryStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'READY', 'UPDATING', 'CREATE_FAILED', 'UPDATE_FAILED', 'DELETING', 'DELETE_FAILED', ], ], 'RegistrySummary' => [ 'type' => 'structure', 'required' => [ 'name', 'registryId', 'registryArn', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'name' => [ 'shape' => 'RegistryName', ], 'description' => [ 'shape' => 'Description', ], 'registryId' => [ 'shape' => 'RegistryId', ], 'registryArn' => [ 'shape' => 'RegistryArn', ], 'authorizerType' => [ 'shape' => 'RegistryAuthorizerType', ], 'status' => [ 'shape' => 'RegistryStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'RegistrySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegistrySummary', ], ], 'RequestHeaderAllowlist' => [ 'type' => 'list', 'member' => [ 'shape' => 'HeaderName', ], 'max' => 20, 'min' => 1, ], 'RequestHeaderConfiguration' => [ 'type' => 'structure', 'members' => [ 'requestHeaderAllowlist' => [ 'shape' => 'RequestHeaderAllowlist', ], ], 'union' => true, ], 'RequiredProperties' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'Resource' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'BedrockAgentcoreResourceArn', ], ], 'union' => true, ], 'ResourceAssociationArn' => [ 'type' => 'string', 'pattern' => 'arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetworkresourceassociation/snra-[0-9a-f]{17}', ], 'ResourceConfigurationIdentifier' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => '((rcfg-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourceconfiguration/rcfg-[0-9a-z]{17}))', ], 'ResourceGatewayArn' => [ 'type' => 'string', 'pattern' => 'arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourcegateway/rgw-[0-9a-z]{17}', ], 'ResourceId' => [ 'type' => 'string', 'max' => 59, 'min' => 12, 'pattern' => '[A-Za-z][A-Za-z0-9_]*-[a-z0-9_]{10}', ], 'ResourceLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ResourceLocation' => [ 'type' => 'structure', 'members' => [ 's3' => [ 'shape' => 'S3Location', ], ], 'union' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'NonBlankString', ], ], 'error' => [ 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'ResourceOauth2ReturnUrlListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceOauth2ReturnUrlType', ], ], 'ResourceOauth2ReturnUrlType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '\\w+:(\\/?\\/?)[^\\s]+', ], 'ResourcePolicyBody' => [ 'type' => 'string', 'max' => 20480, 'min' => 1, ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'SYSTEM', 'CUSTOM', ], ], 'ResponseListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResponseType', ], ], 'ResponseType' => [ 'type' => 'string', ], 'RestApiMethod' => [ 'type' => 'string', 'enum' => [ 'GET', 'DELETE', 'HEAD', 'OPTIONS', 'PATCH', 'PUT', 'POST', ], ], 'RestApiMethods' => [ 'type' => 'list', 'member' => [ 'shape' => 'RestApiMethod', ], ], 'RoleArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/.+', ], 'RouteToTargetAction' => [ 'type' => 'structure', 'members' => [ 'staticRoute' => [ 'shape' => 'StaticRoute', ], 'weightedRoute' => [ 'shape' => 'WeightedRoute', ], ], 'union' => true, ], 'RoutingDomain' => [ 'type' => 'string', 'max' => 255, 'min' => 3, ], 'Rule' => [ 'type' => 'structure', 'required' => [ 'samplingConfig', ], 'members' => [ 'samplingConfig' => [ 'shape' => 'SamplingConfig', ], 'filters' => [ 'shape' => 'FilterList', ], 'sessionConfig' => [ 'shape' => 'SessionConfig', ], ], ], 'RuntimeArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:runtime/[a-zA-Z][a-zA-Z0-9_]{0,47}-[a-zA-Z0-9]{10}', ], 'RuntimeContainerUri' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '(([0-9]{12})\\.dkr\\.ecr\\.([a-z0-9-]+)\\.amazonaws\\.com(\\.cn)?|public\\.ecr\\.aws)/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(?::([^:@]{1,300}))?(?:@(.+))?', ], 'RuntimeMetadataConfiguration' => [ 'type' => 'structure', 'required' => [ 'requireMMDSV2', ], 'members' => [ 'requireMMDSV2' => [ 'shape' => 'Boolean', ], ], ], 'RuntimeQualifier' => [ 'type' => 'string', 'pattern' => '.*([1-9][0-9]{0,4})|([a-zA-Z][a-zA-Z0-9_]{0,47}).*', ], 'RuntimeTargetConfiguration' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'RuntimeArn', ], 'qualifier' => [ 'shape' => 'RuntimeQualifier', ], 'schema' => [ 'shape' => 'HttpApiSchemaConfiguration', ], ], ], 'S3BucketUri' => [ 'type' => 'string', 'pattern' => 's3://.{1,2043}', ], 'S3Configuration' => [ 'type' => 'structure', 'members' => [ 'uri' => [ 'shape' => 'S3BucketUri', ], 'bucketOwnerAccountId' => [ 'shape' => 'AwsAccountId', ], ], ], 'S3FilesAccessPointArn' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => 'arn:aws[-a-z]*:s3files:[0-9a-z-:]+:file-system/fs-[0-9a-f]{17,40}/access-point/fsap-[0-9a-f]{17,40}', ], 'S3FilesAccessPointConfiguration' => [ 'type' => 'structure', 'required' => [ 'accessPointArn', 'mountPath', ], 'members' => [ 'accessPointArn' => [ 'shape' => 'S3FilesAccessPointArn', ], 'mountPath' => [ 'shape' => 'MountPath', ], ], ], 'S3Location' => [ 'type' => 'structure', 'required' => [ 'bucket', 'prefix', ], 'members' => [ 'bucket' => [ 'shape' => 'S3LocationBucketString', ], 'prefix' => [ 'shape' => 'S3LocationPrefixString', ], 'versionId' => [ 'shape' => 'S3LocationVersionIdString', ], ], ], 'S3LocationBucketString' => [ 'type' => 'string', 'pattern' => '[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]', ], 'S3LocationPrefixString' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'S3LocationVersionIdString' => [ 'type' => 'string', 'max' => 1024, 'min' => 3, ], 'S3Source' => [ 'type' => 'structure', 'required' => [ 's3Uri', ], 'members' => [ 's3Uri' => [ 'shape' => 'S3Uri', ], ], ], 'S3Uri' => [ 'type' => 'string', 'pattern' => 's3://[a-z0-9][a-z0-9.\\-]{1,61}[a-z0-9]/.{1,1024}', ], 'SalesforceOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'clientId', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], ], ], 'SalesforceOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], ], ], 'SamplingConfig' => [ 'type' => 'structure', 'required' => [ 'samplingPercentage', ], 'members' => [ 'samplingPercentage' => [ 'shape' => 'SamplingConfigSamplingPercentageDouble', ], ], ], 'SamplingConfigSamplingPercentageDouble' => [ 'type' => 'double', 'box' => true, 'max' => 100.0, 'min' => 0.01, ], 'SandboxName' => [ 'type' => 'string', 'pattern' => '[a-zA-Z][a-zA-Z0-9_]{0,47}', ], 'SchemaDefinition' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'SchemaType', ], 'properties' => [ 'shape' => 'SchemaProperties', ], 'required' => [ 'shape' => 'RequiredProperties', ], 'items' => [ 'shape' => 'SchemaDefinition', ], 'description' => [ 'shape' => 'String', ], ], ], 'SchemaProperties' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'SchemaDefinition', ], ], 'SchemaType' => [ 'type' => 'string', 'enum' => [ 'string', 'number', 'object', 'array', 'boolean', 'integer', ], ], 'SchemaVersion' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'ScopeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ScopeType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'ScopesListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScopeType', ], ], 'SearchType' => [ 'type' => 'string', 'enum' => [ 'SEMANTIC', ], ], 'Secret' => [ 'type' => 'structure', 'required' => [ 'secretArn', ], 'members' => [ 'secretArn' => [ 'shape' => 'SecretArn', ], ], ], 'SecretArn' => [ 'type' => 'string', 'pattern' => 'arn:(aws|aws-us-gov):secretsmanager:[A-Za-z0-9-]{1,64}:[0-9]{12}:secret:[a-zA-Z0-9-_/+=.@!]+', ], 'SecretIdType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'SecretJsonKeyType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'SecretReference' => [ 'type' => 'structure', 'required' => [ 'secretId', 'jsonKey', ], 'members' => [ 'secretId' => [ 'shape' => 'SecretIdType', ], 'jsonKey' => [ 'shape' => 'SecretJsonKeyType', ], ], ], 'SecretSourceType' => [ 'type' => 'string', 'enum' => [ 'MANAGED', 'EXTERNAL', ], ], 'SecretsManagerLocation' => [ 'type' => 'structure', 'required' => [ 'secretArn', ], 'members' => [ 'secretArn' => [ 'shape' => 'ToolSecretArn', ], ], ], 'SecurityGroupId' => [ 'type' => 'string', 'pattern' => 'sg-[0-9a-zA-Z]{8,17}', ], 'SecurityGroupIdentifier' => [ 'type' => 'string', 'pattern' => 'sg-(([0-9a-z]{8})|([0-9a-z]{17}))', ], 'SecurityGroupIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupIdentifier', ], 'max' => 5, 'min' => 0, ], 'SecurityGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', ], 'max' => 16, 'min' => 1, ], 'SelfManagedConfiguration' => [ 'type' => 'structure', 'required' => [ 'triggerConditions', 'invocationConfiguration', 'historicalContextWindowSize', ], 'members' => [ 'triggerConditions' => [ 'shape' => 'TriggerConditionsList', ], 'invocationConfiguration' => [ 'shape' => 'InvocationConfiguration', ], 'historicalContextWindowSize' => [ 'shape' => 'Integer', ], ], ], 'SelfManagedConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'invocationConfiguration', ], 'members' => [ 'triggerConditions' => [ 'shape' => 'TriggerConditionInputList', ], 'invocationConfiguration' => [ 'shape' => 'InvocationConfigurationInput', ], 'historicalContextWindowSize' => [ 'shape' => 'SelfManagedConfigurationInputHistoricalContextWindowSizeInteger', ], ], ], 'SelfManagedConfigurationInputHistoricalContextWindowSizeInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 50, 'min' => 0, ], 'SelfManagedLatticeResource' => [ 'type' => 'structure', 'members' => [ 'resourceConfigurationIdentifier' => [ 'shape' => 'ResourceConfigurationIdentifier', ], ], 'union' => true, ], 'SemanticConsolidationOverride' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'SemanticExtractionOverride' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'SemanticMemoryStrategyInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'SemanticOverrideConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'extraction' => [ 'shape' => 'SemanticOverrideExtractionConfigurationInput', ], 'consolidation' => [ 'shape' => 'SemanticOverrideConsolidationConfigurationInput', ], ], ], 'SemanticOverrideConsolidationConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'SemanticOverrideExtractionConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'SensitiveJson' => [ 'type' => 'structure', 'members' => [], 'document' => true, 'sensitive' => true, ], 'SensitiveText' => [ 'type' => 'string', 'min' => 1, 'sensitive' => true, ], 'ServerDefinition' => [ 'type' => 'structure', 'members' => [ 'schemaVersion' => [ 'shape' => 'SchemaVersion', ], 'inlineContent' => [ 'shape' => 'InlineContent', ], ], ], 'ServerProtocol' => [ 'type' => 'string', 'enum' => [ 'MCP', 'HTTP', 'A2A', 'AGUI', ], ], 'ServiceException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, 'retryable' => [ 'throttling' => false, ], ], 'ServiceName' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '[a-zA-Z0-9._-]+', ], 'ServiceQuotaExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'NonBlankString', ], ], 'error' => [ 'httpStatusCode' => 402, 'senderFault' => true, ], 'exception' => true, ], 'SessionConfig' => [ 'type' => 'structure', 'required' => [ 'sessionTimeoutMinutes', ], 'members' => [ 'sessionTimeoutMinutes' => [ 'shape' => 'SessionConfigSessionTimeoutMinutesInteger', ], ], ], 'SessionConfigSessionTimeoutMinutesInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 1440, 'min' => 1, ], 'SessionConfiguration' => [ 'type' => 'structure', 'members' => [ 'sessionTimeoutInSeconds' => [ 'shape' => 'SessionConfigurationSessionTimeoutInSecondsInteger', ], ], ], 'SessionConfigurationSessionTimeoutInSecondsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 28800, 'min' => 900, ], 'SessionStorageConfiguration' => [ 'type' => 'structure', 'required' => [ 'mountPath', ], 'members' => [ 'mountPath' => [ 'shape' => 'MountPath', ], ], ], 'SetTokenVaultCMKRequest' => [ 'type' => 'structure', 'required' => [ 'kmsConfiguration', ], 'members' => [ 'tokenVaultId' => [ 'shape' => 'TokenVaultIdType', ], 'kmsConfiguration' => [ 'shape' => 'KmsConfiguration', ], ], ], 'SetTokenVaultCMKResponse' => [ 'type' => 'structure', 'required' => [ 'tokenVaultId', 'kmsConfiguration', 'lastModifiedDate', ], 'members' => [ 'tokenVaultId' => [ 'shape' => 'TokenVaultIdType', ], 'kmsConfiguration' => [ 'shape' => 'KmsConfiguration', ], 'lastModifiedDate' => [ 'shape' => 'Timestamp', ], ], ], 'SkillDefinition' => [ 'type' => 'structure', 'members' => [ 'schemaVersion' => [ 'shape' => 'SchemaVersion', ], 'inlineContent' => [ 'shape' => 'InlineContent', ], ], ], 'SkillMdDefinition' => [ 'type' => 'structure', 'members' => [ 'inlineContent' => [ 'shape' => 'InlineContent', ], ], ], 'SlackOauth2ProviderConfigInput' => [ 'type' => 'structure', 'required' => [ 'clientId', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientIdType', ], 'clientSecret' => [ 'shape' => 'DefaultClientSecretType', ], 'clientSecretConfig' => [ 'shape' => 'SecretReference', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], ], ], 'SlackOauth2ProviderConfigOutput' => [ 'type' => 'structure', 'required' => [ 'oauthDiscovery', ], 'members' => [ 'oauthDiscovery' => [ 'shape' => 'Oauth2Discovery', ], 'clientId' => [ 'shape' => 'ClientIdType', ], ], ], 'StartPolicyGenerationRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'resource', 'content', 'name', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'resource' => [ 'shape' => 'Resource', ], 'content' => [ 'shape' => 'Content', ], 'name' => [ 'shape' => 'PolicyGenerationName', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'StartPolicyGenerationResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyGenerationId', 'name', 'policyGenerationArn', 'resource', 'createdAt', 'updatedAt', 'status', 'statusReasons', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'policyGenerationId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyGenerationName', ], 'policyGenerationArn' => [ 'shape' => 'PolicyGenerationArn', ], 'resource' => [ 'shape' => 'Resource', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PolicyGenerationStatus', ], 'findings' => [ 'shape' => 'String', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'Statement' => [ 'type' => 'string', 'max' => 10000, 'min' => 35, ], 'StaticOverride' => [ 'type' => 'structure', 'required' => [ 'bundleArn', 'bundleVersion', ], 'members' => [ 'bundleArn' => [ 'shape' => 'GatewayConfigurationBundleArn', ], 'bundleVersion' => [ 'shape' => 'StaticOverrideBundleVersionString', ], ], ], 'StaticOverrideBundleVersionString' => [ 'type' => 'string', 'pattern' => '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}', ], 'StaticRoute' => [ 'type' => 'structure', 'required' => [ 'targetName', ], 'members' => [ 'targetName' => [ 'shape' => 'TargetName', ], ], ], 'Status' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'CREATE_FAILED', 'UPDATING', 'UPDATE_FAILED', 'READY', 'DELETING', 'DELETE_FAILED', ], ], 'StatusReason' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'StatusReasons' => [ 'type' => 'list', 'member' => [ 'shape' => 'StatusReason', ], 'max' => 100, 'min' => 0, ], 'StickinessConfiguration' => [ 'type' => 'structure', 'required' => [ 'identifier', ], 'members' => [ 'identifier' => [ 'shape' => 'StickinessConfigurationIdentifierString', ], 'timeout' => [ 'shape' => 'StickinessTimeout', ], ], ], 'StickinessConfigurationIdentifierString' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'StickinessTimeout' => [ 'type' => 'integer', 'box' => true, 'max' => 86400, 'min' => 1, ], 'StrategyConfiguration' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'OverrideType', ], 'extraction' => [ 'shape' => 'ExtractionConfiguration', ], 'consolidation' => [ 'shape' => 'ConsolidationConfiguration', ], 'reflection' => [ 'shape' => 'ReflectionConfiguration', ], 'selfManagedConfiguration' => [ 'shape' => 'SelfManagedConfiguration', ], ], ], 'StreamDeliveryResource' => [ 'type' => 'structure', 'members' => [ 'kinesis' => [ 'shape' => 'KinesisResource', ], ], 'union' => true, ], 'StreamDeliveryResources' => [ 'type' => 'structure', 'required' => [ 'resources', ], 'members' => [ 'resources' => [ 'shape' => 'StreamDeliveryResourcesList', ], ], ], 'StreamDeliveryResourcesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StreamDeliveryResource', ], 'max' => 1, 'min' => 0, ], 'StreamingConfiguration' => [ 'type' => 'structure', 'members' => [ 'enableResponseStreaming' => [ 'shape' => 'Boolean', ], ], ], 'String' => [ 'type' => 'string', ], 'StringListValidation' => [ 'type' => 'structure', 'members' => [ 'allowedValues' => [ 'shape' => 'AllowedStringListValuesList', ], 'maxItems' => [ 'shape' => 'StringListValidationMaxItemsInteger', ], ], ], 'StringListValidationMaxItemsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 5, 'min' => 1, ], 'StringValidation' => [ 'type' => 'structure', 'required' => [ 'allowedValues', ], 'members' => [ 'allowedValues' => [ 'shape' => 'AllowedStringValuesList', ], ], ], 'StripePrivyAppIdType' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-_]+', ], 'StripePrivyAuthorizationIdType' => [ 'type' => 'string', 'max' => 512, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-_]+', ], 'StripePrivyConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appId', 'authorizationId', ], 'members' => [ 'appId' => [ 'shape' => 'StripePrivyAppIdType', ], 'appSecret' => [ 'shape' => 'DefaultStripePrivyAppSecretType', ], 'appSecretSource' => [ 'shape' => 'SecretSourceType', ], 'appSecretConfig' => [ 'shape' => 'SecretReference', ], 'authorizationPrivateKey' => [ 'shape' => 'DefaultStripePrivyAuthorizationPrivateKeyType', ], 'authorizationPrivateKeySource' => [ 'shape' => 'SecretSourceType', ], 'authorizationPrivateKeyConfig' => [ 'shape' => 'SecretReference', ], 'authorizationId' => [ 'shape' => 'StripePrivyAuthorizationIdType', ], ], ], 'StripePrivyConfigurationOutput' => [ 'type' => 'structure', 'required' => [ 'appId', 'appSecretArn', 'authorizationPrivateKeyArn', 'authorizationId', ], 'members' => [ 'appId' => [ 'shape' => 'StripePrivyAppIdType', ], 'appSecretArn' => [ 'shape' => 'Secret', ], 'appSecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'appSecretSource' => [ 'shape' => 'SecretSourceType', ], 'authorizationPrivateKeyArn' => [ 'shape' => 'Secret', ], 'authorizationPrivateKeyJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'authorizationPrivateKeySource' => [ 'shape' => 'SecretSourceType', ], 'authorizationId' => [ 'shape' => 'StripePrivyAuthorizationIdType', ], ], ], 'SubmitRegistryRecordForApprovalRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', 'recordId', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], 'recordId' => [ 'shape' => 'RecordIdentifier', 'location' => 'uri', 'locationName' => 'recordId', ], ], ], 'SubmitRegistryRecordForApprovalResponse' => [ 'type' => 'structure', 'required' => [ 'registryArn', 'recordArn', 'recordId', 'status', 'updatedAt', ], 'members' => [ 'registryArn' => [ 'shape' => 'RegistryArn', ], 'recordArn' => [ 'shape' => 'RegistryRecordArn', ], 'recordId' => [ 'shape' => 'RegistryRecordId', ], 'status' => [ 'shape' => 'RegistryRecordStatus', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'SubnetId' => [ 'type' => 'string', 'pattern' => 'subnet-[0-9a-zA-Z]{8,17}', ], 'SubnetIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', ], ], 'Subnets' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', ], 'max' => 16, 'min' => 1, ], 'SummaryConsolidationOverride' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'SummaryMemoryStrategyInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'SummaryOverrideConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'consolidation' => [ 'shape' => 'SummaryOverrideConsolidationConfigurationInput', ], ], ], 'SummaryOverrideConsolidationConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'SynchronizationConfiguration' => [ 'type' => 'structure', 'members' => [ 'fromUrl' => [ 'shape' => 'FromUrlSynchronizationConfiguration', ], ], ], 'SynchronizationType' => [ 'type' => 'string', 'enum' => [ 'URL', ], ], 'SynchronizeGatewayTargetsRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'targetIdList', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'targetIdList' => [ 'shape' => 'TargetIdList', ], ], ], 'SynchronizeGatewayTargetsResponse' => [ 'type' => 'structure', 'members' => [ 'targets' => [ 'shape' => 'GatewayTargetList', ], ], ], 'SystemManagedBlock' => [ 'type' => 'structure', 'required' => [ 'managedBy', ], 'members' => [ 'managedBy' => [ 'shape' => 'String', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\s._:/=+@-]*', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 200, 'min' => 0, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'TaggableResourcesArn', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'tags' => [ 'shape' => 'TagsMap', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '[a-zA-Z0-9\\s._:/=+@-]*', ], 'TaggableResourcesArn' => [ 'type' => 'string', 'max' => 1011, 'min' => 20, 'pattern' => 'arn:(?:[^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:([a-z-]+/[^/]+)(?:/[a-z-]+/[^/]+)*', ], 'TagsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'max' => 50, 'min' => 0, ], 'TargetConfiguration' => [ 'type' => 'structure', 'members' => [ 'mcp' => [ 'shape' => 'McpTargetConfiguration', ], 'http' => [ 'shape' => 'HttpTargetConfiguration', ], 'inference' => [ 'shape' => 'InferenceTargetConfiguration', ], ], 'union' => true, ], 'TargetDescription' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'sensitive' => true, ], 'TargetId' => [ 'type' => 'string', 'pattern' => '[0-9a-zA-Z]{10}', ], 'TargetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetId', ], 'max' => 1, 'min' => 1, ], 'TargetMaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 1000, 'min' => 1, ], 'TargetName' => [ 'type' => 'string', 'pattern' => '([0-9a-zA-Z][-]?){1,100}', 'sensitive' => true, ], 'TargetNextToken' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '\\S*', ], 'TargetProtocolType' => [ 'type' => 'string', 'enum' => [ 'MCP', 'HTTP', ], ], 'TargetResourcePriority' => [ 'type' => 'integer', 'box' => true, 'max' => 1000, 'min' => 0, ], 'TargetStatus' => [ 'type' => 'string', 'enum' => [ 'CREATING', 'UPDATING', 'UPDATE_UNSUCCESSFUL', 'DELETING', 'READY', 'FAILED', 'SYNCHRONIZING', 'SYNCHRONIZE_UNSUCCESSFUL', 'CREATE_PENDING_AUTH', 'UPDATE_PENDING_AUTH', 'SYNCHRONIZE_PENDING_AUTH', ], ], 'TargetSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetSummary', ], ], 'TargetSummary' => [ 'type' => 'structure', 'required' => [ 'targetId', 'name', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'targetId' => [ 'shape' => 'TargetId', ], 'name' => [ 'shape' => 'TargetName', ], 'status' => [ 'shape' => 'TargetStatus', ], 'description' => [ 'shape' => 'TargetDescription', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'resourcePriority' => [ 'shape' => 'TargetResourcePriority', ], 'lastSynchronizedAt' => [ 'shape' => 'DateTimestamp', ], 'authorizationData' => [ 'shape' => 'AuthorizationData', ], 'targetType' => [ 'shape' => 'TargetType', ], 'listingMode' => [ 'shape' => 'ListingMode', ], ], ], 'TargetTrafficSplitEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetTrafficSplitEntry', ], 'max' => 2, 'min' => 2, ], 'TargetTrafficSplitEntry' => [ 'type' => 'structure', 'required' => [ 'name', 'weight', 'targetName', ], 'members' => [ 'name' => [ 'shape' => 'TargetTrafficSplitEntryNameString', ], 'weight' => [ 'shape' => 'TargetTrafficSplitEntryWeightInteger', ], 'targetName' => [ 'shape' => 'TargetName', ], 'description' => [ 'shape' => 'TargetTrafficSplitEntryDescriptionString', ], 'metadata' => [ 'shape' => 'TrafficSplitMetadataMap', ], ], ], 'TargetTrafficSplitEntryDescriptionString' => [ 'type' => 'string', 'max' => 200, 'min' => 1, ], 'TargetTrafficSplitEntryNameString' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9]([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?', ], 'TargetTrafficSplitEntryWeightInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 99, 'min' => 1, ], 'TargetType' => [ 'type' => 'string', 'enum' => [ 'OPEN_API_SCHEMA', 'SMITHY_MODEL', 'MCP_SERVER', 'LAMBDA', 'API_GATEWAY', 'CONNECTOR', 'AGENTCORE_RUNTIME', 'PASSTHROUGH', 'PROVIDER', ], ], 'Temperature' => [ 'type' => 'float', 'box' => true, 'max' => 2.0, 'min' => 0.0, ], 'TenantIdType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'ThrottledException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 429, 'senderFault' => true, ], 'exception' => true, 'retryable' => [ 'throttling' => false, ], ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'NonBlankString', ], ], 'error' => [ 'httpStatusCode' => 429, 'senderFault' => true, ], 'exception' => true, ], 'TimeBasedTrigger' => [ 'type' => 'structure', 'members' => [ 'idleSessionTimeout' => [ 'shape' => 'Integer', ], ], ], 'TimeBasedTriggerInput' => [ 'type' => 'structure', 'members' => [ 'idleSessionTimeout' => [ 'shape' => 'TimeBasedTriggerInputIdleSessionTimeoutInteger', ], ], ], 'TimeBasedTriggerInputIdleSessionTimeoutInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 3000, 'min' => 10, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TokenAuthMethod' => [ 'type' => 'string', 'pattern' => '(client_secret_post|client_secret_basic)', ], 'TokenBasedTrigger' => [ 'type' => 'structure', 'members' => [ 'tokenCount' => [ 'shape' => 'Integer', ], ], ], 'TokenBasedTriggerInput' => [ 'type' => 'structure', 'members' => [ 'tokenCount' => [ 'shape' => 'TokenBasedTriggerInputTokenCountInteger', ], ], ], 'TokenBasedTriggerInputTokenCountInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 500000, 'min' => 100, ], 'TokenEndpointAuthMethodsType' => [ 'type' => 'list', 'member' => [ 'shape' => 'TokenAuthMethod', ], 'max' => 2, 'min' => 1, ], 'TokenEndpointType' => [ 'type' => 'string', ], 'TokenExchangeGrantTypeConfigType' => [ 'type' => 'structure', 'required' => [ 'actorTokenContent', ], 'members' => [ 'actorTokenContent' => [ 'shape' => 'ActorTokenContentType', ], 'actorTokenScopes' => [ 'shape' => 'ScopesListType', ], ], ], 'TokenVaultIdType' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\-_]+', ], 'ToolDefinition' => [ 'type' => 'structure', 'required' => [ 'name', 'description', 'inputSchema', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'inputSchema' => [ 'shape' => 'SchemaDefinition', ], 'outputSchema' => [ 'shape' => 'SchemaDefinition', ], ], 'sensitive' => true, ], 'ToolDefinitions' => [ 'type' => 'list', 'member' => [ 'shape' => 'ToolDefinition', ], ], 'ToolSchema' => [ 'type' => 'structure', 'members' => [ 's3' => [ 'shape' => 'S3Configuration', ], 'inlinePayload' => [ 'shape' => 'ToolDefinitions', ], ], 'union' => true, ], 'ToolSecretArn' => [ 'type' => 'string', 'pattern' => 'arn:aws(-[a-z-]+)?:secretsmanager:[a-z0-9-]+:[0-9]{12}:secret:[a-zA-Z0-9/_+=.@-]+', ], 'ToolsDefinition' => [ 'type' => 'structure', 'members' => [ 'protocolVersion' => [ 'shape' => 'SchemaVersion', ], 'inlineContent' => [ 'shape' => 'InlineContent', ], ], ], 'TopK' => [ 'type' => 'integer', 'box' => true, 'max' => 500, 'min' => 0, ], 'TopP' => [ 'type' => 'float', 'box' => true, 'max' => 1.0, 'min' => 0.0, ], 'TrafficSplitEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficSplitEntry', ], 'max' => 2, 'min' => 2, ], 'TrafficSplitEntry' => [ 'type' => 'structure', 'required' => [ 'name', 'weight', 'configurationBundle', ], 'members' => [ 'name' => [ 'shape' => 'TrafficSplitEntryNameString', ], 'weight' => [ 'shape' => 'TrafficSplitEntryWeightInteger', ], 'configurationBundle' => [ 'shape' => 'ConfigurationBundleReference', ], 'description' => [ 'shape' => 'TrafficSplitEntryDescriptionString', ], 'metadata' => [ 'shape' => 'TrafficSplitMetadataMap', ], ], ], 'TrafficSplitEntryDescriptionString' => [ 'type' => 'string', 'max' => 200, 'min' => 1, ], 'TrafficSplitEntryNameString' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[a-zA-Z0-9]([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?', ], 'TrafficSplitEntryWeightInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 99, 'min' => 1, ], 'TrafficSplitMetadataKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TrafficSplitMetadataMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TrafficSplitMetadataKey', ], 'value' => [ 'shape' => 'TrafficSplitMetadataValue', ], 'max' => 25, 'min' => 0, ], 'TrafficSplitMetadataValue' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'TriggerCondition' => [ 'type' => 'structure', 'members' => [ 'messageBasedTrigger' => [ 'shape' => 'MessageBasedTrigger', ], 'tokenBasedTrigger' => [ 'shape' => 'TokenBasedTrigger', ], 'timeBasedTrigger' => [ 'shape' => 'TimeBasedTrigger', ], ], 'union' => true, ], 'TriggerConditionInput' => [ 'type' => 'structure', 'members' => [ 'messageBasedTrigger' => [ 'shape' => 'MessageBasedTriggerInput', ], 'tokenBasedTrigger' => [ 'shape' => 'TokenBasedTriggerInput', ], 'timeBasedTrigger' => [ 'shape' => 'TimeBasedTriggerInput', ], ], 'union' => true, ], 'TriggerConditionInputList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TriggerConditionInput', ], 'min' => 1, ], 'TriggerConditionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TriggerCondition', ], 'min' => 1, ], 'UnauthorizedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'NonBlankString', ], ], 'error' => [ 'httpStatusCode' => 401, 'senderFault' => true, ], 'exception' => true, ], 'Unit' => [ 'type' => 'structure', 'members' => [], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'TaggableResourcesArn', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'tagKeys' => [ 'shape' => 'TagKeyList', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateAgentRuntimeEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', 'endpointName', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'endpointName' => [ 'shape' => 'EndpointName', 'location' => 'uri', 'locationName' => 'endpointName', ], 'agentRuntimeVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'description' => [ 'shape' => 'AgentEndpointDescription', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'UpdateAgentRuntimeEndpointResponse' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeEndpointArn', 'agentRuntimeArn', 'status', 'createdAt', 'lastUpdatedAt', ], 'members' => [ 'liveVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'targetVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'agentRuntimeEndpointArn' => [ 'shape' => 'AgentRuntimeEndpointArn', ], 'agentRuntimeArn' => [ 'shape' => 'AgentRuntimeArn', ], 'status' => [ 'shape' => 'AgentRuntimeEndpointStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'UpdateAgentRuntimeRequest' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeId', 'agentRuntimeArtifact', 'roleArn', 'networkConfiguration', ], 'members' => [ 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', 'location' => 'uri', 'locationName' => 'agentRuntimeId', ], 'agentRuntimeArtifact' => [ 'shape' => 'AgentRuntimeArtifact', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'description' => [ 'shape' => 'Description', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'requestHeaderConfiguration' => [ 'shape' => 'RequestHeaderConfiguration', ], 'protocolConfiguration' => [ 'shape' => 'ProtocolConfiguration', ], 'lifecycleConfiguration' => [ 'shape' => 'LifecycleConfiguration', ], 'metadataConfiguration' => [ 'shape' => 'RuntimeMetadataConfiguration', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariablesMap', ], 'filesystemConfigurations' => [ 'shape' => 'FilesystemConfigurations', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'UpdateAgentRuntimeResponse' => [ 'type' => 'structure', 'required' => [ 'agentRuntimeArn', 'agentRuntimeId', 'agentRuntimeVersion', 'createdAt', 'lastUpdatedAt', 'status', ], 'members' => [ 'agentRuntimeArn' => [ 'shape' => 'AgentRuntimeArn', ], 'agentRuntimeId' => [ 'shape' => 'AgentRuntimeId', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'agentRuntimeVersion' => [ 'shape' => 'AgentRuntimeVersion', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'AgentRuntimeStatus', ], ], ], 'UpdateApiKeyCredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'apiKey' => [ 'shape' => 'DefaultApiKeyType', ], 'apiKeySecretConfig' => [ 'shape' => 'SecretReference', ], 'apiKeySecretSource' => [ 'shape' => 'SecretSourceType', ], ], ], 'UpdateApiKeyCredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'apiKeySecretArn', 'name', 'credentialProviderArn', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'apiKeySecretArn' => [ 'shape' => 'Secret', ], 'apiKeySecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'apiKeySecretSource' => [ 'shape' => 'SecretSourceType', ], 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderArn' => [ 'shape' => 'ApiKeyCredentialProviderArnType', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'UpdateConfigurationBundleRequest' => [ 'type' => 'structure', 'required' => [ 'bundleId', ], 'members' => [ 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'bundleId' => [ 'shape' => 'ConfigurationBundleId', 'location' => 'uri', 'locationName' => 'bundleId', ], 'bundleName' => [ 'shape' => 'ConfigurationBundleName', ], 'description' => [ 'shape' => 'ConfigurationBundleDescription', ], 'components' => [ 'shape' => 'ComponentConfigurationMap', ], 'parentVersionIds' => [ 'shape' => 'ConfigurationBundleVersionList', ], 'branchName' => [ 'shape' => 'BranchName', ], 'commitMessage' => [ 'shape' => 'UpdateConfigurationBundleRequestCommitMessageString', ], 'createdBy' => [ 'shape' => 'VersionCreatedBySource', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'UpdateConfigurationBundleRequestCommitMessageString' => [ 'type' => 'string', 'max' => 500, 'min' => 1, ], 'UpdateConfigurationBundleResponse' => [ 'type' => 'structure', 'required' => [ 'bundleArn', 'bundleId', 'versionId', 'updatedAt', ], 'members' => [ 'bundleArn' => [ 'shape' => 'ConfigurationBundleArn', ], 'bundleId' => [ 'shape' => 'ConfigurationBundleId', ], 'versionId' => [ 'shape' => 'ConfigurationBundleVersion', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'UpdateDatasetExamplesRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', 'examples', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'examples' => [ 'shape' => 'UpdateDatasetExamplesRequestExamplesList', ], ], ], 'UpdateDatasetExamplesRequestExamplesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SensitiveJson', ], 'max' => 1000, 'min' => 1, ], 'UpdateDatasetExamplesResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'status', 'updatedCount', 'updatedAt', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'status' => [ 'shape' => 'DatasetStatus', ], 'updatedCount' => [ 'shape' => 'Long', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'UpdateDatasetRequest' => [ 'type' => 'structure', 'required' => [ 'datasetId', ], 'members' => [ 'datasetId' => [ 'shape' => 'DatasetId', 'location' => 'uri', 'locationName' => 'datasetId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'description' => [ 'shape' => 'UpdateDatasetRequestDescriptionString', ], ], ], 'UpdateDatasetRequestDescriptionString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, ], 'UpdateDatasetResponse' => [ 'type' => 'structure', 'required' => [ 'datasetArn', 'datasetId', 'updatedAt', ], 'members' => [ 'datasetArn' => [ 'shape' => 'DatasetArn', ], 'datasetId' => [ 'shape' => 'DatasetId', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'UpdateEvaluatorRequest' => [ 'type' => 'structure', 'required' => [ 'evaluatorId', ], 'members' => [ 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'evaluatorId' => [ 'shape' => 'EvaluatorId', 'location' => 'uri', 'locationName' => 'evaluatorId', ], 'description' => [ 'shape' => 'EvaluatorDescription', ], 'evaluatorConfig' => [ 'shape' => 'EvaluatorConfig', ], 'level' => [ 'shape' => 'EvaluatorLevel', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'UpdateEvaluatorResponse' => [ 'type' => 'structure', 'required' => [ 'evaluatorArn', 'evaluatorId', 'updatedAt', 'status', ], 'members' => [ 'evaluatorArn' => [ 'shape' => 'EvaluatorArn', ], 'evaluatorId' => [ 'shape' => 'EvaluatorId', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'EvaluatorStatus', ], ], ], 'UpdateGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'name', 'roleArn', 'authorizerType', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'name' => [ 'shape' => 'GatewayName', ], 'description' => [ 'shape' => 'GatewayDescription', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'protocolType' => [ 'shape' => 'GatewayProtocolType', ], 'protocolConfiguration' => [ 'shape' => 'GatewayProtocolConfiguration', ], 'authorizerType' => [ 'shape' => 'AuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'customTransformConfiguration' => [ 'shape' => 'CustomTransformConfiguration', ], 'interceptorConfigurations' => [ 'shape' => 'GatewayInterceptorConfigurations', ], 'policyEngineConfiguration' => [ 'shape' => 'GatewayPolicyEngineConfiguration', ], 'exceptionLevel' => [ 'shape' => 'ExceptionLevel', ], 'wafConfiguration' => [ 'shape' => 'WafConfiguration', ], ], ], 'UpdateGatewayResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', 'gatewayId', 'createdAt', 'updatedAt', 'status', 'name', 'authorizerType', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'gatewayId' => [ 'shape' => 'GatewayId', ], 'gatewayUrl' => [ 'shape' => 'GatewayUrl', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'GatewayStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], 'name' => [ 'shape' => 'GatewayName', ], 'description' => [ 'shape' => 'GatewayDescription', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'protocolType' => [ 'shape' => 'GatewayProtocolType', ], 'protocolConfiguration' => [ 'shape' => 'GatewayProtocolConfiguration', ], 'authorizerType' => [ 'shape' => 'AuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'kmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'customTransformConfiguration' => [ 'shape' => 'CustomTransformConfiguration', ], 'interceptorConfigurations' => [ 'shape' => 'GatewayInterceptorConfigurations', ], 'policyEngineConfiguration' => [ 'shape' => 'GatewayPolicyEngineConfiguration', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'exceptionLevel' => [ 'shape' => 'ExceptionLevel', ], 'webAclArn' => [ 'shape' => 'WebAclArn', ], 'wafConfiguration' => [ 'shape' => 'WafConfiguration', ], ], ], 'UpdateGatewayRuleRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'ruleId', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'ruleId' => [ 'shape' => 'GatewayRuleId', 'location' => 'uri', 'locationName' => 'ruleId', ], 'priority' => [ 'shape' => 'GatewayRulePriority', ], 'conditions' => [ 'shape' => 'Conditions', ], 'actions' => [ 'shape' => 'Actions', ], 'description' => [ 'shape' => 'GatewayRuleDescription', ], ], ], 'UpdateGatewayRuleResponse' => [ 'type' => 'structure', 'required' => [ 'ruleId', 'gatewayArn', 'priority', 'actions', 'createdAt', 'status', ], 'members' => [ 'ruleId' => [ 'shape' => 'GatewayRuleId', ], 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'priority' => [ 'shape' => 'GatewayRulePriority', ], 'conditions' => [ 'shape' => 'Conditions', ], 'actions' => [ 'shape' => 'Actions', ], 'description' => [ 'shape' => 'GatewayRuleDescription', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'GatewayRuleStatus', ], 'system' => [ 'shape' => 'SystemManagedBlock', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'UpdateGatewayTargetRequest' => [ 'type' => 'structure', 'required' => [ 'gatewayIdentifier', 'targetId', 'targetConfiguration', ], 'members' => [ 'gatewayIdentifier' => [ 'shape' => 'GatewayIdentifier', 'location' => 'uri', 'locationName' => 'gatewayIdentifier', ], 'targetId' => [ 'shape' => 'TargetId', 'location' => 'uri', 'locationName' => 'targetId', ], 'name' => [ 'shape' => 'TargetName', ], 'description' => [ 'shape' => 'TargetDescription', ], 'targetConfiguration' => [ 'shape' => 'TargetConfiguration', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialProviderConfigurations', ], 'metadataConfiguration' => [ 'shape' => 'MetadataConfiguration', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], ], ], 'UpdateGatewayTargetResponse' => [ 'type' => 'structure', 'required' => [ 'gatewayArn', 'targetId', 'createdAt', 'updatedAt', 'status', 'name', 'targetConfiguration', 'credentialProviderConfigurations', ], 'members' => [ 'gatewayArn' => [ 'shape' => 'GatewayArn', ], 'targetId' => [ 'shape' => 'TargetId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'TargetStatus', ], 'statusReasons' => [ 'shape' => 'StatusReasons', ], 'name' => [ 'shape' => 'TargetName', ], 'description' => [ 'shape' => 'TargetDescription', ], 'targetConfiguration' => [ 'shape' => 'TargetConfiguration', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialProviderConfigurations', ], 'lastSynchronizedAt' => [ 'shape' => 'DateTimestamp', ], 'metadataConfiguration' => [ 'shape' => 'MetadataConfiguration', ], 'privateEndpoint' => [ 'shape' => 'PrivateEndpoint', ], 'privateEndpointManagedResources' => [ 'shape' => 'PrivateEndpointManagedResources', ], 'authorizationData' => [ 'shape' => 'AuthorizationData', ], 'protocolType' => [ 'shape' => 'TargetProtocolType', ], ], ], 'UpdateHarnessEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', 'endpointName', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'endpointName' => [ 'shape' => 'HarnessEndpointName', 'location' => 'uri', 'locationName' => 'endpointName', ], 'targetVersion' => [ 'shape' => 'HarnessVersion', ], 'description' => [ 'shape' => 'HarnessEndpointDescription', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'UpdateHarnessEndpointResponse' => [ 'type' => 'structure', 'required' => [ 'endpoint', ], 'members' => [ 'endpoint' => [ 'shape' => 'HarnessEndpoint', ], ], ], 'UpdateHarnessRequest' => [ 'type' => 'structure', 'required' => [ 'harnessId', ], 'members' => [ 'harnessId' => [ 'shape' => 'HarnessId', 'location' => 'uri', 'locationName' => 'harnessId', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'executionRoleArn' => [ 'shape' => 'RoleArn', ], 'environment' => [ 'shape' => 'HarnessEnvironmentProviderRequest', ], 'environmentArtifact' => [ 'shape' => 'UpdatedHarnessEnvironmentArtifact', ], 'environmentVariables' => [ 'shape' => 'EnvironmentVariablesMap', ], 'authorizerConfiguration' => [ 'shape' => 'UpdatedAuthorizerConfiguration', ], 'model' => [ 'shape' => 'HarnessModelConfiguration', ], 'systemPrompt' => [ 'shape' => 'HarnessSystemPrompt', ], 'tools' => [ 'shape' => 'HarnessTools', ], 'skills' => [ 'shape' => 'HarnessSkills', ], 'allowedTools' => [ 'shape' => 'HarnessAllowedTools', ], 'memory' => [ 'shape' => 'UpdatedHarnessMemoryConfiguration', ], 'truncation' => [ 'shape' => 'HarnessTruncationConfiguration', ], 'maxIterations' => [ 'shape' => 'Integer', ], 'maxTokens' => [ 'shape' => 'Integer', ], 'timeoutSeconds' => [ 'shape' => 'Integer', ], ], ], 'UpdateHarnessResponse' => [ 'type' => 'structure', 'required' => [ 'harness', ], 'members' => [ 'harness' => [ 'shape' => 'Harness', ], ], ], 'UpdateMemoryInput' => [ 'type' => 'structure', 'required' => [ 'memoryId', ], 'members' => [ 'clientToken' => [ 'shape' => 'UpdateMemoryInputClientTokenString', 'idempotencyToken' => true, ], 'memoryId' => [ 'shape' => 'MemoryId', 'location' => 'uri', 'locationName' => 'memoryId', ], 'description' => [ 'shape' => 'Description', ], 'eventExpiryDuration' => [ 'shape' => 'UpdateMemoryInputEventExpiryDurationInteger', ], 'memoryExecutionRoleArn' => [ 'shape' => 'Arn', ], 'memoryStrategies' => [ 'shape' => 'ModifyMemoryStrategies', ], 'addIndexedKeys' => [ 'shape' => 'IndexedKeysList', ], 'streamDeliveryResources' => [ 'shape' => 'StreamDeliveryResources', ], ], ], 'UpdateMemoryInputClientTokenString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, ], 'UpdateMemoryInputEventExpiryDurationInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 365, 'min' => 3, ], 'UpdateMemoryOutput' => [ 'type' => 'structure', 'members' => [ 'memory' => [ 'shape' => 'Memory', ], ], ], 'UpdateOauth2CredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderVendor', 'oauth2ProviderConfigInput', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'CredentialProviderVendorType', ], 'oauth2ProviderConfigInput' => [ 'shape' => 'Oauth2ProviderConfigInput', ], ], ], 'UpdateOauth2CredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'clientSecretArn', 'name', 'credentialProviderVendor', 'credentialProviderArn', 'oauth2ProviderConfigOutput', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'clientSecretArn' => [ 'shape' => 'Secret', ], 'clientSecretJsonKey' => [ 'shape' => 'SecretJsonKeyType', ], 'clientSecretSource' => [ 'shape' => 'SecretSourceType', ], 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'CredentialProviderVendorType', ], 'credentialProviderArn' => [ 'shape' => 'CredentialProviderArnType', ], 'callbackUrl' => [ 'shape' => 'String', ], 'oauth2ProviderConfigOutput' => [ 'shape' => 'Oauth2ProviderConfigOutput', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'Status', ], ], ], 'UpdateOnlineEvaluationConfigRequest' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigId', ], 'members' => [ 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], 'onlineEvaluationConfigId' => [ 'shape' => 'OnlineEvaluationConfigId', 'location' => 'uri', 'locationName' => 'onlineEvaluationConfigId', ], 'description' => [ 'shape' => 'EvaluationConfigDescription', ], 'rule' => [ 'shape' => 'Rule', ], 'dataSourceConfig' => [ 'shape' => 'DataSourceConfig', ], 'evaluators' => [ 'shape' => 'EvaluatorList', ], 'insights' => [ 'shape' => 'InsightList', ], 'clusteringConfig' => [ 'shape' => 'ClusteringConfig', ], 'evaluationExecutionRoleArn' => [ 'shape' => 'RoleArn', ], 'executionStatus' => [ 'shape' => 'OnlineEvaluationExecutionStatus', ], ], ], 'UpdateOnlineEvaluationConfigResponse' => [ 'type' => 'structure', 'required' => [ 'onlineEvaluationConfigArn', 'onlineEvaluationConfigId', 'updatedAt', 'status', 'executionStatus', ], 'members' => [ 'onlineEvaluationConfigArn' => [ 'shape' => 'OnlineEvaluationConfigArn', ], 'onlineEvaluationConfigId' => [ 'shape' => 'OnlineEvaluationConfigId', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'OnlineEvaluationConfigStatus', ], 'executionStatus' => [ 'shape' => 'OnlineEvaluationExecutionStatus', ], 'failureReason' => [ 'shape' => 'String', ], ], ], 'UpdatePaymentConnectorRequest' => [ 'type' => 'structure', 'required' => [ 'paymentManagerId', 'paymentConnectorId', ], 'members' => [ 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', 'location' => 'uri', 'locationName' => 'paymentManagerId', ], 'paymentConnectorId' => [ 'shape' => 'PaymentConnectorId', 'location' => 'uri', 'locationName' => 'paymentConnectorId', ], 'description' => [ 'shape' => 'PaymentsDescription', ], 'type' => [ 'shape' => 'PaymentConnectorType', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialsProviderConfigurations', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'UpdatePaymentConnectorResponse' => [ 'type' => 'structure', 'required' => [ 'paymentConnectorId', 'paymentManagerId', 'name', 'type', 'credentialProviderConfigurations', 'lastUpdatedAt', 'status', ], 'members' => [ 'paymentConnectorId' => [ 'shape' => 'PaymentConnectorId', ], 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', ], 'name' => [ 'shape' => 'PaymentConnectorName', ], 'type' => [ 'shape' => 'PaymentConnectorType', ], 'credentialProviderConfigurations' => [ 'shape' => 'CredentialsProviderConfigurations', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PaymentConnectorStatus', ], ], ], 'UpdatePaymentCredentialProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderVendor', 'providerConfigurationInput', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'PaymentCredentialProviderVendorType', ], 'providerConfigurationInput' => [ 'shape' => 'PaymentProviderConfigurationInput', ], ], ], 'UpdatePaymentCredentialProviderResponse' => [ 'type' => 'structure', 'required' => [ 'name', 'credentialProviderVendor', 'credentialProviderArn', 'providerConfigurationOutput', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'name' => [ 'shape' => 'CredentialProviderName', ], 'credentialProviderVendor' => [ 'shape' => 'PaymentCredentialProviderVendorType', ], 'credentialProviderArn' => [ 'shape' => 'PaymentCredentialProviderArnType', ], 'providerConfigurationOutput' => [ 'shape' => 'PaymentProviderConfigurationOutput', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'UpdatePaymentManagerRequest' => [ 'type' => 'structure', 'required' => [ 'paymentManagerId', ], 'members' => [ 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', 'location' => 'uri', 'locationName' => 'paymentManagerId', ], 'description' => [ 'shape' => 'PaymentsDescription', ], 'authorizerType' => [ 'shape' => 'PaymentsAuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'UpdatePaymentManagerResponse' => [ 'type' => 'structure', 'required' => [ 'paymentManagerArn', 'paymentManagerId', 'name', 'authorizerType', 'roleArn', 'lastUpdatedAt', 'status', ], 'members' => [ 'paymentManagerArn' => [ 'shape' => 'PaymentManagerArn', ], 'paymentManagerId' => [ 'shape' => 'PaymentManagerId', ], 'name' => [ 'shape' => 'PaymentManagerName', ], 'authorizerType' => [ 'shape' => 'PaymentsAuthorizerType', ], 'roleArn' => [ 'shape' => 'RoleArn', ], 'workloadIdentityDetails' => [ 'shape' => 'WorkloadIdentityDetails', ], 'lastUpdatedAt' => [ 'shape' => 'DateTimestamp', ], 'status' => [ 'shape' => 'PaymentManagerStatus', ], ], ], 'UpdatePolicyEngineRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'description' => [ 'shape' => 'UpdatedDescription', ], ], ], 'UpdatePolicyEngineResponse' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'name', 'createdAt', 'updatedAt', 'policyEngineArn', 'status', 'statusReasons', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyEngineName', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyEngineArn' => [ 'shape' => 'PolicyEngineArn', ], 'status' => [ 'shape' => 'PolicyEngineStatus', ], 'encryptionKeyArn' => [ 'shape' => 'KmsKeyArn', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'UpdatePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyEngineId', 'policyId', ], 'members' => [ 'policyEngineId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyEngineId', ], 'policyId' => [ 'shape' => 'ResourceId', 'location' => 'uri', 'locationName' => 'policyId', ], 'description' => [ 'shape' => 'UpdatedDescription', ], 'definition' => [ 'shape' => 'PolicyDefinition', ], 'validationMode' => [ 'shape' => 'PolicyValidationMode', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], ], ], 'UpdatePolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policyId', 'name', 'policyEngineId', 'createdAt', 'updatedAt', 'policyArn', 'status', 'definition', 'statusReasons', ], 'members' => [ 'policyId' => [ 'shape' => 'ResourceId', ], 'name' => [ 'shape' => 'PolicyName', ], 'policyEngineId' => [ 'shape' => 'ResourceId', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'policyArn' => [ 'shape' => 'PolicyArn', ], 'status' => [ 'shape' => 'PolicyStatus', ], 'enforcementMode' => [ 'shape' => 'EnforcementMode', ], 'definition' => [ 'shape' => 'PolicyDefinition', ], 'description' => [ 'shape' => 'Description', ], 'statusReasons' => [ 'shape' => 'PolicyStatusReasons', ], ], ], 'UpdateRegistryRecordRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', 'recordId', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], 'recordId' => [ 'shape' => 'RecordIdentifier', 'location' => 'uri', 'locationName' => 'recordId', ], 'name' => [ 'shape' => 'RegistryRecordName', ], 'description' => [ 'shape' => 'UpdatedDescription', ], 'descriptorType' => [ 'shape' => 'DescriptorType', ], 'descriptors' => [ 'shape' => 'UpdatedDescriptors', ], 'recordVersion' => [ 'shape' => 'RegistryRecordVersion', ], 'synchronizationType' => [ 'shape' => 'UpdatedSynchronizationType', ], 'synchronizationConfiguration' => [ 'shape' => 'UpdatedSynchronizationConfiguration', ], 'triggerSynchronization' => [ 'shape' => 'Boolean', ], ], ], 'UpdateRegistryRecordResponse' => [ 'type' => 'structure', 'required' => [ 'registryArn', 'recordArn', 'recordId', 'name', 'descriptorType', 'descriptors', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'registryArn' => [ 'shape' => 'RegistryArn', ], 'recordArn' => [ 'shape' => 'RegistryRecordArn', ], 'recordId' => [ 'shape' => 'RegistryRecordId', ], 'name' => [ 'shape' => 'RegistryRecordName', ], 'description' => [ 'shape' => 'Description', ], 'descriptorType' => [ 'shape' => 'DescriptorType', ], 'descriptors' => [ 'shape' => 'Descriptors', ], 'recordVersion' => [ 'shape' => 'RegistryRecordVersion', ], 'status' => [ 'shape' => 'RegistryRecordStatus', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], 'statusReason' => [ 'shape' => 'String', ], 'synchronizationType' => [ 'shape' => 'SynchronizationType', ], 'synchronizationConfiguration' => [ 'shape' => 'SynchronizationConfiguration', ], ], ], 'UpdateRegistryRecordStatusRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', 'recordId', 'status', 'statusReason', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], 'recordId' => [ 'shape' => 'RecordIdentifier', 'location' => 'uri', 'locationName' => 'recordId', ], 'status' => [ 'shape' => 'RegistryRecordStatus', ], 'statusReason' => [ 'shape' => 'UpdateRegistryRecordStatusRequestStatusReasonString', ], ], ], 'UpdateRegistryRecordStatusRequestStatusReasonString' => [ 'type' => 'string', 'max' => 255, 'min' => 0, ], 'UpdateRegistryRecordStatusResponse' => [ 'type' => 'structure', 'required' => [ 'registryArn', 'recordArn', 'recordId', 'status', 'statusReason', 'updatedAt', ], 'members' => [ 'registryArn' => [ 'shape' => 'RegistryArn', ], 'recordArn' => [ 'shape' => 'RegistryRecordArn', ], 'recordId' => [ 'shape' => 'RegistryRecordId', ], 'status' => [ 'shape' => 'RegistryRecordStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'UpdateRegistryRequest' => [ 'type' => 'structure', 'required' => [ 'registryId', ], 'members' => [ 'registryId' => [ 'shape' => 'RegistryIdentifier', 'location' => 'uri', 'locationName' => 'registryId', ], 'name' => [ 'shape' => 'RegistryName', ], 'description' => [ 'shape' => 'UpdatedDescription', ], 'authorizerConfiguration' => [ 'shape' => 'UpdatedAuthorizerConfiguration', ], 'approvalConfiguration' => [ 'shape' => 'UpdatedApprovalConfiguration', ], ], ], 'UpdateRegistryResponse' => [ 'type' => 'structure', 'required' => [ 'name', 'registryId', 'registryArn', 'status', 'createdAt', 'updatedAt', ], 'members' => [ 'name' => [ 'shape' => 'RegistryName', ], 'description' => [ 'shape' => 'Description', ], 'registryId' => [ 'shape' => 'RegistryId', ], 'registryArn' => [ 'shape' => 'RegistryArn', ], 'authorizerType' => [ 'shape' => 'RegistryAuthorizerType', ], 'authorizerConfiguration' => [ 'shape' => 'AuthorizerConfiguration', ], 'approvalConfiguration' => [ 'shape' => 'ApprovalConfiguration', ], 'status' => [ 'shape' => 'RegistryStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'DateTimestamp', ], 'updatedAt' => [ 'shape' => 'DateTimestamp', ], ], ], 'UpdateWorkloadIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'WorkloadIdentityNameType', ], 'allowedResourceOauth2ReturnUrls' => [ 'shape' => 'ResourceOauth2ReturnUrlListType', ], ], ], 'UpdateWorkloadIdentityResponse' => [ 'type' => 'structure', 'required' => [ 'name', 'workloadIdentityArn', 'createdTime', 'lastUpdatedTime', ], 'members' => [ 'name' => [ 'shape' => 'WorkloadIdentityNameType', ], 'workloadIdentityArn' => [ 'shape' => 'WorkloadIdentityArnType', ], 'allowedResourceOauth2ReturnUrls' => [ 'shape' => 'ResourceOauth2ReturnUrlListType', ], 'createdTime' => [ 'shape' => 'Timestamp', ], 'lastUpdatedTime' => [ 'shape' => 'Timestamp', ], ], ], 'UpdatedA2aDescriptor' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'A2aDescriptor', ], ], ], 'UpdatedAgentSkillsDescriptor' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'UpdatedAgentSkillsDescriptorFields', ], ], ], 'UpdatedAgentSkillsDescriptorFields' => [ 'type' => 'structure', 'members' => [ 'skillMd' => [ 'shape' => 'UpdatedSkillMdDefinition', ], 'skillDefinition' => [ 'shape' => 'UpdatedSkillDefinition', ], ], ], 'UpdatedApprovalConfiguration' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'ApprovalConfiguration', ], ], ], 'UpdatedAuthorizerConfiguration' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'AuthorizerConfiguration', ], ], ], 'UpdatedCustomDescriptor' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'CustomDescriptor', ], ], ], 'UpdatedDescription' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'Description', ], ], ], 'UpdatedDescriptors' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'UpdatedDescriptorsUnion', ], ], ], 'UpdatedDescriptorsUnion' => [ 'type' => 'structure', 'members' => [ 'mcp' => [ 'shape' => 'UpdatedMcpDescriptor', ], 'a2a' => [ 'shape' => 'UpdatedA2aDescriptor', ], 'custom' => [ 'shape' => 'UpdatedCustomDescriptor', ], 'agentSkills' => [ 'shape' => 'UpdatedAgentSkillsDescriptor', ], ], ], 'UpdatedHarnessEnvironmentArtifact' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'HarnessEnvironmentArtifact', ], ], ], 'UpdatedHarnessMemoryConfiguration' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'HarnessMemoryConfiguration', ], ], ], 'UpdatedMcpDescriptor' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'UpdatedMcpDescriptorFields', ], ], ], 'UpdatedMcpDescriptorFields' => [ 'type' => 'structure', 'members' => [ 'server' => [ 'shape' => 'UpdatedServerDefinition', ], 'tools' => [ 'shape' => 'UpdatedToolsDefinition', ], ], ], 'UpdatedServerDefinition' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'ServerDefinition', ], ], ], 'UpdatedSkillDefinition' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'SkillDefinition', ], ], ], 'UpdatedSkillMdDefinition' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'SkillMdDefinition', ], ], ], 'UpdatedSynchronizationConfiguration' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'SynchronizationConfiguration', ], ], ], 'UpdatedSynchronizationType' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'SynchronizationType', ], ], ], 'UpdatedToolsDefinition' => [ 'type' => 'structure', 'members' => [ 'optionalValue' => [ 'shape' => 'ToolsDefinition', ], ], ], 'UserPreferenceConsolidationOverride' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'UserPreferenceExtractionOverride' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'UserPreferenceMemoryStrategyInput' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'Name', ], 'description' => [ 'shape' => 'Description', ], 'namespaces' => [ 'shape' => 'NamespacesList', 'deprecated' => true, 'deprecatedMessage' => 'Use namespaceTemplates instead', 'deprecatedSince' => '2026-03-02', ], 'namespaceTemplates' => [ 'shape' => 'NamespacesList', ], 'memoryRecordSchema' => [ 'shape' => 'MemoryRecordSchema', ], ], ], 'UserPreferenceOverrideConfigurationInput' => [ 'type' => 'structure', 'members' => [ 'extraction' => [ 'shape' => 'UserPreferenceOverrideExtractionConfigurationInput', ], 'consolidation' => [ 'shape' => 'UserPreferenceOverrideConsolidationConfigurationInput', ], ], ], 'UserPreferenceOverrideConsolidationConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'UserPreferenceOverrideExtractionConfigurationInput' => [ 'type' => 'structure', 'required' => [ 'appendToPrompt', 'modelId', ], 'members' => [ 'appendToPrompt' => [ 'shape' => 'Prompt', ], 'modelId' => [ 'shape' => 'String', ], ], ], 'Validation' => [ 'type' => 'structure', 'members' => [ 'stringValidation' => [ 'shape' => 'StringValidation', ], 'stringListValidation' => [ 'shape' => 'StringListValidation', ], 'numberValidation' => [ 'shape' => 'NumberValidation', ], ], 'union' => true, ], 'ValidationException' => [ 'type' => 'structure', 'required' => [ 'message', 'reason', ], 'members' => [ 'message' => [ 'shape' => 'String', ], 'reason' => [ 'shape' => 'ValidationExceptionReason', ], 'fieldList' => [ 'shape' => 'ValidationExceptionFieldList', ], ], 'error' => [ 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ValidationExceptionField' => [ 'type' => 'structure', 'required' => [ 'name', 'message', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], ], 'ValidationExceptionFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValidationExceptionField', ], ], 'ValidationExceptionReason' => [ 'type' => 'string', 'enum' => [ 'CannotParse', 'FieldValidationFailed', 'IdempotentParameterMismatchException', 'EventInOtherSession', 'ResourceConflict', ], ], 'VersionCreatedBySource' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'arn' => [ 'shape' => 'String', ], ], ], 'VersionFilter' => [ 'type' => 'structure', 'members' => [ 'branchName' => [ 'shape' => 'BranchName', ], 'createdByName' => [ 'shape' => 'String', ], 'latestPerBranch' => [ 'shape' => 'Boolean', ], ], ], 'VersionLineageMetadata' => [ 'type' => 'structure', 'members' => [ 'parentVersionIds' => [ 'shape' => 'ConfigurationBundleVersionList', ], 'branchName' => [ 'shape' => 'BranchName', ], 'createdBy' => [ 'shape' => 'VersionCreatedBySource', ], 'commitMessage' => [ 'shape' => 'VersionLineageMetadataCommitMessageString', ], ], ], 'VersionLineageMetadataCommitMessageString' => [ 'type' => 'string', 'max' => 500, 'min' => 1, ], 'VpcConfig' => [ 'type' => 'structure', 'required' => [ 'securityGroups', 'subnets', ], 'members' => [ 'securityGroups' => [ 'shape' => 'SecurityGroups', ], 'subnets' => [ 'shape' => 'Subnets', ], 'requireServiceS3Endpoint' => [ 'shape' => 'Boolean', ], ], ], 'VpcIdentifier' => [ 'type' => 'string', 'pattern' => 'vpc-(([0-9a-z]{8})|([0-9a-z]{17}))', ], 'WafConfiguration' => [ 'type' => 'structure', 'members' => [ 'failureMode' => [ 'shape' => 'WafFailureMode', ], ], ], 'WafFailureMode' => [ 'type' => 'string', 'enum' => [ 'FAIL_CLOSE', 'FAIL_OPEN', ], ], 'WebAclArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => 'arn:[a-z0-9\\-]+:wafv2:[a-z0-9\\-]+:[0-9]{12}:regional/webacl/.+', ], 'WeightedOverride' => [ 'type' => 'structure', 'required' => [ 'trafficSplit', ], 'members' => [ 'trafficSplit' => [ 'shape' => 'TrafficSplitEntries', ], ], ], 'WeightedRoute' => [ 'type' => 'structure', 'required' => [ 'trafficSplit', ], 'members' => [ 'trafficSplit' => [ 'shape' => 'TargetTrafficSplitEntries', ], ], ], 'WorkloadIdentityArn' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'WorkloadIdentityArnType' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'WorkloadIdentityDetails' => [ 'type' => 'structure', 'required' => [ 'workloadIdentityArn', ], 'members' => [ 'workloadIdentityArn' => [ 'shape' => 'WorkloadIdentityArn', ], ], ], 'WorkloadIdentityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WorkloadIdentityType', ], ], 'WorkloadIdentityNameListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'WorkloadIdentityNameType', ], 'max' => 10, 'min' => 1, ], 'WorkloadIdentityNameType' => [ 'type' => 'string', 'max' => 255, 'min' => 3, 'pattern' => '[A-Za-z0-9_.-]+', ], 'WorkloadIdentityType' => [ 'type' => 'structure', 'required' => [ 'name', 'workloadIdentityArn', ], 'members' => [ 'name' => [ 'shape' => 'WorkloadIdentityNameType', ], 'workloadIdentityArn' => [ 'shape' => 'WorkloadIdentityArnType', ], ], ], 'entryPoint' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], ],]; diff --git a/vendor/aws/aws-sdk-php/src/data/ec2/2016-11-15/api-2.json.php b/vendor/aws/aws-sdk-php/src/data/ec2/2016-11-15/api-2.json.php index 80f21817b..8a936d3b5 100644 --- a/vendor/aws/aws-sdk-php/src/data/ec2/2016-11-15/api-2.json.php +++ b/vendor/aws/aws-sdk-php/src/data/ec2/2016-11-15/api-2.json.php @@ -1,3 +1,3 @@ '2.0', 'metadata' => [ 'apiVersion' => '2016-11-15', 'endpointPrefix' => 'ec2', 'protocol' => 'ec2', 'protocols' => [ 'ec2', ], 'serviceAbbreviation' => 'Amazon EC2', 'serviceFullName' => 'Amazon Elastic Compute Cloud', 'serviceId' => 'EC2', 'signatureVersion' => 'v4', 'uid' => 'ec2-2016-11-15', 'xmlNamespace' => 'http://ec2.amazonaws.com/doc/2016-11-15', 'auth' => [ 'aws.auth#sigv4', ], ], 'operations' => [ 'AcceptAddressTransfer' => [ 'name' => 'AcceptAddressTransfer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptAddressTransferRequest', ], 'output' => [ 'shape' => 'AcceptAddressTransferResult', ], ], 'AcceptCapacityReservationBillingOwnership' => [ 'name' => 'AcceptCapacityReservationBillingOwnership', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptCapacityReservationBillingOwnershipRequest', ], 'output' => [ 'shape' => 'AcceptCapacityReservationBillingOwnershipResult', ], ], 'AcceptReservedInstancesExchangeQuote' => [ 'name' => 'AcceptReservedInstancesExchangeQuote', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptReservedInstancesExchangeQuoteRequest', ], 'output' => [ 'shape' => 'AcceptReservedInstancesExchangeQuoteResult', ], ], 'AcceptTransitGatewayClientVpnAttachment' => [ 'name' => 'AcceptTransitGatewayClientVpnAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptTransitGatewayClientVpnAttachmentRequest', ], 'output' => [ 'shape' => 'AcceptTransitGatewayClientVpnAttachmentResult', ], ], 'AcceptTransitGatewayMulticastDomainAssociations' => [ 'name' => 'AcceptTransitGatewayMulticastDomainAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptTransitGatewayMulticastDomainAssociationsRequest', ], 'output' => [ 'shape' => 'AcceptTransitGatewayMulticastDomainAssociationsResult', ], ], 'AcceptTransitGatewayPeeringAttachment' => [ 'name' => 'AcceptTransitGatewayPeeringAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptTransitGatewayPeeringAttachmentRequest', ], 'output' => [ 'shape' => 'AcceptTransitGatewayPeeringAttachmentResult', ], ], 'AcceptTransitGatewayVpcAttachment' => [ 'name' => 'AcceptTransitGatewayVpcAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptTransitGatewayVpcAttachmentRequest', ], 'output' => [ 'shape' => 'AcceptTransitGatewayVpcAttachmentResult', ], ], 'AcceptVpcEndpointConnections' => [ 'name' => 'AcceptVpcEndpointConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptVpcEndpointConnectionsRequest', ], 'output' => [ 'shape' => 'AcceptVpcEndpointConnectionsResult', ], ], 'AcceptVpcPeeringConnection' => [ 'name' => 'AcceptVpcPeeringConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptVpcPeeringConnectionRequest', ], 'output' => [ 'shape' => 'AcceptVpcPeeringConnectionResult', ], ], 'AdvertiseByoipCidr' => [ 'name' => 'AdvertiseByoipCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdvertiseByoipCidrRequest', ], 'output' => [ 'shape' => 'AdvertiseByoipCidrResult', ], ], 'AllocateAddress' => [ 'name' => 'AllocateAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AllocateAddressRequest', ], 'output' => [ 'shape' => 'AllocateAddressResult', ], ], 'AllocateHosts' => [ 'name' => 'AllocateHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AllocateHostsRequest', ], 'output' => [ 'shape' => 'AllocateHostsResult', ], ], 'AllocateIpamPoolCidr' => [ 'name' => 'AllocateIpamPoolCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AllocateIpamPoolCidrRequest', ], 'output' => [ 'shape' => 'AllocateIpamPoolCidrResult', ], ], 'ApplySecurityGroupsToClientVpnTargetNetwork' => [ 'name' => 'ApplySecurityGroupsToClientVpnTargetNetwork', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ApplySecurityGroupsToClientVpnTargetNetworkRequest', ], 'output' => [ 'shape' => 'ApplySecurityGroupsToClientVpnTargetNetworkResult', ], ], 'AssignIpv6Addresses' => [ 'name' => 'AssignIpv6Addresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssignIpv6AddressesRequest', ], 'output' => [ 'shape' => 'AssignIpv6AddressesResult', ], ], 'AssignPrivateIpAddresses' => [ 'name' => 'AssignPrivateIpAddresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssignPrivateIpAddressesRequest', ], 'output' => [ 'shape' => 'AssignPrivateIpAddressesResult', ], ], 'AssignPrivateNatGatewayAddress' => [ 'name' => 'AssignPrivateNatGatewayAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssignPrivateNatGatewayAddressRequest', ], 'output' => [ 'shape' => 'AssignPrivateNatGatewayAddressResult', ], ], 'AssociateAddress' => [ 'name' => 'AssociateAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateAddressRequest', ], 'output' => [ 'shape' => 'AssociateAddressResult', ], ], 'AssociateCapacityReservationBillingOwner' => [ 'name' => 'AssociateCapacityReservationBillingOwner', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateCapacityReservationBillingOwnerRequest', ], 'output' => [ 'shape' => 'AssociateCapacityReservationBillingOwnerResult', ], ], 'AssociateClientVpnTargetNetwork' => [ 'name' => 'AssociateClientVpnTargetNetwork', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateClientVpnTargetNetworkRequest', ], 'output' => [ 'shape' => 'AssociateClientVpnTargetNetworkResult', ], ], 'AssociateDhcpOptions' => [ 'name' => 'AssociateDhcpOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateDhcpOptionsRequest', ], ], 'AssociateEnclaveCertificateIamRole' => [ 'name' => 'AssociateEnclaveCertificateIamRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateEnclaveCertificateIamRoleRequest', ], 'output' => [ 'shape' => 'AssociateEnclaveCertificateIamRoleResult', ], ], 'AssociateIamInstanceProfile' => [ 'name' => 'AssociateIamInstanceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateIamInstanceProfileRequest', ], 'output' => [ 'shape' => 'AssociateIamInstanceProfileResult', ], ], 'AssociateInstanceEventWindow' => [ 'name' => 'AssociateInstanceEventWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateInstanceEventWindowRequest', ], 'output' => [ 'shape' => 'AssociateInstanceEventWindowResult', ], ], 'AssociateIpamByoasn' => [ 'name' => 'AssociateIpamByoasn', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateIpamByoasnRequest', ], 'output' => [ 'shape' => 'AssociateIpamByoasnResult', ], ], 'AssociateIpamResourceDiscovery' => [ 'name' => 'AssociateIpamResourceDiscovery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateIpamResourceDiscoveryRequest', ], 'output' => [ 'shape' => 'AssociateIpamResourceDiscoveryResult', ], ], 'AssociateNatGatewayAddress' => [ 'name' => 'AssociateNatGatewayAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateNatGatewayAddressRequest', ], 'output' => [ 'shape' => 'AssociateNatGatewayAddressResult', ], ], 'AssociateRouteServer' => [ 'name' => 'AssociateRouteServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateRouteServerRequest', ], 'output' => [ 'shape' => 'AssociateRouteServerResult', ], ], 'AssociateRouteTable' => [ 'name' => 'AssociateRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateRouteTableRequest', ], 'output' => [ 'shape' => 'AssociateRouteTableResult', ], ], 'AssociateSecurityGroupVpc' => [ 'name' => 'AssociateSecurityGroupVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateSecurityGroupVpcRequest', ], 'output' => [ 'shape' => 'AssociateSecurityGroupVpcResult', ], ], 'AssociateSubnetCidrBlock' => [ 'name' => 'AssociateSubnetCidrBlock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateSubnetCidrBlockRequest', ], 'output' => [ 'shape' => 'AssociateSubnetCidrBlockResult', ], ], 'AssociateTransitGatewayMulticastDomain' => [ 'name' => 'AssociateTransitGatewayMulticastDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateTransitGatewayMulticastDomainRequest', ], 'output' => [ 'shape' => 'AssociateTransitGatewayMulticastDomainResult', ], ], 'AssociateTransitGatewayPolicyTable' => [ 'name' => 'AssociateTransitGatewayPolicyTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateTransitGatewayPolicyTableRequest', ], 'output' => [ 'shape' => 'AssociateTransitGatewayPolicyTableResult', ], ], 'AssociateTransitGatewayRouteTable' => [ 'name' => 'AssociateTransitGatewayRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateTransitGatewayRouteTableRequest', ], 'output' => [ 'shape' => 'AssociateTransitGatewayRouteTableResult', ], ], 'AssociateTrunkInterface' => [ 'name' => 'AssociateTrunkInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateTrunkInterfaceRequest', ], 'output' => [ 'shape' => 'AssociateTrunkInterfaceResult', ], ], 'AssociateVpcCidrBlock' => [ 'name' => 'AssociateVpcCidrBlock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateVpcCidrBlockRequest', ], 'output' => [ 'shape' => 'AssociateVpcCidrBlockResult', ], ], 'AttachClassicLinkVpc' => [ 'name' => 'AttachClassicLinkVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachClassicLinkVpcRequest', ], 'output' => [ 'shape' => 'AttachClassicLinkVpcResult', ], ], 'AttachImageWatermark' => [ 'name' => 'AttachImageWatermark', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachImageWatermarkRequest', ], 'output' => [ 'shape' => 'AttachImageWatermarkResult', ], ], 'AttachInternetGateway' => [ 'name' => 'AttachInternetGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachInternetGatewayRequest', ], ], 'AttachNetworkInterface' => [ 'name' => 'AttachNetworkInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachNetworkInterfaceRequest', ], 'output' => [ 'shape' => 'AttachNetworkInterfaceResult', ], ], 'AttachVerifiedAccessTrustProvider' => [ 'name' => 'AttachVerifiedAccessTrustProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachVerifiedAccessTrustProviderRequest', ], 'output' => [ 'shape' => 'AttachVerifiedAccessTrustProviderResult', ], ], 'AttachVolume' => [ 'name' => 'AttachVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachVolumeRequest', ], 'output' => [ 'shape' => 'VolumeAttachment', ], ], 'AttachVpnGateway' => [ 'name' => 'AttachVpnGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachVpnGatewayRequest', ], 'output' => [ 'shape' => 'AttachVpnGatewayResult', ], ], 'AuthorizeClientVpnIngress' => [ 'name' => 'AuthorizeClientVpnIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AuthorizeClientVpnIngressRequest', ], 'output' => [ 'shape' => 'AuthorizeClientVpnIngressResult', ], ], 'AuthorizeSecurityGroupEgress' => [ 'name' => 'AuthorizeSecurityGroupEgress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AuthorizeSecurityGroupEgressRequest', ], 'output' => [ 'shape' => 'AuthorizeSecurityGroupEgressResult', ], ], 'AuthorizeSecurityGroupIngress' => [ 'name' => 'AuthorizeSecurityGroupIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AuthorizeSecurityGroupIngressRequest', ], 'output' => [ 'shape' => 'AuthorizeSecurityGroupIngressResult', ], ], 'BundleInstance' => [ 'name' => 'BundleInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BundleInstanceRequest', ], 'output' => [ 'shape' => 'BundleInstanceResult', ], ], 'CancelBundleTask' => [ 'name' => 'CancelBundleTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelBundleTaskRequest', ], 'output' => [ 'shape' => 'CancelBundleTaskResult', ], ], 'CancelCapacityReservation' => [ 'name' => 'CancelCapacityReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelCapacityReservationRequest', ], 'output' => [ 'shape' => 'CancelCapacityReservationResult', ], ], 'CancelCapacityReservationFleets' => [ 'name' => 'CancelCapacityReservationFleets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelCapacityReservationFleetsRequest', ], 'output' => [ 'shape' => 'CancelCapacityReservationFleetsResult', ], ], 'CancelConversionTask' => [ 'name' => 'CancelConversionTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelConversionRequest', ], ], 'CancelDeclarativePoliciesReport' => [ 'name' => 'CancelDeclarativePoliciesReport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelDeclarativePoliciesReportRequest', ], 'output' => [ 'shape' => 'CancelDeclarativePoliciesReportResult', ], ], 'CancelExportTask' => [ 'name' => 'CancelExportTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelExportTaskRequest', ], ], 'CancelImageLaunchPermission' => [ 'name' => 'CancelImageLaunchPermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelImageLaunchPermissionRequest', ], 'output' => [ 'shape' => 'CancelImageLaunchPermissionResult', ], ], 'CancelImportTask' => [ 'name' => 'CancelImportTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelImportTaskRequest', ], 'output' => [ 'shape' => 'CancelImportTaskResult', ], ], 'CancelReservedInstancesListing' => [ 'name' => 'CancelReservedInstancesListing', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelReservedInstancesListingRequest', ], 'output' => [ 'shape' => 'CancelReservedInstancesListingResult', ], ], 'CancelSpotFleetRequests' => [ 'name' => 'CancelSpotFleetRequests', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelSpotFleetRequestsRequest', ], 'output' => [ 'shape' => 'CancelSpotFleetRequestsResponse', ], ], 'CancelSpotInstanceRequests' => [ 'name' => 'CancelSpotInstanceRequests', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelSpotInstanceRequestsRequest', ], 'output' => [ 'shape' => 'CancelSpotInstanceRequestsResult', ], ], 'ConfirmProductInstance' => [ 'name' => 'ConfirmProductInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ConfirmProductInstanceRequest', ], 'output' => [ 'shape' => 'ConfirmProductInstanceResult', ], ], 'CopyFpgaImage' => [ 'name' => 'CopyFpgaImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyFpgaImageRequest', ], 'output' => [ 'shape' => 'CopyFpgaImageResult', ], ], 'CopyImage' => [ 'name' => 'CopyImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyImageRequest', ], 'output' => [ 'shape' => 'CopyImageResult', ], ], 'CopySnapshot' => [ 'name' => 'CopySnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopySnapshotRequest', ], 'output' => [ 'shape' => 'CopySnapshotResult', ], ], 'CopyVolumes' => [ 'name' => 'CopyVolumes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyVolumesRequest', ], 'output' => [ 'shape' => 'CopyVolumesResult', ], ], 'CreateCapacityManagerDataExport' => [ 'name' => 'CreateCapacityManagerDataExport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCapacityManagerDataExportRequest', ], 'output' => [ 'shape' => 'CreateCapacityManagerDataExportResult', ], ], 'CreateCapacityReservation' => [ 'name' => 'CreateCapacityReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCapacityReservationRequest', ], 'output' => [ 'shape' => 'CreateCapacityReservationResult', ], ], 'CreateCapacityReservationBySplitting' => [ 'name' => 'CreateCapacityReservationBySplitting', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCapacityReservationBySplittingRequest', ], 'output' => [ 'shape' => 'CreateCapacityReservationBySplittingResult', ], ], 'CreateCapacityReservationCancellationQuote' => [ 'name' => 'CreateCapacityReservationCancellationQuote', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCapacityReservationCancellationQuoteRequest', ], 'output' => [ 'shape' => 'CreateCapacityReservationCancellationQuoteResult', ], ], 'CreateCapacityReservationFleet' => [ 'name' => 'CreateCapacityReservationFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCapacityReservationFleetRequest', ], 'output' => [ 'shape' => 'CreateCapacityReservationFleetResult', ], ], 'CreateCarrierGateway' => [ 'name' => 'CreateCarrierGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCarrierGatewayRequest', ], 'output' => [ 'shape' => 'CreateCarrierGatewayResult', ], ], 'CreateClientVpnEndpoint' => [ 'name' => 'CreateClientVpnEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClientVpnEndpointRequest', ], 'output' => [ 'shape' => 'CreateClientVpnEndpointResult', ], ], 'CreateClientVpnRoute' => [ 'name' => 'CreateClientVpnRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClientVpnRouteRequest', ], 'output' => [ 'shape' => 'CreateClientVpnRouteResult', ], ], 'CreateCoipCidr' => [ 'name' => 'CreateCoipCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCoipCidrRequest', ], 'output' => [ 'shape' => 'CreateCoipCidrResult', ], ], 'CreateCoipPool' => [ 'name' => 'CreateCoipPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCoipPoolRequest', ], 'output' => [ 'shape' => 'CreateCoipPoolResult', ], ], 'CreateCustomerGateway' => [ 'name' => 'CreateCustomerGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCustomerGatewayRequest', ], 'output' => [ 'shape' => 'CreateCustomerGatewayResult', ], ], 'CreateDefaultSubnet' => [ 'name' => 'CreateDefaultSubnet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDefaultSubnetRequest', ], 'output' => [ 'shape' => 'CreateDefaultSubnetResult', ], ], 'CreateDefaultVpc' => [ 'name' => 'CreateDefaultVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDefaultVpcRequest', ], 'output' => [ 'shape' => 'CreateDefaultVpcResult', ], ], 'CreateDelegateMacVolumeOwnershipTask' => [ 'name' => 'CreateDelegateMacVolumeOwnershipTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDelegateMacVolumeOwnershipTaskRequest', ], 'output' => [ 'shape' => 'CreateDelegateMacVolumeOwnershipTaskResult', ], ], 'CreateDhcpOptions' => [ 'name' => 'CreateDhcpOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDhcpOptionsRequest', ], 'output' => [ 'shape' => 'CreateDhcpOptionsResult', ], ], 'CreateEgressOnlyInternetGateway' => [ 'name' => 'CreateEgressOnlyInternetGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateEgressOnlyInternetGatewayRequest', ], 'output' => [ 'shape' => 'CreateEgressOnlyInternetGatewayResult', ], ], 'CreateFleet' => [ 'name' => 'CreateFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateFleetRequest', ], 'output' => [ 'shape' => 'CreateFleetResult', ], ], 'CreateFlowLogs' => [ 'name' => 'CreateFlowLogs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateFlowLogsRequest', ], 'output' => [ 'shape' => 'CreateFlowLogsResult', ], ], 'CreateFpgaImage' => [ 'name' => 'CreateFpgaImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateFpgaImageRequest', ], 'output' => [ 'shape' => 'CreateFpgaImageResult', ], ], 'CreateImage' => [ 'name' => 'CreateImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateImageRequest', ], 'output' => [ 'shape' => 'CreateImageResult', ], ], 'CreateImageUsageReport' => [ 'name' => 'CreateImageUsageReport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateImageUsageReportRequest', ], 'output' => [ 'shape' => 'CreateImageUsageReportResult', ], ], 'CreateInstanceConnectEndpoint' => [ 'name' => 'CreateInstanceConnectEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInstanceConnectEndpointRequest', ], 'output' => [ 'shape' => 'CreateInstanceConnectEndpointResult', ], ], 'CreateInstanceEventWindow' => [ 'name' => 'CreateInstanceEventWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInstanceEventWindowRequest', ], 'output' => [ 'shape' => 'CreateInstanceEventWindowResult', ], ], 'CreateInstanceExportTask' => [ 'name' => 'CreateInstanceExportTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInstanceExportTaskRequest', ], 'output' => [ 'shape' => 'CreateInstanceExportTaskResult', ], ], 'CreateInternetGateway' => [ 'name' => 'CreateInternetGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInternetGatewayRequest', ], 'output' => [ 'shape' => 'CreateInternetGatewayResult', ], ], 'CreateInterruptibleCapacityReservationAllocation' => [ 'name' => 'CreateInterruptibleCapacityReservationAllocation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInterruptibleCapacityReservationAllocationRequest', ], 'output' => [ 'shape' => 'CreateInterruptibleCapacityReservationAllocationResult', ], ], 'CreateIpam' => [ 'name' => 'CreateIpam', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpamRequest', ], 'output' => [ 'shape' => 'CreateIpamResult', ], ], 'CreateIpamExternalResourceVerificationToken' => [ 'name' => 'CreateIpamExternalResourceVerificationToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpamExternalResourceVerificationTokenRequest', ], 'output' => [ 'shape' => 'CreateIpamExternalResourceVerificationTokenResult', ], ], 'CreateIpamPolicy' => [ 'name' => 'CreateIpamPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpamPolicyRequest', ], 'output' => [ 'shape' => 'CreateIpamPolicyResult', ], ], 'CreateIpamPool' => [ 'name' => 'CreateIpamPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpamPoolRequest', ], 'output' => [ 'shape' => 'CreateIpamPoolResult', ], ], 'CreateIpamPrefixListResolver' => [ 'name' => 'CreateIpamPrefixListResolver', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpamPrefixListResolverRequest', ], 'output' => [ 'shape' => 'CreateIpamPrefixListResolverResult', ], ], 'CreateIpamPrefixListResolverTarget' => [ 'name' => 'CreateIpamPrefixListResolverTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpamPrefixListResolverTargetRequest', ], 'output' => [ 'shape' => 'CreateIpamPrefixListResolverTargetResult', ], ], 'CreateIpamResourceDiscovery' => [ 'name' => 'CreateIpamResourceDiscovery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpamResourceDiscoveryRequest', ], 'output' => [ 'shape' => 'CreateIpamResourceDiscoveryResult', ], ], 'CreateIpamScope' => [ 'name' => 'CreateIpamScope', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpamScopeRequest', ], 'output' => [ 'shape' => 'CreateIpamScopeResult', ], ], 'CreateKeyPair' => [ 'name' => 'CreateKeyPair', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateKeyPairRequest', ], 'output' => [ 'shape' => 'KeyPair', ], ], 'CreateLaunchTemplate' => [ 'name' => 'CreateLaunchTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLaunchTemplateRequest', ], 'output' => [ 'shape' => 'CreateLaunchTemplateResult', ], ], 'CreateLaunchTemplateVersion' => [ 'name' => 'CreateLaunchTemplateVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLaunchTemplateVersionRequest', ], 'output' => [ 'shape' => 'CreateLaunchTemplateVersionResult', ], ], 'CreateLocalGatewayRoute' => [ 'name' => 'CreateLocalGatewayRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLocalGatewayRouteRequest', ], 'output' => [ 'shape' => 'CreateLocalGatewayRouteResult', ], ], 'CreateLocalGatewayRouteTable' => [ 'name' => 'CreateLocalGatewayRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLocalGatewayRouteTableRequest', ], 'output' => [ 'shape' => 'CreateLocalGatewayRouteTableResult', ], ], 'CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation' => [ 'name' => 'CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest', ], 'output' => [ 'shape' => 'CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult', ], ], 'CreateLocalGatewayRouteTableVpcAssociation' => [ 'name' => 'CreateLocalGatewayRouteTableVpcAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLocalGatewayRouteTableVpcAssociationRequest', ], 'output' => [ 'shape' => 'CreateLocalGatewayRouteTableVpcAssociationResult', ], ], 'CreateLocalGatewayVirtualInterface' => [ 'name' => 'CreateLocalGatewayVirtualInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLocalGatewayVirtualInterfaceRequest', ], 'output' => [ 'shape' => 'CreateLocalGatewayVirtualInterfaceResult', ], ], 'CreateLocalGatewayVirtualInterfaceGroup' => [ 'name' => 'CreateLocalGatewayVirtualInterfaceGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLocalGatewayVirtualInterfaceGroupRequest', ], 'output' => [ 'shape' => 'CreateLocalGatewayVirtualInterfaceGroupResult', ], ], 'CreateMacSystemIntegrityProtectionModificationTask' => [ 'name' => 'CreateMacSystemIntegrityProtectionModificationTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateMacSystemIntegrityProtectionModificationTaskRequest', ], 'output' => [ 'shape' => 'CreateMacSystemIntegrityProtectionModificationTaskResult', ], ], 'CreateManagedPrefixList' => [ 'name' => 'CreateManagedPrefixList', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateManagedPrefixListRequest', ], 'output' => [ 'shape' => 'CreateManagedPrefixListResult', ], ], 'CreateNatGateway' => [ 'name' => 'CreateNatGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNatGatewayRequest', ], 'output' => [ 'shape' => 'CreateNatGatewayResult', ], ], 'CreateNetworkAcl' => [ 'name' => 'CreateNetworkAcl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNetworkAclRequest', ], 'output' => [ 'shape' => 'CreateNetworkAclResult', ], ], 'CreateNetworkAclEntry' => [ 'name' => 'CreateNetworkAclEntry', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNetworkAclEntryRequest', ], ], 'CreateNetworkInsightsAccessScope' => [ 'name' => 'CreateNetworkInsightsAccessScope', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNetworkInsightsAccessScopeRequest', ], 'output' => [ 'shape' => 'CreateNetworkInsightsAccessScopeResult', ], ], 'CreateNetworkInsightsPath' => [ 'name' => 'CreateNetworkInsightsPath', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNetworkInsightsPathRequest', ], 'output' => [ 'shape' => 'CreateNetworkInsightsPathResult', ], ], 'CreateNetworkInterface' => [ 'name' => 'CreateNetworkInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNetworkInterfaceRequest', ], 'output' => [ 'shape' => 'CreateNetworkInterfaceResult', ], ], 'CreateNetworkInterfacePermission' => [ 'name' => 'CreateNetworkInterfacePermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNetworkInterfacePermissionRequest', ], 'output' => [ 'shape' => 'CreateNetworkInterfacePermissionResult', ], ], 'CreatePlacementGroup' => [ 'name' => 'CreatePlacementGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePlacementGroupRequest', ], 'output' => [ 'shape' => 'CreatePlacementGroupResult', ], ], 'CreatePublicIpv4Pool' => [ 'name' => 'CreatePublicIpv4Pool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePublicIpv4PoolRequest', ], 'output' => [ 'shape' => 'CreatePublicIpv4PoolResult', ], ], 'CreateReplaceRootVolumeTask' => [ 'name' => 'CreateReplaceRootVolumeTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateReplaceRootVolumeTaskRequest', ], 'output' => [ 'shape' => 'CreateReplaceRootVolumeTaskResult', ], ], 'CreateReservedInstancesListing' => [ 'name' => 'CreateReservedInstancesListing', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateReservedInstancesListingRequest', ], 'output' => [ 'shape' => 'CreateReservedInstancesListingResult', ], ], 'CreateRestoreImageTask' => [ 'name' => 'CreateRestoreImageTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRestoreImageTaskRequest', ], 'output' => [ 'shape' => 'CreateRestoreImageTaskResult', ], ], 'CreateRoute' => [ 'name' => 'CreateRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRouteRequest', ], 'output' => [ 'shape' => 'CreateRouteResult', ], ], 'CreateRouteServer' => [ 'name' => 'CreateRouteServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRouteServerRequest', ], 'output' => [ 'shape' => 'CreateRouteServerResult', ], ], 'CreateRouteServerEndpoint' => [ 'name' => 'CreateRouteServerEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRouteServerEndpointRequest', ], 'output' => [ 'shape' => 'CreateRouteServerEndpointResult', ], ], 'CreateRouteServerPeer' => [ 'name' => 'CreateRouteServerPeer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRouteServerPeerRequest', ], 'output' => [ 'shape' => 'CreateRouteServerPeerResult', ], ], 'CreateRouteTable' => [ 'name' => 'CreateRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRouteTableRequest', ], 'output' => [ 'shape' => 'CreateRouteTableResult', ], ], 'CreateSecondaryNetwork' => [ 'name' => 'CreateSecondaryNetwork', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSecondaryNetworkRequest', ], 'output' => [ 'shape' => 'CreateSecondaryNetworkResult', ], ], 'CreateSecondarySubnet' => [ 'name' => 'CreateSecondarySubnet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSecondarySubnetRequest', ], 'output' => [ 'shape' => 'CreateSecondarySubnetResult', ], ], 'CreateSecurityGroup' => [ 'name' => 'CreateSecurityGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSecurityGroupRequest', ], 'output' => [ 'shape' => 'CreateSecurityGroupResult', ], ], 'CreateSnapshot' => [ 'name' => 'CreateSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSnapshotRequest', ], 'output' => [ 'shape' => 'Snapshot', ], ], 'CreateSnapshots' => [ 'name' => 'CreateSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSnapshotsRequest', ], 'output' => [ 'shape' => 'CreateSnapshotsResult', ], ], 'CreateSpotDatafeedSubscription' => [ 'name' => 'CreateSpotDatafeedSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSpotDatafeedSubscriptionRequest', ], 'output' => [ 'shape' => 'CreateSpotDatafeedSubscriptionResult', ], ], 'CreateStoreImageTask' => [ 'name' => 'CreateStoreImageTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateStoreImageTaskRequest', ], 'output' => [ 'shape' => 'CreateStoreImageTaskResult', ], ], 'CreateSubnet' => [ 'name' => 'CreateSubnet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSubnetRequest', ], 'output' => [ 'shape' => 'CreateSubnetResult', ], ], 'CreateSubnetCidrReservation' => [ 'name' => 'CreateSubnetCidrReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSubnetCidrReservationRequest', ], 'output' => [ 'shape' => 'CreateSubnetCidrReservationResult', ], ], 'CreateTags' => [ 'name' => 'CreateTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTagsRequest', ], ], 'CreateTrafficMirrorFilter' => [ 'name' => 'CreateTrafficMirrorFilter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTrafficMirrorFilterRequest', ], 'output' => [ 'shape' => 'CreateTrafficMirrorFilterResult', ], ], 'CreateTrafficMirrorFilterRule' => [ 'name' => 'CreateTrafficMirrorFilterRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTrafficMirrorFilterRuleRequest', ], 'output' => [ 'shape' => 'CreateTrafficMirrorFilterRuleResult', ], ], 'CreateTrafficMirrorSession' => [ 'name' => 'CreateTrafficMirrorSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTrafficMirrorSessionRequest', ], 'output' => [ 'shape' => 'CreateTrafficMirrorSessionResult', ], ], 'CreateTrafficMirrorTarget' => [ 'name' => 'CreateTrafficMirrorTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTrafficMirrorTargetRequest', ], 'output' => [ 'shape' => 'CreateTrafficMirrorTargetResult', ], ], 'CreateTransitGateway' => [ 'name' => 'CreateTransitGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayResult', ], ], 'CreateTransitGatewayConnect' => [ 'name' => 'CreateTransitGatewayConnect', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayConnectRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayConnectResult', ], ], 'CreateTransitGatewayConnectPeer' => [ 'name' => 'CreateTransitGatewayConnectPeer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayConnectPeerRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayConnectPeerResult', ], ], 'CreateTransitGatewayMeteringPolicy' => [ 'name' => 'CreateTransitGatewayMeteringPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayMeteringPolicyRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayMeteringPolicyResult', ], ], 'CreateTransitGatewayMeteringPolicyEntry' => [ 'name' => 'CreateTransitGatewayMeteringPolicyEntry', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayMeteringPolicyEntryRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayMeteringPolicyEntryResult', ], ], 'CreateTransitGatewayMulticastDomain' => [ 'name' => 'CreateTransitGatewayMulticastDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayMulticastDomainRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayMulticastDomainResult', ], ], 'CreateTransitGatewayPeeringAttachment' => [ 'name' => 'CreateTransitGatewayPeeringAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayPeeringAttachmentRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayPeeringAttachmentResult', ], ], 'CreateTransitGatewayPolicyTable' => [ 'name' => 'CreateTransitGatewayPolicyTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayPolicyTableRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayPolicyTableResult', ], ], 'CreateTransitGatewayPrefixListReference' => [ 'name' => 'CreateTransitGatewayPrefixListReference', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayPrefixListReferenceRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayPrefixListReferenceResult', ], ], 'CreateTransitGatewayRoute' => [ 'name' => 'CreateTransitGatewayRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayRouteRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayRouteResult', ], ], 'CreateTransitGatewayRouteTable' => [ 'name' => 'CreateTransitGatewayRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayRouteTableRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayRouteTableResult', ], ], 'CreateTransitGatewayRouteTableAnnouncement' => [ 'name' => 'CreateTransitGatewayRouteTableAnnouncement', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayRouteTableAnnouncementRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayRouteTableAnnouncementResult', ], ], 'CreateTransitGatewayVpcAttachment' => [ 'name' => 'CreateTransitGatewayVpcAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayVpcAttachmentRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayVpcAttachmentResult', ], ], 'CreateVerifiedAccessEndpoint' => [ 'name' => 'CreateVerifiedAccessEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVerifiedAccessEndpointRequest', ], 'output' => [ 'shape' => 'CreateVerifiedAccessEndpointResult', ], ], 'CreateVerifiedAccessGroup' => [ 'name' => 'CreateVerifiedAccessGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVerifiedAccessGroupRequest', ], 'output' => [ 'shape' => 'CreateVerifiedAccessGroupResult', ], ], 'CreateVerifiedAccessInstance' => [ 'name' => 'CreateVerifiedAccessInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVerifiedAccessInstanceRequest', ], 'output' => [ 'shape' => 'CreateVerifiedAccessInstanceResult', ], ], 'CreateVerifiedAccessTrustProvider' => [ 'name' => 'CreateVerifiedAccessTrustProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVerifiedAccessTrustProviderRequest', ], 'output' => [ 'shape' => 'CreateVerifiedAccessTrustProviderResult', ], ], 'CreateVolume' => [ 'name' => 'CreateVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVolumeRequest', ], 'output' => [ 'shape' => 'Volume', ], ], 'CreateVpc' => [ 'name' => 'CreateVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcRequest', ], 'output' => [ 'shape' => 'CreateVpcResult', ], ], 'CreateVpcBlockPublicAccessExclusion' => [ 'name' => 'CreateVpcBlockPublicAccessExclusion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcBlockPublicAccessExclusionRequest', ], 'output' => [ 'shape' => 'CreateVpcBlockPublicAccessExclusionResult', ], ], 'CreateVpcEncryptionControl' => [ 'name' => 'CreateVpcEncryptionControl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcEncryptionControlRequest', ], 'output' => [ 'shape' => 'CreateVpcEncryptionControlResult', ], ], 'CreateVpcEndpoint' => [ 'name' => 'CreateVpcEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcEndpointRequest', ], 'output' => [ 'shape' => 'CreateVpcEndpointResult', ], ], 'CreateVpcEndpointConnectionNotification' => [ 'name' => 'CreateVpcEndpointConnectionNotification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcEndpointConnectionNotificationRequest', ], 'output' => [ 'shape' => 'CreateVpcEndpointConnectionNotificationResult', ], ], 'CreateVpcEndpointServiceConfiguration' => [ 'name' => 'CreateVpcEndpointServiceConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcEndpointServiceConfigurationRequest', ], 'output' => [ 'shape' => 'CreateVpcEndpointServiceConfigurationResult', ], ], 'CreateVpcPeeringConnection' => [ 'name' => 'CreateVpcPeeringConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcPeeringConnectionRequest', ], 'output' => [ 'shape' => 'CreateVpcPeeringConnectionResult', ], ], 'CreateVpnConcentrator' => [ 'name' => 'CreateVpnConcentrator', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpnConcentratorRequest', ], 'output' => [ 'shape' => 'CreateVpnConcentratorResult', ], ], 'CreateVpnConnection' => [ 'name' => 'CreateVpnConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpnConnectionRequest', ], 'output' => [ 'shape' => 'CreateVpnConnectionResult', ], ], 'CreateVpnConnectionRoute' => [ 'name' => 'CreateVpnConnectionRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpnConnectionRouteRequest', ], ], 'CreateVpnGateway' => [ 'name' => 'CreateVpnGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpnGatewayRequest', ], 'output' => [ 'shape' => 'CreateVpnGatewayResult', ], ], 'DeleteCapacityManagerDataExport' => [ 'name' => 'DeleteCapacityManagerDataExport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCapacityManagerDataExportRequest', ], 'output' => [ 'shape' => 'DeleteCapacityManagerDataExportResult', ], ], 'DeleteCarrierGateway' => [ 'name' => 'DeleteCarrierGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCarrierGatewayRequest', ], 'output' => [ 'shape' => 'DeleteCarrierGatewayResult', ], ], 'DeleteClientVpnEndpoint' => [ 'name' => 'DeleteClientVpnEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClientVpnEndpointRequest', ], 'output' => [ 'shape' => 'DeleteClientVpnEndpointResult', ], ], 'DeleteClientVpnRoute' => [ 'name' => 'DeleteClientVpnRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClientVpnRouteRequest', ], 'output' => [ 'shape' => 'DeleteClientVpnRouteResult', ], ], 'DeleteCoipCidr' => [ 'name' => 'DeleteCoipCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCoipCidrRequest', ], 'output' => [ 'shape' => 'DeleteCoipCidrResult', ], ], 'DeleteCoipPool' => [ 'name' => 'DeleteCoipPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCoipPoolRequest', ], 'output' => [ 'shape' => 'DeleteCoipPoolResult', ], ], 'DeleteCustomerGateway' => [ 'name' => 'DeleteCustomerGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCustomerGatewayRequest', ], ], 'DeleteDhcpOptions' => [ 'name' => 'DeleteDhcpOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDhcpOptionsRequest', ], ], 'DeleteEgressOnlyInternetGateway' => [ 'name' => 'DeleteEgressOnlyInternetGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEgressOnlyInternetGatewayRequest', ], 'output' => [ 'shape' => 'DeleteEgressOnlyInternetGatewayResult', ], ], 'DeleteFleets' => [ 'name' => 'DeleteFleets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteFleetsRequest', ], 'output' => [ 'shape' => 'DeleteFleetsResult', ], ], 'DeleteFlowLogs' => [ 'name' => 'DeleteFlowLogs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteFlowLogsRequest', ], 'output' => [ 'shape' => 'DeleteFlowLogsResult', ], ], 'DeleteFpgaImage' => [ 'name' => 'DeleteFpgaImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteFpgaImageRequest', ], 'output' => [ 'shape' => 'DeleteFpgaImageResult', ], ], 'DeleteImageUsageReport' => [ 'name' => 'DeleteImageUsageReport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteImageUsageReportRequest', ], 'output' => [ 'shape' => 'DeleteImageUsageReportResult', ], ], 'DeleteInstanceConnectEndpoint' => [ 'name' => 'DeleteInstanceConnectEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteInstanceConnectEndpointRequest', ], 'output' => [ 'shape' => 'DeleteInstanceConnectEndpointResult', ], ], 'DeleteInstanceEventWindow' => [ 'name' => 'DeleteInstanceEventWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteInstanceEventWindowRequest', ], 'output' => [ 'shape' => 'DeleteInstanceEventWindowResult', ], ], 'DeleteInternetGateway' => [ 'name' => 'DeleteInternetGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteInternetGatewayRequest', ], ], 'DeleteIpam' => [ 'name' => 'DeleteIpam', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpamRequest', ], 'output' => [ 'shape' => 'DeleteIpamResult', ], ], 'DeleteIpamExternalResourceVerificationToken' => [ 'name' => 'DeleteIpamExternalResourceVerificationToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpamExternalResourceVerificationTokenRequest', ], 'output' => [ 'shape' => 'DeleteIpamExternalResourceVerificationTokenResult', ], ], 'DeleteIpamPolicy' => [ 'name' => 'DeleteIpamPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpamPolicyRequest', ], 'output' => [ 'shape' => 'DeleteIpamPolicyResult', ], ], 'DeleteIpamPool' => [ 'name' => 'DeleteIpamPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpamPoolRequest', ], 'output' => [ 'shape' => 'DeleteIpamPoolResult', ], ], 'DeleteIpamPrefixListResolver' => [ 'name' => 'DeleteIpamPrefixListResolver', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpamPrefixListResolverRequest', ], 'output' => [ 'shape' => 'DeleteIpamPrefixListResolverResult', ], ], 'DeleteIpamPrefixListResolverTarget' => [ 'name' => 'DeleteIpamPrefixListResolverTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpamPrefixListResolverTargetRequest', ], 'output' => [ 'shape' => 'DeleteIpamPrefixListResolverTargetResult', ], ], 'DeleteIpamResourceDiscovery' => [ 'name' => 'DeleteIpamResourceDiscovery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpamResourceDiscoveryRequest', ], 'output' => [ 'shape' => 'DeleteIpamResourceDiscoveryResult', ], ], 'DeleteIpamScope' => [ 'name' => 'DeleteIpamScope', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpamScopeRequest', ], 'output' => [ 'shape' => 'DeleteIpamScopeResult', ], ], 'DeleteKeyPair' => [ 'name' => 'DeleteKeyPair', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteKeyPairRequest', ], 'output' => [ 'shape' => 'DeleteKeyPairResult', ], ], 'DeleteLaunchTemplate' => [ 'name' => 'DeleteLaunchTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLaunchTemplateRequest', ], 'output' => [ 'shape' => 'DeleteLaunchTemplateResult', ], ], 'DeleteLaunchTemplateVersions' => [ 'name' => 'DeleteLaunchTemplateVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLaunchTemplateVersionsRequest', ], 'output' => [ 'shape' => 'DeleteLaunchTemplateVersionsResult', ], ], 'DeleteLocalGatewayRoute' => [ 'name' => 'DeleteLocalGatewayRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLocalGatewayRouteRequest', ], 'output' => [ 'shape' => 'DeleteLocalGatewayRouteResult', ], ], 'DeleteLocalGatewayRouteTable' => [ 'name' => 'DeleteLocalGatewayRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLocalGatewayRouteTableRequest', ], 'output' => [ 'shape' => 'DeleteLocalGatewayRouteTableResult', ], ], 'DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation' => [ 'name' => 'DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest', ], 'output' => [ 'shape' => 'DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult', ], ], 'DeleteLocalGatewayRouteTableVpcAssociation' => [ 'name' => 'DeleteLocalGatewayRouteTableVpcAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLocalGatewayRouteTableVpcAssociationRequest', ], 'output' => [ 'shape' => 'DeleteLocalGatewayRouteTableVpcAssociationResult', ], ], 'DeleteLocalGatewayVirtualInterface' => [ 'name' => 'DeleteLocalGatewayVirtualInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLocalGatewayVirtualInterfaceRequest', ], 'output' => [ 'shape' => 'DeleteLocalGatewayVirtualInterfaceResult', ], ], 'DeleteLocalGatewayVirtualInterfaceGroup' => [ 'name' => 'DeleteLocalGatewayVirtualInterfaceGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLocalGatewayVirtualInterfaceGroupRequest', ], 'output' => [ 'shape' => 'DeleteLocalGatewayVirtualInterfaceGroupResult', ], ], 'DeleteManagedPrefixList' => [ 'name' => 'DeleteManagedPrefixList', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteManagedPrefixListRequest', ], 'output' => [ 'shape' => 'DeleteManagedPrefixListResult', ], ], 'DeleteNatGateway' => [ 'name' => 'DeleteNatGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNatGatewayRequest', ], 'output' => [ 'shape' => 'DeleteNatGatewayResult', ], ], 'DeleteNetworkAcl' => [ 'name' => 'DeleteNetworkAcl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkAclRequest', ], ], 'DeleteNetworkAclEntry' => [ 'name' => 'DeleteNetworkAclEntry', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkAclEntryRequest', ], ], 'DeleteNetworkInsightsAccessScope' => [ 'name' => 'DeleteNetworkInsightsAccessScope', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkInsightsAccessScopeRequest', ], 'output' => [ 'shape' => 'DeleteNetworkInsightsAccessScopeResult', ], ], 'DeleteNetworkInsightsAccessScopeAnalysis' => [ 'name' => 'DeleteNetworkInsightsAccessScopeAnalysis', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkInsightsAccessScopeAnalysisRequest', ], 'output' => [ 'shape' => 'DeleteNetworkInsightsAccessScopeAnalysisResult', ], ], 'DeleteNetworkInsightsAnalysis' => [ 'name' => 'DeleteNetworkInsightsAnalysis', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkInsightsAnalysisRequest', ], 'output' => [ 'shape' => 'DeleteNetworkInsightsAnalysisResult', ], ], 'DeleteNetworkInsightsPath' => [ 'name' => 'DeleteNetworkInsightsPath', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkInsightsPathRequest', ], 'output' => [ 'shape' => 'DeleteNetworkInsightsPathResult', ], ], 'DeleteNetworkInterface' => [ 'name' => 'DeleteNetworkInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkInterfaceRequest', ], ], 'DeleteNetworkInterfacePermission' => [ 'name' => 'DeleteNetworkInterfacePermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkInterfacePermissionRequest', ], 'output' => [ 'shape' => 'DeleteNetworkInterfacePermissionResult', ], ], 'DeletePlacementGroup' => [ 'name' => 'DeletePlacementGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePlacementGroupRequest', ], ], 'DeletePublicIpv4Pool' => [ 'name' => 'DeletePublicIpv4Pool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePublicIpv4PoolRequest', ], 'output' => [ 'shape' => 'DeletePublicIpv4PoolResult', ], ], 'DeleteQueuedReservedInstances' => [ 'name' => 'DeleteQueuedReservedInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteQueuedReservedInstancesRequest', ], 'output' => [ 'shape' => 'DeleteQueuedReservedInstancesResult', ], ], 'DeleteRoute' => [ 'name' => 'DeleteRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRouteRequest', ], ], 'DeleteRouteServer' => [ 'name' => 'DeleteRouteServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRouteServerRequest', ], 'output' => [ 'shape' => 'DeleteRouteServerResult', ], ], 'DeleteRouteServerEndpoint' => [ 'name' => 'DeleteRouteServerEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRouteServerEndpointRequest', ], 'output' => [ 'shape' => 'DeleteRouteServerEndpointResult', ], ], 'DeleteRouteServerPeer' => [ 'name' => 'DeleteRouteServerPeer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRouteServerPeerRequest', ], 'output' => [ 'shape' => 'DeleteRouteServerPeerResult', ], ], 'DeleteRouteTable' => [ 'name' => 'DeleteRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRouteTableRequest', ], ], 'DeleteSecondaryNetwork' => [ 'name' => 'DeleteSecondaryNetwork', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSecondaryNetworkRequest', ], 'output' => [ 'shape' => 'DeleteSecondaryNetworkResult', ], ], 'DeleteSecondarySubnet' => [ 'name' => 'DeleteSecondarySubnet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSecondarySubnetRequest', ], 'output' => [ 'shape' => 'DeleteSecondarySubnetResult', ], ], 'DeleteSecurityGroup' => [ 'name' => 'DeleteSecurityGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSecurityGroupRequest', ], 'output' => [ 'shape' => 'DeleteSecurityGroupResult', ], ], 'DeleteSnapshot' => [ 'name' => 'DeleteSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSnapshotRequest', ], ], 'DeleteSpotDatafeedSubscription' => [ 'name' => 'DeleteSpotDatafeedSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSpotDatafeedSubscriptionRequest', ], ], 'DeleteSubnet' => [ 'name' => 'DeleteSubnet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSubnetRequest', ], ], 'DeleteSubnetCidrReservation' => [ 'name' => 'DeleteSubnetCidrReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSubnetCidrReservationRequest', ], 'output' => [ 'shape' => 'DeleteSubnetCidrReservationResult', ], ], 'DeleteTags' => [ 'name' => 'DeleteTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTagsRequest', ], ], 'DeleteTrafficMirrorFilter' => [ 'name' => 'DeleteTrafficMirrorFilter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTrafficMirrorFilterRequest', ], 'output' => [ 'shape' => 'DeleteTrafficMirrorFilterResult', ], ], 'DeleteTrafficMirrorFilterRule' => [ 'name' => 'DeleteTrafficMirrorFilterRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTrafficMirrorFilterRuleRequest', ], 'output' => [ 'shape' => 'DeleteTrafficMirrorFilterRuleResult', ], ], 'DeleteTrafficMirrorSession' => [ 'name' => 'DeleteTrafficMirrorSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTrafficMirrorSessionRequest', ], 'output' => [ 'shape' => 'DeleteTrafficMirrorSessionResult', ], ], 'DeleteTrafficMirrorTarget' => [ 'name' => 'DeleteTrafficMirrorTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTrafficMirrorTargetRequest', ], 'output' => [ 'shape' => 'DeleteTrafficMirrorTargetResult', ], ], 'DeleteTransitGateway' => [ 'name' => 'DeleteTransitGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayResult', ], ], 'DeleteTransitGatewayClientVpnAttachment' => [ 'name' => 'DeleteTransitGatewayClientVpnAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayClientVpnAttachmentRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayClientVpnAttachmentResult', ], ], 'DeleteTransitGatewayConnect' => [ 'name' => 'DeleteTransitGatewayConnect', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayConnectRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayConnectResult', ], ], 'DeleteTransitGatewayConnectPeer' => [ 'name' => 'DeleteTransitGatewayConnectPeer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayConnectPeerRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayConnectPeerResult', ], ], 'DeleteTransitGatewayMeteringPolicy' => [ 'name' => 'DeleteTransitGatewayMeteringPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayMeteringPolicyRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayMeteringPolicyResult', ], ], 'DeleteTransitGatewayMeteringPolicyEntry' => [ 'name' => 'DeleteTransitGatewayMeteringPolicyEntry', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayMeteringPolicyEntryRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayMeteringPolicyEntryResult', ], ], 'DeleteTransitGatewayMulticastDomain' => [ 'name' => 'DeleteTransitGatewayMulticastDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayMulticastDomainRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayMulticastDomainResult', ], ], 'DeleteTransitGatewayPeeringAttachment' => [ 'name' => 'DeleteTransitGatewayPeeringAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayPeeringAttachmentRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayPeeringAttachmentResult', ], ], 'DeleteTransitGatewayPolicyTable' => [ 'name' => 'DeleteTransitGatewayPolicyTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayPolicyTableRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayPolicyTableResult', ], ], 'DeleteTransitGatewayPrefixListReference' => [ 'name' => 'DeleteTransitGatewayPrefixListReference', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayPrefixListReferenceRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayPrefixListReferenceResult', ], ], 'DeleteTransitGatewayRoute' => [ 'name' => 'DeleteTransitGatewayRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayRouteRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayRouteResult', ], ], 'DeleteTransitGatewayRouteTable' => [ 'name' => 'DeleteTransitGatewayRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayRouteTableRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayRouteTableResult', ], ], 'DeleteTransitGatewayRouteTableAnnouncement' => [ 'name' => 'DeleteTransitGatewayRouteTableAnnouncement', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayRouteTableAnnouncementRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayRouteTableAnnouncementResult', ], ], 'DeleteTransitGatewayVpcAttachment' => [ 'name' => 'DeleteTransitGatewayVpcAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayVpcAttachmentRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayVpcAttachmentResult', ], ], 'DeleteVerifiedAccessEndpoint' => [ 'name' => 'DeleteVerifiedAccessEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVerifiedAccessEndpointRequest', ], 'output' => [ 'shape' => 'DeleteVerifiedAccessEndpointResult', ], ], 'DeleteVerifiedAccessGroup' => [ 'name' => 'DeleteVerifiedAccessGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVerifiedAccessGroupRequest', ], 'output' => [ 'shape' => 'DeleteVerifiedAccessGroupResult', ], ], 'DeleteVerifiedAccessInstance' => [ 'name' => 'DeleteVerifiedAccessInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVerifiedAccessInstanceRequest', ], 'output' => [ 'shape' => 'DeleteVerifiedAccessInstanceResult', ], ], 'DeleteVerifiedAccessTrustProvider' => [ 'name' => 'DeleteVerifiedAccessTrustProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVerifiedAccessTrustProviderRequest', ], 'output' => [ 'shape' => 'DeleteVerifiedAccessTrustProviderResult', ], ], 'DeleteVolume' => [ 'name' => 'DeleteVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVolumeRequest', ], ], 'DeleteVpc' => [ 'name' => 'DeleteVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcRequest', ], ], 'DeleteVpcBlockPublicAccessExclusion' => [ 'name' => 'DeleteVpcBlockPublicAccessExclusion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcBlockPublicAccessExclusionRequest', ], 'output' => [ 'shape' => 'DeleteVpcBlockPublicAccessExclusionResult', ], ], 'DeleteVpcEncryptionControl' => [ 'name' => 'DeleteVpcEncryptionControl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcEncryptionControlRequest', ], 'output' => [ 'shape' => 'DeleteVpcEncryptionControlResult', ], ], 'DeleteVpcEndpointConnectionNotifications' => [ 'name' => 'DeleteVpcEndpointConnectionNotifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcEndpointConnectionNotificationsRequest', ], 'output' => [ 'shape' => 'DeleteVpcEndpointConnectionNotificationsResult', ], ], 'DeleteVpcEndpointServiceConfigurations' => [ 'name' => 'DeleteVpcEndpointServiceConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcEndpointServiceConfigurationsRequest', ], 'output' => [ 'shape' => 'DeleteVpcEndpointServiceConfigurationsResult', ], ], 'DeleteVpcEndpoints' => [ 'name' => 'DeleteVpcEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcEndpointsRequest', ], 'output' => [ 'shape' => 'DeleteVpcEndpointsResult', ], ], 'DeleteVpcPeeringConnection' => [ 'name' => 'DeleteVpcPeeringConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcPeeringConnectionRequest', ], 'output' => [ 'shape' => 'DeleteVpcPeeringConnectionResult', ], ], 'DeleteVpnConcentrator' => [ 'name' => 'DeleteVpnConcentrator', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpnConcentratorRequest', ], 'output' => [ 'shape' => 'DeleteVpnConcentratorResult', ], ], 'DeleteVpnConnection' => [ 'name' => 'DeleteVpnConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpnConnectionRequest', ], ], 'DeleteVpnConnectionRoute' => [ 'name' => 'DeleteVpnConnectionRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpnConnectionRouteRequest', ], ], 'DeleteVpnGateway' => [ 'name' => 'DeleteVpnGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpnGatewayRequest', ], ], 'DeprovisionByoipCidr' => [ 'name' => 'DeprovisionByoipCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeprovisionByoipCidrRequest', ], 'output' => [ 'shape' => 'DeprovisionByoipCidrResult', ], ], 'DeprovisionIpamByoasn' => [ 'name' => 'DeprovisionIpamByoasn', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeprovisionIpamByoasnRequest', ], 'output' => [ 'shape' => 'DeprovisionIpamByoasnResult', ], ], 'DeprovisionIpamPoolCidr' => [ 'name' => 'DeprovisionIpamPoolCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeprovisionIpamPoolCidrRequest', ], 'output' => [ 'shape' => 'DeprovisionIpamPoolCidrResult', ], ], 'DeprovisionPublicIpv4PoolCidr' => [ 'name' => 'DeprovisionPublicIpv4PoolCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeprovisionPublicIpv4PoolCidrRequest', ], 'output' => [ 'shape' => 'DeprovisionPublicIpv4PoolCidrResult', ], ], 'DeregisterImage' => [ 'name' => 'DeregisterImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterImageRequest', ], 'output' => [ 'shape' => 'DeregisterImageResult', ], ], 'DeregisterInstanceEventNotificationAttributes' => [ 'name' => 'DeregisterInstanceEventNotificationAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterInstanceEventNotificationAttributesRequest', ], 'output' => [ 'shape' => 'DeregisterInstanceEventNotificationAttributesResult', ], ], 'DeregisterTransitGatewayMulticastGroupMembers' => [ 'name' => 'DeregisterTransitGatewayMulticastGroupMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterTransitGatewayMulticastGroupMembersRequest', ], 'output' => [ 'shape' => 'DeregisterTransitGatewayMulticastGroupMembersResult', ], ], 'DeregisterTransitGatewayMulticastGroupSources' => [ 'name' => 'DeregisterTransitGatewayMulticastGroupSources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterTransitGatewayMulticastGroupSourcesRequest', ], 'output' => [ 'shape' => 'DeregisterTransitGatewayMulticastGroupSourcesResult', ], ], 'DescribeAccountAttributes' => [ 'name' => 'DescribeAccountAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAccountAttributesRequest', ], 'output' => [ 'shape' => 'DescribeAccountAttributesResult', ], ], 'DescribeAccountVpcEncryptionControl' => [ 'name' => 'DescribeAccountVpcEncryptionControl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAccountVpcEncryptionControlRequest', ], 'output' => [ 'shape' => 'DescribeAccountVpcEncryptionControlResult', ], ], 'DescribeAddressTransfers' => [ 'name' => 'DescribeAddressTransfers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAddressTransfersRequest', ], 'output' => [ 'shape' => 'DescribeAddressTransfersResult', ], ], 'DescribeAddresses' => [ 'name' => 'DescribeAddresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAddressesRequest', ], 'output' => [ 'shape' => 'DescribeAddressesResult', ], ], 'DescribeAddressesAttribute' => [ 'name' => 'DescribeAddressesAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAddressesAttributeRequest', ], 'output' => [ 'shape' => 'DescribeAddressesAttributeResult', ], ], 'DescribeAggregateIdFormat' => [ 'name' => 'DescribeAggregateIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAggregateIdFormatRequest', ], 'output' => [ 'shape' => 'DescribeAggregateIdFormatResult', ], ], 'DescribeAvailabilityZones' => [ 'name' => 'DescribeAvailabilityZones', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAvailabilityZonesRequest', ], 'output' => [ 'shape' => 'DescribeAvailabilityZonesResult', ], ], 'DescribeAwsNetworkPerformanceMetricSubscriptions' => [ 'name' => 'DescribeAwsNetworkPerformanceMetricSubscriptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAwsNetworkPerformanceMetricSubscriptionsRequest', ], 'output' => [ 'shape' => 'DescribeAwsNetworkPerformanceMetricSubscriptionsResult', ], ], 'DescribeBundleTasks' => [ 'name' => 'DescribeBundleTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeBundleTasksRequest', ], 'output' => [ 'shape' => 'DescribeBundleTasksResult', ], ], 'DescribeByoipCidrs' => [ 'name' => 'DescribeByoipCidrs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeByoipCidrsRequest', ], 'output' => [ 'shape' => 'DescribeByoipCidrsResult', ], ], 'DescribeCapacityBlockExtensionHistory' => [ 'name' => 'DescribeCapacityBlockExtensionHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityBlockExtensionHistoryRequest', ], 'output' => [ 'shape' => 'DescribeCapacityBlockExtensionHistoryResult', ], ], 'DescribeCapacityBlockExtensionOfferings' => [ 'name' => 'DescribeCapacityBlockExtensionOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityBlockExtensionOfferingsRequest', ], 'output' => [ 'shape' => 'DescribeCapacityBlockExtensionOfferingsResult', ], ], 'DescribeCapacityBlockOfferings' => [ 'name' => 'DescribeCapacityBlockOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityBlockOfferingsRequest', ], 'output' => [ 'shape' => 'DescribeCapacityBlockOfferingsResult', ], ], 'DescribeCapacityBlockStatus' => [ 'name' => 'DescribeCapacityBlockStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityBlockStatusRequest', ], 'output' => [ 'shape' => 'DescribeCapacityBlockStatusResult', ], ], 'DescribeCapacityBlocks' => [ 'name' => 'DescribeCapacityBlocks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityBlocksRequest', ], 'output' => [ 'shape' => 'DescribeCapacityBlocksResult', ], ], 'DescribeCapacityManagerDataExports' => [ 'name' => 'DescribeCapacityManagerDataExports', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityManagerDataExportsRequest', ], 'output' => [ 'shape' => 'DescribeCapacityManagerDataExportsResult', ], ], 'DescribeCapacityReservationBillingRequests' => [ 'name' => 'DescribeCapacityReservationBillingRequests', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityReservationBillingRequestsRequest', ], 'output' => [ 'shape' => 'DescribeCapacityReservationBillingRequestsResult', ], ], 'DescribeCapacityReservationCancellationQuotes' => [ 'name' => 'DescribeCapacityReservationCancellationQuotes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityReservationCancellationQuotesRequest', ], 'output' => [ 'shape' => 'DescribeCapacityReservationCancellationQuotesResult', ], ], 'DescribeCapacityReservationFleets' => [ 'name' => 'DescribeCapacityReservationFleets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityReservationFleetsRequest', ], 'output' => [ 'shape' => 'DescribeCapacityReservationFleetsResult', ], ], 'DescribeCapacityReservationTopology' => [ 'name' => 'DescribeCapacityReservationTopology', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityReservationTopologyRequest', ], 'output' => [ 'shape' => 'DescribeCapacityReservationTopologyResult', ], ], 'DescribeCapacityReservations' => [ 'name' => 'DescribeCapacityReservations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityReservationsRequest', ], 'output' => [ 'shape' => 'DescribeCapacityReservationsResult', ], ], 'DescribeCarrierGateways' => [ 'name' => 'DescribeCarrierGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCarrierGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeCarrierGatewaysResult', ], ], 'DescribeClassicLinkInstances' => [ 'name' => 'DescribeClassicLinkInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClassicLinkInstancesRequest', ], 'output' => [ 'shape' => 'DescribeClassicLinkInstancesResult', ], ], 'DescribeClientVpnAuthorizationRules' => [ 'name' => 'DescribeClientVpnAuthorizationRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClientVpnAuthorizationRulesRequest', ], 'output' => [ 'shape' => 'DescribeClientVpnAuthorizationRulesResult', ], ], 'DescribeClientVpnConnections' => [ 'name' => 'DescribeClientVpnConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClientVpnConnectionsRequest', ], 'output' => [ 'shape' => 'DescribeClientVpnConnectionsResult', ], ], 'DescribeClientVpnEndpoints' => [ 'name' => 'DescribeClientVpnEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClientVpnEndpointsRequest', ], 'output' => [ 'shape' => 'DescribeClientVpnEndpointsResult', ], ], 'DescribeClientVpnRoutes' => [ 'name' => 'DescribeClientVpnRoutes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClientVpnRoutesRequest', ], 'output' => [ 'shape' => 'DescribeClientVpnRoutesResult', ], ], 'DescribeClientVpnTargetNetworks' => [ 'name' => 'DescribeClientVpnTargetNetworks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClientVpnTargetNetworksRequest', ], 'output' => [ 'shape' => 'DescribeClientVpnTargetNetworksResult', ], ], 'DescribeCoipPools' => [ 'name' => 'DescribeCoipPools', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCoipPoolsRequest', ], 'output' => [ 'shape' => 'DescribeCoipPoolsResult', ], ], 'DescribeConversionTasks' => [ 'name' => 'DescribeConversionTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConversionTasksRequest', ], 'output' => [ 'shape' => 'DescribeConversionTasksResult', ], ], 'DescribeCustomerGateways' => [ 'name' => 'DescribeCustomerGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCustomerGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeCustomerGatewaysResult', ], ], 'DescribeDeclarativePoliciesReports' => [ 'name' => 'DescribeDeclarativePoliciesReports', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDeclarativePoliciesReportsRequest', ], 'output' => [ 'shape' => 'DescribeDeclarativePoliciesReportsResult', ], ], 'DescribeDhcpOptions' => [ 'name' => 'DescribeDhcpOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDhcpOptionsRequest', ], 'output' => [ 'shape' => 'DescribeDhcpOptionsResult', ], ], 'DescribeEgressOnlyInternetGateways' => [ 'name' => 'DescribeEgressOnlyInternetGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEgressOnlyInternetGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeEgressOnlyInternetGatewaysResult', ], ], 'DescribeElasticGpus' => [ 'name' => 'DescribeElasticGpus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeElasticGpusRequest', ], 'output' => [ 'shape' => 'DescribeElasticGpusResult', ], ], 'DescribeExportImageTasks' => [ 'name' => 'DescribeExportImageTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeExportImageTasksRequest', ], 'output' => [ 'shape' => 'DescribeExportImageTasksResult', ], ], 'DescribeExportTasks' => [ 'name' => 'DescribeExportTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeExportTasksRequest', ], 'output' => [ 'shape' => 'DescribeExportTasksResult', ], ], 'DescribeFastLaunchImages' => [ 'name' => 'DescribeFastLaunchImages', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFastLaunchImagesRequest', ], 'output' => [ 'shape' => 'DescribeFastLaunchImagesResult', ], ], 'DescribeFastSnapshotRestores' => [ 'name' => 'DescribeFastSnapshotRestores', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFastSnapshotRestoresRequest', ], 'output' => [ 'shape' => 'DescribeFastSnapshotRestoresResult', ], ], 'DescribeFleetHistory' => [ 'name' => 'DescribeFleetHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFleetHistoryRequest', ], 'output' => [ 'shape' => 'DescribeFleetHistoryResult', ], ], 'DescribeFleetInstances' => [ 'name' => 'DescribeFleetInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFleetInstancesRequest', ], 'output' => [ 'shape' => 'DescribeFleetInstancesResult', ], ], 'DescribeFleets' => [ 'name' => 'DescribeFleets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFleetsRequest', ], 'output' => [ 'shape' => 'DescribeFleetsResult', ], ], 'DescribeFlowLogs' => [ 'name' => 'DescribeFlowLogs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFlowLogsRequest', ], 'output' => [ 'shape' => 'DescribeFlowLogsResult', ], ], 'DescribeFpgaImageAttribute' => [ 'name' => 'DescribeFpgaImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFpgaImageAttributeRequest', ], 'output' => [ 'shape' => 'DescribeFpgaImageAttributeResult', ], ], 'DescribeFpgaImages' => [ 'name' => 'DescribeFpgaImages', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFpgaImagesRequest', ], 'output' => [ 'shape' => 'DescribeFpgaImagesResult', ], ], 'DescribeHostReservationOfferings' => [ 'name' => 'DescribeHostReservationOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostReservationOfferingsRequest', ], 'output' => [ 'shape' => 'DescribeHostReservationOfferingsResult', ], ], 'DescribeHostReservations' => [ 'name' => 'DescribeHostReservations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostReservationsRequest', ], 'output' => [ 'shape' => 'DescribeHostReservationsResult', ], ], 'DescribeHosts' => [ 'name' => 'DescribeHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostsRequest', ], 'output' => [ 'shape' => 'DescribeHostsResult', ], ], 'DescribeIamInstanceProfileAssociations' => [ 'name' => 'DescribeIamInstanceProfileAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIamInstanceProfileAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeIamInstanceProfileAssociationsResult', ], ], 'DescribeIdFormat' => [ 'name' => 'DescribeIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIdFormatRequest', ], 'output' => [ 'shape' => 'DescribeIdFormatResult', ], ], 'DescribeIdentityIdFormat' => [ 'name' => 'DescribeIdentityIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIdentityIdFormatRequest', ], 'output' => [ 'shape' => 'DescribeIdentityIdFormatResult', ], ], 'DescribeImageAttribute' => [ 'name' => 'DescribeImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImageAttributeRequest', ], 'output' => [ 'shape' => 'ImageAttribute', ], ], 'DescribeImageReferences' => [ 'name' => 'DescribeImageReferences', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImageReferencesRequest', ], 'output' => [ 'shape' => 'DescribeImageReferencesResult', ], ], 'DescribeImageUsageReportEntries' => [ 'name' => 'DescribeImageUsageReportEntries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImageUsageReportEntriesRequest', ], 'output' => [ 'shape' => 'DescribeImageUsageReportEntriesResult', ], ], 'DescribeImageUsageReports' => [ 'name' => 'DescribeImageUsageReports', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImageUsageReportsRequest', ], 'output' => [ 'shape' => 'DescribeImageUsageReportsResult', ], ], 'DescribeImages' => [ 'name' => 'DescribeImages', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImagesRequest', ], 'output' => [ 'shape' => 'DescribeImagesResult', ], ], 'DescribeImportImageTasks' => [ 'name' => 'DescribeImportImageTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImportImageTasksRequest', ], 'output' => [ 'shape' => 'DescribeImportImageTasksResult', ], ], 'DescribeImportSnapshotTasks' => [ 'name' => 'DescribeImportSnapshotTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImportSnapshotTasksRequest', ], 'output' => [ 'shape' => 'DescribeImportSnapshotTasksResult', ], ], 'DescribeInstanceAttribute' => [ 'name' => 'DescribeInstanceAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceAttributeRequest', ], 'output' => [ 'shape' => 'InstanceAttribute', ], ], 'DescribeInstanceConnectEndpoints' => [ 'name' => 'DescribeInstanceConnectEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceConnectEndpointsRequest', ], 'output' => [ 'shape' => 'DescribeInstanceConnectEndpointsResult', ], ], 'DescribeInstanceCreditSpecifications' => [ 'name' => 'DescribeInstanceCreditSpecifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceCreditSpecificationsRequest', ], 'output' => [ 'shape' => 'DescribeInstanceCreditSpecificationsResult', ], ], 'DescribeInstanceEventNotificationAttributes' => [ 'name' => 'DescribeInstanceEventNotificationAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceEventNotificationAttributesRequest', ], 'output' => [ 'shape' => 'DescribeInstanceEventNotificationAttributesResult', ], ], 'DescribeInstanceEventWindows' => [ 'name' => 'DescribeInstanceEventWindows', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceEventWindowsRequest', ], 'output' => [ 'shape' => 'DescribeInstanceEventWindowsResult', ], ], 'DescribeInstanceImageMetadata' => [ 'name' => 'DescribeInstanceImageMetadata', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceImageMetadataRequest', ], 'output' => [ 'shape' => 'DescribeInstanceImageMetadataResult', ], ], 'DescribeInstanceSqlHaHistoryStates' => [ 'name' => 'DescribeInstanceSqlHaHistoryStates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceSqlHaHistoryStatesRequest', ], 'output' => [ 'shape' => 'DescribeInstanceSqlHaHistoryStatesResult', ], ], 'DescribeInstanceSqlHaStates' => [ 'name' => 'DescribeInstanceSqlHaStates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceSqlHaStatesRequest', ], 'output' => [ 'shape' => 'DescribeInstanceSqlHaStatesResult', ], ], 'DescribeInstanceStatus' => [ 'name' => 'DescribeInstanceStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceStatusRequest', ], 'output' => [ 'shape' => 'DescribeInstanceStatusResult', ], ], 'DescribeInstanceTopology' => [ 'name' => 'DescribeInstanceTopology', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceTopologyRequest', ], 'output' => [ 'shape' => 'DescribeInstanceTopologyResult', ], ], 'DescribeInstanceTypeOfferings' => [ 'name' => 'DescribeInstanceTypeOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceTypeOfferingsRequest', ], 'output' => [ 'shape' => 'DescribeInstanceTypeOfferingsResult', ], ], 'DescribeInstanceTypes' => [ 'name' => 'DescribeInstanceTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceTypesRequest', ], 'output' => [ 'shape' => 'DescribeInstanceTypesResult', ], ], 'DescribeInstances' => [ 'name' => 'DescribeInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstancesRequest', ], 'output' => [ 'shape' => 'DescribeInstancesResult', ], ], 'DescribeInternetGateways' => [ 'name' => 'DescribeInternetGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInternetGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeInternetGatewaysResult', ], ], 'DescribeIpamByoasn' => [ 'name' => 'DescribeIpamByoasn', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamByoasnRequest', ], 'output' => [ 'shape' => 'DescribeIpamByoasnResult', ], ], 'DescribeIpamExternalResourceVerificationTokens' => [ 'name' => 'DescribeIpamExternalResourceVerificationTokens', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamExternalResourceVerificationTokensRequest', ], 'output' => [ 'shape' => 'DescribeIpamExternalResourceVerificationTokensResult', ], ], 'DescribeIpamPolicies' => [ 'name' => 'DescribeIpamPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamPoliciesRequest', ], 'output' => [ 'shape' => 'DescribeIpamPoliciesResult', ], ], 'DescribeIpamPoolAllocations' => [ 'name' => 'DescribeIpamPoolAllocations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamPoolAllocationsRequest', ], 'output' => [ 'shape' => 'DescribeIpamPoolAllocationsResult', ], ], 'DescribeIpamPools' => [ 'name' => 'DescribeIpamPools', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamPoolsRequest', ], 'output' => [ 'shape' => 'DescribeIpamPoolsResult', ], ], 'DescribeIpamPrefixListResolverTargets' => [ 'name' => 'DescribeIpamPrefixListResolverTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamPrefixListResolverTargetsRequest', ], 'output' => [ 'shape' => 'DescribeIpamPrefixListResolverTargetsResult', ], ], 'DescribeIpamPrefixListResolvers' => [ 'name' => 'DescribeIpamPrefixListResolvers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamPrefixListResolversRequest', ], 'output' => [ 'shape' => 'DescribeIpamPrefixListResolversResult', ], ], 'DescribeIpamResourceDiscoveries' => [ 'name' => 'DescribeIpamResourceDiscoveries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamResourceDiscoveriesRequest', ], 'output' => [ 'shape' => 'DescribeIpamResourceDiscoveriesResult', ], ], 'DescribeIpamResourceDiscoveryAssociations' => [ 'name' => 'DescribeIpamResourceDiscoveryAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamResourceDiscoveryAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeIpamResourceDiscoveryAssociationsResult', ], ], 'DescribeIpamScopes' => [ 'name' => 'DescribeIpamScopes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamScopesRequest', ], 'output' => [ 'shape' => 'DescribeIpamScopesResult', ], ], 'DescribeIpams' => [ 'name' => 'DescribeIpams', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamsRequest', ], 'output' => [ 'shape' => 'DescribeIpamsResult', ], ], 'DescribeIpv6Pools' => [ 'name' => 'DescribeIpv6Pools', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpv6PoolsRequest', ], 'output' => [ 'shape' => 'DescribeIpv6PoolsResult', ], ], 'DescribeKeyPairs' => [ 'name' => 'DescribeKeyPairs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeKeyPairsRequest', ], 'output' => [ 'shape' => 'DescribeKeyPairsResult', ], ], 'DescribeLaunchTemplateVersions' => [ 'name' => 'DescribeLaunchTemplateVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLaunchTemplateVersionsRequest', ], 'output' => [ 'shape' => 'DescribeLaunchTemplateVersionsResult', ], ], 'DescribeLaunchTemplates' => [ 'name' => 'DescribeLaunchTemplates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLaunchTemplatesRequest', ], 'output' => [ 'shape' => 'DescribeLaunchTemplatesResult', ], ], 'DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations' => [ 'name' => 'DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult', ], ], 'DescribeLocalGatewayRouteTableVpcAssociations' => [ 'name' => 'DescribeLocalGatewayRouteTableVpcAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLocalGatewayRouteTableVpcAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeLocalGatewayRouteTableVpcAssociationsResult', ], ], 'DescribeLocalGatewayRouteTables' => [ 'name' => 'DescribeLocalGatewayRouteTables', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLocalGatewayRouteTablesRequest', ], 'output' => [ 'shape' => 'DescribeLocalGatewayRouteTablesResult', ], ], 'DescribeLocalGatewayVirtualInterfaceGroups' => [ 'name' => 'DescribeLocalGatewayVirtualInterfaceGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLocalGatewayVirtualInterfaceGroupsRequest', ], 'output' => [ 'shape' => 'DescribeLocalGatewayVirtualInterfaceGroupsResult', ], ], 'DescribeLocalGatewayVirtualInterfaces' => [ 'name' => 'DescribeLocalGatewayVirtualInterfaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLocalGatewayVirtualInterfacesRequest', ], 'output' => [ 'shape' => 'DescribeLocalGatewayVirtualInterfacesResult', ], ], 'DescribeLocalGateways' => [ 'name' => 'DescribeLocalGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLocalGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeLocalGatewaysResult', ], ], 'DescribeLockedSnapshots' => [ 'name' => 'DescribeLockedSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLockedSnapshotsRequest', ], 'output' => [ 'shape' => 'DescribeLockedSnapshotsResult', ], ], 'DescribeMacHosts' => [ 'name' => 'DescribeMacHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMacHostsRequest', ], 'output' => [ 'shape' => 'DescribeMacHostsResult', ], ], 'DescribeMacModificationTasks' => [ 'name' => 'DescribeMacModificationTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMacModificationTasksRequest', ], 'output' => [ 'shape' => 'DescribeMacModificationTasksResult', ], ], 'DescribeManagedPrefixLists' => [ 'name' => 'DescribeManagedPrefixLists', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeManagedPrefixListsRequest', ], 'output' => [ 'shape' => 'DescribeManagedPrefixListsResult', ], ], 'DescribeMovingAddresses' => [ 'name' => 'DescribeMovingAddresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMovingAddressesRequest', ], 'output' => [ 'shape' => 'DescribeMovingAddressesResult', ], ], 'DescribeNatGateways' => [ 'name' => 'DescribeNatGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNatGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeNatGatewaysResult', ], ], 'DescribeNetworkAcls' => [ 'name' => 'DescribeNetworkAcls', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkAclsRequest', ], 'output' => [ 'shape' => 'DescribeNetworkAclsResult', ], ], 'DescribeNetworkInsightsAccessScopeAnalyses' => [ 'name' => 'DescribeNetworkInsightsAccessScopeAnalyses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkInsightsAccessScopeAnalysesRequest', ], 'output' => [ 'shape' => 'DescribeNetworkInsightsAccessScopeAnalysesResult', ], ], 'DescribeNetworkInsightsAccessScopes' => [ 'name' => 'DescribeNetworkInsightsAccessScopes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkInsightsAccessScopesRequest', ], 'output' => [ 'shape' => 'DescribeNetworkInsightsAccessScopesResult', ], ], 'DescribeNetworkInsightsAnalyses' => [ 'name' => 'DescribeNetworkInsightsAnalyses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkInsightsAnalysesRequest', ], 'output' => [ 'shape' => 'DescribeNetworkInsightsAnalysesResult', ], ], 'DescribeNetworkInsightsPaths' => [ 'name' => 'DescribeNetworkInsightsPaths', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkInsightsPathsRequest', ], 'output' => [ 'shape' => 'DescribeNetworkInsightsPathsResult', ], ], 'DescribeNetworkInterfaceAttribute' => [ 'name' => 'DescribeNetworkInterfaceAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkInterfaceAttributeRequest', ], 'output' => [ 'shape' => 'DescribeNetworkInterfaceAttributeResult', ], ], 'DescribeNetworkInterfacePermissions' => [ 'name' => 'DescribeNetworkInterfacePermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkInterfacePermissionsRequest', ], 'output' => [ 'shape' => 'DescribeNetworkInterfacePermissionsResult', ], ], 'DescribeNetworkInterfaces' => [ 'name' => 'DescribeNetworkInterfaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkInterfacesRequest', ], 'output' => [ 'shape' => 'DescribeNetworkInterfacesResult', ], ], 'DescribeOutpostLags' => [ 'name' => 'DescribeOutpostLags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeOutpostLagsRequest', ], 'output' => [ 'shape' => 'DescribeOutpostLagsResult', ], ], 'DescribePlacementGroups' => [ 'name' => 'DescribePlacementGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePlacementGroupsRequest', ], 'output' => [ 'shape' => 'DescribePlacementGroupsResult', ], ], 'DescribePrefixLists' => [ 'name' => 'DescribePrefixLists', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePrefixListsRequest', ], 'output' => [ 'shape' => 'DescribePrefixListsResult', ], ], 'DescribePrincipalIdFormat' => [ 'name' => 'DescribePrincipalIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePrincipalIdFormatRequest', ], 'output' => [ 'shape' => 'DescribePrincipalIdFormatResult', ], ], 'DescribePublicIpv4Pools' => [ 'name' => 'DescribePublicIpv4Pools', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePublicIpv4PoolsRequest', ], 'output' => [ 'shape' => 'DescribePublicIpv4PoolsResult', ], ], 'DescribeRegions' => [ 'name' => 'DescribeRegions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRegionsRequest', ], 'output' => [ 'shape' => 'DescribeRegionsResult', ], ], 'DescribeReplaceRootVolumeTasks' => [ 'name' => 'DescribeReplaceRootVolumeTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReplaceRootVolumeTasksRequest', ], 'output' => [ 'shape' => 'DescribeReplaceRootVolumeTasksResult', ], ], 'DescribeReservedInstances' => [ 'name' => 'DescribeReservedInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReservedInstancesRequest', ], 'output' => [ 'shape' => 'DescribeReservedInstancesResult', ], ], 'DescribeReservedInstancesListings' => [ 'name' => 'DescribeReservedInstancesListings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReservedInstancesListingsRequest', ], 'output' => [ 'shape' => 'DescribeReservedInstancesListingsResult', ], ], 'DescribeReservedInstancesModifications' => [ 'name' => 'DescribeReservedInstancesModifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReservedInstancesModificationsRequest', ], 'output' => [ 'shape' => 'DescribeReservedInstancesModificationsResult', ], ], 'DescribeReservedInstancesOfferings' => [ 'name' => 'DescribeReservedInstancesOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReservedInstancesOfferingsRequest', ], 'output' => [ 'shape' => 'DescribeReservedInstancesOfferingsResult', ], ], 'DescribeRouteServerEndpoints' => [ 'name' => 'DescribeRouteServerEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRouteServerEndpointsRequest', ], 'output' => [ 'shape' => 'DescribeRouteServerEndpointsResult', ], ], 'DescribeRouteServerPeers' => [ 'name' => 'DescribeRouteServerPeers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRouteServerPeersRequest', ], 'output' => [ 'shape' => 'DescribeRouteServerPeersResult', ], ], 'DescribeRouteServers' => [ 'name' => 'DescribeRouteServers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRouteServersRequest', ], 'output' => [ 'shape' => 'DescribeRouteServersResult', ], ], 'DescribeRouteTables' => [ 'name' => 'DescribeRouteTables', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRouteTablesRequest', ], 'output' => [ 'shape' => 'DescribeRouteTablesResult', ], ], 'DescribeScheduledInstanceAvailability' => [ 'name' => 'DescribeScheduledInstanceAvailability', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScheduledInstanceAvailabilityRequest', ], 'output' => [ 'shape' => 'DescribeScheduledInstanceAvailabilityResult', ], ], 'DescribeScheduledInstances' => [ 'name' => 'DescribeScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScheduledInstancesRequest', ], 'output' => [ 'shape' => 'DescribeScheduledInstancesResult', ], ], 'DescribeSecondaryInterfaces' => [ 'name' => 'DescribeSecondaryInterfaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecondaryInterfacesRequest', ], 'output' => [ 'shape' => 'DescribeSecondaryInterfacesResult', ], ], 'DescribeSecondaryNetworks' => [ 'name' => 'DescribeSecondaryNetworks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecondaryNetworksRequest', ], 'output' => [ 'shape' => 'DescribeSecondaryNetworksResult', ], ], 'DescribeSecondarySubnets' => [ 'name' => 'DescribeSecondarySubnets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecondarySubnetsRequest', ], 'output' => [ 'shape' => 'DescribeSecondarySubnetsResult', ], ], 'DescribeSecurityGroupReferences' => [ 'name' => 'DescribeSecurityGroupReferences', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecurityGroupReferencesRequest', ], 'output' => [ 'shape' => 'DescribeSecurityGroupReferencesResult', ], ], 'DescribeSecurityGroupRules' => [ 'name' => 'DescribeSecurityGroupRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecurityGroupRulesRequest', ], 'output' => [ 'shape' => 'DescribeSecurityGroupRulesResult', ], ], 'DescribeSecurityGroupVpcAssociations' => [ 'name' => 'DescribeSecurityGroupVpcAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecurityGroupVpcAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeSecurityGroupVpcAssociationsResult', ], ], 'DescribeSecurityGroups' => [ 'name' => 'DescribeSecurityGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecurityGroupsRequest', ], 'output' => [ 'shape' => 'DescribeSecurityGroupsResult', ], ], 'DescribeServiceLinkVirtualInterfaces' => [ 'name' => 'DescribeServiceLinkVirtualInterfaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeServiceLinkVirtualInterfacesRequest', ], 'output' => [ 'shape' => 'DescribeServiceLinkVirtualInterfacesResult', ], ], 'DescribeSnapshotAttribute' => [ 'name' => 'DescribeSnapshotAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSnapshotAttributeRequest', ], 'output' => [ 'shape' => 'DescribeSnapshotAttributeResult', ], ], 'DescribeSnapshotTierStatus' => [ 'name' => 'DescribeSnapshotTierStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSnapshotTierStatusRequest', ], 'output' => [ 'shape' => 'DescribeSnapshotTierStatusResult', ], ], 'DescribeSnapshots' => [ 'name' => 'DescribeSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSnapshotsRequest', ], 'output' => [ 'shape' => 'DescribeSnapshotsResult', ], ], 'DescribeSpotDatafeedSubscription' => [ 'name' => 'DescribeSpotDatafeedSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSpotDatafeedSubscriptionRequest', ], 'output' => [ 'shape' => 'DescribeSpotDatafeedSubscriptionResult', ], ], 'DescribeSpotFleetInstances' => [ 'name' => 'DescribeSpotFleetInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSpotFleetInstancesRequest', ], 'output' => [ 'shape' => 'DescribeSpotFleetInstancesResponse', ], ], 'DescribeSpotFleetRequestHistory' => [ 'name' => 'DescribeSpotFleetRequestHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSpotFleetRequestHistoryRequest', ], 'output' => [ 'shape' => 'DescribeSpotFleetRequestHistoryResponse', ], ], 'DescribeSpotFleetRequests' => [ 'name' => 'DescribeSpotFleetRequests', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSpotFleetRequestsRequest', ], 'output' => [ 'shape' => 'DescribeSpotFleetRequestsResponse', ], ], 'DescribeSpotInstanceRequests' => [ 'name' => 'DescribeSpotInstanceRequests', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSpotInstanceRequestsRequest', ], 'output' => [ 'shape' => 'DescribeSpotInstanceRequestsResult', ], ], 'DescribeSpotPriceHistory' => [ 'name' => 'DescribeSpotPriceHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSpotPriceHistoryRequest', ], 'output' => [ 'shape' => 'DescribeSpotPriceHistoryResult', ], ], 'DescribeStaleSecurityGroups' => [ 'name' => 'DescribeStaleSecurityGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStaleSecurityGroupsRequest', ], 'output' => [ 'shape' => 'DescribeStaleSecurityGroupsResult', ], ], 'DescribeStoreImageTasks' => [ 'name' => 'DescribeStoreImageTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStoreImageTasksRequest', ], 'output' => [ 'shape' => 'DescribeStoreImageTasksResult', ], ], 'DescribeSubnets' => [ 'name' => 'DescribeSubnets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSubnetsRequest', ], 'output' => [ 'shape' => 'DescribeSubnetsResult', ], ], 'DescribeTags' => [ 'name' => 'DescribeTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTagsRequest', ], 'output' => [ 'shape' => 'DescribeTagsResult', ], ], 'DescribeTrafficMirrorFilterRules' => [ 'name' => 'DescribeTrafficMirrorFilterRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrafficMirrorFilterRulesRequest', ], 'output' => [ 'shape' => 'DescribeTrafficMirrorFilterRulesResult', ], ], 'DescribeTrafficMirrorFilters' => [ 'name' => 'DescribeTrafficMirrorFilters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrafficMirrorFiltersRequest', ], 'output' => [ 'shape' => 'DescribeTrafficMirrorFiltersResult', ], ], 'DescribeTrafficMirrorSessions' => [ 'name' => 'DescribeTrafficMirrorSessions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrafficMirrorSessionsRequest', ], 'output' => [ 'shape' => 'DescribeTrafficMirrorSessionsResult', ], ], 'DescribeTrafficMirrorTargets' => [ 'name' => 'DescribeTrafficMirrorTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrafficMirrorTargetsRequest', ], 'output' => [ 'shape' => 'DescribeTrafficMirrorTargetsResult', ], ], 'DescribeTransitGatewayAttachments' => [ 'name' => 'DescribeTransitGatewayAttachments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayAttachmentsRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayAttachmentsResult', ], ], 'DescribeTransitGatewayConnectPeers' => [ 'name' => 'DescribeTransitGatewayConnectPeers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayConnectPeersRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayConnectPeersResult', ], ], 'DescribeTransitGatewayConnects' => [ 'name' => 'DescribeTransitGatewayConnects', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayConnectsRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayConnectsResult', ], ], 'DescribeTransitGatewayMeteringPolicies' => [ 'name' => 'DescribeTransitGatewayMeteringPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayMeteringPoliciesRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayMeteringPoliciesResult', ], ], 'DescribeTransitGatewayMulticastDomains' => [ 'name' => 'DescribeTransitGatewayMulticastDomains', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayMulticastDomainsRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayMulticastDomainsResult', ], ], 'DescribeTransitGatewayPeeringAttachments' => [ 'name' => 'DescribeTransitGatewayPeeringAttachments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayPeeringAttachmentsRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayPeeringAttachmentsResult', ], ], 'DescribeTransitGatewayPolicyTables' => [ 'name' => 'DescribeTransitGatewayPolicyTables', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayPolicyTablesRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayPolicyTablesResult', ], ], 'DescribeTransitGatewayRouteTableAnnouncements' => [ 'name' => 'DescribeTransitGatewayRouteTableAnnouncements', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayRouteTableAnnouncementsRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayRouteTableAnnouncementsResult', ], ], 'DescribeTransitGatewayRouteTables' => [ 'name' => 'DescribeTransitGatewayRouteTables', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayRouteTablesRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayRouteTablesResult', ], ], 'DescribeTransitGatewayVpcAttachments' => [ 'name' => 'DescribeTransitGatewayVpcAttachments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayVpcAttachmentsRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayVpcAttachmentsResult', ], ], 'DescribeTransitGateways' => [ 'name' => 'DescribeTransitGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewaysResult', ], ], 'DescribeTrunkInterfaceAssociations' => [ 'name' => 'DescribeTrunkInterfaceAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrunkInterfaceAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeTrunkInterfaceAssociationsResult', ], ], 'DescribeVerifiedAccessEndpoints' => [ 'name' => 'DescribeVerifiedAccessEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVerifiedAccessEndpointsRequest', ], 'output' => [ 'shape' => 'DescribeVerifiedAccessEndpointsResult', ], ], 'DescribeVerifiedAccessGroups' => [ 'name' => 'DescribeVerifiedAccessGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVerifiedAccessGroupsRequest', ], 'output' => [ 'shape' => 'DescribeVerifiedAccessGroupsResult', ], ], 'DescribeVerifiedAccessInstanceLoggingConfigurations' => [ 'name' => 'DescribeVerifiedAccessInstanceLoggingConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVerifiedAccessInstanceLoggingConfigurationsRequest', ], 'output' => [ 'shape' => 'DescribeVerifiedAccessInstanceLoggingConfigurationsResult', ], ], 'DescribeVerifiedAccessInstances' => [ 'name' => 'DescribeVerifiedAccessInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVerifiedAccessInstancesRequest', ], 'output' => [ 'shape' => 'DescribeVerifiedAccessInstancesResult', ], ], 'DescribeVerifiedAccessTrustProviders' => [ 'name' => 'DescribeVerifiedAccessTrustProviders', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVerifiedAccessTrustProvidersRequest', ], 'output' => [ 'shape' => 'DescribeVerifiedAccessTrustProvidersResult', ], ], 'DescribeVolumeAttribute' => [ 'name' => 'DescribeVolumeAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVolumeAttributeRequest', ], 'output' => [ 'shape' => 'DescribeVolumeAttributeResult', ], ], 'DescribeVolumeStatus' => [ 'name' => 'DescribeVolumeStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVolumeStatusRequest', ], 'output' => [ 'shape' => 'DescribeVolumeStatusResult', ], ], 'DescribeVolumes' => [ 'name' => 'DescribeVolumes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVolumesRequest', ], 'output' => [ 'shape' => 'DescribeVolumesResult', ], ], 'DescribeVolumesModifications' => [ 'name' => 'DescribeVolumesModifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVolumesModificationsRequest', ], 'output' => [ 'shape' => 'DescribeVolumesModificationsResult', ], ], 'DescribeVpcAttribute' => [ 'name' => 'DescribeVpcAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcAttributeRequest', ], 'output' => [ 'shape' => 'DescribeVpcAttributeResult', ], ], 'DescribeVpcBlockPublicAccessExclusions' => [ 'name' => 'DescribeVpcBlockPublicAccessExclusions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcBlockPublicAccessExclusionsRequest', ], 'output' => [ 'shape' => 'DescribeVpcBlockPublicAccessExclusionsResult', ], ], 'DescribeVpcBlockPublicAccessOptions' => [ 'name' => 'DescribeVpcBlockPublicAccessOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcBlockPublicAccessOptionsRequest', ], 'output' => [ 'shape' => 'DescribeVpcBlockPublicAccessOptionsResult', ], ], 'DescribeVpcClassicLink' => [ 'name' => 'DescribeVpcClassicLink', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcClassicLinkRequest', ], 'output' => [ 'shape' => 'DescribeVpcClassicLinkResult', ], ], 'DescribeVpcClassicLinkDnsSupport' => [ 'name' => 'DescribeVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportResult', ], ], 'DescribeVpcEncryptionControls' => [ 'name' => 'DescribeVpcEncryptionControls', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEncryptionControlsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEncryptionControlsResult', ], ], 'DescribeVpcEndpointAssociations' => [ 'name' => 'DescribeVpcEndpointAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointAssociationsResult', ], ], 'DescribeVpcEndpointConnectionNotifications' => [ 'name' => 'DescribeVpcEndpointConnectionNotifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointConnectionNotificationsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointConnectionNotificationsResult', ], ], 'DescribeVpcEndpointConnections' => [ 'name' => 'DescribeVpcEndpointConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointConnectionsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointConnectionsResult', ], ], 'DescribeVpcEndpointServiceConfigurations' => [ 'name' => 'DescribeVpcEndpointServiceConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointServiceConfigurationsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointServiceConfigurationsResult', ], ], 'DescribeVpcEndpointServicePermissions' => [ 'name' => 'DescribeVpcEndpointServicePermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointServicePermissionsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointServicePermissionsResult', ], ], 'DescribeVpcEndpointServices' => [ 'name' => 'DescribeVpcEndpointServices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointServicesRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointServicesResult', ], ], 'DescribeVpcEndpoints' => [ 'name' => 'DescribeVpcEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointsResult', ], ], 'DescribeVpcPeeringConnections' => [ 'name' => 'DescribeVpcPeeringConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcPeeringConnectionsRequest', ], 'output' => [ 'shape' => 'DescribeVpcPeeringConnectionsResult', ], ], 'DescribeVpcs' => [ 'name' => 'DescribeVpcs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcsRequest', ], 'output' => [ 'shape' => 'DescribeVpcsResult', ], ], 'DescribeVpnConcentrators' => [ 'name' => 'DescribeVpnConcentrators', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpnConcentratorsRequest', ], 'output' => [ 'shape' => 'DescribeVpnConcentratorsResult', ], ], 'DescribeVpnConnections' => [ 'name' => 'DescribeVpnConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpnConnectionsRequest', ], 'output' => [ 'shape' => 'DescribeVpnConnectionsResult', ], ], 'DescribeVpnGateways' => [ 'name' => 'DescribeVpnGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpnGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeVpnGatewaysResult', ], ], 'DetachClassicLinkVpc' => [ 'name' => 'DetachClassicLinkVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachClassicLinkVpcRequest', ], 'output' => [ 'shape' => 'DetachClassicLinkVpcResult', ], ], 'DetachImageWatermark' => [ 'name' => 'DetachImageWatermark', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachImageWatermarkRequest', ], 'output' => [ 'shape' => 'DetachImageWatermarkResult', ], ], 'DetachInternetGateway' => [ 'name' => 'DetachInternetGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachInternetGatewayRequest', ], ], 'DetachNetworkInterface' => [ 'name' => 'DetachNetworkInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachNetworkInterfaceRequest', ], ], 'DetachVerifiedAccessTrustProvider' => [ 'name' => 'DetachVerifiedAccessTrustProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachVerifiedAccessTrustProviderRequest', ], 'output' => [ 'shape' => 'DetachVerifiedAccessTrustProviderResult', ], ], 'DetachVolume' => [ 'name' => 'DetachVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachVolumeRequest', ], 'output' => [ 'shape' => 'VolumeAttachment', ], ], 'DetachVpnGateway' => [ 'name' => 'DetachVpnGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachVpnGatewayRequest', ], ], 'DisableAddressTransfer' => [ 'name' => 'DisableAddressTransfer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableAddressTransferRequest', ], 'output' => [ 'shape' => 'DisableAddressTransferResult', ], ], 'DisableAllowedImagesSettings' => [ 'name' => 'DisableAllowedImagesSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableAllowedImagesSettingsRequest', ], 'output' => [ 'shape' => 'DisableAllowedImagesSettingsResult', ], ], 'DisableAwsNetworkPerformanceMetricSubscription' => [ 'name' => 'DisableAwsNetworkPerformanceMetricSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableAwsNetworkPerformanceMetricSubscriptionRequest', ], 'output' => [ 'shape' => 'DisableAwsNetworkPerformanceMetricSubscriptionResult', ], ], 'DisableCapacityManager' => [ 'name' => 'DisableCapacityManager', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableCapacityManagerRequest', ], 'output' => [ 'shape' => 'DisableCapacityManagerResult', ], ], 'DisableEbsEncryptionByDefault' => [ 'name' => 'DisableEbsEncryptionByDefault', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableEbsEncryptionByDefaultRequest', ], 'output' => [ 'shape' => 'DisableEbsEncryptionByDefaultResult', ], ], 'DisableFastLaunch' => [ 'name' => 'DisableFastLaunch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableFastLaunchRequest', ], 'output' => [ 'shape' => 'DisableFastLaunchResult', ], ], 'DisableFastSnapshotRestores' => [ 'name' => 'DisableFastSnapshotRestores', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableFastSnapshotRestoresRequest', ], 'output' => [ 'shape' => 'DisableFastSnapshotRestoresResult', ], ], 'DisableImage' => [ 'name' => 'DisableImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableImageRequest', ], 'output' => [ 'shape' => 'DisableImageResult', ], ], 'DisableImageBlockPublicAccess' => [ 'name' => 'DisableImageBlockPublicAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableImageBlockPublicAccessRequest', ], 'output' => [ 'shape' => 'DisableImageBlockPublicAccessResult', ], ], 'DisableImageDeprecation' => [ 'name' => 'DisableImageDeprecation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableImageDeprecationRequest', ], 'output' => [ 'shape' => 'DisableImageDeprecationResult', ], ], 'DisableImageDeregistrationProtection' => [ 'name' => 'DisableImageDeregistrationProtection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableImageDeregistrationProtectionRequest', ], 'output' => [ 'shape' => 'DisableImageDeregistrationProtectionResult', ], ], 'DisableInstanceSqlHaStandbyDetections' => [ 'name' => 'DisableInstanceSqlHaStandbyDetections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableInstanceSqlHaStandbyDetectionsRequest', ], 'output' => [ 'shape' => 'DisableInstanceSqlHaStandbyDetectionsResult', ], ], 'DisableIpamOrganizationAdminAccount' => [ 'name' => 'DisableIpamOrganizationAdminAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableIpamOrganizationAdminAccountRequest', ], 'output' => [ 'shape' => 'DisableIpamOrganizationAdminAccountResult', ], ], 'DisableIpamPolicy' => [ 'name' => 'DisableIpamPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableIpamPolicyRequest', ], 'output' => [ 'shape' => 'DisableIpamPolicyResult', ], ], 'DisableRouteServerPropagation' => [ 'name' => 'DisableRouteServerPropagation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableRouteServerPropagationRequest', ], 'output' => [ 'shape' => 'DisableRouteServerPropagationResult', ], ], 'DisableSerialConsoleAccess' => [ 'name' => 'DisableSerialConsoleAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableSerialConsoleAccessRequest', ], 'output' => [ 'shape' => 'DisableSerialConsoleAccessResult', ], ], 'DisableSnapshotBlockPublicAccess' => [ 'name' => 'DisableSnapshotBlockPublicAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableSnapshotBlockPublicAccessRequest', ], 'output' => [ 'shape' => 'DisableSnapshotBlockPublicAccessResult', ], ], 'DisableTransitGatewayRouteTablePropagation' => [ 'name' => 'DisableTransitGatewayRouteTablePropagation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableTransitGatewayRouteTablePropagationRequest', ], 'output' => [ 'shape' => 'DisableTransitGatewayRouteTablePropagationResult', ], ], 'DisableVgwRoutePropagation' => [ 'name' => 'DisableVgwRoutePropagation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableVgwRoutePropagationRequest', ], ], 'DisableVpcClassicLink' => [ 'name' => 'DisableVpcClassicLink', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableVpcClassicLinkRequest', ], 'output' => [ 'shape' => 'DisableVpcClassicLinkResult', ], ], 'DisableVpcClassicLinkDnsSupport' => [ 'name' => 'DisableVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'DisableVpcClassicLinkDnsSupportResult', ], ], 'DisassociateAddress' => [ 'name' => 'DisassociateAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateAddressRequest', ], ], 'DisassociateCapacityReservationBillingOwner' => [ 'name' => 'DisassociateCapacityReservationBillingOwner', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateCapacityReservationBillingOwnerRequest', ], 'output' => [ 'shape' => 'DisassociateCapacityReservationBillingOwnerResult', ], ], 'DisassociateClientVpnTargetNetwork' => [ 'name' => 'DisassociateClientVpnTargetNetwork', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateClientVpnTargetNetworkRequest', ], 'output' => [ 'shape' => 'DisassociateClientVpnTargetNetworkResult', ], ], 'DisassociateEnclaveCertificateIamRole' => [ 'name' => 'DisassociateEnclaveCertificateIamRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateEnclaveCertificateIamRoleRequest', ], 'output' => [ 'shape' => 'DisassociateEnclaveCertificateIamRoleResult', ], ], 'DisassociateIamInstanceProfile' => [ 'name' => 'DisassociateIamInstanceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateIamInstanceProfileRequest', ], 'output' => [ 'shape' => 'DisassociateIamInstanceProfileResult', ], ], 'DisassociateInstanceEventWindow' => [ 'name' => 'DisassociateInstanceEventWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateInstanceEventWindowRequest', ], 'output' => [ 'shape' => 'DisassociateInstanceEventWindowResult', ], ], 'DisassociateIpamByoasn' => [ 'name' => 'DisassociateIpamByoasn', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateIpamByoasnRequest', ], 'output' => [ 'shape' => 'DisassociateIpamByoasnResult', ], ], 'DisassociateIpamResourceDiscovery' => [ 'name' => 'DisassociateIpamResourceDiscovery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateIpamResourceDiscoveryRequest', ], 'output' => [ 'shape' => 'DisassociateIpamResourceDiscoveryResult', ], ], 'DisassociateNatGatewayAddress' => [ 'name' => 'DisassociateNatGatewayAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateNatGatewayAddressRequest', ], 'output' => [ 'shape' => 'DisassociateNatGatewayAddressResult', ], ], 'DisassociateRouteServer' => [ 'name' => 'DisassociateRouteServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateRouteServerRequest', ], 'output' => [ 'shape' => 'DisassociateRouteServerResult', ], ], 'DisassociateRouteTable' => [ 'name' => 'DisassociateRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateRouteTableRequest', ], ], 'DisassociateSecurityGroupVpc' => [ 'name' => 'DisassociateSecurityGroupVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateSecurityGroupVpcRequest', ], 'output' => [ 'shape' => 'DisassociateSecurityGroupVpcResult', ], ], 'DisassociateSubnetCidrBlock' => [ 'name' => 'DisassociateSubnetCidrBlock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateSubnetCidrBlockRequest', ], 'output' => [ 'shape' => 'DisassociateSubnetCidrBlockResult', ], ], 'DisassociateTransitGatewayMulticastDomain' => [ 'name' => 'DisassociateTransitGatewayMulticastDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateTransitGatewayMulticastDomainRequest', ], 'output' => [ 'shape' => 'DisassociateTransitGatewayMulticastDomainResult', ], ], 'DisassociateTransitGatewayPolicyTable' => [ 'name' => 'DisassociateTransitGatewayPolicyTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateTransitGatewayPolicyTableRequest', ], 'output' => [ 'shape' => 'DisassociateTransitGatewayPolicyTableResult', ], ], 'DisassociateTransitGatewayRouteTable' => [ 'name' => 'DisassociateTransitGatewayRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateTransitGatewayRouteTableRequest', ], 'output' => [ 'shape' => 'DisassociateTransitGatewayRouteTableResult', ], ], 'DisassociateTrunkInterface' => [ 'name' => 'DisassociateTrunkInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateTrunkInterfaceRequest', ], 'output' => [ 'shape' => 'DisassociateTrunkInterfaceResult', ], ], 'DisassociateVpcCidrBlock' => [ 'name' => 'DisassociateVpcCidrBlock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateVpcCidrBlockRequest', ], 'output' => [ 'shape' => 'DisassociateVpcCidrBlockResult', ], ], 'EnableAddressTransfer' => [ 'name' => 'EnableAddressTransfer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableAddressTransferRequest', ], 'output' => [ 'shape' => 'EnableAddressTransferResult', ], ], 'EnableAllowedImagesSettings' => [ 'name' => 'EnableAllowedImagesSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableAllowedImagesSettingsRequest', ], 'output' => [ 'shape' => 'EnableAllowedImagesSettingsResult', ], ], 'EnableAwsNetworkPerformanceMetricSubscription' => [ 'name' => 'EnableAwsNetworkPerformanceMetricSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableAwsNetworkPerformanceMetricSubscriptionRequest', ], 'output' => [ 'shape' => 'EnableAwsNetworkPerformanceMetricSubscriptionResult', ], ], 'EnableCapacityManager' => [ 'name' => 'EnableCapacityManager', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableCapacityManagerRequest', ], 'output' => [ 'shape' => 'EnableCapacityManagerResult', ], ], 'EnableEbsEncryptionByDefault' => [ 'name' => 'EnableEbsEncryptionByDefault', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableEbsEncryptionByDefaultRequest', ], 'output' => [ 'shape' => 'EnableEbsEncryptionByDefaultResult', ], ], 'EnableFastLaunch' => [ 'name' => 'EnableFastLaunch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableFastLaunchRequest', ], 'output' => [ 'shape' => 'EnableFastLaunchResult', ], ], 'EnableFastSnapshotRestores' => [ 'name' => 'EnableFastSnapshotRestores', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableFastSnapshotRestoresRequest', ], 'output' => [ 'shape' => 'EnableFastSnapshotRestoresResult', ], ], 'EnableImage' => [ 'name' => 'EnableImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableImageRequest', ], 'output' => [ 'shape' => 'EnableImageResult', ], ], 'EnableImageBlockPublicAccess' => [ 'name' => 'EnableImageBlockPublicAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableImageBlockPublicAccessRequest', ], 'output' => [ 'shape' => 'EnableImageBlockPublicAccessResult', ], ], 'EnableImageDeprecation' => [ 'name' => 'EnableImageDeprecation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableImageDeprecationRequest', ], 'output' => [ 'shape' => 'EnableImageDeprecationResult', ], ], 'EnableImageDeregistrationProtection' => [ 'name' => 'EnableImageDeregistrationProtection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableImageDeregistrationProtectionRequest', ], 'output' => [ 'shape' => 'EnableImageDeregistrationProtectionResult', ], ], 'EnableInstanceSqlHaStandbyDetections' => [ 'name' => 'EnableInstanceSqlHaStandbyDetections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableInstanceSqlHaStandbyDetectionsRequest', ], 'output' => [ 'shape' => 'EnableInstanceSqlHaStandbyDetectionsResult', ], ], 'EnableIpamOrganizationAdminAccount' => [ 'name' => 'EnableIpamOrganizationAdminAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableIpamOrganizationAdminAccountRequest', ], 'output' => [ 'shape' => 'EnableIpamOrganizationAdminAccountResult', ], ], 'EnableIpamPolicy' => [ 'name' => 'EnableIpamPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableIpamPolicyRequest', ], 'output' => [ 'shape' => 'EnableIpamPolicyResult', ], ], 'EnableReachabilityAnalyzerOrganizationSharing' => [ 'name' => 'EnableReachabilityAnalyzerOrganizationSharing', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableReachabilityAnalyzerOrganizationSharingRequest', ], 'output' => [ 'shape' => 'EnableReachabilityAnalyzerOrganizationSharingResult', ], ], 'EnableRouteServerPropagation' => [ 'name' => 'EnableRouteServerPropagation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableRouteServerPropagationRequest', ], 'output' => [ 'shape' => 'EnableRouteServerPropagationResult', ], ], 'EnableSerialConsoleAccess' => [ 'name' => 'EnableSerialConsoleAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableSerialConsoleAccessRequest', ], 'output' => [ 'shape' => 'EnableSerialConsoleAccessResult', ], ], 'EnableSnapshotBlockPublicAccess' => [ 'name' => 'EnableSnapshotBlockPublicAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableSnapshotBlockPublicAccessRequest', ], 'output' => [ 'shape' => 'EnableSnapshotBlockPublicAccessResult', ], ], 'EnableTransitGatewayRouteTablePropagation' => [ 'name' => 'EnableTransitGatewayRouteTablePropagation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableTransitGatewayRouteTablePropagationRequest', ], 'output' => [ 'shape' => 'EnableTransitGatewayRouteTablePropagationResult', ], ], 'EnableVgwRoutePropagation' => [ 'name' => 'EnableVgwRoutePropagation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableVgwRoutePropagationRequest', ], ], 'EnableVolumeIO' => [ 'name' => 'EnableVolumeIO', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableVolumeIORequest', ], ], 'EnableVpcClassicLink' => [ 'name' => 'EnableVpcClassicLink', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableVpcClassicLinkRequest', ], 'output' => [ 'shape' => 'EnableVpcClassicLinkResult', ], ], 'EnableVpcClassicLinkDnsSupport' => [ 'name' => 'EnableVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'EnableVpcClassicLinkDnsSupportResult', ], ], 'ExportClientVpnClientCertificateRevocationList' => [ 'name' => 'ExportClientVpnClientCertificateRevocationList', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExportClientVpnClientCertificateRevocationListRequest', ], 'output' => [ 'shape' => 'ExportClientVpnClientCertificateRevocationListResult', ], ], 'ExportClientVpnClientConfiguration' => [ 'name' => 'ExportClientVpnClientConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExportClientVpnClientConfigurationRequest', ], 'output' => [ 'shape' => 'ExportClientVpnClientConfigurationResult', ], ], 'ExportImage' => [ 'name' => 'ExportImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExportImageRequest', ], 'output' => [ 'shape' => 'ExportImageResult', ], ], 'ExportTransitGatewayRoutes' => [ 'name' => 'ExportTransitGatewayRoutes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExportTransitGatewayRoutesRequest', ], 'output' => [ 'shape' => 'ExportTransitGatewayRoutesResult', ], ], 'ExportVerifiedAccessInstanceClientConfiguration' => [ 'name' => 'ExportVerifiedAccessInstanceClientConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExportVerifiedAccessInstanceClientConfigurationRequest', ], 'output' => [ 'shape' => 'ExportVerifiedAccessInstanceClientConfigurationResult', ], ], 'GetActiveVpnTunnelStatus' => [ 'name' => 'GetActiveVpnTunnelStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetActiveVpnTunnelStatusRequest', ], 'output' => [ 'shape' => 'GetActiveVpnTunnelStatusResult', ], ], 'GetAllowedImagesSettings' => [ 'name' => 'GetAllowedImagesSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAllowedImagesSettingsRequest', ], 'output' => [ 'shape' => 'GetAllowedImagesSettingsResult', ], ], 'GetAssociatedEnclaveCertificateIamRoles' => [ 'name' => 'GetAssociatedEnclaveCertificateIamRoles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAssociatedEnclaveCertificateIamRolesRequest', ], 'output' => [ 'shape' => 'GetAssociatedEnclaveCertificateIamRolesResult', ], ], 'GetAssociatedIpv6PoolCidrs' => [ 'name' => 'GetAssociatedIpv6PoolCidrs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAssociatedIpv6PoolCidrsRequest', ], 'output' => [ 'shape' => 'GetAssociatedIpv6PoolCidrsResult', ], ], 'GetAwsNetworkPerformanceData' => [ 'name' => 'GetAwsNetworkPerformanceData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAwsNetworkPerformanceDataRequest', ], 'output' => [ 'shape' => 'GetAwsNetworkPerformanceDataResult', ], ], 'GetCapacityManagerAttributes' => [ 'name' => 'GetCapacityManagerAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCapacityManagerAttributesRequest', ], 'output' => [ 'shape' => 'GetCapacityManagerAttributesResult', ], ], 'GetCapacityManagerMetricData' => [ 'name' => 'GetCapacityManagerMetricData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCapacityManagerMetricDataRequest', ], 'output' => [ 'shape' => 'GetCapacityManagerMetricDataResult', ], ], 'GetCapacityManagerMetricDimensions' => [ 'name' => 'GetCapacityManagerMetricDimensions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCapacityManagerMetricDimensionsRequest', ], 'output' => [ 'shape' => 'GetCapacityManagerMetricDimensionsResult', ], ], 'GetCapacityManagerMonitoredTagKeys' => [ 'name' => 'GetCapacityManagerMonitoredTagKeys', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCapacityManagerMonitoredTagKeysRequest', ], 'output' => [ 'shape' => 'GetCapacityManagerMonitoredTagKeysResult', ], ], 'GetCapacityReservationUsage' => [ 'name' => 'GetCapacityReservationUsage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCapacityReservationUsageRequest', ], 'output' => [ 'shape' => 'GetCapacityReservationUsageResult', ], ], 'GetCoipPoolUsage' => [ 'name' => 'GetCoipPoolUsage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCoipPoolUsageRequest', ], 'output' => [ 'shape' => 'GetCoipPoolUsageResult', ], ], 'GetConsoleOutput' => [ 'name' => 'GetConsoleOutput', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConsoleOutputRequest', ], 'output' => [ 'shape' => 'GetConsoleOutputResult', ], ], 'GetConsoleScreenshot' => [ 'name' => 'GetConsoleScreenshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConsoleScreenshotRequest', ], 'output' => [ 'shape' => 'GetConsoleScreenshotResult', ], ], 'GetDeclarativePoliciesReportSummary' => [ 'name' => 'GetDeclarativePoliciesReportSummary', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDeclarativePoliciesReportSummaryRequest', ], 'output' => [ 'shape' => 'GetDeclarativePoliciesReportSummaryResult', ], ], 'GetDefaultCreditSpecification' => [ 'name' => 'GetDefaultCreditSpecification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDefaultCreditSpecificationRequest', ], 'output' => [ 'shape' => 'GetDefaultCreditSpecificationResult', ], ], 'GetEbsDefaultKmsKeyId' => [ 'name' => 'GetEbsDefaultKmsKeyId', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetEbsDefaultKmsKeyIdRequest', ], 'output' => [ 'shape' => 'GetEbsDefaultKmsKeyIdResult', ], ], 'GetEbsEncryptionByDefault' => [ 'name' => 'GetEbsEncryptionByDefault', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetEbsEncryptionByDefaultRequest', ], 'output' => [ 'shape' => 'GetEbsEncryptionByDefaultResult', ], ], 'GetEnabledIpamPolicy' => [ 'name' => 'GetEnabledIpamPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetEnabledIpamPolicyRequest', ], 'output' => [ 'shape' => 'GetEnabledIpamPolicyResult', ], ], 'GetFlowLogsIntegrationTemplate' => [ 'name' => 'GetFlowLogsIntegrationTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetFlowLogsIntegrationTemplateRequest', ], 'output' => [ 'shape' => 'GetFlowLogsIntegrationTemplateResult', ], ], 'GetGroupsForCapacityReservation' => [ 'name' => 'GetGroupsForCapacityReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetGroupsForCapacityReservationRequest', ], 'output' => [ 'shape' => 'GetGroupsForCapacityReservationResult', ], ], 'GetHostReservationPurchasePreview' => [ 'name' => 'GetHostReservationPurchasePreview', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetHostReservationPurchasePreviewRequest', ], 'output' => [ 'shape' => 'GetHostReservationPurchasePreviewResult', ], ], 'GetImageAncestry' => [ 'name' => 'GetImageAncestry', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetImageAncestryRequest', ], 'output' => [ 'shape' => 'GetImageAncestryResult', ], ], 'GetImageBlockPublicAccessState' => [ 'name' => 'GetImageBlockPublicAccessState', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetImageBlockPublicAccessStateRequest', ], 'output' => [ 'shape' => 'GetImageBlockPublicAccessStateResult', ], ], 'GetInstanceMetadataDefaults' => [ 'name' => 'GetInstanceMetadataDefaults', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceMetadataDefaultsRequest', ], 'output' => [ 'shape' => 'GetInstanceMetadataDefaultsResult', ], ], 'GetInstanceTpmEkPub' => [ 'name' => 'GetInstanceTpmEkPub', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceTpmEkPubRequest', ], 'output' => [ 'shape' => 'GetInstanceTpmEkPubResult', ], ], 'GetInstanceTypesFromInstanceRequirements' => [ 'name' => 'GetInstanceTypesFromInstanceRequirements', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceTypesFromInstanceRequirementsRequest', ], 'output' => [ 'shape' => 'GetInstanceTypesFromInstanceRequirementsResult', ], ], 'GetInstanceUefiData' => [ 'name' => 'GetInstanceUefiData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceUefiDataRequest', ], 'output' => [ 'shape' => 'GetInstanceUefiDataResult', ], ], 'GetIpamAddressHistory' => [ 'name' => 'GetIpamAddressHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamAddressHistoryRequest', ], 'output' => [ 'shape' => 'GetIpamAddressHistoryResult', ], ], 'GetIpamDiscoveredAccounts' => [ 'name' => 'GetIpamDiscoveredAccounts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamDiscoveredAccountsRequest', ], 'output' => [ 'shape' => 'GetIpamDiscoveredAccountsResult', ], ], 'GetIpamDiscoveredPublicAddresses' => [ 'name' => 'GetIpamDiscoveredPublicAddresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamDiscoveredPublicAddressesRequest', ], 'output' => [ 'shape' => 'GetIpamDiscoveredPublicAddressesResult', ], ], 'GetIpamDiscoveredResourceCidrs' => [ 'name' => 'GetIpamDiscoveredResourceCidrs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamDiscoveredResourceCidrsRequest', ], 'output' => [ 'shape' => 'GetIpamDiscoveredResourceCidrsResult', ], ], 'GetIpamPolicyAllocationRules' => [ 'name' => 'GetIpamPolicyAllocationRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamPolicyAllocationRulesRequest', ], 'output' => [ 'shape' => 'GetIpamPolicyAllocationRulesResult', ], ], 'GetIpamPolicyOrganizationTargets' => [ 'name' => 'GetIpamPolicyOrganizationTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamPolicyOrganizationTargetsRequest', ], 'output' => [ 'shape' => 'GetIpamPolicyOrganizationTargetsResult', ], ], 'GetIpamPoolAllocations' => [ 'name' => 'GetIpamPoolAllocations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamPoolAllocationsRequest', ], 'output' => [ 'shape' => 'GetIpamPoolAllocationsResult', ], ], 'GetIpamPoolCidrs' => [ 'name' => 'GetIpamPoolCidrs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamPoolCidrsRequest', ], 'output' => [ 'shape' => 'GetIpamPoolCidrsResult', ], ], 'GetIpamPrefixListResolverRules' => [ 'name' => 'GetIpamPrefixListResolverRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamPrefixListResolverRulesRequest', ], 'output' => [ 'shape' => 'GetIpamPrefixListResolverRulesResult', ], ], 'GetIpamPrefixListResolverVersionEntries' => [ 'name' => 'GetIpamPrefixListResolverVersionEntries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamPrefixListResolverVersionEntriesRequest', ], 'output' => [ 'shape' => 'GetIpamPrefixListResolverVersionEntriesResult', ], ], 'GetIpamPrefixListResolverVersions' => [ 'name' => 'GetIpamPrefixListResolverVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamPrefixListResolverVersionsRequest', ], 'output' => [ 'shape' => 'GetIpamPrefixListResolverVersionsResult', ], ], 'GetIpamResourceCidrs' => [ 'name' => 'GetIpamResourceCidrs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamResourceCidrsRequest', ], 'output' => [ 'shape' => 'GetIpamResourceCidrsResult', ], ], 'GetLaunchTemplateData' => [ 'name' => 'GetLaunchTemplateData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLaunchTemplateDataRequest', ], 'output' => [ 'shape' => 'GetLaunchTemplateDataResult', ], ], 'GetManagedPrefixListAssociations' => [ 'name' => 'GetManagedPrefixListAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetManagedPrefixListAssociationsRequest', ], 'output' => [ 'shape' => 'GetManagedPrefixListAssociationsResult', ], ], 'GetManagedPrefixListEntries' => [ 'name' => 'GetManagedPrefixListEntries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetManagedPrefixListEntriesRequest', ], 'output' => [ 'shape' => 'GetManagedPrefixListEntriesResult', ], ], 'GetManagedResourceVisibility' => [ 'name' => 'GetManagedResourceVisibility', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetManagedResourceVisibilityRequest', ], 'output' => [ 'shape' => 'GetManagedResourceVisibilityResult', ], ], 'GetNetworkInsightsAccessScopeAnalysisFindings' => [ 'name' => 'GetNetworkInsightsAccessScopeAnalysisFindings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetNetworkInsightsAccessScopeAnalysisFindingsRequest', ], 'output' => [ 'shape' => 'GetNetworkInsightsAccessScopeAnalysisFindingsResult', ], ], 'GetNetworkInsightsAccessScopeContent' => [ 'name' => 'GetNetworkInsightsAccessScopeContent', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetNetworkInsightsAccessScopeContentRequest', ], 'output' => [ 'shape' => 'GetNetworkInsightsAccessScopeContentResult', ], ], 'GetPasswordData' => [ 'name' => 'GetPasswordData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPasswordDataRequest', ], 'output' => [ 'shape' => 'GetPasswordDataResult', ], ], 'GetReservedInstancesExchangeQuote' => [ 'name' => 'GetReservedInstancesExchangeQuote', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetReservedInstancesExchangeQuoteRequest', ], 'output' => [ 'shape' => 'GetReservedInstancesExchangeQuoteResult', ], ], 'GetRouteServerAssociations' => [ 'name' => 'GetRouteServerAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRouteServerAssociationsRequest', ], 'output' => [ 'shape' => 'GetRouteServerAssociationsResult', ], ], 'GetRouteServerPropagations' => [ 'name' => 'GetRouteServerPropagations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRouteServerPropagationsRequest', ], 'output' => [ 'shape' => 'GetRouteServerPropagationsResult', ], ], 'GetRouteServerRoutingDatabase' => [ 'name' => 'GetRouteServerRoutingDatabase', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRouteServerRoutingDatabaseRequest', ], 'output' => [ 'shape' => 'GetRouteServerRoutingDatabaseResult', ], ], 'GetSecurityGroupsForVpc' => [ 'name' => 'GetSecurityGroupsForVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSecurityGroupsForVpcRequest', ], 'output' => [ 'shape' => 'GetSecurityGroupsForVpcResult', ], ], 'GetSerialConsoleAccessStatus' => [ 'name' => 'GetSerialConsoleAccessStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSerialConsoleAccessStatusRequest', ], 'output' => [ 'shape' => 'GetSerialConsoleAccessStatusResult', ], ], 'GetSnapshotBlockPublicAccessState' => [ 'name' => 'GetSnapshotBlockPublicAccessState', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSnapshotBlockPublicAccessStateRequest', ], 'output' => [ 'shape' => 'GetSnapshotBlockPublicAccessStateResult', ], ], 'GetSpotPlacementScores' => [ 'name' => 'GetSpotPlacementScores', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSpotPlacementScoresRequest', ], 'output' => [ 'shape' => 'GetSpotPlacementScoresResult', ], ], 'GetSubnetCidrReservations' => [ 'name' => 'GetSubnetCidrReservations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSubnetCidrReservationsRequest', ], 'output' => [ 'shape' => 'GetSubnetCidrReservationsResult', ], ], 'GetTransitGatewayAttachmentPropagations' => [ 'name' => 'GetTransitGatewayAttachmentPropagations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayAttachmentPropagationsRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayAttachmentPropagationsResult', ], ], 'GetTransitGatewayMeteringPolicyEntries' => [ 'name' => 'GetTransitGatewayMeteringPolicyEntries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayMeteringPolicyEntriesRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayMeteringPolicyEntriesResult', ], ], 'GetTransitGatewayMulticastDomainAssociations' => [ 'name' => 'GetTransitGatewayMulticastDomainAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayMulticastDomainAssociationsRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayMulticastDomainAssociationsResult', ], ], 'GetTransitGatewayPolicyTableAssociations' => [ 'name' => 'GetTransitGatewayPolicyTableAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayPolicyTableAssociationsRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayPolicyTableAssociationsResult', ], ], 'GetTransitGatewayPolicyTableEntries' => [ 'name' => 'GetTransitGatewayPolicyTableEntries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayPolicyTableEntriesRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayPolicyTableEntriesResult', ], ], 'GetTransitGatewayPrefixListReferences' => [ 'name' => 'GetTransitGatewayPrefixListReferences', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayPrefixListReferencesRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayPrefixListReferencesResult', ], ], 'GetTransitGatewayRouteTableAssociations' => [ 'name' => 'GetTransitGatewayRouteTableAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayRouteTableAssociationsRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayRouteTableAssociationsResult', ], ], 'GetTransitGatewayRouteTablePropagations' => [ 'name' => 'GetTransitGatewayRouteTablePropagations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayRouteTablePropagationsRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayRouteTablePropagationsResult', ], ], 'GetVerifiedAccessEndpointPolicy' => [ 'name' => 'GetVerifiedAccessEndpointPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetVerifiedAccessEndpointPolicyRequest', ], 'output' => [ 'shape' => 'GetVerifiedAccessEndpointPolicyResult', ], ], 'GetVerifiedAccessEndpointTargets' => [ 'name' => 'GetVerifiedAccessEndpointTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetVerifiedAccessEndpointTargetsRequest', ], 'output' => [ 'shape' => 'GetVerifiedAccessEndpointTargetsResult', ], ], 'GetVerifiedAccessGroupPolicy' => [ 'name' => 'GetVerifiedAccessGroupPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetVerifiedAccessGroupPolicyRequest', ], 'output' => [ 'shape' => 'GetVerifiedAccessGroupPolicyResult', ], ], 'GetVpcResourcesBlockingEncryptionEnforcement' => [ 'name' => 'GetVpcResourcesBlockingEncryptionEnforcement', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetVpcResourcesBlockingEncryptionEnforcementRequest', ], 'output' => [ 'shape' => 'GetVpcResourcesBlockingEncryptionEnforcementResult', ], ], 'GetVpnConnectionDeviceSampleConfiguration' => [ 'name' => 'GetVpnConnectionDeviceSampleConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetVpnConnectionDeviceSampleConfigurationRequest', ], 'output' => [ 'shape' => 'GetVpnConnectionDeviceSampleConfigurationResult', ], ], 'GetVpnConnectionDeviceTypes' => [ 'name' => 'GetVpnConnectionDeviceTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetVpnConnectionDeviceTypesRequest', ], 'output' => [ 'shape' => 'GetVpnConnectionDeviceTypesResult', ], ], 'GetVpnTunnelReplacementStatus' => [ 'name' => 'GetVpnTunnelReplacementStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetVpnTunnelReplacementStatusRequest', ], 'output' => [ 'shape' => 'GetVpnTunnelReplacementStatusResult', ], ], 'ImportClientVpnClientCertificateRevocationList' => [ 'name' => 'ImportClientVpnClientCertificateRevocationList', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportClientVpnClientCertificateRevocationListRequest', ], 'output' => [ 'shape' => 'ImportClientVpnClientCertificateRevocationListResult', ], ], 'ImportImage' => [ 'name' => 'ImportImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportImageRequest', ], 'output' => [ 'shape' => 'ImportImageResult', ], ], 'ImportInstance' => [ 'name' => 'ImportInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportInstanceRequest', ], 'output' => [ 'shape' => 'ImportInstanceResult', ], ], 'ImportKeyPair' => [ 'name' => 'ImportKeyPair', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportKeyPairRequest', ], 'output' => [ 'shape' => 'ImportKeyPairResult', ], ], 'ImportSnapshot' => [ 'name' => 'ImportSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportSnapshotRequest', ], 'output' => [ 'shape' => 'ImportSnapshotResult', ], ], 'ImportVolume' => [ 'name' => 'ImportVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportVolumeRequest', ], 'output' => [ 'shape' => 'ImportVolumeResult', ], ], 'ListImagesInRecycleBin' => [ 'name' => 'ListImagesInRecycleBin', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListImagesInRecycleBinRequest', ], 'output' => [ 'shape' => 'ListImagesInRecycleBinResult', ], ], 'ListSnapshotsInRecycleBin' => [ 'name' => 'ListSnapshotsInRecycleBin', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSnapshotsInRecycleBinRequest', ], 'output' => [ 'shape' => 'ListSnapshotsInRecycleBinResult', ], ], 'ListVolumesInRecycleBin' => [ 'name' => 'ListVolumesInRecycleBin', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListVolumesInRecycleBinRequest', ], 'output' => [ 'shape' => 'ListVolumesInRecycleBinResult', ], ], 'LockSnapshot' => [ 'name' => 'LockSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'LockSnapshotRequest', ], 'output' => [ 'shape' => 'LockSnapshotResult', ], ], 'ModifyAccountVpcEncryptionControl' => [ 'name' => 'ModifyAccountVpcEncryptionControl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyAccountVpcEncryptionControlRequest', ], 'output' => [ 'shape' => 'ModifyAccountVpcEncryptionControlResult', ], ], 'ModifyAddressAttribute' => [ 'name' => 'ModifyAddressAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyAddressAttributeRequest', ], 'output' => [ 'shape' => 'ModifyAddressAttributeResult', ], ], 'ModifyAvailabilityZoneGroup' => [ 'name' => 'ModifyAvailabilityZoneGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyAvailabilityZoneGroupRequest', ], 'output' => [ 'shape' => 'ModifyAvailabilityZoneGroupResult', ], ], 'ModifyCapacityReservation' => [ 'name' => 'ModifyCapacityReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyCapacityReservationRequest', ], 'output' => [ 'shape' => 'ModifyCapacityReservationResult', ], ], 'ModifyCapacityReservationFleet' => [ 'name' => 'ModifyCapacityReservationFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyCapacityReservationFleetRequest', ], 'output' => [ 'shape' => 'ModifyCapacityReservationFleetResult', ], ], 'ModifyClientVpnEndpoint' => [ 'name' => 'ModifyClientVpnEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyClientVpnEndpointRequest', ], 'output' => [ 'shape' => 'ModifyClientVpnEndpointResult', ], ], 'ModifyDefaultCreditSpecification' => [ 'name' => 'ModifyDefaultCreditSpecification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDefaultCreditSpecificationRequest', ], 'output' => [ 'shape' => 'ModifyDefaultCreditSpecificationResult', ], ], 'ModifyEbsDefaultKmsKeyId' => [ 'name' => 'ModifyEbsDefaultKmsKeyId', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyEbsDefaultKmsKeyIdRequest', ], 'output' => [ 'shape' => 'ModifyEbsDefaultKmsKeyIdResult', ], ], 'ModifyFleet' => [ 'name' => 'ModifyFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyFleetRequest', ], 'output' => [ 'shape' => 'ModifyFleetResult', ], ], 'ModifyFpgaImageAttribute' => [ 'name' => 'ModifyFpgaImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyFpgaImageAttributeRequest', ], 'output' => [ 'shape' => 'ModifyFpgaImageAttributeResult', ], ], 'ModifyHosts' => [ 'name' => 'ModifyHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyHostsRequest', ], 'output' => [ 'shape' => 'ModifyHostsResult', ], ], 'ModifyIdFormat' => [ 'name' => 'ModifyIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIdFormatRequest', ], ], 'ModifyIdentityIdFormat' => [ 'name' => 'ModifyIdentityIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIdentityIdFormatRequest', ], ], 'ModifyImageAttribute' => [ 'name' => 'ModifyImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyImageAttributeRequest', ], ], 'ModifyInstanceAttribute' => [ 'name' => 'ModifyInstanceAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceAttributeRequest', ], ], 'ModifyInstanceCapacityReservationAttributes' => [ 'name' => 'ModifyInstanceCapacityReservationAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceCapacityReservationAttributesRequest', ], 'output' => [ 'shape' => 'ModifyInstanceCapacityReservationAttributesResult', ], ], 'ModifyInstanceConnectEndpoint' => [ 'name' => 'ModifyInstanceConnectEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceConnectEndpointRequest', ], 'output' => [ 'shape' => 'ModifyInstanceConnectEndpointResult', ], ], 'ModifyInstanceCpuOptions' => [ 'name' => 'ModifyInstanceCpuOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceCpuOptionsRequest', ], 'output' => [ 'shape' => 'ModifyInstanceCpuOptionsResult', ], ], 'ModifyInstanceCreditSpecification' => [ 'name' => 'ModifyInstanceCreditSpecification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceCreditSpecificationRequest', ], 'output' => [ 'shape' => 'ModifyInstanceCreditSpecificationResult', ], ], 'ModifyInstanceEventStartTime' => [ 'name' => 'ModifyInstanceEventStartTime', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceEventStartTimeRequest', ], 'output' => [ 'shape' => 'ModifyInstanceEventStartTimeResult', ], ], 'ModifyInstanceEventWindow' => [ 'name' => 'ModifyInstanceEventWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceEventWindowRequest', ], 'output' => [ 'shape' => 'ModifyInstanceEventWindowResult', ], ], 'ModifyInstanceMaintenanceOptions' => [ 'name' => 'ModifyInstanceMaintenanceOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceMaintenanceOptionsRequest', ], 'output' => [ 'shape' => 'ModifyInstanceMaintenanceOptionsResult', ], ], 'ModifyInstanceMetadataDefaults' => [ 'name' => 'ModifyInstanceMetadataDefaults', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceMetadataDefaultsRequest', ], 'output' => [ 'shape' => 'ModifyInstanceMetadataDefaultsResult', ], ], 'ModifyInstanceMetadataOptions' => [ 'name' => 'ModifyInstanceMetadataOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceMetadataOptionsRequest', ], 'output' => [ 'shape' => 'ModifyInstanceMetadataOptionsResult', ], ], 'ModifyInstanceNetworkPerformanceOptions' => [ 'name' => 'ModifyInstanceNetworkPerformanceOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceNetworkPerformanceRequest', ], 'output' => [ 'shape' => 'ModifyInstanceNetworkPerformanceResult', ], ], 'ModifyInstancePlacement' => [ 'name' => 'ModifyInstancePlacement', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstancePlacementRequest', ], 'output' => [ 'shape' => 'ModifyInstancePlacementResult', ], ], 'ModifyIpam' => [ 'name' => 'ModifyIpam', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamRequest', ], 'output' => [ 'shape' => 'ModifyIpamResult', ], ], 'ModifyIpamPolicyAllocationRules' => [ 'name' => 'ModifyIpamPolicyAllocationRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamPolicyAllocationRulesRequest', ], 'output' => [ 'shape' => 'ModifyIpamPolicyAllocationRulesResult', ], ], 'ModifyIpamPool' => [ 'name' => 'ModifyIpamPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamPoolRequest', ], 'output' => [ 'shape' => 'ModifyIpamPoolResult', ], ], 'ModifyIpamPoolAllocation' => [ 'name' => 'ModifyIpamPoolAllocation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamPoolAllocationRequest', ], 'output' => [ 'shape' => 'ModifyIpamPoolAllocationResult', ], ], 'ModifyIpamPrefixListResolver' => [ 'name' => 'ModifyIpamPrefixListResolver', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamPrefixListResolverRequest', ], 'output' => [ 'shape' => 'ModifyIpamPrefixListResolverResult', ], ], 'ModifyIpamPrefixListResolverTarget' => [ 'name' => 'ModifyIpamPrefixListResolverTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamPrefixListResolverTargetRequest', ], 'output' => [ 'shape' => 'ModifyIpamPrefixListResolverTargetResult', ], ], 'ModifyIpamResourceCidr' => [ 'name' => 'ModifyIpamResourceCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamResourceCidrRequest', ], 'output' => [ 'shape' => 'ModifyIpamResourceCidrResult', ], ], 'ModifyIpamResourceDiscovery' => [ 'name' => 'ModifyIpamResourceDiscovery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamResourceDiscoveryRequest', ], 'output' => [ 'shape' => 'ModifyIpamResourceDiscoveryResult', ], ], 'ModifyIpamScope' => [ 'name' => 'ModifyIpamScope', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamScopeRequest', ], 'output' => [ 'shape' => 'ModifyIpamScopeResult', ], ], 'ModifyLaunchTemplate' => [ 'name' => 'ModifyLaunchTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyLaunchTemplateRequest', ], 'output' => [ 'shape' => 'ModifyLaunchTemplateResult', ], ], 'ModifyLocalGatewayRoute' => [ 'name' => 'ModifyLocalGatewayRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyLocalGatewayRouteRequest', ], 'output' => [ 'shape' => 'ModifyLocalGatewayRouteResult', ], ], 'ModifyManagedPrefixList' => [ 'name' => 'ModifyManagedPrefixList', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyManagedPrefixListRequest', ], 'output' => [ 'shape' => 'ModifyManagedPrefixListResult', ], ], 'ModifyManagedResourceVisibility' => [ 'name' => 'ModifyManagedResourceVisibility', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyManagedResourceVisibilityRequest', ], 'output' => [ 'shape' => 'ModifyManagedResourceVisibilityResult', ], ], 'ModifyNetworkInterfaceAttribute' => [ 'name' => 'ModifyNetworkInterfaceAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyNetworkInterfaceAttributeRequest', ], ], 'ModifyPrivateDnsNameOptions' => [ 'name' => 'ModifyPrivateDnsNameOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyPrivateDnsNameOptionsRequest', ], 'output' => [ 'shape' => 'ModifyPrivateDnsNameOptionsResult', ], ], 'ModifyPublicIpDnsNameOptions' => [ 'name' => 'ModifyPublicIpDnsNameOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyPublicIpDnsNameOptionsRequest', ], 'output' => [ 'shape' => 'ModifyPublicIpDnsNameOptionsResult', ], ], 'ModifyReservedInstances' => [ 'name' => 'ModifyReservedInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyReservedInstancesRequest', ], 'output' => [ 'shape' => 'ModifyReservedInstancesResult', ], ], 'ModifyRouteServer' => [ 'name' => 'ModifyRouteServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyRouteServerRequest', ], 'output' => [ 'shape' => 'ModifyRouteServerResult', ], ], 'ModifySecurityGroupRules' => [ 'name' => 'ModifySecurityGroupRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySecurityGroupRulesRequest', ], 'output' => [ 'shape' => 'ModifySecurityGroupRulesResult', ], ], 'ModifySnapshotAttribute' => [ 'name' => 'ModifySnapshotAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySnapshotAttributeRequest', ], ], 'ModifySnapshotTier' => [ 'name' => 'ModifySnapshotTier', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySnapshotTierRequest', ], 'output' => [ 'shape' => 'ModifySnapshotTierResult', ], ], 'ModifySpotFleetRequest' => [ 'name' => 'ModifySpotFleetRequest', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySpotFleetRequestRequest', ], 'output' => [ 'shape' => 'ModifySpotFleetRequestResponse', ], ], 'ModifySubnetAttribute' => [ 'name' => 'ModifySubnetAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySubnetAttributeRequest', ], ], 'ModifyTrafficMirrorFilterNetworkServices' => [ 'name' => 'ModifyTrafficMirrorFilterNetworkServices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTrafficMirrorFilterNetworkServicesRequest', ], 'output' => [ 'shape' => 'ModifyTrafficMirrorFilterNetworkServicesResult', ], ], 'ModifyTrafficMirrorFilterRule' => [ 'name' => 'ModifyTrafficMirrorFilterRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTrafficMirrorFilterRuleRequest', ], 'output' => [ 'shape' => 'ModifyTrafficMirrorFilterRuleResult', ], ], 'ModifyTrafficMirrorSession' => [ 'name' => 'ModifyTrafficMirrorSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTrafficMirrorSessionRequest', ], 'output' => [ 'shape' => 'ModifyTrafficMirrorSessionResult', ], ], 'ModifyTransitGateway' => [ 'name' => 'ModifyTransitGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTransitGatewayRequest', ], 'output' => [ 'shape' => 'ModifyTransitGatewayResult', ], ], 'ModifyTransitGatewayMeteringPolicy' => [ 'name' => 'ModifyTransitGatewayMeteringPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTransitGatewayMeteringPolicyRequest', ], 'output' => [ 'shape' => 'ModifyTransitGatewayMeteringPolicyResult', ], ], 'ModifyTransitGatewayPrefixListReference' => [ 'name' => 'ModifyTransitGatewayPrefixListReference', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTransitGatewayPrefixListReferenceRequest', ], 'output' => [ 'shape' => 'ModifyTransitGatewayPrefixListReferenceResult', ], ], 'ModifyTransitGatewayVpcAttachment' => [ 'name' => 'ModifyTransitGatewayVpcAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTransitGatewayVpcAttachmentRequest', ], 'output' => [ 'shape' => 'ModifyTransitGatewayVpcAttachmentResult', ], ], 'ModifyVerifiedAccessEndpoint' => [ 'name' => 'ModifyVerifiedAccessEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVerifiedAccessEndpointRequest', ], 'output' => [ 'shape' => 'ModifyVerifiedAccessEndpointResult', ], ], 'ModifyVerifiedAccessEndpointPolicy' => [ 'name' => 'ModifyVerifiedAccessEndpointPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVerifiedAccessEndpointPolicyRequest', ], 'output' => [ 'shape' => 'ModifyVerifiedAccessEndpointPolicyResult', ], ], 'ModifyVerifiedAccessGroup' => [ 'name' => 'ModifyVerifiedAccessGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVerifiedAccessGroupRequest', ], 'output' => [ 'shape' => 'ModifyVerifiedAccessGroupResult', ], ], 'ModifyVerifiedAccessGroupPolicy' => [ 'name' => 'ModifyVerifiedAccessGroupPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVerifiedAccessGroupPolicyRequest', ], 'output' => [ 'shape' => 'ModifyVerifiedAccessGroupPolicyResult', ], ], 'ModifyVerifiedAccessInstance' => [ 'name' => 'ModifyVerifiedAccessInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVerifiedAccessInstanceRequest', ], 'output' => [ 'shape' => 'ModifyVerifiedAccessInstanceResult', ], ], 'ModifyVerifiedAccessInstanceLoggingConfiguration' => [ 'name' => 'ModifyVerifiedAccessInstanceLoggingConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVerifiedAccessInstanceLoggingConfigurationRequest', ], 'output' => [ 'shape' => 'ModifyVerifiedAccessInstanceLoggingConfigurationResult', ], ], 'ModifyVerifiedAccessTrustProvider' => [ 'name' => 'ModifyVerifiedAccessTrustProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVerifiedAccessTrustProviderRequest', ], 'output' => [ 'shape' => 'ModifyVerifiedAccessTrustProviderResult', ], ], 'ModifyVolume' => [ 'name' => 'ModifyVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVolumeRequest', ], 'output' => [ 'shape' => 'ModifyVolumeResult', ], ], 'ModifyVolumeAttribute' => [ 'name' => 'ModifyVolumeAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVolumeAttributeRequest', ], ], 'ModifyVpcAttribute' => [ 'name' => 'ModifyVpcAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcAttributeRequest', ], ], 'ModifyVpcBlockPublicAccessExclusion' => [ 'name' => 'ModifyVpcBlockPublicAccessExclusion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcBlockPublicAccessExclusionRequest', ], 'output' => [ 'shape' => 'ModifyVpcBlockPublicAccessExclusionResult', ], ], 'ModifyVpcBlockPublicAccessOptions' => [ 'name' => 'ModifyVpcBlockPublicAccessOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcBlockPublicAccessOptionsRequest', ], 'output' => [ 'shape' => 'ModifyVpcBlockPublicAccessOptionsResult', ], ], 'ModifyVpcEncryptionControl' => [ 'name' => 'ModifyVpcEncryptionControl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEncryptionControlRequest', ], 'output' => [ 'shape' => 'ModifyVpcEncryptionControlResult', ], ], 'ModifyVpcEndpoint' => [ 'name' => 'ModifyVpcEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEndpointRequest', ], 'output' => [ 'shape' => 'ModifyVpcEndpointResult', ], ], 'ModifyVpcEndpointConnectionNotification' => [ 'name' => 'ModifyVpcEndpointConnectionNotification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEndpointConnectionNotificationRequest', ], 'output' => [ 'shape' => 'ModifyVpcEndpointConnectionNotificationResult', ], ], 'ModifyVpcEndpointPayerResponsibility' => [ 'name' => 'ModifyVpcEndpointPayerResponsibility', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEndpointPayerResponsibilityRequest', ], 'output' => [ 'shape' => 'ModifyVpcEndpointPayerResponsibilityResult', ], ], 'ModifyVpcEndpointServiceConfiguration' => [ 'name' => 'ModifyVpcEndpointServiceConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEndpointServiceConfigurationRequest', ], 'output' => [ 'shape' => 'ModifyVpcEndpointServiceConfigurationResult', ], ], 'ModifyVpcEndpointServicePayerResponsibility' => [ 'name' => 'ModifyVpcEndpointServicePayerResponsibility', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEndpointServicePayerResponsibilityRequest', ], 'output' => [ 'shape' => 'ModifyVpcEndpointServicePayerResponsibilityResult', ], ], 'ModifyVpcEndpointServicePermissions' => [ 'name' => 'ModifyVpcEndpointServicePermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEndpointServicePermissionsRequest', ], 'output' => [ 'shape' => 'ModifyVpcEndpointServicePermissionsResult', ], ], 'ModifyVpcPeeringConnectionOptions' => [ 'name' => 'ModifyVpcPeeringConnectionOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcPeeringConnectionOptionsRequest', ], 'output' => [ 'shape' => 'ModifyVpcPeeringConnectionOptionsResult', ], ], 'ModifyVpcTenancy' => [ 'name' => 'ModifyVpcTenancy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcTenancyRequest', ], 'output' => [ 'shape' => 'ModifyVpcTenancyResult', ], ], 'ModifyVpnConnection' => [ 'name' => 'ModifyVpnConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpnConnectionRequest', ], 'output' => [ 'shape' => 'ModifyVpnConnectionResult', ], ], 'ModifyVpnConnectionOptions' => [ 'name' => 'ModifyVpnConnectionOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpnConnectionOptionsRequest', ], 'output' => [ 'shape' => 'ModifyVpnConnectionOptionsResult', ], ], 'ModifyVpnTunnelCertificate' => [ 'name' => 'ModifyVpnTunnelCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpnTunnelCertificateRequest', ], 'output' => [ 'shape' => 'ModifyVpnTunnelCertificateResult', ], ], 'ModifyVpnTunnelOptions' => [ 'name' => 'ModifyVpnTunnelOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpnTunnelOptionsRequest', ], 'output' => [ 'shape' => 'ModifyVpnTunnelOptionsResult', ], ], 'MonitorInstances' => [ 'name' => 'MonitorInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'MonitorInstancesRequest', ], 'output' => [ 'shape' => 'MonitorInstancesResult', ], ], 'MoveAddressToVpc' => [ 'name' => 'MoveAddressToVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'MoveAddressToVpcRequest', ], 'output' => [ 'shape' => 'MoveAddressToVpcResult', ], ], 'MoveByoipCidrToIpam' => [ 'name' => 'MoveByoipCidrToIpam', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'MoveByoipCidrToIpamRequest', ], 'output' => [ 'shape' => 'MoveByoipCidrToIpamResult', ], ], 'MoveCapacityReservationInstances' => [ 'name' => 'MoveCapacityReservationInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'MoveCapacityReservationInstancesRequest', ], 'output' => [ 'shape' => 'MoveCapacityReservationInstancesResult', ], ], 'ProvisionByoipCidr' => [ 'name' => 'ProvisionByoipCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ProvisionByoipCidrRequest', ], 'output' => [ 'shape' => 'ProvisionByoipCidrResult', ], ], 'ProvisionIpamByoasn' => [ 'name' => 'ProvisionIpamByoasn', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ProvisionIpamByoasnRequest', ], 'output' => [ 'shape' => 'ProvisionIpamByoasnResult', ], ], 'ProvisionIpamPoolCidr' => [ 'name' => 'ProvisionIpamPoolCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ProvisionIpamPoolCidrRequest', ], 'output' => [ 'shape' => 'ProvisionIpamPoolCidrResult', ], ], 'ProvisionPublicIpv4PoolCidr' => [ 'name' => 'ProvisionPublicIpv4PoolCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ProvisionPublicIpv4PoolCidrRequest', ], 'output' => [ 'shape' => 'ProvisionPublicIpv4PoolCidrResult', ], ], 'PurchaseCapacityBlock' => [ 'name' => 'PurchaseCapacityBlock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseCapacityBlockRequest', ], 'output' => [ 'shape' => 'PurchaseCapacityBlockResult', ], ], 'PurchaseCapacityBlockExtension' => [ 'name' => 'PurchaseCapacityBlockExtension', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseCapacityBlockExtensionRequest', ], 'output' => [ 'shape' => 'PurchaseCapacityBlockExtensionResult', ], ], 'PurchaseHostReservation' => [ 'name' => 'PurchaseHostReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseHostReservationRequest', ], 'output' => [ 'shape' => 'PurchaseHostReservationResult', ], ], 'PurchaseReservedInstancesOffering' => [ 'name' => 'PurchaseReservedInstancesOffering', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseReservedInstancesOfferingRequest', ], 'output' => [ 'shape' => 'PurchaseReservedInstancesOfferingResult', ], ], 'PurchaseScheduledInstances' => [ 'name' => 'PurchaseScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseScheduledInstancesRequest', ], 'output' => [ 'shape' => 'PurchaseScheduledInstancesResult', ], ], 'RebootInstances' => [ 'name' => 'RebootInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RebootInstancesRequest', ], ], 'RegisterImage' => [ 'name' => 'RegisterImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterImageRequest', ], 'output' => [ 'shape' => 'RegisterImageResult', ], ], 'RegisterInstanceEventNotificationAttributes' => [ 'name' => 'RegisterInstanceEventNotificationAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterInstanceEventNotificationAttributesRequest', ], 'output' => [ 'shape' => 'RegisterInstanceEventNotificationAttributesResult', ], ], 'RegisterTransitGatewayMulticastGroupMembers' => [ 'name' => 'RegisterTransitGatewayMulticastGroupMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterTransitGatewayMulticastGroupMembersRequest', ], 'output' => [ 'shape' => 'RegisterTransitGatewayMulticastGroupMembersResult', ], ], 'RegisterTransitGatewayMulticastGroupSources' => [ 'name' => 'RegisterTransitGatewayMulticastGroupSources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterTransitGatewayMulticastGroupSourcesRequest', ], 'output' => [ 'shape' => 'RegisterTransitGatewayMulticastGroupSourcesResult', ], ], 'RejectCapacityReservationBillingOwnership' => [ 'name' => 'RejectCapacityReservationBillingOwnership', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectCapacityReservationBillingOwnershipRequest', ], 'output' => [ 'shape' => 'RejectCapacityReservationBillingOwnershipResult', ], ], 'RejectTransitGatewayClientVpnAttachment' => [ 'name' => 'RejectTransitGatewayClientVpnAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectTransitGatewayClientVpnAttachmentRequest', ], 'output' => [ 'shape' => 'RejectTransitGatewayClientVpnAttachmentResult', ], ], 'RejectTransitGatewayMulticastDomainAssociations' => [ 'name' => 'RejectTransitGatewayMulticastDomainAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectTransitGatewayMulticastDomainAssociationsRequest', ], 'output' => [ 'shape' => 'RejectTransitGatewayMulticastDomainAssociationsResult', ], ], 'RejectTransitGatewayPeeringAttachment' => [ 'name' => 'RejectTransitGatewayPeeringAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectTransitGatewayPeeringAttachmentRequest', ], 'output' => [ 'shape' => 'RejectTransitGatewayPeeringAttachmentResult', ], ], 'RejectTransitGatewayVpcAttachment' => [ 'name' => 'RejectTransitGatewayVpcAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectTransitGatewayVpcAttachmentRequest', ], 'output' => [ 'shape' => 'RejectTransitGatewayVpcAttachmentResult', ], ], 'RejectVpcEndpointConnections' => [ 'name' => 'RejectVpcEndpointConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectVpcEndpointConnectionsRequest', ], 'output' => [ 'shape' => 'RejectVpcEndpointConnectionsResult', ], ], 'RejectVpcPeeringConnection' => [ 'name' => 'RejectVpcPeeringConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectVpcPeeringConnectionRequest', ], 'output' => [ 'shape' => 'RejectVpcPeeringConnectionResult', ], ], 'ReleaseAddress' => [ 'name' => 'ReleaseAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReleaseAddressRequest', ], ], 'ReleaseHosts' => [ 'name' => 'ReleaseHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReleaseHostsRequest', ], 'output' => [ 'shape' => 'ReleaseHostsResult', ], ], 'ReleaseIpamPoolAllocation' => [ 'name' => 'ReleaseIpamPoolAllocation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReleaseIpamPoolAllocationRequest', ], 'output' => [ 'shape' => 'ReleaseIpamPoolAllocationResult', ], ], 'ReplaceIamInstanceProfileAssociation' => [ 'name' => 'ReplaceIamInstanceProfileAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceIamInstanceProfileAssociationRequest', ], 'output' => [ 'shape' => 'ReplaceIamInstanceProfileAssociationResult', ], ], 'ReplaceImageCriteriaInAllowedImagesSettings' => [ 'name' => 'ReplaceImageCriteriaInAllowedImagesSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceImageCriteriaInAllowedImagesSettingsRequest', ], 'output' => [ 'shape' => 'ReplaceImageCriteriaInAllowedImagesSettingsResult', ], ], 'ReplaceNetworkAclAssociation' => [ 'name' => 'ReplaceNetworkAclAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceNetworkAclAssociationRequest', ], 'output' => [ 'shape' => 'ReplaceNetworkAclAssociationResult', ], ], 'ReplaceNetworkAclEntry' => [ 'name' => 'ReplaceNetworkAclEntry', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceNetworkAclEntryRequest', ], ], 'ReplaceRoute' => [ 'name' => 'ReplaceRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceRouteRequest', ], ], 'ReplaceRouteTableAssociation' => [ 'name' => 'ReplaceRouteTableAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceRouteTableAssociationRequest', ], 'output' => [ 'shape' => 'ReplaceRouteTableAssociationResult', ], ], 'ReplaceTransitGatewayRoute' => [ 'name' => 'ReplaceTransitGatewayRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceTransitGatewayRouteRequest', ], 'output' => [ 'shape' => 'ReplaceTransitGatewayRouteResult', ], ], 'ReplaceVpnTunnel' => [ 'name' => 'ReplaceVpnTunnel', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceVpnTunnelRequest', ], 'output' => [ 'shape' => 'ReplaceVpnTunnelResult', ], ], 'ReportInstanceStatus' => [ 'name' => 'ReportInstanceStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReportInstanceStatusRequest', ], ], 'RequestSpotFleet' => [ 'name' => 'RequestSpotFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RequestSpotFleetRequest', ], 'output' => [ 'shape' => 'RequestSpotFleetResponse', ], ], 'RequestSpotInstances' => [ 'name' => 'RequestSpotInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RequestSpotInstancesRequest', ], 'output' => [ 'shape' => 'RequestSpotInstancesResult', ], ], 'ResetAddressAttribute' => [ 'name' => 'ResetAddressAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetAddressAttributeRequest', ], 'output' => [ 'shape' => 'ResetAddressAttributeResult', ], ], 'ResetEbsDefaultKmsKeyId' => [ 'name' => 'ResetEbsDefaultKmsKeyId', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetEbsDefaultKmsKeyIdRequest', ], 'output' => [ 'shape' => 'ResetEbsDefaultKmsKeyIdResult', ], ], 'ResetFpgaImageAttribute' => [ 'name' => 'ResetFpgaImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetFpgaImageAttributeRequest', ], 'output' => [ 'shape' => 'ResetFpgaImageAttributeResult', ], ], 'ResetImageAttribute' => [ 'name' => 'ResetImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetImageAttributeRequest', ], ], 'ResetInstanceAttribute' => [ 'name' => 'ResetInstanceAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetInstanceAttributeRequest', ], ], 'ResetNetworkInterfaceAttribute' => [ 'name' => 'ResetNetworkInterfaceAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetNetworkInterfaceAttributeRequest', ], ], 'ResetSnapshotAttribute' => [ 'name' => 'ResetSnapshotAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetSnapshotAttributeRequest', ], ], 'RestoreAddressToClassic' => [ 'name' => 'RestoreAddressToClassic', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreAddressToClassicRequest', ], 'output' => [ 'shape' => 'RestoreAddressToClassicResult', ], ], 'RestoreImageFromRecycleBin' => [ 'name' => 'RestoreImageFromRecycleBin', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreImageFromRecycleBinRequest', ], 'output' => [ 'shape' => 'RestoreImageFromRecycleBinResult', ], ], 'RestoreManagedPrefixListVersion' => [ 'name' => 'RestoreManagedPrefixListVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreManagedPrefixListVersionRequest', ], 'output' => [ 'shape' => 'RestoreManagedPrefixListVersionResult', ], ], 'RestoreSnapshotFromRecycleBin' => [ 'name' => 'RestoreSnapshotFromRecycleBin', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreSnapshotFromRecycleBinRequest', ], 'output' => [ 'shape' => 'RestoreSnapshotFromRecycleBinResult', ], ], 'RestoreSnapshotTier' => [ 'name' => 'RestoreSnapshotTier', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreSnapshotTierRequest', ], 'output' => [ 'shape' => 'RestoreSnapshotTierResult', ], ], 'RestoreVolumeFromRecycleBin' => [ 'name' => 'RestoreVolumeFromRecycleBin', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreVolumeFromRecycleBinRequest', ], 'output' => [ 'shape' => 'RestoreVolumeFromRecycleBinResult', ], ], 'RevokeClientVpnIngress' => [ 'name' => 'RevokeClientVpnIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeClientVpnIngressRequest', ], 'output' => [ 'shape' => 'RevokeClientVpnIngressResult', ], ], 'RevokeSecurityGroupEgress' => [ 'name' => 'RevokeSecurityGroupEgress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeSecurityGroupEgressRequest', ], 'output' => [ 'shape' => 'RevokeSecurityGroupEgressResult', ], ], 'RevokeSecurityGroupIngress' => [ 'name' => 'RevokeSecurityGroupIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeSecurityGroupIngressRequest', ], 'output' => [ 'shape' => 'RevokeSecurityGroupIngressResult', ], ], 'RunInstances' => [ 'name' => 'RunInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RunInstancesRequest', ], 'output' => [ 'shape' => 'Reservation', ], ], 'RunScheduledInstances' => [ 'name' => 'RunScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RunScheduledInstancesRequest', ], 'output' => [ 'shape' => 'RunScheduledInstancesResult', ], ], 'SearchLocalGatewayRoutes' => [ 'name' => 'SearchLocalGatewayRoutes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchLocalGatewayRoutesRequest', ], 'output' => [ 'shape' => 'SearchLocalGatewayRoutesResult', ], ], 'SearchTransitGatewayMulticastGroups' => [ 'name' => 'SearchTransitGatewayMulticastGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchTransitGatewayMulticastGroupsRequest', ], 'output' => [ 'shape' => 'SearchTransitGatewayMulticastGroupsResult', ], ], 'SearchTransitGatewayRoutes' => [ 'name' => 'SearchTransitGatewayRoutes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchTransitGatewayRoutesRequest', ], 'output' => [ 'shape' => 'SearchTransitGatewayRoutesResult', ], ], 'SendDiagnosticInterrupt' => [ 'name' => 'SendDiagnosticInterrupt', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendDiagnosticInterruptRequest', ], ], 'StartDeclarativePoliciesReport' => [ 'name' => 'StartDeclarativePoliciesReport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartDeclarativePoliciesReportRequest', ], 'output' => [ 'shape' => 'StartDeclarativePoliciesReportResult', ], ], 'StartInstances' => [ 'name' => 'StartInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartInstancesRequest', ], 'output' => [ 'shape' => 'StartInstancesResult', ], ], 'StartNetworkInsightsAccessScopeAnalysis' => [ 'name' => 'StartNetworkInsightsAccessScopeAnalysis', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartNetworkInsightsAccessScopeAnalysisRequest', ], 'output' => [ 'shape' => 'StartNetworkInsightsAccessScopeAnalysisResult', ], ], 'StartNetworkInsightsAnalysis' => [ 'name' => 'StartNetworkInsightsAnalysis', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartNetworkInsightsAnalysisRequest', ], 'output' => [ 'shape' => 'StartNetworkInsightsAnalysisResult', ], ], 'StartVpcEndpointServicePrivateDnsVerification' => [ 'name' => 'StartVpcEndpointServicePrivateDnsVerification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartVpcEndpointServicePrivateDnsVerificationRequest', ], 'output' => [ 'shape' => 'StartVpcEndpointServicePrivateDnsVerificationResult', ], ], 'StopInstances' => [ 'name' => 'StopInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopInstancesRequest', ], 'output' => [ 'shape' => 'StopInstancesResult', ], ], 'TerminateClientVpnConnections' => [ 'name' => 'TerminateClientVpnConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TerminateClientVpnConnectionsRequest', ], 'output' => [ 'shape' => 'TerminateClientVpnConnectionsResult', ], ], 'TerminateInstances' => [ 'name' => 'TerminateInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TerminateInstancesRequest', ], 'output' => [ 'shape' => 'TerminateInstancesResult', ], ], 'UnassignIpv6Addresses' => [ 'name' => 'UnassignIpv6Addresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnassignIpv6AddressesRequest', ], 'output' => [ 'shape' => 'UnassignIpv6AddressesResult', ], ], 'UnassignPrivateIpAddresses' => [ 'name' => 'UnassignPrivateIpAddresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnassignPrivateIpAddressesRequest', ], ], 'UnassignPrivateNatGatewayAddress' => [ 'name' => 'UnassignPrivateNatGatewayAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnassignPrivateNatGatewayAddressRequest', ], 'output' => [ 'shape' => 'UnassignPrivateNatGatewayAddressResult', ], ], 'UnlockSnapshot' => [ 'name' => 'UnlockSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnlockSnapshotRequest', ], 'output' => [ 'shape' => 'UnlockSnapshotResult', ], ], 'UnmonitorInstances' => [ 'name' => 'UnmonitorInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnmonitorInstancesRequest', ], 'output' => [ 'shape' => 'UnmonitorInstancesResult', ], ], 'UpdateCapacityManagerMonitoredTagKeys' => [ 'name' => 'UpdateCapacityManagerMonitoredTagKeys', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateCapacityManagerMonitoredTagKeysRequest', ], 'output' => [ 'shape' => 'UpdateCapacityManagerMonitoredTagKeysResult', ], ], 'UpdateCapacityManagerOrganizationsAccess' => [ 'name' => 'UpdateCapacityManagerOrganizationsAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateCapacityManagerOrganizationsAccessRequest', ], 'output' => [ 'shape' => 'UpdateCapacityManagerOrganizationsAccessResult', ], ], 'UpdateInterruptibleCapacityReservationAllocation' => [ 'name' => 'UpdateInterruptibleCapacityReservationAllocation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateInterruptibleCapacityReservationAllocationRequest', ], 'output' => [ 'shape' => 'UpdateInterruptibleCapacityReservationAllocationResult', ], ], 'UpdateSecurityGroupRuleDescriptionsEgress' => [ 'name' => 'UpdateSecurityGroupRuleDescriptionsEgress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSecurityGroupRuleDescriptionsEgressRequest', ], 'output' => [ 'shape' => 'UpdateSecurityGroupRuleDescriptionsEgressResult', ], ], 'UpdateSecurityGroupRuleDescriptionsIngress' => [ 'name' => 'UpdateSecurityGroupRuleDescriptionsIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSecurityGroupRuleDescriptionsIngressRequest', ], 'output' => [ 'shape' => 'UpdateSecurityGroupRuleDescriptionsIngressResult', ], ], 'WithdrawByoipCidr' => [ 'name' => 'WithdrawByoipCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'WithdrawByoipCidrRequest', ], 'output' => [ 'shape' => 'WithdrawByoipCidrResult', ], ], ], 'shapes' => [ 'AcceleratorCount' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Integer', 'locationName' => 'max', ], ], ], 'AcceleratorCountRequest' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', ], 'Max' => [ 'shape' => 'Integer', ], ], ], 'AcceleratorManufacturer' => [ 'type' => 'string', 'enum' => [ 'amazon-web-services', 'amd', 'nvidia', 'xilinx', 'habana', ], ], 'AcceleratorManufacturerSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AcceleratorManufacturer', 'locationName' => 'item', ], ], 'AcceleratorName' => [ 'type' => 'string', 'enum' => [ 'a100', 'inferentia', 'k520', 'k80', 'm60', 'radeon-pro-v520', 't4', 'vu9p', 'v100', 'a10g', 'h100', 't4g', 'l40s', 'l4', 'gaudi-hl-205', 'inferentia2', 'trainium', 'trainium2', 'u30', ], ], 'AcceleratorNameSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AcceleratorName', 'locationName' => 'item', ], ], 'AcceleratorTotalMemoryMiB' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Integer', 'locationName' => 'max', ], ], ], 'AcceleratorTotalMemoryMiBRequest' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', ], 'Max' => [ 'shape' => 'Integer', ], ], ], 'AcceleratorType' => [ 'type' => 'string', 'enum' => [ 'gpu', 'fpga', 'inference', 'media', ], ], 'AcceleratorTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AcceleratorType', 'locationName' => 'item', ], ], 'AcceptAddressTransferRequest' => [ 'type' => 'structure', 'required' => [ 'Address', ], 'members' => [ 'Address' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AcceptAddressTransferResult' => [ 'type' => 'structure', 'members' => [ 'AddressTransfer' => [ 'shape' => 'AddressTransfer', 'locationName' => 'addressTransfer', ], ], ], 'AcceptCapacityReservationBillingOwnershipRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], ], ], 'AcceptCapacityReservationBillingOwnershipResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'AcceptReservedInstancesExchangeQuoteRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstanceIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ReservedInstanceIds' => [ 'shape' => 'ReservedInstanceIdSet', 'locationName' => 'ReservedInstanceId', ], 'TargetConfigurations' => [ 'shape' => 'TargetConfigurationRequestSet', 'locationName' => 'TargetConfiguration', ], ], ], 'AcceptReservedInstancesExchangeQuoteResult' => [ 'type' => 'structure', 'members' => [ 'ExchangeId' => [ 'shape' => 'String', 'locationName' => 'exchangeId', ], ], ], 'AcceptTransitGatewayClientVpnAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AcceptTransitGatewayClientVpnAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayClientVpnAttachment' => [ 'shape' => 'TransitGatewayClientVpnAttachment', 'locationName' => 'transitGatewayClientVpnAttachment', ], ], ], 'AcceptTransitGatewayMulticastDomainAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'SubnetIds' => [ 'shape' => 'ValueStringList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AcceptTransitGatewayMulticastDomainAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'TransitGatewayMulticastDomainAssociations', 'locationName' => 'associations', ], ], ], 'AcceptTransitGatewayPeeringAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AcceptTransitGatewayPeeringAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPeeringAttachment' => [ 'shape' => 'TransitGatewayPeeringAttachment', 'locationName' => 'transitGatewayPeeringAttachment', ], ], ], 'AcceptTransitGatewayVpcAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AcceptTransitGatewayVpcAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachment' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'transitGatewayVpcAttachment', ], ], ], 'AcceptVpcEndpointConnectionsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', 'VpcEndpointIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], 'VpcEndpointIds' => [ 'shape' => 'VpcEndpointIdList', 'locationName' => 'VpcEndpointId', ], ], ], 'AcceptVpcEndpointConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'AcceptVpcPeeringConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'VpcPeeringConnectionId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcPeeringConnectionId' => [ 'shape' => 'VpcPeeringConnectionIdWithResolver', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'AcceptVpcPeeringConnectionResult' => [ 'type' => 'structure', 'members' => [ 'VpcPeeringConnection' => [ 'shape' => 'VpcPeeringConnection', 'locationName' => 'vpcPeeringConnection', ], ], ], 'AccessScopeAnalysisFinding' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeAnalysisId' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisId', 'locationName' => 'networkInsightsAccessScopeAnalysisId', ], 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', 'locationName' => 'networkInsightsAccessScopeId', ], 'FindingId' => [ 'shape' => 'String', 'locationName' => 'findingId', ], 'FindingComponents' => [ 'shape' => 'PathComponentList', 'locationName' => 'findingComponentSet', ], ], ], 'AccessScopeAnalysisFindingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccessScopeAnalysisFinding', 'locationName' => 'item', ], ], 'AccessScopePath' => [ 'type' => 'structure', 'members' => [ 'Source' => [ 'shape' => 'PathStatement', 'locationName' => 'source', ], 'Destination' => [ 'shape' => 'PathStatement', 'locationName' => 'destination', ], 'ThroughResources' => [ 'shape' => 'ThroughResourcesStatementList', 'locationName' => 'throughResourceSet', ], ], ], 'AccessScopePathList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccessScopePath', 'locationName' => 'item', ], ], 'AccessScopePathListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccessScopePathRequest', 'locationName' => 'item', ], ], 'AccessScopePathRequest' => [ 'type' => 'structure', 'members' => [ 'Source' => [ 'shape' => 'PathStatementRequest', ], 'Destination' => [ 'shape' => 'PathStatementRequest', ], 'ThroughResources' => [ 'shape' => 'ThroughResourcesStatementRequestList', 'locationName' => 'ThroughResource', ], ], ], 'AccountAttribute' => [ 'type' => 'structure', 'members' => [ 'AttributeName' => [ 'shape' => 'String', 'locationName' => 'attributeName', ], 'AttributeValues' => [ 'shape' => 'AccountAttributeValueList', 'locationName' => 'attributeValueSet', ], ], ], 'AccountAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountAttribute', 'locationName' => 'item', ], ], 'AccountAttributeName' => [ 'type' => 'string', 'enum' => [ 'supported-platforms', 'default-vpc', ], ], 'AccountAttributeNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountAttributeName', 'locationName' => 'attributeName', ], ], 'AccountAttributeValue' => [ 'type' => 'structure', 'members' => [ 'AttributeValue' => [ 'shape' => 'String', 'locationName' => 'attributeValue', ], ], ], 'AccountAttributeValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountAttributeValue', 'locationName' => 'item', ], ], 'AccountID' => [ 'type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '[0-9]{12}', ], 'AccountVpcEncryptionControl' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'AccountVpcEncryptionControlState', 'locationName' => 'state', ], 'Mode' => [ 'shape' => 'AccountVpcEncryptionControlMode', 'locationName' => 'mode', ], 'Exclusions' => [ 'shape' => 'AccountVpcEncryptionControlExclusions', 'locationName' => 'exclusions', ], 'ManagedBy' => [ 'shape' => 'ManagedBy', 'locationName' => 'managedBy', ], 'LastUpdateTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastUpdateTimestamp', ], ], ], 'AccountVpcEncryptionControlExclusions' => [ 'type' => 'structure', 'members' => [ 'InternetGateway' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'internetGateway', ], 'EgressOnlyInternetGateway' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'egressOnlyInternetGateway', ], 'NatGateway' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'natGateway', ], 'VirtualPrivateGateway' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'virtualPrivateGateway', ], 'VpcPeering' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'vpcPeering', ], 'Lambda' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'lambda', ], 'VpcLattice' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'vpcLattice', ], 'ElasticFileSystem' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'elasticFileSystem', ], ], ], 'AccountVpcEncryptionControlMode' => [ 'type' => 'string', 'enum' => [ 'unmanaged', 'attempt-monitor', 'attempt-enforce', ], ], 'AccountVpcEncryptionControlState' => [ 'type' => 'string', 'enum' => [ 'default-state', 'transitions-in-progress', 'transitions-partially-successful', 'transitions-successful', 'transitions-failed', ], ], 'ActiveInstance' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'SpotInstanceRequestId' => [ 'shape' => 'String', 'locationName' => 'spotInstanceRequestId', ], 'InstanceHealth' => [ 'shape' => 'InstanceHealthStatus', 'locationName' => 'instanceHealth', ], ], ], 'ActiveInstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActiveInstance', 'locationName' => 'item', ], ], 'ActiveVpnTunnelStatus' => [ 'type' => 'structure', 'members' => [ 'Phase1EncryptionAlgorithm' => [ 'shape' => 'String', 'locationName' => 'phase1EncryptionAlgorithm', ], 'Phase2EncryptionAlgorithm' => [ 'shape' => 'String', 'locationName' => 'phase2EncryptionAlgorithm', ], 'Phase1IntegrityAlgorithm' => [ 'shape' => 'String', 'locationName' => 'phase1IntegrityAlgorithm', ], 'Phase2IntegrityAlgorithm' => [ 'shape' => 'String', 'locationName' => 'phase2IntegrityAlgorithm', ], 'Phase1DHGroup' => [ 'shape' => 'Integer', 'locationName' => 'phase1DHGroup', ], 'Phase2DHGroup' => [ 'shape' => 'Integer', 'locationName' => 'phase2DHGroup', ], 'IkeVersion' => [ 'shape' => 'String', 'locationName' => 'ikeVersion', ], 'ProvisioningStatus' => [ 'shape' => 'VpnTunnelProvisioningStatus', 'locationName' => 'provisioningStatus', ], 'ProvisioningStatusReason' => [ 'shape' => 'String', 'locationName' => 'provisioningStatusReason', ], ], ], 'ActivityStatus' => [ 'type' => 'string', 'enum' => [ 'error', 'pending_fulfillment', 'pending_termination', 'fulfilled', ], ], 'AddIpamOperatingRegion' => [ 'type' => 'structure', 'members' => [ 'RegionName' => [ 'shape' => 'String', ], ], ], 'AddIpamOperatingRegionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AddIpamOperatingRegion', ], 'max' => 50, 'min' => 0, ], 'AddIpamOrganizationalUnitExclusion' => [ 'type' => 'structure', 'members' => [ 'OrganizationsEntityPath' => [ 'shape' => 'String', ], ], ], 'AddIpamOrganizationalUnitExclusionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AddIpamOrganizationalUnitExclusion', ], 'max' => 10, 'min' => 0, ], 'AddPrefixListEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'AddPrefixListEntry', ], 'max' => 100, 'min' => 0, ], 'AddPrefixListEntry' => [ 'type' => 'structure', 'required' => [ 'Cidr', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], ], ], 'AddedPrincipal' => [ 'type' => 'structure', 'members' => [ 'PrincipalType' => [ 'shape' => 'PrincipalType', 'locationName' => 'principalType', ], 'Principal' => [ 'shape' => 'String', 'locationName' => 'principal', ], 'ServicePermissionId' => [ 'shape' => 'String', 'locationName' => 'servicePermissionId', ], 'ServiceId' => [ 'shape' => 'String', 'locationName' => 'serviceId', ], ], ], 'AddedPrincipalSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AddedPrincipal', 'locationName' => 'item', ], ], 'AdditionalDetail' => [ 'type' => 'structure', 'members' => [ 'AdditionalDetailType' => [ 'shape' => 'String', 'locationName' => 'additionalDetailType', ], 'Component' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'component', ], 'VpcEndpointService' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'vpcEndpointService', ], 'RuleOptions' => [ 'shape' => 'RuleOptionList', 'locationName' => 'ruleOptionSet', ], 'RuleGroupTypePairs' => [ 'shape' => 'RuleGroupTypePairList', 'locationName' => 'ruleGroupTypePairSet', ], 'RuleGroupRuleOptionsPairs' => [ 'shape' => 'RuleGroupRuleOptionsPairList', 'locationName' => 'ruleGroupRuleOptionsPairSet', ], 'ServiceName' => [ 'shape' => 'String', 'locationName' => 'serviceName', ], 'LoadBalancers' => [ 'shape' => 'AnalysisComponentList', 'locationName' => 'loadBalancerSet', ], ], ], 'AdditionalDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AdditionalDetail', 'locationName' => 'item', ], ], 'AdditionalFlexibleNetworkInterfaces' => [ 'type' => 'integer', ], 'Address' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'Domain' => [ 'shape' => 'DomainType', 'locationName' => 'domain', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'NetworkInterfaceOwnerId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceOwnerId', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'PublicIpv4Pool' => [ 'shape' => 'String', 'locationName' => 'publicIpv4Pool', ], 'NetworkBorderGroup' => [ 'shape' => 'String', 'locationName' => 'networkBorderGroup', ], 'CustomerOwnedIp' => [ 'shape' => 'String', 'locationName' => 'customerOwnedIp', ], 'CustomerOwnedIpv4Pool' => [ 'shape' => 'String', 'locationName' => 'customerOwnedIpv4Pool', ], 'CarrierIp' => [ 'shape' => 'String', 'locationName' => 'carrierIp', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'ServiceManaged' => [ 'shape' => 'ServiceManaged', 'locationName' => 'serviceManaged', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], ], ], 'AddressAttribute' => [ 'type' => 'structure', 'members' => [ 'PublicIp' => [ 'shape' => 'PublicIpAddress', 'locationName' => 'publicIp', ], 'AllocationId' => [ 'shape' => 'AllocationId', 'locationName' => 'allocationId', ], 'PtrRecord' => [ 'shape' => 'String', 'locationName' => 'ptrRecord', ], 'PtrRecordUpdate' => [ 'shape' => 'PtrUpdateStatus', 'locationName' => 'ptrRecordUpdate', ], ], ], 'AddressAttributeName' => [ 'type' => 'string', 'enum' => [ 'domain-name', ], ], 'AddressFamily' => [ 'type' => 'string', 'enum' => [ 'ipv4', 'ipv6', ], ], 'AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Address', 'locationName' => 'item', ], ], 'AddressMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'AddressSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AddressAttribute', 'locationName' => 'item', ], ], 'AddressTransfer' => [ 'type' => 'structure', 'members' => [ 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'TransferAccountId' => [ 'shape' => 'String', 'locationName' => 'transferAccountId', ], 'TransferOfferExpirationTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'transferOfferExpirationTimestamp', ], 'TransferOfferAcceptedTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'transferOfferAcceptedTimestamp', ], 'AddressTransferStatus' => [ 'shape' => 'AddressTransferStatus', 'locationName' => 'addressTransferStatus', ], ], ], 'AddressTransferList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AddressTransfer', 'locationName' => 'item', ], ], 'AddressTransferStatus' => [ 'type' => 'string', 'enum' => [ 'pending', 'disabled', 'accepted', ], ], 'AdvertiseByoipCidrRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'Asn' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NetworkBorderGroup' => [ 'shape' => 'String', ], ], ], 'AdvertiseByoipCidrResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidr' => [ 'shape' => 'ByoipCidr', 'locationName' => 'byoipCidr', ], ], ], 'Affinity' => [ 'type' => 'string', 'enum' => [ 'default', 'host', ], ], 'AllocateAddressRequest' => [ 'type' => 'structure', 'members' => [ 'Domain' => [ 'shape' => 'DomainType', ], 'Address' => [ 'shape' => 'PublicIpAddress', ], 'PublicIpv4Pool' => [ 'shape' => 'Ipv4PoolEc2Id', ], 'NetworkBorderGroup' => [ 'shape' => 'String', ], 'CustomerOwnedIpv4Pool' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'AllocateAddressResult' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'PublicIpv4Pool' => [ 'shape' => 'String', 'locationName' => 'publicIpv4Pool', ], 'NetworkBorderGroup' => [ 'shape' => 'String', 'locationName' => 'networkBorderGroup', ], 'Domain' => [ 'shape' => 'DomainType', 'locationName' => 'domain', ], 'CustomerOwnedIp' => [ 'shape' => 'String', 'locationName' => 'customerOwnedIp', ], 'CustomerOwnedIpv4Pool' => [ 'shape' => 'String', 'locationName' => 'customerOwnedIpv4Pool', ], 'CarrierIp' => [ 'shape' => 'String', 'locationName' => 'carrierIp', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], ], ], 'AllocateHostsRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceFamily' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'HostRecovery' => [ 'shape' => 'HostRecovery', ], 'OutpostArn' => [ 'shape' => 'String', ], 'HostMaintenance' => [ 'shape' => 'HostMaintenance', ], 'AssetIds' => [ 'shape' => 'AssetIdList', 'locationName' => 'AssetId', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'CpuOptions' => [ 'shape' => 'HostCpuOptionsRequest', ], 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'Quantity' => [ 'shape' => 'Integer', 'locationName' => 'quantity', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'availabilityZone', ], ], ], 'AllocateHostsResult' => [ 'type' => 'structure', 'members' => [ 'HostIds' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'hostIdSet', ], ], ], 'AllocateIpamPoolCidrRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Cidr' => [ 'shape' => 'String', ], 'NetmaskLength' => [ 'shape' => 'Integer', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'Description' => [ 'shape' => 'String', ], 'PreviewNextCidr' => [ 'shape' => 'Boolean', ], 'AllowedCidrs' => [ 'shape' => 'IpamPoolAllocationAllowedCidrs', 'locationName' => 'AllowedCidr', ], 'DisallowedCidrs' => [ 'shape' => 'IpamPoolAllocationDisallowedCidrs', 'locationName' => 'DisallowedCidr', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'AllocateIpamPoolCidrResult' => [ 'type' => 'structure', 'members' => [ 'IpamPoolAllocation' => [ 'shape' => 'IpamPoolAllocation', 'locationName' => 'ipamPoolAllocation', ], ], ], 'AllocationId' => [ 'type' => 'string', ], 'AllocationIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllocationId', 'locationName' => 'AllocationId', ], ], 'AllocationIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllocationId', 'locationName' => 'item', ], ], 'AllocationState' => [ 'type' => 'string', 'enum' => [ 'available', 'under-assessment', 'permanent-failure', 'released', 'released-permanent-failure', 'pending', 'configuring', ], ], 'AllocationStrategy' => [ 'type' => 'string', 'enum' => [ 'lowestPrice', 'diversified', 'capacityOptimized', 'capacityOptimizedPrioritized', 'priceCapacityOptimized', ], ], 'AllocationType' => [ 'type' => 'string', 'enum' => [ 'used', 'future', 'cancelling', ], ], 'AllowedImagesSettingsDisabledState' => [ 'type' => 'string', 'enum' => [ 'disabled', ], ], 'AllowedImagesSettingsEnabledState' => [ 'type' => 'string', 'enum' => [ 'enabled', 'audit-mode', ], ], 'AllowedInstanceType' => [ 'type' => 'string', 'max' => 30, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\.\\*\\-]+', ], 'AllowedInstanceTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedInstanceType', 'locationName' => 'item', ], 'max' => 400, 'min' => 0, ], 'AllowedPrincipal' => [ 'type' => 'structure', 'members' => [ 'PrincipalType' => [ 'shape' => 'PrincipalType', 'locationName' => 'principalType', ], 'Principal' => [ 'shape' => 'String', 'locationName' => 'principal', ], 'ServicePermissionId' => [ 'shape' => 'String', 'locationName' => 'servicePermissionId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'ServiceId' => [ 'shape' => 'String', 'locationName' => 'serviceId', ], ], ], 'AllowedPrincipalSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedPrincipal', 'locationName' => 'item', ], ], 'AllowsMultipleInstanceTypes' => [ 'type' => 'string', 'enum' => [ 'on', 'off', ], ], 'AlternatePathHint' => [ 'type' => 'structure', 'members' => [ 'ComponentId' => [ 'shape' => 'String', 'locationName' => 'componentId', ], 'ComponentArn' => [ 'shape' => 'String', 'locationName' => 'componentArn', ], ], ], 'AlternatePathHintList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AlternatePathHint', 'locationName' => 'item', ], ], 'AmdSevSnp' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'AmdSevSnpSpecification' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'AnalysisAclRule' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'Egress' => [ 'shape' => 'Boolean', 'locationName' => 'egress', ], 'PortRange' => [ 'shape' => 'PortRange', 'locationName' => 'portRange', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'RuleAction' => [ 'shape' => 'String', 'locationName' => 'ruleAction', ], 'RuleNumber' => [ 'shape' => 'Integer', 'locationName' => 'ruleNumber', ], ], ], 'AnalysisComponent' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', 'locationName' => 'id', ], 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'AnalysisComponentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'item', ], ], 'AnalysisLoadBalancerListener' => [ 'type' => 'structure', 'members' => [ 'LoadBalancerPort' => [ 'shape' => 'Port', 'locationName' => 'loadBalancerPort', ], 'InstancePort' => [ 'shape' => 'Port', 'locationName' => 'instancePort', ], ], ], 'AnalysisLoadBalancerTarget' => [ 'type' => 'structure', 'members' => [ 'Address' => [ 'shape' => 'IpAddress', 'locationName' => 'address', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'Instance' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'instance', ], 'Port' => [ 'shape' => 'Port', 'locationName' => 'port', ], ], ], 'AnalysisPacketHeader' => [ 'type' => 'structure', 'members' => [ 'DestinationAddresses' => [ 'shape' => 'IpAddressList', 'locationName' => 'destinationAddressSet', ], 'DestinationPortRanges' => [ 'shape' => 'PortRangeList', 'locationName' => 'destinationPortRangeSet', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'SourceAddresses' => [ 'shape' => 'IpAddressList', 'locationName' => 'sourceAddressSet', ], 'SourcePortRanges' => [ 'shape' => 'PortRangeList', 'locationName' => 'sourcePortRangeSet', ], ], ], 'AnalysisRouteTableRoute' => [ 'type' => 'structure', 'members' => [ 'DestinationCidr' => [ 'shape' => 'String', 'locationName' => 'destinationCidr', ], 'DestinationPrefixListId' => [ 'shape' => 'String', 'locationName' => 'destinationPrefixListId', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'String', 'locationName' => 'egressOnlyInternetGatewayId', ], 'GatewayId' => [ 'shape' => 'String', 'locationName' => 'gatewayId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'Origin' => [ 'shape' => 'String', 'locationName' => 'origin', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'CarrierGatewayId' => [ 'shape' => 'String', 'locationName' => 'carrierGatewayId', ], 'CoreNetworkArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'coreNetworkArn', ], 'LocalGatewayId' => [ 'shape' => 'String', 'locationName' => 'localGatewayId', ], ], ], 'AnalysisSecurityGroupRule' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'Direction' => [ 'shape' => 'String', 'locationName' => 'direction', ], 'SecurityGroupId' => [ 'shape' => 'String', 'locationName' => 'securityGroupId', ], 'PortRange' => [ 'shape' => 'PortRange', 'locationName' => 'portRange', ], 'PrefixListId' => [ 'shape' => 'String', 'locationName' => 'prefixListId', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], ], ], 'AnalysisStatus' => [ 'type' => 'string', 'enum' => [ 'running', 'succeeded', 'failed', ], ], 'ApplianceModeSupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'ApplyCancellationCharges' => [ 'type' => 'string', 'enum' => [ 'commitment-wind-down', ], ], 'ApplySecurityGroupsToClientVpnTargetNetworkRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'VpcId', 'SecurityGroupIds', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'SecurityGroupIds' => [ 'shape' => 'ClientVpnSecurityGroupIdSet', 'locationName' => 'SecurityGroupId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ApplySecurityGroupsToClientVpnTargetNetworkResult' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupIds' => [ 'shape' => 'ClientVpnSecurityGroupIdSet', 'locationName' => 'securityGroupIds', ], ], ], 'ArchitectureType' => [ 'type' => 'string', 'enum' => [ 'i386', 'x86_64', 'arm64', 'x86_64_mac', 'arm64_mac', ], ], 'ArchitectureTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ArchitectureType', 'locationName' => 'item', ], ], 'ArchitectureTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ArchitectureType', 'locationName' => 'item', ], 'max' => 3, 'min' => 0, ], 'ArchitectureValues' => [ 'type' => 'string', 'enum' => [ 'i386', 'x86_64', 'arm64', 'x86_64_mac', 'arm64_mac', ], ], 'ArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceArn', 'locationName' => 'item', ], ], 'AsPath' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'AsnAssociation' => [ 'type' => 'structure', 'members' => [ 'Asn' => [ 'shape' => 'String', 'locationName' => 'asn', ], 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'State' => [ 'shape' => 'AsnAssociationState', 'locationName' => 'state', ], ], ], 'AsnAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AsnAssociation', 'locationName' => 'item', ], ], 'AsnAssociationState' => [ 'type' => 'string', 'enum' => [ 'disassociated', 'failed-disassociation', 'failed-association', 'pending-disassociation', 'pending-association', 'associated', ], ], 'AsnAuthorizationContext' => [ 'type' => 'structure', 'required' => [ 'Message', 'Signature', ], 'members' => [ 'Message' => [ 'shape' => 'String', ], 'Signature' => [ 'shape' => 'String', ], ], ], 'AsnState' => [ 'type' => 'string', 'enum' => [ 'deprovisioned', 'failed-deprovision', 'failed-provision', 'pending-deprovision', 'pending-provision', 'provisioned', ], ], 'AssetId' => [ 'type' => 'string', ], 'AssetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssetId', ], ], 'AssignIpv6AddressesRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'Ipv6PrefixCount' => [ 'shape' => 'Integer', ], 'Ipv6Prefixes' => [ 'shape' => 'IpPrefixList', 'locationName' => 'Ipv6Prefix', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'Ipv6Addresses' => [ 'shape' => 'Ipv6AddressList', 'locationName' => 'ipv6Addresses', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', 'locationName' => 'ipv6AddressCount', ], ], ], 'AssignIpv6AddressesResult' => [ 'type' => 'structure', 'members' => [ 'AssignedIpv6Addresses' => [ 'shape' => 'Ipv6AddressList', 'locationName' => 'assignedIpv6Addresses', ], 'AssignedIpv6Prefixes' => [ 'shape' => 'IpPrefixList', 'locationName' => 'assignedIpv6PrefixSet', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], ], ], 'AssignPrivateIpAddressesRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'Ipv4Prefixes' => [ 'shape' => 'IpPrefixList', 'locationName' => 'Ipv4Prefix', ], 'Ipv4PrefixCount' => [ 'shape' => 'Integer', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressStringList', 'locationName' => 'privateIpAddress', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'secondaryPrivateIpAddressCount', ], 'AllowReassignment' => [ 'shape' => 'Boolean', 'locationName' => 'allowReassignment', ], ], ], 'AssignPrivateIpAddressesResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'AssignedPrivateIpAddresses' => [ 'shape' => 'AssignedPrivateIpAddressList', 'locationName' => 'assignedPrivateIpAddressesSet', ], 'AssignedIpv4Prefixes' => [ 'shape' => 'Ipv4PrefixesList', 'locationName' => 'assignedIpv4PrefixSet', ], ], ], 'AssignPrivateNatGatewayAddressRequest' => [ 'type' => 'structure', 'required' => [ 'NatGatewayId', ], 'members' => [ 'NatGatewayId' => [ 'shape' => 'NatGatewayId', ], 'PrivateIpAddresses' => [ 'shape' => 'IpList', 'locationName' => 'PrivateIpAddress', ], 'PrivateIpAddressCount' => [ 'shape' => 'PrivateIpAddressCount', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssignPrivateNatGatewayAddressResult' => [ 'type' => 'structure', 'members' => [ 'NatGatewayId' => [ 'shape' => 'NatGatewayId', 'locationName' => 'natGatewayId', ], 'NatGatewayAddresses' => [ 'shape' => 'NatGatewayAddressList', 'locationName' => 'natGatewayAddressSet', ], ], ], 'AssignedPrivateIpAddress' => [ 'type' => 'structure', 'members' => [ 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'AssignedPrivateIpAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssignedPrivateIpAddress', 'locationName' => 'item', ], ], 'AssociateAddressRequest' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'AllocationId', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'PublicIp' => [ 'shape' => 'EipAllocationPublicIp', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'AllowReassociation' => [ 'shape' => 'Boolean', 'locationName' => 'allowReassociation', ], ], ], 'AssociateAddressResult' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], ], ], 'AssociateCapacityReservationBillingOwnerRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', 'UnusedReservationBillingOwnerId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'UnusedReservationBillingOwnerId' => [ 'shape' => 'AccountID', ], ], ], 'AssociateCapacityReservationBillingOwnerResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'AssociateClientVpnTargetNetworkRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], ], ], 'AssociateClientVpnTargetNetworkResult' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'Status' => [ 'shape' => 'AssociationStatus', 'locationName' => 'status', ], ], ], 'AssociateDhcpOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'DhcpOptionsId', 'VpcId', ], 'members' => [ 'DhcpOptionsId' => [ 'shape' => 'DefaultingDhcpOptionsId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'AssociateEnclaveCertificateIamRoleRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', 'RoleArn', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'CertificateId', ], 'RoleArn' => [ 'shape' => 'RoleId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssociateEnclaveCertificateIamRoleResult' => [ 'type' => 'structure', 'members' => [ 'CertificateS3BucketName' => [ 'shape' => 'String', 'locationName' => 'certificateS3BucketName', ], 'CertificateS3ObjectKey' => [ 'shape' => 'String', 'locationName' => 'certificateS3ObjectKey', ], 'EncryptionKmsKeyId' => [ 'shape' => 'String', 'locationName' => 'encryptionKmsKeyId', ], ], ], 'AssociateIamInstanceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'IamInstanceProfile', 'InstanceId', ], 'members' => [ 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], ], ], 'AssociateIamInstanceProfileResult' => [ 'type' => 'structure', 'members' => [ 'IamInstanceProfileAssociation' => [ 'shape' => 'IamInstanceProfileAssociation', 'locationName' => 'iamInstanceProfileAssociation', ], ], ], 'AssociateInstanceEventWindowRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceEventWindowId', 'AssociationTarget', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceEventWindowId' => [ 'shape' => 'InstanceEventWindowId', ], 'AssociationTarget' => [ 'shape' => 'InstanceEventWindowAssociationRequest', ], ], ], 'AssociateInstanceEventWindowResult' => [ 'type' => 'structure', 'members' => [ 'InstanceEventWindow' => [ 'shape' => 'InstanceEventWindow', 'locationName' => 'instanceEventWindow', ], ], ], 'AssociateIpamByoasnRequest' => [ 'type' => 'structure', 'required' => [ 'Asn', 'Cidr', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Asn' => [ 'shape' => 'String', ], 'Cidr' => [ 'shape' => 'String', ], ], ], 'AssociateIpamByoasnResult' => [ 'type' => 'structure', 'members' => [ 'AsnAssociation' => [ 'shape' => 'AsnAssociation', 'locationName' => 'asnAssociation', ], ], ], 'AssociateIpamResourceDiscoveryRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', 'IpamResourceDiscoveryId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamId' => [ 'shape' => 'IpamId', ], 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'AssociateIpamResourceDiscoveryResult' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscoveryAssociation' => [ 'shape' => 'IpamResourceDiscoveryAssociation', 'locationName' => 'ipamResourceDiscoveryAssociation', ], ], ], 'AssociateNatGatewayAddressRequest' => [ 'type' => 'structure', 'required' => [ 'NatGatewayId', 'AllocationIds', ], 'members' => [ 'NatGatewayId' => [ 'shape' => 'NatGatewayId', ], 'AllocationIds' => [ 'shape' => 'AllocationIdList', 'locationName' => 'AllocationId', ], 'PrivateIpAddresses' => [ 'shape' => 'IpList', 'locationName' => 'PrivateIpAddress', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], ], ], 'AssociateNatGatewayAddressResult' => [ 'type' => 'structure', 'members' => [ 'NatGatewayId' => [ 'shape' => 'NatGatewayId', 'locationName' => 'natGatewayId', ], 'NatGatewayAddresses' => [ 'shape' => 'NatGatewayAddressList', 'locationName' => 'natGatewayAddressSet', ], ], ], 'AssociateRouteServerRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', 'VpcId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssociateRouteServerResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerAssociation' => [ 'shape' => 'RouteServerAssociation', 'locationName' => 'routeServerAssociation', ], ], ], 'AssociateRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'RouteTableId', ], 'members' => [ 'GatewayId' => [ 'shape' => 'RouteGatewayId', ], 'PublicIpv4Pool' => [ 'shape' => 'Ipv4PoolEc2Id', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', 'locationName' => 'routeTableId', ], ], ], 'AssociateRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'AssociationState' => [ 'shape' => 'RouteTableAssociationState', 'locationName' => 'associationState', ], ], ], 'AssociateSecurityGroupVpcRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', 'VpcId', ], 'members' => [ 'GroupId' => [ 'shape' => 'SecurityGroupId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssociateSecurityGroupVpcResult' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'SecurityGroupVpcAssociationState', 'locationName' => 'state', ], ], ], 'AssociateSubnetCidrBlockRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', ], 'members' => [ 'Ipv6IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Ipv6NetmaskLength' => [ 'shape' => 'NetmaskLength', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], ], ], 'AssociateSubnetCidrBlockResult' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrBlockAssociation' => [ 'shape' => 'SubnetIpv6CidrBlockAssociation', 'locationName' => 'ipv6CidrBlockAssociation', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], ], ], 'AssociateTransitGatewayMulticastDomainRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMulticastDomainId', 'TransitGatewayAttachmentId', 'SubnetIds', ], 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'SubnetIds' => [ 'shape' => 'TransitGatewaySubnetIdList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssociateTransitGatewayMulticastDomainResult' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'TransitGatewayMulticastDomainAssociations', 'locationName' => 'associations', ], ], ], 'AssociateTransitGatewayPolicyTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayPolicyTableId', 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayPolicyTableId' => [ 'shape' => 'TransitGatewayPolicyTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssociateTransitGatewayPolicyTableResult' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'TransitGatewayPolicyTableAssociation', 'locationName' => 'association', ], ], ], 'AssociateTransitGatewayRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssociateTransitGatewayRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'TransitGatewayAssociation', 'locationName' => 'association', ], ], ], 'AssociateTrunkInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'BranchInterfaceId', 'TrunkInterfaceId', ], 'members' => [ 'BranchInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'TrunkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'VlanId' => [ 'shape' => 'Integer', ], 'GreKey' => [ 'shape' => 'Integer', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssociateTrunkInterfaceResult' => [ 'type' => 'structure', 'members' => [ 'InterfaceAssociation' => [ 'shape' => 'TrunkInterfaceAssociation', 'locationName' => 'interfaceAssociation', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'AssociateVpcCidrBlockRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'CidrBlock' => [ 'shape' => 'String', ], 'Ipv6CidrBlockNetworkBorderGroup' => [ 'shape' => 'String', ], 'Ipv6Pool' => [ 'shape' => 'Ipv6PoolEc2Id', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', ], 'Ipv4IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Ipv4NetmaskLength' => [ 'shape' => 'NetmaskLength', ], 'Ipv6IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Ipv6NetmaskLength' => [ 'shape' => 'NetmaskLength', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'AmazonProvidedIpv6CidrBlock' => [ 'shape' => 'Boolean', 'locationName' => 'amazonProvidedIpv6CidrBlock', ], ], ], 'AssociateVpcCidrBlockResult' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrBlockAssociation' => [ 'shape' => 'VpcIpv6CidrBlockAssociation', 'locationName' => 'ipv6CidrBlockAssociation', ], 'CidrBlockAssociation' => [ 'shape' => 'VpcCidrBlockAssociation', 'locationName' => 'cidrBlockAssociation', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'AssociatedNetworkType' => [ 'type' => 'string', 'enum' => [ 'vpc', ], ], 'AssociatedRole' => [ 'type' => 'structure', 'members' => [ 'AssociatedRoleArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'associatedRoleArn', ], 'CertificateS3BucketName' => [ 'shape' => 'String', 'locationName' => 'certificateS3BucketName', ], 'CertificateS3ObjectKey' => [ 'shape' => 'String', 'locationName' => 'certificateS3ObjectKey', ], 'EncryptionKmsKeyId' => [ 'shape' => 'String', 'locationName' => 'encryptionKmsKeyId', ], ], ], 'AssociatedRolesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssociatedRole', 'locationName' => 'item', ], ], 'AssociatedSubnetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', 'locationName' => 'item', ], ], 'AssociatedTargetNetwork' => [ 'type' => 'structure', 'members' => [ 'NetworkId' => [ 'shape' => 'String', 'locationName' => 'networkId', ], 'NetworkType' => [ 'shape' => 'AssociatedNetworkType', 'locationName' => 'networkType', ], ], ], 'AssociatedTargetNetworkSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssociatedTargetNetwork', 'locationName' => 'item', ], ], 'AssociationIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IamInstanceProfileAssociationId', 'locationName' => 'AssociationId', ], ], 'AssociationStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'AssociationStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'AssociationStatusCode' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'association-failed', 'disassociating', 'disassociated', ], ], 'AthenaIntegration' => [ 'type' => 'structure', 'required' => [ 'IntegrationResultS3DestinationArn', 'PartitionLoadFrequency', ], 'members' => [ 'IntegrationResultS3DestinationArn' => [ 'shape' => 'String', ], 'PartitionLoadFrequency' => [ 'shape' => 'PartitionLoadFrequency', ], 'PartitionStartDate' => [ 'shape' => 'MillisecondDateTime', ], 'PartitionEndDate' => [ 'shape' => 'MillisecondDateTime', ], ], ], 'AthenaIntegrationsSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AthenaIntegration', 'locationName' => 'item', ], 'max' => 10, 'min' => 1, ], 'AttachClassicLinkVpcRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'VpcId', 'Groups', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'Groups' => [ 'shape' => 'GroupIdStringList', 'locationName' => 'SecurityGroupId', ], ], ], 'AttachClassicLinkVpcResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'AttachImageWatermarkRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', 'WatermarkName', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'WatermarkName' => [ 'shape' => 'ImageWatermarkNameRequest', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AttachImageWatermarkResult' => [ 'type' => 'structure', 'members' => [ 'WatermarkKey' => [ 'shape' => 'String', 'locationName' => 'watermarkKey', ], ], ], 'AttachInternetGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'InternetGatewayId', 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InternetGatewayId' => [ 'shape' => 'InternetGatewayId', 'locationName' => 'internetGatewayId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], ], ], 'AttachNetworkInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', 'InstanceId', 'DeviceIndex', ], 'members' => [ 'NetworkCardIndex' => [ 'shape' => 'Integer', ], 'EnaSrdSpecification' => [ 'shape' => 'EnaSrdSpecification', ], 'EnaQueueCount' => [ 'shape' => 'Integer', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], ], ], 'AttachNetworkInterfaceResult' => [ 'type' => 'structure', 'members' => [ 'AttachmentId' => [ 'shape' => 'String', 'locationName' => 'attachmentId', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'networkCardIndex', ], ], ], 'AttachVerifiedAccessTrustProviderRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessInstanceId', 'VerifiedAccessTrustProviderId', ], 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'VerifiedAccessTrustProviderId' => [ 'shape' => 'VerifiedAccessTrustProviderId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AttachVerifiedAccessTrustProviderResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProvider' => [ 'shape' => 'VerifiedAccessTrustProvider', 'locationName' => 'verifiedAccessTrustProvider', ], 'VerifiedAccessInstance' => [ 'shape' => 'VerifiedAccessInstance', 'locationName' => 'verifiedAccessInstance', ], ], ], 'AttachVolumeRequest' => [ 'type' => 'structure', 'required' => [ 'Device', 'InstanceId', 'VolumeId', ], 'members' => [ 'Device' => [ 'shape' => 'String', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'VolumeId' => [ 'shape' => 'VolumeId', ], 'EbsCardIndex' => [ 'shape' => 'BoxedInteger', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'AttachVpnGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', 'VpnGatewayId', ], 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], 'VpnGatewayId' => [ 'shape' => 'VpnGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'AttachVpnGatewayResult' => [ 'type' => 'structure', 'members' => [ 'VpcAttachment' => [ 'shape' => 'VpcAttachment', 'locationName' => 'attachment', ], ], ], 'AttachmentEnaSrdSpecification' => [ 'type' => 'structure', 'members' => [ 'EnaSrdEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'enaSrdEnabled', ], 'EnaSrdUdpSpecification' => [ 'shape' => 'AttachmentEnaSrdUdpSpecification', 'locationName' => 'enaSrdUdpSpecification', ], ], ], 'AttachmentEnaSrdUdpSpecification' => [ 'type' => 'structure', 'members' => [ 'EnaSrdUdpEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'enaSrdUdpEnabled', ], ], ], 'AttachmentLimitType' => [ 'type' => 'string', 'enum' => [ 'shared', 'dedicated', ], ], 'AttachmentStatus' => [ 'type' => 'string', 'enum' => [ 'attaching', 'attached', 'detaching', 'detached', ], ], 'AttributeBooleanValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Boolean', 'locationName' => 'value', ], ], ], 'AttributeSummary' => [ 'type' => 'structure', 'members' => [ 'AttributeName' => [ 'shape' => 'String', 'locationName' => 'attributeName', ], 'MostFrequentValue' => [ 'shape' => 'String', 'locationName' => 'mostFrequentValue', ], 'NumberOfMatchedAccounts' => [ 'shape' => 'Integer', 'locationName' => 'numberOfMatchedAccounts', ], 'NumberOfUnmatchedAccounts' => [ 'shape' => 'Integer', 'locationName' => 'numberOfUnmatchedAccounts', ], 'RegionalSummaries' => [ 'shape' => 'RegionalSummaryList', 'locationName' => 'regionalSummarySet', ], ], ], 'AttributeSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeSummary', 'locationName' => 'item', ], ], 'AttributeValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'AuthorizationRule' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'AccessAll' => [ 'shape' => 'Boolean', 'locationName' => 'accessAll', ], 'DestinationCidr' => [ 'shape' => 'String', 'locationName' => 'destinationCidr', ], 'Status' => [ 'shape' => 'ClientVpnAuthorizationRuleStatus', 'locationName' => 'status', ], ], ], 'AuthorizationRuleSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AuthorizationRule', 'locationName' => 'item', ], ], 'AuthorizeClientVpnIngressRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'TargetNetworkCidr', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'TargetNetworkCidr' => [ 'shape' => 'String', ], 'AccessGroupId' => [ 'shape' => 'String', ], 'AuthorizeAllGroups' => [ 'shape' => 'Boolean', ], 'Description' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AuthorizeClientVpnIngressResult' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ClientVpnAuthorizationRuleStatus', 'locationName' => 'status', ], ], ], 'AuthorizeSecurityGroupEgressRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', ], 'members' => [ 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'groupId', ], 'SourceSecurityGroupName' => [ 'shape' => 'String', 'locationName' => 'sourceSecurityGroupName', ], 'SourceSecurityGroupOwnerId' => [ 'shape' => 'String', 'locationName' => 'sourceSecurityGroupOwnerId', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'CidrIp' => [ 'shape' => 'String', 'locationName' => 'cidrIp', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', 'locationName' => 'ipPermissions', ], ], ], 'AuthorizeSecurityGroupEgressResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'SecurityGroupRules' => [ 'shape' => 'SecurityGroupRuleList', 'locationName' => 'securityGroupRuleSet', ], ], ], 'AuthorizeSecurityGroupIngressRequest' => [ 'type' => 'structure', 'members' => [ 'CidrIp' => [ 'shape' => 'String', ], 'FromPort' => [ 'shape' => 'Integer', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', ], 'GroupName' => [ 'shape' => 'SecurityGroupName', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', ], 'IpProtocol' => [ 'shape' => 'String', ], 'SourceSecurityGroupName' => [ 'shape' => 'String', ], 'SourceSecurityGroupOwnerId' => [ 'shape' => 'String', ], 'ToPort' => [ 'shape' => 'Integer', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'AuthorizeSecurityGroupIngressResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'SecurityGroupRules' => [ 'shape' => 'SecurityGroupRuleList', 'locationName' => 'securityGroupRuleSet', ], ], ], 'AutoAcceptSharedAssociationsValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'AutoAcceptSharedAttachmentsValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'AutoPlacement' => [ 'type' => 'string', 'enum' => [ 'on', 'off', ], ], 'AutoProvisionZonesState' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'AutoRecoveryFlag' => [ 'type' => 'boolean', ], 'AutoScalingIpsState' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'AvailabilityMode' => [ 'type' => 'string', 'enum' => [ 'zonal', 'regional', ], ], 'AvailabilityZone' => [ 'type' => 'structure', 'members' => [ 'OptInStatus' => [ 'shape' => 'AvailabilityZoneOptInStatus', 'locationName' => 'optInStatus', ], 'Messages' => [ 'shape' => 'AvailabilityZoneMessageList', 'locationName' => 'messageSet', ], 'RegionName' => [ 'shape' => 'String', 'locationName' => 'regionName', ], 'ZoneName' => [ 'shape' => 'String', 'locationName' => 'zoneName', ], 'ZoneId' => [ 'shape' => 'String', 'locationName' => 'zoneId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'NetworkBorderGroup' => [ 'shape' => 'String', 'locationName' => 'networkBorderGroup', ], 'ZoneType' => [ 'shape' => 'String', 'locationName' => 'zoneType', ], 'ParentZoneName' => [ 'shape' => 'String', 'locationName' => 'parentZoneName', ], 'ParentZoneId' => [ 'shape' => 'String', 'locationName' => 'parentZoneId', ], 'GroupLongName' => [ 'shape' => 'String', 'locationName' => 'groupLongName', ], 'Geography' => [ 'shape' => 'AvailabilityZoneGeographyList', 'locationName' => 'geographySet', ], 'SubGeography' => [ 'shape' => 'AvailabilityZoneSubGeographyList', 'locationName' => 'subGeographySet', ], 'State' => [ 'shape' => 'AvailabilityZoneState', 'locationName' => 'zoneState', ], ], ], 'AvailabilityZoneAddress' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'AllocationIds' => [ 'shape' => 'AllocationIdList', 'locationName' => 'AllocationId', ], ], ], 'AvailabilityZoneAddresses' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZoneAddress', 'locationName' => 'AvailabilityZoneAddress', ], ], 'AvailabilityZoneGeography' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'AvailabilityZoneGeographyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZoneGeography', 'locationName' => 'item', ], ], 'AvailabilityZoneId' => [ 'type' => 'string', ], 'AvailabilityZoneIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'AvailabilityZoneId', ], ], 'AvailabilityZoneList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZone', 'locationName' => 'item', ], ], 'AvailabilityZoneMessage' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'AvailabilityZoneMessageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZoneMessage', 'locationName' => 'item', ], ], 'AvailabilityZoneName' => [ 'type' => 'string', ], 'AvailabilityZoneOptInStatus' => [ 'type' => 'string', 'enum' => [ 'opt-in-not-required', 'opted-in', 'not-opted-in', ], ], 'AvailabilityZoneState' => [ 'type' => 'string', 'enum' => [ 'available', 'information', 'impaired', 'unavailable', 'constrained', ], ], 'AvailabilityZoneStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'AvailabilityZone', ], ], 'AvailabilityZoneSubGeography' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'AvailabilityZoneSubGeographyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZoneSubGeography', 'locationName' => 'item', ], ], 'AvailableCapacity' => [ 'type' => 'structure', 'members' => [ 'AvailableInstanceCapacity' => [ 'shape' => 'AvailableInstanceCapacityList', 'locationName' => 'availableInstanceCapacity', ], 'AvailableVCpus' => [ 'shape' => 'Integer', 'locationName' => 'availableVCpus', ], ], ], 'AvailableInstanceCapacityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceCapacity', 'locationName' => 'item', ], ], 'BandwidthWeightingType' => [ 'type' => 'string', 'enum' => [ 'default', 'vpc-1', 'ebs-1', ], ], 'BandwidthWeightingTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BandwidthWeightingType', 'locationName' => 'item', ], ], 'BareMetal' => [ 'type' => 'string', 'enum' => [ 'included', 'required', 'excluded', ], ], 'BareMetalFlag' => [ 'type' => 'boolean', ], 'BaselineBandwidthInGbps' => [ 'type' => 'double', ], 'BaselineBandwidthInMbps' => [ 'type' => 'integer', ], 'BaselineEbsBandwidthMbps' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Integer', 'locationName' => 'max', ], ], ], 'BaselineEbsBandwidthMbpsRequest' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', ], 'Max' => [ 'shape' => 'Integer', ], ], ], 'BaselineIops' => [ 'type' => 'integer', ], 'BaselinePerformanceFactors' => [ 'type' => 'structure', 'members' => [ 'Cpu' => [ 'shape' => 'CpuPerformanceFactor', 'locationName' => 'cpu', ], ], ], 'BaselinePerformanceFactorsRequest' => [ 'type' => 'structure', 'members' => [ 'Cpu' => [ 'shape' => 'CpuPerformanceFactorRequest', ], ], ], 'BaselineThroughputInMBps' => [ 'type' => 'double', ], 'BatchState' => [ 'type' => 'string', 'enum' => [ 'submitted', 'active', 'cancelled', 'failed', 'cancelled_running', 'cancelled_terminating', 'modifying', ], ], 'BgpStatus' => [ 'type' => 'string', 'enum' => [ 'up', 'down', ], ], 'BillingProductList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'Blob' => [ 'type' => 'blob', ], 'BlobAttributeValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Blob', 'locationName' => 'value', ], ], ], 'BlockDeviceMapping' => [ 'type' => 'structure', 'members' => [ 'Ebs' => [ 'shape' => 'EbsBlockDevice', 'locationName' => 'ebs', ], 'NoDevice' => [ 'shape' => 'String', 'locationName' => 'noDevice', ], 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'VirtualName' => [ 'shape' => 'String', 'locationName' => 'virtualName', ], ], ], 'BlockDeviceMappingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BlockDeviceMapping', 'locationName' => 'item', ], ], 'BlockDeviceMappingRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BlockDeviceMapping', 'locationName' => 'BlockDeviceMapping', ], ], 'BlockDeviceMappingResponse' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'VirtualName' => [ 'shape' => 'String', 'locationName' => 'virtualName', ], 'Ebs' => [ 'shape' => 'EbsBlockDeviceResponse', 'locationName' => 'ebs', ], 'NoDevice' => [ 'shape' => 'String', 'locationName' => 'noDevice', ], ], ], 'BlockDeviceMappingResponseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BlockDeviceMappingResponse', 'locationName' => 'item', ], ], 'BlockPublicAccessMode' => [ 'type' => 'string', 'enum' => [ 'off', 'block-bidirectional', 'block-ingress', ], ], 'BlockPublicAccessStates' => [ 'type' => 'structure', 'members' => [ 'InternetGatewayBlockMode' => [ 'shape' => 'BlockPublicAccessMode', 'locationName' => 'internetGatewayBlockMode', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BootModeType' => [ 'type' => 'string', 'enum' => [ 'legacy-bios', 'uefi', ], ], 'BootModeTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BootModeType', 'locationName' => 'item', ], ], 'BootModeValues' => [ 'type' => 'string', 'enum' => [ 'legacy-bios', 'uefi', 'uefi-preferred', ], ], 'BoxedBoolean' => [ 'type' => 'boolean', ], 'BoxedDouble' => [ 'type' => 'double', ], 'BoxedInteger' => [ 'type' => 'integer', ], 'BoxedLong' => [ 'type' => 'long', ], 'BundleId' => [ 'type' => 'string', ], 'BundleIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BundleId', 'locationName' => 'BundleId', ], ], 'BundleInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'Storage', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'Storage' => [ 'shape' => 'Storage', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'BundleInstanceResult' => [ 'type' => 'structure', 'members' => [ 'BundleTask' => [ 'shape' => 'BundleTask', 'locationName' => 'bundleInstanceTask', ], ], ], 'BundleTask' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'BundleId' => [ 'shape' => 'String', 'locationName' => 'bundleId', ], 'State' => [ 'shape' => 'BundleTaskState', 'locationName' => 'state', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], 'UpdateTime' => [ 'shape' => 'DateTime', 'locationName' => 'updateTime', ], 'Storage' => [ 'shape' => 'Storage', 'locationName' => 'storage', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'BundleTaskError' => [ 'shape' => 'BundleTaskError', 'locationName' => 'error', ], ], ], 'BundleTaskError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'BundleTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BundleTask', 'locationName' => 'item', ], ], 'BundleTaskState' => [ 'type' => 'string', 'enum' => [ 'pending', 'waiting-for-shutdown', 'bundling', 'storing', 'cancelling', 'complete', 'failed', ], ], 'BurstablePerformance' => [ 'type' => 'string', 'enum' => [ 'included', 'required', 'excluded', ], ], 'BurstablePerformanceFlag' => [ 'type' => 'boolean', ], 'Byoasn' => [ 'type' => 'structure', 'members' => [ 'Asn' => [ 'shape' => 'String', 'locationName' => 'asn', ], 'IpamId' => [ 'shape' => 'IpamId', 'locationName' => 'ipamId', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'State' => [ 'shape' => 'AsnState', 'locationName' => 'state', ], ], ], 'ByoasnSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Byoasn', 'locationName' => 'item', ], ], 'ByoipCidr' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'AsnAssociations' => [ 'shape' => 'AsnAssociationSet', 'locationName' => 'asnAssociationSet', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'State' => [ 'shape' => 'ByoipCidrState', 'locationName' => 'state', ], 'NetworkBorderGroup' => [ 'shape' => 'String', 'locationName' => 'networkBorderGroup', ], 'AdvertisementType' => [ 'shape' => 'String', 'locationName' => 'advertisementType', ], ], ], 'ByoipCidrSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ByoipCidr', 'locationName' => 'item', ], ], 'ByoipCidrState' => [ 'type' => 'string', 'enum' => [ 'advertised', 'deprovisioned', 'failed-deprovision', 'failed-provision', 'pending-advertising', 'pending-deprovision', 'pending-provision', 'pending-withdrawal', 'provisioned', 'provisioned-not-publicly-advertisable', ], ], 'CallerRole' => [ 'type' => 'string', 'enum' => [ 'odcr-owner', 'unused-reservation-billing-owner', ], ], 'CancelBatchErrorCode' => [ 'type' => 'string', 'enum' => [ 'fleetRequestIdDoesNotExist', 'fleetRequestIdMalformed', 'fleetRequestNotInCancellableState', 'unexpectedError', ], ], 'CancelBundleTaskRequest' => [ 'type' => 'structure', 'required' => [ 'BundleId', ], 'members' => [ 'BundleId' => [ 'shape' => 'BundleId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CancelBundleTaskResult' => [ 'type' => 'structure', 'members' => [ 'BundleTask' => [ 'shape' => 'BundleTask', 'locationName' => 'bundleInstanceTask', ], ], ], 'CancelCapacityReservationFleetError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'CancelCapacityReservationFleetErrorCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'CancelCapacityReservationFleetErrorMessage', 'locationName' => 'message', ], ], ], 'CancelCapacityReservationFleetErrorCode' => [ 'type' => 'string', ], 'CancelCapacityReservationFleetErrorMessage' => [ 'type' => 'string', ], 'CancelCapacityReservationFleetsRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationFleetIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'CapacityReservationFleetIds' => [ 'shape' => 'CapacityReservationFleetIdSet', 'locationName' => 'CapacityReservationFleetId', ], ], ], 'CancelCapacityReservationFleetsResult' => [ 'type' => 'structure', 'members' => [ 'SuccessfulFleetCancellations' => [ 'shape' => 'CapacityReservationFleetCancellationStateSet', 'locationName' => 'successfulFleetCancellationSet', ], 'FailedFleetCancellations' => [ 'shape' => 'FailedCapacityReservationFleetCancellationResultSet', 'locationName' => 'failedFleetCancellationSet', ], ], ], 'CancelCapacityReservationRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', ], 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ApplyCancellationCharges' => [ 'shape' => 'ApplyCancellationCharges', ], 'QuoteId' => [ 'shape' => 'CapacityReservationCancellationQuoteId', ], ], ], 'CancelCapacityReservationResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'CancelConversionRequest' => [ 'type' => 'structure', 'required' => [ 'ConversionTaskId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'ConversionTaskId' => [ 'shape' => 'ConversionTaskId', 'locationName' => 'conversionTaskId', ], 'ReasonMessage' => [ 'shape' => 'String', 'locationName' => 'reasonMessage', ], ], ], 'CancelDeclarativePoliciesReportRequest' => [ 'type' => 'structure', 'required' => [ 'ReportId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ReportId' => [ 'shape' => 'DeclarativePoliciesReportId', ], ], ], 'CancelDeclarativePoliciesReportResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'CancelExportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'ExportTaskId', ], 'members' => [ 'ExportTaskId' => [ 'shape' => 'ExportVmTaskId', 'locationName' => 'exportTaskId', ], ], ], 'CancelImageLaunchPermissionRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CancelImageLaunchPermissionResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'CancelImportTaskRequest' => [ 'type' => 'structure', 'members' => [ 'CancelReason' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ImportTaskId' => [ 'shape' => 'ImportTaskId', ], ], ], 'CancelImportTaskResult' => [ 'type' => 'structure', 'members' => [ 'ImportTaskId' => [ 'shape' => 'String', 'locationName' => 'importTaskId', ], 'PreviousState' => [ 'shape' => 'String', 'locationName' => 'previousState', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], ], ], 'CancelReservedInstancesListingRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstancesListingId', ], 'members' => [ 'ReservedInstancesListingId' => [ 'shape' => 'ReservedInstancesListingId', 'locationName' => 'reservedInstancesListingId', ], ], ], 'CancelReservedInstancesListingResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesListings' => [ 'shape' => 'ReservedInstancesListingList', 'locationName' => 'reservedInstancesListingsSet', ], ], ], 'CancelSpotFleetRequestsError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'CancelBatchErrorCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'CancelSpotFleetRequestsErrorItem' => [ 'type' => 'structure', 'members' => [ 'Error' => [ 'shape' => 'CancelSpotFleetRequestsError', 'locationName' => 'error', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], ], ], 'CancelSpotFleetRequestsErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CancelSpotFleetRequestsErrorItem', 'locationName' => 'item', ], ], 'CancelSpotFleetRequestsRequest' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestIds', 'TerminateInstances', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotFleetRequestIds' => [ 'shape' => 'SpotFleetRequestIdList', 'locationName' => 'spotFleetRequestId', ], 'TerminateInstances' => [ 'shape' => 'Boolean', 'locationName' => 'terminateInstances', ], ], ], 'CancelSpotFleetRequestsResponse' => [ 'type' => 'structure', 'members' => [ 'SuccessfulFleetRequests' => [ 'shape' => 'CancelSpotFleetRequestsSuccessSet', 'locationName' => 'successfulFleetRequestSet', ], 'UnsuccessfulFleetRequests' => [ 'shape' => 'CancelSpotFleetRequestsErrorSet', 'locationName' => 'unsuccessfulFleetRequestSet', ], ], ], 'CancelSpotFleetRequestsSuccessItem' => [ 'type' => 'structure', 'members' => [ 'CurrentSpotFleetRequestState' => [ 'shape' => 'BatchState', 'locationName' => 'currentSpotFleetRequestState', ], 'PreviousSpotFleetRequestState' => [ 'shape' => 'BatchState', 'locationName' => 'previousSpotFleetRequestState', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], ], ], 'CancelSpotFleetRequestsSuccessSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CancelSpotFleetRequestsSuccessItem', 'locationName' => 'item', ], ], 'CancelSpotInstanceRequestState' => [ 'type' => 'string', 'enum' => [ 'active', 'open', 'closed', 'cancelled', 'completed', ], ], 'CancelSpotInstanceRequestsRequest' => [ 'type' => 'structure', 'required' => [ 'SpotInstanceRequestIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotInstanceRequestIds' => [ 'shape' => 'SpotInstanceRequestIdList', 'locationName' => 'SpotInstanceRequestId', ], ], ], 'CancelSpotInstanceRequestsResult' => [ 'type' => 'structure', 'members' => [ 'CancelledSpotInstanceRequests' => [ 'shape' => 'CancelledSpotInstanceRequestList', 'locationName' => 'spotInstanceRequestSet', ], ], ], 'CancellationTerms' => [ 'type' => 'structure', 'members' => [ 'CancellationType' => [ 'shape' => 'ApplyCancellationCharges', 'locationName' => 'cancellationType', ], 'ReservationState' => [ 'shape' => 'String', 'locationName' => 'reservationState', ], 'CommittedInstanceCount' => [ 'shape' => 'BoxedInteger', 'locationName' => 'committedInstanceCount', ], 'ChargeCommitmentDurationHours' => [ 'shape' => 'BoxedLong', 'locationName' => 'chargeCommitmentDurationHours', ], 'ChargeEndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'chargeEndDate', ], ], ], 'CancellationTermsSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CancellationTerms', 'locationName' => 'item', ], ], 'CancelledSpotInstanceRequest' => [ 'type' => 'structure', 'members' => [ 'SpotInstanceRequestId' => [ 'shape' => 'String', 'locationName' => 'spotInstanceRequestId', ], 'State' => [ 'shape' => 'CancelSpotInstanceRequestState', 'locationName' => 'state', ], ], ], 'CancelledSpotInstanceRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CancelledSpotInstanceRequest', 'locationName' => 'item', ], ], 'CapacityAllocation' => [ 'type' => 'structure', 'members' => [ 'AllocationType' => [ 'shape' => 'AllocationType', 'locationName' => 'allocationType', ], 'Count' => [ 'shape' => 'Integer', 'locationName' => 'count', ], 'AllocationMetadata' => [ 'shape' => 'CapacityAllocationMetadataList', 'locationName' => 'allocationMetadataList', ], ], ], 'CapacityAllocationMetadataEntry' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'CapacityAllocationMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityAllocationMetadataEntry', 'locationName' => 'item', ], ], 'CapacityAllocations' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityAllocation', 'locationName' => 'item', ], ], 'CapacityBlock' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockId' => [ 'shape' => 'CapacityBlockId', 'locationName' => 'capacityBlockId', ], 'UltraserverType' => [ 'shape' => 'String', 'locationName' => 'ultraserverType', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'CapacityReservationIds' => [ 'shape' => 'CapacityReservationIdSet', 'locationName' => 'capacityReservationIdSet', ], 'StartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startDate', ], 'EndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'endDate', ], 'CreateDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createDate', ], 'State' => [ 'shape' => 'CapacityBlockResourceState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'CapacityBlockExtension' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', 'locationName' => 'capacityReservationId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], 'CapacityBlockExtensionOfferingId' => [ 'shape' => 'OfferingId', 'locationName' => 'capacityBlockExtensionOfferingId', ], 'CapacityBlockExtensionDurationHours' => [ 'shape' => 'Integer', 'locationName' => 'capacityBlockExtensionDurationHours', ], 'CapacityBlockExtensionStatus' => [ 'shape' => 'CapacityBlockExtensionStatus', 'locationName' => 'capacityBlockExtensionStatus', ], 'CapacityBlockExtensionPurchaseDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'capacityBlockExtensionPurchaseDate', ], 'CapacityBlockExtensionStartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'capacityBlockExtensionStartDate', ], 'CapacityBlockExtensionEndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'capacityBlockExtensionEndDate', ], 'UpfrontFee' => [ 'shape' => 'String', 'locationName' => 'upfrontFee', ], 'CurrencyCode' => [ 'shape' => 'String', 'locationName' => 'currencyCode', ], 'ZoneType' => [ 'shape' => 'String', 'locationName' => 'zoneType', ], ], ], 'CapacityBlockExtensionOffering' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockExtensionOfferingId' => [ 'shape' => 'OfferingId', 'locationName' => 'capacityBlockExtensionOfferingId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], 'StartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startDate', ], 'CapacityBlockExtensionStartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'capacityBlockExtensionStartDate', ], 'CapacityBlockExtensionEndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'capacityBlockExtensionEndDate', ], 'CapacityBlockExtensionDurationHours' => [ 'shape' => 'Integer', 'locationName' => 'capacityBlockExtensionDurationHours', ], 'UpfrontFee' => [ 'shape' => 'String', 'locationName' => 'upfrontFee', ], 'CurrencyCode' => [ 'shape' => 'String', 'locationName' => 'currencyCode', ], 'Tenancy' => [ 'shape' => 'CapacityReservationTenancy', 'locationName' => 'tenancy', ], 'ZoneType' => [ 'shape' => 'String', 'locationName' => 'zoneType', ], ], ], 'CapacityBlockExtensionOfferingSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityBlockExtensionOffering', 'locationName' => 'item', ], ], 'CapacityBlockExtensionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityBlockExtension', 'locationName' => 'item', ], ], 'CapacityBlockExtensionStatus' => [ 'type' => 'string', 'enum' => [ 'payment-pending', 'payment-failed', 'payment-succeeded', ], ], 'CapacityBlockId' => [ 'type' => 'string', ], 'CapacityBlockIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityBlockId', 'locationName' => 'item', ], ], 'CapacityBlockInterconnectStatus' => [ 'type' => 'string', 'enum' => [ 'ok', 'impaired', 'insufficient-data', ], ], 'CapacityBlockOffering' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockOfferingId' => [ 'shape' => 'OfferingId', 'locationName' => 'capacityBlockOfferingId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'StartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startDate', ], 'EndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'endDate', ], 'CapacityBlockDurationHours' => [ 'shape' => 'Integer', 'locationName' => 'capacityBlockDurationHours', ], 'UpfrontFee' => [ 'shape' => 'String', 'locationName' => 'upfrontFee', ], 'CurrencyCode' => [ 'shape' => 'String', 'locationName' => 'currencyCode', ], 'Tenancy' => [ 'shape' => 'CapacityReservationTenancy', 'locationName' => 'tenancy', ], 'UltraserverType' => [ 'shape' => 'String', 'locationName' => 'ultraserverType', ], 'UltraserverCount' => [ 'shape' => 'BoxedInteger', 'locationName' => 'ultraserverCount', ], 'CapacityBlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'capacityBlockDurationMinutes', ], 'ZoneType' => [ 'shape' => 'String', 'locationName' => 'zoneType', ], ], ], 'CapacityBlockOfferingSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityBlockOffering', 'locationName' => 'item', ], ], 'CapacityBlockResourceState' => [ 'type' => 'string', 'enum' => [ 'active', 'expired', 'unavailable', 'cancelled', 'failed', 'scheduled', 'payment-pending', 'payment-failed', ], ], 'CapacityBlockSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityBlock', 'locationName' => 'item', ], ], 'CapacityBlockStatus' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockId' => [ 'shape' => 'CapacityBlockId', 'locationName' => 'capacityBlockId', ], 'InterconnectStatus' => [ 'shape' => 'CapacityBlockInterconnectStatus', 'locationName' => 'interconnectStatus', ], 'TotalCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalCapacity', ], 'TotalAvailableCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalAvailableCapacity', ], 'TotalUnavailableCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalUnavailableCapacity', ], 'CapacityReservationStatuses' => [ 'shape' => 'CapacityReservationStatusSet', 'locationName' => 'capacityReservationStatusSet', ], ], ], 'CapacityBlockStatusSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityBlockStatus', 'locationName' => 'item', ], ], 'CapacityManagerCondition' => [ 'type' => 'structure', 'members' => [ 'DimensionCondition' => [ 'shape' => 'DimensionCondition', ], ], ], 'CapacityManagerConditionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityManagerCondition', 'locationName' => 'item', ], 'max' => 20, 'min' => 0, ], 'CapacityManagerDataExportId' => [ 'type' => 'string', ], 'CapacityManagerDataExportIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityManagerDataExportId', 'locationName' => 'item', ], ], 'CapacityManagerDataExportResponse' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerDataExportId' => [ 'shape' => 'CapacityManagerDataExportId', 'locationName' => 'capacityManagerDataExportId', ], 'S3BucketName' => [ 'shape' => 'String', 'locationName' => 's3BucketName', ], 'S3BucketPrefix' => [ 'shape' => 'String', 'locationName' => 's3BucketPrefix', ], 'Schedule' => [ 'shape' => 'Schedule', 'locationName' => 'schedule', ], 'OutputFormat' => [ 'shape' => 'OutputFormat', 'locationName' => 'outputFormat', ], 'CreateTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createTime', ], 'LatestDeliveryStatus' => [ 'shape' => 'CapacityManagerDataExportStatus', 'locationName' => 'latestDeliveryStatus', ], 'LatestDeliveryStatusMessage' => [ 'shape' => 'String', 'locationName' => 'latestDeliveryStatusMessage', ], 'LatestDeliveryS3LocationUri' => [ 'shape' => 'String', 'locationName' => 'latestDeliveryS3LocationUri', ], 'LatestDeliveryTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'latestDeliveryTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'CapacityManagerDataExportResponseSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityManagerDataExportResponse', 'locationName' => 'item', ], ], 'CapacityManagerDataExportStatus' => [ 'type' => 'string', 'enum' => [ 'pending', 'in-progress', 'delivered', 'failed', ], ], 'CapacityManagerDimension' => [ 'type' => 'structure', 'members' => [ 'ResourceRegion' => [ 'shape' => 'String', 'locationName' => 'resourceRegion', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'AccountId' => [ 'shape' => 'String', 'locationName' => 'accountId', ], 'AccountName' => [ 'shape' => 'String', 'locationName' => 'accountName', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'InstancePlatform' => [ 'shape' => 'String', 'locationName' => 'instancePlatform', ], 'ReservationArn' => [ 'shape' => 'String', 'locationName' => 'reservationArn', ], 'ReservationId' => [ 'shape' => 'String', 'locationName' => 'reservationId', ], 'ReservationType' => [ 'shape' => 'ReservationType', 'locationName' => 'reservationType', ], 'ReservationCreateTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'reservationCreateTimestamp', ], 'ReservationStartTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'reservationStartTimestamp', ], 'ReservationEndTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'reservationEndTimestamp', ], 'ReservationEndDateType' => [ 'shape' => 'ReservationEndDateType', 'locationName' => 'reservationEndDateType', ], 'Tenancy' => [ 'shape' => 'CapacityTenancy', 'locationName' => 'tenancy', ], 'ReservationState' => [ 'shape' => 'ReservationState', 'locationName' => 'reservationState', ], 'ReservationInstanceMatchCriteria' => [ 'shape' => 'String', 'locationName' => 'reservationInstanceMatchCriteria', ], 'ReservationUnusedFinancialOwner' => [ 'shape' => 'String', 'locationName' => 'reservationUnusedFinancialOwner', ], 'Tags' => [ 'shape' => 'CapacityManagerTagDimensionSet', 'locationName' => 'tagSet', ], ], ], 'CapacityManagerMonitoredTagKey' => [ 'type' => 'structure', 'members' => [ 'TagKey' => [ 'shape' => 'String', 'locationName' => 'tagKey', ], 'Status' => [ 'shape' => 'CapacityManagerMonitoredTagKeyStatus', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'CapacityManagerProvided' => [ 'shape' => 'Boolean', 'locationName' => 'capacityManagerProvided', ], 'EarliestDatapointTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'earliestDatapointTimestamp', ], ], ], 'CapacityManagerMonitoredTagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityManagerMonitoredTagKey', 'locationName' => 'item', ], ], 'CapacityManagerMonitoredTagKeyStatus' => [ 'type' => 'string', 'enum' => [ 'activating', 'activated', 'deactivating', 'suspended', ], ], 'CapacityManagerStatus' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'CapacityManagerTagDimension' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'CapacityManagerTagDimensionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityManagerTagDimension', 'locationName' => 'item', ], ], 'CapacityReservation' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'CapacityReservationArn' => [ 'shape' => 'String', 'locationName' => 'capacityReservationArn', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'InstancePlatform' => [ 'shape' => 'CapacityReservationInstancePlatform', 'locationName' => 'instancePlatform', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Tenancy' => [ 'shape' => 'CapacityReservationTenancy', 'locationName' => 'tenancy', ], 'TotalInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'totalInstanceCount', ], 'AvailableInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'availableInstanceCount', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'EphemeralStorage' => [ 'shape' => 'Boolean', 'locationName' => 'ephemeralStorage', ], 'State' => [ 'shape' => 'CapacityReservationState', 'locationName' => 'state', ], 'StartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startDate', ], 'EndDate' => [ 'shape' => 'DateTime', 'locationName' => 'endDate', ], 'EndDateType' => [ 'shape' => 'EndDateType', 'locationName' => 'endDateType', ], 'InstanceMatchCriteria' => [ 'shape' => 'InstanceMatchCriteria', 'locationName' => 'instanceMatchCriteria', ], 'CreateDate' => [ 'shape' => 'DateTime', 'locationName' => 'createDate', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'OutpostArn' => [ 'shape' => 'OutpostArn', 'locationName' => 'outpostArn', ], 'CapacityReservationFleetId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationFleetId', ], 'PlacementGroupArn' => [ 'shape' => 'PlacementGroupArn', 'locationName' => 'placementGroupArn', ], 'CapacityAllocations' => [ 'shape' => 'CapacityAllocations', 'locationName' => 'capacityAllocationSet', ], 'ReservationType' => [ 'shape' => 'CapacityReservationType', 'locationName' => 'reservationType', ], 'UnusedReservationBillingOwnerId' => [ 'shape' => 'AccountID', 'locationName' => 'unusedReservationBillingOwnerId', ], 'CommitmentInfo' => [ 'shape' => 'CapacityReservationCommitmentInfo', 'locationName' => 'commitmentInfo', ], 'DeliveryPreference' => [ 'shape' => 'CapacityReservationDeliveryPreference', 'locationName' => 'deliveryPreference', ], 'CapacityBlockId' => [ 'shape' => 'CapacityBlockId', 'locationName' => 'capacityBlockId', ], 'Interruptible' => [ 'shape' => 'BoxedBoolean', 'locationName' => 'interruptible', ], 'InterruptibleCapacityAllocation' => [ 'shape' => 'InterruptibleCapacityAllocation', 'locationName' => 'interruptibleCapacityAllocation', ], 'InterruptionInfo' => [ 'shape' => 'InterruptionInfo', 'locationName' => 'interruptionInfo', ], ], ], 'CapacityReservationBillingRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationId', ], 'RequestedBy' => [ 'shape' => 'String', 'locationName' => 'requestedBy', ], 'UnusedReservationBillingOwnerId' => [ 'shape' => 'AccountID', 'locationName' => 'unusedReservationBillingOwnerId', ], 'LastUpdateTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastUpdateTime', ], 'Status' => [ 'shape' => 'CapacityReservationBillingRequestStatus', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'CapacityReservationInfo' => [ 'shape' => 'CapacityReservationInfo', 'locationName' => 'capacityReservationInfo', ], ], ], 'CapacityReservationBillingRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationBillingRequest', 'locationName' => 'item', ], ], 'CapacityReservationBillingRequestStatus' => [ 'type' => 'string', 'enum' => [ 'pending', 'accepted', 'rejected', 'cancelled', 'revoked', 'expired', ], ], 'CapacityReservationCancellationQuote' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationCancellationQuoteId' => [ 'shape' => 'CapacityReservationCancellationQuoteId', 'locationName' => 'capacityReservationCancellationQuoteId', ], 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', 'locationName' => 'capacityReservationId', ], 'CreateTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createTime', ], 'ExpirationTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'expirationTime', ], 'QuoteState' => [ 'shape' => 'CapacityReservationCancellationQuoteState', 'locationName' => 'quoteState', ], 'CurrentConfiguration' => [ 'shape' => 'CapacityReservationConfiguration', 'locationName' => 'currentConfiguration', ], 'CancellationTerms' => [ 'shape' => 'CancellationTermsSet', 'locationName' => 'cancellationTermSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'CapacityReservationCancellationQuoteId' => [ 'type' => 'string', ], 'CapacityReservationCancellationQuoteIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationCancellationQuoteId', 'locationName' => 'item', ], ], 'CapacityReservationCancellationQuoteResponseSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationCancellationQuote', 'locationName' => 'item', ], ], 'CapacityReservationCancellationQuoteState' => [ 'type' => 'string', 'enum' => [ 'pending', 'active', 'expired', ], ], 'CapacityReservationCommitmentDuration' => [ 'type' => 'long', 'max' => 200000000, 'min' => 1, ], 'CapacityReservationCommitmentInfo' => [ 'type' => 'structure', 'members' => [ 'CommittedInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'committedInstanceCount', ], 'CommitmentEndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'commitmentEndDate', ], ], ], 'CapacityReservationConfiguration' => [ 'type' => 'structure', 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'ReservationState' => [ 'shape' => 'String', 'locationName' => 'reservationState', ], ], ], 'CapacityReservationDeliveryPreference' => [ 'type' => 'string', 'enum' => [ 'fixed', 'incremental', ], ], 'CapacityReservationFleet' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationFleetId' => [ 'shape' => 'CapacityReservationFleetId', 'locationName' => 'capacityReservationFleetId', ], 'CapacityReservationFleetArn' => [ 'shape' => 'String', 'locationName' => 'capacityReservationFleetArn', ], 'State' => [ 'shape' => 'CapacityReservationFleetState', 'locationName' => 'state', ], 'TotalTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalTargetCapacity', ], 'TotalFulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'totalFulfilledCapacity', ], 'Tenancy' => [ 'shape' => 'FleetCapacityReservationTenancy', 'locationName' => 'tenancy', ], 'EndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'endDate', ], 'CreateTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createTime', ], 'InstanceMatchCriteria' => [ 'shape' => 'FleetInstanceMatchCriteria', 'locationName' => 'instanceMatchCriteria', ], 'AllocationStrategy' => [ 'shape' => 'String', 'locationName' => 'allocationStrategy', ], 'InstanceTypeSpecifications' => [ 'shape' => 'FleetCapacityReservationSet', 'locationName' => 'instanceTypeSpecificationSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'CapacityReservationFleetCancellationState' => [ 'type' => 'structure', 'members' => [ 'CurrentFleetState' => [ 'shape' => 'CapacityReservationFleetState', 'locationName' => 'currentFleetState', ], 'PreviousFleetState' => [ 'shape' => 'CapacityReservationFleetState', 'locationName' => 'previousFleetState', ], 'CapacityReservationFleetId' => [ 'shape' => 'CapacityReservationFleetId', 'locationName' => 'capacityReservationFleetId', ], ], ], 'CapacityReservationFleetCancellationStateSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationFleetCancellationState', 'locationName' => 'item', ], ], 'CapacityReservationFleetId' => [ 'type' => 'string', ], 'CapacityReservationFleetIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationFleetId', 'locationName' => 'item', ], ], 'CapacityReservationFleetSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationFleet', 'locationName' => 'item', ], ], 'CapacityReservationFleetState' => [ 'type' => 'string', 'enum' => [ 'submitted', 'modifying', 'active', 'partially_fulfilled', 'expiring', 'expired', 'cancelling', 'cancelled', 'failed', ], ], 'CapacityReservationGroup' => [ 'type' => 'structure', 'members' => [ 'GroupArn' => [ 'shape' => 'String', 'locationName' => 'groupArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], ], ], 'CapacityReservationGroupSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationGroup', 'locationName' => 'item', ], ], 'CapacityReservationId' => [ 'type' => 'string', ], 'CapacityReservationIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationId', 'locationName' => 'item', ], ], 'CapacityReservationInfo' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'availabilityZone', ], 'Tenancy' => [ 'shape' => 'CapacityReservationTenancy', 'locationName' => 'tenancy', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], ], ], 'CapacityReservationInstancePlatform' => [ 'type' => 'string', 'enum' => [ 'Linux/UNIX', 'Red Hat Enterprise Linux', 'SUSE Linux', 'Windows', 'Windows with SQL Server', 'Windows with SQL Server Enterprise', 'Windows with SQL Server Standard', 'Windows with SQL Server Web', 'Linux with SQL Server Standard', 'Linux with SQL Server Web', 'Linux with SQL Server Enterprise', 'RHEL with SQL Server Standard', 'RHEL with SQL Server Enterprise', 'RHEL with SQL Server Web', 'RHEL with HA', 'RHEL with HA and SQL Server Standard', 'RHEL with HA and SQL Server Enterprise', 'Ubuntu Pro', ], ], 'CapacityReservationOptions' => [ 'type' => 'structure', 'members' => [ 'UsageStrategy' => [ 'shape' => 'FleetCapacityReservationUsageStrategy', 'locationName' => 'usageStrategy', ], ], ], 'CapacityReservationOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'UsageStrategy' => [ 'shape' => 'FleetCapacityReservationUsageStrategy', ], ], ], 'CapacityReservationPreference' => [ 'type' => 'string', 'enum' => [ 'capacity-reservations-only', 'open', 'none', ], ], 'CapacityReservationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservation', 'locationName' => 'item', ], ], 'CapacityReservationSpecification' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationPreference' => [ 'shape' => 'CapacityReservationPreference', ], 'CapacityReservationTarget' => [ 'shape' => 'CapacityReservationTarget', ], ], ], 'CapacityReservationSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationPreference' => [ 'shape' => 'CapacityReservationPreference', 'locationName' => 'capacityReservationPreference', ], 'CapacityReservationTarget' => [ 'shape' => 'CapacityReservationTargetResponse', 'locationName' => 'capacityReservationTarget', ], ], ], 'CapacityReservationState' => [ 'type' => 'string', 'enum' => [ 'active', 'expired', 'cancelled', 'pending', 'failed', 'scheduled', 'payment-pending', 'payment-failed', 'assessing', 'delayed', 'unsupported', 'cancelling', 'unavailable', ], ], 'CapacityReservationStatus' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', 'locationName' => 'capacityReservationId', ], 'TotalCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalCapacity', ], 'TotalAvailableCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalAvailableCapacity', ], 'TotalUnavailableCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalUnavailableCapacity', ], ], ], 'CapacityReservationStatusSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationStatus', 'locationName' => 'item', ], ], 'CapacityReservationTarget' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'CapacityReservationResourceGroupArn' => [ 'shape' => 'String', ], ], ], 'CapacityReservationTargetResponse' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationId', ], 'CapacityReservationResourceGroupArn' => [ 'shape' => 'String', 'locationName' => 'capacityReservationResourceGroupArn', ], ], ], 'CapacityReservationTenancy' => [ 'type' => 'string', 'enum' => [ 'default', 'dedicated', ], ], 'CapacityReservationTopology' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationId', ], 'CapacityBlockId' => [ 'shape' => 'String', 'locationName' => 'capacityBlockId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'NetworkNodes' => [ 'shape' => 'NetworkNodeSet', 'locationName' => 'networkNodeSet', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], ], ], 'CapacityReservationTopologySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationTopology', 'locationName' => 'item', ], ], 'CapacityReservationType' => [ 'type' => 'string', 'enum' => [ 'default', 'capacity-block', ], ], 'CapacityTenancy' => [ 'type' => 'string', 'enum' => [ 'default', 'dedicated', ], ], 'CarrierGateway' => [ 'type' => 'structure', 'members' => [ 'CarrierGatewayId' => [ 'shape' => 'CarrierGatewayId', 'locationName' => 'carrierGatewayId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'State' => [ 'shape' => 'CarrierGatewayState', 'locationName' => 'state', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'CarrierGatewayId' => [ 'type' => 'string', ], 'CarrierGatewayIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CarrierGatewayId', ], ], 'CarrierGatewayMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'CarrierGatewaySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CarrierGateway', 'locationName' => 'item', ], ], 'CarrierGatewayState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'CertificateArn' => [ 'type' => 'string', ], 'CertificateAuthentication' => [ 'type' => 'structure', 'members' => [ 'ClientRootCertificateChain' => [ 'shape' => 'String', 'locationName' => 'clientRootCertificateChain', ], ], ], 'CertificateAuthenticationRequest' => [ 'type' => 'structure', 'members' => [ 'ClientRootCertificateChainArn' => [ 'shape' => 'String', ], ], ], 'CertificateId' => [ 'type' => 'string', ], 'CidrAuthorizationContext' => [ 'type' => 'structure', 'required' => [ 'Message', 'Signature', ], 'members' => [ 'Message' => [ 'shape' => 'String', ], 'Signature' => [ 'shape' => 'String', ], ], ], 'CidrBlock' => [ 'type' => 'structure', 'members' => [ 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], ], ], 'CidrBlockSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CidrBlock', 'locationName' => 'item', ], ], 'ClassicLinkDnsSupport' => [ 'type' => 'structure', 'members' => [ 'ClassicLinkDnsSupported' => [ 'shape' => 'Boolean', 'locationName' => 'classicLinkDnsSupported', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'ClassicLinkDnsSupportList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClassicLinkDnsSupport', 'locationName' => 'item', ], ], 'ClassicLinkInstance' => [ 'type' => 'structure', 'members' => [ 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'ClassicLinkInstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClassicLinkInstance', 'locationName' => 'item', ], ], 'ClassicLoadBalancer' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'ClassicLoadBalancers' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClassicLoadBalancer', 'locationName' => 'item', ], 'max' => 5, 'min' => 1, ], 'ClassicLoadBalancersConfig' => [ 'type' => 'structure', 'members' => [ 'ClassicLoadBalancers' => [ 'shape' => 'ClassicLoadBalancers', 'locationName' => 'classicLoadBalancers', ], ], ], 'ClientCertificateRevocationListStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientCertificateRevocationListStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientCertificateRevocationListStatusCode' => [ 'type' => 'string', 'enum' => [ 'pending', 'active', ], ], 'ClientConnectOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'LambdaFunctionArn' => [ 'shape' => 'String', ], ], ], 'ClientConnectResponseOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], 'LambdaFunctionArn' => [ 'shape' => 'String', 'locationName' => 'lambdaFunctionArn', ], 'Status' => [ 'shape' => 'ClientVpnEndpointAttributeStatus', 'locationName' => 'status', ], ], ], 'ClientData' => [ 'type' => 'structure', 'members' => [ 'Comment' => [ 'shape' => 'String', ], 'UploadEnd' => [ 'shape' => 'DateTime', ], 'UploadSize' => [ 'shape' => 'Double', ], 'UploadStart' => [ 'shape' => 'DateTime', ], ], ], 'ClientLoginBannerOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'BannerText' => [ 'shape' => 'String', ], ], ], 'ClientLoginBannerResponseOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], 'BannerText' => [ 'shape' => 'String', 'locationName' => 'bannerText', ], ], ], 'ClientRouteEnforcementOptions' => [ 'type' => 'structure', 'members' => [ 'Enforced' => [ 'shape' => 'Boolean', ], ], ], 'ClientRouteEnforcementResponseOptions' => [ 'type' => 'structure', 'members' => [ 'Enforced' => [ 'shape' => 'Boolean', 'locationName' => 'enforced', ], ], ], 'ClientSecretType' => [ 'type' => 'string', 'sensitive' => true, ], 'ClientVpnAuthentication' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'ClientVpnAuthenticationType', 'locationName' => 'type', ], 'ActiveDirectory' => [ 'shape' => 'DirectoryServiceAuthentication', 'locationName' => 'activeDirectory', ], 'MutualAuthentication' => [ 'shape' => 'CertificateAuthentication', 'locationName' => 'mutualAuthentication', ], 'FederatedAuthentication' => [ 'shape' => 'FederatedAuthentication', 'locationName' => 'federatedAuthentication', ], ], ], 'ClientVpnAuthenticationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnAuthentication', 'locationName' => 'item', ], ], 'ClientVpnAuthenticationRequest' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'ClientVpnAuthenticationType', ], 'ActiveDirectory' => [ 'shape' => 'DirectoryServiceAuthenticationRequest', ], 'MutualAuthentication' => [ 'shape' => 'CertificateAuthenticationRequest', ], 'FederatedAuthentication' => [ 'shape' => 'FederatedAuthenticationRequest', ], ], ], 'ClientVpnAuthenticationRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnAuthenticationRequest', ], ], 'ClientVpnAuthenticationType' => [ 'type' => 'string', 'enum' => [ 'certificate-authentication', 'directory-service-authentication', 'federated-authentication', ], ], 'ClientVpnAuthorizationRuleStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientVpnAuthorizationRuleStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientVpnAuthorizationRuleStatusCode' => [ 'type' => 'string', 'enum' => [ 'authorizing', 'active', 'failed', 'revoking', ], ], 'ClientVpnAvailabilityZoneIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'item', ], ], 'ClientVpnAvailabilityZoneSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'item', ], ], 'ClientVpnConnection' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Timestamp' => [ 'shape' => 'String', 'locationName' => 'timestamp', ], 'ConnectionId' => [ 'shape' => 'String', 'locationName' => 'connectionId', ], 'Username' => [ 'shape' => 'String', 'locationName' => 'username', ], 'ConnectionEstablishedTime' => [ 'shape' => 'String', 'locationName' => 'connectionEstablishedTime', ], 'IngressBytes' => [ 'shape' => 'String', 'locationName' => 'ingressBytes', ], 'EgressBytes' => [ 'shape' => 'String', 'locationName' => 'egressBytes', ], 'IngressPackets' => [ 'shape' => 'String', 'locationName' => 'ingressPackets', ], 'EgressPackets' => [ 'shape' => 'String', 'locationName' => 'egressPackets', ], 'ClientIp' => [ 'shape' => 'String', 'locationName' => 'clientIp', ], 'ClientIpv6Address' => [ 'shape' => 'String', 'locationName' => 'clientIpv6Address', ], 'CommonName' => [ 'shape' => 'String', 'locationName' => 'commonName', ], 'Status' => [ 'shape' => 'ClientVpnConnectionStatus', 'locationName' => 'status', ], 'ConnectionEndTime' => [ 'shape' => 'String', 'locationName' => 'connectionEndTime', ], 'PostureComplianceStatuses' => [ 'shape' => 'ValueStringList', 'locationName' => 'postureComplianceStatusSet', ], ], ], 'ClientVpnConnectionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnConnection', 'locationName' => 'item', ], ], 'ClientVpnConnectionStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientVpnConnectionStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientVpnConnectionStatusCode' => [ 'type' => 'string', 'enum' => [ 'active', 'failed-to-terminate', 'terminating', 'terminated', ], ], 'ClientVpnEndpoint' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Status' => [ 'shape' => 'ClientVpnEndpointStatus', 'locationName' => 'status', ], 'CreationTime' => [ 'shape' => 'String', 'locationName' => 'creationTime', ], 'DeletionTime' => [ 'shape' => 'String', 'locationName' => 'deletionTime', ], 'DnsName' => [ 'shape' => 'String', 'locationName' => 'dnsName', ], 'ClientCidrBlock' => [ 'shape' => 'String', 'locationName' => 'clientCidrBlock', ], 'DnsServers' => [ 'shape' => 'ValueStringList', 'locationName' => 'dnsServer', ], 'SplitTunnel' => [ 'shape' => 'Boolean', 'locationName' => 'splitTunnel', ], 'VpnProtocol' => [ 'shape' => 'VpnProtocol', 'locationName' => 'vpnProtocol', ], 'TransportProtocol' => [ 'shape' => 'TransportProtocol', 'locationName' => 'transportProtocol', ], 'VpnPort' => [ 'shape' => 'Integer', 'locationName' => 'vpnPort', ], 'AssociatedTargetNetworks' => [ 'shape' => 'AssociatedTargetNetworkSet', 'deprecated' => true, 'deprecatedMessage' => 'This property is deprecated. To view the target networks associated with a Client VPN endpoint, call DescribeClientVpnTargetNetworks and inspect the clientVpnTargetNetworks response element.', 'locationName' => 'associatedTargetNetwork', ], 'ServerCertificateArn' => [ 'shape' => 'String', 'locationName' => 'serverCertificateArn', ], 'AuthenticationOptions' => [ 'shape' => 'ClientVpnAuthenticationList', 'locationName' => 'authenticationOptions', ], 'ConnectionLogOptions' => [ 'shape' => 'ConnectionLogResponseOptions', 'locationName' => 'connectionLogOptions', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SecurityGroupIds' => [ 'shape' => 'ClientVpnSecurityGroupIdSet', 'locationName' => 'securityGroupIdSet', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'SelfServicePortalUrl' => [ 'shape' => 'String', 'locationName' => 'selfServicePortalUrl', ], 'ClientConnectOptions' => [ 'shape' => 'ClientConnectResponseOptions', 'locationName' => 'clientConnectOptions', ], 'SessionTimeoutHours' => [ 'shape' => 'Integer', 'locationName' => 'sessionTimeoutHours', ], 'ClientLoginBannerOptions' => [ 'shape' => 'ClientLoginBannerResponseOptions', 'locationName' => 'clientLoginBannerOptions', ], 'ClientRouteEnforcementOptions' => [ 'shape' => 'ClientRouteEnforcementResponseOptions', 'locationName' => 'clientRouteEnforcementOptions', ], 'DisconnectOnSessionTimeout' => [ 'shape' => 'Boolean', 'locationName' => 'disconnectOnSessionTimeout', ], 'EndpointIpAddressType' => [ 'shape' => 'EndpointIpAddressType', 'locationName' => 'endpointIpAddressType', ], 'TrafficIpAddressType' => [ 'shape' => 'TrafficIpAddressType', 'locationName' => 'trafficIpAddressType', ], 'TransitGatewayConfiguration' => [ 'shape' => 'TransitGatewayConfigurationDescribeEndpointStructure', 'locationName' => 'transitGatewayConfiguration', ], ], ], 'ClientVpnEndpointAttributeStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientVpnEndpointAttributeStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientVpnEndpointAttributeStatusCode' => [ 'type' => 'string', 'enum' => [ 'applying', 'applied', ], ], 'ClientVpnEndpointId' => [ 'type' => 'string', ], 'ClientVpnEndpointIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnEndpointId', 'locationName' => 'item', ], ], 'ClientVpnEndpointStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientVpnEndpointStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientVpnEndpointStatusCode' => [ 'type' => 'string', 'enum' => [ 'pending-associate', 'available', 'deleting', 'deleted', 'pending', ], ], 'ClientVpnRoute' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'DestinationCidr' => [ 'shape' => 'String', 'locationName' => 'destinationCidr', ], 'TargetSubnet' => [ 'shape' => 'String', 'locationName' => 'targetSubnet', ], 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], 'Origin' => [ 'shape' => 'String', 'locationName' => 'origin', ], 'Status' => [ 'shape' => 'ClientVpnRouteStatus', 'locationName' => 'status', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], ], ], 'ClientVpnRouteSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnRoute', 'locationName' => 'item', ], ], 'ClientVpnRouteStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientVpnRouteStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientVpnRouteStatusCode' => [ 'type' => 'string', 'enum' => [ 'creating', 'active', 'failed', 'deleting', ], ], 'ClientVpnSecurityGroupIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'item', ], ], 'CloudWatchLogGroupArn' => [ 'type' => 'string', ], 'CloudWatchLogOptions' => [ 'type' => 'structure', 'members' => [ 'LogEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'logEnabled', ], 'LogGroupArn' => [ 'shape' => 'String', 'locationName' => 'logGroupArn', ], 'LogOutputFormat' => [ 'shape' => 'String', 'locationName' => 'logOutputFormat', ], 'BgpLogEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'bgpLogEnabled', ], 'BgpLogGroupArn' => [ 'shape' => 'String', 'locationName' => 'bgpLogGroupArn', ], 'BgpLogOutputFormat' => [ 'shape' => 'String', 'locationName' => 'bgpLogOutputFormat', ], ], ], 'CloudWatchLogOptionsSpecification' => [ 'type' => 'structure', 'members' => [ 'LogEnabled' => [ 'shape' => 'Boolean', ], 'LogGroupArn' => [ 'shape' => 'CloudWatchLogGroupArn', ], 'LogOutputFormat' => [ 'shape' => 'String', ], 'BgpLogEnabled' => [ 'shape' => 'Boolean', ], 'BgpLogGroupArn' => [ 'shape' => 'CloudWatchLogGroupArn', ], 'BgpLogOutputFormat' => [ 'shape' => 'String', ], ], ], 'CoipAddressUsage' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'AwsAccountId' => [ 'shape' => 'String', 'locationName' => 'awsAccountId', ], 'AwsService' => [ 'shape' => 'String', 'locationName' => 'awsService', ], 'CoIp' => [ 'shape' => 'String', 'locationName' => 'coIp', ], ], ], 'CoipAddressUsageSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CoipAddressUsage', 'locationName' => 'item', ], ], 'CoipCidr' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'CoipPoolId' => [ 'shape' => 'Ipv4PoolCoipId', 'locationName' => 'coipPoolId', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'localGatewayRouteTableId', ], ], ], 'CoipPool' => [ 'type' => 'structure', 'members' => [ 'PoolId' => [ 'shape' => 'Ipv4PoolCoipId', 'locationName' => 'poolId', ], 'PoolCidrs' => [ 'shape' => 'ValueStringList', 'locationName' => 'poolCidrSet', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', 'locationName' => 'localGatewayRouteTableId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'PoolArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'poolArn', ], ], ], 'CoipPoolId' => [ 'type' => 'string', ], 'CoipPoolIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv4PoolCoipId', 'locationName' => 'item', ], ], 'CoipPoolMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'CoipPoolSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CoipPool', 'locationName' => 'item', ], ], 'Comparison' => [ 'type' => 'string', 'enum' => [ 'equals', 'in', ], ], 'ComponentAccount' => [ 'type' => 'string', 'pattern' => '\\d{12}', ], 'ComponentRegion' => [ 'type' => 'string', 'pattern' => '[a-z]{2}-[a-z]+-[1-9]+', ], 'ConditionValue' => [ 'type' => 'string', 'max' => 300, 'min' => 0, ], 'ConditionValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConditionValue', 'locationName' => 'item', ], 'max' => 10, 'min' => 0, ], 'ConfirmProductInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'ProductCode', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'ProductCode' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ConfirmProductInstanceResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], ], ], 'ConnectionLogOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'CloudwatchLogGroup' => [ 'shape' => 'String', ], 'CloudwatchLogStream' => [ 'shape' => 'String', ], ], ], 'ConnectionLogResponseOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'CloudwatchLogGroup' => [ 'shape' => 'String', ], 'CloudwatchLogStream' => [ 'shape' => 'String', ], ], ], 'ConnectionNotification' => [ 'type' => 'structure', 'members' => [ 'ConnectionNotificationId' => [ 'shape' => 'String', 'locationName' => 'connectionNotificationId', ], 'ServiceId' => [ 'shape' => 'String', 'locationName' => 'serviceId', ], 'VpcEndpointId' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointId', ], 'ConnectionNotificationType' => [ 'shape' => 'ConnectionNotificationType', 'locationName' => 'connectionNotificationType', ], 'ConnectionNotificationArn' => [ 'shape' => 'String', 'locationName' => 'connectionNotificationArn', ], 'ConnectionEvents' => [ 'shape' => 'ValueStringList', 'locationName' => 'connectionEvents', ], 'ConnectionNotificationState' => [ 'shape' => 'ConnectionNotificationState', 'locationName' => 'connectionNotificationState', ], 'ServiceRegion' => [ 'shape' => 'String', 'locationName' => 'serviceRegion', ], ], ], 'ConnectionNotificationId' => [ 'type' => 'string', ], 'ConnectionNotificationIdsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConnectionNotificationId', 'locationName' => 'item', ], ], 'ConnectionNotificationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConnectionNotification', 'locationName' => 'item', ], ], 'ConnectionNotificationState' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'ConnectionNotificationType' => [ 'type' => 'string', 'enum' => [ 'Topic', ], ], 'ConnectionTrackingConfiguration' => [ 'type' => 'structure', 'members' => [ 'TcpEstablishedTimeout' => [ 'shape' => 'Integer', 'locationName' => 'tcpEstablishedTimeout', ], 'UdpStreamTimeout' => [ 'shape' => 'Integer', 'locationName' => 'udpStreamTimeout', ], 'UdpTimeout' => [ 'shape' => 'Integer', 'locationName' => 'udpTimeout', ], ], ], 'ConnectionTrackingSpecification' => [ 'type' => 'structure', 'members' => [ 'TcpEstablishedTimeout' => [ 'shape' => 'Integer', 'locationName' => 'tcpEstablishedTimeout', ], 'UdpTimeout' => [ 'shape' => 'Integer', 'locationName' => 'udpTimeout', ], 'UdpStreamTimeout' => [ 'shape' => 'Integer', 'locationName' => 'udpStreamTimeout', ], ], ], 'ConnectionTrackingSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'TcpEstablishedTimeout' => [ 'shape' => 'Integer', ], 'UdpStreamTimeout' => [ 'shape' => 'Integer', ], 'UdpTimeout' => [ 'shape' => 'Integer', ], ], ], 'ConnectionTrackingSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'TcpEstablishedTimeout' => [ 'shape' => 'Integer', 'locationName' => 'tcpEstablishedTimeout', ], 'UdpStreamTimeout' => [ 'shape' => 'Integer', 'locationName' => 'udpStreamTimeout', ], 'UdpTimeout' => [ 'shape' => 'Integer', 'locationName' => 'udpTimeout', ], ], ], 'ConnectivityType' => [ 'type' => 'string', 'enum' => [ 'private', 'public', ], ], 'ContainerFormat' => [ 'type' => 'string', 'enum' => [ 'ova', ], ], 'ConversionIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConversionTaskId', 'locationName' => 'item', ], ], 'ConversionTask' => [ 'type' => 'structure', 'members' => [ 'ConversionTaskId' => [ 'shape' => 'String', 'locationName' => 'conversionTaskId', ], 'ExpirationTime' => [ 'shape' => 'String', 'locationName' => 'expirationTime', ], 'ImportInstance' => [ 'shape' => 'ImportInstanceTaskDetails', 'locationName' => 'importInstance', ], 'ImportVolume' => [ 'shape' => 'ImportVolumeTaskDetails', 'locationName' => 'importVolume', ], 'State' => [ 'shape' => 'ConversionTaskState', 'locationName' => 'state', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ConversionTaskId' => [ 'type' => 'string', ], 'ConversionTaskState' => [ 'type' => 'string', 'enum' => [ 'active', 'cancelling', 'cancelled', 'completed', ], ], 'CoolOffPeriodRequestHours' => [ 'type' => 'integer', 'max' => 72, 'min' => 1, ], 'CoolOffPeriodResponseHours' => [ 'type' => 'integer', ], 'CopyFpgaImageRequest' => [ 'type' => 'structure', 'required' => [ 'SourceFpgaImageId', 'SourceRegion', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'SourceFpgaImageId' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], 'SourceRegion' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', ], ], ], 'CopyFpgaImageResult' => [ 'type' => 'structure', 'members' => [ 'FpgaImageId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageId', ], ], ], 'CopyImageClientToken' => [ 'type' => 'string', 'max' => 128, 'min' => 0, ], 'CopyImageRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'SourceImageId', 'SourceRegion', ], 'members' => [ 'ClientToken' => [ 'shape' => 'CopyImageClientToken', 'idempotencyToken' => true, ], 'Description' => [ 'shape' => 'ImageDescriptionRequest', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', 'locationName' => 'kmsKeyId', ], 'Name' => [ 'shape' => 'ImageNameRequest', ], 'SourceImageId' => [ 'shape' => 'String', ], 'SourceRegion' => [ 'shape' => 'String', ], 'DestinationOutpostArn' => [ 'shape' => 'String', ], 'CopyImageTags' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'SnapshotCopyCompletionDurationMinutes' => [ 'shape' => 'Long', ], 'DestinationAvailabilityZone' => [ 'shape' => 'String', ], 'DestinationAvailabilityZoneId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CopyImageResult' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], ], ], 'CopySnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'SourceRegion', 'SourceSnapshotId', ], 'members' => [ 'Description' => [ 'shape' => 'String', ], 'DestinationOutpostArn' => [ 'shape' => 'String', ], 'DestinationRegion' => [ 'shape' => 'String', 'locationName' => 'destinationRegion', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', 'locationName' => 'kmsKeyId', ], 'PresignedUrl' => [ 'shape' => 'CopySnapshotRequestPSU', 'locationName' => 'presignedUrl', ], 'SourceRegion' => [ 'shape' => 'String', ], 'SourceSnapshotId' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'CompletionDurationMinutes' => [ 'shape' => 'SnapshotCompletionDurationMinutesRequest', ], 'DestinationAvailabilityZone' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CopySnapshotRequestPSU' => [ 'type' => 'string', 'sensitive' => true, ], 'CopySnapshotResult' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], ], ], 'CopyTagsFromSource' => [ 'type' => 'string', 'enum' => [ 'volume', ], ], 'CopyVolumesRequest' => [ 'type' => 'structure', 'required' => [ 'SourceVolumeId', ], 'members' => [ 'SourceVolumeId' => [ 'shape' => 'VolumeId', ], 'Iops' => [ 'shape' => 'Integer', ], 'Size' => [ 'shape' => 'Integer', ], 'VolumeType' => [ 'shape' => 'VolumeType', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'MultiAttachEnabled' => [ 'shape' => 'Boolean', ], 'Throughput' => [ 'shape' => 'Integer', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CopyVolumesResult' => [ 'type' => 'structure', 'members' => [ 'Volumes' => [ 'shape' => 'VolumeList', 'locationName' => 'volumeSet', ], ], ], 'CoreCount' => [ 'type' => 'integer', ], 'CoreCountList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CoreCount', 'locationName' => 'item', ], ], 'CoreNetworkArn' => [ 'type' => 'string', ], 'CpuManufacturer' => [ 'type' => 'string', 'enum' => [ 'intel', 'amd', 'amazon-web-services', 'apple', ], ], 'CpuManufacturerName' => [ 'type' => 'string', ], 'CpuManufacturerSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CpuManufacturer', 'locationName' => 'item', ], ], 'CpuOptions' => [ 'type' => 'structure', 'members' => [ 'CoreCount' => [ 'shape' => 'Integer', 'locationName' => 'coreCount', ], 'ThreadsPerCore' => [ 'shape' => 'Integer', 'locationName' => 'threadsPerCore', ], 'AmdSevSnp' => [ 'shape' => 'AmdSevSnpSpecification', 'locationName' => 'amdSevSnp', ], 'NestedVirtualization' => [ 'shape' => 'NestedVirtualizationSpecification', 'locationName' => 'nestedVirtualization', ], ], ], 'CpuOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'CoreCount' => [ 'shape' => 'Integer', ], 'ThreadsPerCore' => [ 'shape' => 'Integer', ], 'AmdSevSnp' => [ 'shape' => 'AmdSevSnpSpecification', ], 'NestedVirtualization' => [ 'shape' => 'NestedVirtualizationSpecification', ], ], ], 'CpuPerformanceFactor' => [ 'type' => 'structure', 'members' => [ 'References' => [ 'shape' => 'PerformanceFactorReferenceSet', 'locationName' => 'referenceSet', ], ], ], 'CpuPerformanceFactorRequest' => [ 'type' => 'structure', 'members' => [ 'References' => [ 'shape' => 'PerformanceFactorReferenceSetRequest', 'locationName' => 'Reference', ], ], ], 'CreateCapacityManagerDataExportRequest' => [ 'type' => 'structure', 'required' => [ 'S3BucketName', 'Schedule', 'OutputFormat', ], 'members' => [ 'S3BucketName' => [ 'shape' => 'String', ], 'S3BucketPrefix' => [ 'shape' => 'String', ], 'Schedule' => [ 'shape' => 'Schedule', ], 'OutputFormat' => [ 'shape' => 'OutputFormat', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateCapacityManagerDataExportResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerDataExportId' => [ 'shape' => 'CapacityManagerDataExportId', 'locationName' => 'capacityManagerDataExportId', ], ], ], 'CreateCapacityReservationBySplittingRequest' => [ 'type' => 'structure', 'required' => [ 'SourceCapacityReservationId', 'InstanceCount', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'SourceCapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateCapacityReservationBySplittingResult' => [ 'type' => 'structure', 'members' => [ 'SourceCapacityReservation' => [ 'shape' => 'CapacityReservation', 'locationName' => 'sourceCapacityReservation', ], 'DestinationCapacityReservation' => [ 'shape' => 'CapacityReservation', 'locationName' => 'destinationCapacityReservation', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], ], ], 'CreateCapacityReservationCancellationQuoteRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', ], 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateCapacityReservationCancellationQuoteResult' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationCancellationQuote' => [ 'shape' => 'CapacityReservationCancellationQuote', 'locationName' => 'capacityReservationCancellationQuote', ], ], ], 'CreateCapacityReservationFleetRequest' => [ 'type' => 'structure', 'required' => [ 'TotalTargetCapacity', ], 'members' => [ 'AllocationStrategy' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'InstanceTypeSpecifications' => [ 'shape' => 'ReservationFleetInstanceSpecificationList', 'locationName' => 'InstanceTypeSpecification', ], 'Tenancy' => [ 'shape' => 'FleetCapacityReservationTenancy', ], 'TotalTargetCapacity' => [ 'shape' => 'Integer', ], 'EndDate' => [ 'shape' => 'MillisecondDateTime', ], 'InstanceMatchCriteria' => [ 'shape' => 'FleetInstanceMatchCriteria', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateCapacityReservationFleetResult' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationFleetId' => [ 'shape' => 'CapacityReservationFleetId', 'locationName' => 'capacityReservationFleetId', ], 'State' => [ 'shape' => 'CapacityReservationFleetState', 'locationName' => 'state', ], 'TotalTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalTargetCapacity', ], 'TotalFulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'totalFulfilledCapacity', ], 'InstanceMatchCriteria' => [ 'shape' => 'FleetInstanceMatchCriteria', 'locationName' => 'instanceMatchCriteria', ], 'AllocationStrategy' => [ 'shape' => 'String', 'locationName' => 'allocationStrategy', ], 'CreateTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createTime', ], 'EndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'endDate', ], 'Tenancy' => [ 'shape' => 'FleetCapacityReservationTenancy', 'locationName' => 'tenancy', ], 'FleetCapacityReservations' => [ 'shape' => 'FleetCapacityReservationSet', 'locationName' => 'fleetCapacityReservationSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'CreateCapacityReservationRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceType', 'InstancePlatform', 'InstanceCount', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', ], 'InstanceType' => [ 'shape' => 'String', ], 'InstancePlatform' => [ 'shape' => 'CapacityReservationInstancePlatform', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'Tenancy' => [ 'shape' => 'CapacityReservationTenancy', ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'EbsOptimized' => [ 'shape' => 'Boolean', ], 'EphemeralStorage' => [ 'shape' => 'Boolean', ], 'EndDate' => [ 'shape' => 'DateTime', ], 'EndDateType' => [ 'shape' => 'EndDateType', ], 'InstanceMatchCriteria' => [ 'shape' => 'InstanceMatchCriteria', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'OutpostArn' => [ 'shape' => 'OutpostArn', ], 'PlacementGroupArn' => [ 'shape' => 'PlacementGroupArn', ], 'StartDate' => [ 'shape' => 'MillisecondDateTime', ], 'CommitmentDuration' => [ 'shape' => 'CapacityReservationCommitmentDuration', ], 'DeliveryPreference' => [ 'shape' => 'CapacityReservationDeliveryPreference', ], ], ], 'CreateCapacityReservationResult' => [ 'type' => 'structure', 'members' => [ 'CapacityReservation' => [ 'shape' => 'CapacityReservation', 'locationName' => 'capacityReservation', ], ], ], 'CreateCarrierGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateCarrierGatewayResult' => [ 'type' => 'structure', 'members' => [ 'CarrierGateway' => [ 'shape' => 'CarrierGateway', 'locationName' => 'carrierGateway', ], ], ], 'CreateClientVpnEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'ServerCertificateArn', 'AuthenticationOptions', 'ConnectionLogOptions', ], 'members' => [ 'ClientCidrBlock' => [ 'shape' => 'String', ], 'ServerCertificateArn' => [ 'shape' => 'String', ], 'AuthenticationOptions' => [ 'shape' => 'ClientVpnAuthenticationRequestList', 'locationName' => 'Authentication', ], 'ConnectionLogOptions' => [ 'shape' => 'ConnectionLogOptions', ], 'DnsServers' => [ 'shape' => 'ValueStringList', ], 'TransportProtocol' => [ 'shape' => 'TransportProtocol', ], 'VpnPort' => [ 'shape' => 'Integer', ], 'Description' => [ 'shape' => 'String', ], 'SplitTunnel' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'SecurityGroupIds' => [ 'shape' => 'ClientVpnSecurityGroupIdSet', 'locationName' => 'SecurityGroupId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'SelfServicePortal' => [ 'shape' => 'SelfServicePortal', ], 'ClientConnectOptions' => [ 'shape' => 'ClientConnectOptions', ], 'SessionTimeoutHours' => [ 'shape' => 'Integer', ], 'ClientLoginBannerOptions' => [ 'shape' => 'ClientLoginBannerOptions', ], 'ClientRouteEnforcementOptions' => [ 'shape' => 'ClientRouteEnforcementOptions', ], 'DisconnectOnSessionTimeout' => [ 'shape' => 'Boolean', ], 'EndpointIpAddressType' => [ 'shape' => 'EndpointIpAddressType', ], 'TrafficIpAddressType' => [ 'shape' => 'TrafficIpAddressType', ], 'TransitGatewayConfiguration' => [ 'shape' => 'TransitGatewayConfigurationInputStructure', ], ], ], 'CreateClientVpnEndpointResult' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Status' => [ 'shape' => 'ClientVpnEndpointStatus', 'locationName' => 'status', ], 'DnsName' => [ 'shape' => 'String', 'locationName' => 'dnsName', ], ], ], 'CreateClientVpnRouteRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'DestinationCidrBlock', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'TargetVpcSubnetId' => [ 'shape' => 'SubnetId', ], 'Description' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateClientVpnRouteResult' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ClientVpnRouteStatus', 'locationName' => 'status', ], ], ], 'CreateCoipCidrRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', 'CoipPoolId', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'CoipPoolId' => [ 'shape' => 'Ipv4PoolCoipId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateCoipCidrResult' => [ 'type' => 'structure', 'members' => [ 'CoipCidr' => [ 'shape' => 'CoipCidr', 'locationName' => 'coipCidr', ], ], ], 'CreateCoipPoolRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableId', ], 'members' => [ 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateCoipPoolResult' => [ 'type' => 'structure', 'members' => [ 'CoipPool' => [ 'shape' => 'CoipPool', 'locationName' => 'coipPool', ], ], ], 'CreateCustomerGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'BgpAsn' => [ 'shape' => 'Integer', ], 'PublicIp' => [ 'shape' => 'String', ], 'CertificateArn' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'GatewayType', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DeviceName' => [ 'shape' => 'String', ], 'IpAddress' => [ 'shape' => 'String', ], 'BgpAsnExtended' => [ 'shape' => 'Long', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateCustomerGatewayResult' => [ 'type' => 'structure', 'members' => [ 'CustomerGateway' => [ 'shape' => 'CustomerGateway', 'locationName' => 'customerGateway', ], ], ], 'CreateDefaultSubnetRequest' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Ipv6Native' => [ 'shape' => 'Boolean', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], ], ], 'CreateDefaultSubnetResult' => [ 'type' => 'structure', 'members' => [ 'Subnet' => [ 'shape' => 'Subnet', 'locationName' => 'subnet', ], ], ], 'CreateDefaultVpcRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateDefaultVpcResult' => [ 'type' => 'structure', 'members' => [ 'Vpc' => [ 'shape' => 'Vpc', 'locationName' => 'vpc', ], ], ], 'CreateDelegateMacVolumeOwnershipTaskRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'MacCredentials', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'MacCredentials' => [ 'shape' => 'SensitiveMacCredentials', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateDelegateMacVolumeOwnershipTaskResult' => [ 'type' => 'structure', 'members' => [ 'MacModificationTask' => [ 'shape' => 'MacModificationTask', 'locationName' => 'macModificationTask', ], ], ], 'CreateDhcpOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'DhcpConfigurations', ], 'members' => [ 'DhcpConfigurations' => [ 'shape' => 'NewDhcpConfigurationList', 'locationName' => 'dhcpConfiguration', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateDhcpOptionsResult' => [ 'type' => 'structure', 'members' => [ 'DhcpOptions' => [ 'shape' => 'DhcpOptions', 'locationName' => 'dhcpOptions', ], ], ], 'CreateEgressOnlyInternetGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateEgressOnlyInternetGatewayResult' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'EgressOnlyInternetGateway' => [ 'shape' => 'EgressOnlyInternetGateway', 'locationName' => 'egressOnlyInternetGateway', ], ], ], 'CreateFleetError' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateAndOverrides' => [ 'shape' => 'LaunchTemplateAndOverridesResponse', 'locationName' => 'launchTemplateAndOverrides', ], 'Lifecycle' => [ 'shape' => 'InstanceLifecycle', 'locationName' => 'lifecycle', ], 'ErrorCode' => [ 'shape' => 'String', 'locationName' => 'errorCode', ], 'ErrorMessage' => [ 'shape' => 'String', 'locationName' => 'errorMessage', ], ], ], 'CreateFleetErrorsSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CreateFleetError', 'locationName' => 'item', ], ], 'CreateFleetInstance' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateAndOverrides' => [ 'shape' => 'LaunchTemplateAndOverridesResponse', 'locationName' => 'launchTemplateAndOverrides', ], 'Lifecycle' => [ 'shape' => 'InstanceLifecycle', 'locationName' => 'lifecycle', ], 'InstanceIds' => [ 'shape' => 'InstanceIdsSet', 'locationName' => 'instanceIds', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], ], ], 'CreateFleetInstancesSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CreateFleetInstance', 'locationName' => 'item', ], ], 'CreateFleetRequest' => [ 'type' => 'structure', 'required' => [ 'LaunchTemplateConfigs', 'TargetCapacitySpecification', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'SpotOptions' => [ 'shape' => 'SpotOptionsRequest', ], 'OnDemandOptions' => [ 'shape' => 'OnDemandOptionsRequest', ], 'ReservedCapacityOptions' => [ 'shape' => 'ReservedCapacityOptionsRequest', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'FleetExcessCapacityTerminationPolicy', ], 'LaunchTemplateConfigs' => [ 'shape' => 'FleetLaunchTemplateConfigListRequest', ], 'TargetCapacitySpecification' => [ 'shape' => 'TargetCapacitySpecificationRequest', ], 'TerminateInstancesWithExpiration' => [ 'shape' => 'Boolean', ], 'Type' => [ 'shape' => 'FleetType', ], 'ValidFrom' => [ 'shape' => 'DateTime', ], 'ValidUntil' => [ 'shape' => 'DateTime', ], 'ReplaceUnhealthyInstances' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'Context' => [ 'shape' => 'String', ], ], ], 'CreateFleetResult' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', 'locationName' => 'fleetId', ], 'Errors' => [ 'shape' => 'CreateFleetErrorsSet', 'locationName' => 'errorSet', ], 'Instances' => [ 'shape' => 'CreateFleetInstancesSet', 'locationName' => 'fleetInstanceSet', ], ], ], 'CreateFlowLogsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIds', 'ResourceType', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', ], 'DeliverLogsPermissionArn' => [ 'shape' => 'String', ], 'DeliverCrossAccountRole' => [ 'shape' => 'String', ], 'LogGroupName' => [ 'shape' => 'String', ], 'ResourceIds' => [ 'shape' => 'FlowLogResourceIds', 'locationName' => 'ResourceId', ], 'ResourceType' => [ 'shape' => 'FlowLogsResourceType', ], 'TrafficType' => [ 'shape' => 'TrafficType', ], 'LogDestinationType' => [ 'shape' => 'LogDestinationType', ], 'LogDestination' => [ 'shape' => 'String', ], 'LogFormat' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'MaxAggregationInterval' => [ 'shape' => 'Integer', ], 'DestinationOptions' => [ 'shape' => 'DestinationOptionsRequest', ], 'TagFieldSpecifications' => [ 'shape' => 'TagFieldSpecificationListRequest', 'locationName' => 'TagFieldSpecification', ], ], ], 'CreateFlowLogsResult' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'FlowLogIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'flowLogIdSet', ], 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'CreateFpgaImageRequest' => [ 'type' => 'structure', 'required' => [ 'InputStorageLocation', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InputStorageLocation' => [ 'shape' => 'StorageLocation', ], 'LogsStorageLocation' => [ 'shape' => 'StorageLocation', ], 'Description' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateFpgaImageResult' => [ 'type' => 'structure', 'members' => [ 'FpgaImageId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageId', ], 'FpgaImageGlobalId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageGlobalId', ], ], ], 'CreateImageRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'Name', ], 'members' => [ 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'SnapshotLocation' => [ 'shape' => 'SnapshotLocationEnum', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'Name' => [ 'shape' => 'ImageNameRequest', 'locationName' => 'name', ], 'Description' => [ 'shape' => 'ImageDescriptionRequest', 'locationName' => 'description', ], 'NoReboot' => [ 'shape' => 'Boolean', 'locationName' => 'noReboot', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingRequestList', 'locationName' => 'blockDeviceMapping', ], ], ], 'CreateImageResult' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], ], ], 'CreateImageUsageReportClientToken' => [ 'type' => 'string', 'max' => 128, 'min' => 0, ], 'CreateImageUsageReportRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', 'ResourceTypes', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ResourceTypes' => [ 'shape' => 'ImageUsageResourceTypeRequestList', 'locationName' => 'ResourceType', ], 'AccountIds' => [ 'shape' => 'ImageUsageReportUserIdStringList', 'locationName' => 'AccountId', ], 'ClientToken' => [ 'shape' => 'CreateImageUsageReportClientToken', 'idempotencyToken' => true, ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateImageUsageReportResult' => [ 'type' => 'structure', 'members' => [ 'ReportId' => [ 'shape' => 'ImageUsageReportId', 'locationName' => 'reportId', ], ], ], 'CreateInstanceConnectEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdStringListRequest', 'locationName' => 'SecurityGroupId', ], 'PreserveClientIp' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', ], ], ], 'CreateInstanceConnectEndpointResult' => [ 'type' => 'structure', 'members' => [ 'InstanceConnectEndpoint' => [ 'shape' => 'Ec2InstanceConnectEndpoint', 'locationName' => 'instanceConnectEndpoint', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateInstanceEventWindowRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Name' => [ 'shape' => 'String', ], 'TimeRanges' => [ 'shape' => 'InstanceEventWindowTimeRangeRequestSet', 'locationName' => 'TimeRange', ], 'CronExpression' => [ 'shape' => 'InstanceEventWindowCronExpression', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateInstanceEventWindowResult' => [ 'type' => 'structure', 'members' => [ 'InstanceEventWindow' => [ 'shape' => 'InstanceEventWindow', 'locationName' => 'instanceEventWindow', ], ], ], 'CreateInstanceExportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'TargetEnvironment', 'ExportToS3Task', ], 'members' => [ 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'TargetEnvironment' => [ 'shape' => 'ExportEnvironment', 'locationName' => 'targetEnvironment', ], 'ExportToS3Task' => [ 'shape' => 'ExportToS3TaskSpecification', 'locationName' => 'exportToS3', ], ], ], 'CreateInstanceExportTaskResult' => [ 'type' => 'structure', 'members' => [ 'ExportTask' => [ 'shape' => 'ExportTask', 'locationName' => 'exportTask', ], ], ], 'CreateInternetGatewayRequest' => [ 'type' => 'structure', 'members' => [ 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateInternetGatewayResult' => [ 'type' => 'structure', 'members' => [ 'InternetGateway' => [ 'shape' => 'InternetGateway', 'locationName' => 'internetGateway', ], ], ], 'CreateInterruptibleCapacityReservationAllocationRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', 'InstanceCount', ], 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateInterruptibleCapacityReservationAllocationResult' => [ 'type' => 'structure', 'members' => [ 'SourceCapacityReservationId' => [ 'shape' => 'CapacityReservationId', 'locationName' => 'sourceCapacityReservationId', ], 'TargetInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'targetInstanceCount', ], 'Status' => [ 'shape' => 'InterruptibleCapacityReservationAllocationStatus', 'locationName' => 'status', ], 'InterruptionType' => [ 'shape' => 'InterruptionType', 'locationName' => 'interruptionType', ], ], ], 'CreateIpamExternalResourceVerificationTokenRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamId' => [ 'shape' => 'IpamId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateIpamExternalResourceVerificationTokenResult' => [ 'type' => 'structure', 'members' => [ 'IpamExternalResourceVerificationToken' => [ 'shape' => 'IpamExternalResourceVerificationToken', 'locationName' => 'ipamExternalResourceVerificationToken', ], ], ], 'CreateIpamPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'IpamId' => [ 'shape' => 'IpamId', ], ], ], 'CreateIpamPolicyResult' => [ 'type' => 'structure', 'members' => [ 'IpamPolicy' => [ 'shape' => 'IpamPolicy', 'locationName' => 'ipamPolicy', ], ], ], 'CreateIpamPoolRequest' => [ 'type' => 'structure', 'required' => [ 'IpamScopeId', 'AddressFamily', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', ], 'Locale' => [ 'shape' => 'String', ], 'SourceIpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Description' => [ 'shape' => 'String', ], 'AddressFamily' => [ 'shape' => 'AddressFamily', ], 'AutoImport' => [ 'shape' => 'Boolean', ], 'PubliclyAdvertisable' => [ 'shape' => 'Boolean', ], 'AllocationMinNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', ], 'AllocationMaxNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', ], 'AllocationDefaultNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', ], 'AllocationResourceTags' => [ 'shape' => 'RequestIpamResourceTagList', 'locationName' => 'AllocationResourceTag', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'AwsService' => [ 'shape' => 'IpamPoolAwsService', ], 'PublicIpSource' => [ 'shape' => 'IpamPoolPublicIpSource', ], 'SourceResource' => [ 'shape' => 'IpamPoolSourceResourceRequest', ], ], ], 'CreateIpamPoolResult' => [ 'type' => 'structure', 'members' => [ 'IpamPool' => [ 'shape' => 'IpamPool', 'locationName' => 'ipamPool', ], ], ], 'CreateIpamPrefixListResolverRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', 'AddressFamily', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamId' => [ 'shape' => 'IpamId', ], 'Description' => [ 'shape' => 'String', ], 'AddressFamily' => [ 'shape' => 'AddressFamily', ], 'Rules' => [ 'shape' => 'IpamPrefixListResolverRuleRequestSet', 'locationName' => 'Rule', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateIpamPrefixListResolverResult' => [ 'type' => 'structure', 'members' => [ 'IpamPrefixListResolver' => [ 'shape' => 'IpamPrefixListResolver', 'locationName' => 'ipamPrefixListResolver', ], ], ], 'CreateIpamPrefixListResolverTargetRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPrefixListResolverId', 'PrefixListId', 'PrefixListRegion', 'TrackLatestVersion', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', ], 'PrefixListId' => [ 'shape' => 'String', ], 'PrefixListRegion' => [ 'shape' => 'String', ], 'DesiredVersion' => [ 'shape' => 'BoxedLong', ], 'TrackLatestVersion' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateIpamPrefixListResolverTargetResult' => [ 'type' => 'structure', 'members' => [ 'IpamPrefixListResolverTarget' => [ 'shape' => 'IpamPrefixListResolverTarget', 'locationName' => 'ipamPrefixListResolverTarget', ], ], ], 'CreateIpamRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Description' => [ 'shape' => 'String', ], 'OperatingRegions' => [ 'shape' => 'AddIpamOperatingRegionSet', 'locationName' => 'OperatingRegion', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'Tier' => [ 'shape' => 'IpamTier', ], 'EnablePrivateGua' => [ 'shape' => 'Boolean', ], 'MeteredAccount' => [ 'shape' => 'IpamMeteredAccount', ], ], ], 'CreateIpamResourceDiscoveryRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Description' => [ 'shape' => 'String', ], 'OperatingRegions' => [ 'shape' => 'AddIpamOperatingRegionSet', 'locationName' => 'OperatingRegion', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateIpamResourceDiscoveryResult' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscovery' => [ 'shape' => 'IpamResourceDiscovery', 'locationName' => 'ipamResourceDiscovery', ], ], ], 'CreateIpamResult' => [ 'type' => 'structure', 'members' => [ 'Ipam' => [ 'shape' => 'Ipam', 'locationName' => 'ipam', ], ], ], 'CreateIpamScopeRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamId' => [ 'shape' => 'IpamId', ], 'Description' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'ExternalAuthorityConfiguration' => [ 'shape' => 'ExternalAuthorityConfiguration', ], ], ], 'CreateIpamScopeResult' => [ 'type' => 'structure', 'members' => [ 'IpamScope' => [ 'shape' => 'IpamScope', 'locationName' => 'ipamScope', ], ], ], 'CreateKeyPairRequest' => [ 'type' => 'structure', 'required' => [ 'KeyName', ], 'members' => [ 'KeyName' => [ 'shape' => 'String', ], 'KeyType' => [ 'shape' => 'KeyType', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'KeyFormat' => [ 'shape' => 'KeyFormat', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateLaunchTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'LaunchTemplateName', 'LaunchTemplateData', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'LaunchTemplateName' => [ 'shape' => 'String', ], 'VersionDescription' => [ 'shape' => 'VersionDescription', ], 'LaunchTemplateData' => [ 'shape' => 'RequestLaunchTemplateData', ], 'Operator' => [ 'shape' => 'OperatorRequest', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateLaunchTemplateResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplate' => [ 'shape' => 'LaunchTemplate', 'locationName' => 'launchTemplate', ], 'Warning' => [ 'shape' => 'ValidationWarning', 'locationName' => 'warning', ], ], ], 'CreateLaunchTemplateVersionRequest' => [ 'type' => 'structure', 'required' => [ 'LaunchTemplateData', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'SourceVersion' => [ 'shape' => 'String', ], 'VersionDescription' => [ 'shape' => 'VersionDescription', ], 'LaunchTemplateData' => [ 'shape' => 'RequestLaunchTemplateData', ], 'ResolveAlias' => [ 'shape' => 'Boolean', ], ], ], 'CreateLaunchTemplateVersionResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateVersion' => [ 'shape' => 'LaunchTemplateVersion', 'locationName' => 'launchTemplateVersion', ], 'Warning' => [ 'shape' => 'ValidationWarning', 'locationName' => 'warning', ], ], ], 'CreateLocalGatewayRouteRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', ], 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'DestinationPrefixListId' => [ 'shape' => 'PrefixListResourceId', ], ], ], 'CreateLocalGatewayRouteResult' => [ 'type' => 'structure', 'members' => [ 'Route' => [ 'shape' => 'LocalGatewayRoute', 'locationName' => 'route', ], ], ], 'CreateLocalGatewayRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayId', ], 'members' => [ 'LocalGatewayId' => [ 'shape' => 'LocalGatewayId', ], 'Mode' => [ 'shape' => 'LocalGatewayRouteTableMode', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateLocalGatewayRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTable' => [ 'shape' => 'LocalGatewayRouteTable', 'locationName' => 'localGatewayRouteTable', ], ], ], 'CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableId', 'LocalGatewayVirtualInterfaceGroupId', ], 'members' => [ 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', ], 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVirtualInterfaceGroupAssociation' => [ 'shape' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociation', 'locationName' => 'localGatewayRouteTableVirtualInterfaceGroupAssociation', ], ], ], 'CreateLocalGatewayRouteTableVpcAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableId', 'VpcId', ], 'members' => [ 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateLocalGatewayRouteTableVpcAssociationResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVpcAssociation' => [ 'shape' => 'LocalGatewayRouteTableVpcAssociation', 'locationName' => 'localGatewayRouteTableVpcAssociation', ], ], ], 'CreateLocalGatewayVirtualInterfaceGroupRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayId', ], 'members' => [ 'LocalGatewayId' => [ 'shape' => 'LocalGatewayId', ], 'LocalBgpAsn' => [ 'shape' => 'Integer', ], 'LocalBgpAsnExtended' => [ 'shape' => 'Long', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateLocalGatewayVirtualInterfaceGroupResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterfaceGroup' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroup', 'locationName' => 'localGatewayVirtualInterfaceGroup', ], ], ], 'CreateLocalGatewayVirtualInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayVirtualInterfaceGroupId', 'OutpostLagId', 'Vlan', 'LocalAddress', 'PeerAddress', ], 'members' => [ 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', ], 'OutpostLagId' => [ 'shape' => 'OutpostLagId', ], 'Vlan' => [ 'shape' => 'Integer', ], 'LocalAddress' => [ 'shape' => 'String', ], 'PeerAddress' => [ 'shape' => 'String', ], 'PeerBgpAsn' => [ 'shape' => 'Integer', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'PeerBgpAsnExtended' => [ 'shape' => 'Long', ], ], ], 'CreateLocalGatewayVirtualInterfaceResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterface' => [ 'shape' => 'LocalGatewayVirtualInterface', 'locationName' => 'localGatewayVirtualInterface', ], ], ], 'CreateMacSystemIntegrityProtectionModificationTaskRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'MacSystemIntegrityProtectionStatus', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'MacCredentials' => [ 'shape' => 'SensitiveMacCredentials', ], 'MacSystemIntegrityProtectionConfiguration' => [ 'shape' => 'MacSystemIntegrityProtectionConfigurationRequest', ], 'MacSystemIntegrityProtectionStatus' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateMacSystemIntegrityProtectionModificationTaskResult' => [ 'type' => 'structure', 'members' => [ 'MacModificationTask' => [ 'shape' => 'MacModificationTask', 'locationName' => 'macModificationTask', ], ], ], 'CreateManagedPrefixListRequest' => [ 'type' => 'structure', 'required' => [ 'PrefixListName', 'MaxEntries', 'AddressFamily', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'PrefixListName' => [ 'shape' => 'String', ], 'Entries' => [ 'shape' => 'AddPrefixListEntries', 'locationName' => 'Entry', ], 'MaxEntries' => [ 'shape' => 'Integer', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'AddressFamily' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateManagedPrefixListResult' => [ 'type' => 'structure', 'members' => [ 'PrefixList' => [ 'shape' => 'ManagedPrefixList', 'locationName' => 'prefixList', ], ], ], 'CreateNatGatewayRequest' => [ 'type' => 'structure', 'members' => [ 'AvailabilityMode' => [ 'shape' => 'AvailabilityMode', ], 'AllocationId' => [ 'shape' => 'AllocationId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'AvailabilityZoneAddresses' => [ 'shape' => 'AvailabilityZoneAddresses', 'locationName' => 'AvailabilityZoneAddress', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ConnectivityType' => [ 'shape' => 'ConnectivityType', ], 'PrivateIpAddress' => [ 'shape' => 'String', ], 'SecondaryAllocationIds' => [ 'shape' => 'AllocationIdList', 'locationName' => 'SecondaryAllocationId', ], 'SecondaryPrivateIpAddresses' => [ 'shape' => 'IpList', 'locationName' => 'SecondaryPrivateIpAddress', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'PrivateIpAddressCount', ], ], ], 'CreateNatGatewayResult' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'NatGateway' => [ 'shape' => 'NatGateway', 'locationName' => 'natGateway', ], ], ], 'CreateNetworkAclEntryRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkAclId', 'RuleNumber', 'Protocol', 'RuleAction', 'Egress', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkAclId' => [ 'shape' => 'NetworkAclId', 'locationName' => 'networkAclId', ], 'RuleNumber' => [ 'shape' => 'Integer', 'locationName' => 'ruleNumber', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'RuleAction' => [ 'shape' => 'RuleAction', 'locationName' => 'ruleAction', ], 'Egress' => [ 'shape' => 'Boolean', 'locationName' => 'egress', ], 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], 'IcmpTypeCode' => [ 'shape' => 'IcmpTypeCode', 'locationName' => 'Icmp', ], 'PortRange' => [ 'shape' => 'PortRange', 'locationName' => 'portRange', ], ], ], 'CreateNetworkAclRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], ], ], 'CreateNetworkAclResult' => [ 'type' => 'structure', 'members' => [ 'NetworkAcl' => [ 'shape' => 'NetworkAcl', 'locationName' => 'networkAcl', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateNetworkInsightsAccessScopeRequest' => [ 'type' => 'structure', 'required' => [ 'ClientToken', ], 'members' => [ 'MatchPaths' => [ 'shape' => 'AccessScopePathListRequest', 'locationName' => 'MatchPath', ], 'ExcludePaths' => [ 'shape' => 'AccessScopePathListRequest', 'locationName' => 'ExcludePath', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateNetworkInsightsAccessScopeResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScope' => [ 'shape' => 'NetworkInsightsAccessScope', 'locationName' => 'networkInsightsAccessScope', ], 'NetworkInsightsAccessScopeContent' => [ 'shape' => 'NetworkInsightsAccessScopeContent', 'locationName' => 'networkInsightsAccessScopeContent', ], ], ], 'CreateNetworkInsightsPathRequest' => [ 'type' => 'structure', 'required' => [ 'Source', 'Protocol', 'ClientToken', ], 'members' => [ 'SourceIp' => [ 'shape' => 'IpAddress', ], 'DestinationIp' => [ 'shape' => 'IpAddress', ], 'Source' => [ 'shape' => 'NetworkInsightsResourceId', ], 'Destination' => [ 'shape' => 'NetworkInsightsResourceId', ], 'Protocol' => [ 'shape' => 'Protocol', ], 'DestinationPort' => [ 'shape' => 'Port', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'FilterAtSource' => [ 'shape' => 'PathRequestFilter', ], 'FilterAtDestination' => [ 'shape' => 'PathRequestFilter', ], ], ], 'CreateNetworkInsightsPathResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsPath' => [ 'shape' => 'NetworkInsightsPath', 'locationName' => 'networkInsightsPath', ], ], ], 'CreateNetworkInterfacePermissionRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', 'Permission', ], 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'AwsAccountId' => [ 'shape' => 'String', ], 'AwsService' => [ 'shape' => 'String', ], 'Permission' => [ 'shape' => 'InterfacePermissionType', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateNetworkInterfacePermissionResult' => [ 'type' => 'structure', 'members' => [ 'InterfacePermission' => [ 'shape' => 'NetworkInterfacePermission', 'locationName' => 'interfacePermission', ], ], ], 'CreateNetworkInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', ], 'members' => [ 'Ipv4Prefixes' => [ 'shape' => 'Ipv4PrefixList', 'locationName' => 'Ipv4Prefix', ], 'Ipv4PrefixCount' => [ 'shape' => 'Integer', ], 'Ipv6Prefixes' => [ 'shape' => 'Ipv6PrefixList', 'locationName' => 'Ipv6Prefix', ], 'Ipv6PrefixCount' => [ 'shape' => 'Integer', ], 'InterfaceType' => [ 'shape' => 'NetworkInterfaceCreationType', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'EnablePrimaryIpv6' => [ 'shape' => 'Boolean', ], 'ConnectionTrackingSpecification' => [ 'shape' => 'ConnectionTrackingSpecificationRequest', ], 'Operator' => [ 'shape' => 'OperatorRequest', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'Groups' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressSpecificationList', 'locationName' => 'privateIpAddresses', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'secondaryPrivateIpAddressCount', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressList', 'locationName' => 'ipv6Addresses', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', 'locationName' => 'ipv6AddressCount', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateNetworkInterfaceResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInterface' => [ 'shape' => 'NetworkInterface', 'locationName' => 'networkInterface', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreatePlacementGroupRequest' => [ 'type' => 'structure', 'members' => [ 'PartitionCount' => [ 'shape' => 'Integer', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'SpreadLevel' => [ 'shape' => 'SpreadLevel', ], 'LinkedGroupId' => [ 'shape' => 'PlacementGroupId', ], 'Operator' => [ 'shape' => 'OperatorRequest', ], 'ParentGroupId' => [ 'shape' => 'PlacementGroupId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'Strategy' => [ 'shape' => 'PlacementStrategy', 'locationName' => 'strategy', ], ], ], 'CreatePlacementGroupResult' => [ 'type' => 'structure', 'members' => [ 'PlacementGroup' => [ 'shape' => 'PlacementGroup', 'locationName' => 'placementGroup', ], ], ], 'CreatePublicIpv4PoolRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'NetworkBorderGroup' => [ 'shape' => 'String', ], ], ], 'CreatePublicIpv4PoolResult' => [ 'type' => 'structure', 'members' => [ 'PoolId' => [ 'shape' => 'Ipv4PoolEc2Id', 'locationName' => 'poolId', ], ], ], 'CreateReplaceRootVolumeTaskRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'DeleteReplacedRootVolume' => [ 'shape' => 'Boolean', ], 'VolumeInitializationRate' => [ 'shape' => 'Long', ], ], ], 'CreateReplaceRootVolumeTaskResult' => [ 'type' => 'structure', 'members' => [ 'ReplaceRootVolumeTask' => [ 'shape' => 'ReplaceRootVolumeTask', 'locationName' => 'replaceRootVolumeTask', ], ], ], 'CreateReservedInstancesListingRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstancesId', 'InstanceCount', 'PriceSchedules', 'ClientToken', ], 'members' => [ 'ReservedInstancesId' => [ 'shape' => 'ReservationId', 'locationName' => 'reservedInstancesId', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'PriceSchedules' => [ 'shape' => 'PriceScheduleSpecificationList', 'locationName' => 'priceSchedules', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateReservedInstancesListingResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesListings' => [ 'shape' => 'ReservedInstancesListingList', 'locationName' => 'reservedInstancesListingsSet', ], ], ], 'CreateRestoreImageTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'ObjectKey', ], 'members' => [ 'Bucket' => [ 'shape' => 'String', ], 'ObjectKey' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'ImageNameRequest', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateRestoreImageTaskResult' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], ], ], 'CreateRouteRequest' => [ 'type' => 'structure', 'required' => [ 'RouteTableId', ], 'members' => [ 'DestinationPrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'VpcEndpointId' => [ 'shape' => 'VpcEndpointId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'LocalGatewayId' => [ 'shape' => 'LocalGatewayId', ], 'CarrierGatewayId' => [ 'shape' => 'CarrierGatewayId', ], 'CoreNetworkArn' => [ 'shape' => 'CoreNetworkArn', ], 'OdbNetworkArn' => [ 'shape' => 'OdbNetworkArn', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', 'locationName' => 'routeTableId', ], 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'GatewayId' => [ 'shape' => 'RouteGatewayId', 'locationName' => 'gatewayId', ], 'DestinationIpv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationIpv6CidrBlock', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'EgressOnlyInternetGatewayId', 'locationName' => 'egressOnlyInternetGatewayId', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'VpcPeeringConnectionId', 'locationName' => 'vpcPeeringConnectionId', ], 'NatGatewayId' => [ 'shape' => 'NatGatewayId', 'locationName' => 'natGatewayId', ], ], ], 'CreateRouteResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'CreateRouteServerEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', 'SubnetId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateRouteServerEndpointResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerEndpoint' => [ 'shape' => 'RouteServerEndpoint', 'locationName' => 'routeServerEndpoint', ], ], ], 'CreateRouteServerPeerRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerEndpointId', 'PeerAddress', 'BgpOptions', ], 'members' => [ 'RouteServerEndpointId' => [ 'shape' => 'RouteServerEndpointId', ], 'PeerAddress' => [ 'shape' => 'String', ], 'BgpOptions' => [ 'shape' => 'RouteServerBgpOptionsRequest', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateRouteServerPeerResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerPeer' => [ 'shape' => 'RouteServerPeer', 'locationName' => 'routeServerPeer', ], ], ], 'CreateRouteServerRequest' => [ 'type' => 'structure', 'required' => [ 'AmazonSideAsn', ], 'members' => [ 'AmazonSideAsn' => [ 'shape' => 'Long', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'PersistRoutes' => [ 'shape' => 'RouteServerPersistRoutesAction', ], 'PersistRoutesDuration' => [ 'shape' => 'BoxedLong', ], 'SnsNotificationsEnabled' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateRouteServerResult' => [ 'type' => 'structure', 'members' => [ 'RouteServer' => [ 'shape' => 'RouteServer', 'locationName' => 'routeServer', ], ], ], 'CreateRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], ], ], 'CreateRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'RouteTable' => [ 'shape' => 'RouteTable', 'locationName' => 'routeTable', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateSecondaryNetworkRequest' => [ 'type' => 'structure', 'required' => [ 'Ipv4CidrBlock', 'NetworkType', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Ipv4CidrBlock' => [ 'shape' => 'String', ], 'NetworkType' => [ 'shape' => 'SecondaryNetworkType', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateSecondaryNetworkResult' => [ 'type' => 'structure', 'members' => [ 'SecondaryNetwork' => [ 'shape' => 'SecondaryNetwork', 'locationName' => 'secondaryNetwork', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateSecondarySubnetRequest' => [ 'type' => 'structure', 'required' => [ 'Ipv4CidrBlock', 'SecondaryNetworkId', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Ipv4CidrBlock' => [ 'shape' => 'String', ], 'SecondaryNetworkId' => [ 'shape' => 'SecondaryNetworkId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateSecondarySubnetResult' => [ 'type' => 'structure', 'members' => [ 'SecondarySubnet' => [ 'shape' => 'SecondarySubnet', 'locationName' => 'secondarySubnet', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateSecurityGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Description', 'GroupName', ], 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'GroupDescription', ], 'GroupName' => [ 'shape' => 'String', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateSecurityGroupResult' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SecurityGroupArn' => [ 'shape' => 'String', 'locationName' => 'securityGroupArn', ], ], ], 'CreateSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'Description' => [ 'shape' => 'String', ], 'OutpostArn' => [ 'shape' => 'String', ], 'VolumeId' => [ 'shape' => 'VolumeId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'Location' => [ 'shape' => 'SnapshotLocationEnum', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateSnapshotsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceSpecification', ], 'members' => [ 'Description' => [ 'shape' => 'String', ], 'InstanceSpecification' => [ 'shape' => 'InstanceSpecification', ], 'OutpostArn' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'CopyTagsFromSource' => [ 'shape' => 'CopyTagsFromSource', ], 'Location' => [ 'shape' => 'SnapshotLocationEnum', ], ], ], 'CreateSnapshotsResult' => [ 'type' => 'structure', 'members' => [ 'Snapshots' => [ 'shape' => 'SnapshotSet', 'locationName' => 'snapshotSet', ], ], ], 'CreateSpotDatafeedSubscriptionRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Bucket' => [ 'shape' => 'String', 'locationName' => 'bucket', ], 'Prefix' => [ 'shape' => 'String', 'locationName' => 'prefix', ], ], ], 'CreateSpotDatafeedSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'SpotDatafeedSubscription' => [ 'shape' => 'SpotDatafeedSubscription', 'locationName' => 'spotDatafeedSubscription', ], ], ], 'CreateStoreImageTaskRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', 'Bucket', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'Bucket' => [ 'shape' => 'String', ], 'S3ObjectTags' => [ 'shape' => 'S3ObjectTagList', 'locationName' => 'S3ObjectTag', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateStoreImageTaskResult' => [ 'type' => 'structure', 'members' => [ 'ObjectKey' => [ 'shape' => 'String', 'locationName' => 'objectKey', ], ], ], 'CreateSubnetCidrReservationRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', 'Cidr', 'ReservationType', ], 'members' => [ 'SubnetId' => [ 'shape' => 'SubnetId', ], 'Cidr' => [ 'shape' => 'String', ], 'ReservationType' => [ 'shape' => 'SubnetCidrReservationType', ], 'Description' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateSubnetCidrReservationResult' => [ 'type' => 'structure', 'members' => [ 'SubnetCidrReservation' => [ 'shape' => 'SubnetCidrReservation', 'locationName' => 'subnetCidrReservation', ], ], ], 'CreateSubnetRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'AvailabilityZone' => [ 'shape' => 'String', ], 'AvailabilityZoneId' => [ 'shape' => 'String', ], 'CidrBlock' => [ 'shape' => 'String', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', ], 'OutpostArn' => [ 'shape' => 'String', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'Ipv6Native' => [ 'shape' => 'Boolean', ], 'Ipv4IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Ipv4NetmaskLength' => [ 'shape' => 'NetmaskLength', ], 'Ipv6IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Ipv6NetmaskLength' => [ 'shape' => 'NetmaskLength', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateSubnetResult' => [ 'type' => 'structure', 'members' => [ 'Subnet' => [ 'shape' => 'Subnet', 'locationName' => 'subnet', ], ], ], 'CreateTagsRequest' => [ 'type' => 'structure', 'required' => [ 'Resources', 'Tags', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Resources' => [ 'shape' => 'ResourceIdList', 'locationName' => 'ResourceId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'Tag', ], ], ], 'CreateTrafficMirrorFilterRequest' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateTrafficMirrorFilterResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilter' => [ 'shape' => 'TrafficMirrorFilter', 'locationName' => 'trafficMirrorFilter', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateTrafficMirrorFilterRuleRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficMirrorFilterId', 'TrafficDirection', 'RuleNumber', 'RuleAction', 'DestinationCidrBlock', 'SourceCidrBlock', ], 'members' => [ 'TrafficMirrorFilterId' => [ 'shape' => 'TrafficMirrorFilterId', ], 'TrafficDirection' => [ 'shape' => 'TrafficDirection', ], 'RuleNumber' => [ 'shape' => 'Integer', ], 'RuleAction' => [ 'shape' => 'TrafficMirrorRuleAction', ], 'DestinationPortRange' => [ 'shape' => 'TrafficMirrorPortRangeRequest', ], 'SourcePortRange' => [ 'shape' => 'TrafficMirrorPortRangeRequest', ], 'Protocol' => [ 'shape' => 'Integer', ], 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'SourceCidrBlock' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateTrafficMirrorFilterRuleResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterRule' => [ 'shape' => 'TrafficMirrorFilterRule', 'locationName' => 'trafficMirrorFilterRule', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateTrafficMirrorSessionRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', 'TrafficMirrorTargetId', 'TrafficMirrorFilterId', 'SessionNumber', ], 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'TrafficMirrorTargetId' => [ 'shape' => 'TrafficMirrorTargetId', ], 'TrafficMirrorFilterId' => [ 'shape' => 'TrafficMirrorFilterId', ], 'PacketLength' => [ 'shape' => 'Integer', ], 'SessionNumber' => [ 'shape' => 'Integer', ], 'VirtualNetworkId' => [ 'shape' => 'Integer', ], 'Description' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateTrafficMirrorSessionResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorSession' => [ 'shape' => 'TrafficMirrorSession', 'locationName' => 'trafficMirrorSession', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateTrafficMirrorTargetRequest' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'NetworkLoadBalancerArn' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'GatewayLoadBalancerEndpointId' => [ 'shape' => 'VpcEndpointId', ], ], ], 'CreateTrafficMirrorTargetResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorTarget' => [ 'shape' => 'TrafficMirrorTarget', 'locationName' => 'trafficMirrorTarget', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateTransitGatewayConnectPeerRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', 'PeerAddress', 'InsideCidrBlocks', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'TransitGatewayAddress' => [ 'shape' => 'String', ], 'PeerAddress' => [ 'shape' => 'String', ], 'BgpOptions' => [ 'shape' => 'TransitGatewayConnectRequestBgpOptions', ], 'InsideCidrBlocks' => [ 'shape' => 'InsideCidrBlocksStringList', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayConnectPeerResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayConnectPeer' => [ 'shape' => 'TransitGatewayConnectPeer', 'locationName' => 'transitGatewayConnectPeer', ], ], ], 'CreateTransitGatewayConnectRequest' => [ 'type' => 'structure', 'required' => [ 'TransportTransitGatewayAttachmentId', 'Options', ], 'members' => [ 'TransportTransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'Options' => [ 'shape' => 'CreateTransitGatewayConnectRequestOptions', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayConnectRequestOptions' => [ 'type' => 'structure', 'required' => [ 'Protocol', ], 'members' => [ 'Protocol' => [ 'shape' => 'ProtocolValue', ], ], ], 'CreateTransitGatewayConnectResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayConnect' => [ 'shape' => 'TransitGatewayConnect', 'locationName' => 'transitGatewayConnect', ], ], ], 'CreateTransitGatewayMeteringPolicyEntryRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMeteringPolicyId', 'PolicyRuleNumber', 'MeteredAccount', ], 'members' => [ 'TransitGatewayMeteringPolicyId' => [ 'shape' => 'TransitGatewayMeteringPolicyId', ], 'PolicyRuleNumber' => [ 'shape' => 'Integer', ], 'SourceTransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'SourceTransitGatewayAttachmentType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', ], 'SourceCidrBlock' => [ 'shape' => 'String', ], 'SourcePortRange' => [ 'shape' => 'String', ], 'DestinationTransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DestinationTransitGatewayAttachmentType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', ], 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'DestinationPortRange' => [ 'shape' => 'String', ], 'Protocol' => [ 'shape' => 'String', ], 'MeteredAccount' => [ 'shape' => 'TransitGatewayMeteringPayerType', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayMeteringPolicyEntryResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicyEntry' => [ 'shape' => 'TransitGatewayMeteringPolicyEntry', 'locationName' => 'transitGatewayMeteringPolicyEntry', ], ], ], 'CreateTransitGatewayMeteringPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'MiddleboxAttachmentIds' => [ 'shape' => 'TransitGatewayAttachmentIdStringList', 'locationName' => 'MiddleboxAttachmentId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayMeteringPolicyResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicy' => [ 'shape' => 'TransitGatewayMeteringPolicy', 'locationName' => 'transitGatewayMeteringPolicy', ], ], ], 'CreateTransitGatewayMulticastDomainRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'Options' => [ 'shape' => 'CreateTransitGatewayMulticastDomainRequestOptions', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayMulticastDomainRequestOptions' => [ 'type' => 'structure', 'members' => [ 'Igmpv2Support' => [ 'shape' => 'Igmpv2SupportValue', ], 'StaticSourcesSupport' => [ 'shape' => 'StaticSourcesSupportValue', ], 'AutoAcceptSharedAssociations' => [ 'shape' => 'AutoAcceptSharedAssociationsValue', ], ], ], 'CreateTransitGatewayMulticastDomainResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomain' => [ 'shape' => 'TransitGatewayMulticastDomain', 'locationName' => 'transitGatewayMulticastDomain', ], ], ], 'CreateTransitGatewayPeeringAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', 'PeerTransitGatewayId', 'PeerAccountId', 'PeerRegion', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'PeerTransitGatewayId' => [ 'shape' => 'TransitAssociationGatewayId', ], 'PeerAccountId' => [ 'shape' => 'String', ], 'PeerRegion' => [ 'shape' => 'String', ], 'Options' => [ 'shape' => 'CreateTransitGatewayPeeringAttachmentRequestOptions', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayPeeringAttachmentRequestOptions' => [ 'type' => 'structure', 'members' => [ 'DynamicRouting' => [ 'shape' => 'DynamicRoutingValue', ], ], ], 'CreateTransitGatewayPeeringAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPeeringAttachment' => [ 'shape' => 'TransitGatewayPeeringAttachment', 'locationName' => 'transitGatewayPeeringAttachment', ], ], ], 'CreateTransitGatewayPolicyTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayPolicyTableResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPolicyTable' => [ 'shape' => 'TransitGatewayPolicyTable', 'locationName' => 'transitGatewayPolicyTable', ], ], ], 'CreateTransitGatewayPrefixListReferenceRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'PrefixListId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'Blackhole' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayPrefixListReferenceResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPrefixListReference' => [ 'shape' => 'TransitGatewayPrefixListReference', 'locationName' => 'transitGatewayPrefixListReference', ], ], ], 'CreateTransitGatewayRequest' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', ], 'Options' => [ 'shape' => 'TransitGatewayRequestOptions', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayResult' => [ 'type' => 'structure', 'members' => [ 'TransitGateway' => [ 'shape' => 'TransitGateway', 'locationName' => 'transitGateway', ], ], ], 'CreateTransitGatewayRouteRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationCidrBlock', 'TransitGatewayRouteTableId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'Blackhole' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayRouteResult' => [ 'type' => 'structure', 'members' => [ 'Route' => [ 'shape' => 'TransitGatewayRoute', 'locationName' => 'route', ], ], ], 'CreateTransitGatewayRouteTableAnnouncementRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'PeeringAttachmentId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'PeeringAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayRouteTableAnnouncementResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableAnnouncement' => [ 'shape' => 'TransitGatewayRouteTableAnnouncement', 'locationName' => 'transitGatewayRouteTableAnnouncement', ], ], ], 'CreateTransitGatewayRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTable' => [ 'shape' => 'TransitGatewayRouteTable', 'locationName' => 'transitGatewayRouteTable', ], ], ], 'CreateTransitGatewayVpcAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', 'VpcId', 'SubnetIds', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'SubnetIds' => [ 'shape' => 'TransitGatewaySubnetIdList', ], 'Options' => [ 'shape' => 'CreateTransitGatewayVpcAttachmentRequestOptions', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayVpcAttachmentRequestOptions' => [ 'type' => 'structure', 'members' => [ 'DnsSupport' => [ 'shape' => 'DnsSupportValue', ], 'SecurityGroupReferencingSupport' => [ 'shape' => 'SecurityGroupReferencingSupportValue', ], 'Ipv6Support' => [ 'shape' => 'Ipv6SupportValue', ], 'ApplianceModeSupport' => [ 'shape' => 'ApplianceModeSupportValue', ], ], ], 'CreateTransitGatewayVpcAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachment' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'transitGatewayVpcAttachment', ], ], ], 'CreateVerifiedAccessEndpointCidrOptions' => [ 'type' => 'structure', 'members' => [ 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', ], 'SubnetIds' => [ 'shape' => 'CreateVerifiedAccessEndpointSubnetIdList', 'locationName' => 'SubnetId', ], 'Cidr' => [ 'shape' => 'String', ], 'PortRanges' => [ 'shape' => 'CreateVerifiedAccessEndpointPortRangeList', 'locationName' => 'PortRange', ], ], ], 'CreateVerifiedAccessEndpointEniOptions' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], 'PortRanges' => [ 'shape' => 'CreateVerifiedAccessEndpointPortRangeList', 'locationName' => 'PortRange', ], ], ], 'CreateVerifiedAccessEndpointLoadBalancerOptions' => [ 'type' => 'structure', 'members' => [ 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], 'LoadBalancerArn' => [ 'shape' => 'LoadBalancerArn', ], 'SubnetIds' => [ 'shape' => 'CreateVerifiedAccessEndpointSubnetIdList', 'locationName' => 'SubnetId', ], 'PortRanges' => [ 'shape' => 'CreateVerifiedAccessEndpointPortRangeList', 'locationName' => 'PortRange', ], ], ], 'CreateVerifiedAccessEndpointPortRange' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], 'ToPort' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], ], ], 'CreateVerifiedAccessEndpointPortRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CreateVerifiedAccessEndpointPortRange', 'locationName' => 'item', ], ], 'CreateVerifiedAccessEndpointRdsOptions' => [ 'type' => 'structure', 'members' => [ 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], 'RdsDbInstanceArn' => [ 'shape' => 'RdsDbInstanceArn', ], 'RdsDbClusterArn' => [ 'shape' => 'RdsDbClusterArn', ], 'RdsDbProxyArn' => [ 'shape' => 'RdsDbProxyArn', ], 'RdsEndpoint' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'CreateVerifiedAccessEndpointSubnetIdList', 'locationName' => 'SubnetId', ], ], ], 'CreateVerifiedAccessEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessGroupId', 'EndpointType', 'AttachmentType', ], 'members' => [ 'VerifiedAccessGroupId' => [ 'shape' => 'VerifiedAccessGroupId', ], 'EndpointType' => [ 'shape' => 'VerifiedAccessEndpointType', ], 'AttachmentType' => [ 'shape' => 'VerifiedAccessEndpointAttachmentType', ], 'DomainCertificateArn' => [ 'shape' => 'CertificateArn', ], 'ApplicationDomain' => [ 'shape' => 'String', ], 'EndpointDomainPrefix' => [ 'shape' => 'String', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdList', 'locationName' => 'SecurityGroupId', ], 'LoadBalancerOptions' => [ 'shape' => 'CreateVerifiedAccessEndpointLoadBalancerOptions', ], 'NetworkInterfaceOptions' => [ 'shape' => 'CreateVerifiedAccessEndpointEniOptions', ], 'Description' => [ 'shape' => 'String', ], 'PolicyDocument' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationRequest', ], 'RdsOptions' => [ 'shape' => 'CreateVerifiedAccessEndpointRdsOptions', ], 'CidrOptions' => [ 'shape' => 'CreateVerifiedAccessEndpointCidrOptions', ], ], ], 'CreateVerifiedAccessEndpointResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessEndpoint' => [ 'shape' => 'VerifiedAccessEndpoint', 'locationName' => 'verifiedAccessEndpoint', ], ], ], 'CreateVerifiedAccessEndpointSubnetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', 'locationName' => 'item', ], ], 'CreateVerifiedAccessGroupRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessInstanceId', ], 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'Description' => [ 'shape' => 'String', ], 'PolicyDocument' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationRequest', ], ], ], 'CreateVerifiedAccessGroupResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessGroup' => [ 'shape' => 'VerifiedAccessGroup', 'locationName' => 'verifiedAccessGroup', ], ], ], 'CreateVerifiedAccessInstanceRequest' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'FIPSEnabled' => [ 'shape' => 'Boolean', ], 'CidrEndpointsCustomSubDomain' => [ 'shape' => 'String', ], ], ], 'CreateVerifiedAccessInstanceResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstance' => [ 'shape' => 'VerifiedAccessInstance', 'locationName' => 'verifiedAccessInstance', ], ], ], 'CreateVerifiedAccessNativeApplicationOidcOptions' => [ 'type' => 'structure', 'members' => [ 'PublicSigningKeyEndpoint' => [ 'shape' => 'String', ], 'Issuer' => [ 'shape' => 'String', ], 'AuthorizationEndpoint' => [ 'shape' => 'String', ], 'TokenEndpoint' => [ 'shape' => 'String', ], 'UserInfoEndpoint' => [ 'shape' => 'String', ], 'ClientId' => [ 'shape' => 'String', ], 'ClientSecret' => [ 'shape' => 'ClientSecretType', ], 'Scope' => [ 'shape' => 'String', ], ], ], 'CreateVerifiedAccessTrustProviderDeviceOptions' => [ 'type' => 'structure', 'members' => [ 'TenantId' => [ 'shape' => 'String', ], 'PublicSigningKeyUrl' => [ 'shape' => 'String', ], ], ], 'CreateVerifiedAccessTrustProviderOidcOptions' => [ 'type' => 'structure', 'members' => [ 'Issuer' => [ 'shape' => 'String', ], 'AuthorizationEndpoint' => [ 'shape' => 'String', ], 'TokenEndpoint' => [ 'shape' => 'String', ], 'UserInfoEndpoint' => [ 'shape' => 'String', ], 'ClientId' => [ 'shape' => 'String', ], 'ClientSecret' => [ 'shape' => 'ClientSecretType', ], 'Scope' => [ 'shape' => 'String', ], ], ], 'CreateVerifiedAccessTrustProviderRequest' => [ 'type' => 'structure', 'required' => [ 'TrustProviderType', 'PolicyReferenceName', ], 'members' => [ 'TrustProviderType' => [ 'shape' => 'TrustProviderType', ], 'UserTrustProviderType' => [ 'shape' => 'UserTrustProviderType', ], 'DeviceTrustProviderType' => [ 'shape' => 'DeviceTrustProviderType', ], 'OidcOptions' => [ 'shape' => 'CreateVerifiedAccessTrustProviderOidcOptions', ], 'DeviceOptions' => [ 'shape' => 'CreateVerifiedAccessTrustProviderDeviceOptions', ], 'PolicyReferenceName' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationRequest', ], 'NativeApplicationOidcOptions' => [ 'shape' => 'CreateVerifiedAccessNativeApplicationOidcOptions', ], ], ], 'CreateVerifiedAccessTrustProviderResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProvider' => [ 'shape' => 'VerifiedAccessTrustProvider', 'locationName' => 'verifiedAccessTrustProvider', ], ], ], 'CreateVolumePermission' => [ 'type' => 'structure', 'members' => [ 'UserId' => [ 'shape' => 'String', 'locationName' => 'userId', ], 'Group' => [ 'shape' => 'PermissionGroup', 'locationName' => 'group', ], ], ], 'CreateVolumePermissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CreateVolumePermission', 'locationName' => 'item', ], ], 'CreateVolumePermissionModifications' => [ 'type' => 'structure', 'members' => [ 'Add' => [ 'shape' => 'CreateVolumePermissionList', ], 'Remove' => [ 'shape' => 'CreateVolumePermissionList', ], ], ], 'CreateVolumeRequest' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'Iops' => [ 'shape' => 'Integer', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'OutpostArn' => [ 'shape' => 'String', ], 'Size' => [ 'shape' => 'Integer', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'VolumeType' => [ 'shape' => 'VolumeType', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'MultiAttachEnabled' => [ 'shape' => 'Boolean', ], 'Throughput' => [ 'shape' => 'Integer', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'VolumeInitializationRate' => [ 'shape' => 'Integer', ], 'Operator' => [ 'shape' => 'OperatorRequest', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateVpcBlockPublicAccessExclusionRequest' => [ 'type' => 'structure', 'required' => [ 'InternetGatewayExclusionMode', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'InternetGatewayExclusionMode' => [ 'shape' => 'InternetGatewayExclusionMode', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateVpcBlockPublicAccessExclusionResult' => [ 'type' => 'structure', 'members' => [ 'VpcBlockPublicAccessExclusion' => [ 'shape' => 'VpcBlockPublicAccessExclusion', 'locationName' => 'vpcBlockPublicAccessExclusion', ], ], ], 'CreateVpcEncryptionControlRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateVpcEncryptionControlResult' => [ 'type' => 'structure', 'members' => [ 'VpcEncryptionControl' => [ 'shape' => 'VpcEncryptionControl', 'locationName' => 'vpcEncryptionControl', ], ], ], 'CreateVpcEndpointConnectionNotificationRequest' => [ 'type' => 'structure', 'required' => [ 'ConnectionNotificationArn', 'ConnectionEvents', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], 'VpcEndpointId' => [ 'shape' => 'VpcEndpointId', ], 'ConnectionNotificationArn' => [ 'shape' => 'String', ], 'ConnectionEvents' => [ 'shape' => 'ValueStringList', ], 'ClientToken' => [ 'shape' => 'String', ], ], ], 'CreateVpcEndpointConnectionNotificationResult' => [ 'type' => 'structure', 'members' => [ 'ConnectionNotification' => [ 'shape' => 'ConnectionNotification', 'locationName' => 'connectionNotification', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateVpcEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcEndpointType' => [ 'shape' => 'VpcEndpointType', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'ServiceName' => [ 'shape' => 'String', ], 'PolicyDocument' => [ 'shape' => 'String', ], 'RouteTableIds' => [ 'shape' => 'VpcEndpointRouteTableIdList', 'locationName' => 'RouteTableId', ], 'SubnetIds' => [ 'shape' => 'VpcEndpointSubnetIdList', 'locationName' => 'SubnetId', ], 'SecurityGroupIds' => [ 'shape' => 'VpcEndpointSecurityGroupIdList', 'locationName' => 'SecurityGroupId', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', ], 'DnsOptions' => [ 'shape' => 'DnsOptionsSpecification', ], 'ClientToken' => [ 'shape' => 'String', ], 'PrivateDnsEnabled' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'SubnetConfigurations' => [ 'shape' => 'SubnetConfigurationsList', 'locationName' => 'SubnetConfiguration', ], 'ServiceNetworkArn' => [ 'shape' => 'ServiceNetworkArn', ], 'ResourceConfigurationArn' => [ 'shape' => 'ResourceConfigurationArn', ], 'ServiceRegion' => [ 'shape' => 'String', ], ], ], 'CreateVpcEndpointResult' => [ 'type' => 'structure', 'members' => [ 'VpcEndpoint' => [ 'shape' => 'VpcEndpoint', 'locationName' => 'vpcEndpoint', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateVpcEndpointServiceConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'AcceptanceRequired' => [ 'shape' => 'Boolean', ], 'PrivateDnsName' => [ 'shape' => 'String', ], 'NetworkLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'NetworkLoadBalancerArn', ], 'GatewayLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'GatewayLoadBalancerArn', ], 'SupportedIpAddressTypes' => [ 'shape' => 'ValueStringList', 'locationName' => 'SupportedIpAddressType', ], 'SupportedRegions' => [ 'shape' => 'ValueStringList', 'locationName' => 'SupportedRegion', ], 'ClientToken' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateVpcEndpointServiceConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'ServiceConfiguration' => [ 'shape' => 'ServiceConfiguration', 'locationName' => 'serviceConfiguration', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateVpcPeeringConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'PeerRegion' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'PeerVpcId' => [ 'shape' => 'String', 'locationName' => 'peerVpcId', ], 'PeerOwnerId' => [ 'shape' => 'String', 'locationName' => 'peerOwnerId', ], ], ], 'CreateVpcPeeringConnectionResult' => [ 'type' => 'structure', 'members' => [ 'VpcPeeringConnection' => [ 'shape' => 'VpcPeeringConnection', 'locationName' => 'vpcPeeringConnection', ], ], ], 'CreateVpcRequest' => [ 'type' => 'structure', 'members' => [ 'CidrBlock' => [ 'shape' => 'String', ], 'Ipv6Pool' => [ 'shape' => 'Ipv6PoolEc2Id', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', ], 'Ipv4IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Ipv4NetmaskLength' => [ 'shape' => 'NetmaskLength', ], 'Ipv6IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Ipv6NetmaskLength' => [ 'shape' => 'NetmaskLength', ], 'Ipv6CidrBlockNetworkBorderGroup' => [ 'shape' => 'String', ], 'VpcEncryptionControl' => [ 'shape' => 'VpcEncryptionControlConfiguration', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceTenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'instanceTenancy', ], 'AmazonProvidedIpv6CidrBlock' => [ 'shape' => 'Boolean', 'locationName' => 'amazonProvidedIpv6CidrBlock', ], ], ], 'CreateVpcResult' => [ 'type' => 'structure', 'members' => [ 'Vpc' => [ 'shape' => 'Vpc', 'locationName' => 'vpc', ], ], ], 'CreateVpnConcentratorRequest' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'VpnConcentratorType', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateVpnConcentratorResult' => [ 'type' => 'structure', 'members' => [ 'VpnConcentrator' => [ 'shape' => 'VpnConcentrator', 'locationName' => 'vpnConcentrator', ], ], ], 'CreateVpnConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'CustomerGatewayId', 'Type', ], 'members' => [ 'CustomerGatewayId' => [ 'shape' => 'CustomerGatewayId', ], 'Type' => [ 'shape' => 'String', ], 'VpnGatewayId' => [ 'shape' => 'VpnGatewayId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'VpnConcentratorId' => [ 'shape' => 'VpnConcentratorId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'PreSharedKeyStorage' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Options' => [ 'shape' => 'VpnConnectionOptionsSpecification', 'locationName' => 'options', ], ], ], 'CreateVpnConnectionResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnection' => [ 'shape' => 'VpnConnection', 'locationName' => 'vpnConnection', ], ], ], 'CreateVpnConnectionRouteRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationCidrBlock', 'VpnConnectionId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], ], ], 'CreateVpnGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'GatewayType', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'AmazonSideAsn' => [ 'shape' => 'Long', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateVpnGatewayResult' => [ 'type' => 'structure', 'members' => [ 'VpnGateway' => [ 'shape' => 'VpnGateway', 'locationName' => 'vpnGateway', ], ], ], 'CreationDateCondition' => [ 'type' => 'structure', 'members' => [ 'MaximumDaysSinceCreated' => [ 'shape' => 'MaximumDaysSinceCreatedValue', 'locationName' => 'maximumDaysSinceCreated', ], ], ], 'CreationDateConditionRequest' => [ 'type' => 'structure', 'members' => [ 'MaximumDaysSinceCreated' => [ 'shape' => 'MaximumDaysSinceCreatedValue', ], ], ], 'CreditSpecification' => [ 'type' => 'structure', 'members' => [ 'CpuCredits' => [ 'shape' => 'String', 'locationName' => 'cpuCredits', ], ], ], 'CreditSpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'CpuCredits', ], 'members' => [ 'CpuCredits' => [ 'shape' => 'String', ], ], ], 'CurrencyCodeValues' => [ 'type' => 'string', 'enum' => [ 'USD', ], ], 'CurrentGenerationFlag' => [ 'type' => 'boolean', ], 'CustomerGateway' => [ 'type' => 'structure', 'members' => [ 'CertificateArn' => [ 'shape' => 'String', 'locationName' => 'certificateArn', ], 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'BgpAsnExtended' => [ 'shape' => 'String', 'locationName' => 'bgpAsnExtended', ], 'CustomerGatewayId' => [ 'shape' => 'String', 'locationName' => 'customerGatewayId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], 'IpAddress' => [ 'shape' => 'String', 'locationName' => 'ipAddress', ], 'BgpAsn' => [ 'shape' => 'String', 'locationName' => 'bgpAsn', ], ], ], 'CustomerGatewayId' => [ 'type' => 'string', ], 'CustomerGatewayIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CustomerGatewayId', 'locationName' => 'CustomerGatewayId', ], ], 'CustomerGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CustomerGateway', 'locationName' => 'item', ], ], 'DITMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 5, ], 'DITOMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DataQueries' => [ 'type' => 'list', 'member' => [ 'shape' => 'DataQuery', ], ], 'DataQuery' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', ], 'Source' => [ 'shape' => 'String', ], 'Destination' => [ 'shape' => 'String', ], 'Metric' => [ 'shape' => 'MetricType', ], 'Statistic' => [ 'shape' => 'StatisticType', ], 'Period' => [ 'shape' => 'PeriodType', ], ], ], 'DataResponse' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', 'locationName' => 'id', ], 'Source' => [ 'shape' => 'String', 'locationName' => 'source', ], 'Destination' => [ 'shape' => 'String', 'locationName' => 'destination', ], 'Metric' => [ 'shape' => 'MetricType', 'locationName' => 'metric', ], 'Statistic' => [ 'shape' => 'StatisticType', 'locationName' => 'statistic', ], 'Period' => [ 'shape' => 'PeriodType', 'locationName' => 'period', ], 'MetricPoints' => [ 'shape' => 'MetricPoints', 'locationName' => 'metricPointSet', ], ], ], 'DataResponses' => [ 'type' => 'list', 'member' => [ 'shape' => 'DataResponse', 'locationName' => 'item', ], ], 'DatafeedSubscriptionState' => [ 'type' => 'string', 'enum' => [ 'Active', 'Inactive', ], ], 'DateTime' => [ 'type' => 'timestamp', ], 'DeclarativePoliciesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DeclarativePoliciesReport' => [ 'type' => 'structure', 'members' => [ 'ReportId' => [ 'shape' => 'String', 'locationName' => 'reportId', ], 'S3Bucket' => [ 'shape' => 'String', 'locationName' => 's3Bucket', ], 'S3Prefix' => [ 'shape' => 'String', 'locationName' => 's3Prefix', ], 'TargetId' => [ 'shape' => 'String', 'locationName' => 'targetId', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startTime', ], 'EndTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'endTime', ], 'Status' => [ 'shape' => 'ReportState', 'locationName' => 'status', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'DeclarativePoliciesReportId' => [ 'type' => 'string', ], 'DeclarativePoliciesReportList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeclarativePoliciesReport', 'locationName' => 'item', ], ], 'DedicatedHostFlag' => [ 'type' => 'boolean', ], 'DedicatedHostId' => [ 'type' => 'string', ], 'DedicatedHostIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DedicatedHostId', 'locationName' => 'item', ], ], 'DefaultConnectionTrackingConfiguration' => [ 'type' => 'structure', 'members' => [ 'DefaultTcpEstablishedTimeout' => [ 'shape' => 'DefaultTcpEstablishedTimeout', 'locationName' => 'defaultTcpEstablishedTimeout', ], 'DefaultUdpTimeout' => [ 'shape' => 'DefaultUdpTimeout', 'locationName' => 'defaultUdpTimeout', ], 'DefaultUdpStreamTimeout' => [ 'shape' => 'DefaultUdpStreamTimeout', 'locationName' => 'defaultUdpStreamTimeout', ], ], ], 'DefaultEnaQueueCountPerInterface' => [ 'type' => 'integer', ], 'DefaultHttpTokensEnforcedState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', 'no-preference', ], ], 'DefaultInstanceMetadataEndpointState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', 'no-preference', ], ], 'DefaultInstanceMetadataTagsState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', 'no-preference', ], ], 'DefaultNetworkCardIndex' => [ 'type' => 'integer', ], 'DefaultRouteTableAssociationValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'DefaultRouteTablePropagationValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'DefaultTargetCapacityType' => [ 'type' => 'string', 'enum' => [ 'spot', 'on-demand', 'capacity-block', 'reserved-capacity', ], ], 'DefaultTcpEstablishedTimeout' => [ 'type' => 'integer', ], 'DefaultUdpStreamTimeout' => [ 'type' => 'integer', ], 'DefaultUdpTimeout' => [ 'type' => 'integer', ], 'DefaultingDhcpOptionsId' => [ 'type' => 'string', ], 'DeleteCapacityManagerDataExportRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityManagerDataExportId', ], 'members' => [ 'CapacityManagerDataExportId' => [ 'shape' => 'CapacityManagerDataExportId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteCapacityManagerDataExportResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerDataExportId' => [ 'shape' => 'CapacityManagerDataExportId', 'locationName' => 'capacityManagerDataExportId', ], ], ], 'DeleteCarrierGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'CarrierGatewayId', ], 'members' => [ 'CarrierGatewayId' => [ 'shape' => 'CarrierGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteCarrierGatewayResult' => [ 'type' => 'structure', 'members' => [ 'CarrierGateway' => [ 'shape' => 'CarrierGateway', 'locationName' => 'carrierGateway', ], ], ], 'DeleteClientVpnEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteClientVpnEndpointResult' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ClientVpnEndpointStatus', 'locationName' => 'status', ], ], ], 'DeleteClientVpnRouteRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'DestinationCidrBlock', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'TargetVpcSubnetId' => [ 'shape' => 'SubnetId', ], 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteClientVpnRouteResult' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ClientVpnRouteStatus', 'locationName' => 'status', ], ], ], 'DeleteCoipCidrRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', 'CoipPoolId', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'CoipPoolId' => [ 'shape' => 'Ipv4PoolCoipId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteCoipCidrResult' => [ 'type' => 'structure', 'members' => [ 'CoipCidr' => [ 'shape' => 'CoipCidr', 'locationName' => 'coipCidr', ], ], ], 'DeleteCoipPoolRequest' => [ 'type' => 'structure', 'required' => [ 'CoipPoolId', ], 'members' => [ 'CoipPoolId' => [ 'shape' => 'Ipv4PoolCoipId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteCoipPoolResult' => [ 'type' => 'structure', 'members' => [ 'CoipPool' => [ 'shape' => 'CoipPool', 'locationName' => 'coipPool', ], ], ], 'DeleteCustomerGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'CustomerGatewayId', ], 'members' => [ 'CustomerGatewayId' => [ 'shape' => 'CustomerGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteDhcpOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'DhcpOptionsId', ], 'members' => [ 'DhcpOptionsId' => [ 'shape' => 'DhcpOptionsId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteEgressOnlyInternetGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'EgressOnlyInternetGatewayId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'EgressOnlyInternetGatewayId', ], ], ], 'DeleteEgressOnlyInternetGatewayResult' => [ 'type' => 'structure', 'members' => [ 'ReturnCode' => [ 'shape' => 'Boolean', 'locationName' => 'returnCode', ], ], ], 'DeleteFleetError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'DeleteFleetErrorCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'DeleteFleetErrorCode' => [ 'type' => 'string', 'enum' => [ 'fleetIdDoesNotExist', 'fleetIdMalformed', 'fleetNotInDeletableState', 'unexpectedError', ], ], 'DeleteFleetErrorItem' => [ 'type' => 'structure', 'members' => [ 'Error' => [ 'shape' => 'DeleteFleetError', 'locationName' => 'error', ], 'FleetId' => [ 'shape' => 'FleetId', 'locationName' => 'fleetId', ], ], ], 'DeleteFleetErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteFleetErrorItem', 'locationName' => 'item', ], ], 'DeleteFleetSuccessItem' => [ 'type' => 'structure', 'members' => [ 'CurrentFleetState' => [ 'shape' => 'FleetStateCode', 'locationName' => 'currentFleetState', ], 'PreviousFleetState' => [ 'shape' => 'FleetStateCode', 'locationName' => 'previousFleetState', ], 'FleetId' => [ 'shape' => 'FleetId', 'locationName' => 'fleetId', ], ], ], 'DeleteFleetSuccessSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteFleetSuccessItem', 'locationName' => 'item', ], ], 'DeleteFleetsRequest' => [ 'type' => 'structure', 'required' => [ 'FleetIds', 'TerminateInstances', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FleetIds' => [ 'shape' => 'FleetIdSet', 'locationName' => 'FleetId', ], 'TerminateInstances' => [ 'shape' => 'Boolean', ], ], ], 'DeleteFleetsResult' => [ 'type' => 'structure', 'members' => [ 'SuccessfulFleetDeletions' => [ 'shape' => 'DeleteFleetSuccessSet', 'locationName' => 'successfulFleetDeletionSet', ], 'UnsuccessfulFleetDeletions' => [ 'shape' => 'DeleteFleetErrorSet', 'locationName' => 'unsuccessfulFleetDeletionSet', ], ], ], 'DeleteFlowLogsRequest' => [ 'type' => 'structure', 'required' => [ 'FlowLogIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FlowLogIds' => [ 'shape' => 'FlowLogIdList', 'locationName' => 'FlowLogId', ], ], ], 'DeleteFlowLogsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'DeleteFpgaImageRequest' => [ 'type' => 'structure', 'required' => [ 'FpgaImageId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FpgaImageId' => [ 'shape' => 'FpgaImageId', ], ], ], 'DeleteFpgaImageResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DeleteImageUsageReportRequest' => [ 'type' => 'structure', 'required' => [ 'ReportId', ], 'members' => [ 'ReportId' => [ 'shape' => 'ImageUsageReportId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteImageUsageReportResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DeleteInstanceConnectEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceConnectEndpointId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceConnectEndpointId' => [ 'shape' => 'InstanceConnectEndpointId', ], ], ], 'DeleteInstanceConnectEndpointResult' => [ 'type' => 'structure', 'members' => [ 'InstanceConnectEndpoint' => [ 'shape' => 'Ec2InstanceConnectEndpoint', 'locationName' => 'instanceConnectEndpoint', ], ], ], 'DeleteInstanceEventWindowRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceEventWindowId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ForceDelete' => [ 'shape' => 'Boolean', ], 'InstanceEventWindowId' => [ 'shape' => 'InstanceEventWindowId', ], ], ], 'DeleteInstanceEventWindowResult' => [ 'type' => 'structure', 'members' => [ 'InstanceEventWindowState' => [ 'shape' => 'InstanceEventWindowStateChange', 'locationName' => 'instanceEventWindowState', ], ], ], 'DeleteInternetGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'InternetGatewayId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InternetGatewayId' => [ 'shape' => 'InternetGatewayId', 'locationName' => 'internetGatewayId', ], ], ], 'DeleteIpamExternalResourceVerificationTokenRequest' => [ 'type' => 'structure', 'required' => [ 'IpamExternalResourceVerificationTokenId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamExternalResourceVerificationTokenId' => [ 'shape' => 'IpamExternalResourceVerificationTokenId', ], ], ], 'DeleteIpamExternalResourceVerificationTokenResult' => [ 'type' => 'structure', 'members' => [ 'IpamExternalResourceVerificationToken' => [ 'shape' => 'IpamExternalResourceVerificationToken', 'locationName' => 'ipamExternalResourceVerificationToken', ], ], ], 'DeleteIpamPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPolicyId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', ], ], ], 'DeleteIpamPolicyResult' => [ 'type' => 'structure', 'members' => [ 'IpamPolicy' => [ 'shape' => 'IpamPolicy', 'locationName' => 'ipamPolicy', ], ], ], 'DeleteIpamPoolRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Cascade' => [ 'shape' => 'Boolean', ], ], ], 'DeleteIpamPoolResult' => [ 'type' => 'structure', 'members' => [ 'IpamPool' => [ 'shape' => 'IpamPool', 'locationName' => 'ipamPool', ], ], ], 'DeleteIpamPrefixListResolverRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPrefixListResolverId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', ], ], ], 'DeleteIpamPrefixListResolverResult' => [ 'type' => 'structure', 'members' => [ 'IpamPrefixListResolver' => [ 'shape' => 'IpamPrefixListResolver', 'locationName' => 'ipamPrefixListResolver', ], ], ], 'DeleteIpamPrefixListResolverTargetRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPrefixListResolverTargetId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPrefixListResolverTargetId' => [ 'shape' => 'IpamPrefixListResolverTargetId', ], ], ], 'DeleteIpamPrefixListResolverTargetResult' => [ 'type' => 'structure', 'members' => [ 'IpamPrefixListResolverTarget' => [ 'shape' => 'IpamPrefixListResolverTarget', 'locationName' => 'ipamPrefixListResolverTarget', ], ], ], 'DeleteIpamRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamId' => [ 'shape' => 'IpamId', ], 'Cascade' => [ 'shape' => 'Boolean', ], ], ], 'DeleteIpamResourceDiscoveryRequest' => [ 'type' => 'structure', 'required' => [ 'IpamResourceDiscoveryId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', ], ], ], 'DeleteIpamResourceDiscoveryResult' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscovery' => [ 'shape' => 'IpamResourceDiscovery', 'locationName' => 'ipamResourceDiscovery', ], ], ], 'DeleteIpamResult' => [ 'type' => 'structure', 'members' => [ 'Ipam' => [ 'shape' => 'Ipam', 'locationName' => 'ipam', ], ], ], 'DeleteIpamScopeRequest' => [ 'type' => 'structure', 'required' => [ 'IpamScopeId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', ], ], ], 'DeleteIpamScopeResult' => [ 'type' => 'structure', 'members' => [ 'IpamScope' => [ 'shape' => 'IpamScope', 'locationName' => 'ipamScope', ], ], ], 'DeleteKeyPairRequest' => [ 'type' => 'structure', 'members' => [ 'KeyName' => [ 'shape' => 'KeyPairNameWithResolver', ], 'KeyPairId' => [ 'shape' => 'KeyPairId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteKeyPairResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'KeyPairId' => [ 'shape' => 'String', 'locationName' => 'keyPairId', ], ], ], 'DeleteLaunchTemplateRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], ], ], 'DeleteLaunchTemplateResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplate' => [ 'shape' => 'LaunchTemplate', 'locationName' => 'launchTemplate', ], ], ], 'DeleteLaunchTemplateVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'Versions', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'Versions' => [ 'shape' => 'VersionStringList', 'locationName' => 'LaunchTemplateVersion', ], ], ], 'DeleteLaunchTemplateVersionsResponseErrorItem' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'String', 'locationName' => 'launchTemplateName', ], 'VersionNumber' => [ 'shape' => 'Long', 'locationName' => 'versionNumber', ], 'ResponseError' => [ 'shape' => 'ResponseError', 'locationName' => 'responseError', ], ], ], 'DeleteLaunchTemplateVersionsResponseErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteLaunchTemplateVersionsResponseErrorItem', 'locationName' => 'item', ], ], 'DeleteLaunchTemplateVersionsResponseSuccessItem' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'String', 'locationName' => 'launchTemplateName', ], 'VersionNumber' => [ 'shape' => 'Long', 'locationName' => 'versionNumber', ], ], ], 'DeleteLaunchTemplateVersionsResponseSuccessSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteLaunchTemplateVersionsResponseSuccessItem', 'locationName' => 'item', ], ], 'DeleteLaunchTemplateVersionsResult' => [ 'type' => 'structure', 'members' => [ 'SuccessfullyDeletedLaunchTemplateVersions' => [ 'shape' => 'DeleteLaunchTemplateVersionsResponseSuccessSet', 'locationName' => 'successfullyDeletedLaunchTemplateVersionSet', ], 'UnsuccessfullyDeletedLaunchTemplateVersions' => [ 'shape' => 'DeleteLaunchTemplateVersionsResponseErrorSet', 'locationName' => 'unsuccessfullyDeletedLaunchTemplateVersionSet', ], ], ], 'DeleteLocalGatewayRouteRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'DestinationPrefixListId' => [ 'shape' => 'PrefixListResourceId', ], ], ], 'DeleteLocalGatewayRouteResult' => [ 'type' => 'structure', 'members' => [ 'Route' => [ 'shape' => 'LocalGatewayRoute', 'locationName' => 'route', ], ], ], 'DeleteLocalGatewayRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableId', ], 'members' => [ 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteLocalGatewayRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTable' => [ 'shape' => 'LocalGatewayRouteTable', 'locationName' => 'localGatewayRouteTable', ], ], ], 'DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId', ], 'members' => [ 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId' => [ 'shape' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVirtualInterfaceGroupAssociation' => [ 'shape' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociation', 'locationName' => 'localGatewayRouteTableVirtualInterfaceGroupAssociation', ], ], ], 'DeleteLocalGatewayRouteTableVpcAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableVpcAssociationId', ], 'members' => [ 'LocalGatewayRouteTableVpcAssociationId' => [ 'shape' => 'LocalGatewayRouteTableVpcAssociationId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteLocalGatewayRouteTableVpcAssociationResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVpcAssociation' => [ 'shape' => 'LocalGatewayRouteTableVpcAssociation', 'locationName' => 'localGatewayRouteTableVpcAssociation', ], ], ], 'DeleteLocalGatewayVirtualInterfaceGroupRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayVirtualInterfaceGroupId', ], 'members' => [ 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteLocalGatewayVirtualInterfaceGroupResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterfaceGroup' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroup', 'locationName' => 'localGatewayVirtualInterfaceGroup', ], ], ], 'DeleteLocalGatewayVirtualInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayVirtualInterfaceId', ], 'members' => [ 'LocalGatewayVirtualInterfaceId' => [ 'shape' => 'LocalGatewayVirtualInterfaceId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteLocalGatewayVirtualInterfaceResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterface' => [ 'shape' => 'LocalGatewayVirtualInterface', 'locationName' => 'localGatewayVirtualInterface', ], ], ], 'DeleteManagedPrefixListRequest' => [ 'type' => 'structure', 'required' => [ 'PrefixListId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], ], ], 'DeleteManagedPrefixListResult' => [ 'type' => 'structure', 'members' => [ 'PrefixList' => [ 'shape' => 'ManagedPrefixList', 'locationName' => 'prefixList', ], ], ], 'DeleteNatGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'NatGatewayId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'NatGatewayId' => [ 'shape' => 'NatGatewayId', ], ], ], 'DeleteNatGatewayResult' => [ 'type' => 'structure', 'members' => [ 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], ], ], 'DeleteNetworkAclEntryRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkAclId', 'RuleNumber', 'Egress', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkAclId' => [ 'shape' => 'NetworkAclId', 'locationName' => 'networkAclId', ], 'RuleNumber' => [ 'shape' => 'Integer', 'locationName' => 'ruleNumber', ], 'Egress' => [ 'shape' => 'Boolean', 'locationName' => 'egress', ], ], ], 'DeleteNetworkAclRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkAclId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkAclId' => [ 'shape' => 'NetworkAclId', 'locationName' => 'networkAclId', ], ], ], 'DeleteNetworkInsightsAccessScopeAnalysisRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInsightsAccessScopeAnalysisId', ], 'members' => [ 'NetworkInsightsAccessScopeAnalysisId' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteNetworkInsightsAccessScopeAnalysisResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeAnalysisId' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisId', 'locationName' => 'networkInsightsAccessScopeAnalysisId', ], ], ], 'DeleteNetworkInsightsAccessScopeRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInsightsAccessScopeId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', ], ], ], 'DeleteNetworkInsightsAccessScopeResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', 'locationName' => 'networkInsightsAccessScopeId', ], ], ], 'DeleteNetworkInsightsAnalysisRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInsightsAnalysisId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'NetworkInsightsAnalysisId' => [ 'shape' => 'NetworkInsightsAnalysisId', ], ], ], 'DeleteNetworkInsightsAnalysisResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAnalysisId' => [ 'shape' => 'NetworkInsightsAnalysisId', 'locationName' => 'networkInsightsAnalysisId', ], ], ], 'DeleteNetworkInsightsPathRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInsightsPathId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'NetworkInsightsPathId' => [ 'shape' => 'NetworkInsightsPathId', ], ], ], 'DeleteNetworkInsightsPathResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsPathId' => [ 'shape' => 'NetworkInsightsPathId', 'locationName' => 'networkInsightsPathId', ], ], ], 'DeleteNetworkInterfacePermissionRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfacePermissionId', ], 'members' => [ 'NetworkInterfacePermissionId' => [ 'shape' => 'NetworkInterfacePermissionId', ], 'Force' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteNetworkInterfacePermissionResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DeleteNetworkInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], ], ], 'DeletePlacementGroupRequest' => [ 'type' => 'structure', 'required' => [ 'GroupName', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'GroupName' => [ 'shape' => 'PlacementGroupNameWithResolver', 'locationName' => 'groupName', ], ], ], 'DeletePublicIpv4PoolRequest' => [ 'type' => 'structure', 'required' => [ 'PoolId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'PoolId' => [ 'shape' => 'Ipv4PoolEc2Id', ], 'NetworkBorderGroup' => [ 'shape' => 'String', ], ], ], 'DeletePublicIpv4PoolResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'returnValue', ], ], ], 'DeleteQueuedReservedInstancesError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'DeleteQueuedReservedInstancesErrorCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'DeleteQueuedReservedInstancesErrorCode' => [ 'type' => 'string', 'enum' => [ 'reserved-instances-id-invalid', 'reserved-instances-not-in-queued-state', 'unexpected-error', ], ], 'DeleteQueuedReservedInstancesIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservationId', 'locationName' => 'item', ], 'max' => 100, 'min' => 1, ], 'DeleteQueuedReservedInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstancesIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ReservedInstancesIds' => [ 'shape' => 'DeleteQueuedReservedInstancesIdList', 'locationName' => 'ReservedInstancesId', ], ], ], 'DeleteQueuedReservedInstancesResult' => [ 'type' => 'structure', 'members' => [ 'SuccessfulQueuedPurchaseDeletions' => [ 'shape' => 'SuccessfulQueuedPurchaseDeletionSet', 'locationName' => 'successfulQueuedPurchaseDeletionSet', ], 'FailedQueuedPurchaseDeletions' => [ 'shape' => 'FailedQueuedPurchaseDeletionSet', 'locationName' => 'failedQueuedPurchaseDeletionSet', ], ], ], 'DeleteRouteRequest' => [ 'type' => 'structure', 'required' => [ 'RouteTableId', ], 'members' => [ 'DestinationPrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', 'locationName' => 'routeTableId', ], 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'DestinationIpv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationIpv6CidrBlock', ], ], ], 'DeleteRouteServerEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerEndpointId', ], 'members' => [ 'RouteServerEndpointId' => [ 'shape' => 'RouteServerEndpointId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteRouteServerEndpointResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerEndpoint' => [ 'shape' => 'RouteServerEndpoint', 'locationName' => 'routeServerEndpoint', ], ], ], 'DeleteRouteServerPeerRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerPeerId', ], 'members' => [ 'RouteServerPeerId' => [ 'shape' => 'RouteServerPeerId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteRouteServerPeerResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerPeer' => [ 'shape' => 'RouteServerPeer', 'locationName' => 'routeServerPeer', ], ], ], 'DeleteRouteServerRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteRouteServerResult' => [ 'type' => 'structure', 'members' => [ 'RouteServer' => [ 'shape' => 'RouteServer', 'locationName' => 'routeServer', ], ], ], 'DeleteRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'RouteTableId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', 'locationName' => 'routeTableId', ], ], ], 'DeleteSecondaryNetworkRequest' => [ 'type' => 'structure', 'required' => [ 'SecondaryNetworkId', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SecondaryNetworkId' => [ 'shape' => 'SecondaryNetworkId', ], ], ], 'DeleteSecondaryNetworkResult' => [ 'type' => 'structure', 'members' => [ 'SecondaryNetwork' => [ 'shape' => 'SecondaryNetwork', 'locationName' => 'secondaryNetwork', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'DeleteSecondarySubnetRequest' => [ 'type' => 'structure', 'required' => [ 'SecondarySubnetId', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SecondarySubnetId' => [ 'shape' => 'SecondarySubnetId', ], ], ], 'DeleteSecondarySubnetResult' => [ 'type' => 'structure', 'members' => [ 'SecondarySubnet' => [ 'shape' => 'SecondarySubnet', 'locationName' => 'secondarySubnet', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'DeleteSecurityGroupRequest' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'SecurityGroupId', ], 'GroupName' => [ 'shape' => 'SecurityGroupName', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteSecurityGroupResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'groupId', ], ], ], 'DeleteSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', ], 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteSnapshotResultSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteSnapshotReturnCode', 'locationName' => 'item', ], ], 'DeleteSnapshotReturnCode' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', 'locationName' => 'snapshotId', ], 'ReturnCode' => [ 'shape' => 'SnapshotReturnCodes', 'locationName' => 'returnCode', ], ], ], 'DeleteSpotDatafeedSubscriptionRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteSubnetCidrReservationRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetCidrReservationId', ], 'members' => [ 'SubnetCidrReservationId' => [ 'shape' => 'SubnetCidrReservationId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteSubnetCidrReservationResult' => [ 'type' => 'structure', 'members' => [ 'DeletedSubnetCidrReservation' => [ 'shape' => 'SubnetCidrReservation', 'locationName' => 'deletedSubnetCidrReservation', ], ], ], 'DeleteSubnetRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', ], 'members' => [ 'SubnetId' => [ 'shape' => 'SubnetId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteTagsRequest' => [ 'type' => 'structure', 'required' => [ 'Resources', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Resources' => [ 'shape' => 'ResourceIdList', 'locationName' => 'resourceId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tag', ], ], ], 'DeleteTrafficMirrorFilterRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficMirrorFilterId', ], 'members' => [ 'TrafficMirrorFilterId' => [ 'shape' => 'TrafficMirrorFilterId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTrafficMirrorFilterResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorFilterId', ], ], ], 'DeleteTrafficMirrorFilterRuleRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficMirrorFilterRuleId', ], 'members' => [ 'TrafficMirrorFilterRuleId' => [ 'shape' => 'TrafficMirrorFilterRuleIdWithResolver', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTrafficMirrorFilterRuleResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterRuleId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorFilterRuleId', ], ], ], 'DeleteTrafficMirrorSessionRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficMirrorSessionId', ], 'members' => [ 'TrafficMirrorSessionId' => [ 'shape' => 'TrafficMirrorSessionId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTrafficMirrorSessionResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorSessionId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorSessionId', ], ], ], 'DeleteTrafficMirrorTargetRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficMirrorTargetId', ], 'members' => [ 'TrafficMirrorTargetId' => [ 'shape' => 'TrafficMirrorTargetId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTrafficMirrorTargetResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorTargetId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorTargetId', ], ], ], 'DeleteTransitGatewayClientVpnAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayClientVpnAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayClientVpnAttachment' => [ 'shape' => 'TransitGatewayClientVpnAttachment', 'locationName' => 'transitGatewayClientVpnAttachment', ], ], ], 'DeleteTransitGatewayConnectPeerRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayConnectPeerId', ], 'members' => [ 'TransitGatewayConnectPeerId' => [ 'shape' => 'TransitGatewayConnectPeerId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayConnectPeerResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayConnectPeer' => [ 'shape' => 'TransitGatewayConnectPeer', 'locationName' => 'transitGatewayConnectPeer', ], ], ], 'DeleteTransitGatewayConnectRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayConnectResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayConnect' => [ 'shape' => 'TransitGatewayConnect', 'locationName' => 'transitGatewayConnect', ], ], ], 'DeleteTransitGatewayMeteringPolicyEntryRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMeteringPolicyId', 'PolicyRuleNumber', ], 'members' => [ 'TransitGatewayMeteringPolicyId' => [ 'shape' => 'TransitGatewayMeteringPolicyId', ], 'PolicyRuleNumber' => [ 'shape' => 'Integer', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayMeteringPolicyEntryResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicyEntry' => [ 'shape' => 'TransitGatewayMeteringPolicyEntry', 'locationName' => 'transitGatewayMeteringPolicyEntry', ], ], ], 'DeleteTransitGatewayMeteringPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMeteringPolicyId', ], 'members' => [ 'TransitGatewayMeteringPolicyId' => [ 'shape' => 'TransitGatewayMeteringPolicyId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayMeteringPolicyResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicy' => [ 'shape' => 'TransitGatewayMeteringPolicy', 'locationName' => 'transitGatewayMeteringPolicy', ], ], ], 'DeleteTransitGatewayMulticastDomainRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMulticastDomainId', ], 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayMulticastDomainResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomain' => [ 'shape' => 'TransitGatewayMulticastDomain', 'locationName' => 'transitGatewayMulticastDomain', ], ], ], 'DeleteTransitGatewayPeeringAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayPeeringAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPeeringAttachment' => [ 'shape' => 'TransitGatewayPeeringAttachment', 'locationName' => 'transitGatewayPeeringAttachment', ], ], ], 'DeleteTransitGatewayPolicyTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayPolicyTableId', ], 'members' => [ 'TransitGatewayPolicyTableId' => [ 'shape' => 'TransitGatewayPolicyTableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayPolicyTableResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPolicyTable' => [ 'shape' => 'TransitGatewayPolicyTable', 'locationName' => 'transitGatewayPolicyTable', ], ], ], 'DeleteTransitGatewayPrefixListReferenceRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'PrefixListId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayPrefixListReferenceResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPrefixListReference' => [ 'shape' => 'TransitGatewayPrefixListReference', 'locationName' => 'transitGatewayPrefixListReference', ], ], ], 'DeleteTransitGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayResult' => [ 'type' => 'structure', 'members' => [ 'TransitGateway' => [ 'shape' => 'TransitGateway', 'locationName' => 'transitGateway', ], ], ], 'DeleteTransitGatewayRouteRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'DestinationCidrBlock', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayRouteResult' => [ 'type' => 'structure', 'members' => [ 'Route' => [ 'shape' => 'TransitGatewayRoute', 'locationName' => 'route', ], ], ], 'DeleteTransitGatewayRouteTableAnnouncementRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableAnnouncementId', ], 'members' => [ 'TransitGatewayRouteTableAnnouncementId' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayRouteTableAnnouncementResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableAnnouncement' => [ 'shape' => 'TransitGatewayRouteTableAnnouncement', 'locationName' => 'transitGatewayRouteTableAnnouncement', ], ], ], 'DeleteTransitGatewayRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTable' => [ 'shape' => 'TransitGatewayRouteTable', 'locationName' => 'transitGatewayRouteTable', ], ], ], 'DeleteTransitGatewayVpcAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayVpcAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachment' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'transitGatewayVpcAttachment', ], ], ], 'DeleteVerifiedAccessEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessEndpointId', ], 'members' => [ 'VerifiedAccessEndpointId' => [ 'shape' => 'VerifiedAccessEndpointId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteVerifiedAccessEndpointResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessEndpoint' => [ 'shape' => 'VerifiedAccessEndpoint', 'locationName' => 'verifiedAccessEndpoint', ], ], ], 'DeleteVerifiedAccessGroupRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessGroupId', ], 'members' => [ 'VerifiedAccessGroupId' => [ 'shape' => 'VerifiedAccessGroupId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteVerifiedAccessGroupResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessGroup' => [ 'shape' => 'VerifiedAccessGroup', 'locationName' => 'verifiedAccessGroup', ], ], ], 'DeleteVerifiedAccessInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessInstanceId', ], 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'DeleteVerifiedAccessInstanceResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstance' => [ 'shape' => 'VerifiedAccessInstance', 'locationName' => 'verifiedAccessInstance', ], ], ], 'DeleteVerifiedAccessTrustProviderRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessTrustProviderId', ], 'members' => [ 'VerifiedAccessTrustProviderId' => [ 'shape' => 'VerifiedAccessTrustProviderId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'DeleteVerifiedAccessTrustProviderResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProvider' => [ 'shape' => 'VerifiedAccessTrustProvider', 'locationName' => 'verifiedAccessTrustProvider', ], ], ], 'DeleteVolumeRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'VolumeId' => [ 'shape' => 'VolumeId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteVpcBlockPublicAccessExclusionRequest' => [ 'type' => 'structure', 'required' => [ 'ExclusionId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ExclusionId' => [ 'shape' => 'VpcBlockPublicAccessExclusionId', ], ], ], 'DeleteVpcBlockPublicAccessExclusionResult' => [ 'type' => 'structure', 'members' => [ 'VpcBlockPublicAccessExclusion' => [ 'shape' => 'VpcBlockPublicAccessExclusion', 'locationName' => 'vpcBlockPublicAccessExclusion', ], ], ], 'DeleteVpcEncryptionControlRequest' => [ 'type' => 'structure', 'required' => [ 'VpcEncryptionControlId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcEncryptionControlId' => [ 'shape' => 'VpcEncryptionControlId', ], ], ], 'DeleteVpcEncryptionControlResult' => [ 'type' => 'structure', 'members' => [ 'VpcEncryptionControl' => [ 'shape' => 'VpcEncryptionControl', 'locationName' => 'vpcEncryptionControl', ], ], ], 'DeleteVpcEndpointConnectionNotificationsRequest' => [ 'type' => 'structure', 'required' => [ 'ConnectionNotificationIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ConnectionNotificationIds' => [ 'shape' => 'ConnectionNotificationIdsList', 'locationName' => 'ConnectionNotificationId', ], ], ], 'DeleteVpcEndpointConnectionNotificationsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'DeleteVpcEndpointServiceConfigurationsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceIds' => [ 'shape' => 'VpcEndpointServiceIdList', 'locationName' => 'ServiceId', ], ], ], 'DeleteVpcEndpointServiceConfigurationsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'DeleteVpcEndpointsRequest' => [ 'type' => 'structure', 'required' => [ 'VpcEndpointIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcEndpointIds' => [ 'shape' => 'VpcEndpointIdList', 'locationName' => 'VpcEndpointId', ], ], ], 'DeleteVpcEndpointsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'DeleteVpcPeeringConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'VpcPeeringConnectionId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcPeeringConnectionId' => [ 'shape' => 'VpcPeeringConnectionId', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'DeleteVpcPeeringConnectionResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DeleteVpcRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteVpnConcentratorRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConcentratorId', ], 'members' => [ 'VpnConcentratorId' => [ 'shape' => 'VpnConcentratorId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteVpnConcentratorResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DeleteVpnConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteVpnConnectionRouteRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationCidrBlock', 'VpnConnectionId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], ], ], 'DeleteVpnGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'VpnGatewayId', ], 'members' => [ 'VpnGatewayId' => [ 'shape' => 'VpnGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeprecationTimeCondition' => [ 'type' => 'structure', 'members' => [ 'MaximumDaysSinceDeprecated' => [ 'shape' => 'MaximumDaysSinceDeprecatedValue', 'locationName' => 'maximumDaysSinceDeprecated', ], ], ], 'DeprecationTimeConditionRequest' => [ 'type' => 'structure', 'members' => [ 'MaximumDaysSinceDeprecated' => [ 'shape' => 'MaximumDaysSinceDeprecatedValue', ], ], ], 'DeprovisionByoipCidrRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeprovisionByoipCidrResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidr' => [ 'shape' => 'ByoipCidr', 'locationName' => 'byoipCidr', ], ], ], 'DeprovisionIpamByoasnRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', 'Asn', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamId' => [ 'shape' => 'IpamId', ], 'Asn' => [ 'shape' => 'String', ], ], ], 'DeprovisionIpamByoasnResult' => [ 'type' => 'structure', 'members' => [ 'Byoasn' => [ 'shape' => 'Byoasn', 'locationName' => 'byoasn', ], ], ], 'DeprovisionIpamPoolCidrRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Cidr' => [ 'shape' => 'String', ], ], ], 'DeprovisionIpamPoolCidrResult' => [ 'type' => 'structure', 'members' => [ 'IpamPoolCidr' => [ 'shape' => 'IpamPoolCidr', 'locationName' => 'ipamPoolCidr', ], ], ], 'DeprovisionPublicIpv4PoolCidrRequest' => [ 'type' => 'structure', 'required' => [ 'PoolId', 'Cidr', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'PoolId' => [ 'shape' => 'Ipv4PoolEc2Id', ], 'Cidr' => [ 'shape' => 'String', ], ], ], 'DeprovisionPublicIpv4PoolCidrResult' => [ 'type' => 'structure', 'members' => [ 'PoolId' => [ 'shape' => 'Ipv4PoolEc2Id', 'locationName' => 'poolId', ], 'DeprovisionedAddresses' => [ 'shape' => 'DeprovisionedAddressSet', 'locationName' => 'deprovisionedAddressSet', ], ], ], 'DeprovisionedAddressSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'DeregisterImageRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DeleteAssociatedSnapshots' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeregisterImageResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'DeleteSnapshotResults' => [ 'shape' => 'DeleteSnapshotResultSet', 'locationName' => 'deleteSnapshotResultSet', ], ], ], 'DeregisterInstanceEventNotificationAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceTagAttribute', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceTagAttribute' => [ 'shape' => 'DeregisterInstanceTagAttributeRequest', ], ], ], 'DeregisterInstanceEventNotificationAttributesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceTagAttribute' => [ 'shape' => 'InstanceTagNotificationAttribute', 'locationName' => 'instanceTagAttribute', ], ], ], 'DeregisterInstanceTagAttributeRequest' => [ 'type' => 'structure', 'members' => [ 'IncludeAllTagsOfInstance' => [ 'shape' => 'Boolean', ], 'InstanceTagKeys' => [ 'shape' => 'InstanceTagKeySet', 'locationName' => 'InstanceTagKey', ], ], ], 'DeregisterTransitGatewayMulticastGroupMembersRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'GroupIpAddress' => [ 'shape' => 'String', ], 'NetworkInterfaceIds' => [ 'shape' => 'TransitGatewayNetworkInterfaceIdList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeregisterTransitGatewayMulticastGroupMembersResult' => [ 'type' => 'structure', 'members' => [ 'DeregisteredMulticastGroupMembers' => [ 'shape' => 'TransitGatewayMulticastDeregisteredGroupMembers', 'locationName' => 'deregisteredMulticastGroupMembers', ], ], ], 'DeregisterTransitGatewayMulticastGroupSourcesRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'GroupIpAddress' => [ 'shape' => 'String', ], 'NetworkInterfaceIds' => [ 'shape' => 'TransitGatewayNetworkInterfaceIdList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeregisterTransitGatewayMulticastGroupSourcesResult' => [ 'type' => 'structure', 'members' => [ 'DeregisteredMulticastGroupSources' => [ 'shape' => 'TransitGatewayMulticastDeregisteredGroupSources', 'locationName' => 'deregisteredMulticastGroupSources', ], ], ], 'DescribeAccountAttributesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'AttributeNames' => [ 'shape' => 'AccountAttributeNameStringList', 'locationName' => 'attributeName', ], ], ], 'DescribeAccountAttributesResult' => [ 'type' => 'structure', 'members' => [ 'AccountAttributes' => [ 'shape' => 'AccountAttributeList', 'locationName' => 'accountAttributeSet', ], ], ], 'DescribeAccountVpcEncryptionControlRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeAccountVpcEncryptionControlResult' => [ 'type' => 'structure', 'members' => [ 'AccountVpcEncryptionControl' => [ 'shape' => 'AccountVpcEncryptionControl', 'locationName' => 'accountVpcEncryptionControl', ], ], ], 'DescribeAddressTransfersMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeAddressTransfersRequest' => [ 'type' => 'structure', 'members' => [ 'AllocationIds' => [ 'shape' => 'AllocationIdList', 'locationName' => 'AllocationId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeAddressTransfersMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeAddressTransfersResult' => [ 'type' => 'structure', 'members' => [ 'AddressTransfers' => [ 'shape' => 'AddressTransferList', 'locationName' => 'addressTransferSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeAddressesAttributeRequest' => [ 'type' => 'structure', 'members' => [ 'AllocationIds' => [ 'shape' => 'AllocationIds', 'locationName' => 'AllocationId', ], 'Attribute' => [ 'shape' => 'AddressAttributeName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'AddressMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeAddressesAttributeResult' => [ 'type' => 'structure', 'members' => [ 'Addresses' => [ 'shape' => 'AddressSet', 'locationName' => 'addressSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeAddressesRequest' => [ 'type' => 'structure', 'members' => [ 'PublicIps' => [ 'shape' => 'PublicIpStringList', 'locationName' => 'PublicIp', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'AllocationIds' => [ 'shape' => 'AllocationIdList', 'locationName' => 'AllocationId', ], ], ], 'DescribeAddressesResult' => [ 'type' => 'structure', 'members' => [ 'Addresses' => [ 'shape' => 'AddressList', 'locationName' => 'addressesSet', ], ], ], 'DescribeAggregateIdFormatRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeAggregateIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'UseLongIdsAggregated' => [ 'shape' => 'Boolean', 'locationName' => 'useLongIdsAggregated', ], 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], 'DescribeAvailabilityZonesRequest' => [ 'type' => 'structure', 'members' => [ 'ZoneNames' => [ 'shape' => 'ZoneNameStringList', 'locationName' => 'ZoneName', ], 'ZoneIds' => [ 'shape' => 'ZoneIdStringList', 'locationName' => 'ZoneId', ], 'AllAvailabilityZones' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeAvailabilityZonesResult' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZoneList', 'locationName' => 'availabilityZoneInfo', ], ], ], 'DescribeAwsNetworkPerformanceMetricSubscriptionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResultsParam', ], 'NextToken' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeAwsNetworkPerformanceMetricSubscriptionsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Subscriptions' => [ 'shape' => 'SubscriptionList', 'locationName' => 'subscriptionSet', ], ], ], 'DescribeBundleTasksRequest' => [ 'type' => 'structure', 'members' => [ 'BundleIds' => [ 'shape' => 'BundleIdStringList', 'locationName' => 'BundleId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeBundleTasksResult' => [ 'type' => 'structure', 'members' => [ 'BundleTasks' => [ 'shape' => 'BundleTaskList', 'locationName' => 'bundleInstanceTasksSet', ], ], ], 'DescribeByoipCidrsMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'DescribeByoipCidrsRequest' => [ 'type' => 'structure', 'required' => [ 'MaxResults', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'DescribeByoipCidrsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeByoipCidrsResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidrs' => [ 'shape' => 'ByoipCidrSet', 'locationName' => 'byoipCidrSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityBlockExtensionHistoryRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationIds' => [ 'shape' => 'CapacityReservationIdSet', 'locationName' => 'CapacityReservationId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeFutureCapacityMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCapacityBlockExtensionHistoryResult' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockExtensions' => [ 'shape' => 'CapacityBlockExtensionSet', 'locationName' => 'capacityBlockExtensionSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityBlockExtensionOfferingsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeCapacityBlockExtensionOfferingsRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityBlockExtensionDurationHours', 'CapacityReservationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'CapacityBlockExtensionDurationHours' => [ 'shape' => 'Integer', ], 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityBlockExtensionOfferingsMaxResults', ], ], ], 'DescribeCapacityBlockExtensionOfferingsResult' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockExtensionOfferings' => [ 'shape' => 'CapacityBlockExtensionOfferingSet', 'locationName' => 'capacityBlockExtensionOfferingSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityBlockOfferingsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeCapacityBlockOfferingsRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityDurationHours', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceType' => [ 'shape' => 'String', ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'StartDateRange' => [ 'shape' => 'MillisecondDateTime', ], 'EndDateRange' => [ 'shape' => 'MillisecondDateTime', ], 'CapacityDurationHours' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityBlockOfferingsMaxResults', ], 'UltraserverType' => [ 'shape' => 'String', ], 'UltraserverCount' => [ 'shape' => 'Integer', ], 'AllAvailabilityZones' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCapacityBlockOfferingsResult' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockOfferings' => [ 'shape' => 'CapacityBlockOfferingSet', 'locationName' => 'capacityBlockOfferingSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityBlockStatusMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeCapacityBlockStatusRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockIds' => [ 'shape' => 'CapacityBlockIds', 'locationName' => 'CapacityBlockId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityBlockStatusMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCapacityBlockStatusResult' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockStatuses' => [ 'shape' => 'CapacityBlockStatusSet', 'locationName' => 'capacityBlockStatusSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityBlocksMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeCapacityBlocksRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockIds' => [ 'shape' => 'CapacityBlockIds', 'locationName' => 'CapacityBlockId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityBlocksMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCapacityBlocksResult' => [ 'type' => 'structure', 'members' => [ 'CapacityBlocks' => [ 'shape' => 'CapacityBlockSet', 'locationName' => 'capacityBlockSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityManagerDataExportsRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerDataExportIds' => [ 'shape' => 'CapacityManagerDataExportIdSet', 'locationName' => 'CapacityManagerDataExportId', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityManagerDataExportsRequestMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeCapacityManagerDataExportsRequestMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeCapacityManagerDataExportsResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerDataExports' => [ 'shape' => 'CapacityManagerDataExportResponseSet', 'locationName' => 'capacityManagerDataExportSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityReservationBillingRequestsRequest' => [ 'type' => 'structure', 'required' => [ 'Role', ], 'members' => [ 'CapacityReservationIds' => [ 'shape' => 'CapacityReservationIdSet', 'locationName' => 'CapacityReservationId', ], 'Role' => [ 'shape' => 'CallerRole', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityReservationBillingRequestsRequestMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCapacityReservationBillingRequestsRequestMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeCapacityReservationBillingRequestsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'CapacityReservationBillingRequests' => [ 'shape' => 'CapacityReservationBillingRequestSet', 'locationName' => 'capacityReservationBillingRequestSet', ], ], ], 'DescribeCapacityReservationCancellationQuotesRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationCancellationQuoteIds' => [ 'shape' => 'CapacityReservationCancellationQuoteIdSet', 'locationName' => 'CapacityReservationCancellationQuoteId', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityReservationCancellationQuotesRequestMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeCapacityReservationCancellationQuotesRequestMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeCapacityReservationCancellationQuotesResult' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationCancellationQuotes' => [ 'shape' => 'CapacityReservationCancellationQuoteResponseSet', 'locationName' => 'capacityReservationCancellationQuoteSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityReservationFleetsMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'DescribeCapacityReservationFleetsRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationFleetIds' => [ 'shape' => 'CapacityReservationFleetIdSet', 'locationName' => 'CapacityReservationFleetId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityReservationFleetsMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCapacityReservationFleetsResult' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationFleets' => [ 'shape' => 'CapacityReservationFleetSet', 'locationName' => 'capacityReservationFleetSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityReservationTopologyMaxResults' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'DescribeCapacityReservationTopologyRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityReservationTopologyMaxResults', ], 'CapacityReservationIds' => [ 'shape' => 'CapacityReservationIdSet', 'locationName' => 'CapacityReservationId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeCapacityReservationTopologyResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'CapacityReservations' => [ 'shape' => 'CapacityReservationTopologySet', 'locationName' => 'capacityReservationSet', ], ], ], 'DescribeCapacityReservationsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeCapacityReservationsRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationIds' => [ 'shape' => 'CapacityReservationIdSet', 'locationName' => 'CapacityReservationId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityReservationsMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCapacityReservationsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'CapacityReservations' => [ 'shape' => 'CapacityReservationSet', 'locationName' => 'capacityReservationSet', ], ], ], 'DescribeCarrierGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'CarrierGatewayIds' => [ 'shape' => 'CarrierGatewayIdSet', 'locationName' => 'CarrierGatewayId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'CarrierGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCarrierGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'CarrierGateways' => [ 'shape' => 'CarrierGatewaySet', 'locationName' => 'carrierGatewaySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeClassicLinkInstancesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeClassicLinkInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'DescribeClassicLinkInstancesMaxResults', 'locationName' => 'maxResults', ], ], ], 'DescribeClassicLinkInstancesResult' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'ClassicLinkInstanceList', 'locationName' => 'instancesSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeClientVpnAuthorizationRulesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeClientVpnAuthorizationRulesRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeClientVpnAuthorizationRulesMaxResults', ], ], ], 'DescribeClientVpnAuthorizationRulesResult' => [ 'type' => 'structure', 'members' => [ 'AuthorizationRules' => [ 'shape' => 'AuthorizationRuleSet', 'locationName' => 'authorizationRule', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeClientVpnConnectionsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeClientVpnConnectionsRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'DescribeClientVpnConnectionsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeClientVpnConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'Connections' => [ 'shape' => 'ClientVpnConnectionSet', 'locationName' => 'connections', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeClientVpnEndpointMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeClientVpnEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointIds' => [ 'shape' => 'ClientVpnEndpointIdList', 'locationName' => 'ClientVpnEndpointId', ], 'MaxResults' => [ 'shape' => 'DescribeClientVpnEndpointMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeClientVpnEndpointsResult' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpoints' => [ 'shape' => 'EndpointSet', 'locationName' => 'clientVpnEndpoint', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeClientVpnRoutesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeClientVpnRoutesRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeClientVpnRoutesMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeClientVpnRoutesResult' => [ 'type' => 'structure', 'members' => [ 'Routes' => [ 'shape' => 'ClientVpnRouteSet', 'locationName' => 'routes', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeClientVpnTargetNetworksMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeClientVpnTargetNetworksRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'AssociationIds' => [ 'shape' => 'ValueStringList', ], 'MaxResults' => [ 'shape' => 'DescribeClientVpnTargetNetworksMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeClientVpnTargetNetworksResult' => [ 'type' => 'structure', 'members' => [ 'ClientVpnTargetNetworks' => [ 'shape' => 'TargetNetworkSet', 'locationName' => 'clientVpnTargetNetworks', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeCoipPoolsRequest' => [ 'type' => 'structure', 'members' => [ 'PoolIds' => [ 'shape' => 'CoipPoolIdSet', 'locationName' => 'PoolId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'CoipPoolMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCoipPoolsResult' => [ 'type' => 'structure', 'members' => [ 'CoipPools' => [ 'shape' => 'CoipPoolSet', 'locationName' => 'coipPoolSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeConversionTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConversionTask', 'locationName' => 'item', ], ], 'DescribeConversionTasksRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'ConversionTaskIds' => [ 'shape' => 'ConversionIdStringList', 'locationName' => 'conversionTaskId', ], ], ], 'DescribeConversionTasksResult' => [ 'type' => 'structure', 'members' => [ 'ConversionTasks' => [ 'shape' => 'DescribeConversionTaskList', 'locationName' => 'conversionTasks', ], ], ], 'DescribeCustomerGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'CustomerGatewayIds' => [ 'shape' => 'CustomerGatewayIdStringList', 'locationName' => 'CustomerGatewayId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeCustomerGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'CustomerGateways' => [ 'shape' => 'CustomerGatewayList', 'locationName' => 'customerGatewaySet', ], ], ], 'DescribeDeclarativePoliciesReportsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DeclarativePoliciesMaxResults', ], 'ReportIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'ReportId', ], ], ], 'DescribeDeclarativePoliciesReportsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Reports' => [ 'shape' => 'DeclarativePoliciesReportList', 'locationName' => 'reportSet', ], ], ], 'DescribeDhcpOptionsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeDhcpOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'DhcpOptionsIds' => [ 'shape' => 'DhcpOptionsIdStringList', 'locationName' => 'DhcpOptionsId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeDhcpOptionsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeDhcpOptionsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'DhcpOptions' => [ 'shape' => 'DhcpOptionsList', 'locationName' => 'dhcpOptionsSet', ], ], ], 'DescribeEgressOnlyInternetGatewaysMaxResults' => [ 'type' => 'integer', 'max' => 255, 'min' => 5, ], 'DescribeEgressOnlyInternetGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'EgressOnlyInternetGatewayIds' => [ 'shape' => 'EgressOnlyInternetGatewayIdList', 'locationName' => 'EgressOnlyInternetGatewayId', ], 'MaxResults' => [ 'shape' => 'DescribeEgressOnlyInternetGatewaysMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeEgressOnlyInternetGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'EgressOnlyInternetGateways' => [ 'shape' => 'EgressOnlyInternetGatewayList', 'locationName' => 'egressOnlyInternetGatewaySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeElasticGpusMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 10, ], 'DescribeElasticGpusRequest' => [ 'type' => 'structure', 'members' => [ 'ElasticGpuIds' => [ 'shape' => 'ElasticGpuIdSet', 'locationName' => 'ElasticGpuId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeElasticGpusMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeElasticGpusResult' => [ 'type' => 'structure', 'members' => [ 'ElasticGpuSet' => [ 'shape' => 'ElasticGpuSet', 'locationName' => 'elasticGpuSet', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeExportImageTasksMaxResults' => [ 'type' => 'integer', 'max' => 500, 'min' => 1, ], 'DescribeExportImageTasksRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'ExportImageTaskIds' => [ 'shape' => 'ExportImageTaskIdList', 'locationName' => 'ExportImageTaskId', ], 'MaxResults' => [ 'shape' => 'DescribeExportImageTasksMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeExportImageTasksResult' => [ 'type' => 'structure', 'members' => [ 'ExportImageTasks' => [ 'shape' => 'ExportImageTaskList', 'locationName' => 'exportImageTaskSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeExportTasksRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'ExportTaskIds' => [ 'shape' => 'ExportTaskIdStringList', 'locationName' => 'exportTaskId', ], ], ], 'DescribeExportTasksResult' => [ 'type' => 'structure', 'members' => [ 'ExportTasks' => [ 'shape' => 'ExportTaskList', 'locationName' => 'exportTaskSet', ], ], ], 'DescribeFastLaunchImagesRequest' => [ 'type' => 'structure', 'members' => [ 'ImageIds' => [ 'shape' => 'FastLaunchImageIdList', 'locationName' => 'ImageId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeFastLaunchImagesRequestMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeFastLaunchImagesRequestMaxResults' => [ 'type' => 'integer', 'max' => 200, 'min' => 0, ], 'DescribeFastLaunchImagesResult' => [ 'type' => 'structure', 'members' => [ 'FastLaunchImages' => [ 'shape' => 'DescribeFastLaunchImagesSuccessSet', 'locationName' => 'fastLaunchImageSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeFastLaunchImagesSuccessItem' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'ResourceType' => [ 'shape' => 'FastLaunchResourceType', 'locationName' => 'resourceType', ], 'SnapshotConfiguration' => [ 'shape' => 'FastLaunchSnapshotConfigurationResponse', 'locationName' => 'snapshotConfiguration', ], 'LaunchTemplate' => [ 'shape' => 'FastLaunchLaunchTemplateSpecificationResponse', 'locationName' => 'launchTemplate', ], 'MaxParallelLaunches' => [ 'shape' => 'Integer', 'locationName' => 'maxParallelLaunches', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'State' => [ 'shape' => 'FastLaunchStateCode', 'locationName' => 'state', ], 'StateTransitionReason' => [ 'shape' => 'String', 'locationName' => 'stateTransitionReason', ], 'StateTransitionTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'stateTransitionTime', ], ], ], 'DescribeFastLaunchImagesSuccessSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DescribeFastLaunchImagesSuccessItem', 'locationName' => 'item', ], ], 'DescribeFastSnapshotRestoreSuccessItem' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'State' => [ 'shape' => 'FastSnapshotRestoreStateCode', 'locationName' => 'state', ], 'StateTransitionReason' => [ 'shape' => 'String', 'locationName' => 'stateTransitionReason', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'OwnerAlias' => [ 'shape' => 'String', 'locationName' => 'ownerAlias', ], 'EnablingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'enablingTime', ], 'OptimizingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'optimizingTime', ], 'EnabledTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'enabledTime', ], 'DisablingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'disablingTime', ], 'DisabledTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'disabledTime', ], ], ], 'DescribeFastSnapshotRestoreSuccessSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DescribeFastSnapshotRestoreSuccessItem', 'locationName' => 'item', ], ], 'DescribeFastSnapshotRestoresMaxResults' => [ 'type' => 'integer', 'max' => 200, 'min' => 0, ], 'DescribeFastSnapshotRestoresRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeFastSnapshotRestoresMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeFastSnapshotRestoresResult' => [ 'type' => 'structure', 'members' => [ 'FastSnapshotRestores' => [ 'shape' => 'DescribeFastSnapshotRestoreSuccessSet', 'locationName' => 'fastSnapshotRestoreSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeFleetError' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateAndOverrides' => [ 'shape' => 'LaunchTemplateAndOverridesResponse', 'locationName' => 'launchTemplateAndOverrides', ], 'Lifecycle' => [ 'shape' => 'InstanceLifecycle', 'locationName' => 'lifecycle', ], 'ErrorCode' => [ 'shape' => 'String', 'locationName' => 'errorCode', ], 'ErrorMessage' => [ 'shape' => 'String', 'locationName' => 'errorMessage', ], ], ], 'DescribeFleetHistoryRequest' => [ 'type' => 'structure', 'required' => [ 'FleetId', 'StartTime', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'EventType' => [ 'shape' => 'FleetEventType', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'FleetId' => [ 'shape' => 'FleetId', ], 'StartTime' => [ 'shape' => 'DateTime', ], ], ], 'DescribeFleetHistoryResult' => [ 'type' => 'structure', 'members' => [ 'HistoryRecords' => [ 'shape' => 'HistoryRecordSet', 'locationName' => 'historyRecordSet', ], 'LastEvaluatedTime' => [ 'shape' => 'DateTime', 'locationName' => 'lastEvaluatedTime', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'FleetId' => [ 'shape' => 'FleetId', 'locationName' => 'fleetId', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], ], ], 'DescribeFleetInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'FleetId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'FleetId' => [ 'shape' => 'FleetId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeFleetInstancesResult' => [ 'type' => 'structure', 'members' => [ 'ActiveInstances' => [ 'shape' => 'ActiveInstanceSet', 'locationName' => 'activeInstanceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'FleetId' => [ 'shape' => 'FleetId', 'locationName' => 'fleetId', ], ], ], 'DescribeFleetsErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DescribeFleetError', 'locationName' => 'item', ], ], 'DescribeFleetsInstances' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateAndOverrides' => [ 'shape' => 'LaunchTemplateAndOverridesResponse', 'locationName' => 'launchTemplateAndOverrides', ], 'Lifecycle' => [ 'shape' => 'InstanceLifecycle', 'locationName' => 'lifecycle', ], 'InstanceIds' => [ 'shape' => 'InstanceIdsSet', 'locationName' => 'instanceIds', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], ], ], 'DescribeFleetsInstancesSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DescribeFleetsInstances', 'locationName' => 'item', ], ], 'DescribeFleetsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'FleetIds' => [ 'shape' => 'FleetIdSet', 'locationName' => 'FleetId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeFleetsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Fleets' => [ 'shape' => 'FleetSet', 'locationName' => 'fleetSet', ], ], ], 'DescribeFlowLogsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filter' => [ 'shape' => 'FilterList', ], 'FlowLogIds' => [ 'shape' => 'FlowLogIdList', 'locationName' => 'FlowLogId', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeFlowLogsResult' => [ 'type' => 'structure', 'members' => [ 'FlowLogs' => [ 'shape' => 'FlowLogSet', 'locationName' => 'flowLogSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeFpgaImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'FpgaImageId', 'Attribute', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FpgaImageId' => [ 'shape' => 'FpgaImageId', ], 'Attribute' => [ 'shape' => 'FpgaImageAttributeName', ], ], ], 'DescribeFpgaImageAttributeResult' => [ 'type' => 'structure', 'members' => [ 'FpgaImageAttribute' => [ 'shape' => 'FpgaImageAttribute', 'locationName' => 'fpgaImageAttribute', ], ], ], 'DescribeFpgaImagesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeFpgaImagesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FpgaImageIds' => [ 'shape' => 'FpgaImageIdList', 'locationName' => 'FpgaImageId', ], 'Owners' => [ 'shape' => 'OwnerStringList', 'locationName' => 'Owner', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'DescribeFpgaImagesMaxResults', ], ], ], 'DescribeFpgaImagesResult' => [ 'type' => 'structure', 'members' => [ 'FpgaImages' => [ 'shape' => 'FpgaImageList', 'locationName' => 'fpgaImageSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeFutureCapacityMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeHostReservationOfferingsRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'FilterList', ], 'MaxDuration' => [ 'shape' => 'Integer', ], 'MaxResults' => [ 'shape' => 'DescribeHostReservationsMaxResults', ], 'MinDuration' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'OfferingId' => [ 'shape' => 'OfferingId', ], ], ], 'DescribeHostReservationOfferingsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'OfferingSet' => [ 'shape' => 'HostOfferingSet', 'locationName' => 'offeringSet', ], ], ], 'DescribeHostReservationsMaxResults' => [ 'type' => 'integer', 'max' => 500, 'min' => 5, ], 'DescribeHostReservationsRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'FilterList', ], 'HostReservationIdSet' => [ 'shape' => 'HostReservationIdSet', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeHostReservationsResult' => [ 'type' => 'structure', 'members' => [ 'HostReservationSet' => [ 'shape' => 'HostReservationSet', 'locationName' => 'hostReservationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeHostsRequest' => [ 'type' => 'structure', 'members' => [ 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'Filter' => [ 'shape' => 'FilterList', 'locationName' => 'filter', ], ], ], 'DescribeHostsResult' => [ 'type' => 'structure', 'members' => [ 'Hosts' => [ 'shape' => 'HostList', 'locationName' => 'hostSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeIamInstanceProfileAssociationsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeIamInstanceProfileAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'AssociationIds' => [ 'shape' => 'AssociationIdList', 'locationName' => 'AssociationId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeIamInstanceProfileAssociationsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeIamInstanceProfileAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'IamInstanceProfileAssociations' => [ 'shape' => 'IamInstanceProfileAssociationSet', 'locationName' => 'iamInstanceProfileAssociationSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeIdFormatRequest' => [ 'type' => 'structure', 'members' => [ 'Resource' => [ 'shape' => 'String', ], ], ], 'DescribeIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], 'DescribeIdentityIdFormatRequest' => [ 'type' => 'structure', 'required' => [ 'PrincipalArn', ], 'members' => [ 'Resource' => [ 'shape' => 'String', 'locationName' => 'resource', ], 'PrincipalArn' => [ 'shape' => 'String', 'locationName' => 'principalArn', ], ], ], 'DescribeIdentityIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], 'DescribeImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'ImageId', ], 'members' => [ 'Attribute' => [ 'shape' => 'ImageAttributeName', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeImageReferencesImageIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageId', ], 'max' => 10, 'min' => 1, ], 'DescribeImageReferencesMaxResults' => [ 'type' => 'integer', 'min' => 5, ], 'DescribeImageReferencesRequest' => [ 'type' => 'structure', 'required' => [ 'ImageIds', ], 'members' => [ 'ImageIds' => [ 'shape' => 'DescribeImageReferencesImageIdStringList', 'locationName' => 'ImageId', ], 'IncludeAllResourceTypes' => [ 'shape' => 'Boolean', ], 'ResourceTypes' => [ 'shape' => 'ResourceTypeRequestList', 'locationName' => 'ResourceType', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'DescribeImageReferencesMaxResults', ], ], ], 'DescribeImageReferencesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ImageReferences' => [ 'shape' => 'ImageReferenceList', 'locationName' => 'imageReferenceSet', ], ], ], 'DescribeImageUsageReportEntriesMaxResults' => [ 'type' => 'integer', 'min' => 1, ], 'DescribeImageUsageReportEntriesRequest' => [ 'type' => 'structure', 'members' => [ 'ImageIds' => [ 'shape' => 'DescribeImageUsageReportsImageIdStringList', 'locationName' => 'ImageId', ], 'ReportIds' => [ 'shape' => 'ImageUsageReportIdStringList', 'locationName' => 'ReportId', ], 'NextToken' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'DescribeImageUsageReportEntriesMaxResults', ], ], ], 'DescribeImageUsageReportEntriesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ImageUsageReportEntries' => [ 'shape' => 'ImageUsageReportEntryList', 'locationName' => 'imageUsageReportEntrySet', ], ], ], 'DescribeImageUsageReportsImageIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageId', ], 'max' => 200, 'min' => 0, ], 'DescribeImageUsageReportsMaxResults' => [ 'type' => 'integer', 'min' => 1, ], 'DescribeImageUsageReportsRequest' => [ 'type' => 'structure', 'members' => [ 'ImageIds' => [ 'shape' => 'DescribeImageUsageReportsImageIdStringList', 'locationName' => 'ImageId', ], 'ReportIds' => [ 'shape' => 'ImageUsageReportIdStringList', 'locationName' => 'ReportId', ], 'NextToken' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'DescribeImageUsageReportsMaxResults', ], ], ], 'DescribeImageUsageReportsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ImageUsageReports' => [ 'shape' => 'ImageUsageReportList', 'locationName' => 'imageUsageReportSet', ], ], ], 'DescribeImagesRequest' => [ 'type' => 'structure', 'members' => [ 'ExecutableUsers' => [ 'shape' => 'ExecutableByStringList', 'locationName' => 'ExecutableBy', ], 'ImageIds' => [ 'shape' => 'ImageIdStringList', 'locationName' => 'ImageId', ], 'Owners' => [ 'shape' => 'OwnerStringList', 'locationName' => 'Owner', ], 'IncludeDeprecated' => [ 'shape' => 'Boolean', ], 'IncludeDisabled' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeImagesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Images' => [ 'shape' => 'ImageList', 'locationName' => 'imagesSet', ], ], ], 'DescribeImportImageTasksRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', ], 'ImportTaskIds' => [ 'shape' => 'ImportTaskIdList', 'locationName' => 'ImportTaskId', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeImportImageTasksResult' => [ 'type' => 'structure', 'members' => [ 'ImportImageTasks' => [ 'shape' => 'ImportImageTaskList', 'locationName' => 'importImageTaskSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeImportSnapshotTasksRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', ], 'ImportTaskIds' => [ 'shape' => 'ImportSnapshotTaskIdList', 'locationName' => 'ImportTaskId', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeImportSnapshotTasksResult' => [ 'type' => 'structure', 'members' => [ 'ImportSnapshotTasks' => [ 'shape' => 'ImportSnapshotTaskList', 'locationName' => 'importSnapshotTaskSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'Attribute', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'Attribute' => [ 'shape' => 'InstanceAttributeName', 'locationName' => 'attribute', ], ], ], 'DescribeInstanceConnectEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'InstanceConnectEndpointMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'InstanceConnectEndpointIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'InstanceConnectEndpointId', ], ], ], 'DescribeInstanceConnectEndpointsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceConnectEndpoints' => [ 'shape' => 'InstanceConnectEndpointSet', 'locationName' => 'instanceConnectEndpointSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceCreditSpecificationsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeInstanceCreditSpecificationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'MaxResults' => [ 'shape' => 'DescribeInstanceCreditSpecificationsMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeInstanceCreditSpecificationsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceCreditSpecifications' => [ 'shape' => 'InstanceCreditSpecificationList', 'locationName' => 'instanceCreditSpecificationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceEventNotificationAttributesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeInstanceEventNotificationAttributesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceTagAttribute' => [ 'shape' => 'InstanceTagNotificationAttribute', 'locationName' => 'instanceTagAttribute', ], ], ], 'DescribeInstanceEventWindowsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceEventWindowIds' => [ 'shape' => 'InstanceEventWindowIdSet', 'locationName' => 'InstanceEventWindowId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'ResultRange', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeInstanceEventWindowsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceEventWindows' => [ 'shape' => 'InstanceEventWindowSet', 'locationName' => 'instanceEventWindowSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceImageMetadataMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeInstanceImageMetadataRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'MaxResults' => [ 'shape' => 'DescribeInstanceImageMetadataMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeInstanceImageMetadataResult' => [ 'type' => 'structure', 'members' => [ 'InstanceImageMetadata' => [ 'shape' => 'InstanceImageMetadataList', 'locationName' => 'instanceImageMetadataSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceSqlHaHistoryStatesRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', ], 'EndTime' => [ 'shape' => 'MillisecondDateTime', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'DescribeInstanceSqlHaStatesRequestMaxResultsInteger', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeInstanceSqlHaHistoryStatesResult' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'RegisteredInstanceList', 'locationName' => 'instanceSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceSqlHaStatesRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'DescribeInstanceSqlHaStatesRequestMaxResultsInteger', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeInstanceSqlHaStatesRequestMaxResultsInteger' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeInstanceSqlHaStatesResult' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'RegisteredInstanceList', 'locationName' => 'instanceSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceStatusRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'IncludeManagedResources' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'IncludeAllInstances' => [ 'shape' => 'Boolean', 'locationName' => 'includeAllInstances', ], ], ], 'DescribeInstanceStatusResult' => [ 'type' => 'structure', 'members' => [ 'InstanceStatuses' => [ 'shape' => 'InstanceStatusList', 'locationName' => 'instanceStatusSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceTopologyGroupNameSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementGroupName', ], ], 'DescribeInstanceTopologyInstanceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', ], ], 'DescribeInstanceTopologyMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'DescribeInstanceTopologyRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeInstanceTopologyMaxResults', ], 'InstanceIds' => [ 'shape' => 'DescribeInstanceTopologyInstanceIdSet', 'locationName' => 'InstanceId', ], 'GroupNames' => [ 'shape' => 'DescribeInstanceTopologyGroupNameSet', 'locationName' => 'GroupName', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeInstanceTopologyResult' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'InstanceSet', 'locationName' => 'instanceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceTypeOfferingsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'LocationType' => [ 'shape' => 'LocationType', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DITOMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeInstanceTypeOfferingsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceTypeOfferings' => [ 'shape' => 'InstanceTypeOfferingsList', 'locationName' => 'instanceTypeOfferingSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceTypesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceTypes' => [ 'shape' => 'RequestInstanceTypeList', 'locationName' => 'InstanceType', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DITMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IncludeUnsupportedInRegion' => [ 'shape' => 'IncludeUnsupportedInRegion', ], ], ], 'DescribeInstanceTypesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceTypes' => [ 'shape' => 'InstanceTypeInfoList', 'locationName' => 'instanceTypeSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'IncludeManagedResources' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], ], ], 'DescribeInstancesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Reservations' => [ 'shape' => 'ReservationList', 'locationName' => 'reservationSet', ], ], ], 'DescribeInternetGatewaysMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeInternetGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeInternetGatewaysMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InternetGatewayIds' => [ 'shape' => 'InternetGatewayIdList', 'locationName' => 'internetGatewayId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeInternetGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'InternetGateways' => [ 'shape' => 'InternetGatewayList', 'locationName' => 'internetGatewaySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeIpamByoasnMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'DescribeIpamByoasnRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'DescribeIpamByoasnMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeIpamByoasnResult' => [ 'type' => 'structure', 'members' => [ 'Byoasns' => [ 'shape' => 'ByoasnSet', 'locationName' => 'byoasnSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeIpamExternalResourceVerificationTokensRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'IpamExternalResourceVerificationTokenIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamExternalResourceVerificationTokenId', ], ], ], 'DescribeIpamExternalResourceVerificationTokensResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'IpamExternalResourceVerificationTokens' => [ 'shape' => 'IpamExternalResourceVerificationTokenSet', 'locationName' => 'ipamExternalResourceVerificationTokenSet', ], ], ], 'DescribeIpamPoliciesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IpamPolicyIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamPolicyId', ], ], ], 'DescribeIpamPoliciesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'IpamPolicies' => [ 'shape' => 'IpamPolicySet', 'locationName' => 'ipamPolicySet', ], ], ], 'DescribeIpamPoolAllocationsMaxResults' => [ 'type' => 'integer', 'max' => 100000, 'min' => 1000, ], 'DescribeIpamPoolAllocationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolAllocationIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamPoolAllocationId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeIpamPoolAllocationsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeIpamPoolAllocationsResult' => [ 'type' => 'structure', 'members' => [ 'IpamPoolAllocations' => [ 'shape' => 'IpamPoolAllocationSet', 'locationName' => 'ipamPoolAllocationSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeIpamPoolsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IpamPoolIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamPoolId', ], ], ], 'DescribeIpamPoolsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'IpamPools' => [ 'shape' => 'IpamPoolSet', 'locationName' => 'ipamPoolSet', ], ], ], 'DescribeIpamPrefixListResolverTargetsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IpamPrefixListResolverTargetIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamPrefixListResolverTargetId', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', ], ], ], 'DescribeIpamPrefixListResolverTargetsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'IpamPrefixListResolverTargets' => [ 'shape' => 'IpamPrefixListResolverTargetSet', 'locationName' => 'ipamPrefixListResolverTargetSet', ], ], ], 'DescribeIpamPrefixListResolversRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IpamPrefixListResolverIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamPrefixListResolverId', ], ], ], 'DescribeIpamPrefixListResolversResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'IpamPrefixListResolvers' => [ 'shape' => 'IpamPrefixListResolverSet', 'locationName' => 'ipamPrefixListResolverSet', ], ], ], 'DescribeIpamResourceDiscoveriesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamResourceDiscoveryIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamResourceDiscoveryId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeIpamResourceDiscoveriesResult' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscoveries' => [ 'shape' => 'IpamResourceDiscoverySet', 'locationName' => 'ipamResourceDiscoverySet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeIpamResourceDiscoveryAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamResourceDiscoveryAssociationIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamResourceDiscoveryAssociationId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeIpamResourceDiscoveryAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscoveryAssociations' => [ 'shape' => 'IpamResourceDiscoveryAssociationSet', 'locationName' => 'ipamResourceDiscoveryAssociationSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeIpamScopesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IpamScopeIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamScopeId', ], ], ], 'DescribeIpamScopesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'IpamScopes' => [ 'shape' => 'IpamScopeSet', 'locationName' => 'ipamScopeSet', ], ], ], 'DescribeIpamsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IpamIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamId', ], ], ], 'DescribeIpamsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'Ipams' => [ 'shape' => 'IpamSet', 'locationName' => 'ipamSet', ], ], ], 'DescribeIpv6PoolsRequest' => [ 'type' => 'structure', 'members' => [ 'PoolIds' => [ 'shape' => 'Ipv6PoolIdList', 'locationName' => 'PoolId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'Ipv6PoolMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeIpv6PoolsResult' => [ 'type' => 'structure', 'members' => [ 'Ipv6Pools' => [ 'shape' => 'Ipv6PoolSet', 'locationName' => 'ipv6PoolSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeKeyPairsRequest' => [ 'type' => 'structure', 'members' => [ 'KeyNames' => [ 'shape' => 'KeyNameStringList', 'locationName' => 'KeyName', ], 'KeyPairIds' => [ 'shape' => 'KeyPairIdStringList', 'locationName' => 'KeyPairId', ], 'IncludePublicKey' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeKeyPairsResult' => [ 'type' => 'structure', 'members' => [ 'KeyPairs' => [ 'shape' => 'KeyPairList', 'locationName' => 'keySet', ], ], ], 'DescribeLaunchTemplateVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'Versions' => [ 'shape' => 'VersionStringList', 'locationName' => 'LaunchTemplateVersion', ], 'MinVersion' => [ 'shape' => 'String', ], 'MaxVersion' => [ 'shape' => 'String', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'ResolveAlias' => [ 'shape' => 'Boolean', ], 'IncludeManagedResources' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLaunchTemplateVersionsResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateVersions' => [ 'shape' => 'LaunchTemplateVersionSet', 'locationName' => 'launchTemplateVersionSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLaunchTemplatesMaxResults' => [ 'type' => 'integer', 'max' => 200, 'min' => 1, ], 'DescribeLaunchTemplatesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'LaunchTemplateIds' => [ 'shape' => 'LaunchTemplateIdStringList', 'locationName' => 'LaunchTemplateId', ], 'LaunchTemplateNames' => [ 'shape' => 'LaunchTemplateNameStringList', 'locationName' => 'LaunchTemplateName', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeLaunchTemplatesMaxResults', ], 'IncludeManagedResources' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLaunchTemplatesResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplates' => [ 'shape' => 'LaunchTemplateSet', 'locationName' => 'launchTemplates', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationIds' => [ 'shape' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet', 'locationName' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'LocalGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVirtualInterfaceGroupAssociations' => [ 'shape' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet', 'locationName' => 'localGatewayRouteTableVirtualInterfaceGroupAssociationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLocalGatewayRouteTableVpcAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVpcAssociationIds' => [ 'shape' => 'LocalGatewayRouteTableVpcAssociationIdSet', 'locationName' => 'LocalGatewayRouteTableVpcAssociationId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'LocalGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLocalGatewayRouteTableVpcAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVpcAssociations' => [ 'shape' => 'LocalGatewayRouteTableVpcAssociationSet', 'locationName' => 'localGatewayRouteTableVpcAssociationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLocalGatewayRouteTablesRequest' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableIds' => [ 'shape' => 'LocalGatewayRouteTableIdSet', 'locationName' => 'LocalGatewayRouteTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'LocalGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLocalGatewayRouteTablesResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTables' => [ 'shape' => 'LocalGatewayRouteTableSet', 'locationName' => 'localGatewayRouteTableSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLocalGatewayVirtualInterfaceGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterfaceGroupIds' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupIdSet', 'locationName' => 'LocalGatewayVirtualInterfaceGroupId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'LocalGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLocalGatewayVirtualInterfaceGroupsResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterfaceGroups' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupSet', 'locationName' => 'localGatewayVirtualInterfaceGroupSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLocalGatewayVirtualInterfacesRequest' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterfaceIds' => [ 'shape' => 'LocalGatewayVirtualInterfaceIdSet', 'locationName' => 'LocalGatewayVirtualInterfaceId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'LocalGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLocalGatewayVirtualInterfacesResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterfaces' => [ 'shape' => 'LocalGatewayVirtualInterfaceSet', 'locationName' => 'localGatewayVirtualInterfaceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLocalGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayIds' => [ 'shape' => 'LocalGatewayIdSet', 'locationName' => 'LocalGatewayId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'LocalGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLocalGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'LocalGateways' => [ 'shape' => 'LocalGatewaySet', 'locationName' => 'localGatewaySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLockedSnapshotsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeLockedSnapshotsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeLockedSnapshotsMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'SnapshotIds' => [ 'shape' => 'SnapshotIdStringList', 'locationName' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLockedSnapshotsResult' => [ 'type' => 'structure', 'members' => [ 'Snapshots' => [ 'shape' => 'LockedSnapshotsInfoList', 'locationName' => 'snapshotSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeMacHostsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'HostId', ], 'MaxResults' => [ 'shape' => 'DescribeMacHostsRequestMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeMacHostsRequestMaxResults' => [ 'type' => 'integer', 'max' => 500, 'min' => 5, ], 'DescribeMacHostsResult' => [ 'type' => 'structure', 'members' => [ 'MacHosts' => [ 'shape' => 'MacHostList', 'locationName' => 'macHostSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeMacModificationTasksMaxResults' => [ 'type' => 'integer', 'max' => 500, 'min' => 1, ], 'DescribeMacModificationTasksRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MacModificationTaskIds' => [ 'shape' => 'MacModificationTaskIdList', 'locationName' => 'MacModificationTaskId', ], 'MaxResults' => [ 'shape' => 'DescribeMacModificationTasksMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeMacModificationTasksResult' => [ 'type' => 'structure', 'members' => [ 'MacModificationTasks' => [ 'shape' => 'MacModificationTaskList', 'locationName' => 'macModificationTaskSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeManagedPrefixListsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'PrefixListMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'PrefixListIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'PrefixListId', ], ], ], 'DescribeManagedPrefixListsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'PrefixLists' => [ 'shape' => 'ManagedPrefixListSet', 'locationName' => 'prefixListSet', ], ], ], 'DescribeMovingAddressesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeMovingAddressesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'PublicIps' => [ 'shape' => 'ValueStringList', 'locationName' => 'publicIp', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'filter', ], 'MaxResults' => [ 'shape' => 'DescribeMovingAddressesMaxResults', 'locationName' => 'maxResults', ], ], ], 'DescribeMovingAddressesResult' => [ 'type' => 'structure', 'members' => [ 'MovingAddressStatuses' => [ 'shape' => 'MovingAddressStatusSet', 'locationName' => 'movingAddressStatusSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNatGatewaysMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeNatGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filter' => [ 'shape' => 'FilterList', ], 'MaxResults' => [ 'shape' => 'DescribeNatGatewaysMaxResults', ], 'NatGatewayIds' => [ 'shape' => 'NatGatewayIdStringList', 'locationName' => 'NatGatewayId', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeNatGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'NatGateways' => [ 'shape' => 'NatGatewayList', 'locationName' => 'natGatewaySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkAclsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeNetworkAclsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeNetworkAclsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkAclIds' => [ 'shape' => 'NetworkAclIdStringList', 'locationName' => 'NetworkAclId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeNetworkAclsResult' => [ 'type' => 'structure', 'members' => [ 'NetworkAcls' => [ 'shape' => 'NetworkAclList', 'locationName' => 'networkAclSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkInsightsAccessScopeAnalysesRequest' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeAnalysisIds' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisIdList', 'locationName' => 'NetworkInsightsAccessScopeAnalysisId', ], 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', ], 'AnalysisStartTimeBegin' => [ 'shape' => 'MillisecondDateTime', ], 'AnalysisStartTimeEnd' => [ 'shape' => 'MillisecondDateTime', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'NetworkInsightsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeNetworkInsightsAccessScopeAnalysesResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeAnalyses' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisList', 'locationName' => 'networkInsightsAccessScopeAnalysisSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkInsightsAccessScopesRequest' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeIds' => [ 'shape' => 'NetworkInsightsAccessScopeIdList', 'locationName' => 'NetworkInsightsAccessScopeId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'NetworkInsightsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeNetworkInsightsAccessScopesResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopes' => [ 'shape' => 'NetworkInsightsAccessScopeList', 'locationName' => 'networkInsightsAccessScopeSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkInsightsAnalysesRequest' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAnalysisIds' => [ 'shape' => 'NetworkInsightsAnalysisIdList', 'locationName' => 'NetworkInsightsAnalysisId', ], 'NetworkInsightsPathId' => [ 'shape' => 'NetworkInsightsPathId', ], 'AnalysisStartTime' => [ 'shape' => 'MillisecondDateTime', ], 'AnalysisEndTime' => [ 'shape' => 'MillisecondDateTime', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'NetworkInsightsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeNetworkInsightsAnalysesResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAnalyses' => [ 'shape' => 'NetworkInsightsAnalysisList', 'locationName' => 'networkInsightsAnalysisSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkInsightsPathsRequest' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsPathIds' => [ 'shape' => 'NetworkInsightsPathIdList', 'locationName' => 'NetworkInsightsPathId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'NetworkInsightsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeNetworkInsightsPathsResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsPaths' => [ 'shape' => 'NetworkInsightsPathList', 'locationName' => 'networkInsightsPathSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkInterfaceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'Attribute' => [ 'shape' => 'NetworkInterfaceAttribute', 'locationName' => 'attribute', ], ], ], 'DescribeNetworkInterfaceAttributeResult' => [ 'type' => 'structure', 'members' => [ 'Attachment' => [ 'shape' => 'NetworkInterfaceAttachment', 'locationName' => 'attachment', ], 'Description' => [ 'shape' => 'AttributeValue', 'locationName' => 'description', ], 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'SourceDestCheck' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'sourceDestCheck', ], 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', 'locationName' => 'associatePublicIpAddress', ], ], ], 'DescribeNetworkInterfacePermissionsMaxResults' => [ 'type' => 'integer', 'max' => 255, 'min' => 5, ], 'DescribeNetworkInterfacePermissionsRequest' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfacePermissionIds' => [ 'shape' => 'NetworkInterfacePermissionIdList', 'locationName' => 'NetworkInterfacePermissionId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeNetworkInterfacePermissionsMaxResults', ], ], ], 'DescribeNetworkInterfacePermissionsResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfacePermissions' => [ 'shape' => 'NetworkInterfacePermissionList', 'locationName' => 'networkInterfacePermissions', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkInterfacesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeNetworkInterfacesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeNetworkInterfacesMaxResults', ], 'IncludeManagedResources' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceIds' => [ 'shape' => 'NetworkInterfaceIdList', 'locationName' => 'NetworkInterfaceId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'filter', ], ], ], 'DescribeNetworkInterfacesResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaces' => [ 'shape' => 'NetworkInterfaceList', 'locationName' => 'networkInterfaceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeOutpostLagsRequest' => [ 'type' => 'structure', 'members' => [ 'OutpostLagIds' => [ 'shape' => 'OutpostLagIdSet', 'locationName' => 'OutpostLagId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'OutpostLagMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeOutpostLagsResult' => [ 'type' => 'structure', 'members' => [ 'OutpostLags' => [ 'shape' => 'OutpostLagSet', 'locationName' => 'outpostLagSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribePlacementGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'GroupIds' => [ 'shape' => 'PlacementGroupIdStringList', 'locationName' => 'GroupId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'GroupNames' => [ 'shape' => 'PlacementGroupStringList', 'locationName' => 'groupName', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribePlacementGroupsResult' => [ 'type' => 'structure', 'members' => [ 'PlacementGroups' => [ 'shape' => 'PlacementGroupList', 'locationName' => 'placementGroupSet', ], ], ], 'DescribePrefixListsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'PrefixListIds' => [ 'shape' => 'PrefixListResourceIdStringList', 'locationName' => 'PrefixListId', ], ], ], 'DescribePrefixListsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'PrefixLists' => [ 'shape' => 'PrefixListSet', 'locationName' => 'prefixListSet', ], ], ], 'DescribePrincipalIdFormatMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribePrincipalIdFormatRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Resources' => [ 'shape' => 'ResourceList', 'locationName' => 'Resource', ], 'MaxResults' => [ 'shape' => 'DescribePrincipalIdFormatMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribePrincipalIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'Principals' => [ 'shape' => 'PrincipalIdFormatList', 'locationName' => 'principalSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribePublicIpv4PoolsRequest' => [ 'type' => 'structure', 'members' => [ 'PoolIds' => [ 'shape' => 'PublicIpv4PoolIdStringList', 'locationName' => 'PoolId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'PoolMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribePublicIpv4PoolsResult' => [ 'type' => 'structure', 'members' => [ 'PublicIpv4Pools' => [ 'shape' => 'PublicIpv4PoolSet', 'locationName' => 'publicIpv4PoolSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeRegionsRequest' => [ 'type' => 'structure', 'members' => [ 'RegionNames' => [ 'shape' => 'RegionNameStringList', 'locationName' => 'RegionName', ], 'AllRegions' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeRegionsResult' => [ 'type' => 'structure', 'members' => [ 'Regions' => [ 'shape' => 'RegionList', 'locationName' => 'regionInfo', ], ], ], 'DescribeReplaceRootVolumeTasksMaxResults' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'DescribeReplaceRootVolumeTasksRequest' => [ 'type' => 'structure', 'members' => [ 'ReplaceRootVolumeTaskIds' => [ 'shape' => 'ReplaceRootVolumeTaskIds', 'locationName' => 'ReplaceRootVolumeTaskId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeReplaceRootVolumeTasksMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeReplaceRootVolumeTasksResult' => [ 'type' => 'structure', 'members' => [ 'ReplaceRootVolumeTasks' => [ 'shape' => 'ReplaceRootVolumeTasks', 'locationName' => 'replaceRootVolumeTaskSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeReservedInstancesListingsRequest' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesId' => [ 'shape' => 'ReservationId', 'locationName' => 'reservedInstancesId', ], 'ReservedInstancesListingId' => [ 'shape' => 'ReservedInstancesListingId', 'locationName' => 'reservedInstancesListingId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeReservedInstancesListingsResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesListings' => [ 'shape' => 'ReservedInstancesListingList', 'locationName' => 'reservedInstancesListingsSet', ], ], ], 'DescribeReservedInstancesModificationsRequest' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesModificationIds' => [ 'shape' => 'ReservedInstancesModificationIdStringList', 'locationName' => 'ReservedInstancesModificationId', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeReservedInstancesModificationsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ReservedInstancesModifications' => [ 'shape' => 'ReservedInstancesModificationList', 'locationName' => 'reservedInstancesModificationsSet', ], ], ], 'DescribeReservedInstancesOfferingsRequest' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'IncludeMarketplace' => [ 'shape' => 'Boolean', ], 'InstanceType' => [ 'shape' => 'InstanceType', ], 'MaxDuration' => [ 'shape' => 'Long', ], 'MaxInstanceCount' => [ 'shape' => 'Integer', ], 'MinDuration' => [ 'shape' => 'Long', ], 'OfferingClass' => [ 'shape' => 'OfferingClassType', ], 'ProductDescription' => [ 'shape' => 'RIProductDescription', ], 'ReservedInstancesOfferingIds' => [ 'shape' => 'ReservedInstancesOfferingIdStringList', 'locationName' => 'ReservedInstancesOfferingId', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'InstanceTenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'instanceTenancy', ], 'OfferingType' => [ 'shape' => 'OfferingTypeValues', 'locationName' => 'offeringType', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], ], ], 'DescribeReservedInstancesOfferingsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ReservedInstancesOfferings' => [ 'shape' => 'ReservedInstancesOfferingList', 'locationName' => 'reservedInstancesOfferingsSet', ], ], ], 'DescribeReservedInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'OfferingClass' => [ 'shape' => 'OfferingClassType', ], 'ReservedInstancesIds' => [ 'shape' => 'ReservedInstancesIdStringList', 'locationName' => 'ReservedInstancesId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'OfferingType' => [ 'shape' => 'OfferingTypeValues', 'locationName' => 'offeringType', ], ], ], 'DescribeReservedInstancesResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstances' => [ 'shape' => 'ReservedInstancesList', 'locationName' => 'reservedInstancesSet', ], ], ], 'DescribeRouteServerEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'RouteServerEndpointIds' => [ 'shape' => 'RouteServerEndpointIdsList', 'locationName' => 'RouteServerEndpointId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'RouteServerMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeRouteServerEndpointsResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerEndpoints' => [ 'shape' => 'RouteServerEndpointsList', 'locationName' => 'routeServerEndpointSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeRouteServerPeersRequest' => [ 'type' => 'structure', 'members' => [ 'RouteServerPeerIds' => [ 'shape' => 'RouteServerPeerIdsList', 'locationName' => 'RouteServerPeerId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'RouteServerMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeRouteServerPeersResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerPeers' => [ 'shape' => 'RouteServerPeersList', 'locationName' => 'routeServerPeerSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeRouteServersRequest' => [ 'type' => 'structure', 'members' => [ 'RouteServerIds' => [ 'shape' => 'RouteServerIdsList', 'locationName' => 'RouteServerId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'RouteServerMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeRouteServersResult' => [ 'type' => 'structure', 'members' => [ 'RouteServers' => [ 'shape' => 'RouteServersList', 'locationName' => 'routeServerSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeRouteTablesMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 5, ], 'DescribeRouteTablesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeRouteTablesMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'RouteTableIds' => [ 'shape' => 'RouteTableIdStringList', 'locationName' => 'RouteTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeRouteTablesResult' => [ 'type' => 'structure', 'members' => [ 'RouteTables' => [ 'shape' => 'RouteTableList', 'locationName' => 'routeTableSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeScheduledInstanceAvailabilityMaxResults' => [ 'type' => 'integer', 'max' => 300, 'min' => 5, ], 'DescribeScheduledInstanceAvailabilityRequest' => [ 'type' => 'structure', 'required' => [ 'FirstSlotStartTimeRange', 'Recurrence', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'FirstSlotStartTimeRange' => [ 'shape' => 'SlotDateTimeRangeRequest', ], 'MaxResults' => [ 'shape' => 'DescribeScheduledInstanceAvailabilityMaxResults', ], 'MaxSlotDurationInHours' => [ 'shape' => 'Integer', ], 'MinSlotDurationInHours' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrenceRequest', ], ], ], 'DescribeScheduledInstanceAvailabilityResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ScheduledInstanceAvailabilitySet' => [ 'shape' => 'ScheduledInstanceAvailabilitySet', 'locationName' => 'scheduledInstanceAvailabilitySet', ], ], ], 'DescribeScheduledInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'ScheduledInstanceIds' => [ 'shape' => 'ScheduledInstanceIdRequestSet', 'locationName' => 'ScheduledInstanceId', ], 'SlotStartTimeRange' => [ 'shape' => 'SlotStartTimeRangeRequest', ], ], ], 'DescribeScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ScheduledInstanceSet' => [ 'shape' => 'ScheduledInstanceSet', 'locationName' => 'scheduledInstanceSet', ], ], ], 'DescribeSecondaryInterfacesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeSecondaryInterfacesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeSecondaryInterfacesMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'SecondaryInterfaceIds' => [ 'shape' => 'SecondaryInterfaceIdList', 'locationName' => 'SecondaryInterfaceId', ], ], ], 'DescribeSecondaryInterfacesResult' => [ 'type' => 'structure', 'members' => [ 'SecondaryInterfaces' => [ 'shape' => 'SecondaryInterfaceList', 'locationName' => 'secondaryInterfaceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSecondaryNetworksMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeSecondaryNetworksRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeSecondaryNetworksMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'SecondaryNetworkIds' => [ 'shape' => 'SecondaryNetworkIdList', 'locationName' => 'SecondaryNetworkId', ], ], ], 'DescribeSecondaryNetworksResult' => [ 'type' => 'structure', 'members' => [ 'SecondaryNetworks' => [ 'shape' => 'SecondaryNetworkList', 'locationName' => 'secondaryNetworkSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSecondarySubnetsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeSecondarySubnetsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeSecondarySubnetsMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'SecondarySubnetIds' => [ 'shape' => 'SecondarySubnetIdList', 'locationName' => 'SecondarySubnetId', ], ], ], 'DescribeSecondarySubnetsResult' => [ 'type' => 'structure', 'members' => [ 'SecondarySubnets' => [ 'shape' => 'SecondarySubnetList', 'locationName' => 'secondarySubnetSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSecurityGroupReferencesRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'GroupId' => [ 'shape' => 'GroupIds', ], ], ], 'DescribeSecurityGroupReferencesResult' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupReferenceSet' => [ 'shape' => 'SecurityGroupReferences', 'locationName' => 'securityGroupReferenceSet', ], ], ], 'DescribeSecurityGroupRulesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeSecurityGroupRulesRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'SecurityGroupRuleIds' => [ 'shape' => 'SecurityGroupRuleIdList', 'locationName' => 'SecurityGroupRuleId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeSecurityGroupRulesMaxResults', ], ], ], 'DescribeSecurityGroupRulesResult' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupRules' => [ 'shape' => 'SecurityGroupRuleList', 'locationName' => 'securityGroupRuleSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSecurityGroupVpcAssociationsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeSecurityGroupVpcAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeSecurityGroupVpcAssociationsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeSecurityGroupVpcAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupVpcAssociations' => [ 'shape' => 'SecurityGroupVpcAssociationList', 'locationName' => 'securityGroupVpcAssociationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSecurityGroupsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeSecurityGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'GroupIds' => [ 'shape' => 'GroupIdStringList', 'locationName' => 'GroupId', ], 'GroupNames' => [ 'shape' => 'GroupNameStringList', 'locationName' => 'GroupName', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeSecurityGroupsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeSecurityGroupsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SecurityGroups' => [ 'shape' => 'SecurityGroupList', 'locationName' => 'securityGroupInfo', ], ], ], 'DescribeServiceLinkVirtualInterfacesRequest' => [ 'type' => 'structure', 'members' => [ 'ServiceLinkVirtualInterfaceIds' => [ 'shape' => 'ServiceLinkVirtualInterfaceIdSet', 'locationName' => 'ServiceLinkVirtualInterfaceId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'ServiceLinkMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeServiceLinkVirtualInterfacesResult' => [ 'type' => 'structure', 'members' => [ 'ServiceLinkVirtualInterfaces' => [ 'shape' => 'ServiceLinkVirtualInterfaceSet', 'locationName' => 'serviceLinkVirtualInterfaceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSnapshotAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'SnapshotId', ], 'members' => [ 'Attribute' => [ 'shape' => 'SnapshotAttributeName', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeSnapshotAttributeResult' => [ 'type' => 'structure', 'members' => [ 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'CreateVolumePermissions' => [ 'shape' => 'CreateVolumePermissionList', 'locationName' => 'createVolumePermission', ], ], ], 'DescribeSnapshotTierStatusMaxResults' => [ 'type' => 'integer', ], 'DescribeSnapshotTierStatusRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeSnapshotTierStatusMaxResults', ], ], ], 'DescribeSnapshotTierStatusResult' => [ 'type' => 'structure', 'members' => [ 'SnapshotTierStatuses' => [ 'shape' => 'snapshotTierStatusSet', 'locationName' => 'snapshotTierStatusSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSnapshotsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'OwnerIds' => [ 'shape' => 'OwnerStringList', 'locationName' => 'Owner', ], 'RestorableByUserIds' => [ 'shape' => 'RestorableByStringList', 'locationName' => 'RestorableBy', ], 'SnapshotIds' => [ 'shape' => 'SnapshotIdStringList', 'locationName' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeSnapshotsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Snapshots' => [ 'shape' => 'SnapshotList', 'locationName' => 'snapshotSet', ], ], ], 'DescribeSpotDatafeedSubscriptionRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeSpotDatafeedSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'SpotDatafeedSubscription' => [ 'shape' => 'SpotDatafeedSubscription', 'locationName' => 'spotDatafeedSubscription', ], ], ], 'DescribeSpotFleetInstancesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeSpotFleetInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotFleetRequestId' => [ 'shape' => 'SpotFleetRequestId', 'locationName' => 'spotFleetRequestId', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'DescribeSpotFleetInstancesMaxResults', 'locationName' => 'maxResults', ], ], ], 'DescribeSpotFleetInstancesResponse' => [ 'type' => 'structure', 'members' => [ 'ActiveInstances' => [ 'shape' => 'ActiveInstanceSet', 'locationName' => 'activeInstanceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], ], ], 'DescribeSpotFleetRequestHistoryMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeSpotFleetRequestHistoryRequest' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestId', 'StartTime', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotFleetRequestId' => [ 'shape' => 'SpotFleetRequestId', 'locationName' => 'spotFleetRequestId', ], 'EventType' => [ 'shape' => 'EventType', 'locationName' => 'eventType', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'DescribeSpotFleetRequestHistoryMaxResults', 'locationName' => 'maxResults', ], ], ], 'DescribeSpotFleetRequestHistoryResponse' => [ 'type' => 'structure', 'members' => [ 'HistoryRecords' => [ 'shape' => 'HistoryRecords', 'locationName' => 'historyRecordSet', ], 'LastEvaluatedTime' => [ 'shape' => 'DateTime', 'locationName' => 'lastEvaluatedTime', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], ], ], 'DescribeSpotFleetRequestsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotFleetRequestIds' => [ 'shape' => 'SpotFleetRequestIdList', 'locationName' => 'spotFleetRequestId', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], ], ], 'DescribeSpotFleetRequestsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SpotFleetRequestConfigs' => [ 'shape' => 'SpotFleetRequestConfigSet', 'locationName' => 'spotFleetRequestConfigSet', ], ], ], 'DescribeSpotInstanceRequestsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotInstanceRequestIds' => [ 'shape' => 'SpotInstanceRequestIdList', 'locationName' => 'SpotInstanceRequestId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeSpotInstanceRequestsResult' => [ 'type' => 'structure', 'members' => [ 'SpotInstanceRequests' => [ 'shape' => 'SpotInstanceRequestList', 'locationName' => 'spotInstanceRequestSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSpotPriceHistoryRequest' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], 'EndTime' => [ 'shape' => 'DateTime', 'locationName' => 'endTime', ], 'InstanceTypes' => [ 'shape' => 'InstanceTypeList', 'locationName' => 'InstanceType', ], 'ProductDescriptions' => [ 'shape' => 'ProductDescriptionList', 'locationName' => 'ProductDescription', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSpotPriceHistoryResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SpotPriceHistory' => [ 'shape' => 'SpotPriceHistoryList', 'locationName' => 'spotPriceHistorySet', ], ], ], 'DescribeStaleSecurityGroupsMaxResults' => [ 'type' => 'integer', 'max' => 255, 'min' => 5, ], 'DescribeStaleSecurityGroupsNextToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'DescribeStaleSecurityGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'DescribeStaleSecurityGroupsMaxResults', ], 'NextToken' => [ 'shape' => 'DescribeStaleSecurityGroupsNextToken', ], 'VpcId' => [ 'shape' => 'VpcId', ], ], ], 'DescribeStaleSecurityGroupsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'StaleSecurityGroupSet' => [ 'shape' => 'StaleSecurityGroupSet', 'locationName' => 'staleSecurityGroupSet', ], ], ], 'DescribeStoreImageTasksRequest' => [ 'type' => 'structure', 'members' => [ 'ImageIds' => [ 'shape' => 'ImageIdList', 'locationName' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeStoreImageTasksRequestMaxResults', ], ], ], 'DescribeStoreImageTasksRequestMaxResults' => [ 'type' => 'integer', 'max' => 200, 'min' => 1, ], 'DescribeStoreImageTasksResult' => [ 'type' => 'structure', 'members' => [ 'StoreImageTaskResults' => [ 'shape' => 'StoreImageTaskResultSet', 'locationName' => 'storeImageTaskResultSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSubnetsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeSubnetsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'SubnetIds' => [ 'shape' => 'SubnetIdStringList', 'locationName' => 'SubnetId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeSubnetsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeSubnetsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Subnets' => [ 'shape' => 'SubnetList', 'locationName' => 'subnetSet', ], ], ], 'DescribeTagsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTagsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Tags' => [ 'shape' => 'TagDescriptionList', 'locationName' => 'tagSet', ], ], ], 'DescribeTrafficMirrorFilterRulesRequest' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterRuleIds' => [ 'shape' => 'TrafficMirrorFilterRuleIdList', 'locationName' => 'TrafficMirrorFilterRuleId', ], 'TrafficMirrorFilterId' => [ 'shape' => 'TrafficMirrorFilterId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TrafficMirroringMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeTrafficMirrorFilterRulesResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterRules' => [ 'shape' => 'TrafficMirrorFilterRuleSet', 'locationName' => 'trafficMirrorFilterRuleSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTrafficMirrorFiltersRequest' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterIds' => [ 'shape' => 'TrafficMirrorFilterIdList', 'locationName' => 'TrafficMirrorFilterId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TrafficMirroringMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeTrafficMirrorFiltersResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilters' => [ 'shape' => 'TrafficMirrorFilterSet', 'locationName' => 'trafficMirrorFilterSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTrafficMirrorSessionsRequest' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorSessionIds' => [ 'shape' => 'TrafficMirrorSessionIdList', 'locationName' => 'TrafficMirrorSessionId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TrafficMirroringMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeTrafficMirrorSessionsResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorSessions' => [ 'shape' => 'TrafficMirrorSessionSet', 'locationName' => 'trafficMirrorSessionSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTrafficMirrorTargetsRequest' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorTargetIds' => [ 'shape' => 'TrafficMirrorTargetIdList', 'locationName' => 'TrafficMirrorTargetId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TrafficMirroringMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeTrafficMirrorTargetsResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorTargets' => [ 'shape' => 'TrafficMirrorTargetSet', 'locationName' => 'trafficMirrorTargetSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayAttachmentsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentIds' => [ 'shape' => 'TransitGatewayAttachmentIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayAttachmentsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachments' => [ 'shape' => 'TransitGatewayAttachmentList', 'locationName' => 'transitGatewayAttachments', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayConnectPeersRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayConnectPeerIds' => [ 'shape' => 'TransitGatewayConnectPeerIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayConnectPeersResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayConnectPeers' => [ 'shape' => 'TransitGatewayConnectPeerList', 'locationName' => 'transitGatewayConnectPeerSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayConnectsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentIds' => [ 'shape' => 'TransitGatewayAttachmentIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayConnectsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayConnects' => [ 'shape' => 'TransitGatewayConnectList', 'locationName' => 'transitGatewayConnectSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayMeteringPoliciesRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicyIds' => [ 'shape' => 'TransitGatewayMeteringPolicyIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayMeteringPoliciesResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicies' => [ 'shape' => 'TransitGatewayMeteringPolicyList', 'locationName' => 'transitGatewayMeteringPolicies', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayMulticastDomainsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainIds' => [ 'shape' => 'TransitGatewayMulticastDomainIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayMulticastDomainsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomains' => [ 'shape' => 'TransitGatewayMulticastDomainList', 'locationName' => 'transitGatewayMulticastDomains', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayPeeringAttachmentsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentIds' => [ 'shape' => 'TransitGatewayAttachmentIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayPeeringAttachmentsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPeeringAttachments' => [ 'shape' => 'TransitGatewayPeeringAttachmentList', 'locationName' => 'transitGatewayPeeringAttachments', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayPolicyTablesRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPolicyTableIds' => [ 'shape' => 'TransitGatewayPolicyTableIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayPolicyTablesResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPolicyTables' => [ 'shape' => 'TransitGatewayPolicyTableList', 'locationName' => 'transitGatewayPolicyTables', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayRouteTableAnnouncementsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableAnnouncementIds' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayRouteTableAnnouncementsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableAnnouncements' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementList', 'locationName' => 'transitGatewayRouteTableAnnouncements', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayRouteTablesRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableIds' => [ 'shape' => 'TransitGatewayRouteTableIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayRouteTablesResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTables' => [ 'shape' => 'TransitGatewayRouteTableList', 'locationName' => 'transitGatewayRouteTables', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayVpcAttachmentsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentIds' => [ 'shape' => 'TransitGatewayAttachmentIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayVpcAttachmentsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachments' => [ 'shape' => 'TransitGatewayVpcAttachmentList', 'locationName' => 'transitGatewayVpcAttachments', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayIds' => [ 'shape' => 'TransitGatewayIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'TransitGateways' => [ 'shape' => 'TransitGatewayList', 'locationName' => 'transitGatewaySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTrunkInterfaceAssociationsMaxResults' => [ 'type' => 'integer', 'max' => 255, 'min' => 5, ], 'DescribeTrunkInterfaceAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'AssociationIds' => [ 'shape' => 'TrunkInterfaceAssociationIdList', 'locationName' => 'AssociationId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeTrunkInterfaceAssociationsMaxResults', ], ], ], 'DescribeTrunkInterfaceAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'InterfaceAssociations' => [ 'shape' => 'TrunkInterfaceAssociationList', 'locationName' => 'interfaceAssociationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVerifiedAccessEndpointsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeVerifiedAccessEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessEndpointIds' => [ 'shape' => 'VerifiedAccessEndpointIdList', 'locationName' => 'VerifiedAccessEndpointId', ], 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'VerifiedAccessGroupId' => [ 'shape' => 'VerifiedAccessGroupId', ], 'MaxResults' => [ 'shape' => 'DescribeVerifiedAccessEndpointsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeVerifiedAccessEndpointsResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessEndpoints' => [ 'shape' => 'VerifiedAccessEndpointList', 'locationName' => 'verifiedAccessEndpointSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVerifiedAccessGroupMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeVerifiedAccessGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessGroupIds' => [ 'shape' => 'VerifiedAccessGroupIdList', 'locationName' => 'VerifiedAccessGroupId', ], 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'MaxResults' => [ 'shape' => 'DescribeVerifiedAccessGroupMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeVerifiedAccessGroupsResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessGroups' => [ 'shape' => 'VerifiedAccessGroupList', 'locationName' => 'verifiedAccessGroupSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVerifiedAccessInstanceLoggingConfigurationsMaxResults' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'DescribeVerifiedAccessInstanceLoggingConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstanceIds' => [ 'shape' => 'VerifiedAccessInstanceIdList', 'locationName' => 'VerifiedAccessInstanceId', ], 'MaxResults' => [ 'shape' => 'DescribeVerifiedAccessInstanceLoggingConfigurationsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeVerifiedAccessInstanceLoggingConfigurationsResult' => [ 'type' => 'structure', 'members' => [ 'LoggingConfigurations' => [ 'shape' => 'VerifiedAccessInstanceLoggingConfigurationList', 'locationName' => 'loggingConfigurationSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVerifiedAccessInstancesMaxResults' => [ 'type' => 'integer', 'max' => 200, 'min' => 5, ], 'DescribeVerifiedAccessInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstanceIds' => [ 'shape' => 'VerifiedAccessInstanceIdList', 'locationName' => 'VerifiedAccessInstanceId', ], 'MaxResults' => [ 'shape' => 'DescribeVerifiedAccessInstancesMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeVerifiedAccessInstancesResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstances' => [ 'shape' => 'VerifiedAccessInstanceList', 'locationName' => 'verifiedAccessInstanceSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVerifiedAccessTrustProvidersMaxResults' => [ 'type' => 'integer', 'max' => 200, 'min' => 5, ], 'DescribeVerifiedAccessTrustProvidersRequest' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProviderIds' => [ 'shape' => 'VerifiedAccessTrustProviderIdList', 'locationName' => 'VerifiedAccessTrustProviderId', ], 'MaxResults' => [ 'shape' => 'DescribeVerifiedAccessTrustProvidersMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeVerifiedAccessTrustProvidersResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProviders' => [ 'shape' => 'VerifiedAccessTrustProviderList', 'locationName' => 'verifiedAccessTrustProviderSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVolumeAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'VolumeId', ], 'members' => [ 'Attribute' => [ 'shape' => 'VolumeAttributeName', ], 'VolumeId' => [ 'shape' => 'VolumeId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeVolumeAttributeResult' => [ 'type' => 'structure', 'members' => [ 'AutoEnableIO' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'autoEnableIO', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], ], ], 'DescribeVolumeStatusRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'VolumeIds' => [ 'shape' => 'VolumeIdStringList', 'locationName' => 'VolumeId', ], 'IncludeManagedResources' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeVolumeStatusResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'VolumeStatuses' => [ 'shape' => 'VolumeStatusList', 'locationName' => 'volumeStatusSet', ], ], ], 'DescribeVolumesModificationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VolumeIds' => [ 'shape' => 'VolumeIdStringList', 'locationName' => 'VolumeId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'IncludeManagedResources' => [ 'shape' => 'Boolean', ], ], ], 'DescribeVolumesModificationsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'VolumesModifications' => [ 'shape' => 'VolumeModificationList', 'locationName' => 'volumeModificationSet', ], ], ], 'DescribeVolumesRequest' => [ 'type' => 'structure', 'members' => [ 'VolumeIds' => [ 'shape' => 'VolumeIdStringList', 'locationName' => 'VolumeId', ], 'IncludeManagedResources' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], ], ], 'DescribeVolumesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Volumes' => [ 'shape' => 'VolumeList', 'locationName' => 'volumeSet', ], ], ], 'DescribeVpcAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'VpcId', ], 'members' => [ 'Attribute' => [ 'shape' => 'VpcAttributeName', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeVpcAttributeResult' => [ 'type' => 'structure', 'members' => [ 'EnableDnsHostnames' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enableDnsHostnames', ], 'EnableDnsSupport' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enableDnsSupport', ], 'EnableNetworkAddressUsageMetrics' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enableNetworkAddressUsageMetrics', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'DescribeVpcBlockPublicAccessExclusionsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeVpcBlockPublicAccessExclusionsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'ExclusionIds' => [ 'shape' => 'VpcBlockPublicAccessExclusionIdList', 'locationName' => 'ExclusionId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeVpcBlockPublicAccessExclusionsMaxResults', ], ], ], 'DescribeVpcBlockPublicAccessExclusionsResult' => [ 'type' => 'structure', 'members' => [ 'VpcBlockPublicAccessExclusions' => [ 'shape' => 'VpcBlockPublicAccessExclusionList', 'locationName' => 'vpcBlockPublicAccessExclusionSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcBlockPublicAccessOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeVpcBlockPublicAccessOptionsResult' => [ 'type' => 'structure', 'members' => [ 'VpcBlockPublicAccessOptions' => [ 'shape' => 'VpcBlockPublicAccessOptions', 'locationName' => 'vpcBlockPublicAccessOptions', ], ], ], 'DescribeVpcClassicLinkDnsSupportMaxResults' => [ 'type' => 'integer', 'max' => 255, 'min' => 5, ], 'DescribeVpcClassicLinkDnsSupportNextToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'DescribeVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcIds' => [ 'shape' => 'VpcClassicLinkIdList', ], 'MaxResults' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportMaxResults', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportNextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportNextToken', 'locationName' => 'nextToken', ], 'Vpcs' => [ 'shape' => 'ClassicLinkDnsSupportList', 'locationName' => 'vpcs', ], ], ], 'DescribeVpcClassicLinkRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcIds' => [ 'shape' => 'VpcClassicLinkIdList', 'locationName' => 'VpcId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeVpcClassicLinkResult' => [ 'type' => 'structure', 'members' => [ 'Vpcs' => [ 'shape' => 'VpcClassicLinkList', 'locationName' => 'vpcSet', ], ], ], 'DescribeVpcEncryptionControlsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeVpcEncryptionControlsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'VpcEncryptionControlIds' => [ 'shape' => 'VpcEncryptionControlIdList', 'locationName' => 'VpcEncryptionControlId', ], 'VpcIds' => [ 'shape' => 'VpcIdStringList', 'locationName' => 'VpcId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeVpcEncryptionControlsMaxResults', ], ], ], 'DescribeVpcEncryptionControlsResult' => [ 'type' => 'structure', 'members' => [ 'VpcEncryptionControls' => [ 'shape' => 'VpcEncryptionControlList', 'locationName' => 'vpcEncryptionControlSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcEndpointIds' => [ 'shape' => 'VpcEndpointIdList', 'locationName' => 'VpcEndpointId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'VpcEndpointAssociations' => [ 'shape' => 'VpcEndpointAssociationSet', 'locationName' => 'vpcEndpointAssociationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointConnectionNotificationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ConnectionNotificationId' => [ 'shape' => 'ConnectionNotificationId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointConnectionNotificationsResult' => [ 'type' => 'structure', 'members' => [ 'ConnectionNotificationSet' => [ 'shape' => 'ConnectionNotificationSet', 'locationName' => 'connectionNotificationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointConnectionsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'VpcEndpointConnections' => [ 'shape' => 'VpcEndpointConnectionSet', 'locationName' => 'vpcEndpointConnectionSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointServiceConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceIds' => [ 'shape' => 'VpcEndpointServiceIdList', 'locationName' => 'ServiceId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointServiceConfigurationsResult' => [ 'type' => 'structure', 'members' => [ 'ServiceConfigurations' => [ 'shape' => 'ServiceConfigurationSet', 'locationName' => 'serviceConfigurationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointServicePermissionsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointServicePermissionsResult' => [ 'type' => 'structure', 'members' => [ 'AllowedPrincipals' => [ 'shape' => 'AllowedPrincipalSet', 'locationName' => 'allowedPrincipals', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointServicesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceNames' => [ 'shape' => 'ValueStringList', 'locationName' => 'ServiceName', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'ServiceRegions' => [ 'shape' => 'ValueStringList', 'locationName' => 'ServiceRegion', ], ], ], 'DescribeVpcEndpointServicesResult' => [ 'type' => 'structure', 'members' => [ 'ServiceNames' => [ 'shape' => 'ValueStringList', 'locationName' => 'serviceNameSet', ], 'ServiceDetails' => [ 'shape' => 'ServiceDetailSet', 'locationName' => 'serviceDetailSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcEndpointIds' => [ 'shape' => 'VpcEndpointIdList', 'locationName' => 'VpcEndpointId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointsResult' => [ 'type' => 'structure', 'members' => [ 'VpcEndpoints' => [ 'shape' => 'VpcEndpointSet', 'locationName' => 'vpcEndpointSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcPeeringConnectionsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeVpcPeeringConnectionsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeVpcPeeringConnectionsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcPeeringConnectionIds' => [ 'shape' => 'VpcPeeringConnectionIdList', 'locationName' => 'VpcPeeringConnectionId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeVpcPeeringConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'VpcPeeringConnections' => [ 'shape' => 'VpcPeeringConnectionList', 'locationName' => 'vpcPeeringConnectionSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeVpcsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'VpcIds' => [ 'shape' => 'VpcIdStringList', 'locationName' => 'VpcId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeVpcsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeVpcsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Vpcs' => [ 'shape' => 'VpcList', 'locationName' => 'vpcSet', ], ], ], 'DescribeVpnConcentratorsRequest' => [ 'type' => 'structure', 'members' => [ 'VpnConcentratorIds' => [ 'shape' => 'VpnConcentratorIdStringList', 'locationName' => 'VpnConcentratorId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'GVCDMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeVpnConcentratorsResult' => [ 'type' => 'structure', 'members' => [ 'VpnConcentrators' => [ 'shape' => 'VpnConcentratorList', 'locationName' => 'vpnConcentratorSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVpnConnectionsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'VpnConnectionIds' => [ 'shape' => 'VpnConnectionIdStringList', 'locationName' => 'VpnConnectionId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeVpnConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnections' => [ 'shape' => 'VpnConnectionList', 'locationName' => 'vpnConnectionSet', ], ], ], 'DescribeVpnGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'VpnGatewayIds' => [ 'shape' => 'VpnGatewayIdStringList', 'locationName' => 'VpnGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeVpnGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'VpnGateways' => [ 'shape' => 'VpnGatewayList', 'locationName' => 'vpnGatewaySet', ], ], ], 'DestinationFileFormat' => [ 'type' => 'string', 'enum' => [ 'plain-text', 'parquet', ], ], 'DestinationOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'FileFormat' => [ 'shape' => 'DestinationFileFormat', ], 'HiveCompatiblePartitions' => [ 'shape' => 'Boolean', ], 'PerHourPartition' => [ 'shape' => 'Boolean', ], ], ], 'DestinationOptionsResponse' => [ 'type' => 'structure', 'members' => [ 'FileFormat' => [ 'shape' => 'DestinationFileFormat', 'locationName' => 'fileFormat', ], 'HiveCompatiblePartitions' => [ 'shape' => 'Boolean', 'locationName' => 'hiveCompatiblePartitions', ], 'PerHourPartition' => [ 'shape' => 'Boolean', 'locationName' => 'perHourPartition', ], ], ], 'DetachClassicLinkVpcRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], ], ], 'DetachClassicLinkVpcResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DetachImageWatermarkRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', 'WatermarkKey', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'WatermarkKey' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DetachImageWatermarkResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DetachInternetGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'InternetGatewayId', 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InternetGatewayId' => [ 'shape' => 'InternetGatewayId', 'locationName' => 'internetGatewayId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], ], ], 'DetachNetworkInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'AttachmentId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'AttachmentId' => [ 'shape' => 'NetworkInterfaceAttachmentId', 'locationName' => 'attachmentId', ], 'Force' => [ 'shape' => 'Boolean', 'locationName' => 'force', ], ], ], 'DetachVerifiedAccessTrustProviderRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessInstanceId', 'VerifiedAccessTrustProviderId', ], 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'VerifiedAccessTrustProviderId' => [ 'shape' => 'VerifiedAccessTrustProviderId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DetachVerifiedAccessTrustProviderResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProvider' => [ 'shape' => 'VerifiedAccessTrustProvider', 'locationName' => 'verifiedAccessTrustProvider', ], 'VerifiedAccessInstance' => [ 'shape' => 'VerifiedAccessInstance', 'locationName' => 'verifiedAccessInstance', ], ], ], 'DetachVolumeRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'Device' => [ 'shape' => 'String', ], 'Force' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'InstanceIdForResolver', ], 'VolumeId' => [ 'shape' => 'VolumeIdWithResolver', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DetachVpnGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', 'VpnGatewayId', ], 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], 'VpnGatewayId' => [ 'shape' => 'VpnGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeviceOptions' => [ 'type' => 'structure', 'members' => [ 'TenantId' => [ 'shape' => 'String', 'locationName' => 'tenantId', ], 'PublicSigningKeyUrl' => [ 'shape' => 'String', 'locationName' => 'publicSigningKeyUrl', ], ], ], 'DeviceTrustProviderType' => [ 'type' => 'string', 'enum' => [ 'jamf', 'crowdstrike', 'jumpcloud', ], ], 'DeviceTrustProviderTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceTrustProviderType', 'locationName' => 'item', ], ], 'DeviceType' => [ 'type' => 'string', 'enum' => [ 'ebs', 'instance-store', ], ], 'DhcpConfiguration' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'Values' => [ 'shape' => 'DhcpConfigurationValueList', 'locationName' => 'valueSet', ], ], ], 'DhcpConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DhcpConfiguration', 'locationName' => 'item', ], ], 'DhcpConfigurationValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeValue', 'locationName' => 'item', ], ], 'DhcpOptions' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'DhcpOptionsId' => [ 'shape' => 'String', 'locationName' => 'dhcpOptionsId', ], 'DhcpConfigurations' => [ 'shape' => 'DhcpConfigurationList', 'locationName' => 'dhcpConfigurationSet', ], ], ], 'DhcpOptionsId' => [ 'type' => 'string', ], 'DhcpOptionsIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DhcpOptionsId', 'locationName' => 'DhcpOptionsId', ], ], 'DhcpOptionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DhcpOptions', 'locationName' => 'item', ], ], 'DimensionCondition' => [ 'type' => 'structure', 'members' => [ 'Dimension' => [ 'shape' => 'FilterByDimension', ], 'Comparison' => [ 'shape' => 'Comparison', ], 'Values' => [ 'shape' => 'ConditionValueList', 'locationName' => 'Value', ], ], ], 'DirectoryServiceAuthentication' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'String', 'locationName' => 'directoryId', ], ], ], 'DirectoryServiceAuthenticationRequest' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'String', ], ], ], 'DisableAddressTransferRequest' => [ 'type' => 'structure', 'required' => [ 'AllocationId', ], 'members' => [ 'AllocationId' => [ 'shape' => 'AllocationId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableAddressTransferResult' => [ 'type' => 'structure', 'members' => [ 'AddressTransfer' => [ 'shape' => 'AddressTransfer', 'locationName' => 'addressTransfer', ], ], ], 'DisableAllowedImagesSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableAllowedImagesSettingsResult' => [ 'type' => 'structure', 'members' => [ 'AllowedImagesSettingsState' => [ 'shape' => 'AllowedImagesSettingsDisabledState', 'locationName' => 'allowedImagesSettingsState', ], ], ], 'DisableAwsNetworkPerformanceMetricSubscriptionRequest' => [ 'type' => 'structure', 'members' => [ 'Source' => [ 'shape' => 'String', ], 'Destination' => [ 'shape' => 'String', ], 'Metric' => [ 'shape' => 'MetricType', ], 'Statistic' => [ 'shape' => 'StatisticType', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableAwsNetworkPerformanceMetricSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'Output' => [ 'shape' => 'Boolean', 'locationName' => 'output', ], ], ], 'DisableCapacityManagerRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'DisableCapacityManagerResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerStatus' => [ 'shape' => 'CapacityManagerStatus', 'locationName' => 'capacityManagerStatus', ], 'OrganizationsAccess' => [ 'shape' => 'Boolean', 'locationName' => 'organizationsAccess', ], ], ], 'DisableEbsEncryptionByDefaultRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableEbsEncryptionByDefaultResult' => [ 'type' => 'structure', 'members' => [ 'EbsEncryptionByDefault' => [ 'shape' => 'Boolean', 'locationName' => 'ebsEncryptionByDefault', ], ], ], 'DisableFastLaunchRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'Force' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableFastLaunchResult' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'ResourceType' => [ 'shape' => 'FastLaunchResourceType', 'locationName' => 'resourceType', ], 'SnapshotConfiguration' => [ 'shape' => 'FastLaunchSnapshotConfigurationResponse', 'locationName' => 'snapshotConfiguration', ], 'LaunchTemplate' => [ 'shape' => 'FastLaunchLaunchTemplateSpecificationResponse', 'locationName' => 'launchTemplate', ], 'MaxParallelLaunches' => [ 'shape' => 'Integer', 'locationName' => 'maxParallelLaunches', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'State' => [ 'shape' => 'FastLaunchStateCode', 'locationName' => 'state', ], 'StateTransitionReason' => [ 'shape' => 'String', 'locationName' => 'stateTransitionReason', ], 'StateTransitionTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'stateTransitionTime', ], ], ], 'DisableFastSnapshotRestoreErrorItem' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'FastSnapshotRestoreStateErrors' => [ 'shape' => 'DisableFastSnapshotRestoreStateErrorSet', 'locationName' => 'fastSnapshotRestoreStateErrorSet', ], ], ], 'DisableFastSnapshotRestoreErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DisableFastSnapshotRestoreErrorItem', 'locationName' => 'item', ], ], 'DisableFastSnapshotRestoreStateError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'DisableFastSnapshotRestoreStateErrorItem' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'Error' => [ 'shape' => 'DisableFastSnapshotRestoreStateError', 'locationName' => 'error', ], ], ], 'DisableFastSnapshotRestoreStateErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DisableFastSnapshotRestoreStateErrorItem', 'locationName' => 'item', ], ], 'DisableFastSnapshotRestoreSuccessItem' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'State' => [ 'shape' => 'FastSnapshotRestoreStateCode', 'locationName' => 'state', ], 'StateTransitionReason' => [ 'shape' => 'String', 'locationName' => 'stateTransitionReason', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'OwnerAlias' => [ 'shape' => 'String', 'locationName' => 'ownerAlias', ], 'EnablingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'enablingTime', ], 'OptimizingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'optimizingTime', ], 'EnabledTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'enabledTime', ], 'DisablingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'disablingTime', ], 'DisabledTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'disabledTime', ], ], ], 'DisableFastSnapshotRestoreSuccessSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DisableFastSnapshotRestoreSuccessItem', 'locationName' => 'item', ], ], 'DisableFastSnapshotRestoresRequest' => [ 'type' => 'structure', 'required' => [ 'SourceSnapshotIds', ], 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZoneStringList', 'locationName' => 'AvailabilityZone', ], 'AvailabilityZoneIds' => [ 'shape' => 'AvailabilityZoneIdStringList', 'locationName' => 'AvailabilityZoneId', ], 'SourceSnapshotIds' => [ 'shape' => 'SnapshotIdStringList', 'locationName' => 'SourceSnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableFastSnapshotRestoresResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'DisableFastSnapshotRestoreSuccessSet', 'locationName' => 'successful', ], 'Unsuccessful' => [ 'shape' => 'DisableFastSnapshotRestoreErrorSet', 'locationName' => 'unsuccessful', ], ], ], 'DisableImageBlockPublicAccessRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableImageBlockPublicAccessResult' => [ 'type' => 'structure', 'members' => [ 'ImageBlockPublicAccessState' => [ 'shape' => 'ImageBlockPublicAccessDisabledState', 'locationName' => 'imageBlockPublicAccessState', ], ], ], 'DisableImageDeprecationRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableImageDeprecationResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DisableImageDeregistrationProtectionRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableImageDeregistrationProtectionResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'String', 'locationName' => 'return', ], ], ], 'DisableImageRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableImageResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DisableInstanceSqlHaStandbyDetectionsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdUpdateStringList', 'locationName' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableInstanceSqlHaStandbyDetectionsResult' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'RegisteredInstanceList', 'locationName' => 'instanceSet', ], ], ], 'DisableIpamOrganizationAdminAccountRequest' => [ 'type' => 'structure', 'required' => [ 'DelegatedAdminAccountId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'DelegatedAdminAccountId' => [ 'shape' => 'String', ], ], ], 'DisableIpamOrganizationAdminAccountResult' => [ 'type' => 'structure', 'members' => [ 'Success' => [ 'shape' => 'Boolean', 'locationName' => 'success', ], ], ], 'DisableIpamPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPolicyId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', ], 'OrganizationTargetId' => [ 'shape' => 'String', ], ], ], 'DisableIpamPolicyResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DisableRouteServerPropagationRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', 'RouteTableId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableRouteServerPropagationResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerPropagation' => [ 'shape' => 'RouteServerPropagation', 'locationName' => 'routeServerPropagation', ], ], ], 'DisableSerialConsoleAccessRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableSerialConsoleAccessResult' => [ 'type' => 'structure', 'members' => [ 'SerialConsoleAccessEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'serialConsoleAccessEnabled', ], ], ], 'DisableSnapshotBlockPublicAccessRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableSnapshotBlockPublicAccessResult' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'SnapshotBlockPublicAccessState', 'locationName' => 'state', ], ], ], 'DisableTransitGatewayRouteTablePropagationRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TransitGatewayRouteTableAnnouncementId' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementId', ], ], ], 'DisableTransitGatewayRouteTablePropagationResult' => [ 'type' => 'structure', 'members' => [ 'Propagation' => [ 'shape' => 'TransitGatewayPropagation', 'locationName' => 'propagation', ], ], ], 'DisableVgwRoutePropagationRequest' => [ 'type' => 'structure', 'required' => [ 'GatewayId', 'RouteTableId', ], 'members' => [ 'GatewayId' => [ 'shape' => 'VpnGatewayId', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], ], ], 'DisableVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DisableVpcClassicLinkRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], ], ], 'DisableVpcClassicLinkResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DisassociateAddressRequest' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'ElasticIpAssociationId', ], 'PublicIp' => [ 'shape' => 'EipAllocationPublicIp', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DisassociateCapacityReservationBillingOwnerRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', 'UnusedReservationBillingOwnerId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'UnusedReservationBillingOwnerId' => [ 'shape' => 'AccountID', ], ], ], 'DisassociateCapacityReservationBillingOwnerResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DisassociateClientVpnTargetNetworkRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'AssociationId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'AssociationId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateClientVpnTargetNetworkResult' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'Status' => [ 'shape' => 'AssociationStatus', 'locationName' => 'status', ], ], ], 'DisassociateEnclaveCertificateIamRoleRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', 'RoleArn', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'CertificateId', ], 'RoleArn' => [ 'shape' => 'RoleId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateEnclaveCertificateIamRoleResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DisassociateIamInstanceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'IamInstanceProfileAssociationId', ], ], ], 'DisassociateIamInstanceProfileResult' => [ 'type' => 'structure', 'members' => [ 'IamInstanceProfileAssociation' => [ 'shape' => 'IamInstanceProfileAssociation', 'locationName' => 'iamInstanceProfileAssociation', ], ], ], 'DisassociateInstanceEventWindowRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceEventWindowId', 'AssociationTarget', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceEventWindowId' => [ 'shape' => 'InstanceEventWindowId', ], 'AssociationTarget' => [ 'shape' => 'InstanceEventWindowDisassociationRequest', ], ], ], 'DisassociateInstanceEventWindowResult' => [ 'type' => 'structure', 'members' => [ 'InstanceEventWindow' => [ 'shape' => 'InstanceEventWindow', 'locationName' => 'instanceEventWindow', ], ], ], 'DisassociateIpamByoasnRequest' => [ 'type' => 'structure', 'required' => [ 'Asn', 'Cidr', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Asn' => [ 'shape' => 'String', ], 'Cidr' => [ 'shape' => 'String', ], ], ], 'DisassociateIpamByoasnResult' => [ 'type' => 'structure', 'members' => [ 'AsnAssociation' => [ 'shape' => 'AsnAssociation', 'locationName' => 'asnAssociation', ], ], ], 'DisassociateIpamResourceDiscoveryRequest' => [ 'type' => 'structure', 'required' => [ 'IpamResourceDiscoveryAssociationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamResourceDiscoveryAssociationId' => [ 'shape' => 'IpamResourceDiscoveryAssociationId', ], ], ], 'DisassociateIpamResourceDiscoveryResult' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscoveryAssociation' => [ 'shape' => 'IpamResourceDiscoveryAssociation', 'locationName' => 'ipamResourceDiscoveryAssociation', ], ], ], 'DisassociateNatGatewayAddressRequest' => [ 'type' => 'structure', 'required' => [ 'NatGatewayId', 'AssociationIds', ], 'members' => [ 'NatGatewayId' => [ 'shape' => 'NatGatewayId', ], 'AssociationIds' => [ 'shape' => 'EipAssociationIdList', 'locationName' => 'AssociationId', ], 'MaxDrainDurationSeconds' => [ 'shape' => 'DrainSeconds', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateNatGatewayAddressResult' => [ 'type' => 'structure', 'members' => [ 'NatGatewayId' => [ 'shape' => 'NatGatewayId', 'locationName' => 'natGatewayId', ], 'NatGatewayAddresses' => [ 'shape' => 'NatGatewayAddressList', 'locationName' => 'natGatewayAddressSet', ], ], ], 'DisassociateRouteServerRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', 'VpcId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateRouteServerResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerAssociation' => [ 'shape' => 'RouteServerAssociation', 'locationName' => 'routeServerAssociation', ], ], ], 'DisassociateRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'AssociationId' => [ 'shape' => 'RouteTableAssociationId', 'locationName' => 'associationId', ], ], ], 'DisassociateSecurityGroupVpcRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', 'VpcId', ], 'members' => [ 'GroupId' => [ 'shape' => 'DisassociateSecurityGroupVpcSecurityGroupId', ], 'VpcId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateSecurityGroupVpcResult' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'SecurityGroupVpcAssociationState', 'locationName' => 'state', ], ], ], 'DisassociateSecurityGroupVpcSecurityGroupId' => [ 'type' => 'string', ], 'DisassociateSubnetCidrBlockRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'SubnetCidrAssociationId', 'locationName' => 'associationId', ], ], ], 'DisassociateSubnetCidrBlockResult' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrBlockAssociation' => [ 'shape' => 'SubnetIpv6CidrBlockAssociation', 'locationName' => 'ipv6CidrBlockAssociation', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], ], ], 'DisassociateTransitGatewayMulticastDomainRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMulticastDomainId', 'TransitGatewayAttachmentId', 'SubnetIds', ], 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'SubnetIds' => [ 'shape' => 'TransitGatewaySubnetIdList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateTransitGatewayMulticastDomainResult' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'TransitGatewayMulticastDomainAssociations', 'locationName' => 'associations', ], ], ], 'DisassociateTransitGatewayPolicyTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayPolicyTableId', 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayPolicyTableId' => [ 'shape' => 'TransitGatewayPolicyTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateTransitGatewayPolicyTableResult' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'TransitGatewayPolicyTableAssociation', 'locationName' => 'association', ], ], ], 'DisassociateTransitGatewayRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateTransitGatewayRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'TransitGatewayAssociation', 'locationName' => 'association', ], ], ], 'DisassociateTrunkInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'TrunkInterfaceAssociationId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateTrunkInterfaceResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'DisassociateVpcCidrBlockRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'VpcCidrAssociationId', 'locationName' => 'associationId', ], ], ], 'DisassociateVpcCidrBlockResult' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrBlockAssociation' => [ 'shape' => 'VpcIpv6CidrBlockAssociation', 'locationName' => 'ipv6CidrBlockAssociation', ], 'CidrBlockAssociation' => [ 'shape' => 'VpcCidrBlockAssociation', 'locationName' => 'cidrBlockAssociation', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'DiskCount' => [ 'type' => 'integer', ], 'DiskImage' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', ], 'Image' => [ 'shape' => 'DiskImageDetail', ], 'Volume' => [ 'shape' => 'VolumeDetail', ], ], ], 'DiskImageDescription' => [ 'type' => 'structure', 'members' => [ 'Checksum' => [ 'shape' => 'String', 'locationName' => 'checksum', ], 'Format' => [ 'shape' => 'DiskImageFormat', 'locationName' => 'format', ], 'ImportManifestUrl' => [ 'shape' => 'ImportManifestUrl', 'locationName' => 'importManifestUrl', ], 'Size' => [ 'shape' => 'Long', 'locationName' => 'size', ], ], ], 'DiskImageDetail' => [ 'type' => 'structure', 'required' => [ 'Format', 'Bytes', 'ImportManifestUrl', ], 'members' => [ 'Format' => [ 'shape' => 'DiskImageFormat', 'locationName' => 'format', ], 'Bytes' => [ 'shape' => 'Long', 'locationName' => 'bytes', ], 'ImportManifestUrl' => [ 'shape' => 'ImportManifestUrl', 'locationName' => 'importManifestUrl', ], ], ], 'DiskImageFormat' => [ 'type' => 'string', 'enum' => [ 'VMDK', 'RAW', 'VHD', ], ], 'DiskImageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DiskImage', ], ], 'DiskImageVolumeDescription' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', 'locationName' => 'id', ], 'Size' => [ 'shape' => 'Long', 'locationName' => 'size', ], ], ], 'DiskInfo' => [ 'type' => 'structure', 'members' => [ 'SizeInGB' => [ 'shape' => 'DiskSize', 'locationName' => 'sizeInGB', ], 'Count' => [ 'shape' => 'DiskCount', 'locationName' => 'count', ], 'Type' => [ 'shape' => 'DiskType', 'locationName' => 'type', ], ], ], 'DiskInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DiskInfo', 'locationName' => 'item', ], ], 'DiskSize' => [ 'type' => 'long', ], 'DiskType' => [ 'type' => 'string', 'enum' => [ 'hdd', 'ssd', ], ], 'DnsEntry' => [ 'type' => 'structure', 'members' => [ 'DnsName' => [ 'shape' => 'String', 'locationName' => 'dnsName', ], 'HostedZoneId' => [ 'shape' => 'String', 'locationName' => 'hostedZoneId', ], ], ], 'DnsEntrySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DnsEntry', 'locationName' => 'item', ], ], 'DnsNameState' => [ 'type' => 'string', 'enum' => [ 'pendingVerification', 'verified', 'failed', ], ], 'DnsOptions' => [ 'type' => 'structure', 'members' => [ 'DnsRecordIpType' => [ 'shape' => 'DnsRecordIpType', 'locationName' => 'dnsRecordIpType', ], 'PrivateDnsOnlyForInboundResolverEndpoint' => [ 'shape' => 'Boolean', 'locationName' => 'privateDnsOnlyForInboundResolverEndpoint', ], 'PrivateDnsPreference' => [ 'shape' => 'String', 'locationName' => 'privateDnsPreference', ], 'PrivateDnsSpecifiedDomains' => [ 'shape' => 'PrivateDnsSpecifiedDomainSet', 'locationName' => 'privateDnsSpecifiedDomainSet', ], ], ], 'DnsOptionsSpecification' => [ 'type' => 'structure', 'members' => [ 'DnsRecordIpType' => [ 'shape' => 'DnsRecordIpType', ], 'PrivateDnsOnlyForInboundResolverEndpoint' => [ 'shape' => 'Boolean', ], 'PrivateDnsPreference' => [ 'shape' => 'String', ], 'PrivateDnsSpecifiedDomains' => [ 'shape' => 'PrivateDnsSpecifiedDomainSet', 'locationName' => 'PrivateDnsSpecifiedDomain', ], ], ], 'DnsRecordIpType' => [ 'type' => 'string', 'enum' => [ 'ipv4', 'dualstack', 'ipv6', 'service-defined', ], ], 'DnsServersOptionsModifyStructure' => [ 'type' => 'structure', 'members' => [ 'CustomDnsServers' => [ 'shape' => 'ValueStringList', ], 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'DnsSupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'DomainType' => [ 'type' => 'string', 'enum' => [ 'vpc', 'standard', ], ], 'Double' => [ 'type' => 'double', ], 'DoubleWithConstraints' => [ 'type' => 'double', 'max' => 99.999, 'min' => 0.001, ], 'DrainSeconds' => [ 'type' => 'integer', 'max' => 4000, 'min' => 1, ], 'DynamicRoutingValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'EbsBlockDevice' => [ 'type' => 'structure', 'members' => [ 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Iops' => [ 'shape' => 'Integer', 'locationName' => 'iops', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', 'locationName' => 'snapshotId', ], 'VolumeSize' => [ 'shape' => 'Integer', 'locationName' => 'volumeSize', ], 'VolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'volumeType', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], 'Throughput' => [ 'shape' => 'Integer', 'locationName' => 'throughput', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'VolumeInitializationRate' => [ 'shape' => 'Integer', ], 'AvailabilityZoneId' => [ 'shape' => 'String', ], 'EbsCardIndex' => [ 'shape' => 'Integer', ], ], ], 'EbsBlockDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Iops' => [ 'shape' => 'Integer', 'locationName' => 'iops', ], 'Throughput' => [ 'shape' => 'Integer', 'locationName' => 'throughput', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', 'locationName' => 'kmsKeyId', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', 'locationName' => 'snapshotId', ], 'VolumeSize' => [ 'shape' => 'Integer', 'locationName' => 'volumeSize', ], 'VolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'volumeType', ], ], ], 'EbsCardIndex' => [ 'type' => 'integer', ], 'EbsCardInfo' => [ 'type' => 'structure', 'members' => [ 'EbsCardIndex' => [ 'shape' => 'EbsCardIndex', 'locationName' => 'ebsCardIndex', ], 'BaselineBandwidthInMbps' => [ 'shape' => 'BaselineBandwidthInMbps', 'locationName' => 'baselineBandwidthInMbps', ], 'BaselineThroughputInMBps' => [ 'shape' => 'BaselineThroughputInMBps', 'locationName' => 'baselineThroughputInMBps', ], 'BaselineIops' => [ 'shape' => 'BaselineIops', 'locationName' => 'baselineIops', ], 'MaximumBandwidthInMbps' => [ 'shape' => 'MaximumBandwidthInMbps', 'locationName' => 'maximumBandwidthInMbps', ], 'MaximumThroughputInMBps' => [ 'shape' => 'MaximumThroughputInMBps', 'locationName' => 'maximumThroughputInMBps', ], 'MaximumIops' => [ 'shape' => 'MaximumIops', 'locationName' => 'maximumIops', ], ], ], 'EbsCardInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EbsCardInfo', 'locationName' => 'item', ], ], 'EbsEncryptionSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', ], ], 'EbsInfo' => [ 'type' => 'structure', 'members' => [ 'EbsOptimizedSupport' => [ 'shape' => 'EbsOptimizedSupport', 'locationName' => 'ebsOptimizedSupport', ], 'EncryptionSupport' => [ 'shape' => 'EbsEncryptionSupport', 'locationName' => 'encryptionSupport', ], 'EbsOptimizedInfo' => [ 'shape' => 'EbsOptimizedInfo', 'locationName' => 'ebsOptimizedInfo', ], 'NvmeSupport' => [ 'shape' => 'EbsNvmeSupport', 'locationName' => 'nvmeSupport', ], 'MaximumEbsAttachments' => [ 'shape' => 'MaximumEbsAttachments', 'locationName' => 'maximumEbsAttachments', ], 'AttachmentLimitType' => [ 'shape' => 'AttachmentLimitType', 'locationName' => 'attachmentLimitType', ], 'MaximumEbsCards' => [ 'shape' => 'MaximumEbsCards', 'locationName' => 'maximumEbsCards', ], 'EbsCards' => [ 'shape' => 'EbsCardInfoList', 'locationName' => 'ebsCardSet', ], ], ], 'EbsInstanceBlockDevice' => [ 'type' => 'structure', 'members' => [ 'AttachTime' => [ 'shape' => 'DateTime', 'locationName' => 'attachTime', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Status' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'status', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'AssociatedResource' => [ 'shape' => 'String', 'locationName' => 'associatedResource', ], 'VolumeOwnerId' => [ 'shape' => 'String', 'locationName' => 'volumeOwnerId', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], 'EbsCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'ebsCardIndex', ], ], ], 'EbsInstanceBlockDeviceSpecification' => [ 'type' => 'structure', 'members' => [ 'VolumeId' => [ 'shape' => 'VolumeId', 'locationName' => 'volumeId', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], ], ], 'EbsNvmeSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', 'required', ], ], 'EbsOptimizedInfo' => [ 'type' => 'structure', 'members' => [ 'BaselineBandwidthInMbps' => [ 'shape' => 'BaselineBandwidthInMbps', 'locationName' => 'baselineBandwidthInMbps', ], 'BaselineThroughputInMBps' => [ 'shape' => 'BaselineThroughputInMBps', 'locationName' => 'baselineThroughputInMBps', ], 'BaselineIops' => [ 'shape' => 'BaselineIops', 'locationName' => 'baselineIops', ], 'MaximumBandwidthInMbps' => [ 'shape' => 'MaximumBandwidthInMbps', 'locationName' => 'maximumBandwidthInMbps', ], 'MaximumThroughputInMBps' => [ 'shape' => 'MaximumThroughputInMBps', 'locationName' => 'maximumThroughputInMBps', ], 'MaximumIops' => [ 'shape' => 'MaximumIops', 'locationName' => 'maximumIops', ], ], ], 'EbsOptimizedSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', 'default', ], ], 'EbsStatusDetails' => [ 'type' => 'structure', 'members' => [ 'ImpairedSince' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'impairedSince', ], 'Name' => [ 'shape' => 'StatusName', 'locationName' => 'name', ], 'Status' => [ 'shape' => 'StatusType', 'locationName' => 'status', ], ], ], 'EbsStatusDetailsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EbsStatusDetails', 'locationName' => 'item', ], ], 'EbsStatusSummary' => [ 'type' => 'structure', 'members' => [ 'Details' => [ 'shape' => 'EbsStatusDetailsList', 'locationName' => 'details', ], 'Status' => [ 'shape' => 'SummaryStatus', 'locationName' => 'status', ], ], ], 'Ec2InstanceConnectEndpoint' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'InstanceConnectEndpointId' => [ 'shape' => 'InstanceConnectEndpointId', 'locationName' => 'instanceConnectEndpointId', ], 'InstanceConnectEndpointArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'instanceConnectEndpointArn', ], 'State' => [ 'shape' => 'Ec2InstanceConnectEndpointState', 'locationName' => 'state', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], 'DnsName' => [ 'shape' => 'String', 'locationName' => 'dnsName', ], 'FipsDnsName' => [ 'shape' => 'String', 'locationName' => 'fipsDnsName', ], 'NetworkInterfaceIds' => [ 'shape' => 'NetworkInterfaceIdSet', 'locationName' => 'networkInterfaceIdSet', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'CreatedAt' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createdAt', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'PreserveClientIp' => [ 'shape' => 'Boolean', 'locationName' => 'preserveClientIp', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdSet', 'locationName' => 'securityGroupIdSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', 'locationName' => 'ipAddressType', ], 'PublicDnsNames' => [ 'shape' => 'InstanceConnectEndpointPublicDnsNames', 'locationName' => 'publicDnsNames', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], ], ], 'Ec2InstanceConnectEndpointState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', 'update-in-progress', 'update-complete', 'update-failed', ], ], 'EfaInfo' => [ 'type' => 'structure', 'members' => [ 'MaximumEfaInterfaces' => [ 'shape' => 'MaximumEfaInterfaces', 'locationName' => 'maximumEfaInterfaces', ], ], ], 'EfaSupportedFlag' => [ 'type' => 'boolean', ], 'EgressOnlyInternetGateway' => [ 'type' => 'structure', 'members' => [ 'Attachments' => [ 'shape' => 'InternetGatewayAttachmentList', 'locationName' => 'attachmentSet', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'EgressOnlyInternetGatewayId', 'locationName' => 'egressOnlyInternetGatewayId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'EgressOnlyInternetGatewayId' => [ 'type' => 'string', ], 'EgressOnlyInternetGatewayIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EgressOnlyInternetGatewayId', 'locationName' => 'item', ], ], 'EgressOnlyInternetGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EgressOnlyInternetGateway', 'locationName' => 'item', ], ], 'EipAllocationPublicIp' => [ 'type' => 'string', ], 'EipAssociationIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticIpAssociationId', 'locationName' => 'item', ], ], 'EkPubKeyFormat' => [ 'type' => 'string', 'enum' => [ 'der', 'tpmt', ], ], 'EkPubKeyType' => [ 'type' => 'string', 'enum' => [ 'rsa-2048', 'ecc-sec-p384', ], ], 'EkPubKeyValue' => [ 'type' => 'string', 'sensitive' => true, ], 'ElasticGpuAssociation' => [ 'type' => 'structure', 'members' => [ 'ElasticGpuId' => [ 'shape' => 'ElasticGpuId', 'locationName' => 'elasticGpuId', ], 'ElasticGpuAssociationId' => [ 'shape' => 'String', 'locationName' => 'elasticGpuAssociationId', ], 'ElasticGpuAssociationState' => [ 'shape' => 'String', 'locationName' => 'elasticGpuAssociationState', ], 'ElasticGpuAssociationTime' => [ 'shape' => 'String', 'locationName' => 'elasticGpuAssociationTime', ], ], ], 'ElasticGpuAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpuAssociation', 'locationName' => 'item', ], ], 'ElasticGpuHealth' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ElasticGpuStatus', 'locationName' => 'status', ], ], ], 'ElasticGpuId' => [ 'type' => 'string', ], 'ElasticGpuIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpuId', 'locationName' => 'item', ], ], 'ElasticGpuSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpus', 'locationName' => 'item', ], ], 'ElasticGpuSpecification' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'String', ], ], ], 'ElasticGpuSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpuSpecification', 'locationName' => 'ElasticGpuSpecification', ], ], 'ElasticGpuSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], ], ], 'ElasticGpuSpecificationResponseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpuSpecificationResponse', 'locationName' => 'item', ], ], 'ElasticGpuSpecifications' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpuSpecification', 'locationName' => 'item', ], ], 'ElasticGpuState' => [ 'type' => 'string', 'enum' => [ 'ATTACHED', ], ], 'ElasticGpuStatus' => [ 'type' => 'string', 'enum' => [ 'OK', 'IMPAIRED', ], ], 'ElasticGpus' => [ 'type' => 'structure', 'members' => [ 'ElasticGpuId' => [ 'shape' => 'String', 'locationName' => 'elasticGpuId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'ElasticGpuType' => [ 'shape' => 'String', 'locationName' => 'elasticGpuType', ], 'ElasticGpuHealth' => [ 'shape' => 'ElasticGpuHealth', 'locationName' => 'elasticGpuHealth', ], 'ElasticGpuState' => [ 'shape' => 'ElasticGpuState', 'locationName' => 'elasticGpuState', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ElasticInferenceAccelerator' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Count' => [ 'shape' => 'ElasticInferenceAcceleratorCount', ], ], ], 'ElasticInferenceAcceleratorAssociation' => [ 'type' => 'structure', 'members' => [ 'ElasticInferenceAcceleratorArn' => [ 'shape' => 'String', 'locationName' => 'elasticInferenceAcceleratorArn', ], 'ElasticInferenceAcceleratorAssociationId' => [ 'shape' => 'String', 'locationName' => 'elasticInferenceAcceleratorAssociationId', ], 'ElasticInferenceAcceleratorAssociationState' => [ 'shape' => 'String', 'locationName' => 'elasticInferenceAcceleratorAssociationState', ], 'ElasticInferenceAcceleratorAssociationTime' => [ 'shape' => 'DateTime', 'locationName' => 'elasticInferenceAcceleratorAssociationTime', ], ], ], 'ElasticInferenceAcceleratorAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticInferenceAcceleratorAssociation', 'locationName' => 'item', ], ], 'ElasticInferenceAcceleratorCount' => [ 'type' => 'integer', 'min' => 1, ], 'ElasticInferenceAccelerators' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticInferenceAccelerator', 'locationName' => 'item', ], ], 'ElasticIpAssociationId' => [ 'type' => 'string', ], 'EnaSrdSpecification' => [ 'type' => 'structure', 'members' => [ 'EnaSrdEnabled' => [ 'shape' => 'Boolean', ], 'EnaSrdUdpSpecification' => [ 'shape' => 'EnaSrdUdpSpecification', ], ], ], 'EnaSrdSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'EnaSrdEnabled' => [ 'shape' => 'Boolean', ], 'EnaSrdUdpSpecification' => [ 'shape' => 'EnaSrdUdpSpecificationRequest', ], ], ], 'EnaSrdSupported' => [ 'type' => 'boolean', ], 'EnaSrdUdpSpecification' => [ 'type' => 'structure', 'members' => [ 'EnaSrdUdpEnabled' => [ 'shape' => 'Boolean', ], ], ], 'EnaSrdUdpSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'EnaSrdUdpEnabled' => [ 'shape' => 'Boolean', ], ], ], 'EnaSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', 'required', ], ], 'EnableAddressTransferRequest' => [ 'type' => 'structure', 'required' => [ 'AllocationId', 'TransferAccountId', ], 'members' => [ 'AllocationId' => [ 'shape' => 'AllocationId', ], 'TransferAccountId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableAddressTransferResult' => [ 'type' => 'structure', 'members' => [ 'AddressTransfer' => [ 'shape' => 'AddressTransfer', 'locationName' => 'addressTransfer', ], ], ], 'EnableAllowedImagesSettingsRequest' => [ 'type' => 'structure', 'required' => [ 'AllowedImagesSettingsState', ], 'members' => [ 'AllowedImagesSettingsState' => [ 'shape' => 'AllowedImagesSettingsEnabledState', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableAllowedImagesSettingsResult' => [ 'type' => 'structure', 'members' => [ 'AllowedImagesSettingsState' => [ 'shape' => 'AllowedImagesSettingsEnabledState', 'locationName' => 'allowedImagesSettingsState', ], ], ], 'EnableAwsNetworkPerformanceMetricSubscriptionRequest' => [ 'type' => 'structure', 'members' => [ 'Source' => [ 'shape' => 'String', ], 'Destination' => [ 'shape' => 'String', ], 'Metric' => [ 'shape' => 'MetricType', ], 'Statistic' => [ 'shape' => 'StatisticType', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableAwsNetworkPerformanceMetricSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'Output' => [ 'shape' => 'Boolean', 'locationName' => 'output', ], ], ], 'EnableCapacityManagerRequest' => [ 'type' => 'structure', 'members' => [ 'OrganizationsAccess' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'EnableCapacityManagerResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerStatus' => [ 'shape' => 'CapacityManagerStatus', 'locationName' => 'capacityManagerStatus', ], 'OrganizationsAccess' => [ 'shape' => 'Boolean', 'locationName' => 'organizationsAccess', ], ], ], 'EnableEbsEncryptionByDefaultRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableEbsEncryptionByDefaultResult' => [ 'type' => 'structure', 'members' => [ 'EbsEncryptionByDefault' => [ 'shape' => 'Boolean', 'locationName' => 'ebsEncryptionByDefault', ], ], ], 'EnableFastLaunchRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'ResourceType' => [ 'shape' => 'String', ], 'SnapshotConfiguration' => [ 'shape' => 'FastLaunchSnapshotConfigurationRequest', ], 'LaunchTemplate' => [ 'shape' => 'FastLaunchLaunchTemplateSpecificationRequest', ], 'MaxParallelLaunches' => [ 'shape' => 'Integer', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableFastLaunchResult' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'ResourceType' => [ 'shape' => 'FastLaunchResourceType', 'locationName' => 'resourceType', ], 'SnapshotConfiguration' => [ 'shape' => 'FastLaunchSnapshotConfigurationResponse', 'locationName' => 'snapshotConfiguration', ], 'LaunchTemplate' => [ 'shape' => 'FastLaunchLaunchTemplateSpecificationResponse', 'locationName' => 'launchTemplate', ], 'MaxParallelLaunches' => [ 'shape' => 'Integer', 'locationName' => 'maxParallelLaunches', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'State' => [ 'shape' => 'FastLaunchStateCode', 'locationName' => 'state', ], 'StateTransitionReason' => [ 'shape' => 'String', 'locationName' => 'stateTransitionReason', ], 'StateTransitionTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'stateTransitionTime', ], ], ], 'EnableFastSnapshotRestoreErrorItem' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'FastSnapshotRestoreStateErrors' => [ 'shape' => 'EnableFastSnapshotRestoreStateErrorSet', 'locationName' => 'fastSnapshotRestoreStateErrorSet', ], ], ], 'EnableFastSnapshotRestoreErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnableFastSnapshotRestoreErrorItem', 'locationName' => 'item', ], ], 'EnableFastSnapshotRestoreStateError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'EnableFastSnapshotRestoreStateErrorItem' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'Error' => [ 'shape' => 'EnableFastSnapshotRestoreStateError', 'locationName' => 'error', ], ], ], 'EnableFastSnapshotRestoreStateErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnableFastSnapshotRestoreStateErrorItem', 'locationName' => 'item', ], ], 'EnableFastSnapshotRestoreSuccessItem' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'State' => [ 'shape' => 'FastSnapshotRestoreStateCode', 'locationName' => 'state', ], 'StateTransitionReason' => [ 'shape' => 'String', 'locationName' => 'stateTransitionReason', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'OwnerAlias' => [ 'shape' => 'String', 'locationName' => 'ownerAlias', ], 'EnablingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'enablingTime', ], 'OptimizingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'optimizingTime', ], 'EnabledTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'enabledTime', ], 'DisablingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'disablingTime', ], 'DisabledTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'disabledTime', ], ], ], 'EnableFastSnapshotRestoreSuccessSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnableFastSnapshotRestoreSuccessItem', 'locationName' => 'item', ], ], 'EnableFastSnapshotRestoresRequest' => [ 'type' => 'structure', 'required' => [ 'SourceSnapshotIds', ], 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZoneStringList', 'locationName' => 'AvailabilityZone', ], 'AvailabilityZoneIds' => [ 'shape' => 'AvailabilityZoneIdStringList', 'locationName' => 'AvailabilityZoneId', ], 'SourceSnapshotIds' => [ 'shape' => 'SnapshotIdStringList', 'locationName' => 'SourceSnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableFastSnapshotRestoresResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'EnableFastSnapshotRestoreSuccessSet', 'locationName' => 'successful', ], 'Unsuccessful' => [ 'shape' => 'EnableFastSnapshotRestoreErrorSet', 'locationName' => 'unsuccessful', ], ], ], 'EnableImageBlockPublicAccessRequest' => [ 'type' => 'structure', 'required' => [ 'ImageBlockPublicAccessState', ], 'members' => [ 'ImageBlockPublicAccessState' => [ 'shape' => 'ImageBlockPublicAccessEnabledState', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableImageBlockPublicAccessResult' => [ 'type' => 'structure', 'members' => [ 'ImageBlockPublicAccessState' => [ 'shape' => 'ImageBlockPublicAccessEnabledState', 'locationName' => 'imageBlockPublicAccessState', ], ], ], 'EnableImageDeprecationRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', 'DeprecateAt', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DeprecateAt' => [ 'shape' => 'MillisecondDateTime', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableImageDeprecationResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'EnableImageDeregistrationProtectionRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'WithCooldown' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableImageDeregistrationProtectionResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'String', 'locationName' => 'return', ], ], ], 'EnableImageRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableImageResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'EnableInstanceSqlHaStandbyDetectionsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdUpdateStringList', 'locationName' => 'InstanceId', ], 'SqlServerCredentials' => [ 'shape' => 'SecretArn', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableInstanceSqlHaStandbyDetectionsResult' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'RegisteredInstanceList', 'locationName' => 'instanceSet', ], ], ], 'EnableIpamOrganizationAdminAccountRequest' => [ 'type' => 'structure', 'required' => [ 'DelegatedAdminAccountId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'DelegatedAdminAccountId' => [ 'shape' => 'String', ], ], ], 'EnableIpamOrganizationAdminAccountResult' => [ 'type' => 'structure', 'members' => [ 'Success' => [ 'shape' => 'Boolean', 'locationName' => 'success', ], ], ], 'EnableIpamPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPolicyId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', ], 'OrganizationTargetId' => [ 'shape' => 'String', ], ], ], 'EnableIpamPolicyResult' => [ 'type' => 'structure', 'members' => [ 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', 'locationName' => 'ipamPolicyId', ], ], ], 'EnableReachabilityAnalyzerOrganizationSharingRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableReachabilityAnalyzerOrganizationSharingResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'returnValue', ], ], ], 'EnableRouteServerPropagationRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', 'RouteTableId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableRouteServerPropagationResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerPropagation' => [ 'shape' => 'RouteServerPropagation', 'locationName' => 'routeServerPropagation', ], ], ], 'EnableSerialConsoleAccessRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableSerialConsoleAccessResult' => [ 'type' => 'structure', 'members' => [ 'SerialConsoleAccessEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'serialConsoleAccessEnabled', ], ], ], 'EnableSnapshotBlockPublicAccessRequest' => [ 'type' => 'structure', 'required' => [ 'State', ], 'members' => [ 'State' => [ 'shape' => 'SnapshotBlockPublicAccessState', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableSnapshotBlockPublicAccessResult' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'SnapshotBlockPublicAccessState', 'locationName' => 'state', ], ], ], 'EnableTransitGatewayRouteTablePropagationRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TransitGatewayRouteTableAnnouncementId' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementId', ], ], ], 'EnableTransitGatewayRouteTablePropagationResult' => [ 'type' => 'structure', 'members' => [ 'Propagation' => [ 'shape' => 'TransitGatewayPropagation', 'locationName' => 'propagation', ], ], ], 'EnableVgwRoutePropagationRequest' => [ 'type' => 'structure', 'required' => [ 'GatewayId', 'RouteTableId', ], 'members' => [ 'GatewayId' => [ 'shape' => 'VpnGatewayId', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableVolumeIORequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VolumeId' => [ 'shape' => 'VolumeId', 'locationName' => 'volumeId', ], ], ], 'EnableVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], ], ], 'EnableVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'EnableVpcClassicLinkRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], ], ], 'EnableVpcClassicLinkResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'EnclaveOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], ], ], 'EnclaveOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'EncryptionInTransitSupported' => [ 'type' => 'boolean', ], 'EncryptionStateValue' => [ 'type' => 'string', 'enum' => [ 'enabling', 'enabled', 'disabling', 'disabled', ], ], 'EncryptionSupport' => [ 'type' => 'structure', 'members' => [ 'EncryptionState' => [ 'shape' => 'EncryptionStateValue', 'locationName' => 'encryptionState', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], ], ], 'EncryptionSupportOptionValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'EndDateType' => [ 'type' => 'string', 'enum' => [ 'unlimited', 'limited', ], ], 'EndpointIpAddressType' => [ 'type' => 'string', 'enum' => [ 'ipv4', 'ipv6', 'dual-stack', ], ], 'EndpointSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnEndpoint', 'locationName' => 'item', ], ], 'EphemeralNvmeSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', 'required', ], ], 'ErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValidationError', 'locationName' => 'item', ], ], 'EventCode' => [ 'type' => 'string', 'enum' => [ 'instance-reboot', 'system-reboot', 'system-maintenance', 'instance-retirement', 'instance-stop', ], ], 'EventInformation' => [ 'type' => 'structure', 'members' => [ 'EventDescription' => [ 'shape' => 'String', 'locationName' => 'eventDescription', ], 'EventSubType' => [ 'shape' => 'String', 'locationName' => 'eventSubType', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], ], ], 'EventType' => [ 'type' => 'string', 'enum' => [ 'instanceChange', 'fleetRequestChange', 'error', 'information', ], ], 'ExcessCapacityTerminationPolicy' => [ 'type' => 'string', 'enum' => [ 'noTermination', 'default', ], ], 'ExcludedInstanceType' => [ 'type' => 'string', 'max' => 30, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\.\\*\\-]+', ], 'ExcludedInstanceTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExcludedInstanceType', 'locationName' => 'item', ], 'max' => 400, 'min' => 0, ], 'ExecutableByStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ExecutableBy', ], ], 'Explanation' => [ 'type' => 'structure', 'members' => [ 'Acl' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'acl', ], 'AclRule' => [ 'shape' => 'AnalysisAclRule', 'locationName' => 'aclRule', ], 'Address' => [ 'shape' => 'IpAddress', 'locationName' => 'address', ], 'Addresses' => [ 'shape' => 'IpAddressList', 'locationName' => 'addressSet', ], 'AttachedTo' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'attachedTo', ], 'AvailabilityZones' => [ 'shape' => 'ValueStringList', 'locationName' => 'availabilityZoneSet', ], 'AvailabilityZoneIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'availabilityZoneIdSet', ], 'Cidrs' => [ 'shape' => 'ValueStringList', 'locationName' => 'cidrSet', ], 'Component' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'component', ], 'CustomerGateway' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'customerGateway', ], 'Destination' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'destination', ], 'DestinationVpc' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'destinationVpc', ], 'Direction' => [ 'shape' => 'String', 'locationName' => 'direction', ], 'ExplanationCode' => [ 'shape' => 'String', 'locationName' => 'explanationCode', ], 'IngressRouteTable' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'ingressRouteTable', ], 'InternetGateway' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'internetGateway', ], 'LoadBalancerArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'loadBalancerArn', ], 'ClassicLoadBalancerListener' => [ 'shape' => 'AnalysisLoadBalancerListener', 'locationName' => 'classicLoadBalancerListener', ], 'LoadBalancerListenerPort' => [ 'shape' => 'Port', 'locationName' => 'loadBalancerListenerPort', ], 'LoadBalancerTarget' => [ 'shape' => 'AnalysisLoadBalancerTarget', 'locationName' => 'loadBalancerTarget', ], 'LoadBalancerTargetGroup' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'loadBalancerTargetGroup', ], 'LoadBalancerTargetGroups' => [ 'shape' => 'AnalysisComponentList', 'locationName' => 'loadBalancerTargetGroupSet', ], 'LoadBalancerTargetPort' => [ 'shape' => 'Port', 'locationName' => 'loadBalancerTargetPort', ], 'ElasticLoadBalancerListener' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'elasticLoadBalancerListener', ], 'MissingComponent' => [ 'shape' => 'String', 'locationName' => 'missingComponent', ], 'NatGateway' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'natGateway', ], 'NetworkInterface' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'networkInterface', ], 'PacketField' => [ 'shape' => 'String', 'locationName' => 'packetField', ], 'VpcPeeringConnection' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'vpcPeeringConnection', ], 'Port' => [ 'shape' => 'Port', 'locationName' => 'port', ], 'PortRanges' => [ 'shape' => 'PortRangeList', 'locationName' => 'portRangeSet', ], 'PrefixList' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'prefixList', ], 'Protocols' => [ 'shape' => 'StringList', 'locationName' => 'protocolSet', ], 'RouteTableRoute' => [ 'shape' => 'AnalysisRouteTableRoute', 'locationName' => 'routeTableRoute', ], 'RouteTable' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'routeTable', ], 'SecurityGroup' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'securityGroup', ], 'SecurityGroupRule' => [ 'shape' => 'AnalysisSecurityGroupRule', 'locationName' => 'securityGroupRule', ], 'SecurityGroups' => [ 'shape' => 'AnalysisComponentList', 'locationName' => 'securityGroupSet', ], 'SourceVpc' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'sourceVpc', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'Subnet' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'subnet', ], 'SubnetRouteTable' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'subnetRouteTable', ], 'Vpc' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'vpc', ], 'VpcEndpoint' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'vpcEndpoint', ], 'VpnConnection' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'vpnConnection', ], 'VpnGateway' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'vpnGateway', ], 'TransitGateway' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'transitGateway', ], 'TransitGatewayRouteTable' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'transitGatewayRouteTable', ], 'TransitGatewayRouteTableRoute' => [ 'shape' => 'TransitGatewayRouteTableRoute', 'locationName' => 'transitGatewayRouteTableRoute', ], 'TransitGatewayAttachment' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'transitGatewayAttachment', ], 'ComponentAccount' => [ 'shape' => 'ComponentAccount', 'locationName' => 'componentAccount', ], 'ComponentRegion' => [ 'shape' => 'ComponentRegion', 'locationName' => 'componentRegion', ], 'FirewallStatelessRule' => [ 'shape' => 'FirewallStatelessRule', 'locationName' => 'firewallStatelessRule', ], 'FirewallStatefulRule' => [ 'shape' => 'FirewallStatefulRule', 'locationName' => 'firewallStatefulRule', ], ], ], 'ExplanationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Explanation', 'locationName' => 'item', ], ], 'ExportClientVpnClientCertificateRevocationListRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ExportClientVpnClientCertificateRevocationListResult' => [ 'type' => 'structure', 'members' => [ 'CertificateRevocationList' => [ 'shape' => 'String', 'locationName' => 'certificateRevocationList', ], 'Status' => [ 'shape' => 'ClientCertificateRevocationListStatus', 'locationName' => 'status', ], ], ], 'ExportClientVpnClientConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ExportClientVpnClientConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'ClientConfiguration' => [ 'shape' => 'String', 'locationName' => 'clientConfiguration', ], ], ], 'ExportEnvironment' => [ 'type' => 'string', 'enum' => [ 'citrix', 'vmware', 'microsoft', ], ], 'ExportImageRequest' => [ 'type' => 'structure', 'required' => [ 'DiskImageFormat', 'ImageId', 'S3ExportLocation', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'Description' => [ 'shape' => 'String', ], 'DiskImageFormat' => [ 'shape' => 'DiskImageFormat', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'S3ExportLocation' => [ 'shape' => 'ExportTaskS3LocationRequest', ], 'RoleName' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'ExportImageResult' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DiskImageFormat' => [ 'shape' => 'DiskImageFormat', 'locationName' => 'diskImageFormat', ], 'ExportImageTaskId' => [ 'shape' => 'String', 'locationName' => 'exportImageTaskId', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'RoleName' => [ 'shape' => 'String', 'locationName' => 'roleName', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'S3ExportLocation' => [ 'shape' => 'ExportTaskS3Location', 'locationName' => 's3ExportLocation', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ExportImageTask' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ExportImageTaskId' => [ 'shape' => 'String', 'locationName' => 'exportImageTaskId', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'S3ExportLocation' => [ 'shape' => 'ExportTaskS3Location', 'locationName' => 's3ExportLocation', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ExportImageTaskId' => [ 'type' => 'string', ], 'ExportImageTaskIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExportImageTaskId', 'locationName' => 'ExportImageTaskId', ], ], 'ExportImageTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExportImageTask', 'locationName' => 'item', ], ], 'ExportTask' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ExportTaskId' => [ 'shape' => 'String', 'locationName' => 'exportTaskId', ], 'ExportToS3Task' => [ 'shape' => 'ExportToS3Task', 'locationName' => 'exportToS3', ], 'InstanceExportDetails' => [ 'shape' => 'InstanceExportDetails', 'locationName' => 'instanceExport', ], 'State' => [ 'shape' => 'ExportTaskState', 'locationName' => 'state', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ExportTaskId' => [ 'type' => 'string', ], 'ExportTaskIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExportTaskId', 'locationName' => 'ExportTaskId', ], ], 'ExportTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExportTask', 'locationName' => 'item', ], ], 'ExportTaskS3Location' => [ 'type' => 'structure', 'members' => [ 'S3Bucket' => [ 'shape' => 'String', 'locationName' => 's3Bucket', ], 'S3Prefix' => [ 'shape' => 'String', 'locationName' => 's3Prefix', ], ], ], 'ExportTaskS3LocationRequest' => [ 'type' => 'structure', 'required' => [ 'S3Bucket', ], 'members' => [ 'S3Bucket' => [ 'shape' => 'String', ], 'S3Prefix' => [ 'shape' => 'String', ], ], ], 'ExportTaskState' => [ 'type' => 'string', 'enum' => [ 'active', 'cancelling', 'cancelled', 'completed', ], ], 'ExportToS3Task' => [ 'type' => 'structure', 'members' => [ 'ContainerFormat' => [ 'shape' => 'ContainerFormat', 'locationName' => 'containerFormat', ], 'DiskImageFormat' => [ 'shape' => 'DiskImageFormat', 'locationName' => 'diskImageFormat', ], 'S3Bucket' => [ 'shape' => 'String', 'locationName' => 's3Bucket', ], 'S3Key' => [ 'shape' => 'String', 'locationName' => 's3Key', ], ], ], 'ExportToS3TaskSpecification' => [ 'type' => 'structure', 'members' => [ 'DiskImageFormat' => [ 'shape' => 'DiskImageFormat', 'locationName' => 'diskImageFormat', ], 'ContainerFormat' => [ 'shape' => 'ContainerFormat', 'locationName' => 'containerFormat', ], 'S3Bucket' => [ 'shape' => 'String', 'locationName' => 's3Bucket', ], 'S3Prefix' => [ 'shape' => 'String', 'locationName' => 's3Prefix', ], ], ], 'ExportTransitGatewayRoutesRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'S3Bucket', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'S3Bucket' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ExportTransitGatewayRoutesResult' => [ 'type' => 'structure', 'members' => [ 'S3Location' => [ 'shape' => 'String', 'locationName' => 's3Location', ], ], ], 'ExportVerifiedAccessInstanceClientConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessInstanceId', ], 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ExportVerifiedAccessInstanceClientConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'Version' => [ 'shape' => 'String', 'locationName' => 'version', ], 'VerifiedAccessInstanceId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessInstanceId', ], 'Region' => [ 'shape' => 'String', 'locationName' => 'region', ], 'DeviceTrustProviders' => [ 'shape' => 'DeviceTrustProviderTypeList', 'locationName' => 'deviceTrustProviderSet', ], 'UserTrustProvider' => [ 'shape' => 'VerifiedAccessInstanceUserTrustProviderClientConfiguration', 'locationName' => 'userTrustProvider', ], 'OpenVpnConfigurations' => [ 'shape' => 'VerifiedAccessInstanceOpenVpnClientConfigurationList', 'locationName' => 'openVpnConfigurationSet', ], ], ], 'ExportVmTaskId' => [ 'type' => 'string', ], 'ExternalAuthorityConfiguration' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'IpamScopeExternalAuthorityType', ], 'ExternalResourceIdentifier' => [ 'shape' => 'String', ], ], ], 'FailedCapacityReservationFleetCancellationResult' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationFleetId' => [ 'shape' => 'CapacityReservationFleetId', 'locationName' => 'capacityReservationFleetId', ], 'CancelCapacityReservationFleetError' => [ 'shape' => 'CancelCapacityReservationFleetError', 'locationName' => 'cancelCapacityReservationFleetError', ], ], ], 'FailedCapacityReservationFleetCancellationResultSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'FailedCapacityReservationFleetCancellationResult', 'locationName' => 'item', ], ], 'FailedQueuedPurchaseDeletion' => [ 'type' => 'structure', 'members' => [ 'Error' => [ 'shape' => 'DeleteQueuedReservedInstancesError', 'locationName' => 'error', ], 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], ], ], 'FailedQueuedPurchaseDeletionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'FailedQueuedPurchaseDeletion', 'locationName' => 'item', ], ], 'FastLaunchImageIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageId', 'locationName' => 'ImageId', ], ], 'FastLaunchLaunchTemplateSpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'Version', ], 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'String', ], 'Version' => [ 'shape' => 'String', ], ], ], 'FastLaunchLaunchTemplateSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'String', 'locationName' => 'launchTemplateName', ], 'Version' => [ 'shape' => 'String', 'locationName' => 'version', ], ], ], 'FastLaunchResourceType' => [ 'type' => 'string', 'enum' => [ 'snapshot', ], ], 'FastLaunchSnapshotConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'TargetResourceCount' => [ 'shape' => 'Integer', ], ], ], 'FastLaunchSnapshotConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'TargetResourceCount' => [ 'shape' => 'Integer', 'locationName' => 'targetResourceCount', ], ], ], 'FastLaunchStateCode' => [ 'type' => 'string', 'enum' => [ 'enabling', 'enabling-failed', 'enabled', 'enabled-failed', 'disabling', 'disabling-failed', ], ], 'FastSnapshotRestoreStateCode' => [ 'type' => 'string', 'enum' => [ 'enabling', 'optimizing', 'enabled', 'disabling', 'disabled', ], ], 'FederatedAuthentication' => [ 'type' => 'structure', 'members' => [ 'SamlProviderArn' => [ 'shape' => 'String', 'locationName' => 'samlProviderArn', ], 'SelfServiceSamlProviderArn' => [ 'shape' => 'String', 'locationName' => 'selfServiceSamlProviderArn', ], ], ], 'FederatedAuthenticationRequest' => [ 'type' => 'structure', 'members' => [ 'SAMLProviderArn' => [ 'shape' => 'String', ], 'SelfServiceSAMLProviderArn' => [ 'shape' => 'String', ], ], ], 'Filter' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Values' => [ 'shape' => 'ValueStringList', 'locationName' => 'Value', ], ], ], 'FilterByDimension' => [ 'type' => 'string', 'enum' => [ 'resource-region', 'availability-zone-id', 'account-id', 'account-name', 'instance-family', 'instance-type', 'instance-platform', 'reservation-arn', 'reservation-id', 'reservation-type', 'reservation-create-timestamp', 'reservation-start-timestamp', 'reservation-end-timestamp', 'reservation-end-date-type', 'tenancy', 'reservation-state', 'reservation-instance-match-criteria', 'reservation-unused-financial-owner', ], 'max' => 300, 'min' => 0, ], 'FilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Filter', 'locationName' => 'Filter', ], ], 'FilterPortRange' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'Port', 'locationName' => 'fromPort', ], 'ToPort' => [ 'shape' => 'Port', 'locationName' => 'toPort', ], ], ], 'FindingsFound' => [ 'type' => 'string', 'enum' => [ 'true', 'false', 'unknown', ], ], 'FirewallStatefulRule' => [ 'type' => 'structure', 'members' => [ 'RuleGroupArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ruleGroupArn', ], 'Sources' => [ 'shape' => 'ValueStringList', 'locationName' => 'sourceSet', ], 'Destinations' => [ 'shape' => 'ValueStringList', 'locationName' => 'destinationSet', ], 'SourcePorts' => [ 'shape' => 'PortRangeList', 'locationName' => 'sourcePortSet', ], 'DestinationPorts' => [ 'shape' => 'PortRangeList', 'locationName' => 'destinationPortSet', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'RuleAction' => [ 'shape' => 'String', 'locationName' => 'ruleAction', ], 'Direction' => [ 'shape' => 'String', 'locationName' => 'direction', ], ], ], 'FirewallStatelessRule' => [ 'type' => 'structure', 'members' => [ 'RuleGroupArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ruleGroupArn', ], 'Sources' => [ 'shape' => 'ValueStringList', 'locationName' => 'sourceSet', ], 'Destinations' => [ 'shape' => 'ValueStringList', 'locationName' => 'destinationSet', ], 'SourcePorts' => [ 'shape' => 'PortRangeList', 'locationName' => 'sourcePortSet', ], 'DestinationPorts' => [ 'shape' => 'PortRangeList', 'locationName' => 'destinationPortSet', ], 'Protocols' => [ 'shape' => 'ProtocolIntList', 'locationName' => 'protocolSet', ], 'RuleAction' => [ 'shape' => 'String', 'locationName' => 'ruleAction', ], 'Priority' => [ 'shape' => 'Priority', 'locationName' => 'priority', ], ], ], 'FleetActivityStatus' => [ 'type' => 'string', 'enum' => [ 'error', 'pending_fulfillment', 'pending_termination', 'fulfilled', ], ], 'FleetBlockDeviceMappingRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', ], 'VirtualName' => [ 'shape' => 'String', ], 'Ebs' => [ 'shape' => 'FleetEbsBlockDeviceRequest', ], 'NoDevice' => [ 'shape' => 'String', ], ], ], 'FleetBlockDeviceMappingRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetBlockDeviceMappingRequest', 'locationName' => 'BlockDeviceMapping', ], ], 'FleetCapacityReservation' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', 'locationName' => 'capacityReservationId', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'InstancePlatform' => [ 'shape' => 'CapacityReservationInstancePlatform', 'locationName' => 'instancePlatform', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'TotalInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'totalInstanceCount', ], 'FulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'fulfilledCapacity', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'CreateDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createDate', ], 'Weight' => [ 'shape' => 'DoubleWithConstraints', 'locationName' => 'weight', ], 'Priority' => [ 'shape' => 'IntegerWithConstraints', 'locationName' => 'priority', ], ], ], 'FleetCapacityReservationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetCapacityReservation', 'locationName' => 'item', ], ], 'FleetCapacityReservationTenancy' => [ 'type' => 'string', 'enum' => [ 'default', ], ], 'FleetCapacityReservationUsageStrategy' => [ 'type' => 'string', 'enum' => [ 'use-capacity-reservations-first', ], ], 'FleetData' => [ 'type' => 'structure', 'members' => [ 'ActivityStatus' => [ 'shape' => 'FleetActivityStatus', 'locationName' => 'activityStatus', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'FleetId' => [ 'shape' => 'FleetId', 'locationName' => 'fleetId', ], 'FleetState' => [ 'shape' => 'FleetStateCode', 'locationName' => 'fleetState', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'FleetExcessCapacityTerminationPolicy', 'locationName' => 'excessCapacityTerminationPolicy', ], 'FulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'fulfilledCapacity', ], 'FulfilledOnDemandCapacity' => [ 'shape' => 'Double', 'locationName' => 'fulfilledOnDemandCapacity', ], 'LaunchTemplateConfigs' => [ 'shape' => 'FleetLaunchTemplateConfigList', 'locationName' => 'launchTemplateConfigs', ], 'TargetCapacitySpecification' => [ 'shape' => 'TargetCapacitySpecification', 'locationName' => 'targetCapacitySpecification', ], 'TerminateInstancesWithExpiration' => [ 'shape' => 'Boolean', 'locationName' => 'terminateInstancesWithExpiration', ], 'Type' => [ 'shape' => 'FleetType', 'locationName' => 'type', ], 'ValidFrom' => [ 'shape' => 'DateTime', 'locationName' => 'validFrom', ], 'ValidUntil' => [ 'shape' => 'DateTime', 'locationName' => 'validUntil', ], 'ReplaceUnhealthyInstances' => [ 'shape' => 'Boolean', 'locationName' => 'replaceUnhealthyInstances', ], 'SpotOptions' => [ 'shape' => 'SpotOptions', 'locationName' => 'spotOptions', ], 'OnDemandOptions' => [ 'shape' => 'OnDemandOptions', 'locationName' => 'onDemandOptions', ], 'ReservedCapacityOptions' => [ 'shape' => 'ReservedCapacityOptions', 'locationName' => 'reservedCapacityOptions', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'Errors' => [ 'shape' => 'DescribeFleetsErrorSet', 'locationName' => 'errorSet', ], 'Instances' => [ 'shape' => 'DescribeFleetsInstancesSet', 'locationName' => 'fleetInstanceSet', ], 'Context' => [ 'shape' => 'String', 'locationName' => 'context', ], ], ], 'FleetEbsBlockDeviceRequest' => [ 'type' => 'structure', 'members' => [ 'Encrypted' => [ 'shape' => 'Boolean', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'Iops' => [ 'shape' => 'Integer', ], 'Throughput' => [ 'shape' => 'Integer', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'VolumeSize' => [ 'shape' => 'Integer', ], 'VolumeType' => [ 'shape' => 'VolumeType', ], ], ], 'FleetEventType' => [ 'type' => 'string', 'enum' => [ 'instance-change', 'fleet-change', 'service-error', ], ], 'FleetExcessCapacityTerminationPolicy' => [ 'type' => 'string', 'enum' => [ 'no-termination', 'termination', ], ], 'FleetId' => [ 'type' => 'string', ], 'FleetIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetId', ], ], 'FleetInstanceMatchCriteria' => [ 'type' => 'string', 'enum' => [ 'open', ], ], 'FleetLaunchTemplateConfig' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateSpecification' => [ 'shape' => 'FleetLaunchTemplateSpecification', 'locationName' => 'launchTemplateSpecification', ], 'Overrides' => [ 'shape' => 'FleetLaunchTemplateOverridesList', 'locationName' => 'overrides', ], ], ], 'FleetLaunchTemplateConfigList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetLaunchTemplateConfig', 'locationName' => 'item', ], ], 'FleetLaunchTemplateConfigListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetLaunchTemplateConfigRequest', 'locationName' => 'item', ], 'max' => 50, 'min' => 0, ], 'FleetLaunchTemplateConfigRequest' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateSpecification' => [ 'shape' => 'FleetLaunchTemplateSpecificationRequest', ], 'Overrides' => [ 'shape' => 'FleetLaunchTemplateOverridesListRequest', ], ], ], 'FleetLaunchTemplateOverrides' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'MaxPrice' => [ 'shape' => 'String', 'locationName' => 'maxPrice', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'availabilityZone', ], 'WeightedCapacity' => [ 'shape' => 'Double', 'locationName' => 'weightedCapacity', ], 'Priority' => [ 'shape' => 'Double', 'locationName' => 'priority', ], 'Placement' => [ 'shape' => 'PlacementResponse', 'locationName' => 'placement', ], 'InstanceRequirements' => [ 'shape' => 'InstanceRequirements', 'locationName' => 'instanceRequirements', ], 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingResponseList', 'locationName' => 'blockDeviceMappingSet', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], ], ], 'FleetLaunchTemplateOverridesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetLaunchTemplateOverrides', 'locationName' => 'item', ], ], 'FleetLaunchTemplateOverridesListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetLaunchTemplateOverridesRequest', 'locationName' => 'item', ], ], 'FleetLaunchTemplateOverridesRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', ], 'MaxPrice' => [ 'shape' => 'String', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', ], 'WeightedCapacity' => [ 'shape' => 'Double', ], 'Priority' => [ 'shape' => 'Double', ], 'Placement' => [ 'shape' => 'Placement', ], 'BlockDeviceMappings' => [ 'shape' => 'FleetBlockDeviceMappingRequestList', 'locationName' => 'BlockDeviceMapping', ], 'InstanceRequirements' => [ 'shape' => 'InstanceRequirementsRequest', ], 'ImageId' => [ 'shape' => 'String', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], ], ], 'FleetLaunchTemplateSpecification' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', 'locationName' => 'launchTemplateName', ], 'Version' => [ 'shape' => 'String', 'locationName' => 'version', ], ], ], 'FleetLaunchTemplateSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'Version' => [ 'shape' => 'String', ], ], ], 'FleetOnDemandAllocationStrategy' => [ 'type' => 'string', 'enum' => [ 'lowest-price', 'prioritized', ], ], 'FleetReplacementStrategy' => [ 'type' => 'string', 'enum' => [ 'launch', 'launch-before-terminate', ], ], 'FleetReservationType' => [ 'type' => 'string', 'enum' => [ 'interruptible-capacity-reservation', ], ], 'FleetSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetData', 'locationName' => 'item', ], ], 'FleetSpotCapacityRebalance' => [ 'type' => 'structure', 'members' => [ 'ReplacementStrategy' => [ 'shape' => 'FleetReplacementStrategy', 'locationName' => 'replacementStrategy', ], 'TerminationDelay' => [ 'shape' => 'Integer', 'locationName' => 'terminationDelay', ], ], ], 'FleetSpotCapacityRebalanceRequest' => [ 'type' => 'structure', 'members' => [ 'ReplacementStrategy' => [ 'shape' => 'FleetReplacementStrategy', ], 'TerminationDelay' => [ 'shape' => 'Integer', ], ], ], 'FleetSpotMaintenanceStrategies' => [ 'type' => 'structure', 'members' => [ 'CapacityRebalance' => [ 'shape' => 'FleetSpotCapacityRebalance', 'locationName' => 'capacityRebalance', ], ], ], 'FleetSpotMaintenanceStrategiesRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityRebalance' => [ 'shape' => 'FleetSpotCapacityRebalanceRequest', ], ], ], 'FleetStateCode' => [ 'type' => 'string', 'enum' => [ 'submitted', 'active', 'deleted', 'failed', 'deleted_running', 'deleted_terminating', 'modifying', ], ], 'FleetType' => [ 'type' => 'string', 'enum' => [ 'request', 'maintain', 'instant', ], ], 'FlexibleEnaQueuesSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', ], ], 'Float' => [ 'type' => 'float', ], 'FlowLog' => [ 'type' => 'structure', 'members' => [ 'CreationTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'creationTime', ], 'DeliverLogsErrorMessage' => [ 'shape' => 'String', 'locationName' => 'deliverLogsErrorMessage', ], 'DeliverLogsPermissionArn' => [ 'shape' => 'String', 'locationName' => 'deliverLogsPermissionArn', ], 'DeliverCrossAccountRole' => [ 'shape' => 'String', 'locationName' => 'deliverCrossAccountRole', ], 'DeliverLogsStatus' => [ 'shape' => 'String', 'locationName' => 'deliverLogsStatus', ], 'FlowLogId' => [ 'shape' => 'String', 'locationName' => 'flowLogId', ], 'FlowLogStatus' => [ 'shape' => 'String', 'locationName' => 'flowLogStatus', ], 'LogGroupName' => [ 'shape' => 'String', 'locationName' => 'logGroupName', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'TrafficType' => [ 'shape' => 'TrafficType', 'locationName' => 'trafficType', ], 'LogDestinationType' => [ 'shape' => 'LogDestinationType', 'locationName' => 'logDestinationType', ], 'LogDestination' => [ 'shape' => 'String', 'locationName' => 'logDestination', ], 'LogFormat' => [ 'shape' => 'String', 'locationName' => 'logFormat', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'MaxAggregationInterval' => [ 'shape' => 'Integer', 'locationName' => 'maxAggregationInterval', ], 'DestinationOptions' => [ 'shape' => 'DestinationOptionsResponse', 'locationName' => 'destinationOptions', ], 'TagFieldSpecifications' => [ 'shape' => 'TagFieldSpecificationListResponse', 'locationName' => 'tagFieldSpecificationSet', ], ], ], 'FlowLogIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcFlowLogId', 'locationName' => 'item', ], ], 'FlowLogResourceId' => [ 'type' => 'string', ], 'FlowLogResourceIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'FlowLogResourceId', 'locationName' => 'item', ], ], 'FlowLogSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'FlowLog', 'locationName' => 'item', ], ], 'FlowLogsResourceType' => [ 'type' => 'string', 'enum' => [ 'VPC', 'Subnet', 'NetworkInterface', 'TransitGateway', 'TransitGatewayAttachment', 'RegionalNatGateway', ], ], 'FpgaDeviceCount' => [ 'type' => 'integer', ], 'FpgaDeviceInfo' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'FpgaDeviceName', 'locationName' => 'name', ], 'Manufacturer' => [ 'shape' => 'FpgaDeviceManufacturerName', 'locationName' => 'manufacturer', ], 'Count' => [ 'shape' => 'FpgaDeviceCount', 'locationName' => 'count', ], 'MemoryInfo' => [ 'shape' => 'FpgaDeviceMemoryInfo', 'locationName' => 'memoryInfo', ], ], ], 'FpgaDeviceInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FpgaDeviceInfo', 'locationName' => 'item', ], ], 'FpgaDeviceManufacturerName' => [ 'type' => 'string', ], 'FpgaDeviceMemoryInfo' => [ 'type' => 'structure', 'members' => [ 'SizeInMiB' => [ 'shape' => 'FpgaDeviceMemorySize', 'locationName' => 'sizeInMiB', ], ], ], 'FpgaDeviceMemorySize' => [ 'type' => 'integer', ], 'FpgaDeviceName' => [ 'type' => 'string', ], 'FpgaImage' => [ 'type' => 'structure', 'members' => [ 'FpgaImageId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageId', ], 'FpgaImageGlobalId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageGlobalId', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ShellVersion' => [ 'shape' => 'String', 'locationName' => 'shellVersion', ], 'PciId' => [ 'shape' => 'PciId', 'locationName' => 'pciId', ], 'State' => [ 'shape' => 'FpgaImageState', 'locationName' => 'state', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'UpdateTime' => [ 'shape' => 'DateTime', 'locationName' => 'updateTime', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'OwnerAlias' => [ 'shape' => 'String', 'locationName' => 'ownerAlias', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tags', ], 'Public' => [ 'shape' => 'Boolean', 'locationName' => 'public', ], 'DataRetentionSupport' => [ 'shape' => 'Boolean', 'locationName' => 'dataRetentionSupport', ], 'InstanceTypes' => [ 'shape' => 'InstanceTypesList', 'locationName' => 'instanceTypes', ], ], ], 'FpgaImageAttribute' => [ 'type' => 'structure', 'members' => [ 'FpgaImageId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageId', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'LoadPermissions' => [ 'shape' => 'LoadPermissionList', 'locationName' => 'loadPermissions', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], ], ], 'FpgaImageAttributeName' => [ 'type' => 'string', 'enum' => [ 'description', 'name', 'loadPermission', 'productCodes', ], ], 'FpgaImageId' => [ 'type' => 'string', ], 'FpgaImageIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FpgaImageId', 'locationName' => 'item', ], ], 'FpgaImageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FpgaImage', 'locationName' => 'item', ], ], 'FpgaImageState' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'FpgaImageStateCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'FpgaImageStateCode' => [ 'type' => 'string', 'enum' => [ 'pending', 'failed', 'available', 'unavailable', ], ], 'FpgaInfo' => [ 'type' => 'structure', 'members' => [ 'Fpgas' => [ 'shape' => 'FpgaDeviceInfoList', 'locationName' => 'fpgas', ], 'TotalFpgaMemoryInMiB' => [ 'shape' => 'totalFpgaMemory', 'locationName' => 'totalFpgaMemoryInMiB', ], ], ], 'FreeTierEligibleFlag' => [ 'type' => 'boolean', ], 'GVCDMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 200, ], 'GatewayAssociationState' => [ 'type' => 'string', 'enum' => [ 'associated', 'not-associated', 'associating', 'disassociating', ], ], 'GatewayType' => [ 'type' => 'string', 'enum' => [ 'ipsec.1', ], ], 'GetActiveVpnTunnelStatusRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', 'VpnTunnelOutsideIpAddress', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'VpnTunnelOutsideIpAddress' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetActiveVpnTunnelStatusResult' => [ 'type' => 'structure', 'members' => [ 'ActiveVpnTunnelStatus' => [ 'shape' => 'ActiveVpnTunnelStatus', 'locationName' => 'activeVpnTunnelStatus', ], ], ], 'GetAllowedImagesSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetAllowedImagesSettingsResult' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'ImageCriteria' => [ 'shape' => 'ImageCriterionList', 'locationName' => 'imageCriterionSet', ], 'ManagedBy' => [ 'shape' => 'ManagedBy', 'locationName' => 'managedBy', ], ], ], 'GetAssociatedEnclaveCertificateIamRolesRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'CertificateId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetAssociatedEnclaveCertificateIamRolesResult' => [ 'type' => 'structure', 'members' => [ 'AssociatedRoles' => [ 'shape' => 'AssociatedRolesList', 'locationName' => 'associatedRoleSet', ], ], ], 'GetAssociatedIpv6PoolCidrsRequest' => [ 'type' => 'structure', 'required' => [ 'PoolId', ], 'members' => [ 'PoolId' => [ 'shape' => 'Ipv6PoolEc2Id', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'Ipv6PoolMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetAssociatedIpv6PoolCidrsResult' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrAssociations' => [ 'shape' => 'Ipv6CidrAssociationSet', 'locationName' => 'ipv6CidrAssociationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetAwsNetworkPerformanceDataRequest' => [ 'type' => 'structure', 'members' => [ 'DataQueries' => [ 'shape' => 'DataQueries', 'locationName' => 'DataQuery', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', ], 'EndTime' => [ 'shape' => 'MillisecondDateTime', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetAwsNetworkPerformanceDataResult' => [ 'type' => 'structure', 'members' => [ 'DataResponses' => [ 'shape' => 'DataResponses', 'locationName' => 'dataResponseSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetCapacityManagerAttributesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetCapacityManagerAttributesResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerStatus' => [ 'shape' => 'CapacityManagerStatus', 'locationName' => 'capacityManagerStatus', ], 'OrganizationsAccess' => [ 'shape' => 'Boolean', 'locationName' => 'organizationsAccess', ], 'DataExportCount' => [ 'shape' => 'Integer', 'locationName' => 'dataExportCount', ], 'IngestionStatus' => [ 'shape' => 'IngestionStatus', 'locationName' => 'ingestionStatus', ], 'IngestionStatusMessage' => [ 'shape' => 'String', 'locationName' => 'ingestionStatusMessage', ], 'EarliestDatapointTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'earliestDatapointTimestamp', ], 'LatestDatapointTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'latestDatapointTimestamp', ], ], ], 'GetCapacityManagerMetricDataRequest' => [ 'type' => 'structure', 'required' => [ 'MetricNames', 'StartTime', 'EndTime', 'Period', ], 'members' => [ 'MetricNames' => [ 'shape' => 'MetricSet', 'locationName' => 'MetricName', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', ], 'EndTime' => [ 'shape' => 'MillisecondDateTime', ], 'Period' => [ 'shape' => 'Period', ], 'GroupBy' => [ 'shape' => 'GroupBySet', ], 'FilterBy' => [ 'shape' => 'CapacityManagerConditionSet', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetCapacityManagerMetricDataResult' => [ 'type' => 'structure', 'members' => [ 'MetricDataResults' => [ 'shape' => 'MetricDataResultSet', 'locationName' => 'metricDataResultSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetCapacityManagerMetricDimensionsRequest' => [ 'type' => 'structure', 'required' => [ 'GroupBy', 'StartTime', 'EndTime', 'MetricNames', ], 'members' => [ 'GroupBy' => [ 'shape' => 'GroupBySet', ], 'FilterBy' => [ 'shape' => 'CapacityManagerConditionSet', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', ], 'EndTime' => [ 'shape' => 'MillisecondDateTime', ], 'MetricNames' => [ 'shape' => 'MetricSet', 'locationName' => 'MetricName', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetCapacityManagerMetricDimensionsResult' => [ 'type' => 'structure', 'members' => [ 'MetricDimensionResults' => [ 'shape' => 'MetricDimensionResultSet', 'locationName' => 'metricDimensionResultSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetCapacityManagerMonitoredTagKeysRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'GetCapacityManagerMonitoredTagKeysRequestMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetCapacityManagerMonitoredTagKeysRequestMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'GetCapacityManagerMonitoredTagKeysResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerTagKeys' => [ 'shape' => 'CapacityManagerMonitoredTagKeyList', 'locationName' => 'capacityManagerTagKeySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetCapacityReservationUsageRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', ], 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'GetCapacityReservationUsageRequestMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetCapacityReservationUsageRequestMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'GetCapacityReservationUsageResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'CapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'TotalInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'totalInstanceCount', ], 'AvailableInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'availableInstanceCount', ], 'State' => [ 'shape' => 'CapacityReservationState', 'locationName' => 'state', ], 'InstanceUsages' => [ 'shape' => 'InstanceUsageSet', 'locationName' => 'instanceUsageSet', ], 'Interruptible' => [ 'shape' => 'BoxedBoolean', 'locationName' => 'interruptible', ], 'InterruptibleCapacityAllocation' => [ 'shape' => 'InterruptibleCapacityAllocation', 'locationName' => 'interruptibleCapacityAllocation', ], 'InterruptionInfo' => [ 'shape' => 'InterruptionInfo', 'locationName' => 'interruptionInfo', ], ], ], 'GetCoipPoolUsageRequest' => [ 'type' => 'structure', 'required' => [ 'PoolId', ], 'members' => [ 'PoolId' => [ 'shape' => 'Ipv4PoolCoipId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'CoipPoolMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetCoipPoolUsageResult' => [ 'type' => 'structure', 'members' => [ 'CoipPoolId' => [ 'shape' => 'String', 'locationName' => 'coipPoolId', ], 'CoipAddressUsages' => [ 'shape' => 'CoipAddressUsageSet', 'locationName' => 'coipAddressUsageSet', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'localGatewayRouteTableId', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetConsoleOutputRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'Latest' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'GetConsoleOutputResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], 'Output' => [ 'shape' => 'String', 'locationName' => 'output', ], ], ], 'GetConsoleScreenshotRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'WakeUp' => [ 'shape' => 'Boolean', ], ], ], 'GetConsoleScreenshotResult' => [ 'type' => 'structure', 'members' => [ 'ImageData' => [ 'shape' => 'String', 'locationName' => 'imageData', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], ], ], 'GetDeclarativePoliciesReportSummaryRequest' => [ 'type' => 'structure', 'required' => [ 'ReportId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ReportId' => [ 'shape' => 'DeclarativePoliciesReportId', ], ], ], 'GetDeclarativePoliciesReportSummaryResult' => [ 'type' => 'structure', 'members' => [ 'ReportId' => [ 'shape' => 'String', 'locationName' => 'reportId', ], 'S3Bucket' => [ 'shape' => 'String', 'locationName' => 's3Bucket', ], 'S3Prefix' => [ 'shape' => 'String', 'locationName' => 's3Prefix', ], 'TargetId' => [ 'shape' => 'String', 'locationName' => 'targetId', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startTime', ], 'EndTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'endTime', ], 'NumberOfAccounts' => [ 'shape' => 'Integer', 'locationName' => 'numberOfAccounts', ], 'NumberOfFailedAccounts' => [ 'shape' => 'Integer', 'locationName' => 'numberOfFailedAccounts', ], 'AttributeSummaries' => [ 'shape' => 'AttributeSummaryList', 'locationName' => 'attributeSummarySet', ], ], ], 'GetDefaultCreditSpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceFamily', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceFamily' => [ 'shape' => 'UnlimitedSupportedInstanceFamily', ], ], ], 'GetDefaultCreditSpecificationResult' => [ 'type' => 'structure', 'members' => [ 'InstanceFamilyCreditSpecification' => [ 'shape' => 'InstanceFamilyCreditSpecification', 'locationName' => 'instanceFamilyCreditSpecification', ], ], ], 'GetEbsDefaultKmsKeyIdRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetEbsDefaultKmsKeyIdResult' => [ 'type' => 'structure', 'members' => [ 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], ], ], 'GetEbsEncryptionByDefaultRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetEbsEncryptionByDefaultResult' => [ 'type' => 'structure', 'members' => [ 'EbsEncryptionByDefault' => [ 'shape' => 'Boolean', 'locationName' => 'ebsEncryptionByDefault', ], 'SseType' => [ 'shape' => 'SSEType', 'locationName' => 'sseType', ], ], ], 'GetEnabledIpamPolicyRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetEnabledIpamPolicyResult' => [ 'type' => 'structure', 'members' => [ 'IpamPolicyEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'ipamPolicyEnabled', ], 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', 'locationName' => 'ipamPolicyId', ], 'ManagedBy' => [ 'shape' => 'IpamPolicyManagedBy', 'locationName' => 'managedBy', ], ], ], 'GetFlowLogsIntegrationTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'FlowLogId', 'ConfigDeliveryS3DestinationArn', 'IntegrateServices', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FlowLogId' => [ 'shape' => 'VpcFlowLogId', ], 'ConfigDeliveryS3DestinationArn' => [ 'shape' => 'String', ], 'IntegrateServices' => [ 'shape' => 'IntegrateServices', 'locationName' => 'IntegrateService', ], ], ], 'GetFlowLogsIntegrationTemplateResult' => [ 'type' => 'structure', 'members' => [ 'Result' => [ 'shape' => 'String', 'locationName' => 'result', ], ], ], 'GetGroupsForCapacityReservationRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', ], 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'GetGroupsForCapacityReservationRequestMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetGroupsForCapacityReservationRequestMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'GetGroupsForCapacityReservationResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'CapacityReservationGroups' => [ 'shape' => 'CapacityReservationGroupSet', 'locationName' => 'capacityReservationGroupSet', ], ], ], 'GetHostReservationPurchasePreviewRequest' => [ 'type' => 'structure', 'required' => [ 'HostIdSet', 'OfferingId', ], 'members' => [ 'HostIdSet' => [ 'shape' => 'RequestHostIdSet', ], 'OfferingId' => [ 'shape' => 'OfferingId', ], ], ], 'GetHostReservationPurchasePreviewResult' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Purchase' => [ 'shape' => 'PurchaseSet', 'locationName' => 'purchase', ], 'TotalHourlyPrice' => [ 'shape' => 'String', 'locationName' => 'totalHourlyPrice', ], 'TotalUpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'totalUpfrontPrice', ], ], ], 'GetImageAncestryRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetImageAncestryResult' => [ 'type' => 'structure', 'members' => [ 'ImageAncestryEntries' => [ 'shape' => 'ImageAncestryEntryList', 'locationName' => 'imageAncestryEntrySet', ], ], ], 'GetImageBlockPublicAccessStateRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetImageBlockPublicAccessStateResult' => [ 'type' => 'structure', 'members' => [ 'ImageBlockPublicAccessState' => [ 'shape' => 'String', 'locationName' => 'imageBlockPublicAccessState', ], 'ManagedBy' => [ 'shape' => 'ManagedBy', 'locationName' => 'managedBy', ], ], ], 'GetInstanceMetadataDefaultsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetInstanceMetadataDefaultsResult' => [ 'type' => 'structure', 'members' => [ 'AccountLevel' => [ 'shape' => 'InstanceMetadataDefaultsResponse', 'locationName' => 'accountLevel', ], ], ], 'GetInstanceTpmEkPubRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'KeyType', 'KeyFormat', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'KeyType' => [ 'shape' => 'EkPubKeyType', ], 'KeyFormat' => [ 'shape' => 'EkPubKeyFormat', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetInstanceTpmEkPubResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'KeyType' => [ 'shape' => 'EkPubKeyType', 'locationName' => 'keyType', ], 'KeyFormat' => [ 'shape' => 'EkPubKeyFormat', 'locationName' => 'keyFormat', ], 'KeyValue' => [ 'shape' => 'EkPubKeyValue', 'locationName' => 'keyValue', ], ], ], 'GetInstanceTypesFromInstanceRequirementsRequest' => [ 'type' => 'structure', 'required' => [ 'ArchitectureTypes', 'VirtualizationTypes', 'InstanceRequirements', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ArchitectureTypes' => [ 'shape' => 'ArchitectureTypeSet', 'locationName' => 'ArchitectureType', ], 'VirtualizationTypes' => [ 'shape' => 'VirtualizationTypeSet', 'locationName' => 'VirtualizationType', ], 'InstanceRequirements' => [ 'shape' => 'InstanceRequirementsRequest', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'Context' => [ 'shape' => 'String', ], ], ], 'GetInstanceTypesFromInstanceRequirementsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceTypes' => [ 'shape' => 'InstanceTypeInfoFromInstanceRequirementsSet', 'locationName' => 'instanceTypeSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetInstanceUefiDataRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetInstanceUefiDataResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'UefiData' => [ 'shape' => 'String', 'locationName' => 'uefiData', ], ], ], 'GetIpamAddressHistoryRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', 'IpamScopeId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Cidr' => [ 'shape' => 'String', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', ], 'VpcId' => [ 'shape' => 'String', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', ], 'EndTime' => [ 'shape' => 'MillisecondDateTime', ], 'MaxResults' => [ 'shape' => 'IpamAddressHistoryMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetIpamAddressHistoryResult' => [ 'type' => 'structure', 'members' => [ 'HistoryRecords' => [ 'shape' => 'IpamAddressHistoryRecordSet', 'locationName' => 'historyRecordSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamDiscoveredAccountsRequest' => [ 'type' => 'structure', 'required' => [ 'IpamResourceDiscoveryId', 'DiscoveryRegion', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', ], 'DiscoveryRegion' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], ], ], 'GetIpamDiscoveredAccountsResult' => [ 'type' => 'structure', 'members' => [ 'IpamDiscoveredAccounts' => [ 'shape' => 'IpamDiscoveredAccountSet', 'locationName' => 'ipamDiscoveredAccountSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamDiscoveredPublicAddressesRequest' => [ 'type' => 'structure', 'required' => [ 'IpamResourceDiscoveryId', 'AddressRegion', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', ], 'AddressRegion' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], ], ], 'GetIpamDiscoveredPublicAddressesResult' => [ 'type' => 'structure', 'members' => [ 'IpamDiscoveredPublicAddresses' => [ 'shape' => 'IpamDiscoveredPublicAddressSet', 'locationName' => 'ipamDiscoveredPublicAddressSet', ], 'OldestSampleTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'oldestSampleTime', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamDiscoveredResourceCidrsRequest' => [ 'type' => 'structure', 'required' => [ 'IpamResourceDiscoveryId', 'ResourceRegion', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', ], 'ResourceRegion' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], ], ], 'GetIpamDiscoveredResourceCidrsResult' => [ 'type' => 'structure', 'members' => [ 'IpamDiscoveredResourceCidrs' => [ 'shape' => 'IpamDiscoveredResourceCidrSet', 'locationName' => 'ipamDiscoveredResourceCidrSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamPolicyAllocationRulesRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPolicyId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'Locale' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'IpamPolicyResourceType', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetIpamPolicyAllocationRulesResult' => [ 'type' => 'structure', 'members' => [ 'IpamPolicyDocuments' => [ 'shape' => 'IpamPolicyDocumentSet', 'locationName' => 'ipamPolicyDocumentSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamPolicyOrganizationTargetsRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPolicyId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'GetIpamPolicyOrganizationTargetsResult' => [ 'type' => 'structure', 'members' => [ 'OrganizationTargets' => [ 'shape' => 'IpamPolicyOrganizationTargetSet', 'locationName' => 'organizationTargetSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamPoolAllocationsMaxResults' => [ 'type' => 'integer', 'max' => 100000, 'min' => 1000, ], 'GetIpamPoolAllocationsRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'IpamPoolAllocationId' => [ 'shape' => 'IpamPoolAllocationId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'GetIpamPoolAllocationsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetIpamPoolAllocationsResult' => [ 'type' => 'structure', 'members' => [ 'IpamPoolAllocations' => [ 'shape' => 'IpamPoolAllocationSet', 'locationName' => 'ipamPoolAllocationSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamPoolCidrsRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetIpamPoolCidrsResult' => [ 'type' => 'structure', 'members' => [ 'IpamPoolCidrs' => [ 'shape' => 'IpamPoolCidrSet', 'locationName' => 'ipamPoolCidrSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamPrefixListResolverRulesRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPrefixListResolverId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetIpamPrefixListResolverRulesResult' => [ 'type' => 'structure', 'members' => [ 'Rules' => [ 'shape' => 'IpamPrefixListResolverRuleSet', 'locationName' => 'ruleSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamPrefixListResolverVersionEntriesRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPrefixListResolverId', 'IpamPrefixListResolverVersion', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', ], 'IpamPrefixListResolverVersion' => [ 'shape' => 'Long', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetIpamPrefixListResolverVersionEntriesResult' => [ 'type' => 'structure', 'members' => [ 'Entries' => [ 'shape' => 'IpamPrefixListResolverVersionEntrySet', 'locationName' => 'entrySet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamPrefixListResolverVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPrefixListResolverId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', ], 'IpamPrefixListResolverVersions' => [ 'shape' => 'IpamPrefixListResolverVersionNumberSet', 'locationName' => 'IpamPrefixListResolverVersion', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetIpamPrefixListResolverVersionsResult' => [ 'type' => 'structure', 'members' => [ 'IpamPrefixListResolverVersions' => [ 'shape' => 'IpamPrefixListResolverVersionSet', 'locationName' => 'ipamPrefixListResolverVersionSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamResourceCidrsRequest' => [ 'type' => 'structure', 'required' => [ 'IpamScopeId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'ResourceId' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'IpamResourceType', ], 'ResourceTag' => [ 'shape' => 'RequestIpamResourceTag', ], 'ResourceOwner' => [ 'shape' => 'String', ], ], ], 'GetIpamResourceCidrsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'IpamResourceCidrs' => [ 'shape' => 'IpamResourceCidrSet', 'locationName' => 'ipamResourceCidrSet', ], ], ], 'GetLaunchTemplateDataRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], ], ], 'GetLaunchTemplateDataResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateData' => [ 'shape' => 'ResponseLaunchTemplateData', 'locationName' => 'launchTemplateData', ], ], ], 'GetManagedPrefixListAssociationsMaxResults' => [ 'type' => 'integer', 'max' => 255, 'min' => 5, ], 'GetManagedPrefixListAssociationsRequest' => [ 'type' => 'structure', 'required' => [ 'PrefixListId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'MaxResults' => [ 'shape' => 'GetManagedPrefixListAssociationsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetManagedPrefixListAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'PrefixListAssociations' => [ 'shape' => 'PrefixListAssociationSet', 'locationName' => 'prefixListAssociationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetManagedPrefixListEntriesRequest' => [ 'type' => 'structure', 'required' => [ 'PrefixListId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'TargetVersion' => [ 'shape' => 'Long', ], 'MaxResults' => [ 'shape' => 'PrefixListMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetManagedPrefixListEntriesResult' => [ 'type' => 'structure', 'members' => [ 'Entries' => [ 'shape' => 'PrefixListEntrySet', 'locationName' => 'entrySet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetManagedResourceVisibilityRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetManagedResourceVisibilityResult' => [ 'type' => 'structure', 'members' => [ 'Visibility' => [ 'shape' => 'ManagedResourceVisibilitySettings', 'locationName' => 'visibility', ], ], ], 'GetNetworkInsightsAccessScopeAnalysisFindingsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'GetNetworkInsightsAccessScopeAnalysisFindingsRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInsightsAccessScopeAnalysisId', ], 'members' => [ 'NetworkInsightsAccessScopeAnalysisId' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisId', ], 'MaxResults' => [ 'shape' => 'GetNetworkInsightsAccessScopeAnalysisFindingsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetNetworkInsightsAccessScopeAnalysisFindingsResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeAnalysisId' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisId', 'locationName' => 'networkInsightsAccessScopeAnalysisId', ], 'AnalysisStatus' => [ 'shape' => 'AnalysisStatus', 'locationName' => 'analysisStatus', ], 'AnalysisFindings' => [ 'shape' => 'AccessScopeAnalysisFindingList', 'locationName' => 'analysisFindingSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetNetworkInsightsAccessScopeContentRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInsightsAccessScopeId', ], 'members' => [ 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetNetworkInsightsAccessScopeContentResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeContent' => [ 'shape' => 'NetworkInsightsAccessScopeContent', 'locationName' => 'networkInsightsAccessScopeContent', ], ], ], 'GetPasswordDataRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'GetPasswordDataResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], 'PasswordData' => [ 'shape' => 'PasswordData', 'locationName' => 'passwordData', ], ], ], 'GetReservedInstancesExchangeQuoteRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstanceIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ReservedInstanceIds' => [ 'shape' => 'ReservedInstanceIdSet', 'locationName' => 'ReservedInstanceId', ], 'TargetConfigurations' => [ 'shape' => 'TargetConfigurationRequestSet', 'locationName' => 'TargetConfiguration', ], ], ], 'GetReservedInstancesExchangeQuoteResult' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'String', 'locationName' => 'currencyCode', ], 'IsValidExchange' => [ 'shape' => 'Boolean', 'locationName' => 'isValidExchange', ], 'OutputReservedInstancesWillExpireAt' => [ 'shape' => 'DateTime', 'locationName' => 'outputReservedInstancesWillExpireAt', ], 'PaymentDue' => [ 'shape' => 'String', 'locationName' => 'paymentDue', ], 'ReservedInstanceValueRollup' => [ 'shape' => 'ReservationValue', 'locationName' => 'reservedInstanceValueRollup', ], 'ReservedInstanceValueSet' => [ 'shape' => 'ReservedInstanceReservationValueSet', 'locationName' => 'reservedInstanceValueSet', ], 'TargetConfigurationValueRollup' => [ 'shape' => 'ReservationValue', 'locationName' => 'targetConfigurationValueRollup', ], 'TargetConfigurationValueSet' => [ 'shape' => 'TargetReservationValueSet', 'locationName' => 'targetConfigurationValueSet', ], 'ValidationFailureReason' => [ 'shape' => 'String', 'locationName' => 'validationFailureReason', ], ], ], 'GetRouteServerAssociationsRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetRouteServerAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerAssociations' => [ 'shape' => 'RouteServerAssociationsList', 'locationName' => 'routeServerAssociationSet', ], ], ], 'GetRouteServerPropagationsRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetRouteServerPropagationsResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerPropagations' => [ 'shape' => 'RouteServerPropagationsList', 'locationName' => 'routeServerPropagationSet', ], ], ], 'GetRouteServerRoutingDatabaseRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'RouteServerMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'GetRouteServerRoutingDatabaseResult' => [ 'type' => 'structure', 'members' => [ 'AreRoutesPersisted' => [ 'shape' => 'Boolean', 'locationName' => 'areRoutesPersisted', ], 'Routes' => [ 'shape' => 'RouteServerRouteList', 'locationName' => 'routeSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetSecurityGroupsForVpcRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'GetSecurityGroupsForVpcRequestMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetSecurityGroupsForVpcRequestMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'GetSecurityGroupsForVpcResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SecurityGroupForVpcs' => [ 'shape' => 'SecurityGroupForVpcList', 'locationName' => 'securityGroupForVpcSet', ], ], ], 'GetSerialConsoleAccessStatusRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetSerialConsoleAccessStatusResult' => [ 'type' => 'structure', 'members' => [ 'SerialConsoleAccessEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'serialConsoleAccessEnabled', ], 'ManagedBy' => [ 'shape' => 'ManagedBy', 'locationName' => 'managedBy', ], ], ], 'GetSnapshotBlockPublicAccessStateRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetSnapshotBlockPublicAccessStateResult' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'SnapshotBlockPublicAccessState', 'locationName' => 'state', ], 'ManagedBy' => [ 'shape' => 'ManagedBy', 'locationName' => 'managedBy', ], ], ], 'GetSpotPlacementScoresRequest' => [ 'type' => 'structure', 'required' => [ 'TargetCapacity', ], 'members' => [ 'InstanceTypes' => [ 'shape' => 'InstanceTypes', 'locationName' => 'InstanceType', ], 'TargetCapacity' => [ 'shape' => 'SpotPlacementScoresTargetCapacity', ], 'TargetCapacityUnitType' => [ 'shape' => 'TargetCapacityUnitType', ], 'SingleAvailabilityZone' => [ 'shape' => 'Boolean', ], 'RegionNames' => [ 'shape' => 'RegionNames', 'locationName' => 'RegionName', ], 'InstanceRequirementsWithMetadata' => [ 'shape' => 'InstanceRequirementsWithMetadataRequest', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'SpotPlacementScoresMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetSpotPlacementScoresResult' => [ 'type' => 'structure', 'members' => [ 'SpotPlacementScores' => [ 'shape' => 'SpotPlacementScores', 'locationName' => 'spotPlacementScoreSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetSubnetCidrReservationsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'GetSubnetCidrReservationsRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', ], 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'GetSubnetCidrReservationsMaxResults', ], ], ], 'GetSubnetCidrReservationsResult' => [ 'type' => 'structure', 'members' => [ 'SubnetIpv4CidrReservations' => [ 'shape' => 'SubnetCidrReservationList', 'locationName' => 'subnetIpv4CidrReservationSet', ], 'SubnetIpv6CidrReservations' => [ 'shape' => 'SubnetCidrReservationList', 'locationName' => 'subnetIpv6CidrReservationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetTransitGatewayAttachmentPropagationsRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayAttachmentPropagationsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentPropagations' => [ 'shape' => 'TransitGatewayAttachmentPropagationList', 'locationName' => 'transitGatewayAttachmentPropagations', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetTransitGatewayMeteringPolicyEntriesRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMeteringPolicyId', ], 'members' => [ 'TransitGatewayMeteringPolicyId' => [ 'shape' => 'TransitGatewayMeteringPolicyId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayMeteringPolicyEntriesResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicyEntries' => [ 'shape' => 'TransitGatewayMeteringPolicyEntryList', 'locationName' => 'transitGatewayMeteringPolicyEntries', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetTransitGatewayMulticastDomainAssociationsRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMulticastDomainId', ], 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayMulticastDomainAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'MulticastDomainAssociations' => [ 'shape' => 'TransitGatewayMulticastDomainAssociationList', 'locationName' => 'multicastDomainAssociations', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetTransitGatewayPolicyTableAssociationsRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayPolicyTableId', ], 'members' => [ 'TransitGatewayPolicyTableId' => [ 'shape' => 'TransitGatewayPolicyTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayPolicyTableAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'TransitGatewayPolicyTableAssociationList', 'locationName' => 'associations', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetTransitGatewayPolicyTableEntriesRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayPolicyTableId', ], 'members' => [ 'TransitGatewayPolicyTableId' => [ 'shape' => 'TransitGatewayPolicyTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayPolicyTableEntriesResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPolicyTableEntries' => [ 'shape' => 'TransitGatewayPolicyTableEntryList', 'locationName' => 'transitGatewayPolicyTableEntries', ], ], ], 'GetTransitGatewayPrefixListReferencesRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayPrefixListReferencesResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPrefixListReferences' => [ 'shape' => 'TransitGatewayPrefixListReferenceSet', 'locationName' => 'transitGatewayPrefixListReferenceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetTransitGatewayRouteTableAssociationsRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayRouteTableAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'TransitGatewayRouteTableAssociationList', 'locationName' => 'associations', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetTransitGatewayRouteTablePropagationsRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayRouteTablePropagationsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTablePropagations' => [ 'shape' => 'TransitGatewayRouteTablePropagationList', 'locationName' => 'transitGatewayRouteTablePropagations', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetVerifiedAccessEndpointPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessEndpointId', ], 'members' => [ 'VerifiedAccessEndpointId' => [ 'shape' => 'VerifiedAccessEndpointId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetVerifiedAccessEndpointPolicyResult' => [ 'type' => 'structure', 'members' => [ 'PolicyEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'policyEnabled', ], 'PolicyDocument' => [ 'shape' => 'String', 'locationName' => 'policyDocument', ], ], ], 'GetVerifiedAccessEndpointTargetsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'GetVerifiedAccessEndpointTargetsRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessEndpointId', ], 'members' => [ 'VerifiedAccessEndpointId' => [ 'shape' => 'VerifiedAccessEndpointId', ], 'MaxResults' => [ 'shape' => 'GetVerifiedAccessEndpointTargetsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetVerifiedAccessEndpointTargetsResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessEndpointTargets' => [ 'shape' => 'VerifiedAccessEndpointTargetList', 'locationName' => 'verifiedAccessEndpointTargetSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetVerifiedAccessGroupPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessGroupId', ], 'members' => [ 'VerifiedAccessGroupId' => [ 'shape' => 'VerifiedAccessGroupId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetVerifiedAccessGroupPolicyResult' => [ 'type' => 'structure', 'members' => [ 'PolicyEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'policyEnabled', ], 'PolicyDocument' => [ 'shape' => 'String', 'locationName' => 'policyDocument', ], ], ], 'GetVpcResourcesBlockingEncryptionEnforcementMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'GetVpcResourcesBlockingEncryptionEnforcementRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], 'MaxResults' => [ 'shape' => 'GetVpcResourcesBlockingEncryptionEnforcementMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetVpcResourcesBlockingEncryptionEnforcementResult' => [ 'type' => 'structure', 'members' => [ 'NonCompliantResources' => [ 'shape' => 'VpcEncryptionNonCompliantResourceList', 'locationName' => 'nonCompliantResourceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetVpnConnectionDeviceSampleConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', 'VpnConnectionDeviceTypeId', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'VpnConnectionDeviceTypeId' => [ 'shape' => 'VpnConnectionDeviceTypeId', ], 'InternetKeyExchangeVersion' => [ 'shape' => 'String', ], 'SampleType' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetVpnConnectionDeviceSampleConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnectionDeviceSampleConfiguration' => [ 'shape' => 'VpnConnectionDeviceSampleConfiguration', 'locationName' => 'vpnConnectionDeviceSampleConfiguration', ], ], ], 'GetVpnConnectionDeviceTypesRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'GVCDMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetVpnConnectionDeviceTypesResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnectionDeviceTypes' => [ 'shape' => 'VpnConnectionDeviceTypeList', 'locationName' => 'vpnConnectionDeviceTypeSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetVpnTunnelReplacementStatusRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', 'VpnTunnelOutsideIpAddress', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'VpnTunnelOutsideIpAddress' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetVpnTunnelReplacementStatusResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', 'locationName' => 'vpnConnectionId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'transitGatewayId', ], 'CustomerGatewayId' => [ 'shape' => 'CustomerGatewayId', 'locationName' => 'customerGatewayId', ], 'VpnGatewayId' => [ 'shape' => 'VpnGatewayId', 'locationName' => 'vpnGatewayId', ], 'VpnTunnelOutsideIpAddress' => [ 'shape' => 'String', 'locationName' => 'vpnTunnelOutsideIpAddress', ], 'MaintenanceDetails' => [ 'shape' => 'MaintenanceDetails', 'locationName' => 'maintenanceDetails', ], ], ], 'GpuDeviceCount' => [ 'type' => 'integer', ], 'GpuDeviceInfo' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'GpuDeviceName', 'locationName' => 'name', ], 'Manufacturer' => [ 'shape' => 'GpuDeviceManufacturerName', 'locationName' => 'manufacturer', ], 'Count' => [ 'shape' => 'GpuDeviceCount', 'locationName' => 'count', ], 'LogicalGpuCount' => [ 'shape' => 'LogicalGpuCount', 'locationName' => 'logicalGpuCount', ], 'GpuPartitionSize' => [ 'shape' => 'GpuPartitionSize', 'locationName' => 'gpuPartitionSize', ], 'Workloads' => [ 'shape' => 'WorkloadsList', 'locationName' => 'workloadSet', ], 'MemoryInfo' => [ 'shape' => 'GpuDeviceMemoryInfo', 'locationName' => 'memoryInfo', ], ], ], 'GpuDeviceInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GpuDeviceInfo', 'locationName' => 'item', ], ], 'GpuDeviceManufacturerName' => [ 'type' => 'string', ], 'GpuDeviceMemoryInfo' => [ 'type' => 'structure', 'members' => [ 'SizeInMiB' => [ 'shape' => 'GpuDeviceMemorySize', 'locationName' => 'sizeInMiB', ], ], ], 'GpuDeviceMemorySize' => [ 'type' => 'integer', ], 'GpuDeviceName' => [ 'type' => 'string', ], 'GpuInfo' => [ 'type' => 'structure', 'members' => [ 'Gpus' => [ 'shape' => 'GpuDeviceInfoList', 'locationName' => 'gpus', ], 'TotalGpuMemoryInMiB' => [ 'shape' => 'totalGpuMemory', 'locationName' => 'totalGpuMemoryInMiB', ], ], ], 'GpuPartitionSize' => [ 'type' => 'double', ], 'GroupBy' => [ 'type' => 'string', 'enum' => [ 'resource-region', 'availability-zone-id', 'account-id', 'account-name', 'instance-family', 'instance-type', 'instance-platform', 'reservation-arn', 'reservation-id', 'reservation-type', 'reservation-create-timestamp', 'reservation-start-timestamp', 'reservation-end-timestamp', 'reservation-end-date-type', 'tenancy', 'reservation-state', 'reservation-instance-match-criteria', 'reservation-unused-financial-owner', ], 'max' => 300, 'min' => 0, ], 'GroupBySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupBy', 'locationName' => 'item', ], 'max' => 20, 'min' => 0, ], 'GroupIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'groupId', ], ], 'GroupIdentifier' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], ], ], 'GroupIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupIdentifier', 'locationName' => 'item', ], ], 'GroupIdentifierSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupIdentifier', 'locationName' => 'item', ], ], 'GroupIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'item', ], ], 'GroupNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupName', 'locationName' => 'GroupName', ], ], 'HaStatus' => [ 'type' => 'string', 'enum' => [ 'processing', 'active', 'standby', 'invalid', ], ], 'HibernationFlag' => [ 'type' => 'boolean', ], 'HibernationOptions' => [ 'type' => 'structure', 'members' => [ 'Configured' => [ 'shape' => 'Boolean', 'locationName' => 'configured', ], ], ], 'HibernationOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'Configured' => [ 'shape' => 'Boolean', ], ], ], 'HistoryRecord' => [ 'type' => 'structure', 'members' => [ 'EventInformation' => [ 'shape' => 'EventInformation', 'locationName' => 'eventInformation', ], 'EventType' => [ 'shape' => 'EventType', 'locationName' => 'eventType', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], ], ], 'HistoryRecordEntry' => [ 'type' => 'structure', 'members' => [ 'EventInformation' => [ 'shape' => 'EventInformation', 'locationName' => 'eventInformation', ], 'EventType' => [ 'shape' => 'FleetEventType', 'locationName' => 'eventType', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], ], ], 'HistoryRecordSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'HistoryRecordEntry', 'locationName' => 'item', ], ], 'HistoryRecords' => [ 'type' => 'list', 'member' => [ 'shape' => 'HistoryRecord', 'locationName' => 'item', ], ], 'Host' => [ 'type' => 'structure', 'members' => [ 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailableCapacity' => [ 'shape' => 'AvailableCapacity', 'locationName' => 'availableCapacity', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], 'HostProperties' => [ 'shape' => 'HostProperties', 'locationName' => 'hostProperties', ], 'HostReservationId' => [ 'shape' => 'String', 'locationName' => 'hostReservationId', ], 'Instances' => [ 'shape' => 'HostInstanceList', 'locationName' => 'instances', ], 'State' => [ 'shape' => 'AllocationState', 'locationName' => 'state', ], 'AllocationTime' => [ 'shape' => 'DateTime', 'locationName' => 'allocationTime', ], 'ReleaseTime' => [ 'shape' => 'DateTime', 'locationName' => 'releaseTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'HostRecovery' => [ 'shape' => 'HostRecovery', 'locationName' => 'hostRecovery', ], 'AllowsMultipleInstanceTypes' => [ 'shape' => 'AllowsMultipleInstanceTypes', 'locationName' => 'allowsMultipleInstanceTypes', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'MemberOfServiceLinkedResourceGroup' => [ 'shape' => 'Boolean', 'locationName' => 'memberOfServiceLinkedResourceGroup', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'HostMaintenance' => [ 'shape' => 'HostMaintenance', 'locationName' => 'hostMaintenance', ], 'AssetId' => [ 'shape' => 'AssetId', 'locationName' => 'assetId', ], 'CpuOptions' => [ 'shape' => 'HostCpuOptions', 'locationName' => 'cpuOptions', ], ], ], 'HostCpuOptions' => [ 'type' => 'structure', 'members' => [ 'AmdSevSnp' => [ 'shape' => 'AmdSevSnp', 'locationName' => 'amdSevSnp', ], ], ], 'HostCpuOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AmdSevSnp' => [ 'shape' => 'AmdSevSnp', ], ], ], 'HostInstance' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], ], ], 'HostInstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostInstance', 'locationName' => 'item', ], ], 'HostList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Host', 'locationName' => 'item', ], ], 'HostMaintenance' => [ 'type' => 'string', 'enum' => [ 'on', 'off', ], ], 'HostOffering' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => 'Integer', 'locationName' => 'duration', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'OfferingId' => [ 'shape' => 'OfferingId', 'locationName' => 'offeringId', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', 'locationName' => 'paymentOption', ], 'UpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'upfrontPrice', ], ], ], 'HostOfferingSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostOffering', 'locationName' => 'item', ], ], 'HostProperties' => [ 'type' => 'structure', 'members' => [ 'Cores' => [ 'shape' => 'Integer', 'locationName' => 'cores', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'Sockets' => [ 'shape' => 'Integer', 'locationName' => 'sockets', ], 'TotalVCpus' => [ 'shape' => 'Integer', 'locationName' => 'totalVCpus', ], ], ], 'HostRecovery' => [ 'type' => 'string', 'enum' => [ 'on', 'off', ], ], 'HostReservation' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => 'Integer', 'locationName' => 'count', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => 'Integer', 'locationName' => 'duration', ], 'End' => [ 'shape' => 'DateTime', 'locationName' => 'end', ], 'HostIdSet' => [ 'shape' => 'ResponseHostIdSet', 'locationName' => 'hostIdSet', ], 'HostReservationId' => [ 'shape' => 'HostReservationId', 'locationName' => 'hostReservationId', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'OfferingId' => [ 'shape' => 'OfferingId', 'locationName' => 'offeringId', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', 'locationName' => 'paymentOption', ], 'Start' => [ 'shape' => 'DateTime', 'locationName' => 'start', ], 'State' => [ 'shape' => 'ReservationState', 'locationName' => 'state', ], 'UpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'upfrontPrice', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'HostReservationId' => [ 'type' => 'string', ], 'HostReservationIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostReservationId', 'locationName' => 'item', ], ], 'HostReservationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostReservation', 'locationName' => 'item', ], ], 'HostTenancy' => [ 'type' => 'string', 'enum' => [ 'default', 'dedicated', 'host', ], ], 'HostnameType' => [ 'type' => 'string', 'enum' => [ 'ip-name', 'resource-name', ], ], 'Hour' => [ 'type' => 'integer', 'max' => 23, 'min' => 0, ], 'HttpTokensEnforcedState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', ], ], 'HttpTokensState' => [ 'type' => 'string', 'enum' => [ 'optional', 'required', ], ], 'HypervisorType' => [ 'type' => 'string', 'enum' => [ 'ovm', 'xen', ], ], 'IKEVersionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IKEVersionsListValue', 'locationName' => 'item', ], ], 'IKEVersionsListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'IKEVersionsRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IKEVersionsRequestListValue', 'locationName' => 'item', ], ], 'IKEVersionsRequestListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', ], ], ], 'IamInstanceProfile' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], 'Id' => [ 'shape' => 'String', 'locationName' => 'id', ], ], ], 'IamInstanceProfileAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfile', 'locationName' => 'iamInstanceProfile', ], 'State' => [ 'shape' => 'IamInstanceProfileAssociationState', 'locationName' => 'state', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], ], ], 'IamInstanceProfileAssociationId' => [ 'type' => 'string', ], 'IamInstanceProfileAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IamInstanceProfileAssociation', 'locationName' => 'item', ], ], 'IamInstanceProfileAssociationState' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', 'disassociated', ], ], 'IamInstanceProfileSpecification' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'IcmpTypeCode' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'Integer', 'locationName' => 'code', ], 'Type' => [ 'shape' => 'Integer', 'locationName' => 'type', ], ], ], 'IdFormat' => [ 'type' => 'structure', 'members' => [ 'Deadline' => [ 'shape' => 'DateTime', 'locationName' => 'deadline', ], 'Resource' => [ 'shape' => 'String', 'locationName' => 'resource', ], 'UseLongIds' => [ 'shape' => 'Boolean', 'locationName' => 'useLongIds', ], ], ], 'IdFormatList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IdFormat', 'locationName' => 'item', ], ], 'Igmpv2SupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'Image' => [ 'type' => 'structure', 'members' => [ 'PlatformDetails' => [ 'shape' => 'String', 'locationName' => 'platformDetails', ], 'UsageOperation' => [ 'shape' => 'String', 'locationName' => 'usageOperation', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'EnaSupport' => [ 'shape' => 'Boolean', 'locationName' => 'enaSupport', ], 'Hypervisor' => [ 'shape' => 'HypervisorType', 'locationName' => 'hypervisor', ], 'ImageOwnerAlias' => [ 'shape' => 'String', 'locationName' => 'imageOwnerAlias', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'RootDeviceName' => [ 'shape' => 'String', 'locationName' => 'rootDeviceName', ], 'RootDeviceType' => [ 'shape' => 'DeviceType', 'locationName' => 'rootDeviceType', ], 'SriovNetSupport' => [ 'shape' => 'String', 'locationName' => 'sriovNetSupport', ], 'StateReason' => [ 'shape' => 'StateReason', 'locationName' => 'stateReason', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VirtualizationType' => [ 'shape' => 'VirtualizationType', 'locationName' => 'virtualizationType', ], 'BootMode' => [ 'shape' => 'BootModeValues', 'locationName' => 'bootMode', ], 'TpmSupport' => [ 'shape' => 'TpmSupportValues', 'locationName' => 'tpmSupport', ], 'DeprecationTime' => [ 'shape' => 'String', 'locationName' => 'deprecationTime', ], 'ImdsSupport' => [ 'shape' => 'ImdsSupportValues', 'locationName' => 'imdsSupport', ], 'SourceInstanceId' => [ 'shape' => 'String', 'locationName' => 'sourceInstanceId', ], 'DeregistrationProtection' => [ 'shape' => 'String', 'locationName' => 'deregistrationProtection', ], 'LastLaunchedTime' => [ 'shape' => 'String', 'locationName' => 'lastLaunchedTime', ], 'ImageAllowed' => [ 'shape' => 'Boolean', 'locationName' => 'imageAllowed', ], 'SourceImageId' => [ 'shape' => 'String', 'locationName' => 'sourceImageId', ], 'SourceImageRegion' => [ 'shape' => 'String', 'locationName' => 'sourceImageRegion', ], 'FreeTierEligible' => [ 'shape' => 'Boolean', 'locationName' => 'freeTierEligible', ], 'PublicSsmParameterName' => [ 'shape' => 'String', 'locationName' => 'publicSsmParameterName', ], 'ImageWatermarks' => [ 'shape' => 'ImageWatermarkList', 'locationName' => 'imageWatermarkSet', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'ImageLocation' => [ 'shape' => 'String', 'locationName' => 'imageLocation', ], 'State' => [ 'shape' => 'ImageState', 'locationName' => 'imageState', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'imageOwnerId', ], 'CreationDate' => [ 'shape' => 'String', 'locationName' => 'creationDate', ], 'Public' => [ 'shape' => 'Boolean', 'locationName' => 'isPublic', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'Architecture' => [ 'shape' => 'ArchitectureValues', 'locationName' => 'architecture', ], 'ImageType' => [ 'shape' => 'ImageTypeValues', 'locationName' => 'imageType', ], 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'RamdiskId' => [ 'shape' => 'String', 'locationName' => 'ramdiskId', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], ], ], 'ImageAncestryEntry' => [ 'type' => 'structure', 'members' => [ 'CreationDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'creationDate', ], 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'ImageOwnerAlias' => [ 'shape' => 'String', 'locationName' => 'imageOwnerAlias', ], 'SourceImageId' => [ 'shape' => 'ImageId', 'locationName' => 'sourceImageId', ], 'SourceImageRegion' => [ 'shape' => 'String', 'locationName' => 'sourceImageRegion', ], ], ], 'ImageAncestryEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageAncestryEntry', 'locationName' => 'item', ], ], 'ImageAttribute' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'AttributeValue', 'locationName' => 'description', ], 'KernelId' => [ 'shape' => 'AttributeValue', 'locationName' => 'kernel', ], 'RamdiskId' => [ 'shape' => 'AttributeValue', 'locationName' => 'ramdisk', ], 'SriovNetSupport' => [ 'shape' => 'AttributeValue', 'locationName' => 'sriovNetSupport', ], 'BootMode' => [ 'shape' => 'AttributeValue', 'locationName' => 'bootMode', ], 'TpmSupport' => [ 'shape' => 'AttributeValue', 'locationName' => 'tpmSupport', ], 'UefiData' => [ 'shape' => 'AttributeValue', 'locationName' => 'uefiData', ], 'LastLaunchedTime' => [ 'shape' => 'AttributeValue', 'locationName' => 'lastLaunchedTime', ], 'ImdsSupport' => [ 'shape' => 'AttributeValue', 'locationName' => 'imdsSupport', ], 'DeregistrationProtection' => [ 'shape' => 'AttributeValue', 'locationName' => 'deregistrationProtection', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'LaunchPermissions' => [ 'shape' => 'LaunchPermissionList', 'locationName' => 'launchPermission', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], ], ], 'ImageAttributeName' => [ 'type' => 'string', 'enum' => [ 'description', 'kernel', 'ramdisk', 'launchPermission', 'productCodes', 'blockDeviceMapping', 'sriovNetSupport', 'bootMode', 'tpmSupport', 'uefiData', 'lastLaunchedTime', 'imdsSupport', 'deregistrationProtection', ], ], 'ImageBlockPublicAccessDisabledState' => [ 'type' => 'string', 'enum' => [ 'unblocked', ], ], 'ImageBlockPublicAccessEnabledState' => [ 'type' => 'string', 'enum' => [ 'block-new-sharing', ], ], 'ImageCriterion' => [ 'type' => 'structure', 'members' => [ 'ImageProviders' => [ 'shape' => 'ImageProviderList', 'locationName' => 'imageProviderSet', ], 'MarketplaceProductCodes' => [ 'shape' => 'MarketplaceProductCodeList', 'locationName' => 'marketplaceProductCodeSet', ], 'ImageNames' => [ 'shape' => 'ImageNameList', 'locationName' => 'imageNameSet', ], 'DeprecationTimeCondition' => [ 'shape' => 'DeprecationTimeCondition', 'locationName' => 'deprecationTimeCondition', ], 'CreationDateCondition' => [ 'shape' => 'CreationDateCondition', 'locationName' => 'creationDateCondition', ], 'ImageWatermarks' => [ 'shape' => 'ImageWatermarkFilterResponseList', 'locationName' => 'imageWatermarkSet', ], ], ], 'ImageCriterionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageCriterion', 'locationName' => 'item', ], ], 'ImageCriterionRequest' => [ 'type' => 'structure', 'members' => [ 'ImageProviders' => [ 'shape' => 'ImageProviderRequestList', 'locationName' => 'ImageProvider', ], 'MarketplaceProductCodes' => [ 'shape' => 'MarketplaceProductCodeRequestList', 'locationName' => 'MarketplaceProductCode', ], 'ImageNames' => [ 'shape' => 'ImageNameCriteriaRequestList', 'locationName' => 'ImageName', ], 'DeprecationTimeCondition' => [ 'shape' => 'DeprecationTimeConditionRequest', ], 'CreationDateCondition' => [ 'shape' => 'CreationDateConditionRequest', ], 'ImageWatermarks' => [ 'shape' => 'ImageWatermarkFilterRequestList', 'locationName' => 'ImageWatermark', ], ], ], 'ImageCriterionRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageCriterionRequest', 'locationName' => 'ImageCriterion', ], ], 'ImageDescriptionRequest' => [ 'type' => 'string', 'max' => 255, 'min' => 0, ], 'ImageDiskContainer' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', ], 'DeviceName' => [ 'shape' => 'String', ], 'Format' => [ 'shape' => 'String', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'Url' => [ 'shape' => 'SensitiveUrl', ], 'UserBucket' => [ 'shape' => 'UserBucket', ], ], ], 'ImageDiskContainerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageDiskContainer', 'locationName' => 'item', ], ], 'ImageId' => [ 'type' => 'string', ], 'ImageIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageId', 'locationName' => 'item', ], ], 'ImageIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageId', 'locationName' => 'ImageId', ], ], 'ImageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Image', 'locationName' => 'item', ], ], 'ImageMetadata' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'imageOwnerId', ], 'State' => [ 'shape' => 'ImageState', 'locationName' => 'imageState', ], 'ImageOwnerAlias' => [ 'shape' => 'String', 'locationName' => 'imageOwnerAlias', ], 'CreationDate' => [ 'shape' => 'String', 'locationName' => 'creationDate', ], 'DeprecationTime' => [ 'shape' => 'String', 'locationName' => 'deprecationTime', ], 'ImageAllowed' => [ 'shape' => 'Boolean', 'locationName' => 'imageAllowed', ], 'IsPublic' => [ 'shape' => 'Boolean', 'locationName' => 'isPublic', ], 'ImageWatermarks' => [ 'shape' => 'ImageWatermarkList', 'locationName' => 'imageWatermarkSet', ], ], ], 'ImageName' => [ 'type' => 'string', ], 'ImageNameCriteriaRequest' => [ 'type' => 'string', 'max' => 128, 'min' => 0, ], 'ImageNameCriteriaRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageNameCriteriaRequest', 'locationName' => 'item', ], ], 'ImageNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageName', 'locationName' => 'item', ], ], 'ImageNameRequest' => [ 'type' => 'string', 'max' => 128, 'min' => 3, ], 'ImageProvider' => [ 'type' => 'string', ], 'ImageProviderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageProvider', 'locationName' => 'item', ], ], 'ImageProviderRequest' => [ 'type' => 'string', ], 'ImageProviderRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageProviderRequest', 'locationName' => 'item', ], ], 'ImageRecycleBinInfo' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'RecycleBinEnterTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'recycleBinEnterTime', ], 'RecycleBinExitTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'recycleBinExitTime', ], ], ], 'ImageRecycleBinInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageRecycleBinInfo', 'locationName' => 'item', ], ], 'ImageReference' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'ResourceType' => [ 'shape' => 'ImageReferenceResourceType', 'locationName' => 'resourceType', ], 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], ], ], 'ImageReferenceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageReference', 'locationName' => 'item', ], ], 'ImageReferenceOptionName' => [ 'type' => 'string', 'enum' => [ 'state-name', 'version-depth', ], ], 'ImageReferenceResourceType' => [ 'type' => 'string', 'enum' => [ 'ec2:Instance', 'ec2:LaunchTemplate', 'ssm:Parameter', 'imagebuilder:ImageRecipe', 'imagebuilder:ContainerRecipe', ], ], 'ImageState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'invalid', 'deregistered', 'transient', 'failed', 'error', 'disabled', ], ], 'ImageTypeValues' => [ 'type' => 'string', 'enum' => [ 'machine', 'kernel', 'ramdisk', ], ], 'ImageUefiDataRequest' => [ 'type' => 'string', 'max' => 64000, 'min' => 0, ], 'ImageUsageReport' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'ReportId' => [ 'shape' => 'ImageUsageReportId', 'locationName' => 'reportId', ], 'ResourceTypes' => [ 'shape' => 'ImageUsageResourceTypeList', 'locationName' => 'resourceTypeSet', ], 'AccountIds' => [ 'shape' => 'UserIdList', 'locationName' => 'accountIdSet', ], 'State' => [ 'shape' => 'ImageUsageReportState', 'locationName' => 'state', ], 'StateReason' => [ 'shape' => 'ImageUsageReportStateReason', 'locationName' => 'stateReason', ], 'CreationTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'creationTime', ], 'ExpirationTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'expirationTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ImageUsageReportEntry' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ImageUsageResourceTypeName', 'locationName' => 'resourceType', ], 'ReportId' => [ 'shape' => 'ImageUsageReportId', 'locationName' => 'reportId', ], 'UsageCount' => [ 'shape' => 'Long', 'locationName' => 'usageCount', ], 'AccountId' => [ 'shape' => 'String', 'locationName' => 'accountId', ], 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'ReportCreationTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'reportCreationTime', ], ], ], 'ImageUsageReportEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageUsageReportEntry', 'locationName' => 'item', ], ], 'ImageUsageReportId' => [ 'type' => 'string', ], 'ImageUsageReportIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageUsageReportId', ], 'max' => 200, 'min' => 0, ], 'ImageUsageReportList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageUsageReport', 'locationName' => 'item', ], ], 'ImageUsageReportState' => [ 'type' => 'string', ], 'ImageUsageReportStateReason' => [ 'type' => 'string', ], 'ImageUsageReportUserIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'UserId', ], 'max' => 200, 'min' => 0, ], 'ImageUsageResourceType' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ImageUsageResourceTypeName', 'locationName' => 'resourceType', ], 'ResourceTypeOptions' => [ 'shape' => 'ImageUsageResourceTypeOptionList', 'locationName' => 'resourceTypeOptionSet', ], ], ], 'ImageUsageResourceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageUsageResourceType', 'locationName' => 'item', ], ], 'ImageUsageResourceTypeName' => [ 'type' => 'string', ], 'ImageUsageResourceTypeOption' => [ 'type' => 'structure', 'members' => [ 'OptionName' => [ 'shape' => 'String', 'locationName' => 'optionName', ], 'OptionValues' => [ 'shape' => 'ImageUsageResourceTypeOptionValuesList', 'locationName' => 'optionValueSet', ], ], ], 'ImageUsageResourceTypeOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageUsageResourceTypeOption', 'locationName' => 'item', ], ], 'ImageUsageResourceTypeOptionRequest' => [ 'type' => 'structure', 'members' => [ 'OptionName' => [ 'shape' => 'String', ], 'OptionValues' => [ 'shape' => 'ImageUsageResourceTypeOptionValuesList', 'locationName' => 'OptionValue', ], ], ], 'ImageUsageResourceTypeOptionRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageUsageResourceTypeOptionRequest', ], ], 'ImageUsageResourceTypeOptionValue' => [ 'type' => 'string', ], 'ImageUsageResourceTypeOptionValuesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageUsageResourceTypeOptionValue', 'locationName' => 'item', ], ], 'ImageUsageResourceTypeRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ImageUsageResourceTypeName', ], 'ResourceTypeOptions' => [ 'shape' => 'ImageUsageResourceTypeOptionRequestList', 'locationName' => 'ResourceTypeOption', ], ], ], 'ImageUsageResourceTypeRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageUsageResourceTypeRequest', ], ], 'ImageWatermark' => [ 'type' => 'structure', 'members' => [ 'WatermarkKey' => [ 'shape' => 'String', 'locationName' => 'watermarkKey', ], 'SourceImageRegion' => [ 'shape' => 'String', 'locationName' => 'sourceImageRegion', ], 'SourceImageId' => [ 'shape' => 'String', 'locationName' => 'sourceImageId', ], 'SourceImageCreationTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'sourceImageCreationTime', ], 'WatermarkCreationTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'watermarkCreationTime', ], ], ], 'ImageWatermarkFilterRequest' => [ 'type' => 'structure', 'members' => [ 'WatermarkKey' => [ 'shape' => 'String', ], 'SourceImageRegion' => [ 'shape' => 'String', ], 'MaximumDaysSinceSourceImageCreated' => [ 'shape' => 'Integer', ], 'MaximumDaysSinceWatermarkCreated' => [ 'shape' => 'Integer', ], ], ], 'ImageWatermarkFilterRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageWatermarkFilterRequest', 'locationName' => 'item', ], ], 'ImageWatermarkFilterResponse' => [ 'type' => 'structure', 'members' => [ 'WatermarkKey' => [ 'shape' => 'String', 'locationName' => 'watermarkKey', ], 'SourceImageRegion' => [ 'shape' => 'String', 'locationName' => 'sourceImageRegion', ], 'MaximumDaysSinceSourceImageCreated' => [ 'shape' => 'Integer', 'locationName' => 'maximumDaysSinceSourceImageCreated', ], 'MaximumDaysSinceWatermarkCreated' => [ 'shape' => 'Integer', 'locationName' => 'maximumDaysSinceWatermarkCreated', ], ], ], 'ImageWatermarkFilterResponseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageWatermarkFilterResponse', 'locationName' => 'item', ], ], 'ImageWatermarkList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageWatermark', 'locationName' => 'item', ], ], 'ImageWatermarkNameRequest' => [ 'type' => 'string', 'max' => 128, 'min' => 3, ], 'ImdsSupportValues' => [ 'type' => 'string', 'enum' => [ 'v2.0', ], ], 'ImportClientVpnClientCertificateRevocationListRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'CertificateRevocationList', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'CertificateRevocationList' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ImportClientVpnClientCertificateRevocationListResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ImportImageLicenseConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', ], ], ], 'ImportImageLicenseConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', 'locationName' => 'licenseConfigurationArn', ], ], ], 'ImportImageLicenseSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportImageLicenseConfigurationRequest', 'locationName' => 'item', ], ], 'ImportImageLicenseSpecificationListResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportImageLicenseConfigurationResponse', 'locationName' => 'item', ], ], 'ImportImageRequest' => [ 'type' => 'structure', 'members' => [ 'Architecture' => [ 'shape' => 'String', ], 'ClientData' => [ 'shape' => 'ClientData', ], 'ClientToken' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'DiskContainers' => [ 'shape' => 'ImageDiskContainerList', 'locationName' => 'DiskContainer', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Encrypted' => [ 'shape' => 'Boolean', ], 'Hypervisor' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'LicenseType' => [ 'shape' => 'String', ], 'Platform' => [ 'shape' => 'String', ], 'RoleName' => [ 'shape' => 'String', ], 'LicenseSpecifications' => [ 'shape' => 'ImportImageLicenseSpecificationListRequest', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'UsageOperation' => [ 'shape' => 'String', ], 'BootMode' => [ 'shape' => 'BootModeValues', ], ], ], 'ImportImageResult' => [ 'type' => 'structure', 'members' => [ 'Architecture' => [ 'shape' => 'String', 'locationName' => 'architecture', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'Hypervisor' => [ 'shape' => 'String', 'locationName' => 'hypervisor', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'ImportTaskId' => [ 'shape' => 'ImportImageTaskId', 'locationName' => 'importTaskId', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', 'locationName' => 'kmsKeyId', ], 'LicenseType' => [ 'shape' => 'String', 'locationName' => 'licenseType', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'SnapshotDetails' => [ 'shape' => 'SnapshotDetailList', 'locationName' => 'snapshotDetailSet', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'LicenseSpecifications' => [ 'shape' => 'ImportImageLicenseSpecificationListResponse', 'locationName' => 'licenseSpecifications', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'UsageOperation' => [ 'shape' => 'String', 'locationName' => 'usageOperation', ], ], ], 'ImportImageTask' => [ 'type' => 'structure', 'members' => [ 'Architecture' => [ 'shape' => 'String', 'locationName' => 'architecture', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'Hypervisor' => [ 'shape' => 'String', 'locationName' => 'hypervisor', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'ImportTaskId' => [ 'shape' => 'String', 'locationName' => 'importTaskId', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], 'LicenseType' => [ 'shape' => 'String', 'locationName' => 'licenseType', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'SnapshotDetails' => [ 'shape' => 'SnapshotDetailList', 'locationName' => 'snapshotDetailSet', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'LicenseSpecifications' => [ 'shape' => 'ImportImageLicenseSpecificationListResponse', 'locationName' => 'licenseSpecifications', ], 'UsageOperation' => [ 'shape' => 'String', 'locationName' => 'usageOperation', ], 'BootMode' => [ 'shape' => 'BootModeValues', 'locationName' => 'bootMode', ], ], ], 'ImportImageTaskId' => [ 'type' => 'string', ], 'ImportImageTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportImageTask', 'locationName' => 'item', ], ], 'ImportInstanceLaunchSpecification' => [ 'type' => 'structure', 'members' => [ 'Architecture' => [ 'shape' => 'ArchitectureValues', 'locationName' => 'architecture', ], 'GroupNames' => [ 'shape' => 'SecurityGroupStringList', 'locationName' => 'GroupName', ], 'GroupIds' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'GroupId', ], 'AdditionalInfo' => [ 'shape' => 'String', 'locationName' => 'additionalInfo', ], 'UserData' => [ 'shape' => 'UserData', 'locationName' => 'userData', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'Placement' => [ 'shape' => 'Placement', 'locationName' => 'placement', ], 'Monitoring' => [ 'shape' => 'Boolean', 'locationName' => 'monitoring', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'ShutdownBehavior', 'locationName' => 'instanceInitiatedShutdownBehavior', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'ImportInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'Platform', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'LaunchSpecification' => [ 'shape' => 'ImportInstanceLaunchSpecification', 'locationName' => 'launchSpecification', ], 'DiskImages' => [ 'shape' => 'DiskImageList', 'locationName' => 'diskImage', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], ], ], 'ImportInstanceResult' => [ 'type' => 'structure', 'members' => [ 'ConversionTask' => [ 'shape' => 'ConversionTask', 'locationName' => 'conversionTask', ], ], ], 'ImportInstanceTaskDetails' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], 'Volumes' => [ 'shape' => 'ImportInstanceVolumeDetailSet', 'locationName' => 'volumes', ], ], ], 'ImportInstanceVolumeDetailItem' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'BytesConverted' => [ 'shape' => 'Long', 'locationName' => 'bytesConverted', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Image' => [ 'shape' => 'DiskImageDescription', 'locationName' => 'image', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Volume' => [ 'shape' => 'DiskImageVolumeDescription', 'locationName' => 'volume', ], ], ], 'ImportInstanceVolumeDetailSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportInstanceVolumeDetailItem', 'locationName' => 'item', ], ], 'ImportKeyPairRequest' => [ 'type' => 'structure', 'required' => [ 'KeyName', 'PublicKeyMaterial', ], 'members' => [ 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'PublicKeyMaterial' => [ 'shape' => 'Blob', 'locationName' => 'publicKeyMaterial', ], ], ], 'ImportKeyPairResult' => [ 'type' => 'structure', 'members' => [ 'KeyFingerprint' => [ 'shape' => 'String', 'locationName' => 'keyFingerprint', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'KeyPairId' => [ 'shape' => 'String', 'locationName' => 'keyPairId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ImportManifestUrl' => [ 'type' => 'string', 'sensitive' => true, ], 'ImportSnapshotRequest' => [ 'type' => 'structure', 'members' => [ 'ClientData' => [ 'shape' => 'ClientData', ], 'ClientToken' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'DiskContainer' => [ 'shape' => 'SnapshotDiskContainer', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Encrypted' => [ 'shape' => 'Boolean', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'RoleName' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'ImportSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ImportTaskId' => [ 'shape' => 'String', 'locationName' => 'importTaskId', ], 'SnapshotTaskDetail' => [ 'shape' => 'SnapshotTaskDetail', 'locationName' => 'snapshotTaskDetail', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ImportSnapshotTask' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ImportTaskId' => [ 'shape' => 'String', 'locationName' => 'importTaskId', ], 'SnapshotTaskDetail' => [ 'shape' => 'SnapshotTaskDetail', 'locationName' => 'snapshotTaskDetail', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ImportSnapshotTaskId' => [ 'type' => 'string', ], 'ImportSnapshotTaskIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportSnapshotTaskId', 'locationName' => 'ImportTaskId', ], ], 'ImportSnapshotTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportSnapshotTask', 'locationName' => 'item', ], ], 'ImportTaskId' => [ 'type' => 'string', ], 'ImportTaskIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportImageTaskId', 'locationName' => 'ImportTaskId', ], ], 'ImportVolumeRequest' => [ 'type' => 'structure', 'required' => [ 'Image', 'Volume', ], 'members' => [ 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Image' => [ 'shape' => 'DiskImageDetail', 'locationName' => 'image', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Volume' => [ 'shape' => 'VolumeDetail', 'locationName' => 'volume', ], ], ], 'ImportVolumeResult' => [ 'type' => 'structure', 'members' => [ 'ConversionTask' => [ 'shape' => 'ConversionTask', 'locationName' => 'conversionTask', ], ], ], 'ImportVolumeTaskDetails' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'BytesConverted' => [ 'shape' => 'Long', 'locationName' => 'bytesConverted', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Image' => [ 'shape' => 'DiskImageDescription', 'locationName' => 'image', ], 'Volume' => [ 'shape' => 'DiskImageVolumeDescription', 'locationName' => 'volume', ], ], ], 'IncludeUnsupportedInRegion' => [ 'type' => 'boolean', ], 'InferenceAcceleratorInfo' => [ 'type' => 'structure', 'members' => [ 'Accelerators' => [ 'shape' => 'InferenceDeviceInfoList', 'locationName' => 'accelerators', ], 'TotalInferenceMemoryInMiB' => [ 'shape' => 'totalInferenceMemory', 'locationName' => 'totalInferenceMemoryInMiB', ], ], ], 'InferenceDeviceCount' => [ 'type' => 'integer', ], 'InferenceDeviceInfo' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => 'InferenceDeviceCount', 'locationName' => 'count', ], 'Name' => [ 'shape' => 'InferenceDeviceName', 'locationName' => 'name', ], 'Manufacturer' => [ 'shape' => 'InferenceDeviceManufacturerName', 'locationName' => 'manufacturer', ], 'MemoryInfo' => [ 'shape' => 'InferenceDeviceMemoryInfo', 'locationName' => 'memoryInfo', ], ], ], 'InferenceDeviceInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InferenceDeviceInfo', ], 'locationName' => 'item', ], 'InferenceDeviceManufacturerName' => [ 'type' => 'string', ], 'InferenceDeviceMemoryInfo' => [ 'type' => 'structure', 'members' => [ 'SizeInMiB' => [ 'shape' => 'InferenceDeviceMemorySize', 'locationName' => 'sizeInMiB', ], ], ], 'InferenceDeviceMemorySize' => [ 'type' => 'integer', ], 'InferenceDeviceName' => [ 'type' => 'string', ], 'IngestionStatus' => [ 'type' => 'string', 'enum' => [ 'initial-ingestion-in-progress', 'ingestion-complete', 'ingestion-failed', ], ], 'InitializationStatusDetails' => [ 'type' => 'structure', 'members' => [ 'InitializationType' => [ 'shape' => 'InitializationType', 'locationName' => 'initializationType', ], 'Progress' => [ 'shape' => 'Long', 'locationName' => 'progress', ], 'EstimatedTimeToCompleteInSeconds' => [ 'shape' => 'Long', 'locationName' => 'estimatedTimeToCompleteInSeconds', ], ], ], 'InitializationType' => [ 'type' => 'string', 'enum' => [ 'default', 'provisioned-rate', 'volume-copy', ], ], 'InsideCidrBlocksStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'Instance' => [ 'type' => 'structure', 'members' => [ 'Architecture' => [ 'shape' => 'ArchitectureValues', 'locationName' => 'architecture', ], 'BlockDeviceMappings' => [ 'shape' => 'InstanceBlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'EnaSupport' => [ 'shape' => 'Boolean', 'locationName' => 'enaSupport', ], 'Hypervisor' => [ 'shape' => 'HypervisorType', 'locationName' => 'hypervisor', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfile', 'locationName' => 'iamInstanceProfile', ], 'InstanceLifecycle' => [ 'shape' => 'InstanceLifecycleType', 'locationName' => 'instanceLifecycle', ], 'ElasticGpuAssociations' => [ 'shape' => 'ElasticGpuAssociationList', 'locationName' => 'elasticGpuAssociationSet', ], 'ElasticInferenceAcceleratorAssociations' => [ 'shape' => 'ElasticInferenceAcceleratorAssociationList', 'locationName' => 'elasticInferenceAcceleratorAssociationSet', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceList', 'locationName' => 'networkInterfaceSet', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'RootDeviceName' => [ 'shape' => 'String', 'locationName' => 'rootDeviceName', ], 'RootDeviceType' => [ 'shape' => 'DeviceType', 'locationName' => 'rootDeviceType', ], 'SecurityGroups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'SourceDestCheck' => [ 'shape' => 'Boolean', 'locationName' => 'sourceDestCheck', ], 'SpotInstanceRequestId' => [ 'shape' => 'String', 'locationName' => 'spotInstanceRequestId', ], 'SriovNetSupport' => [ 'shape' => 'String', 'locationName' => 'sriovNetSupport', ], 'StateReason' => [ 'shape' => 'StateReason', 'locationName' => 'stateReason', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VirtualizationType' => [ 'shape' => 'VirtualizationType', 'locationName' => 'virtualizationType', ], 'CpuOptions' => [ 'shape' => 'CpuOptions', 'locationName' => 'cpuOptions', ], 'CapacityBlockId' => [ 'shape' => 'String', 'locationName' => 'capacityBlockId', ], 'CapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationId', ], 'CapacityReservationSpecification' => [ 'shape' => 'CapacityReservationSpecificationResponse', 'locationName' => 'capacityReservationSpecification', ], 'HibernationOptions' => [ 'shape' => 'HibernationOptions', 'locationName' => 'hibernationOptions', ], 'Licenses' => [ 'shape' => 'LicenseList', 'locationName' => 'licenseSet', ], 'MetadataOptions' => [ 'shape' => 'InstanceMetadataOptionsResponse', 'locationName' => 'metadataOptions', ], 'EnclaveOptions' => [ 'shape' => 'EnclaveOptions', 'locationName' => 'enclaveOptions', ], 'BootMode' => [ 'shape' => 'BootModeValues', 'locationName' => 'bootMode', ], 'PlatformDetails' => [ 'shape' => 'String', 'locationName' => 'platformDetails', ], 'UsageOperation' => [ 'shape' => 'String', 'locationName' => 'usageOperation', ], 'UsageOperationUpdateTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'usageOperationUpdateTime', ], 'PrivateDnsNameOptions' => [ 'shape' => 'PrivateDnsNameOptionsResponse', 'locationName' => 'privateDnsNameOptions', ], 'Ipv6Address' => [ 'shape' => 'String', 'locationName' => 'ipv6Address', ], 'TpmSupport' => [ 'shape' => 'String', 'locationName' => 'tpmSupport', ], 'MaintenanceOptions' => [ 'shape' => 'InstanceMaintenanceOptions', 'locationName' => 'maintenanceOptions', ], 'CurrentInstanceBootMode' => [ 'shape' => 'InstanceBootModeValues', 'locationName' => 'currentInstanceBootMode', ], 'NetworkPerformanceOptions' => [ 'shape' => 'InstanceNetworkPerformanceOptions', 'locationName' => 'networkPerformanceOptions', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], 'SecondaryInterfaces' => [ 'shape' => 'InstanceSecondaryInterfaceList', 'locationName' => 'secondaryInterfaceSet', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'State' => [ 'shape' => 'InstanceState', 'locationName' => 'instanceState', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PublicDnsName' => [ 'shape' => 'String', 'locationName' => 'dnsName', ], 'StateTransitionReason' => [ 'shape' => 'String', 'locationName' => 'reason', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'AmiLaunchIndex' => [ 'shape' => 'Integer', 'locationName' => 'amiLaunchIndex', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'LaunchTime' => [ 'shape' => 'DateTime', 'locationName' => 'launchTime', ], 'Placement' => [ 'shape' => 'Placement', 'locationName' => 'placement', ], 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'RamdiskId' => [ 'shape' => 'String', 'locationName' => 'ramdiskId', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], 'Monitoring' => [ 'shape' => 'Monitoring', 'locationName' => 'monitoring', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'PublicIpAddress' => [ 'shape' => 'String', 'locationName' => 'ipAddress', ], ], ], 'InstanceAttachmentEnaSrdSpecification' => [ 'type' => 'structure', 'members' => [ 'EnaSrdEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'enaSrdEnabled', ], 'EnaSrdUdpSpecification' => [ 'shape' => 'InstanceAttachmentEnaSrdUdpSpecification', 'locationName' => 'enaSrdUdpSpecification', ], ], ], 'InstanceAttachmentEnaSrdUdpSpecification' => [ 'type' => 'structure', 'members' => [ 'EnaSrdUdpEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'enaSrdUdpEnabled', ], ], ], 'InstanceAttribute' => [ 'type' => 'structure', 'members' => [ 'BlockDeviceMappings' => [ 'shape' => 'InstanceBlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'DisableApiTermination' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'disableApiTermination', ], 'EnaSupport' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enaSupport', ], 'EnclaveOptions' => [ 'shape' => 'EnclaveOptions', 'locationName' => 'enclaveOptions', ], 'EbsOptimized' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'ebsOptimized', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'AttributeValue', 'locationName' => 'instanceInitiatedShutdownBehavior', ], 'InstanceType' => [ 'shape' => 'AttributeValue', 'locationName' => 'instanceType', ], 'KernelId' => [ 'shape' => 'AttributeValue', 'locationName' => 'kernel', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'RamdiskId' => [ 'shape' => 'AttributeValue', 'locationName' => 'ramdisk', ], 'RootDeviceName' => [ 'shape' => 'AttributeValue', 'locationName' => 'rootDeviceName', ], 'SourceDestCheck' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'sourceDestCheck', ], 'SriovNetSupport' => [ 'shape' => 'AttributeValue', 'locationName' => 'sriovNetSupport', ], 'UserData' => [ 'shape' => 'AttributeValue', 'locationName' => 'userData', ], 'DisableApiStop' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'disableApiStop', ], 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], ], ], 'InstanceAttributeName' => [ 'type' => 'string', 'enum' => [ 'instanceType', 'kernel', 'ramdisk', 'userData', 'disableApiTermination', 'instanceInitiatedShutdownBehavior', 'rootDeviceName', 'blockDeviceMapping', 'productCodes', 'sourceDestCheck', 'groupSet', 'ebsOptimized', 'sriovNetSupport', 'enaSupport', 'enclaveOptions', 'disableApiStop', ], ], 'InstanceAutoRecoveryState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'default', ], ], 'InstanceBandwidthWeighting' => [ 'type' => 'string', 'enum' => [ 'default', 'vpc-1', 'ebs-1', ], ], 'InstanceBlockDeviceMapping' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'Ebs' => [ 'shape' => 'EbsInstanceBlockDevice', 'locationName' => 'ebs', ], ], ], 'InstanceBlockDeviceMappingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceBlockDeviceMapping', 'locationName' => 'item', ], ], 'InstanceBlockDeviceMappingSpecification' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'Ebs' => [ 'shape' => 'EbsInstanceBlockDeviceSpecification', 'locationName' => 'ebs', ], 'VirtualName' => [ 'shape' => 'String', 'locationName' => 'virtualName', ], 'NoDevice' => [ 'shape' => 'String', 'locationName' => 'noDevice', ], ], ], 'InstanceBlockDeviceMappingSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceBlockDeviceMappingSpecification', 'locationName' => 'item', ], ], 'InstanceBootModeValues' => [ 'type' => 'string', 'enum' => [ 'legacy-bios', 'uefi', ], ], 'InstanceCapacity' => [ 'type' => 'structure', 'members' => [ 'AvailableCapacity' => [ 'shape' => 'Integer', 'locationName' => 'availableCapacity', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'TotalCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalCapacity', ], ], ], 'InstanceConnectEndpointDnsNames' => [ 'type' => 'structure', 'members' => [ 'DnsName' => [ 'shape' => 'String', 'locationName' => 'dnsName', ], 'FipsDnsName' => [ 'shape' => 'String', 'locationName' => 'fipsDnsName', ], ], ], 'InstanceConnectEndpointId' => [ 'type' => 'string', ], 'InstanceConnectEndpointMaxResults' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'InstanceConnectEndpointPublicDnsNames' => [ 'type' => 'structure', 'members' => [ 'Ipv4' => [ 'shape' => 'InstanceConnectEndpointDnsNames', 'locationName' => 'ipv4', ], 'Dualstack' => [ 'shape' => 'InstanceConnectEndpointDnsNames', 'locationName' => 'dualstack', ], ], ], 'InstanceConnectEndpointSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ec2InstanceConnectEndpoint', 'locationName' => 'item', ], ], 'InstanceCount' => [ 'type' => 'structure', 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'State' => [ 'shape' => 'ListingState', 'locationName' => 'state', ], ], ], 'InstanceCountList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceCount', 'locationName' => 'item', ], ], 'InstanceCreditSpecification' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'CpuCredits' => [ 'shape' => 'String', 'locationName' => 'cpuCredits', ], ], ], 'InstanceCreditSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceCreditSpecification', 'locationName' => 'item', ], ], 'InstanceCreditSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceCreditSpecificationRequest', 'locationName' => 'item', ], ], 'InstanceCreditSpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'CpuCredits' => [ 'shape' => 'String', ], ], ], 'InstanceEventId' => [ 'type' => 'string', ], 'InstanceEventWindow' => [ 'type' => 'structure', 'members' => [ 'InstanceEventWindowId' => [ 'shape' => 'InstanceEventWindowId', 'locationName' => 'instanceEventWindowId', ], 'TimeRanges' => [ 'shape' => 'InstanceEventWindowTimeRangeList', 'locationName' => 'timeRangeSet', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'CronExpression' => [ 'shape' => 'InstanceEventWindowCronExpression', 'locationName' => 'cronExpression', ], 'AssociationTarget' => [ 'shape' => 'InstanceEventWindowAssociationTarget', 'locationName' => 'associationTarget', ], 'State' => [ 'shape' => 'InstanceEventWindowState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'InstanceEventWindowAssociationRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdList', 'locationName' => 'InstanceId', ], 'InstanceTags' => [ 'shape' => 'TagList', 'locationName' => 'InstanceTag', ], 'DedicatedHostIds' => [ 'shape' => 'DedicatedHostIdList', 'locationName' => 'DedicatedHostId', ], ], ], 'InstanceEventWindowAssociationTarget' => [ 'type' => 'structure', 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdList', 'locationName' => 'instanceIdSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'DedicatedHostIds' => [ 'shape' => 'DedicatedHostIdList', 'locationName' => 'dedicatedHostIdSet', ], ], ], 'InstanceEventWindowCronExpression' => [ 'type' => 'string', ], 'InstanceEventWindowDisassociationRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdList', 'locationName' => 'InstanceId', ], 'InstanceTags' => [ 'shape' => 'TagList', 'locationName' => 'InstanceTag', ], 'DedicatedHostIds' => [ 'shape' => 'DedicatedHostIdList', 'locationName' => 'DedicatedHostId', ], ], ], 'InstanceEventWindowId' => [ 'type' => 'string', ], 'InstanceEventWindowIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceEventWindowId', 'locationName' => 'InstanceEventWindowId', ], ], 'InstanceEventWindowSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceEventWindow', 'locationName' => 'item', ], ], 'InstanceEventWindowState' => [ 'type' => 'string', 'enum' => [ 'creating', 'deleting', 'active', 'deleted', ], ], 'InstanceEventWindowStateChange' => [ 'type' => 'structure', 'members' => [ 'InstanceEventWindowId' => [ 'shape' => 'InstanceEventWindowId', 'locationName' => 'instanceEventWindowId', ], 'State' => [ 'shape' => 'InstanceEventWindowState', 'locationName' => 'state', ], ], ], 'InstanceEventWindowTimeRange' => [ 'type' => 'structure', 'members' => [ 'StartWeekDay' => [ 'shape' => 'WeekDay', 'locationName' => 'startWeekDay', ], 'StartHour' => [ 'shape' => 'Hour', 'locationName' => 'startHour', ], 'EndWeekDay' => [ 'shape' => 'WeekDay', 'locationName' => 'endWeekDay', ], 'EndHour' => [ 'shape' => 'Hour', 'locationName' => 'endHour', ], ], ], 'InstanceEventWindowTimeRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceEventWindowTimeRange', 'locationName' => 'item', ], ], 'InstanceEventWindowTimeRangeRequest' => [ 'type' => 'structure', 'members' => [ 'StartWeekDay' => [ 'shape' => 'WeekDay', ], 'StartHour' => [ 'shape' => 'Hour', ], 'EndWeekDay' => [ 'shape' => 'WeekDay', ], 'EndHour' => [ 'shape' => 'Hour', ], ], ], 'InstanceEventWindowTimeRangeRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceEventWindowTimeRangeRequest', ], ], 'InstanceExportDetails' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'TargetEnvironment' => [ 'shape' => 'ExportEnvironment', 'locationName' => 'targetEnvironment', ], ], ], 'InstanceFamilyCreditSpecification' => [ 'type' => 'structure', 'members' => [ 'InstanceFamily' => [ 'shape' => 'UnlimitedSupportedInstanceFamily', 'locationName' => 'instanceFamily', ], 'CpuCredits' => [ 'shape' => 'String', 'locationName' => 'cpuCredits', ], ], ], 'InstanceGeneration' => [ 'type' => 'string', 'enum' => [ 'current', 'previous', ], ], 'InstanceGenerationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceGeneration', 'locationName' => 'item', ], ], 'InstanceHealthStatus' => [ 'type' => 'string', 'enum' => [ 'healthy', 'unhealthy', ], ], 'InstanceId' => [ 'type' => 'string', ], 'InstanceIdForResolver' => [ 'type' => 'string', ], 'InstanceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', 'locationName' => 'item', ], ], 'InstanceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', 'locationName' => 'item', ], ], 'InstanceIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', 'locationName' => 'InstanceId', ], ], 'InstanceIdUpdateStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', 'locationName' => 'item', ], 'max' => 30, 'min' => 1, ], 'InstanceIdWithVolumeResolver' => [ 'type' => 'string', ], 'InstanceIdsSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', 'locationName' => 'item', ], ], 'InstanceImageMetadata' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'LaunchTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'launchTime', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'ZoneId' => [ 'shape' => 'String', 'locationName' => 'zoneId', ], 'State' => [ 'shape' => 'InstanceState', 'locationName' => 'instanceState', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'instanceOwnerId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'ImageMetadata' => [ 'shape' => 'ImageMetadata', 'locationName' => 'imageMetadata', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], ], ], 'InstanceImageMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceImageMetadata', 'locationName' => 'item', ], ], 'InstanceInterruptionBehavior' => [ 'type' => 'string', 'enum' => [ 'hibernate', 'stop', 'terminate', ], ], 'InstanceIpv4Prefix' => [ 'type' => 'structure', 'members' => [ 'Ipv4Prefix' => [ 'shape' => 'String', 'locationName' => 'ipv4Prefix', ], ], ], 'InstanceIpv4PrefixList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceIpv4Prefix', 'locationName' => 'item', ], ], 'InstanceIpv6Address' => [ 'type' => 'structure', 'members' => [ 'Ipv6Address' => [ 'shape' => 'String', 'locationName' => 'ipv6Address', ], 'IsPrimaryIpv6' => [ 'shape' => 'Boolean', 'locationName' => 'isPrimaryIpv6', ], ], ], 'InstanceIpv6AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceIpv6Address', 'locationName' => 'item', ], ], 'InstanceIpv6AddressListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceIpv6AddressRequest', 'locationName' => 'InstanceIpv6Address', ], ], 'InstanceIpv6AddressRequest' => [ 'type' => 'structure', 'members' => [ 'Ipv6Address' => [ 'shape' => 'String', ], ], ], 'InstanceIpv6Prefix' => [ 'type' => 'structure', 'members' => [ 'Ipv6Prefix' => [ 'shape' => 'String', 'locationName' => 'ipv6Prefix', ], ], ], 'InstanceIpv6PrefixList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceIpv6Prefix', 'locationName' => 'item', ], ], 'InstanceLifecycle' => [ 'type' => 'string', 'enum' => [ 'spot', 'on-demand', 'interruptible-capacity-reservation', ], ], 'InstanceLifecycleType' => [ 'type' => 'string', 'enum' => [ 'spot', 'scheduled', 'capacity-block', 'interruptible-capacity-reservation', ], ], 'InstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Instance', 'locationName' => 'item', ], ], 'InstanceMaintenanceOptions' => [ 'type' => 'structure', 'members' => [ 'AutoRecovery' => [ 'shape' => 'InstanceAutoRecoveryState', 'locationName' => 'autoRecovery', ], 'RebootMigration' => [ 'shape' => 'InstanceRebootMigrationState', 'locationName' => 'rebootMigration', ], ], ], 'InstanceMaintenanceOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AutoRecovery' => [ 'shape' => 'InstanceAutoRecoveryState', ], ], ], 'InstanceMarketOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'MarketType' => [ 'shape' => 'MarketType', ], 'SpotOptions' => [ 'shape' => 'SpotMarketOptions', ], ], ], 'InstanceMatchCriteria' => [ 'type' => 'string', 'enum' => [ 'open', 'targeted', ], ], 'InstanceMetadataDefaultsResponse' => [ 'type' => 'structure', 'members' => [ 'HttpTokens' => [ 'shape' => 'HttpTokensState', 'locationName' => 'httpTokens', ], 'HttpPutResponseHopLimit' => [ 'shape' => 'BoxedInteger', 'locationName' => 'httpPutResponseHopLimit', ], 'HttpEndpoint' => [ 'shape' => 'InstanceMetadataEndpointState', 'locationName' => 'httpEndpoint', ], 'InstanceMetadataTags' => [ 'shape' => 'InstanceMetadataTagsState', 'locationName' => 'instanceMetadataTags', ], 'ManagedBy' => [ 'shape' => 'ManagedBy', 'locationName' => 'managedBy', ], 'ManagedExceptionMessage' => [ 'shape' => 'String', 'locationName' => 'managedExceptionMessage', ], 'HttpTokensEnforced' => [ 'shape' => 'HttpTokensEnforcedState', 'locationName' => 'httpTokensEnforced', ], ], ], 'InstanceMetadataEndpointState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', ], ], 'InstanceMetadataOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'HttpTokens' => [ 'shape' => 'HttpTokensState', ], 'HttpPutResponseHopLimit' => [ 'shape' => 'Integer', ], 'HttpEndpoint' => [ 'shape' => 'InstanceMetadataEndpointState', ], 'HttpProtocolIpv6' => [ 'shape' => 'InstanceMetadataProtocolState', ], 'InstanceMetadataTags' => [ 'shape' => 'InstanceMetadataTagsState', ], ], ], 'InstanceMetadataOptionsResponse' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'InstanceMetadataOptionsState', 'locationName' => 'state', ], 'HttpTokens' => [ 'shape' => 'HttpTokensState', 'locationName' => 'httpTokens', ], 'HttpPutResponseHopLimit' => [ 'shape' => 'Integer', 'locationName' => 'httpPutResponseHopLimit', ], 'HttpEndpoint' => [ 'shape' => 'InstanceMetadataEndpointState', 'locationName' => 'httpEndpoint', ], 'HttpProtocolIpv6' => [ 'shape' => 'InstanceMetadataProtocolState', 'locationName' => 'httpProtocolIpv6', ], 'InstanceMetadataTags' => [ 'shape' => 'InstanceMetadataTagsState', 'locationName' => 'instanceMetadataTags', ], ], ], 'InstanceMetadataOptionsState' => [ 'type' => 'string', 'enum' => [ 'pending', 'applied', ], ], 'InstanceMetadataProtocolState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', ], ], 'InstanceMetadataTagsState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', ], ], 'InstanceMonitoring' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Monitoring' => [ 'shape' => 'Monitoring', 'locationName' => 'monitoring', ], ], ], 'InstanceMonitoringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceMonitoring', 'locationName' => 'item', ], ], 'InstanceNetworkInterface' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'InstanceNetworkInterfaceAssociation', 'locationName' => 'association', ], 'Attachment' => [ 'shape' => 'InstanceNetworkInterfaceAttachment', 'locationName' => 'attachment', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressList', 'locationName' => 'ipv6AddressesSet', ], 'MacAddress' => [ 'shape' => 'String', 'locationName' => 'macAddress', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'PrivateIpAddresses' => [ 'shape' => 'InstancePrivateIpAddressList', 'locationName' => 'privateIpAddressesSet', ], 'SourceDestCheck' => [ 'shape' => 'Boolean', 'locationName' => 'sourceDestCheck', ], 'Status' => [ 'shape' => 'NetworkInterfaceStatus', 'locationName' => 'status', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'InterfaceType' => [ 'shape' => 'String', 'locationName' => 'interfaceType', ], 'Ipv4Prefixes' => [ 'shape' => 'InstanceIpv4PrefixList', 'locationName' => 'ipv4PrefixSet', ], 'Ipv6Prefixes' => [ 'shape' => 'InstanceIpv6PrefixList', 'locationName' => 'ipv6PrefixSet', ], 'ConnectionTrackingConfiguration' => [ 'shape' => 'ConnectionTrackingSpecificationResponse', 'locationName' => 'connectionTrackingConfiguration', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], ], ], 'InstanceNetworkInterfaceAssociation' => [ 'type' => 'structure', 'members' => [ 'CarrierIp' => [ 'shape' => 'String', 'locationName' => 'carrierIp', ], 'CustomerOwnedIp' => [ 'shape' => 'String', 'locationName' => 'customerOwnedIp', ], 'IpOwnerId' => [ 'shape' => 'String', 'locationName' => 'ipOwnerId', ], 'PublicDnsName' => [ 'shape' => 'String', 'locationName' => 'publicDnsName', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], ], ], 'InstanceNetworkInterfaceAttachment' => [ 'type' => 'structure', 'members' => [ 'AttachTime' => [ 'shape' => 'DateTime', 'locationName' => 'attachTime', ], 'AttachmentId' => [ 'shape' => 'String', 'locationName' => 'attachmentId', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'Status' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'status', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'networkCardIndex', ], 'EnaSrdSpecification' => [ 'shape' => 'InstanceAttachmentEnaSrdSpecification', 'locationName' => 'enaSrdSpecification', ], 'EnaQueueCount' => [ 'shape' => 'Integer', 'locationName' => 'enaQueueCount', ], ], ], 'InstanceNetworkInterfaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceNetworkInterface', 'locationName' => 'item', ], ], 'InstanceNetworkInterfaceSpecification' => [ 'type' => 'structure', 'members' => [ 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', 'locationName' => 'associatePublicIpAddress', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'Groups' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', 'locationName' => 'ipv6AddressCount', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressList', 'locationName' => 'ipv6AddressesSet', 'queryName' => 'Ipv6Addresses', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressSpecificationList', 'locationName' => 'privateIpAddressesSet', 'queryName' => 'PrivateIpAddresses', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'secondaryPrivateIpAddressCount', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'AssociateCarrierIpAddress' => [ 'shape' => 'Boolean', ], 'InterfaceType' => [ 'shape' => 'String', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', ], 'Ipv4Prefixes' => [ 'shape' => 'Ipv4PrefixList', 'locationName' => 'Ipv4Prefix', ], 'Ipv4PrefixCount' => [ 'shape' => 'Integer', ], 'Ipv6Prefixes' => [ 'shape' => 'Ipv6PrefixList', 'locationName' => 'Ipv6Prefix', ], 'Ipv6PrefixCount' => [ 'shape' => 'Integer', ], 'PrimaryIpv6' => [ 'shape' => 'Boolean', ], 'EnaSrdSpecification' => [ 'shape' => 'EnaSrdSpecificationRequest', ], 'ConnectionTrackingSpecification' => [ 'shape' => 'ConnectionTrackingSpecificationRequest', ], 'EnaQueueCount' => [ 'shape' => 'Integer', ], ], ], 'InstanceNetworkInterfaceSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceNetworkInterfaceSpecification', 'locationName' => 'item', ], ], 'InstanceNetworkPerformanceOptions' => [ 'type' => 'structure', 'members' => [ 'BandwidthWeighting' => [ 'shape' => 'InstanceBandwidthWeighting', 'locationName' => 'bandwidthWeighting', ], ], ], 'InstanceNetworkPerformanceOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'BandwidthWeighting' => [ 'shape' => 'InstanceBandwidthWeighting', ], ], ], 'InstancePrivateIpAddress' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'InstanceNetworkInterfaceAssociation', 'locationName' => 'association', ], 'Primary' => [ 'shape' => 'Boolean', 'locationName' => 'primary', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'InstancePrivateIpAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstancePrivateIpAddress', 'locationName' => 'item', ], ], 'InstanceRebootMigrationState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'default', ], ], 'InstanceRequirements' => [ 'type' => 'structure', 'members' => [ 'VCpuCount' => [ 'shape' => 'VCpuCountRange', 'locationName' => 'vCpuCount', ], 'MemoryMiB' => [ 'shape' => 'MemoryMiB', 'locationName' => 'memoryMiB', ], 'CpuManufacturers' => [ 'shape' => 'CpuManufacturerSet', 'locationName' => 'cpuManufacturerSet', ], 'MemoryGiBPerVCpu' => [ 'shape' => 'MemoryGiBPerVCpu', 'locationName' => 'memoryGiBPerVCpu', ], 'ExcludedInstanceTypes' => [ 'shape' => 'ExcludedInstanceTypeSet', 'locationName' => 'excludedInstanceTypeSet', ], 'InstanceGenerations' => [ 'shape' => 'InstanceGenerationSet', 'locationName' => 'instanceGenerationSet', ], 'SpotMaxPricePercentageOverLowestPrice' => [ 'shape' => 'Integer', 'locationName' => 'spotMaxPricePercentageOverLowestPrice', ], 'OnDemandMaxPricePercentageOverLowestPrice' => [ 'shape' => 'Integer', 'locationName' => 'onDemandMaxPricePercentageOverLowestPrice', ], 'BareMetal' => [ 'shape' => 'BareMetal', 'locationName' => 'bareMetal', ], 'BurstablePerformance' => [ 'shape' => 'BurstablePerformance', 'locationName' => 'burstablePerformance', ], 'RequireHibernateSupport' => [ 'shape' => 'Boolean', 'locationName' => 'requireHibernateSupport', ], 'NetworkInterfaceCount' => [ 'shape' => 'NetworkInterfaceCount', 'locationName' => 'networkInterfaceCount', ], 'LocalStorage' => [ 'shape' => 'LocalStorage', 'locationName' => 'localStorage', ], 'LocalStorageTypes' => [ 'shape' => 'LocalStorageTypeSet', 'locationName' => 'localStorageTypeSet', ], 'TotalLocalStorageGB' => [ 'shape' => 'TotalLocalStorageGB', 'locationName' => 'totalLocalStorageGB', ], 'BaselineEbsBandwidthMbps' => [ 'shape' => 'BaselineEbsBandwidthMbps', 'locationName' => 'baselineEbsBandwidthMbps', ], 'AcceleratorTypes' => [ 'shape' => 'AcceleratorTypeSet', 'locationName' => 'acceleratorTypeSet', ], 'AcceleratorCount' => [ 'shape' => 'AcceleratorCount', 'locationName' => 'acceleratorCount', ], 'AcceleratorManufacturers' => [ 'shape' => 'AcceleratorManufacturerSet', 'locationName' => 'acceleratorManufacturerSet', ], 'AcceleratorNames' => [ 'shape' => 'AcceleratorNameSet', 'locationName' => 'acceleratorNameSet', ], 'AcceleratorTotalMemoryMiB' => [ 'shape' => 'AcceleratorTotalMemoryMiB', 'locationName' => 'acceleratorTotalMemoryMiB', ], 'NetworkBandwidthGbps' => [ 'shape' => 'NetworkBandwidthGbps', 'locationName' => 'networkBandwidthGbps', ], 'AllowedInstanceTypes' => [ 'shape' => 'AllowedInstanceTypeSet', 'locationName' => 'allowedInstanceTypeSet', ], 'MaxSpotPriceAsPercentageOfOptimalOnDemandPrice' => [ 'shape' => 'Integer', 'locationName' => 'maxSpotPriceAsPercentageOfOptimalOnDemandPrice', ], 'BaselinePerformanceFactors' => [ 'shape' => 'BaselinePerformanceFactors', 'locationName' => 'baselinePerformanceFactors', ], 'RequireEncryptionInTransit' => [ 'shape' => 'Boolean', 'locationName' => 'requireEncryptionInTransit', ], ], ], 'InstanceRequirementsRequest' => [ 'type' => 'structure', 'required' => [ 'VCpuCount', 'MemoryMiB', ], 'members' => [ 'VCpuCount' => [ 'shape' => 'VCpuCountRangeRequest', ], 'MemoryMiB' => [ 'shape' => 'MemoryMiBRequest', ], 'CpuManufacturers' => [ 'shape' => 'CpuManufacturerSet', 'locationName' => 'CpuManufacturer', ], 'MemoryGiBPerVCpu' => [ 'shape' => 'MemoryGiBPerVCpuRequest', ], 'ExcludedInstanceTypes' => [ 'shape' => 'ExcludedInstanceTypeSet', 'locationName' => 'ExcludedInstanceType', ], 'InstanceGenerations' => [ 'shape' => 'InstanceGenerationSet', 'locationName' => 'InstanceGeneration', ], 'SpotMaxPricePercentageOverLowestPrice' => [ 'shape' => 'Integer', ], 'OnDemandMaxPricePercentageOverLowestPrice' => [ 'shape' => 'Integer', ], 'BareMetal' => [ 'shape' => 'BareMetal', ], 'BurstablePerformance' => [ 'shape' => 'BurstablePerformance', ], 'RequireHibernateSupport' => [ 'shape' => 'Boolean', ], 'NetworkInterfaceCount' => [ 'shape' => 'NetworkInterfaceCountRequest', ], 'LocalStorage' => [ 'shape' => 'LocalStorage', ], 'LocalStorageTypes' => [ 'shape' => 'LocalStorageTypeSet', 'locationName' => 'LocalStorageType', ], 'TotalLocalStorageGB' => [ 'shape' => 'TotalLocalStorageGBRequest', ], 'BaselineEbsBandwidthMbps' => [ 'shape' => 'BaselineEbsBandwidthMbpsRequest', ], 'AcceleratorTypes' => [ 'shape' => 'AcceleratorTypeSet', 'locationName' => 'AcceleratorType', ], 'AcceleratorCount' => [ 'shape' => 'AcceleratorCountRequest', ], 'AcceleratorManufacturers' => [ 'shape' => 'AcceleratorManufacturerSet', 'locationName' => 'AcceleratorManufacturer', ], 'AcceleratorNames' => [ 'shape' => 'AcceleratorNameSet', 'locationName' => 'AcceleratorName', ], 'AcceleratorTotalMemoryMiB' => [ 'shape' => 'AcceleratorTotalMemoryMiBRequest', ], 'NetworkBandwidthGbps' => [ 'shape' => 'NetworkBandwidthGbpsRequest', ], 'AllowedInstanceTypes' => [ 'shape' => 'AllowedInstanceTypeSet', 'locationName' => 'AllowedInstanceType', ], 'MaxSpotPriceAsPercentageOfOptimalOnDemandPrice' => [ 'shape' => 'Integer', ], 'BaselinePerformanceFactors' => [ 'shape' => 'BaselinePerformanceFactorsRequest', ], 'RequireEncryptionInTransit' => [ 'shape' => 'Boolean', ], ], ], 'InstanceRequirementsWithMetadataRequest' => [ 'type' => 'structure', 'members' => [ 'ArchitectureTypes' => [ 'shape' => 'ArchitectureTypeSet', 'locationName' => 'ArchitectureType', ], 'VirtualizationTypes' => [ 'shape' => 'VirtualizationTypeSet', 'locationName' => 'VirtualizationType', ], 'InstanceRequirements' => [ 'shape' => 'InstanceRequirementsRequest', ], ], ], 'InstanceSecondaryInterface' => [ 'type' => 'structure', 'members' => [ 'Attachment' => [ 'shape' => 'InstanceSecondaryInterfaceAttachment', 'locationName' => 'attachment', ], 'MacAddress' => [ 'shape' => 'String', 'locationName' => 'macAddress', ], 'SecondaryInterfaceId' => [ 'shape' => 'SecondaryInterfaceId', 'locationName' => 'secondaryInterfaceId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PrivateIpAddresses' => [ 'shape' => 'InstanceSecondaryInterfacePrivateIpAddressList', 'locationName' => 'privateIpAddressSet', ], 'SourceDestCheck' => [ 'shape' => 'Boolean', 'locationName' => 'sourceDestCheck', ], 'Status' => [ 'shape' => 'SecondaryInterfaceStatus', 'locationName' => 'status', ], 'SecondarySubnetId' => [ 'shape' => 'SecondarySubnetId', 'locationName' => 'secondarySubnetId', ], 'SecondaryNetworkId' => [ 'shape' => 'SecondaryNetworkId', 'locationName' => 'secondaryNetworkId', ], 'InterfaceType' => [ 'shape' => 'SecondaryInterfaceType', 'locationName' => 'interfaceType', ], ], ], 'InstanceSecondaryInterfaceAttachment' => [ 'type' => 'structure', 'members' => [ 'AttachTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'attachTime', ], 'AttachmentId' => [ 'shape' => 'String', 'locationName' => 'attachmentId', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'Status' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'status', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'networkCardIndex', ], ], ], 'InstanceSecondaryInterfaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceSecondaryInterface', 'locationName' => 'item', ], ], 'InstanceSecondaryInterfacePrivateIpAddress' => [ 'type' => 'structure', 'members' => [ 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'InstanceSecondaryInterfacePrivateIpAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceSecondaryInterfacePrivateIpAddress', 'locationName' => 'item', ], ], 'InstanceSecondaryInterfacePrivateIpAddressListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceSecondaryInterfacePrivateIpAddressRequest', 'locationName' => 'item', ], ], 'InstanceSecondaryInterfacePrivateIpAddressRequest' => [ 'type' => 'structure', 'required' => [ 'PrivateIpAddress', ], 'members' => [ 'PrivateIpAddress' => [ 'shape' => 'String', ], ], ], 'InstanceSecondaryInterfaceSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceSecondaryInterfaceSpecificationRequest', 'locationName' => 'item', ], ], 'InstanceSecondaryInterfaceSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'DeviceIndex' => [ 'shape' => 'Integer', ], 'PrivateIpAddresses' => [ 'shape' => 'InstanceSecondaryInterfacePrivateIpAddressListRequest', 'locationName' => 'PrivateIpAddress', ], 'PrivateIpAddressCount' => [ 'shape' => 'Integer', ], 'SecondarySubnetId' => [ 'shape' => 'SecondarySubnetId', ], 'InterfaceType' => [ 'shape' => 'SecondaryInterfaceType', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', ], ], ], 'InstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceTopology', 'locationName' => 'item', ], ], 'InstanceSpecification' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceIdWithVolumeResolver', ], 'ExcludeBootVolume' => [ 'shape' => 'Boolean', ], 'ExcludeDataVolumeIds' => [ 'shape' => 'VolumeIdStringList', 'locationName' => 'ExcludeDataVolumeId', ], ], ], 'InstanceState' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'Integer', 'locationName' => 'code', ], 'Name' => [ 'shape' => 'InstanceStateName', 'locationName' => 'name', ], ], ], 'InstanceStateChange' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'CurrentState' => [ 'shape' => 'InstanceState', 'locationName' => 'currentState', ], 'PreviousState' => [ 'shape' => 'InstanceState', 'locationName' => 'previousState', ], ], ], 'InstanceStateChangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceStateChange', 'locationName' => 'item', ], ], 'InstanceStateName' => [ 'type' => 'string', 'enum' => [ 'pending', 'running', 'shutting-down', 'terminated', 'stopping', 'stopped', ], ], 'InstanceStatus' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], 'Events' => [ 'shape' => 'InstanceStatusEventList', 'locationName' => 'eventsSet', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceState' => [ 'shape' => 'InstanceState', 'locationName' => 'instanceState', ], 'InstanceStatus' => [ 'shape' => 'InstanceStatusSummary', 'locationName' => 'instanceStatus', ], 'SystemStatus' => [ 'shape' => 'InstanceStatusSummary', 'locationName' => 'systemStatus', ], 'AttachedEbsStatus' => [ 'shape' => 'EbsStatusSummary', 'locationName' => 'attachedEbsStatus', ], ], ], 'InstanceStatusDetails' => [ 'type' => 'structure', 'members' => [ 'ImpairedSince' => [ 'shape' => 'DateTime', 'locationName' => 'impairedSince', ], 'Name' => [ 'shape' => 'StatusName', 'locationName' => 'name', ], 'Status' => [ 'shape' => 'StatusType', 'locationName' => 'status', ], ], ], 'InstanceStatusDetailsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceStatusDetails', 'locationName' => 'item', ], ], 'InstanceStatusEvent' => [ 'type' => 'structure', 'members' => [ 'InstanceEventId' => [ 'shape' => 'InstanceEventId', 'locationName' => 'instanceEventId', ], 'Code' => [ 'shape' => 'EventCode', 'locationName' => 'code', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'NotAfter' => [ 'shape' => 'DateTime', 'locationName' => 'notAfter', ], 'NotBefore' => [ 'shape' => 'DateTime', 'locationName' => 'notBefore', ], 'NotBeforeDeadline' => [ 'shape' => 'DateTime', 'locationName' => 'notBeforeDeadline', ], ], ], 'InstanceStatusEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceStatusEvent', 'locationName' => 'item', ], ], 'InstanceStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceStatus', 'locationName' => 'item', ], ], 'InstanceStatusSummary' => [ 'type' => 'structure', 'members' => [ 'Details' => [ 'shape' => 'InstanceStatusDetailsList', 'locationName' => 'details', ], 'Status' => [ 'shape' => 'SummaryStatus', 'locationName' => 'status', ], ], ], 'InstanceStorageEncryptionSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'required', ], ], 'InstanceStorageFlag' => [ 'type' => 'boolean', ], 'InstanceStorageInfo' => [ 'type' => 'structure', 'members' => [ 'TotalSizeInGB' => [ 'shape' => 'DiskSize', 'locationName' => 'totalSizeInGB', ], 'Disks' => [ 'shape' => 'DiskInfoList', 'locationName' => 'disks', ], 'NvmeSupport' => [ 'shape' => 'EphemeralNvmeSupport', 'locationName' => 'nvmeSupport', ], 'EncryptionSupport' => [ 'shape' => 'InstanceStorageEncryptionSupport', 'locationName' => 'encryptionSupport', ], ], ], 'InstanceTagKeySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'InstanceTagNotificationAttribute' => [ 'type' => 'structure', 'members' => [ 'InstanceTagKeys' => [ 'shape' => 'InstanceTagKeySet', 'locationName' => 'instanceTagKeySet', ], 'IncludeAllTagsOfInstance' => [ 'shape' => 'Boolean', 'locationName' => 'includeAllTagsOfInstance', ], ], ], 'InstanceTopology' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'NetworkNodes' => [ 'shape' => 'NetworkNodesList', 'locationName' => 'networkNodeSet', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'ZoneId' => [ 'shape' => 'String', 'locationName' => 'zoneId', ], 'CapacityBlockId' => [ 'shape' => 'String', 'locationName' => 'capacityBlockId', ], ], ], 'InstanceType' => [ 'type' => 'string', 'enum' => [ 'a1.medium', 'a1.large', 'a1.xlarge', 'a1.2xlarge', 'a1.4xlarge', 'a1.metal', 'c1.medium', 'c1.xlarge', 'c3.large', 'c3.xlarge', 'c3.2xlarge', 'c3.4xlarge', 'c3.8xlarge', 'c4.large', 'c4.xlarge', 'c4.2xlarge', 'c4.4xlarge', 'c4.8xlarge', 'c5.large', 'c5.xlarge', 'c5.2xlarge', 'c5.4xlarge', 'c5.9xlarge', 'c5.12xlarge', 'c5.18xlarge', 'c5.24xlarge', 'c5.metal', 'c5a.large', 'c5a.xlarge', 'c5a.2xlarge', 'c5a.4xlarge', 'c5a.8xlarge', 'c5a.12xlarge', 'c5a.16xlarge', 'c5a.24xlarge', 'c5ad.large', 'c5ad.xlarge', 'c5ad.2xlarge', 'c5ad.4xlarge', 'c5ad.8xlarge', 'c5ad.12xlarge', 'c5ad.16xlarge', 'c5ad.24xlarge', 'c5d.large', 'c5d.xlarge', 'c5d.2xlarge', 'c5d.4xlarge', 'c5d.9xlarge', 'c5d.12xlarge', 'c5d.18xlarge', 'c5d.24xlarge', 'c5d.metal', 'c5n.large', 'c5n.xlarge', 'c5n.2xlarge', 'c5n.4xlarge', 'c5n.9xlarge', 'c5n.18xlarge', 'c5n.metal', 'c6g.medium', 'c6g.large', 'c6g.xlarge', 'c6g.2xlarge', 'c6g.4xlarge', 'c6g.8xlarge', 'c6g.12xlarge', 'c6g.16xlarge', 'c6g.metal', 'c6gd.medium', 'c6gd.large', 'c6gd.xlarge', 'c6gd.2xlarge', 'c6gd.4xlarge', 'c6gd.8xlarge', 'c6gd.12xlarge', 'c6gd.16xlarge', 'c6gd.metal', 'c6gn.medium', 'c6gn.large', 'c6gn.xlarge', 'c6gn.2xlarge', 'c6gn.4xlarge', 'c6gn.8xlarge', 'c6gn.12xlarge', 'c6gn.16xlarge', 'c6i.large', 'c6i.xlarge', 'c6i.2xlarge', 'c6i.4xlarge', 'c6i.8xlarge', 'c6i.12xlarge', 'c6i.16xlarge', 'c6i.24xlarge', 'c6i.32xlarge', 'c6i.metal', 'cc1.4xlarge', 'cc2.8xlarge', 'cg1.4xlarge', 'cr1.8xlarge', 'd2.xlarge', 'd2.2xlarge', 'd2.4xlarge', 'd2.8xlarge', 'd3.xlarge', 'd3.2xlarge', 'd3.4xlarge', 'd3.8xlarge', 'd3en.xlarge', 'd3en.2xlarge', 'd3en.4xlarge', 'd3en.6xlarge', 'd3en.8xlarge', 'd3en.12xlarge', 'dl1.24xlarge', 'f1.2xlarge', 'f1.4xlarge', 'f1.16xlarge', 'g2.2xlarge', 'g2.8xlarge', 'g3.4xlarge', 'g3.8xlarge', 'g3.16xlarge', 'g3s.xlarge', 'g4ad.xlarge', 'g4ad.2xlarge', 'g4ad.4xlarge', 'g4ad.8xlarge', 'g4ad.16xlarge', 'g4dn.xlarge', 'g4dn.2xlarge', 'g4dn.4xlarge', 'g4dn.8xlarge', 'g4dn.12xlarge', 'g4dn.16xlarge', 'g4dn.metal', 'g5.xlarge', 'g5.2xlarge', 'g5.4xlarge', 'g5.8xlarge', 'g5.12xlarge', 'g5.16xlarge', 'g5.24xlarge', 'g5.48xlarge', 'g5g.xlarge', 'g5g.2xlarge', 'g5g.4xlarge', 'g5g.8xlarge', 'g5g.16xlarge', 'g5g.metal', 'hi1.4xlarge', 'hpc6a.48xlarge', 'hs1.8xlarge', 'h1.2xlarge', 'h1.4xlarge', 'h1.8xlarge', 'h1.16xlarge', 'i2.xlarge', 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', 'i3.large', 'i3.xlarge', 'i3.2xlarge', 'i3.4xlarge', 'i3.8xlarge', 'i3.16xlarge', 'i3.metal', 'i3en.large', 'i3en.xlarge', 'i3en.2xlarge', 'i3en.3xlarge', 'i3en.6xlarge', 'i3en.12xlarge', 'i3en.24xlarge', 'i3en.metal', 'im4gn.large', 'im4gn.xlarge', 'im4gn.2xlarge', 'im4gn.4xlarge', 'im4gn.8xlarge', 'im4gn.16xlarge', 'inf1.xlarge', 'inf1.2xlarge', 'inf1.6xlarge', 'inf1.24xlarge', 'is4gen.medium', 'is4gen.large', 'is4gen.xlarge', 'is4gen.2xlarge', 'is4gen.4xlarge', 'is4gen.8xlarge', 'm1.small', 'm1.medium', 'm1.large', 'm1.xlarge', 'm2.xlarge', 'm2.2xlarge', 'm2.4xlarge', 'm3.medium', 'm3.large', 'm3.xlarge', 'm3.2xlarge', 'm4.large', 'm4.xlarge', 'm4.2xlarge', 'm4.4xlarge', 'm4.10xlarge', 'm4.16xlarge', 'm5.large', 'm5.xlarge', 'm5.2xlarge', 'm5.4xlarge', 'm5.8xlarge', 'm5.12xlarge', 'm5.16xlarge', 'm5.24xlarge', 'm5.metal', 'm5a.large', 'm5a.xlarge', 'm5a.2xlarge', 'm5a.4xlarge', 'm5a.8xlarge', 'm5a.12xlarge', 'm5a.16xlarge', 'm5a.24xlarge', 'm5ad.large', 'm5ad.xlarge', 'm5ad.2xlarge', 'm5ad.4xlarge', 'm5ad.8xlarge', 'm5ad.12xlarge', 'm5ad.16xlarge', 'm5ad.24xlarge', 'm5d.large', 'm5d.xlarge', 'm5d.2xlarge', 'm5d.4xlarge', 'm5d.8xlarge', 'm5d.12xlarge', 'm5d.16xlarge', 'm5d.24xlarge', 'm5d.metal', 'm5dn.large', 'm5dn.xlarge', 'm5dn.2xlarge', 'm5dn.4xlarge', 'm5dn.8xlarge', 'm5dn.12xlarge', 'm5dn.16xlarge', 'm5dn.24xlarge', 'm5dn.metal', 'm5n.large', 'm5n.xlarge', 'm5n.2xlarge', 'm5n.4xlarge', 'm5n.8xlarge', 'm5n.12xlarge', 'm5n.16xlarge', 'm5n.24xlarge', 'm5n.metal', 'm5zn.large', 'm5zn.xlarge', 'm5zn.2xlarge', 'm5zn.3xlarge', 'm5zn.6xlarge', 'm5zn.12xlarge', 'm5zn.metal', 'm6a.large', 'm6a.xlarge', 'm6a.2xlarge', 'm6a.4xlarge', 'm6a.8xlarge', 'm6a.12xlarge', 'm6a.16xlarge', 'm6a.24xlarge', 'm6a.32xlarge', 'm6a.48xlarge', 'm6g.metal', 'm6g.medium', 'm6g.large', 'm6g.xlarge', 'm6g.2xlarge', 'm6g.4xlarge', 'm6g.8xlarge', 'm6g.12xlarge', 'm6g.16xlarge', 'm6gd.metal', 'm6gd.medium', 'm6gd.large', 'm6gd.xlarge', 'm6gd.2xlarge', 'm6gd.4xlarge', 'm6gd.8xlarge', 'm6gd.12xlarge', 'm6gd.16xlarge', 'm6i.large', 'm6i.xlarge', 'm6i.2xlarge', 'm6i.4xlarge', 'm6i.8xlarge', 'm6i.12xlarge', 'm6i.16xlarge', 'm6i.24xlarge', 'm6i.32xlarge', 'm6i.metal', 'mac1.metal', 'p2.xlarge', 'p2.8xlarge', 'p2.16xlarge', 'p3.2xlarge', 'p3.8xlarge', 'p3.16xlarge', 'p3dn.24xlarge', 'p4d.24xlarge', 'r3.large', 'r3.xlarge', 'r3.2xlarge', 'r3.4xlarge', 'r3.8xlarge', 'r4.large', 'r4.xlarge', 'r4.2xlarge', 'r4.4xlarge', 'r4.8xlarge', 'r4.16xlarge', 'r5.large', 'r5.xlarge', 'r5.2xlarge', 'r5.4xlarge', 'r5.8xlarge', 'r5.12xlarge', 'r5.16xlarge', 'r5.24xlarge', 'r5.metal', 'r5a.large', 'r5a.xlarge', 'r5a.2xlarge', 'r5a.4xlarge', 'r5a.8xlarge', 'r5a.12xlarge', 'r5a.16xlarge', 'r5a.24xlarge', 'r5ad.large', 'r5ad.xlarge', 'r5ad.2xlarge', 'r5ad.4xlarge', 'r5ad.8xlarge', 'r5ad.12xlarge', 'r5ad.16xlarge', 'r5ad.24xlarge', 'r5b.large', 'r5b.xlarge', 'r5b.2xlarge', 'r5b.4xlarge', 'r5b.8xlarge', 'r5b.12xlarge', 'r5b.16xlarge', 'r5b.24xlarge', 'r5b.metal', 'r5d.large', 'r5d.xlarge', 'r5d.2xlarge', 'r5d.4xlarge', 'r5d.8xlarge', 'r5d.12xlarge', 'r5d.16xlarge', 'r5d.24xlarge', 'r5d.metal', 'r5dn.large', 'r5dn.xlarge', 'r5dn.2xlarge', 'r5dn.4xlarge', 'r5dn.8xlarge', 'r5dn.12xlarge', 'r5dn.16xlarge', 'r5dn.24xlarge', 'r5dn.metal', 'r5n.large', 'r5n.xlarge', 'r5n.2xlarge', 'r5n.4xlarge', 'r5n.8xlarge', 'r5n.12xlarge', 'r5n.16xlarge', 'r5n.24xlarge', 'r5n.metal', 'r6g.medium', 'r6g.large', 'r6g.xlarge', 'r6g.2xlarge', 'r6g.4xlarge', 'r6g.8xlarge', 'r6g.12xlarge', 'r6g.16xlarge', 'r6g.metal', 'r6gd.medium', 'r6gd.large', 'r6gd.xlarge', 'r6gd.2xlarge', 'r6gd.4xlarge', 'r6gd.8xlarge', 'r6gd.12xlarge', 'r6gd.16xlarge', 'r6gd.metal', 'r6i.large', 'r6i.xlarge', 'r6i.2xlarge', 'r6i.4xlarge', 'r6i.8xlarge', 'r6i.12xlarge', 'r6i.16xlarge', 'r6i.24xlarge', 'r6i.32xlarge', 'r6i.metal', 't1.micro', 't2.nano', 't2.micro', 't2.small', 't2.medium', 't2.large', 't2.xlarge', 't2.2xlarge', 't3.nano', 't3.micro', 't3.small', 't3.medium', 't3.large', 't3.xlarge', 't3.2xlarge', 't3a.nano', 't3a.micro', 't3a.small', 't3a.medium', 't3a.large', 't3a.xlarge', 't3a.2xlarge', 't4g.nano', 't4g.micro', 't4g.small', 't4g.medium', 't4g.large', 't4g.xlarge', 't4g.2xlarge', 'u-6tb1.56xlarge', 'u-6tb1.112xlarge', 'u-9tb1.112xlarge', 'u-12tb1.112xlarge', 'u-6tb1.metal', 'u-9tb1.metal', 'u-12tb1.metal', 'u-18tb1.metal', 'u-24tb1.metal', 'vt1.3xlarge', 'vt1.6xlarge', 'vt1.24xlarge', 'x1.16xlarge', 'x1.32xlarge', 'x1e.xlarge', 'x1e.2xlarge', 'x1e.4xlarge', 'x1e.8xlarge', 'x1e.16xlarge', 'x1e.32xlarge', 'x2iezn.2xlarge', 'x2iezn.4xlarge', 'x2iezn.6xlarge', 'x2iezn.8xlarge', 'x2iezn.12xlarge', 'x2iezn.metal', 'x2gd.medium', 'x2gd.large', 'x2gd.xlarge', 'x2gd.2xlarge', 'x2gd.4xlarge', 'x2gd.8xlarge', 'x2gd.12xlarge', 'x2gd.16xlarge', 'x2gd.metal', 'z1d.large', 'z1d.xlarge', 'z1d.2xlarge', 'z1d.3xlarge', 'z1d.6xlarge', 'z1d.12xlarge', 'z1d.metal', 'x2idn.16xlarge', 'x2idn.24xlarge', 'x2idn.32xlarge', 'x2iedn.xlarge', 'x2iedn.2xlarge', 'x2iedn.4xlarge', 'x2iedn.8xlarge', 'x2iedn.16xlarge', 'x2iedn.24xlarge', 'x2iedn.32xlarge', 'c6a.large', 'c6a.xlarge', 'c6a.2xlarge', 'c6a.4xlarge', 'c6a.8xlarge', 'c6a.12xlarge', 'c6a.16xlarge', 'c6a.24xlarge', 'c6a.32xlarge', 'c6a.48xlarge', 'c6a.metal', 'm6a.metal', 'i4i.large', 'i4i.xlarge', 'i4i.2xlarge', 'i4i.4xlarge', 'i4i.8xlarge', 'i4i.16xlarge', 'i4i.32xlarge', 'i4i.metal', 'x2idn.metal', 'x2iedn.metal', 'c7g.medium', 'c7g.large', 'c7g.xlarge', 'c7g.2xlarge', 'c7g.4xlarge', 'c7g.8xlarge', 'c7g.12xlarge', 'c7g.16xlarge', 'mac2.metal', 'c6id.large', 'c6id.xlarge', 'c6id.2xlarge', 'c6id.4xlarge', 'c6id.8xlarge', 'c6id.12xlarge', 'c6id.16xlarge', 'c6id.24xlarge', 'c6id.32xlarge', 'c6id.metal', 'm6id.large', 'm6id.xlarge', 'm6id.2xlarge', 'm6id.4xlarge', 'm6id.8xlarge', 'm6id.12xlarge', 'm6id.16xlarge', 'm6id.24xlarge', 'm6id.32xlarge', 'm6id.metal', 'r6id.large', 'r6id.xlarge', 'r6id.2xlarge', 'r6id.4xlarge', 'r6id.8xlarge', 'r6id.12xlarge', 'r6id.16xlarge', 'r6id.24xlarge', 'r6id.32xlarge', 'r6id.metal', 'r6a.large', 'r6a.xlarge', 'r6a.2xlarge', 'r6a.4xlarge', 'r6a.8xlarge', 'r6a.12xlarge', 'r6a.16xlarge', 'r6a.24xlarge', 'r6a.32xlarge', 'r6a.48xlarge', 'r6a.metal', 'p4de.24xlarge', 'u-3tb1.56xlarge', 'u-18tb1.112xlarge', 'u-24tb1.112xlarge', 'trn1.2xlarge', 'trn1.32xlarge', 'hpc6id.32xlarge', 'c6in.large', 'c6in.xlarge', 'c6in.2xlarge', 'c6in.4xlarge', 'c6in.8xlarge', 'c6in.12xlarge', 'c6in.16xlarge', 'c6in.24xlarge', 'c6in.32xlarge', 'm6in.large', 'm6in.xlarge', 'm6in.2xlarge', 'm6in.4xlarge', 'm6in.8xlarge', 'm6in.12xlarge', 'm6in.16xlarge', 'm6in.24xlarge', 'm6in.32xlarge', 'm6idn.large', 'm6idn.xlarge', 'm6idn.2xlarge', 'm6idn.4xlarge', 'm6idn.8xlarge', 'm6idn.12xlarge', 'm6idn.16xlarge', 'm6idn.24xlarge', 'm6idn.32xlarge', 'r6in.large', 'r6in.xlarge', 'r6in.2xlarge', 'r6in.4xlarge', 'r6in.8xlarge', 'r6in.12xlarge', 'r6in.16xlarge', 'r6in.24xlarge', 'r6in.32xlarge', 'r6idn.large', 'r6idn.xlarge', 'r6idn.2xlarge', 'r6idn.4xlarge', 'r6idn.8xlarge', 'r6idn.12xlarge', 'r6idn.16xlarge', 'r6idn.24xlarge', 'r6idn.32xlarge', 'c7g.metal', 'm7g.medium', 'm7g.large', 'm7g.xlarge', 'm7g.2xlarge', 'm7g.4xlarge', 'm7g.8xlarge', 'm7g.12xlarge', 'm7g.16xlarge', 'm7g.metal', 'r7g.medium', 'r7g.large', 'r7g.xlarge', 'r7g.2xlarge', 'r7g.4xlarge', 'r7g.8xlarge', 'r7g.12xlarge', 'r7g.16xlarge', 'r7g.metal', 'c6in.metal', 'm6in.metal', 'm6idn.metal', 'r6in.metal', 'r6idn.metal', 'inf2.xlarge', 'inf2.8xlarge', 'inf2.24xlarge', 'inf2.48xlarge', 'trn1n.32xlarge', 'i4g.large', 'i4g.xlarge', 'i4g.2xlarge', 'i4g.4xlarge', 'i4g.8xlarge', 'i4g.16xlarge', 'hpc7g.4xlarge', 'hpc7g.8xlarge', 'hpc7g.16xlarge', 'c7gn.medium', 'c7gn.large', 'c7gn.xlarge', 'c7gn.2xlarge', 'c7gn.4xlarge', 'c7gn.8xlarge', 'c7gn.12xlarge', 'c7gn.16xlarge', 'p5.48xlarge', 'm7i.large', 'm7i.xlarge', 'm7i.2xlarge', 'm7i.4xlarge', 'm7i.8xlarge', 'm7i.12xlarge', 'm7i.16xlarge', 'm7i.24xlarge', 'm7i.48xlarge', 'm7i-flex.large', 'm7i-flex.xlarge', 'm7i-flex.2xlarge', 'm7i-flex.4xlarge', 'm7i-flex.8xlarge', 'm7a.medium', 'm7a.large', 'm7a.xlarge', 'm7a.2xlarge', 'm7a.4xlarge', 'm7a.8xlarge', 'm7a.12xlarge', 'm7a.16xlarge', 'm7a.24xlarge', 'm7a.32xlarge', 'm7a.48xlarge', 'm7a.metal-48xl', 'hpc7a.12xlarge', 'hpc7a.24xlarge', 'hpc7a.48xlarge', 'hpc7a.96xlarge', 'c7gd.medium', 'c7gd.large', 'c7gd.xlarge', 'c7gd.2xlarge', 'c7gd.4xlarge', 'c7gd.8xlarge', 'c7gd.12xlarge', 'c7gd.16xlarge', 'm7gd.medium', 'm7gd.large', 'm7gd.xlarge', 'm7gd.2xlarge', 'm7gd.4xlarge', 'm7gd.8xlarge', 'm7gd.12xlarge', 'm7gd.16xlarge', 'r7gd.medium', 'r7gd.large', 'r7gd.xlarge', 'r7gd.2xlarge', 'r7gd.4xlarge', 'r7gd.8xlarge', 'r7gd.12xlarge', 'r7gd.16xlarge', 'r7a.medium', 'r7a.large', 'r7a.xlarge', 'r7a.2xlarge', 'r7a.4xlarge', 'r7a.8xlarge', 'r7a.12xlarge', 'r7a.16xlarge', 'r7a.24xlarge', 'r7a.32xlarge', 'r7a.48xlarge', 'c7i.large', 'c7i.xlarge', 'c7i.2xlarge', 'c7i.4xlarge', 'c7i.8xlarge', 'c7i.12xlarge', 'c7i.16xlarge', 'c7i.24xlarge', 'c7i.48xlarge', 'mac2-m2pro.metal', 'r7iz.large', 'r7iz.xlarge', 'r7iz.2xlarge', 'r7iz.4xlarge', 'r7iz.8xlarge', 'r7iz.12xlarge', 'r7iz.16xlarge', 'r7iz.32xlarge', 'c7a.medium', 'c7a.large', 'c7a.xlarge', 'c7a.2xlarge', 'c7a.4xlarge', 'c7a.8xlarge', 'c7a.12xlarge', 'c7a.16xlarge', 'c7a.24xlarge', 'c7a.32xlarge', 'c7a.48xlarge', 'c7a.metal-48xl', 'r7a.metal-48xl', 'r7i.large', 'r7i.xlarge', 'r7i.2xlarge', 'r7i.4xlarge', 'r7i.8xlarge', 'r7i.12xlarge', 'r7i.16xlarge', 'r7i.24xlarge', 'r7i.48xlarge', 'dl2q.24xlarge', 'mac2-m2.metal', 'i4i.12xlarge', 'i4i.24xlarge', 'c7i.metal-24xl', 'c7i.metal-48xl', 'm7i.metal-24xl', 'm7i.metal-48xl', 'r7i.metal-24xl', 'r7i.metal-48xl', 'r7iz.metal-16xl', 'r7iz.metal-32xl', 'c7gd.metal', 'm7gd.metal', 'r7gd.metal', 'g6.xlarge', 'g6.2xlarge', 'g6.4xlarge', 'g6.8xlarge', 'g6.12xlarge', 'g6.16xlarge', 'g6.24xlarge', 'g6.48xlarge', 'gr6.4xlarge', 'gr6.8xlarge', 'c7i-flex.large', 'c7i-flex.xlarge', 'c7i-flex.2xlarge', 'c7i-flex.4xlarge', 'c7i-flex.8xlarge', 'u7i-12tb.224xlarge', 'u7in-16tb.224xlarge', 'u7in-24tb.224xlarge', 'u7in-32tb.224xlarge', 'u7ib-12tb.224xlarge', 'c7gn.metal', 'r8g.medium', 'r8g.large', 'r8g.xlarge', 'r8g.2xlarge', 'r8g.4xlarge', 'r8g.8xlarge', 'r8g.12xlarge', 'r8g.16xlarge', 'r8g.24xlarge', 'r8g.48xlarge', 'r8g.metal-24xl', 'r8g.metal-48xl', 'mac2-m1ultra.metal', 'g6e.xlarge', 'g6e.2xlarge', 'g6e.4xlarge', 'g6e.8xlarge', 'g6e.12xlarge', 'g6e.16xlarge', 'g6e.24xlarge', 'g6e.48xlarge', 'c8g.medium', 'c8g.large', 'c8g.xlarge', 'c8g.2xlarge', 'c8g.4xlarge', 'c8g.8xlarge', 'c8g.12xlarge', 'c8g.16xlarge', 'c8g.24xlarge', 'c8g.48xlarge', 'c8g.metal-24xl', 'c8g.metal-48xl', 'm8g.medium', 'm8g.large', 'm8g.xlarge', 'm8g.2xlarge', 'm8g.4xlarge', 'm8g.8xlarge', 'm8g.12xlarge', 'm8g.16xlarge', 'm8g.24xlarge', 'm8g.48xlarge', 'm8g.metal-24xl', 'm8g.metal-48xl', 'x8g.medium', 'x8g.large', 'x8g.xlarge', 'x8g.2xlarge', 'x8g.4xlarge', 'x8g.8xlarge', 'x8g.12xlarge', 'x8g.16xlarge', 'x8g.24xlarge', 'x8g.48xlarge', 'x8g.metal-24xl', 'x8g.metal-48xl', 'i7ie.large', 'i7ie.xlarge', 'i7ie.2xlarge', 'i7ie.3xlarge', 'i7ie.6xlarge', 'i7ie.12xlarge', 'i7ie.18xlarge', 'i7ie.24xlarge', 'i7ie.48xlarge', 'i8g.large', 'i8g.xlarge', 'i8g.2xlarge', 'i8g.4xlarge', 'i8g.8xlarge', 'i8g.12xlarge', 'i8g.16xlarge', 'i8g.24xlarge', 'i8g.metal-24xl', 'u7i-6tb.112xlarge', 'u7i-8tb.112xlarge', 'u7inh-32tb.480xlarge', 'p5e.48xlarge', 'p5en.48xlarge', 'f2.12xlarge', 'f2.48xlarge', 'trn2.48xlarge', 'c7i-flex.12xlarge', 'c7i-flex.16xlarge', 'm7i-flex.12xlarge', 'm7i-flex.16xlarge', 'i7ie.metal-24xl', 'i7ie.metal-48xl', 'i8g.48xlarge', 'c8gd.medium', 'c8gd.large', 'c8gd.xlarge', 'c8gd.2xlarge', 'c8gd.4xlarge', 'c8gd.8xlarge', 'c8gd.12xlarge', 'c8gd.16xlarge', 'c8gd.24xlarge', 'c8gd.48xlarge', 'c8gd.metal-24xl', 'c8gd.metal-48xl', 'i7i.large', 'i7i.xlarge', 'i7i.2xlarge', 'i7i.4xlarge', 'i7i.8xlarge', 'i7i.12xlarge', 'i7i.16xlarge', 'i7i.24xlarge', 'i7i.48xlarge', 'i7i.metal-24xl', 'i7i.metal-48xl', 'p6-b200.48xlarge', 'm8gd.medium', 'm8gd.large', 'm8gd.xlarge', 'm8gd.2xlarge', 'm8gd.4xlarge', 'm8gd.8xlarge', 'm8gd.12xlarge', 'm8gd.16xlarge', 'm8gd.24xlarge', 'm8gd.48xlarge', 'm8gd.metal-24xl', 'm8gd.metal-48xl', 'r8gd.medium', 'r8gd.large', 'r8gd.xlarge', 'r8gd.2xlarge', 'r8gd.4xlarge', 'r8gd.8xlarge', 'r8gd.12xlarge', 'r8gd.16xlarge', 'r8gd.24xlarge', 'r8gd.48xlarge', 'r8gd.metal-24xl', 'r8gd.metal-48xl', 'c8gn.medium', 'c8gn.large', 'c8gn.xlarge', 'c8gn.2xlarge', 'c8gn.4xlarge', 'c8gn.8xlarge', 'c8gn.12xlarge', 'c8gn.16xlarge', 'c8gn.24xlarge', 'c8gn.48xlarge', 'c8gn.metal-24xl', 'c8gn.metal-48xl', 'f2.6xlarge', 'p6e-gb200.36xlarge', 'g6f.large', 'g6f.xlarge', 'g6f.2xlarge', 'g6f.4xlarge', 'gr6f.4xlarge', 'p5.4xlarge', 'r8i.large', 'r8i.xlarge', 'r8i.2xlarge', 'r8i.4xlarge', 'r8i.8xlarge', 'r8i.12xlarge', 'r8i.16xlarge', 'r8i.24xlarge', 'r8i.32xlarge', 'r8i.48xlarge', 'r8i.96xlarge', 'r8i.metal-48xl', 'r8i.metal-96xl', 'r8i-flex.large', 'r8i-flex.xlarge', 'r8i-flex.2xlarge', 'r8i-flex.4xlarge', 'r8i-flex.8xlarge', 'r8i-flex.12xlarge', 'r8i-flex.16xlarge', 'm8i.large', 'm8i.xlarge', 'm8i.2xlarge', 'm8i.4xlarge', 'm8i.8xlarge', 'm8i.12xlarge', 'm8i.16xlarge', 'm8i.24xlarge', 'm8i.32xlarge', 'm8i.48xlarge', 'm8i.96xlarge', 'm8i.metal-48xl', 'm8i.metal-96xl', 'm8i-flex.large', 'm8i-flex.xlarge', 'm8i-flex.2xlarge', 'm8i-flex.4xlarge', 'm8i-flex.8xlarge', 'm8i-flex.12xlarge', 'm8i-flex.16xlarge', 'i8ge.large', 'i8ge.xlarge', 'i8ge.2xlarge', 'i8ge.3xlarge', 'i8ge.6xlarge', 'i8ge.12xlarge', 'i8ge.18xlarge', 'i8ge.24xlarge', 'i8ge.48xlarge', 'i8ge.metal-24xl', 'i8ge.metal-48xl', 'mac-m4.metal', 'mac-m4pro.metal', 'r8gn.medium', 'r8gn.large', 'r8gn.xlarge', 'r8gn.2xlarge', 'r8gn.4xlarge', 'r8gn.8xlarge', 'r8gn.12xlarge', 'r8gn.16xlarge', 'r8gn.24xlarge', 'r8gn.48xlarge', 'r8gn.metal-24xl', 'r8gn.metal-48xl', 'c8i.large', 'c8i.xlarge', 'c8i.2xlarge', 'c8i.4xlarge', 'c8i.8xlarge', 'c8i.12xlarge', 'c8i.16xlarge', 'c8i.24xlarge', 'c8i.32xlarge', 'c8i.48xlarge', 'c8i.96xlarge', 'c8i.metal-48xl', 'c8i.metal-96xl', 'c8i-flex.large', 'c8i-flex.xlarge', 'c8i-flex.2xlarge', 'c8i-flex.4xlarge', 'c8i-flex.8xlarge', 'c8i-flex.12xlarge', 'c8i-flex.16xlarge', 'r8gb.medium', 'r8gb.large', 'r8gb.xlarge', 'r8gb.2xlarge', 'r8gb.4xlarge', 'r8gb.8xlarge', 'r8gb.12xlarge', 'r8gb.16xlarge', 'r8gb.24xlarge', 'r8gb.metal-24xl', 'm8a.medium', 'm8a.large', 'm8a.xlarge', 'm8a.2xlarge', 'm8a.4xlarge', 'm8a.8xlarge', 'm8a.12xlarge', 'm8a.16xlarge', 'm8a.24xlarge', 'm8a.48xlarge', 'm8a.metal-24xl', 'm8a.metal-48xl', 'trn2.3xlarge', 'r8a.medium', 'r8a.large', 'r8a.xlarge', 'r8a.2xlarge', 'r8a.4xlarge', 'r8a.8xlarge', 'r8a.12xlarge', 'r8a.16xlarge', 'r8a.24xlarge', 'r8a.48xlarge', 'r8a.metal-24xl', 'r8a.metal-48xl', 'p6-b300.48xlarge', 'c8a.medium', 'c8a.large', 'c8a.xlarge', 'c8a.2xlarge', 'c8a.4xlarge', 'c8a.8xlarge', 'c8a.12xlarge', 'c8a.16xlarge', 'c8a.24xlarge', 'c8a.48xlarge', 'c8a.metal-24xl', 'c8a.metal-48xl', 'c8gb.12xlarge', 'c8gb.16xlarge', 'c8gb.24xlarge', 'c8gb.2xlarge', 'c8gb.4xlarge', 'c8gb.8xlarge', 'c8gb.large', 'c8gb.medium', 'c8gb.metal-24xl', 'c8gb.xlarge', 'c8gb.48xlarge', 'c8gb.metal-48xl', 'm8gb.12xlarge', 'm8gb.16xlarge', 'm8gb.24xlarge', 'm8gb.2xlarge', 'm8gb.4xlarge', 'm8gb.8xlarge', 'm8gb.large', 'm8gb.medium', 'm8gb.xlarge', 'm8gb.48xlarge', 'm8gb.metal-24xl', 'm8gb.metal-48xl', 'm8gn.12xlarge', 'm8gn.16xlarge', 'm8gn.24xlarge', 'm8gn.2xlarge', 'm8gn.48xlarge', 'm8gn.4xlarge', 'm8gn.8xlarge', 'm8gn.large', 'm8gn.medium', 'm8gn.xlarge', 'm8gn.metal-24xl', 'm8gn.metal-48xl', 'x8aedz.12xlarge', 'x8aedz.24xlarge', 'x8aedz.3xlarge', 'x8aedz.6xlarge', 'x8aedz.large', 'x8aedz.metal-12xl', 'x8aedz.metal-24xl', 'x8aedz.xlarge', 'm8azn.medium', 'm8azn.large', 'm8azn.xlarge', 'm8azn.3xlarge', 'm8azn.6xlarge', 'm8azn.12xlarge', 'm8azn.24xlarge', 'm8azn.metal-12xl', 'm8azn.metal-24xl', 'x8i.large', 'x8i.xlarge', 'x8i.2xlarge', 'x8i.4xlarge', 'x8i.8xlarge', 'x8i.12xlarge', 'x8i.16xlarge', 'x8i.24xlarge', 'x8i.32xlarge', 'x8i.48xlarge', 'x8i.64xlarge', 'x8i.96xlarge', 'x8i.metal-48xl', 'x8i.metal-96xl', 'mac-m4max.metal', 'g7e.2xlarge', 'g7e.4xlarge', 'g7e.8xlarge', 'g7e.12xlarge', 'g7e.24xlarge', 'g7e.48xlarge', 'r8id.large', 'r8id.xlarge', 'r8id.2xlarge', 'r8id.4xlarge', 'r8id.8xlarge', 'r8id.12xlarge', 'r8id.16xlarge', 'r8id.24xlarge', 'r8id.32xlarge', 'r8id.48xlarge', 'r8id.96xlarge', 'r8id.metal-48xl', 'r8id.metal-96xl', 'c8id.large', 'c8id.xlarge', 'c8id.2xlarge', 'c8id.4xlarge', 'c8id.8xlarge', 'c8id.12xlarge', 'c8id.16xlarge', 'c8id.24xlarge', 'c8id.32xlarge', 'c8id.48xlarge', 'c8id.96xlarge', 'c8id.metal-48xl', 'c8id.metal-96xl', 'm8id.large', 'm8id.xlarge', 'm8id.2xlarge', 'm8id.4xlarge', 'm8id.8xlarge', 'm8id.12xlarge', 'm8id.16xlarge', 'm8id.24xlarge', 'm8id.32xlarge', 'm8id.48xlarge', 'm8id.96xlarge', 'm8id.metal-48xl', 'm8id.metal-96xl', 'hpc8a.96xlarge', ], ], 'InstanceTypeHypervisor' => [ 'type' => 'string', 'enum' => [ 'nitro', 'xen', ], ], 'InstanceTypeInfo' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'CurrentGeneration' => [ 'shape' => 'CurrentGenerationFlag', 'locationName' => 'currentGeneration', ], 'FreeTierEligible' => [ 'shape' => 'FreeTierEligibleFlag', 'locationName' => 'freeTierEligible', ], 'SupportedUsageClasses' => [ 'shape' => 'UsageClassTypeList', 'locationName' => 'supportedUsageClasses', ], 'SupportedRootDeviceTypes' => [ 'shape' => 'RootDeviceTypeList', 'locationName' => 'supportedRootDeviceTypes', ], 'SupportedVirtualizationTypes' => [ 'shape' => 'VirtualizationTypeList', 'locationName' => 'supportedVirtualizationTypes', ], 'BareMetal' => [ 'shape' => 'BareMetalFlag', 'locationName' => 'bareMetal', ], 'Hypervisor' => [ 'shape' => 'InstanceTypeHypervisor', 'locationName' => 'hypervisor', ], 'ProcessorInfo' => [ 'shape' => 'ProcessorInfo', 'locationName' => 'processorInfo', ], 'VCpuInfo' => [ 'shape' => 'VCpuInfo', 'locationName' => 'vCpuInfo', ], 'MemoryInfo' => [ 'shape' => 'MemoryInfo', 'locationName' => 'memoryInfo', ], 'InstanceStorageSupported' => [ 'shape' => 'InstanceStorageFlag', 'locationName' => 'instanceStorageSupported', ], 'InstanceStorageInfo' => [ 'shape' => 'InstanceStorageInfo', 'locationName' => 'instanceStorageInfo', ], 'EbsInfo' => [ 'shape' => 'EbsInfo', 'locationName' => 'ebsInfo', ], 'NetworkInfo' => [ 'shape' => 'NetworkInfo', 'locationName' => 'networkInfo', ], 'GpuInfo' => [ 'shape' => 'GpuInfo', 'locationName' => 'gpuInfo', ], 'FpgaInfo' => [ 'shape' => 'FpgaInfo', 'locationName' => 'fpgaInfo', ], 'PlacementGroupInfo' => [ 'shape' => 'PlacementGroupInfo', 'locationName' => 'placementGroupInfo', ], 'InferenceAcceleratorInfo' => [ 'shape' => 'InferenceAcceleratorInfo', 'locationName' => 'inferenceAcceleratorInfo', ], 'HibernationSupported' => [ 'shape' => 'HibernationFlag', 'locationName' => 'hibernationSupported', ], 'BurstablePerformanceSupported' => [ 'shape' => 'BurstablePerformanceFlag', 'locationName' => 'burstablePerformanceSupported', ], 'DedicatedHostsSupported' => [ 'shape' => 'DedicatedHostFlag', 'locationName' => 'dedicatedHostsSupported', ], 'AutoRecoverySupported' => [ 'shape' => 'AutoRecoveryFlag', 'locationName' => 'autoRecoverySupported', ], 'SupportedBootModes' => [ 'shape' => 'BootModeTypeList', 'locationName' => 'supportedBootModes', ], 'NitroEnclavesSupport' => [ 'shape' => 'NitroEnclavesSupport', 'locationName' => 'nitroEnclavesSupport', ], 'NitroTpmSupport' => [ 'shape' => 'NitroTpmSupport', 'locationName' => 'nitroTpmSupport', ], 'NitroTpmInfo' => [ 'shape' => 'NitroTpmInfo', 'locationName' => 'nitroTpmInfo', ], 'MediaAcceleratorInfo' => [ 'shape' => 'MediaAcceleratorInfo', 'locationName' => 'mediaAcceleratorInfo', ], 'NeuronInfo' => [ 'shape' => 'NeuronInfo', 'locationName' => 'neuronInfo', ], 'PhcSupport' => [ 'shape' => 'PhcSupport', 'locationName' => 'phcSupport', ], 'RebootMigrationSupport' => [ 'shape' => 'RebootMigrationSupport', 'locationName' => 'rebootMigrationSupport', ], 'SupportedInRegion' => [ 'shape' => 'SupportedInRegion', 'locationName' => 'supportedInRegion', ], ], ], 'InstanceTypeInfoFromInstanceRequirements' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], ], ], 'InstanceTypeInfoFromInstanceRequirementsSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceTypeInfoFromInstanceRequirements', 'locationName' => 'item', ], ], 'InstanceTypeInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceTypeInfo', 'locationName' => 'item', ], ], 'InstanceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceType', ], ], 'InstanceTypeOffering' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'LocationType' => [ 'shape' => 'LocationType', 'locationName' => 'locationType', ], 'Location' => [ 'shape' => 'Location', 'locationName' => 'location', ], ], ], 'InstanceTypeOfferingsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceTypeOffering', 'locationName' => 'item', ], ], 'InstanceTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], 'max' => 1000, 'min' => 0, ], 'InstanceTypesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'InstanceUsage' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => 'String', 'locationName' => 'accountId', ], 'UsedInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'usedInstanceCount', ], ], ], 'InstanceUsageSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceUsage', 'locationName' => 'item', ], ], 'Integer' => [ 'type' => 'integer', ], 'IntegerWithConstraints' => [ 'type' => 'integer', 'min' => 0, ], 'IntegrateServices' => [ 'type' => 'structure', 'members' => [ 'AthenaIntegrations' => [ 'shape' => 'AthenaIntegrationsSet', 'locationName' => 'AthenaIntegration', ], ], ], 'InterfacePermissionType' => [ 'type' => 'string', 'enum' => [ 'INSTANCE-ATTACH', 'EIP-ASSOCIATE', ], ], 'InterfaceProtocolType' => [ 'type' => 'string', 'enum' => [ 'VLAN', 'GRE', ], ], 'InternetGateway' => [ 'type' => 'structure', 'members' => [ 'Attachments' => [ 'shape' => 'InternetGatewayAttachmentList', 'locationName' => 'attachmentSet', ], 'InternetGatewayId' => [ 'shape' => 'String', 'locationName' => 'internetGatewayId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'InternetGatewayAttachment' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'state', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'InternetGatewayAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InternetGatewayAttachment', 'locationName' => 'item', ], ], 'InternetGatewayBlockMode' => [ 'type' => 'string', 'enum' => [ 'off', 'block-bidirectional', 'block-ingress', ], ], 'InternetGatewayExclusionMode' => [ 'type' => 'string', 'enum' => [ 'allow-bidirectional', 'allow-egress', ], ], 'InternetGatewayId' => [ 'type' => 'string', ], 'InternetGatewayIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InternetGatewayId', 'locationName' => 'item', ], ], 'InternetGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InternetGateway', 'locationName' => 'item', ], ], 'InterruptibleCapacityAllocation' => [ 'type' => 'structure', 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'TargetInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'targetInstanceCount', ], 'Status' => [ 'shape' => 'InterruptibleCapacityReservationAllocationStatus', 'locationName' => 'status', ], 'InterruptibleCapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'interruptibleCapacityReservationId', ], 'InterruptionType' => [ 'shape' => 'InterruptionType', 'locationName' => 'interruptionType', ], ], ], 'InterruptibleCapacityReservationAllocationStatus' => [ 'type' => 'string', 'enum' => [ 'pending', 'active', 'updating', 'canceling', 'canceled', 'failed', ], ], 'InterruptionInfo' => [ 'type' => 'structure', 'members' => [ 'SourceCapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'sourceCapacityReservationId', ], 'InterruptionType' => [ 'shape' => 'InterruptionType', 'locationName' => 'interruptionType', ], ], ], 'InterruptionType' => [ 'type' => 'string', 'enum' => [ 'adhoc', ], ], 'IpAddress' => [ 'type' => 'string', 'max' => 15, 'min' => 0, 'pattern' => '^([0-9]{1,3}.){3}[0-9]{1,3}$', ], 'IpAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpAddress', 'locationName' => 'item', ], ], 'IpAddressType' => [ 'type' => 'string', 'enum' => [ 'ipv4', 'dualstack', 'ipv6', ], ], 'IpList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'IpPermission' => [ 'type' => 'structure', 'members' => [ 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'UserIdGroupPairs' => [ 'shape' => 'UserIdGroupPairList', 'locationName' => 'groups', ], 'IpRanges' => [ 'shape' => 'IpRangeList', 'locationName' => 'ipRanges', ], 'Ipv6Ranges' => [ 'shape' => 'Ipv6RangeList', 'locationName' => 'ipv6Ranges', ], 'PrefixListIds' => [ 'shape' => 'PrefixListIdList', 'locationName' => 'prefixListIds', ], ], ], 'IpPermissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpPermission', 'locationName' => 'item', ], ], 'IpPrefixList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'IpRange' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'CidrIp' => [ 'shape' => 'String', 'locationName' => 'cidrIp', ], ], ], 'IpRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpRange', 'locationName' => 'item', ], ], 'IpRanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'IpSource' => [ 'type' => 'string', 'enum' => [ 'amazon', 'byoip', 'none', ], ], 'Ipam' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'IpamId' => [ 'shape' => 'IpamId', 'locationName' => 'ipamId', ], 'IpamArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamArn', ], 'IpamRegion' => [ 'shape' => 'String', 'locationName' => 'ipamRegion', ], 'PublicDefaultScopeId' => [ 'shape' => 'IpamScopeId', 'locationName' => 'publicDefaultScopeId', ], 'PrivateDefaultScopeId' => [ 'shape' => 'IpamScopeId', 'locationName' => 'privateDefaultScopeId', ], 'ScopeCount' => [ 'shape' => 'Integer', 'locationName' => 'scopeCount', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'OperatingRegions' => [ 'shape' => 'IpamOperatingRegionSet', 'locationName' => 'operatingRegionSet', ], 'State' => [ 'shape' => 'IpamState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'DefaultResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', 'locationName' => 'defaultResourceDiscoveryId', ], 'DefaultResourceDiscoveryAssociationId' => [ 'shape' => 'IpamResourceDiscoveryAssociationId', 'locationName' => 'defaultResourceDiscoveryAssociationId', ], 'ResourceDiscoveryAssociationCount' => [ 'shape' => 'Integer', 'locationName' => 'resourceDiscoveryAssociationCount', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], 'Tier' => [ 'shape' => 'IpamTier', 'locationName' => 'tier', ], 'EnablePrivateGua' => [ 'shape' => 'Boolean', 'locationName' => 'enablePrivateGua', ], 'MeteredAccount' => [ 'shape' => 'IpamMeteredAccount', 'locationName' => 'meteredAccount', ], ], ], 'IpamAddressHistoryMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'IpamAddressHistoryRecord' => [ 'type' => 'structure', 'members' => [ 'ResourceOwnerId' => [ 'shape' => 'String', 'locationName' => 'resourceOwnerId', ], 'ResourceRegion' => [ 'shape' => 'String', 'locationName' => 'resourceRegion', ], 'ResourceType' => [ 'shape' => 'IpamAddressHistoryResourceType', 'locationName' => 'resourceType', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceCidr' => [ 'shape' => 'String', 'locationName' => 'resourceCidr', ], 'ResourceName' => [ 'shape' => 'String', 'locationName' => 'resourceName', ], 'ResourceComplianceStatus' => [ 'shape' => 'IpamComplianceStatus', 'locationName' => 'resourceComplianceStatus', ], 'ResourceOverlapStatus' => [ 'shape' => 'IpamOverlapStatus', 'locationName' => 'resourceOverlapStatus', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'SampledStartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'sampledStartTime', ], 'SampledEndTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'sampledEndTime', ], ], ], 'IpamAddressHistoryRecordSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamAddressHistoryRecord', 'locationName' => 'item', ], ], 'IpamAddressHistoryResourceType' => [ 'type' => 'string', 'enum' => [ 'eip', 'vpc', 'subnet', 'network-interface', 'instance', ], ], 'IpamAssociatedResourceDiscoveryStatus' => [ 'type' => 'string', 'enum' => [ 'active', 'not-found', ], ], 'IpamCidrAuthorizationContext' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'Signature' => [ 'shape' => 'String', ], ], ], 'IpamComplianceStatus' => [ 'type' => 'string', 'enum' => [ 'compliant', 'noncompliant', 'unmanaged', 'ignored', ], ], 'IpamDiscoveredAccount' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => 'String', 'locationName' => 'accountId', ], 'DiscoveryRegion' => [ 'shape' => 'String', 'locationName' => 'discoveryRegion', ], 'FailureReason' => [ 'shape' => 'IpamDiscoveryFailureReason', 'locationName' => 'failureReason', ], 'LastAttemptedDiscoveryTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastAttemptedDiscoveryTime', ], 'LastSuccessfulDiscoveryTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastSuccessfulDiscoveryTime', ], 'OrganizationalUnitId' => [ 'shape' => 'String', 'locationName' => 'organizationalUnitId', ], ], ], 'IpamDiscoveredAccountSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamDiscoveredAccount', 'locationName' => 'item', ], ], 'IpamDiscoveredPublicAddress' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', 'locationName' => 'ipamResourceDiscoveryId', ], 'AddressRegion' => [ 'shape' => 'String', 'locationName' => 'addressRegion', ], 'Address' => [ 'shape' => 'String', 'locationName' => 'address', ], 'AddressOwnerId' => [ 'shape' => 'String', 'locationName' => 'addressOwnerId', ], 'AddressAllocationId' => [ 'shape' => 'String', 'locationName' => 'addressAllocationId', ], 'AssociationStatus' => [ 'shape' => 'IpamPublicAddressAssociationStatus', 'locationName' => 'associationStatus', ], 'AddressType' => [ 'shape' => 'IpamPublicAddressType', 'locationName' => 'addressType', ], 'Service' => [ 'shape' => 'IpamPublicAddressAwsService', 'locationName' => 'service', ], 'ServiceResource' => [ 'shape' => 'String', 'locationName' => 'serviceResource', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'PublicIpv4PoolId' => [ 'shape' => 'String', 'locationName' => 'publicIpv4PoolId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'NetworkInterfaceDescription' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceDescription', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Tags' => [ 'shape' => 'IpamPublicAddressTags', 'locationName' => 'tags', ], 'NetworkBorderGroup' => [ 'shape' => 'String', 'locationName' => 'networkBorderGroup', ], 'SecurityGroups' => [ 'shape' => 'IpamPublicAddressSecurityGroupList', 'locationName' => 'securityGroupSet', ], 'SampleTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'sampleTime', ], ], ], 'IpamDiscoveredPublicAddressSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamDiscoveredPublicAddress', 'locationName' => 'item', ], ], 'IpamDiscoveredResourceCidr' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', 'locationName' => 'ipamResourceDiscoveryId', ], 'ResourceRegion' => [ 'shape' => 'String', 'locationName' => 'resourceRegion', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceOwnerId' => [ 'shape' => 'String', 'locationName' => 'resourceOwnerId', ], 'ResourceCidr' => [ 'shape' => 'String', 'locationName' => 'resourceCidr', ], 'IpSource' => [ 'shape' => 'IpamResourceCidrIpSource', 'locationName' => 'ipSource', ], 'ResourceType' => [ 'shape' => 'IpamResourceType', 'locationName' => 'resourceType', ], 'ResourceTags' => [ 'shape' => 'IpamResourceTagList', 'locationName' => 'resourceTagSet', ], 'IpUsage' => [ 'shape' => 'BoxedDouble', 'locationName' => 'ipUsage', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'NetworkInterfaceAttachmentStatus' => [ 'shape' => 'IpamNetworkInterfaceAttachmentStatus', 'locationName' => 'networkInterfaceAttachmentStatus', ], 'SampleTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'sampleTime', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], ], ], 'IpamDiscoveredResourceCidrSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamDiscoveredResourceCidr', 'locationName' => 'item', ], ], 'IpamDiscoveryFailureCode' => [ 'type' => 'string', 'enum' => [ 'assume-role-failure', 'throttling-failure', 'unauthorized-failure', ], ], 'IpamDiscoveryFailureReason' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'IpamDiscoveryFailureCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'IpamExternalResourceVerificationToken' => [ 'type' => 'structure', 'members' => [ 'IpamExternalResourceVerificationTokenId' => [ 'shape' => 'IpamExternalResourceVerificationTokenId', 'locationName' => 'ipamExternalResourceVerificationTokenId', ], 'IpamExternalResourceVerificationTokenArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamExternalResourceVerificationTokenArn', ], 'IpamId' => [ 'shape' => 'IpamId', 'locationName' => 'ipamId', ], 'IpamArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamArn', ], 'IpamRegion' => [ 'shape' => 'String', 'locationName' => 'ipamRegion', ], 'TokenValue' => [ 'shape' => 'String', 'locationName' => 'tokenValue', ], 'TokenName' => [ 'shape' => 'String', 'locationName' => 'tokenName', ], 'NotAfter' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'notAfter', ], 'Status' => [ 'shape' => 'TokenState', 'locationName' => 'status', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'State' => [ 'shape' => 'IpamExternalResourceVerificationTokenState', 'locationName' => 'state', ], ], ], 'IpamExternalResourceVerificationTokenId' => [ 'type' => 'string', ], 'IpamExternalResourceVerificationTokenSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamExternalResourceVerificationToken', 'locationName' => 'item', ], ], 'IpamExternalResourceVerificationTokenState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', ], ], 'IpamId' => [ 'type' => 'string', ], 'IpamManagementState' => [ 'type' => 'string', 'enum' => [ 'managed', 'unmanaged', 'ignored', ], ], 'IpamMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'IpamMeteredAccount' => [ 'type' => 'string', 'enum' => [ 'ipam-owner', 'resource-owner', ], ], 'IpamNetmaskLength' => [ 'type' => 'integer', 'max' => 128, 'min' => 0, ], 'IpamNetworkInterfaceAttachmentStatus' => [ 'type' => 'string', 'enum' => [ 'available', 'in-use', ], ], 'IpamOperatingRegion' => [ 'type' => 'structure', 'members' => [ 'RegionName' => [ 'shape' => 'String', 'locationName' => 'regionName', ], ], ], 'IpamOperatingRegionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamOperatingRegion', 'locationName' => 'item', ], ], 'IpamOrganizationalUnitExclusion' => [ 'type' => 'structure', 'members' => [ 'OrganizationsEntityPath' => [ 'shape' => 'String', 'locationName' => 'organizationsEntityPath', ], ], ], 'IpamOrganizationalUnitExclusionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamOrganizationalUnitExclusion', 'locationName' => 'item', ], ], 'IpamOverlapStatus' => [ 'type' => 'string', 'enum' => [ 'overlapping', 'nonoverlapping', 'ignored', ], ], 'IpamPolicy' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', 'locationName' => 'ipamPolicyId', ], 'IpamPolicyArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamPolicyArn', ], 'IpamPolicyRegion' => [ 'shape' => 'String', 'locationName' => 'ipamPolicyRegion', ], 'State' => [ 'shape' => 'IpamPolicyState', 'locationName' => 'state', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'IpamId' => [ 'shape' => 'IpamId', 'locationName' => 'ipamId', ], ], ], 'IpamPolicyAllocationRule' => [ 'type' => 'structure', 'members' => [ 'SourceIpamPoolId' => [ 'shape' => 'IpamPoolId', 'locationName' => 'sourceIpamPoolId', ], ], ], 'IpamPolicyAllocationRuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPolicyAllocationRule', 'locationName' => 'item', ], ], 'IpamPolicyAllocationRuleListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPolicyAllocationRuleRequest', 'locationName' => 'item', ], ], 'IpamPolicyAllocationRuleRequest' => [ 'type' => 'structure', 'members' => [ 'SourceIpamPoolId' => [ 'shape' => 'IpamPoolId', ], ], ], 'IpamPolicyDocument' => [ 'type' => 'structure', 'members' => [ 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', 'locationName' => 'ipamPolicyId', ], 'Locale' => [ 'shape' => 'String', 'locationName' => 'locale', ], 'ResourceType' => [ 'shape' => 'IpamPolicyResourceType', 'locationName' => 'resourceType', ], 'AllocationRules' => [ 'shape' => 'IpamPolicyAllocationRuleList', 'locationName' => 'allocationRuleSet', ], ], ], 'IpamPolicyDocumentSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPolicyDocument', 'locationName' => 'item', ], ], 'IpamPolicyId' => [ 'type' => 'string', ], 'IpamPolicyManagedBy' => [ 'type' => 'string', 'enum' => [ 'account', 'delegated-administrator-for-ipam', ], ], 'IpamPolicyOrganizationTarget' => [ 'type' => 'structure', 'members' => [ 'OrganizationTargetId' => [ 'shape' => 'String', 'locationName' => 'organizationTargetId', ], ], ], 'IpamPolicyOrganizationTargetSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPolicyOrganizationTarget', 'locationName' => 'item', ], ], 'IpamPolicyResourceType' => [ 'type' => 'string', 'enum' => [ 'alb', 'eip', 'rds', 'rnat', ], ], 'IpamPolicySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPolicy', 'locationName' => 'item', ], ], 'IpamPolicyState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'modify-in-progress', 'modify-complete', 'modify-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', 'isolate-in-progress', 'isolate-complete', 'restore-in-progress', ], ], 'IpamPool' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', 'locationName' => 'ipamPoolId', ], 'SourceIpamPoolId' => [ 'shape' => 'IpamPoolId', 'locationName' => 'sourceIpamPoolId', ], 'IpamPoolArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamPoolArn', ], 'IpamScopeArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamScopeArn', ], 'IpamScopeType' => [ 'shape' => 'IpamScopeType', 'locationName' => 'ipamScopeType', ], 'IpamArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamArn', ], 'IpamRegion' => [ 'shape' => 'String', 'locationName' => 'ipamRegion', ], 'Locale' => [ 'shape' => 'String', 'locationName' => 'locale', ], 'PoolDepth' => [ 'shape' => 'Integer', 'locationName' => 'poolDepth', ], 'State' => [ 'shape' => 'IpamPoolState', 'locationName' => 'state', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'AutoImport' => [ 'shape' => 'Boolean', 'locationName' => 'autoImport', ], 'PubliclyAdvertisable' => [ 'shape' => 'Boolean', 'locationName' => 'publiclyAdvertisable', ], 'AddressFamily' => [ 'shape' => 'AddressFamily', 'locationName' => 'addressFamily', ], 'AllocationMinNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', 'locationName' => 'allocationMinNetmaskLength', ], 'AllocationMaxNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', 'locationName' => 'allocationMaxNetmaskLength', ], 'AllocationDefaultNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', 'locationName' => 'allocationDefaultNetmaskLength', ], 'AllocationResourceTags' => [ 'shape' => 'IpamResourceTagList', 'locationName' => 'allocationResourceTagSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'AwsService' => [ 'shape' => 'IpamPoolAwsService', 'locationName' => 'awsService', ], 'PublicIpSource' => [ 'shape' => 'IpamPoolPublicIpSource', 'locationName' => 'publicIpSource', ], 'SourceResource' => [ 'shape' => 'IpamPoolSourceResource', 'locationName' => 'sourceResource', ], ], ], 'IpamPoolAllocation' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'IpamPoolAllocationId' => [ 'shape' => 'IpamPoolAllocationId', 'locationName' => 'ipamPoolAllocationId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'IpamPoolAllocationResourceType', 'locationName' => 'resourceType', ], 'ResourceRegion' => [ 'shape' => 'String', 'locationName' => 'resourceRegion', ], 'ResourceOwner' => [ 'shape' => 'String', 'locationName' => 'resourceOwner', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'IpamPoolAllocationAllowedCidrs' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'IpamPoolAllocationDisallowedCidrs' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'IpamPoolAllocationId' => [ 'type' => 'string', ], 'IpamPoolAllocationResourceType' => [ 'type' => 'string', 'enum' => [ 'ipam-pool', 'vpc', 'ec2-public-ipv4-pool', 'custom', 'subnet', 'eip', 'anycast-ip-list', ], ], 'IpamPoolAllocationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPoolAllocation', 'locationName' => 'item', ], ], 'IpamPoolAwsService' => [ 'type' => 'string', 'enum' => [ 'ec2', 'global-services', ], ], 'IpamPoolCidr' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'State' => [ 'shape' => 'IpamPoolCidrState', 'locationName' => 'state', ], 'FailureReason' => [ 'shape' => 'IpamPoolCidrFailureReason', 'locationName' => 'failureReason', ], 'IpamPoolCidrId' => [ 'shape' => 'IpamPoolCidrId', 'locationName' => 'ipamPoolCidrId', ], 'NetmaskLength' => [ 'shape' => 'Integer', 'locationName' => 'netmaskLength', ], ], ], 'IpamPoolCidrFailureCode' => [ 'type' => 'string', 'enum' => [ 'cidr-not-available', 'limit-exceeded', ], ], 'IpamPoolCidrFailureReason' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'IpamPoolCidrFailureCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'IpamPoolCidrId' => [ 'type' => 'string', ], 'IpamPoolCidrSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPoolCidr', 'locationName' => 'item', ], ], 'IpamPoolCidrState' => [ 'type' => 'string', 'enum' => [ 'pending-provision', 'provisioned', 'failed-provision', 'pending-deprovision', 'deprovisioned', 'failed-deprovision', 'pending-import', 'failed-import', ], ], 'IpamPoolId' => [ 'type' => 'string', ], 'IpamPoolPublicIpSource' => [ 'type' => 'string', 'enum' => [ 'amazon', 'byoip', ], ], 'IpamPoolSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPool', 'locationName' => 'item', ], ], 'IpamPoolSourceResource' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'IpamPoolSourceResourceType', 'locationName' => 'resourceType', ], 'ResourceRegion' => [ 'shape' => 'String', 'locationName' => 'resourceRegion', ], 'ResourceOwner' => [ 'shape' => 'String', 'locationName' => 'resourceOwner', ], ], ], 'IpamPoolSourceResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'IpamPoolSourceResourceType', ], 'ResourceRegion' => [ 'shape' => 'String', ], 'ResourceOwner' => [ 'shape' => 'String', ], ], ], 'IpamPoolSourceResourceType' => [ 'type' => 'string', 'enum' => [ 'vpc', ], ], 'IpamPoolState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'modify-in-progress', 'modify-complete', 'modify-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', 'isolate-in-progress', 'isolate-complete', 'restore-in-progress', ], ], 'IpamPrefixListResolver' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', 'locationName' => 'ipamPrefixListResolverId', ], 'IpamPrefixListResolverArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamPrefixListResolverArn', ], 'IpamArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamArn', ], 'IpamRegion' => [ 'shape' => 'String', 'locationName' => 'ipamRegion', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'AddressFamily' => [ 'shape' => 'AddressFamily', 'locationName' => 'addressFamily', ], 'State' => [ 'shape' => 'IpamPrefixListResolverState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'LastVersionCreationStatus' => [ 'shape' => 'IpamPrefixListResolverVersionCreationStatus', 'locationName' => 'lastVersionCreationStatus', ], 'LastVersionCreationStatusMessage' => [ 'shape' => 'String', 'locationName' => 'lastVersionCreationStatusMessage', ], ], ], 'IpamPrefixListResolverId' => [ 'type' => 'string', ], 'IpamPrefixListResolverRule' => [ 'type' => 'structure', 'members' => [ 'RuleType' => [ 'shape' => 'IpamPrefixListResolverRuleType', 'locationName' => 'ruleType', ], 'StaticCidr' => [ 'shape' => 'String', 'locationName' => 'staticCidr', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', 'locationName' => 'ipamScopeId', ], 'ResourceType' => [ 'shape' => 'IpamResourceType', 'locationName' => 'resourceType', ], 'Conditions' => [ 'shape' => 'IpamPrefixListResolverRuleConditionSet', 'locationName' => 'conditionSet', ], ], ], 'IpamPrefixListResolverRuleCondition' => [ 'type' => 'structure', 'members' => [ 'Operation' => [ 'shape' => 'IpamPrefixListResolverRuleConditionOperation', 'locationName' => 'operation', ], 'IpamPoolId' => [ 'shape' => 'String', 'locationName' => 'ipamPoolId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceOwner' => [ 'shape' => 'String', 'locationName' => 'resourceOwner', ], 'ResourceRegion' => [ 'shape' => 'String', 'locationName' => 'resourceRegion', ], 'ResourceTag' => [ 'shape' => 'IpamResourceTag', 'locationName' => 'resourceTag', ], 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], ], ], 'IpamPrefixListResolverRuleConditionOperation' => [ 'type' => 'string', 'enum' => [ 'equals', 'not-equals', 'subnet-of', ], ], 'IpamPrefixListResolverRuleConditionRequest' => [ 'type' => 'structure', 'required' => [ 'Operation', ], 'members' => [ 'Operation' => [ 'shape' => 'IpamPrefixListResolverRuleConditionOperation', ], 'IpamPoolId' => [ 'shape' => 'String', ], 'ResourceId' => [ 'shape' => 'String', ], 'ResourceOwner' => [ 'shape' => 'String', ], 'ResourceRegion' => [ 'shape' => 'String', ], 'ResourceTag' => [ 'shape' => 'RequestIpamResourceTag', ], 'Cidr' => [ 'shape' => 'String', ], ], ], 'IpamPrefixListResolverRuleConditionRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPrefixListResolverRuleConditionRequest', 'locationName' => 'Condition', ], ], 'IpamPrefixListResolverRuleConditionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPrefixListResolverRuleCondition', 'locationName' => 'item', ], ], 'IpamPrefixListResolverRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleType', ], 'members' => [ 'RuleType' => [ 'shape' => 'IpamPrefixListResolverRuleType', ], 'StaticCidr' => [ 'shape' => 'String', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', ], 'ResourceType' => [ 'shape' => 'IpamResourceType', ], 'Conditions' => [ 'shape' => 'IpamPrefixListResolverRuleConditionRequestSet', 'locationName' => 'Condition', ], ], ], 'IpamPrefixListResolverRuleRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPrefixListResolverRuleRequest', 'locationName' => 'Rule', ], ], 'IpamPrefixListResolverRuleSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPrefixListResolverRule', 'locationName' => 'item', ], ], 'IpamPrefixListResolverRuleType' => [ 'type' => 'string', 'enum' => [ 'static-cidr', 'ipam-resource-cidr', 'ipam-pool-cidr', ], ], 'IpamPrefixListResolverSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPrefixListResolver', 'locationName' => 'item', ], ], 'IpamPrefixListResolverState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'modify-in-progress', 'modify-complete', 'modify-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', 'isolate-in-progress', 'isolate-complete', 'restore-in-progress', ], ], 'IpamPrefixListResolverTarget' => [ 'type' => 'structure', 'members' => [ 'IpamPrefixListResolverTargetId' => [ 'shape' => 'IpamPrefixListResolverTargetId', 'locationName' => 'ipamPrefixListResolverTargetId', ], 'IpamPrefixListResolverTargetArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamPrefixListResolverTargetArn', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', 'locationName' => 'ipamPrefixListResolverId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', 'locationName' => 'prefixListId', ], 'PrefixListRegion' => [ 'shape' => 'String', 'locationName' => 'prefixListRegion', ], 'DesiredVersion' => [ 'shape' => 'BoxedLong', 'locationName' => 'desiredVersion', ], 'LastSyncedVersion' => [ 'shape' => 'BoxedLong', 'locationName' => 'lastSyncedVersion', ], 'TrackLatestVersion' => [ 'shape' => 'Boolean', 'locationName' => 'trackLatestVersion', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], 'State' => [ 'shape' => 'IpamPrefixListResolverTargetState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'IpamPrefixListResolverTargetId' => [ 'type' => 'string', ], 'IpamPrefixListResolverTargetSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPrefixListResolverTarget', 'locationName' => 'item', ], ], 'IpamPrefixListResolverTargetState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'modify-in-progress', 'modify-complete', 'modify-failed', 'sync-in-progress', 'sync-complete', 'sync-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', 'isolate-in-progress', 'isolate-complete', 'restore-in-progress', ], ], 'IpamPrefixListResolverVersion' => [ 'type' => 'structure', 'members' => [ 'Version' => [ 'shape' => 'Long', 'locationName' => 'version', ], ], ], 'IpamPrefixListResolverVersionCreationStatus' => [ 'type' => 'string', 'enum' => [ 'pending', 'success', 'failure', ], ], 'IpamPrefixListResolverVersionEntry' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], ], ], 'IpamPrefixListResolverVersionEntrySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPrefixListResolverVersionEntry', 'locationName' => 'item', ], ], 'IpamPrefixListResolverVersionNumberSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Long', 'locationName' => 'item', ], ], 'IpamPrefixListResolverVersionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPrefixListResolverVersion', 'locationName' => 'item', ], ], 'IpamPublicAddressAssociationStatus' => [ 'type' => 'string', 'enum' => [ 'associated', 'disassociated', ], ], 'IpamPublicAddressAwsService' => [ 'type' => 'string', 'enum' => [ 'nat-gateway', 'database-migration-service', 'redshift', 'elastic-container-service', 'relational-database-service', 'site-to-site-vpn', 'load-balancer', 'global-accelerator', 'cloudfront', 'other', ], ], 'IpamPublicAddressSecurityGroup' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], ], ], 'IpamPublicAddressSecurityGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPublicAddressSecurityGroup', 'locationName' => 'item', ], ], 'IpamPublicAddressTag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'IpamPublicAddressTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPublicAddressTag', 'locationName' => 'item', ], ], 'IpamPublicAddressTags' => [ 'type' => 'structure', 'members' => [ 'EipTags' => [ 'shape' => 'IpamPublicAddressTagList', 'locationName' => 'eipTagSet', ], ], ], 'IpamPublicAddressType' => [ 'type' => 'string', 'enum' => [ 'service-managed-ip', 'service-managed-byoip', 'amazon-owned-eip', 'amazon-owned-contig', 'byoip', 'ec2-public-ip', 'anycast-ip-list-ip', ], ], 'IpamResourceCidr' => [ 'type' => 'structure', 'members' => [ 'IpamId' => [ 'shape' => 'IpamId', 'locationName' => 'ipamId', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', 'locationName' => 'ipamScopeId', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', 'locationName' => 'ipamPoolId', ], 'ResourceRegion' => [ 'shape' => 'String', 'locationName' => 'resourceRegion', ], 'ResourceOwnerId' => [ 'shape' => 'String', 'locationName' => 'resourceOwnerId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceName' => [ 'shape' => 'String', 'locationName' => 'resourceName', ], 'ResourceCidr' => [ 'shape' => 'String', 'locationName' => 'resourceCidr', ], 'ResourceType' => [ 'shape' => 'IpamResourceType', 'locationName' => 'resourceType', ], 'ResourceTags' => [ 'shape' => 'IpamResourceTagList', 'locationName' => 'resourceTagSet', ], 'IpUsage' => [ 'shape' => 'BoxedDouble', 'locationName' => 'ipUsage', ], 'ComplianceStatus' => [ 'shape' => 'IpamComplianceStatus', 'locationName' => 'complianceStatus', ], 'ManagementState' => [ 'shape' => 'IpamManagementState', 'locationName' => 'managementState', ], 'OverlapStatus' => [ 'shape' => 'IpamOverlapStatus', 'locationName' => 'overlapStatus', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], ], ], 'IpamResourceCidrIpSource' => [ 'type' => 'string', 'enum' => [ 'amazon', 'byoip', 'none', ], ], 'IpamResourceCidrSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamResourceCidr', 'locationName' => 'item', ], ], 'IpamResourceDiscovery' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', 'locationName' => 'ipamResourceDiscoveryId', ], 'IpamResourceDiscoveryArn' => [ 'shape' => 'String', 'locationName' => 'ipamResourceDiscoveryArn', ], 'IpamResourceDiscoveryRegion' => [ 'shape' => 'String', 'locationName' => 'ipamResourceDiscoveryRegion', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'OperatingRegions' => [ 'shape' => 'IpamOperatingRegionSet', 'locationName' => 'operatingRegionSet', ], 'IsDefault' => [ 'shape' => 'Boolean', 'locationName' => 'isDefault', ], 'State' => [ 'shape' => 'IpamResourceDiscoveryState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'OrganizationalUnitExclusions' => [ 'shape' => 'IpamOrganizationalUnitExclusionSet', 'locationName' => 'organizationalUnitExclusionSet', ], ], ], 'IpamResourceDiscoveryAssociation' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'IpamResourceDiscoveryAssociationId' => [ 'shape' => 'IpamResourceDiscoveryAssociationId', 'locationName' => 'ipamResourceDiscoveryAssociationId', ], 'IpamResourceDiscoveryAssociationArn' => [ 'shape' => 'String', 'locationName' => 'ipamResourceDiscoveryAssociationArn', ], 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', 'locationName' => 'ipamResourceDiscoveryId', ], 'IpamId' => [ 'shape' => 'IpamId', 'locationName' => 'ipamId', ], 'IpamArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamArn', ], 'IpamRegion' => [ 'shape' => 'String', 'locationName' => 'ipamRegion', ], 'IsDefault' => [ 'shape' => 'Boolean', 'locationName' => 'isDefault', ], 'ResourceDiscoveryStatus' => [ 'shape' => 'IpamAssociatedResourceDiscoveryStatus', 'locationName' => 'resourceDiscoveryStatus', ], 'State' => [ 'shape' => 'IpamResourceDiscoveryAssociationState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'IpamResourceDiscoveryAssociationId' => [ 'type' => 'string', ], 'IpamResourceDiscoveryAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamResourceDiscoveryAssociation', 'locationName' => 'item', ], ], 'IpamResourceDiscoveryAssociationState' => [ 'type' => 'string', 'enum' => [ 'associate-in-progress', 'associate-complete', 'associate-failed', 'disassociate-in-progress', 'disassociate-complete', 'disassociate-failed', 'isolate-in-progress', 'isolate-complete', 'restore-in-progress', ], ], 'IpamResourceDiscoveryId' => [ 'type' => 'string', ], 'IpamResourceDiscoverySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamResourceDiscovery', 'locationName' => 'item', ], ], 'IpamResourceDiscoveryState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'modify-in-progress', 'modify-complete', 'modify-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', 'isolate-in-progress', 'isolate-complete', 'restore-in-progress', ], ], 'IpamResourceTag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'IpamResourceTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamResourceTag', 'locationName' => 'item', ], ], 'IpamResourceType' => [ 'type' => 'string', 'enum' => [ 'vpc', 'subnet', 'eip', 'public-ipv4-pool', 'ipv6-pool', 'eni', 'anycast-ip-list', ], ], 'IpamScope' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', 'locationName' => 'ipamScopeId', ], 'IpamScopeArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamScopeArn', ], 'IpamArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamArn', ], 'IpamRegion' => [ 'shape' => 'String', 'locationName' => 'ipamRegion', ], 'IpamScopeType' => [ 'shape' => 'IpamScopeType', 'locationName' => 'ipamScopeType', ], 'IsDefault' => [ 'shape' => 'Boolean', 'locationName' => 'isDefault', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'PoolCount' => [ 'shape' => 'Integer', 'locationName' => 'poolCount', ], 'State' => [ 'shape' => 'IpamScopeState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'ExternalAuthorityConfiguration' => [ 'shape' => 'IpamScopeExternalAuthorityConfiguration', 'locationName' => 'externalAuthorityConfiguration', ], ], ], 'IpamScopeExternalAuthorityConfiguration' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'IpamScopeExternalAuthorityType', 'locationName' => 'type', ], 'ExternalResourceIdentifier' => [ 'shape' => 'String', 'locationName' => 'externalResourceIdentifier', ], ], ], 'IpamScopeExternalAuthorityType' => [ 'type' => 'string', 'enum' => [ 'infoblox', ], ], 'IpamScopeId' => [ 'type' => 'string', ], 'IpamScopeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamScope', 'locationName' => 'item', ], ], 'IpamScopeState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'modify-in-progress', 'modify-complete', 'modify-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', 'isolate-in-progress', 'isolate-complete', 'restore-in-progress', ], ], 'IpamScopeType' => [ 'type' => 'string', 'enum' => [ 'public', 'private', ], ], 'IpamSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipam', 'locationName' => 'item', ], ], 'IpamState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'modify-in-progress', 'modify-complete', 'modify-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', 'isolate-in-progress', 'isolate-complete', 'restore-in-progress', ], ], 'IpamTier' => [ 'type' => 'string', 'enum' => [ 'free', 'advanced', ], ], 'Ipv4AddressesPerSecondaryInterface' => [ 'type' => 'integer', ], 'Ipv4PoolCoipId' => [ 'type' => 'string', ], 'Ipv4PoolEc2Id' => [ 'type' => 'string', ], 'Ipv4PrefixList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv4PrefixSpecificationRequest', 'locationName' => 'item', ], ], 'Ipv4PrefixListResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv4PrefixSpecificationResponse', 'locationName' => 'item', ], ], 'Ipv4PrefixSpecification' => [ 'type' => 'structure', 'members' => [ 'Ipv4Prefix' => [ 'shape' => 'String', 'locationName' => 'ipv4Prefix', ], ], ], 'Ipv4PrefixSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'Ipv4Prefix' => [ 'shape' => 'String', ], ], ], 'Ipv4PrefixSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'Ipv4Prefix' => [ 'shape' => 'String', 'locationName' => 'ipv4Prefix', ], ], ], 'Ipv4PrefixesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv4PrefixSpecification', 'locationName' => 'item', ], ], 'Ipv6Address' => [ 'type' => 'string', ], 'Ipv6AddressAttribute' => [ 'type' => 'string', 'enum' => [ 'public', 'private', ], ], 'Ipv6AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'Ipv6CidrAssociation' => [ 'type' => 'structure', 'members' => [ 'Ipv6Cidr' => [ 'shape' => 'String', 'locationName' => 'ipv6Cidr', ], 'AssociatedResource' => [ 'shape' => 'String', 'locationName' => 'associatedResource', ], ], ], 'Ipv6CidrAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6CidrAssociation', 'locationName' => 'item', ], ], 'Ipv6CidrBlock' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], ], ], 'Ipv6CidrBlockSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6CidrBlock', 'locationName' => 'item', ], ], 'Ipv6Flag' => [ 'type' => 'boolean', ], 'Ipv6Pool' => [ 'type' => 'structure', 'members' => [ 'PoolId' => [ 'shape' => 'String', 'locationName' => 'poolId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'PoolCidrBlocks' => [ 'shape' => 'PoolCidrBlocksSet', 'locationName' => 'poolCidrBlockSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'Ipv6PoolEc2Id' => [ 'type' => 'string', ], 'Ipv6PoolIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6PoolEc2Id', 'locationName' => 'item', ], ], 'Ipv6PoolMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'Ipv6PoolSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6Pool', 'locationName' => 'item', ], ], 'Ipv6PrefixList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6PrefixSpecificationRequest', 'locationName' => 'item', ], ], 'Ipv6PrefixListResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6PrefixSpecificationResponse', 'locationName' => 'item', ], ], 'Ipv6PrefixSpecification' => [ 'type' => 'structure', 'members' => [ 'Ipv6Prefix' => [ 'shape' => 'String', 'locationName' => 'ipv6Prefix', ], ], ], 'Ipv6PrefixSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'Ipv6Prefix' => [ 'shape' => 'String', ], ], ], 'Ipv6PrefixSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'Ipv6Prefix' => [ 'shape' => 'String', 'locationName' => 'ipv6Prefix', ], ], ], 'Ipv6PrefixesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6PrefixSpecification', 'locationName' => 'item', ], ], 'Ipv6Range' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'CidrIpv6' => [ 'shape' => 'String', 'locationName' => 'cidrIpv6', ], ], ], 'Ipv6RangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6Range', 'locationName' => 'item', ], ], 'Ipv6SupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'KernelId' => [ 'type' => 'string', ], 'KeyFormat' => [ 'type' => 'string', 'enum' => [ 'pem', 'ppk', ], ], 'KeyNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyPairName', 'locationName' => 'KeyName', ], ], 'KeyPair' => [ 'type' => 'structure', 'members' => [ 'KeyPairId' => [ 'shape' => 'String', 'locationName' => 'keyPairId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'KeyFingerprint' => [ 'shape' => 'String', 'locationName' => 'keyFingerprint', ], 'KeyMaterial' => [ 'shape' => 'SensitiveUserData', 'locationName' => 'keyMaterial', ], ], ], 'KeyPairId' => [ 'type' => 'string', ], 'KeyPairIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyPairId', 'locationName' => 'KeyPairId', ], ], 'KeyPairInfo' => [ 'type' => 'structure', 'members' => [ 'KeyPairId' => [ 'shape' => 'String', 'locationName' => 'keyPairId', ], 'KeyType' => [ 'shape' => 'KeyType', 'locationName' => 'keyType', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'PublicKey' => [ 'shape' => 'String', 'locationName' => 'publicKey', ], 'CreateTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createTime', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'KeyFingerprint' => [ 'shape' => 'String', 'locationName' => 'keyFingerprint', ], ], ], 'KeyPairList' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyPairInfo', 'locationName' => 'item', ], ], 'KeyPairName' => [ 'type' => 'string', ], 'KeyPairNameWithResolver' => [ 'type' => 'string', ], 'KeyType' => [ 'type' => 'string', 'enum' => [ 'rsa', 'ed25519', ], ], 'KmsKeyArn' => [ 'type' => 'string', ], 'KmsKeyId' => [ 'type' => 'string', ], 'LastError' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], ], ], 'LaunchPermission' => [ 'type' => 'structure', 'members' => [ 'OrganizationArn' => [ 'shape' => 'String', 'locationName' => 'organizationArn', ], 'OrganizationalUnitArn' => [ 'shape' => 'String', 'locationName' => 'organizationalUnitArn', ], 'UserId' => [ 'shape' => 'String', 'locationName' => 'userId', ], 'Group' => [ 'shape' => 'PermissionGroup', 'locationName' => 'group', ], ], ], 'LaunchPermissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchPermission', 'locationName' => 'item', ], ], 'LaunchPermissionModifications' => [ 'type' => 'structure', 'members' => [ 'Add' => [ 'shape' => 'LaunchPermissionList', ], 'Remove' => [ 'shape' => 'LaunchPermissionList', ], ], ], 'LaunchSpecification' => [ 'type' => 'structure', 'members' => [ 'UserData' => [ 'shape' => 'SensitiveUserData', 'locationName' => 'userData', ], 'AddressingType' => [ 'shape' => 'String', 'locationName' => 'addressingType', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceSpecificationList', 'locationName' => 'networkInterfaceSet', ], 'Placement' => [ 'shape' => 'SpotPlacement', 'locationName' => 'placement', ], 'RamdiskId' => [ 'shape' => 'String', 'locationName' => 'ramdiskId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'SecurityGroups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'Monitoring' => [ 'shape' => 'RunInstancesMonitoringEnabled', 'locationName' => 'monitoring', ], ], ], 'LaunchSpecsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotFleetLaunchSpecification', 'locationName' => 'item', ], ], 'LaunchTemplate' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', 'locationName' => 'launchTemplateName', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'CreatedBy' => [ 'shape' => 'String', 'locationName' => 'createdBy', ], 'DefaultVersionNumber' => [ 'shape' => 'Long', 'locationName' => 'defaultVersionNumber', ], 'LatestVersionNumber' => [ 'shape' => 'Long', 'locationName' => 'latestVersionNumber', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], ], ], 'LaunchTemplateAndOverridesResponse' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateSpecification' => [ 'shape' => 'FleetLaunchTemplateSpecification', 'locationName' => 'launchTemplateSpecification', ], 'Overrides' => [ 'shape' => 'FleetLaunchTemplateOverrides', 'locationName' => 'overrides', ], ], ], 'LaunchTemplateAutoRecoveryState' => [ 'type' => 'string', 'enum' => [ 'default', 'disabled', ], ], 'LaunchTemplateBlockDeviceMapping' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'VirtualName' => [ 'shape' => 'String', 'locationName' => 'virtualName', ], 'Ebs' => [ 'shape' => 'LaunchTemplateEbsBlockDevice', 'locationName' => 'ebs', ], 'NoDevice' => [ 'shape' => 'String', 'locationName' => 'noDevice', ], ], ], 'LaunchTemplateBlockDeviceMappingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateBlockDeviceMapping', 'locationName' => 'item', ], ], 'LaunchTemplateBlockDeviceMappingRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', ], 'VirtualName' => [ 'shape' => 'String', ], 'Ebs' => [ 'shape' => 'LaunchTemplateEbsBlockDeviceRequest', ], 'NoDevice' => [ 'shape' => 'String', ], ], ], 'LaunchTemplateBlockDeviceMappingRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateBlockDeviceMappingRequest', 'locationName' => 'BlockDeviceMapping', ], ], 'LaunchTemplateCapacityReservationSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationPreference' => [ 'shape' => 'CapacityReservationPreference', ], 'CapacityReservationTarget' => [ 'shape' => 'CapacityReservationTarget', ], ], ], 'LaunchTemplateCapacityReservationSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationPreference' => [ 'shape' => 'CapacityReservationPreference', 'locationName' => 'capacityReservationPreference', ], 'CapacityReservationTarget' => [ 'shape' => 'CapacityReservationTargetResponse', 'locationName' => 'capacityReservationTarget', ], ], ], 'LaunchTemplateConfig' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateSpecification' => [ 'shape' => 'FleetLaunchTemplateSpecification', 'locationName' => 'launchTemplateSpecification', ], 'Overrides' => [ 'shape' => 'LaunchTemplateOverridesList', 'locationName' => 'overrides', ], ], ], 'LaunchTemplateConfigList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateConfig', 'locationName' => 'item', ], ], 'LaunchTemplateCpuOptions' => [ 'type' => 'structure', 'members' => [ 'CoreCount' => [ 'shape' => 'Integer', 'locationName' => 'coreCount', ], 'ThreadsPerCore' => [ 'shape' => 'Integer', 'locationName' => 'threadsPerCore', ], 'AmdSevSnp' => [ 'shape' => 'AmdSevSnpSpecification', 'locationName' => 'amdSevSnp', ], 'NestedVirtualization' => [ 'shape' => 'NestedVirtualizationSpecification', 'locationName' => 'nestedVirtualization', ], ], ], 'LaunchTemplateCpuOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'CoreCount' => [ 'shape' => 'Integer', ], 'ThreadsPerCore' => [ 'shape' => 'Integer', ], 'AmdSevSnp' => [ 'shape' => 'AmdSevSnpSpecification', ], 'NestedVirtualization' => [ 'shape' => 'NestedVirtualizationSpecification', ], ], ], 'LaunchTemplateEbsBlockDevice' => [ 'type' => 'structure', 'members' => [ 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Iops' => [ 'shape' => 'Integer', 'locationName' => 'iops', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', 'locationName' => 'kmsKeyId', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', 'locationName' => 'snapshotId', ], 'VolumeSize' => [ 'shape' => 'Integer', 'locationName' => 'volumeSize', ], 'VolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'volumeType', ], 'Throughput' => [ 'shape' => 'Integer', 'locationName' => 'throughput', ], 'VolumeInitializationRate' => [ 'shape' => 'Integer', 'locationName' => 'volumeInitializationRate', ], 'EbsCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'ebsCardIndex', ], ], ], 'LaunchTemplateEbsBlockDeviceRequest' => [ 'type' => 'structure', 'members' => [ 'Encrypted' => [ 'shape' => 'Boolean', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'Iops' => [ 'shape' => 'Integer', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'VolumeSize' => [ 'shape' => 'Integer', ], 'VolumeType' => [ 'shape' => 'VolumeType', ], 'Throughput' => [ 'shape' => 'Integer', ], 'VolumeInitializationRate' => [ 'shape' => 'Integer', ], 'EbsCardIndex' => [ 'shape' => 'Integer', ], ], ], 'LaunchTemplateElasticInferenceAccelerator' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Count' => [ 'shape' => 'LaunchTemplateElasticInferenceAcceleratorCount', ], ], ], 'LaunchTemplateElasticInferenceAcceleratorCount' => [ 'type' => 'integer', 'min' => 1, ], 'LaunchTemplateElasticInferenceAcceleratorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateElasticInferenceAccelerator', 'locationName' => 'item', ], ], 'LaunchTemplateElasticInferenceAcceleratorResponse' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], 'Count' => [ 'shape' => 'Integer', 'locationName' => 'count', ], ], ], 'LaunchTemplateElasticInferenceAcceleratorResponseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateElasticInferenceAcceleratorResponse', 'locationName' => 'item', ], ], 'LaunchTemplateEnaSrdSpecification' => [ 'type' => 'structure', 'members' => [ 'EnaSrdEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'enaSrdEnabled', ], 'EnaSrdUdpSpecification' => [ 'shape' => 'LaunchTemplateEnaSrdUdpSpecification', 'locationName' => 'enaSrdUdpSpecification', ], ], ], 'LaunchTemplateEnaSrdUdpSpecification' => [ 'type' => 'structure', 'members' => [ 'EnaSrdUdpEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'enaSrdUdpEnabled', ], ], ], 'LaunchTemplateEnclaveOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], ], ], 'LaunchTemplateEnclaveOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'LaunchTemplateErrorCode' => [ 'type' => 'string', 'enum' => [ 'launchTemplateIdDoesNotExist', 'launchTemplateIdMalformed', 'launchTemplateNameDoesNotExist', 'launchTemplateNameMalformed', 'launchTemplateVersionDoesNotExist', 'unexpectedError', ], ], 'LaunchTemplateHibernationOptions' => [ 'type' => 'structure', 'members' => [ 'Configured' => [ 'shape' => 'Boolean', 'locationName' => 'configured', ], ], ], 'LaunchTemplateHibernationOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'Configured' => [ 'shape' => 'Boolean', ], ], ], 'LaunchTemplateHttpTokensState' => [ 'type' => 'string', 'enum' => [ 'optional', 'required', ], ], 'LaunchTemplateIamInstanceProfileSpecification' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'LaunchTemplateIamInstanceProfileSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], ], ], 'LaunchTemplateId' => [ 'type' => 'string', ], 'LaunchTemplateIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateId', 'locationName' => 'item', ], ], 'LaunchTemplateInstanceMaintenanceOptions' => [ 'type' => 'structure', 'members' => [ 'AutoRecovery' => [ 'shape' => 'LaunchTemplateAutoRecoveryState', 'locationName' => 'autoRecovery', ], ], ], 'LaunchTemplateInstanceMaintenanceOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AutoRecovery' => [ 'shape' => 'LaunchTemplateAutoRecoveryState', ], ], ], 'LaunchTemplateInstanceMarketOptions' => [ 'type' => 'structure', 'members' => [ 'MarketType' => [ 'shape' => 'MarketType', 'locationName' => 'marketType', ], 'SpotOptions' => [ 'shape' => 'LaunchTemplateSpotMarketOptions', 'locationName' => 'spotOptions', ], ], ], 'LaunchTemplateInstanceMarketOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'MarketType' => [ 'shape' => 'MarketType', ], 'SpotOptions' => [ 'shape' => 'LaunchTemplateSpotMarketOptionsRequest', ], ], ], 'LaunchTemplateInstanceMetadataEndpointState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', ], ], 'LaunchTemplateInstanceMetadataOptions' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'LaunchTemplateInstanceMetadataOptionsState', 'locationName' => 'state', ], 'HttpTokens' => [ 'shape' => 'LaunchTemplateHttpTokensState', 'locationName' => 'httpTokens', ], 'HttpPutResponseHopLimit' => [ 'shape' => 'Integer', 'locationName' => 'httpPutResponseHopLimit', ], 'HttpEndpoint' => [ 'shape' => 'LaunchTemplateInstanceMetadataEndpointState', 'locationName' => 'httpEndpoint', ], 'HttpProtocolIpv6' => [ 'shape' => 'LaunchTemplateInstanceMetadataProtocolIpv6', 'locationName' => 'httpProtocolIpv6', ], 'InstanceMetadataTags' => [ 'shape' => 'LaunchTemplateInstanceMetadataTagsState', 'locationName' => 'instanceMetadataTags', ], ], ], 'LaunchTemplateInstanceMetadataOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'HttpTokens' => [ 'shape' => 'LaunchTemplateHttpTokensState', ], 'HttpPutResponseHopLimit' => [ 'shape' => 'Integer', ], 'HttpEndpoint' => [ 'shape' => 'LaunchTemplateInstanceMetadataEndpointState', ], 'HttpProtocolIpv6' => [ 'shape' => 'LaunchTemplateInstanceMetadataProtocolIpv6', ], 'InstanceMetadataTags' => [ 'shape' => 'LaunchTemplateInstanceMetadataTagsState', ], ], ], 'LaunchTemplateInstanceMetadataOptionsState' => [ 'type' => 'string', 'enum' => [ 'pending', 'applied', ], ], 'LaunchTemplateInstanceMetadataProtocolIpv6' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', ], ], 'LaunchTemplateInstanceMetadataTagsState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', ], ], 'LaunchTemplateInstanceNetworkInterfaceSpecification' => [ 'type' => 'structure', 'members' => [ 'AssociateCarrierIpAddress' => [ 'shape' => 'Boolean', 'locationName' => 'associateCarrierIpAddress', ], 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', 'locationName' => 'associatePublicIpAddress', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'Groups' => [ 'shape' => 'GroupIdStringList', 'locationName' => 'groupSet', ], 'InterfaceType' => [ 'shape' => 'String', 'locationName' => 'interfaceType', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', 'locationName' => 'ipv6AddressCount', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressList', 'locationName' => 'ipv6AddressesSet', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressSpecificationList', 'locationName' => 'privateIpAddressesSet', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'secondaryPrivateIpAddressCount', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'networkCardIndex', ], 'Ipv4Prefixes' => [ 'shape' => 'Ipv4PrefixListResponse', 'locationName' => 'ipv4PrefixSet', ], 'Ipv4PrefixCount' => [ 'shape' => 'Integer', 'locationName' => 'ipv4PrefixCount', ], 'Ipv6Prefixes' => [ 'shape' => 'Ipv6PrefixListResponse', 'locationName' => 'ipv6PrefixSet', ], 'Ipv6PrefixCount' => [ 'shape' => 'Integer', 'locationName' => 'ipv6PrefixCount', ], 'PrimaryIpv6' => [ 'shape' => 'Boolean', 'locationName' => 'primaryIpv6', ], 'EnaSrdSpecification' => [ 'shape' => 'LaunchTemplateEnaSrdSpecification', 'locationName' => 'enaSrdSpecification', ], 'ConnectionTrackingSpecification' => [ 'shape' => 'ConnectionTrackingSpecification', 'locationName' => 'connectionTrackingSpecification', ], 'EnaQueueCount' => [ 'shape' => 'Integer', 'locationName' => 'enaQueueCount', ], ], ], 'LaunchTemplateInstanceNetworkInterfaceSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateInstanceNetworkInterfaceSpecification', 'locationName' => 'item', ], ], 'LaunchTemplateInstanceNetworkInterfaceSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'AssociateCarrierIpAddress' => [ 'shape' => 'Boolean', ], 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'Description' => [ 'shape' => 'String', ], 'DeviceIndex' => [ 'shape' => 'Integer', ], 'Groups' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'InterfaceType' => [ 'shape' => 'String', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressListRequest', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'PrivateIpAddress' => [ 'shape' => 'String', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressSpecificationList', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', ], 'Ipv4Prefixes' => [ 'shape' => 'Ipv4PrefixList', 'locationName' => 'Ipv4Prefix', ], 'Ipv4PrefixCount' => [ 'shape' => 'Integer', ], 'Ipv6Prefixes' => [ 'shape' => 'Ipv6PrefixList', 'locationName' => 'Ipv6Prefix', ], 'Ipv6PrefixCount' => [ 'shape' => 'Integer', ], 'PrimaryIpv6' => [ 'shape' => 'Boolean', ], 'EnaSrdSpecification' => [ 'shape' => 'EnaSrdSpecificationRequest', ], 'ConnectionTrackingSpecification' => [ 'shape' => 'ConnectionTrackingSpecificationRequest', ], 'EnaQueueCount' => [ 'shape' => 'Integer', ], ], ], 'LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateInstanceNetworkInterfaceSpecificationRequest', 'locationName' => 'InstanceNetworkInterfaceSpecification', ], ], 'LaunchTemplateInstanceSecondaryInterfaceSpecification' => [ 'type' => 'structure', 'members' => [ 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'PrivateIpAddresses' => [ 'shape' => 'SecondaryInterfacePrivateIpAddressSpecificationList', 'locationName' => 'privateIpAddressesSet', ], 'PrivateIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'privateIpAddressCount', ], 'SecondarySubnetId' => [ 'shape' => 'SecondarySubnetId', 'locationName' => 'secondarySubnetId', ], 'InterfaceType' => [ 'shape' => 'SecondaryInterfaceType', 'locationName' => 'interfaceType', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'networkCardIndex', ], ], ], 'LaunchTemplateInstanceSecondaryInterfaceSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateInstanceSecondaryInterfaceSpecification', 'locationName' => 'item', ], ], 'LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'DeviceIndex' => [ 'shape' => 'Integer', ], 'PrivateIpAddresses' => [ 'shape' => 'SecondaryInterfacePrivateIpAddressSpecificationListRequest', 'locationName' => 'PrivateIpAddress', ], 'PrivateIpAddressCount' => [ 'shape' => 'Integer', ], 'SecondarySubnetId' => [ 'shape' => 'SecondarySubnetId', ], 'InterfaceType' => [ 'shape' => 'SecondaryInterfaceType', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', ], ], ], 'LaunchTemplateInstanceSecondaryInterfaceSpecificationRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest', 'locationName' => 'InstanceSecondaryInterfaceSpecification', ], ], 'LaunchTemplateLicenseConfiguration' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', 'locationName' => 'licenseConfigurationArn', ], ], ], 'LaunchTemplateLicenseConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', ], ], ], 'LaunchTemplateLicenseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateLicenseConfiguration', 'locationName' => 'item', ], ], 'LaunchTemplateLicenseSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateLicenseConfigurationRequest', 'locationName' => 'item', ], ], 'LaunchTemplateName' => [ 'type' => 'string', 'max' => 128, 'min' => 3, 'pattern' => '[a-zA-Z0-9\\(\\)\\.\\-/_]+', ], 'LaunchTemplateNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateName', 'locationName' => 'item', ], ], 'LaunchTemplateNetworkPerformanceOptions' => [ 'type' => 'structure', 'members' => [ 'BandwidthWeighting' => [ 'shape' => 'InstanceBandwidthWeighting', 'locationName' => 'bandwidthWeighting', ], ], ], 'LaunchTemplateNetworkPerformanceOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'BandwidthWeighting' => [ 'shape' => 'InstanceBandwidthWeighting', ], ], ], 'LaunchTemplateOverrides' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'WeightedCapacity' => [ 'shape' => 'Double', 'locationName' => 'weightedCapacity', ], 'Priority' => [ 'shape' => 'Double', 'locationName' => 'priority', ], 'InstanceRequirements' => [ 'shape' => 'InstanceRequirements', 'locationName' => 'instanceRequirements', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], ], ], 'LaunchTemplateOverridesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateOverrides', 'locationName' => 'item', ], ], 'LaunchTemplatePlacement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], 'Affinity' => [ 'shape' => 'String', 'locationName' => 'affinity', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], 'Tenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'tenancy', ], 'SpreadDomain' => [ 'shape' => 'String', 'locationName' => 'spreadDomain', ], 'HostResourceGroupArn' => [ 'shape' => 'String', 'locationName' => 'hostResourceGroupArn', ], 'PartitionNumber' => [ 'shape' => 'Integer', 'locationName' => 'partitionNumber', ], 'GroupId' => [ 'shape' => 'PlacementGroupId', 'locationName' => 'groupId', ], ], ], 'LaunchTemplatePlacementRequest' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'Affinity' => [ 'shape' => 'String', ], 'GroupName' => [ 'shape' => 'PlacementGroupName', ], 'HostId' => [ 'shape' => 'DedicatedHostId', ], 'Tenancy' => [ 'shape' => 'Tenancy', ], 'SpreadDomain' => [ 'shape' => 'String', ], 'HostResourceGroupArn' => [ 'shape' => 'String', ], 'PartitionNumber' => [ 'shape' => 'Integer', ], 'GroupId' => [ 'shape' => 'PlacementGroupId', ], ], ], 'LaunchTemplatePrivateDnsNameOptions' => [ 'type' => 'structure', 'members' => [ 'HostnameType' => [ 'shape' => 'HostnameType', 'locationName' => 'hostnameType', ], 'EnableResourceNameDnsARecord' => [ 'shape' => 'Boolean', 'locationName' => 'enableResourceNameDnsARecord', ], 'EnableResourceNameDnsAAAARecord' => [ 'shape' => 'Boolean', 'locationName' => 'enableResourceNameDnsAAAARecord', ], ], ], 'LaunchTemplatePrivateDnsNameOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'HostnameType' => [ 'shape' => 'HostnameType', ], 'EnableResourceNameDnsARecord' => [ 'shape' => 'Boolean', ], 'EnableResourceNameDnsAAAARecord' => [ 'shape' => 'Boolean', ], ], ], 'LaunchTemplateSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplate', 'locationName' => 'item', ], ], 'LaunchTemplateSpecification' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'String', ], 'Version' => [ 'shape' => 'String', ], ], ], 'LaunchTemplateSpotMarketOptions' => [ 'type' => 'structure', 'members' => [ 'MaxPrice' => [ 'shape' => 'String', 'locationName' => 'maxPrice', ], 'SpotInstanceType' => [ 'shape' => 'SpotInstanceType', 'locationName' => 'spotInstanceType', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'blockDurationMinutes', ], 'ValidUntil' => [ 'shape' => 'DateTime', 'locationName' => 'validUntil', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', 'locationName' => 'instanceInterruptionBehavior', ], ], ], 'LaunchTemplateSpotMarketOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxPrice' => [ 'shape' => 'String', ], 'SpotInstanceType' => [ 'shape' => 'SpotInstanceType', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', ], 'ValidUntil' => [ 'shape' => 'DateTime', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', ], ], ], 'LaunchTemplateTagSpecification' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', 'locationName' => 'resourceType', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'LaunchTemplateTagSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateTagSpecification', 'locationName' => 'item', ], ], 'LaunchTemplateTagSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'Tag', ], ], ], 'LaunchTemplateTagSpecificationRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateTagSpecificationRequest', 'locationName' => 'LaunchTemplateTagSpecificationRequest', ], ], 'LaunchTemplateVersion' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', 'locationName' => 'launchTemplateName', ], 'VersionNumber' => [ 'shape' => 'Long', 'locationName' => 'versionNumber', ], 'VersionDescription' => [ 'shape' => 'VersionDescription', 'locationName' => 'versionDescription', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'CreatedBy' => [ 'shape' => 'String', 'locationName' => 'createdBy', ], 'DefaultVersion' => [ 'shape' => 'Boolean', 'locationName' => 'defaultVersion', ], 'LaunchTemplateData' => [ 'shape' => 'ResponseLaunchTemplateData', 'locationName' => 'launchTemplateData', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], ], ], 'LaunchTemplateVersionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateVersion', 'locationName' => 'item', ], ], 'LaunchTemplatesMonitoring' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], ], ], 'LaunchTemplatesMonitoringRequest' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'LicenseConfiguration' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', 'locationName' => 'licenseConfigurationArn', ], ], ], 'LicenseConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', ], ], ], 'LicenseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LicenseConfiguration', 'locationName' => 'item', ], ], 'LicenseSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'LicenseConfigurationRequest', 'locationName' => 'item', ], ], 'ListImagesInRecycleBinMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'ListImagesInRecycleBinRequest' => [ 'type' => 'structure', 'members' => [ 'ImageIds' => [ 'shape' => 'ImageIdStringList', 'locationName' => 'ImageId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'ListImagesInRecycleBinMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ListImagesInRecycleBinResult' => [ 'type' => 'structure', 'members' => [ 'Images' => [ 'shape' => 'ImageRecycleBinInfoList', 'locationName' => 'imageSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'ListSnapshotsInRecycleBinMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'ListSnapshotsInRecycleBinRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'ListSnapshotsInRecycleBinMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'SnapshotIds' => [ 'shape' => 'SnapshotIdStringList', 'locationName' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ListSnapshotsInRecycleBinResult' => [ 'type' => 'structure', 'members' => [ 'Snapshots' => [ 'shape' => 'SnapshotRecycleBinInfoList', 'locationName' => 'snapshotSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'ListVolumesInRecycleBinRequest' => [ 'type' => 'structure', 'members' => [ 'VolumeIds' => [ 'shape' => 'VolumeIdStringList', 'locationName' => 'VolumeId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListVolumesInRecycleBinResult' => [ 'type' => 'structure', 'members' => [ 'Volumes' => [ 'shape' => 'VolumeRecycleBinInfoList', 'locationName' => 'volumeSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'ListingState' => [ 'type' => 'string', 'enum' => [ 'available', 'sold', 'cancelled', 'pending', ], ], 'ListingStatus' => [ 'type' => 'string', 'enum' => [ 'active', 'pending', 'cancelled', 'closed', ], ], 'LoadBalancerArn' => [ 'type' => 'string', ], 'LoadBalancersConfig' => [ 'type' => 'structure', 'members' => [ 'ClassicLoadBalancersConfig' => [ 'shape' => 'ClassicLoadBalancersConfig', 'locationName' => 'classicLoadBalancersConfig', ], 'TargetGroupsConfig' => [ 'shape' => 'TargetGroupsConfig', 'locationName' => 'targetGroupsConfig', ], ], ], 'LoadPermission' => [ 'type' => 'structure', 'members' => [ 'UserId' => [ 'shape' => 'String', 'locationName' => 'userId', ], 'Group' => [ 'shape' => 'PermissionGroup', 'locationName' => 'group', ], ], ], 'LoadPermissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadPermission', 'locationName' => 'item', ], ], 'LoadPermissionListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadPermissionRequest', 'locationName' => 'item', ], ], 'LoadPermissionModifications' => [ 'type' => 'structure', 'members' => [ 'Add' => [ 'shape' => 'LoadPermissionListRequest', ], 'Remove' => [ 'shape' => 'LoadPermissionListRequest', ], ], ], 'LoadPermissionRequest' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'PermissionGroup', ], 'UserId' => [ 'shape' => 'String', ], ], ], 'LocalGateway' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayId' => [ 'shape' => 'LocalGatewayId', 'locationName' => 'localGatewayId', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'LocalGatewayId' => [ 'type' => 'string', ], 'LocalGatewayIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayId', 'locationName' => 'item', ], ], 'LocalGatewayMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'LocalGatewayRoute' => [ 'type' => 'structure', 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', 'locationName' => 'localGatewayVirtualInterfaceGroupId', ], 'Type' => [ 'shape' => 'LocalGatewayRouteType', 'locationName' => 'type', ], 'State' => [ 'shape' => 'LocalGatewayRouteState', 'locationName' => 'state', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', 'locationName' => 'localGatewayRouteTableId', ], 'LocalGatewayRouteTableArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'localGatewayRouteTableArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'CoipPoolId' => [ 'shape' => 'CoipPoolId', 'locationName' => 'coipPoolId', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'DestinationPrefixListId' => [ 'shape' => 'PrefixListResourceId', 'locationName' => 'destinationPrefixListId', ], ], ], 'LocalGatewayRouteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayRoute', 'locationName' => 'item', ], ], 'LocalGatewayRouteState' => [ 'type' => 'string', 'enum' => [ 'pending', 'active', 'blackhole', 'deleting', 'deleted', ], ], 'LocalGatewayRouteTable' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'localGatewayRouteTableId', ], 'LocalGatewayRouteTableArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'localGatewayRouteTableArn', ], 'LocalGatewayId' => [ 'shape' => 'LocalGatewayId', 'locationName' => 'localGatewayId', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'Mode' => [ 'shape' => 'LocalGatewayRouteTableMode', 'locationName' => 'mode', ], 'StateReason' => [ 'shape' => 'StateReason', 'locationName' => 'stateReason', ], ], ], 'LocalGatewayRouteTableIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayRoutetableId', 'locationName' => 'item', ], ], 'LocalGatewayRouteTableMode' => [ 'type' => 'string', 'enum' => [ 'direct-vpc-routing', 'coip', ], ], 'LocalGatewayRouteTableSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayRouteTable', 'locationName' => 'item', ], ], 'LocalGatewayRouteTableVirtualInterfaceGroupAssociation' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId' => [ 'shape' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId', 'locationName' => 'localGatewayRouteTableVirtualInterfaceGroupAssociationId', ], 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', 'locationName' => 'localGatewayVirtualInterfaceGroupId', ], 'LocalGatewayId' => [ 'shape' => 'String', 'locationName' => 'localGatewayId', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayId', 'locationName' => 'localGatewayRouteTableId', ], 'LocalGatewayRouteTableArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'localGatewayRouteTableArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId' => [ 'type' => 'string', ], 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId', 'locationName' => 'item', ], ], 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociation', 'locationName' => 'item', ], ], 'LocalGatewayRouteTableVpcAssociation' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVpcAssociationId' => [ 'shape' => 'LocalGatewayRouteTableVpcAssociationId', 'locationName' => 'localGatewayRouteTableVpcAssociationId', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'localGatewayRouteTableId', ], 'LocalGatewayRouteTableArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'localGatewayRouteTableArn', ], 'LocalGatewayId' => [ 'shape' => 'String', 'locationName' => 'localGatewayId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'LocalGatewayRouteTableVpcAssociationId' => [ 'type' => 'string', ], 'LocalGatewayRouteTableVpcAssociationIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayRouteTableVpcAssociationId', 'locationName' => 'item', ], ], 'LocalGatewayRouteTableVpcAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayRouteTableVpcAssociation', 'locationName' => 'item', ], ], 'LocalGatewayRouteType' => [ 'type' => 'string', 'enum' => [ 'static', 'propagated', ], ], 'LocalGatewayRoutetableId' => [ 'type' => 'string', ], 'LocalGatewaySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGateway', 'locationName' => 'item', ], ], 'LocalGatewayVirtualInterface' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterfaceId' => [ 'shape' => 'LocalGatewayVirtualInterfaceId', 'locationName' => 'localGatewayVirtualInterfaceId', ], 'LocalGatewayId' => [ 'shape' => 'String', 'locationName' => 'localGatewayId', ], 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', 'locationName' => 'localGatewayVirtualInterfaceGroupId', ], 'LocalGatewayVirtualInterfaceArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'localGatewayVirtualInterfaceArn', ], 'OutpostLagId' => [ 'shape' => 'String', 'locationName' => 'outpostLagId', ], 'Vlan' => [ 'shape' => 'Integer', 'locationName' => 'vlan', ], 'LocalAddress' => [ 'shape' => 'String', 'locationName' => 'localAddress', ], 'PeerAddress' => [ 'shape' => 'String', 'locationName' => 'peerAddress', ], 'LocalBgpAsn' => [ 'shape' => 'Integer', 'locationName' => 'localBgpAsn', ], 'PeerBgpAsn' => [ 'shape' => 'Integer', 'locationName' => 'peerBgpAsn', ], 'PeerBgpAsnExtended' => [ 'shape' => 'Long', 'locationName' => 'peerBgpAsnExtended', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'ConfigurationState' => [ 'shape' => 'LocalGatewayVirtualInterfaceConfigurationState', 'locationName' => 'configurationState', ], ], ], 'LocalGatewayVirtualInterfaceConfigurationState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'LocalGatewayVirtualInterfaceGroup' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', 'locationName' => 'localGatewayVirtualInterfaceGroupId', ], 'LocalGatewayVirtualInterfaceIds' => [ 'shape' => 'LocalGatewayVirtualInterfaceIdSet', 'locationName' => 'localGatewayVirtualInterfaceIdSet', ], 'LocalGatewayId' => [ 'shape' => 'String', 'locationName' => 'localGatewayId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'LocalBgpAsn' => [ 'shape' => 'Integer', 'locationName' => 'localBgpAsn', ], 'LocalBgpAsnExtended' => [ 'shape' => 'Long', 'locationName' => 'localBgpAsnExtended', ], 'LocalGatewayVirtualInterfaceGroupArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'localGatewayVirtualInterfaceGroupArn', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'ConfigurationState' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupConfigurationState', 'locationName' => 'configurationState', ], ], ], 'LocalGatewayVirtualInterfaceGroupConfigurationState' => [ 'type' => 'string', 'enum' => [ 'pending', 'incomplete', 'available', 'deleting', 'deleted', ], ], 'LocalGatewayVirtualInterfaceGroupId' => [ 'type' => 'string', ], 'LocalGatewayVirtualInterfaceGroupIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', 'locationName' => 'item', ], ], 'LocalGatewayVirtualInterfaceGroupSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroup', 'locationName' => 'item', ], ], 'LocalGatewayVirtualInterfaceId' => [ 'type' => 'string', ], 'LocalGatewayVirtualInterfaceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayVirtualInterfaceId', 'locationName' => 'item', ], ], 'LocalGatewayVirtualInterfaceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayVirtualInterface', 'locationName' => 'item', ], ], 'LocalStorage' => [ 'type' => 'string', 'enum' => [ 'included', 'required', 'excluded', ], ], 'LocalStorageType' => [ 'type' => 'string', 'enum' => [ 'hdd', 'ssd', ], ], 'LocalStorageTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalStorageType', 'locationName' => 'item', ], ], 'Location' => [ 'type' => 'string', ], 'LocationType' => [ 'type' => 'string', 'enum' => [ 'region', 'availability-zone', 'availability-zone-id', 'outpost', ], ], 'LockMode' => [ 'type' => 'string', 'enum' => [ 'compliance', 'governance', ], ], 'LockSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', 'LockMode', ], 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'LockMode' => [ 'shape' => 'LockMode', ], 'CoolOffPeriod' => [ 'shape' => 'CoolOffPeriodRequestHours', ], 'LockDuration' => [ 'shape' => 'RetentionPeriodRequestDays', ], 'ExpirationDate' => [ 'shape' => 'MillisecondDateTime', ], ], ], 'LockSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'LockState' => [ 'shape' => 'LockState', 'locationName' => 'lockState', ], 'LockDuration' => [ 'shape' => 'RetentionPeriodResponseDays', 'locationName' => 'lockDuration', ], 'CoolOffPeriod' => [ 'shape' => 'CoolOffPeriodResponseHours', 'locationName' => 'coolOffPeriod', ], 'CoolOffPeriodExpiresOn' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'coolOffPeriodExpiresOn', ], 'LockCreatedOn' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lockCreatedOn', ], 'LockExpiresOn' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lockExpiresOn', ], 'LockDurationStartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lockDurationStartTime', ], ], ], 'LockState' => [ 'type' => 'string', 'enum' => [ 'compliance', 'governance', 'compliance-cooloff', 'expired', ], ], 'LockedSnapshotsInfo' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'LockState' => [ 'shape' => 'LockState', 'locationName' => 'lockState', ], 'LockDuration' => [ 'shape' => 'RetentionPeriodResponseDays', 'locationName' => 'lockDuration', ], 'CoolOffPeriod' => [ 'shape' => 'CoolOffPeriodResponseHours', 'locationName' => 'coolOffPeriod', ], 'CoolOffPeriodExpiresOn' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'coolOffPeriodExpiresOn', ], 'LockCreatedOn' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lockCreatedOn', ], 'LockDurationStartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lockDurationStartTime', ], 'LockExpiresOn' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lockExpiresOn', ], ], ], 'LockedSnapshotsInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LockedSnapshotsInfo', 'locationName' => 'item', ], ], 'LogDestinationType' => [ 'type' => 'string', 'enum' => [ 'cloud-watch-logs', 's3', 'kinesis-data-firehose', ], ], 'LogicalGpuCount' => [ 'type' => 'integer', ], 'Long' => [ 'type' => 'long', ], 'MacHost' => [ 'type' => 'structure', 'members' => [ 'HostId' => [ 'shape' => 'DedicatedHostId', 'locationName' => 'hostId', ], 'MacOSLatestSupportedVersions' => [ 'shape' => 'MacOSVersionStringList', 'locationName' => 'macOSLatestSupportedVersionSet', ], ], ], 'MacHostList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MacHost', 'locationName' => 'item', ], ], 'MacModificationTask' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'MacModificationTaskId' => [ 'shape' => 'MacModificationTaskId', 'locationName' => 'macModificationTaskId', ], 'MacSystemIntegrityProtectionConfig' => [ 'shape' => 'MacSystemIntegrityProtectionConfiguration', 'locationName' => 'macSystemIntegrityProtectionConfig', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'TaskState' => [ 'shape' => 'MacModificationTaskState', 'locationName' => 'taskState', ], 'TaskType' => [ 'shape' => 'MacModificationTaskType', 'locationName' => 'taskType', ], ], ], 'MacModificationTaskId' => [ 'type' => 'string', ], 'MacModificationTaskIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MacModificationTaskId', 'locationName' => 'item', ], ], 'MacModificationTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MacModificationTask', 'locationName' => 'item', ], ], 'MacModificationTaskState' => [ 'type' => 'string', 'enum' => [ 'successful', 'failed', 'in-progress', 'pending', ], ], 'MacModificationTaskType' => [ 'type' => 'string', 'enum' => [ 'sip-modification', 'volume-ownership-delegation', ], ], 'MacOSVersionStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'MacSystemIntegrityProtectionConfiguration' => [ 'type' => 'structure', 'members' => [ 'AppleInternal' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', 'locationName' => 'appleInternal', ], 'BaseSystem' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', 'locationName' => 'baseSystem', ], 'DebuggingRestrictions' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', 'locationName' => 'debuggingRestrictions', ], 'DTraceRestrictions' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', 'locationName' => 'dTraceRestrictions', ], 'FilesystemProtections' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', 'locationName' => 'filesystemProtections', ], 'KextSigning' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', 'locationName' => 'kextSigning', ], 'NvramProtections' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', 'locationName' => 'nvramProtections', ], 'Status' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', 'locationName' => 'status', ], ], ], 'MacSystemIntegrityProtectionConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'AppleInternal' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', ], 'BaseSystem' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', ], 'DebuggingRestrictions' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', ], 'DTraceRestrictions' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', ], 'FilesystemProtections' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', ], 'KextSigning' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', ], 'NvramProtections' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', ], ], ], 'MacSystemIntegrityProtectionSettingStatus' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'MaintenanceDetails' => [ 'type' => 'structure', 'members' => [ 'PendingMaintenance' => [ 'shape' => 'String', 'locationName' => 'pendingMaintenance', ], 'MaintenanceAutoAppliedAfter' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'maintenanceAutoAppliedAfter', ], 'LastMaintenanceApplied' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastMaintenanceApplied', ], ], ], 'ManagedBy' => [ 'type' => 'string', 'enum' => [ 'account', 'declarative-policy', ], ], 'ManagedPrefixList' => [ 'type' => 'structure', 'members' => [ 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', 'locationName' => 'prefixListId', ], 'AddressFamily' => [ 'shape' => 'String', 'locationName' => 'addressFamily', ], 'State' => [ 'shape' => 'PrefixListState', 'locationName' => 'state', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], 'PrefixListArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'prefixListArn', ], 'PrefixListName' => [ 'shape' => 'String', 'locationName' => 'prefixListName', ], 'MaxEntries' => [ 'shape' => 'Integer', 'locationName' => 'maxEntries', ], 'Version' => [ 'shape' => 'Long', 'locationName' => 'version', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'IpamPrefixListResolverTargetId' => [ 'shape' => 'String', 'locationName' => 'ipamPrefixListResolverTargetId', ], 'IpamPrefixListResolverSyncEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'ipamPrefixListResolverSyncEnabled', ], ], ], 'ManagedPrefixListSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedPrefixList', 'locationName' => 'item', ], ], 'ManagedResourceDefaultVisibility' => [ 'type' => 'string', 'enum' => [ 'hidden', 'visible', ], ], 'ManagedResourceVisibilitySettings' => [ 'type' => 'structure', 'members' => [ 'DefaultVisibility' => [ 'shape' => 'ManagedResourceDefaultVisibility', 'locationName' => 'defaultVisibility', ], ], ], 'MarketType' => [ 'type' => 'string', 'enum' => [ 'spot', 'capacity-block', 'interruptible-capacity-reservation', ], ], 'MarketplaceProductCode' => [ 'type' => 'string', ], 'MarketplaceProductCodeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MarketplaceProductCode', 'locationName' => 'item', ], ], 'MarketplaceProductCodeRequest' => [ 'type' => 'string', ], 'MarketplaceProductCodeRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MarketplaceProductCodeRequest', 'locationName' => 'item', ], ], 'MaxIpv4AddrPerInterface' => [ 'type' => 'integer', ], 'MaxIpv6AddrPerInterface' => [ 'type' => 'integer', ], 'MaxNetworkInterfaces' => [ 'type' => 'integer', ], 'MaxResults' => [ 'type' => 'integer', ], 'MaxResultsParam' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'MaximumBandwidthInMbps' => [ 'type' => 'integer', ], 'MaximumDaysSinceCreatedValue' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 0, ], 'MaximumDaysSinceDeprecatedValue' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 0, ], 'MaximumEbsAttachments' => [ 'type' => 'integer', ], 'MaximumEbsCards' => [ 'type' => 'integer', ], 'MaximumEfaInterfaces' => [ 'type' => 'integer', ], 'MaximumEnaQueueCount' => [ 'type' => 'integer', ], 'MaximumEnaQueueCountPerInterface' => [ 'type' => 'integer', ], 'MaximumIops' => [ 'type' => 'integer', ], 'MaximumNetworkCards' => [ 'type' => 'integer', ], 'MaximumSecondaryNetworkInterfaces' => [ 'type' => 'integer', ], 'MaximumThroughputInMBps' => [ 'type' => 'double', ], 'MediaAcceleratorInfo' => [ 'type' => 'structure', 'members' => [ 'Accelerators' => [ 'shape' => 'MediaDeviceInfoList', 'locationName' => 'accelerators', ], 'TotalMediaMemoryInMiB' => [ 'shape' => 'TotalMediaMemory', 'locationName' => 'totalMediaMemoryInMiB', ], ], ], 'MediaDeviceCount' => [ 'type' => 'integer', ], 'MediaDeviceInfo' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => 'MediaDeviceCount', 'locationName' => 'count', ], 'Name' => [ 'shape' => 'MediaDeviceName', 'locationName' => 'name', ], 'Manufacturer' => [ 'shape' => 'MediaDeviceManufacturerName', 'locationName' => 'manufacturer', ], 'MemoryInfo' => [ 'shape' => 'MediaDeviceMemoryInfo', 'locationName' => 'memoryInfo', ], ], ], 'MediaDeviceInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MediaDeviceInfo', 'locationName' => 'item', ], ], 'MediaDeviceManufacturerName' => [ 'type' => 'string', ], 'MediaDeviceMemoryInfo' => [ 'type' => 'structure', 'members' => [ 'SizeInMiB' => [ 'shape' => 'MediaDeviceMemorySize', 'locationName' => 'sizeInMiB', ], ], ], 'MediaDeviceMemorySize' => [ 'type' => 'integer', ], 'MediaDeviceName' => [ 'type' => 'string', ], 'MembershipType' => [ 'type' => 'string', 'enum' => [ 'static', 'igmp', ], ], 'MemoryGiBPerVCpu' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Double', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Double', 'locationName' => 'max', ], ], ], 'MemoryGiBPerVCpuRequest' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Double', ], 'Max' => [ 'shape' => 'Double', ], ], ], 'MemoryInfo' => [ 'type' => 'structure', 'members' => [ 'SizeInMiB' => [ 'shape' => 'MemorySize', 'locationName' => 'sizeInMiB', ], ], ], 'MemoryMiB' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Integer', 'locationName' => 'max', ], ], ], 'MemoryMiBRequest' => [ 'type' => 'structure', 'required' => [ 'Min', ], 'members' => [ 'Min' => [ 'shape' => 'Integer', ], 'Max' => [ 'shape' => 'Integer', ], ], ], 'MemorySize' => [ 'type' => 'long', ], 'MetadataDefaultHttpTokensState' => [ 'type' => 'string', 'enum' => [ 'optional', 'required', 'no-preference', ], ], 'Metric' => [ 'type' => 'string', 'enum' => [ 'reservation-total-capacity-hrs-vcpu', 'reservation-total-capacity-hrs-inst', 'reservation-max-size-vcpu', 'reservation-max-size-inst', 'reservation-min-size-vcpu', 'reservation-min-size-inst', 'reservation-unused-total-capacity-hrs-vcpu', 'reservation-unused-total-capacity-hrs-inst', 'reservation-unused-total-estimated-cost', 'reservation-max-unused-size-vcpu', 'reservation-max-unused-size-inst', 'reservation-min-unused-size-vcpu', 'reservation-min-unused-size-inst', 'reservation-max-utilization', 'reservation-min-utilization', 'reservation-avg-utilization-vcpu', 'reservation-avg-utilization-inst', 'reservation-total-count', 'reservation-total-estimated-cost', 'reservation-avg-future-size-vcpu', 'reservation-avg-future-size-inst', 'reservation-min-future-size-vcpu', 'reservation-min-future-size-inst', 'reservation-max-future-size-vcpu', 'reservation-max-future-size-inst', 'reservation-avg-committed-size-vcpu', 'reservation-avg-committed-size-inst', 'reservation-max-committed-size-vcpu', 'reservation-max-committed-size-inst', 'reservation-min-committed-size-vcpu', 'reservation-min-committed-size-inst', 'reserved-total-usage-hrs-vcpu', 'reserved-total-usage-hrs-inst', 'reserved-total-estimated-cost', 'unreserved-total-usage-hrs-vcpu', 'unreserved-total-usage-hrs-inst', 'unreserved-total-estimated-cost', 'spot-total-usage-hrs-vcpu', 'spot-total-usage-hrs-inst', 'spot-total-estimated-cost', 'spot-avg-run-time-before-interruption-inst', 'spot-max-run-time-before-interruption-inst', 'spot-min-run-time-before-interruption-inst', 'spot-total-interruptions-inst', 'spot-total-interruptions-vcpu', 'spot-total-count-inst', 'spot-total-count-vcpu', 'spot-interruption-rate-inst', 'spot-interruption-rate-vcpu', ], ], 'MetricDataResult' => [ 'type' => 'structure', 'members' => [ 'Dimension' => [ 'shape' => 'CapacityManagerDimension', 'locationName' => 'dimension', ], 'Timestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'timestamp', ], 'MetricValues' => [ 'shape' => 'MetricValueSet', 'locationName' => 'metricValueSet', ], ], ], 'MetricDataResultSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricDataResult', 'locationName' => 'item', ], ], 'MetricDimensionResultSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityManagerDimension', 'locationName' => 'item', ], ], 'MetricPoint' => [ 'type' => 'structure', 'members' => [ 'StartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startDate', ], 'EndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'endDate', ], 'Value' => [ 'shape' => 'Float', 'locationName' => 'value', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], ], ], 'MetricPoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricPoint', 'locationName' => 'item', ], ], 'MetricSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Metric', 'locationName' => 'item', ], 'max' => 40, 'min' => 0, ], 'MetricType' => [ 'type' => 'string', 'enum' => [ 'aggregate-latency', ], ], 'MetricValue' => [ 'type' => 'structure', 'members' => [ 'Metric' => [ 'shape' => 'Metric', 'locationName' => 'metric', ], 'Value' => [ 'shape' => 'Double', 'locationName' => 'value', ], ], ], 'MetricValueSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricValue', 'locationName' => 'item', ], ], 'MillisecondDateTime' => [ 'type' => 'timestamp', ], 'ModifyAccountVpcEncryptionControlRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Mode' => [ 'shape' => 'AccountVpcEncryptionControlMode', ], 'InternetGateway' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'EgressOnlyInternetGateway' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'NatGateway' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VirtualPrivateGateway' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VpcPeering' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'Lambda' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VpcLattice' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'ElasticFileSystem' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], ], ], 'ModifyAccountVpcEncryptionControlResult' => [ 'type' => 'structure', 'members' => [ 'AccountVpcEncryptionControl' => [ 'shape' => 'AccountVpcEncryptionControl', 'locationName' => 'accountVpcEncryptionControl', ], ], ], 'ModifyAddressAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'AllocationId', ], 'members' => [ 'AllocationId' => [ 'shape' => 'AllocationId', ], 'DomainName' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyAddressAttributeResult' => [ 'type' => 'structure', 'members' => [ 'Address' => [ 'shape' => 'AddressAttribute', 'locationName' => 'address', ], ], ], 'ModifyAvailabilityZoneGroupRequest' => [ 'type' => 'structure', 'required' => [ 'GroupName', 'OptInStatus', ], 'members' => [ 'GroupName' => [ 'shape' => 'String', ], 'OptInStatus' => [ 'shape' => 'ModifyAvailabilityZoneOptInStatus', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyAvailabilityZoneGroupResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyAvailabilityZoneOptInStatus' => [ 'type' => 'string', 'enum' => [ 'opted-in', 'not-opted-in', ], ], 'ModifyCapacityReservationFleetRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationFleetId', ], 'members' => [ 'CapacityReservationFleetId' => [ 'shape' => 'CapacityReservationFleetId', ], 'TotalTargetCapacity' => [ 'shape' => 'Integer', ], 'EndDate' => [ 'shape' => 'MillisecondDateTime', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'RemoveEndDate' => [ 'shape' => 'Boolean', ], ], ], 'ModifyCapacityReservationFleetResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyCapacityReservationRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', ], 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'EndDate' => [ 'shape' => 'DateTime', ], 'EndDateType' => [ 'shape' => 'EndDateType', ], 'Accept' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'AdditionalInfo' => [ 'shape' => 'String', ], 'InstanceMatchCriteria' => [ 'shape' => 'InstanceMatchCriteria', ], ], ], 'ModifyCapacityReservationResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyClientVpnEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'ServerCertificateArn' => [ 'shape' => 'String', ], 'ConnectionLogOptions' => [ 'shape' => 'ConnectionLogOptions', ], 'DnsServers' => [ 'shape' => 'DnsServersOptionsModifyStructure', ], 'VpnPort' => [ 'shape' => 'Integer', ], 'Description' => [ 'shape' => 'String', ], 'SplitTunnel' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SecurityGroupIds' => [ 'shape' => 'ClientVpnSecurityGroupIdSet', 'locationName' => 'SecurityGroupId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'SelfServicePortal' => [ 'shape' => 'SelfServicePortal', ], 'ClientConnectOptions' => [ 'shape' => 'ClientConnectOptions', ], 'SessionTimeoutHours' => [ 'shape' => 'Integer', ], 'ClientLoginBannerOptions' => [ 'shape' => 'ClientLoginBannerOptions', ], 'ClientRouteEnforcementOptions' => [ 'shape' => 'ClientRouteEnforcementOptions', ], 'DisconnectOnSessionTimeout' => [ 'shape' => 'Boolean', ], 'TransitGatewayConfiguration' => [ 'shape' => 'TransitGatewayConfigurationInputStructure', ], ], ], 'ModifyClientVpnEndpointResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyDefaultCreditSpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceFamily', 'CpuCredits', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceFamily' => [ 'shape' => 'UnlimitedSupportedInstanceFamily', ], 'CpuCredits' => [ 'shape' => 'String', ], ], ], 'ModifyDefaultCreditSpecificationResult' => [ 'type' => 'structure', 'members' => [ 'InstanceFamilyCreditSpecification' => [ 'shape' => 'InstanceFamilyCreditSpecification', 'locationName' => 'instanceFamilyCreditSpecification', ], ], ], 'ModifyEbsDefaultKmsKeyIdRequest' => [ 'type' => 'structure', 'required' => [ 'KmsKeyId', ], 'members' => [ 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyEbsDefaultKmsKeyIdResult' => [ 'type' => 'structure', 'members' => [ 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], ], ], 'ModifyFleetRequest' => [ 'type' => 'structure', 'required' => [ 'FleetId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'FleetExcessCapacityTerminationPolicy', ], 'LaunchTemplateConfigs' => [ 'shape' => 'FleetLaunchTemplateConfigListRequest', 'locationName' => 'LaunchTemplateConfig', ], 'FleetId' => [ 'shape' => 'FleetId', ], 'TargetCapacitySpecification' => [ 'shape' => 'TargetCapacitySpecificationRequest', ], 'Context' => [ 'shape' => 'String', ], ], ], 'ModifyFleetResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyFpgaImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'FpgaImageId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FpgaImageId' => [ 'shape' => 'FpgaImageId', ], 'Attribute' => [ 'shape' => 'FpgaImageAttributeName', ], 'OperationType' => [ 'shape' => 'OperationType', ], 'UserIds' => [ 'shape' => 'UserIdStringList', 'locationName' => 'UserId', ], 'UserGroups' => [ 'shape' => 'UserGroupStringList', 'locationName' => 'UserGroup', ], 'ProductCodes' => [ 'shape' => 'ProductCodeStringList', 'locationName' => 'ProductCode', ], 'LoadPermission' => [ 'shape' => 'LoadPermissionModifications', ], 'Description' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], ], ], 'ModifyFpgaImageAttributeResult' => [ 'type' => 'structure', 'members' => [ 'FpgaImageAttribute' => [ 'shape' => 'FpgaImageAttribute', 'locationName' => 'fpgaImageAttribute', ], ], ], 'ModifyHostsRequest' => [ 'type' => 'structure', 'required' => [ 'HostIds', ], 'members' => [ 'HostRecovery' => [ 'shape' => 'HostRecovery', ], 'InstanceType' => [ 'shape' => 'String', ], 'InstanceFamily' => [ 'shape' => 'String', ], 'HostMaintenance' => [ 'shape' => 'HostMaintenance', ], 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], ], ], 'ModifyHostsResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'successful', ], 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemList', 'locationName' => 'unsuccessful', ], ], ], 'ModifyIdFormatRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'UseLongIds', ], 'members' => [ 'Resource' => [ 'shape' => 'String', ], 'UseLongIds' => [ 'shape' => 'Boolean', ], ], ], 'ModifyIdentityIdFormatRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'UseLongIds', 'PrincipalArn', ], 'members' => [ 'Resource' => [ 'shape' => 'String', 'locationName' => 'resource', ], 'UseLongIds' => [ 'shape' => 'Boolean', 'locationName' => 'useLongIds', ], 'PrincipalArn' => [ 'shape' => 'String', 'locationName' => 'principalArn', ], ], ], 'ModifyImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'Attribute' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'AttributeValue', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'LaunchPermission' => [ 'shape' => 'LaunchPermissionModifications', ], 'OperationType' => [ 'shape' => 'OperationType', ], 'ProductCodes' => [ 'shape' => 'ProductCodeStringList', 'locationName' => 'ProductCode', ], 'UserGroups' => [ 'shape' => 'UserGroupStringList', 'locationName' => 'UserGroup', ], 'UserIds' => [ 'shape' => 'UserIdStringList', 'locationName' => 'UserId', ], 'Value' => [ 'shape' => 'String', ], 'OrganizationArns' => [ 'shape' => 'OrganizationArnStringList', 'locationName' => 'OrganizationArn', ], 'OrganizationalUnitArns' => [ 'shape' => 'OrganizationalUnitArnStringList', 'locationName' => 'OrganizationalUnitArn', ], 'ImdsSupport' => [ 'shape' => 'AttributeValue', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ModifyInstanceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'SourceDestCheck' => [ 'shape' => 'AttributeBooleanValue', ], 'EnclaveOptions' => [ 'shape' => 'EnclaveOptionsRequest', ], 'DisableApiStop' => [ 'shape' => 'AttributeBooleanValue', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'Attribute' => [ 'shape' => 'InstanceAttributeName', 'locationName' => 'attribute', ], 'Value' => [ 'shape' => 'ModifyInstanceAttributeValue', 'locationName' => 'value', ], 'BlockDeviceMappings' => [ 'shape' => 'InstanceBlockDeviceMappingSpecificationList', 'locationName' => 'blockDeviceMapping', ], 'DisableApiTermination' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'disableApiTermination', ], 'InstanceType' => [ 'shape' => 'AttributeValue', 'locationName' => 'instanceType', ], 'Kernel' => [ 'shape' => 'AttributeValue', 'locationName' => 'kernel', ], 'Ramdisk' => [ 'shape' => 'AttributeValue', 'locationName' => 'ramdisk', ], 'UserData' => [ 'shape' => 'SecureBlobAttributeValue', 'locationName' => 'userData', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'AttributeValue', 'locationName' => 'instanceInitiatedShutdownBehavior', ], 'Groups' => [ 'shape' => 'GroupIdStringList', 'locationName' => 'GroupId', ], 'EbsOptimized' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'ebsOptimized', ], 'SriovNetSupport' => [ 'shape' => 'AttributeValue', 'locationName' => 'sriovNetSupport', ], 'EnaSupport' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enaSupport', ], ], ], 'ModifyInstanceAttributeUserDataRequest' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'ModifyInstanceAttributeValue', ], ], ], 'ModifyInstanceAttributeValue' => [ 'type' => 'string', 'sensitive' => true, ], 'ModifyInstanceCapacityReservationAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'CapacityReservationSpecification', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'CapacityReservationSpecification' => [ 'shape' => 'CapacityReservationSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyInstanceCapacityReservationAttributesResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyInstanceConnectEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceConnectEndpointId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceConnectEndpointId' => [ 'shape' => 'InstanceConnectEndpointId', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdStringListRequest', 'locationName' => 'SecurityGroupId', ], 'PreserveClientIp' => [ 'shape' => 'Boolean', ], ], ], 'ModifyInstanceConnectEndpointResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyInstanceCpuOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'CoreCount' => [ 'shape' => 'Integer', ], 'ThreadsPerCore' => [ 'shape' => 'Integer', ], 'NestedVirtualization' => [ 'shape' => 'NestedVirtualizationSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyInstanceCpuOptionsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'CoreCount' => [ 'shape' => 'Integer', 'locationName' => 'coreCount', ], 'ThreadsPerCore' => [ 'shape' => 'Integer', 'locationName' => 'threadsPerCore', ], 'NestedVirtualization' => [ 'shape' => 'NestedVirtualizationSpecification', 'locationName' => 'nestedVirtualization', ], ], ], 'ModifyInstanceCreditSpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceCreditSpecifications', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', ], 'InstanceCreditSpecifications' => [ 'shape' => 'InstanceCreditSpecificationListRequest', 'locationName' => 'InstanceCreditSpecification', ], ], ], 'ModifyInstanceCreditSpecificationResult' => [ 'type' => 'structure', 'members' => [ 'SuccessfulInstanceCreditSpecifications' => [ 'shape' => 'SuccessfulInstanceCreditSpecificationSet', 'locationName' => 'successfulInstanceCreditSpecificationSet', ], 'UnsuccessfulInstanceCreditSpecifications' => [ 'shape' => 'UnsuccessfulInstanceCreditSpecificationSet', 'locationName' => 'unsuccessfulInstanceCreditSpecificationSet', ], ], ], 'ModifyInstanceEventStartTimeRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'InstanceEventId', 'NotBefore', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'InstanceEventId' => [ 'shape' => 'String', ], 'NotBefore' => [ 'shape' => 'DateTime', ], ], ], 'ModifyInstanceEventStartTimeResult' => [ 'type' => 'structure', 'members' => [ 'Event' => [ 'shape' => 'InstanceStatusEvent', 'locationName' => 'event', ], ], ], 'ModifyInstanceEventWindowRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceEventWindowId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Name' => [ 'shape' => 'String', ], 'InstanceEventWindowId' => [ 'shape' => 'InstanceEventWindowId', ], 'TimeRanges' => [ 'shape' => 'InstanceEventWindowTimeRangeRequestSet', 'locationName' => 'TimeRange', ], 'CronExpression' => [ 'shape' => 'InstanceEventWindowCronExpression', ], ], ], 'ModifyInstanceEventWindowResult' => [ 'type' => 'structure', 'members' => [ 'InstanceEventWindow' => [ 'shape' => 'InstanceEventWindow', 'locationName' => 'instanceEventWindow', ], ], ], 'ModifyInstanceMaintenanceOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'AutoRecovery' => [ 'shape' => 'InstanceAutoRecoveryState', ], 'RebootMigration' => [ 'shape' => 'InstanceRebootMigrationState', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyInstanceMaintenanceOptionsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'AutoRecovery' => [ 'shape' => 'InstanceAutoRecoveryState', 'locationName' => 'autoRecovery', ], 'RebootMigration' => [ 'shape' => 'InstanceRebootMigrationState', 'locationName' => 'rebootMigration', ], ], ], 'ModifyInstanceMetadataDefaultsRequest' => [ 'type' => 'structure', 'members' => [ 'HttpTokens' => [ 'shape' => 'MetadataDefaultHttpTokensState', ], 'HttpPutResponseHopLimit' => [ 'shape' => 'BoxedInteger', ], 'HttpEndpoint' => [ 'shape' => 'DefaultInstanceMetadataEndpointState', ], 'InstanceMetadataTags' => [ 'shape' => 'DefaultInstanceMetadataTagsState', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'HttpTokensEnforced' => [ 'shape' => 'DefaultHttpTokensEnforcedState', ], ], ], 'ModifyInstanceMetadataDefaultsResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyInstanceMetadataOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'HttpTokens' => [ 'shape' => 'HttpTokensState', ], 'HttpPutResponseHopLimit' => [ 'shape' => 'Integer', ], 'HttpEndpoint' => [ 'shape' => 'InstanceMetadataEndpointState', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'HttpProtocolIpv6' => [ 'shape' => 'InstanceMetadataProtocolState', ], 'InstanceMetadataTags' => [ 'shape' => 'InstanceMetadataTagsState', ], ], ], 'ModifyInstanceMetadataOptionsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceMetadataOptions' => [ 'shape' => 'InstanceMetadataOptionsResponse', 'locationName' => 'instanceMetadataOptions', ], ], ], 'ModifyInstanceNetworkPerformanceRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'BandwidthWeighting', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'BandwidthWeighting' => [ 'shape' => 'InstanceBandwidthWeighting', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyInstanceNetworkPerformanceResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'BandwidthWeighting' => [ 'shape' => 'InstanceBandwidthWeighting', 'locationName' => 'bandwidthWeighting', ], ], ], 'ModifyInstancePlacementRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'GroupName' => [ 'shape' => 'PlacementGroupName', ], 'PartitionNumber' => [ 'shape' => 'Integer', ], 'HostResourceGroupArn' => [ 'shape' => 'String', ], 'GroupId' => [ 'shape' => 'PlacementGroupId', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'Tenancy' => [ 'shape' => 'HostTenancy', 'locationName' => 'tenancy', ], 'Affinity' => [ 'shape' => 'Affinity', 'locationName' => 'affinity', ], 'HostId' => [ 'shape' => 'DedicatedHostId', 'locationName' => 'hostId', ], ], ], 'ModifyInstancePlacementResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyIpamPolicyAllocationRulesRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPolicyId', 'Locale', 'ResourceType', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', ], 'Locale' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'IpamPolicyResourceType', ], 'AllocationRules' => [ 'shape' => 'IpamPolicyAllocationRuleListRequest', 'locationName' => 'AllocationRule', ], ], ], 'ModifyIpamPolicyAllocationRulesResult' => [ 'type' => 'structure', 'members' => [ 'IpamPolicyDocument' => [ 'shape' => 'IpamPolicyDocument', 'locationName' => 'ipamPolicyDocument', ], ], ], 'ModifyIpamPoolAllocationRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolAllocationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolAllocationId' => [ 'shape' => 'IpamPoolAllocationId', ], 'Description' => [ 'shape' => 'String', ], ], ], 'ModifyIpamPoolAllocationResult' => [ 'type' => 'structure', 'members' => [ 'IpamPoolAllocation' => [ 'shape' => 'IpamPoolAllocation', 'locationName' => 'ipamPoolAllocation', ], ], ], 'ModifyIpamPoolRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Description' => [ 'shape' => 'String', ], 'AutoImport' => [ 'shape' => 'Boolean', ], 'AllocationMinNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', ], 'AllocationMaxNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', ], 'AllocationDefaultNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', ], 'ClearAllocationDefaultNetmaskLength' => [ 'shape' => 'Boolean', ], 'AddAllocationResourceTags' => [ 'shape' => 'RequestIpamResourceTagList', 'locationName' => 'AddAllocationResourceTag', ], 'RemoveAllocationResourceTags' => [ 'shape' => 'RequestIpamResourceTagList', 'locationName' => 'RemoveAllocationResourceTag', ], ], ], 'ModifyIpamPoolResult' => [ 'type' => 'structure', 'members' => [ 'IpamPool' => [ 'shape' => 'IpamPool', 'locationName' => 'ipamPool', ], ], ], 'ModifyIpamPrefixListResolverRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPrefixListResolverId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', ], 'Description' => [ 'shape' => 'String', ], 'Rules' => [ 'shape' => 'IpamPrefixListResolverRuleRequestSet', 'locationName' => 'Rule', ], ], ], 'ModifyIpamPrefixListResolverResult' => [ 'type' => 'structure', 'members' => [ 'IpamPrefixListResolver' => [ 'shape' => 'IpamPrefixListResolver', 'locationName' => 'ipamPrefixListResolver', ], ], ], 'ModifyIpamPrefixListResolverTargetRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPrefixListResolverTargetId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPrefixListResolverTargetId' => [ 'shape' => 'IpamPrefixListResolverTargetId', ], 'DesiredVersion' => [ 'shape' => 'BoxedLong', ], 'TrackLatestVersion' => [ 'shape' => 'BoxedBoolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'ModifyIpamPrefixListResolverTargetResult' => [ 'type' => 'structure', 'members' => [ 'IpamPrefixListResolverTarget' => [ 'shape' => 'IpamPrefixListResolverTarget', 'locationName' => 'ipamPrefixListResolverTarget', ], ], ], 'ModifyIpamRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamId' => [ 'shape' => 'IpamId', ], 'Description' => [ 'shape' => 'String', ], 'AddOperatingRegions' => [ 'shape' => 'AddIpamOperatingRegionSet', 'locationName' => 'AddOperatingRegion', ], 'RemoveOperatingRegions' => [ 'shape' => 'RemoveIpamOperatingRegionSet', 'locationName' => 'RemoveOperatingRegion', ], 'Tier' => [ 'shape' => 'IpamTier', ], 'EnablePrivateGua' => [ 'shape' => 'Boolean', ], 'MeteredAccount' => [ 'shape' => 'IpamMeteredAccount', ], ], ], 'ModifyIpamResourceCidrRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'ResourceCidr', 'ResourceRegion', 'CurrentIpamScopeId', 'Monitored', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ResourceId' => [ 'shape' => 'String', ], 'ResourceCidr' => [ 'shape' => 'String', ], 'ResourceRegion' => [ 'shape' => 'String', ], 'CurrentIpamScopeId' => [ 'shape' => 'IpamScopeId', ], 'DestinationIpamScopeId' => [ 'shape' => 'IpamScopeId', ], 'Monitored' => [ 'shape' => 'Boolean', ], ], ], 'ModifyIpamResourceCidrResult' => [ 'type' => 'structure', 'members' => [ 'IpamResourceCidr' => [ 'shape' => 'IpamResourceCidr', 'locationName' => 'ipamResourceCidr', ], ], ], 'ModifyIpamResourceDiscoveryRequest' => [ 'type' => 'structure', 'required' => [ 'IpamResourceDiscoveryId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', ], 'Description' => [ 'shape' => 'String', ], 'AddOperatingRegions' => [ 'shape' => 'AddIpamOperatingRegionSet', 'locationName' => 'AddOperatingRegion', ], 'RemoveOperatingRegions' => [ 'shape' => 'RemoveIpamOperatingRegionSet', 'locationName' => 'RemoveOperatingRegion', ], 'AddOrganizationalUnitExclusions' => [ 'shape' => 'AddIpamOrganizationalUnitExclusionSet', 'locationName' => 'AddOrganizationalUnitExclusion', ], 'RemoveOrganizationalUnitExclusions' => [ 'shape' => 'RemoveIpamOrganizationalUnitExclusionSet', 'locationName' => 'RemoveOrganizationalUnitExclusion', ], ], ], 'ModifyIpamResourceDiscoveryResult' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscovery' => [ 'shape' => 'IpamResourceDiscovery', 'locationName' => 'ipamResourceDiscovery', ], ], ], 'ModifyIpamResult' => [ 'type' => 'structure', 'members' => [ 'Ipam' => [ 'shape' => 'Ipam', 'locationName' => 'ipam', ], ], ], 'ModifyIpamScopeRequest' => [ 'type' => 'structure', 'required' => [ 'IpamScopeId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', ], 'Description' => [ 'shape' => 'String', ], 'ExternalAuthorityConfiguration' => [ 'shape' => 'ExternalAuthorityConfiguration', ], 'RemoveExternalAuthorityConfiguration' => [ 'shape' => 'Boolean', ], ], ], 'ModifyIpamScopeResult' => [ 'type' => 'structure', 'members' => [ 'IpamScope' => [ 'shape' => 'IpamScope', 'locationName' => 'ipamScope', ], ], ], 'ModifyLaunchTemplateRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'DefaultVersion' => [ 'shape' => 'String', 'locationName' => 'SetDefaultVersion', ], ], ], 'ModifyLaunchTemplateResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplate' => [ 'shape' => 'LaunchTemplate', 'locationName' => 'launchTemplate', ], ], ], 'ModifyLocalGatewayRouteRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', ], 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'DestinationPrefixListId' => [ 'shape' => 'PrefixListResourceId', ], ], ], 'ModifyLocalGatewayRouteResult' => [ 'type' => 'structure', 'members' => [ 'Route' => [ 'shape' => 'LocalGatewayRoute', 'locationName' => 'route', ], ], ], 'ModifyManagedPrefixListRequest' => [ 'type' => 'structure', 'required' => [ 'PrefixListId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'CurrentVersion' => [ 'shape' => 'Long', ], 'PrefixListName' => [ 'shape' => 'String', ], 'AddEntries' => [ 'shape' => 'AddPrefixListEntries', 'locationName' => 'AddEntry', ], 'RemoveEntries' => [ 'shape' => 'RemovePrefixListEntries', 'locationName' => 'RemoveEntry', ], 'MaxEntries' => [ 'shape' => 'Integer', ], 'IpamPrefixListResolverSyncEnabled' => [ 'shape' => 'BoxedBoolean', ], ], ], 'ModifyManagedPrefixListResult' => [ 'type' => 'structure', 'members' => [ 'PrefixList' => [ 'shape' => 'ManagedPrefixList', 'locationName' => 'prefixList', ], ], ], 'ModifyManagedResourceVisibilityRequest' => [ 'type' => 'structure', 'required' => [ 'DefaultVisibility', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'DefaultVisibility' => [ 'shape' => 'ManagedResourceDefaultVisibility', ], ], ], 'ModifyManagedResourceVisibilityResult' => [ 'type' => 'structure', 'members' => [ 'Visibility' => [ 'shape' => 'ManagedResourceVisibilitySettings', 'locationName' => 'visibility', ], ], ], 'ModifyNetworkInterfaceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'EnaSrdSpecification' => [ 'shape' => 'EnaSrdSpecification', ], 'EnablePrimaryIpv6' => [ 'shape' => 'Boolean', ], 'ConnectionTrackingSpecification' => [ 'shape' => 'ConnectionTrackingSpecificationRequest', ], 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', ], 'AssociatedSubnetIds' => [ 'shape' => 'SubnetIdList', 'locationName' => 'AssociatedSubnetId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'Description' => [ 'shape' => 'AttributeValue', 'locationName' => 'description', ], 'SourceDestCheck' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'sourceDestCheck', ], 'Groups' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'Attachment' => [ 'shape' => 'NetworkInterfaceAttachmentChanges', 'locationName' => 'attachment', ], ], ], 'ModifyPrivateDnsNameOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'PrivateDnsHostnameType' => [ 'shape' => 'HostnameType', ], 'EnableResourceNameDnsARecord' => [ 'shape' => 'Boolean', ], 'EnableResourceNameDnsAAAARecord' => [ 'shape' => 'Boolean', ], ], ], 'ModifyPrivateDnsNameOptionsResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyPublicIpDnsNameOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', 'HostnameType', ], 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'HostnameType' => [ 'shape' => 'PublicIpDnsOption', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyPublicIpDnsNameOptionsResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'Boolean', 'locationName' => 'successful', ], ], ], 'ModifyReservedInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstancesIds', 'TargetConfigurations', ], 'members' => [ 'ReservedInstancesIds' => [ 'shape' => 'ReservedInstancesIdStringList', 'locationName' => 'ReservedInstancesId', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'TargetConfigurations' => [ 'shape' => 'ReservedInstancesConfigurationList', 'locationName' => 'ReservedInstancesConfigurationSetItemType', ], ], ], 'ModifyReservedInstancesResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesModificationId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesModificationId', ], ], ], 'ModifyRouteServerRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'PersistRoutes' => [ 'shape' => 'RouteServerPersistRoutesAction', ], 'PersistRoutesDuration' => [ 'shape' => 'BoxedLong', ], 'SnsNotificationsEnabled' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyRouteServerResult' => [ 'type' => 'structure', 'members' => [ 'RouteServer' => [ 'shape' => 'RouteServer', 'locationName' => 'routeServer', ], ], ], 'ModifySecurityGroupRulesRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', 'SecurityGroupRules', ], 'members' => [ 'GroupId' => [ 'shape' => 'SecurityGroupId', ], 'SecurityGroupRules' => [ 'shape' => 'SecurityGroupRuleUpdateList', 'locationName' => 'SecurityGroupRule', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifySecurityGroupRulesResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifySnapshotAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', ], 'members' => [ 'Attribute' => [ 'shape' => 'SnapshotAttributeName', ], 'CreateVolumePermission' => [ 'shape' => 'CreateVolumePermissionModifications', ], 'GroupNames' => [ 'shape' => 'GroupNameStringList', 'locationName' => 'UserGroup', ], 'OperationType' => [ 'shape' => 'OperationType', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'UserIds' => [ 'shape' => 'UserIdStringList', 'locationName' => 'UserId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ModifySnapshotTierRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', ], 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'StorageTier' => [ 'shape' => 'TargetStorageTier', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifySnapshotTierResult' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'TieringStartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'tieringStartTime', ], ], ], 'ModifySpotFleetRequestRequest' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestId', ], 'members' => [ 'LaunchTemplateConfigs' => [ 'shape' => 'LaunchTemplateConfigList', 'locationName' => 'LaunchTemplateConfig', ], 'OnDemandTargetCapacity' => [ 'shape' => 'Integer', ], 'Context' => [ 'shape' => 'String', ], 'SpotFleetRequestId' => [ 'shape' => 'SpotFleetRequestId', 'locationName' => 'spotFleetRequestId', ], 'TargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'targetCapacity', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'ExcessCapacityTerminationPolicy', 'locationName' => 'excessCapacityTerminationPolicy', ], ], ], 'ModifySpotFleetRequestResponse' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifySubnetAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', ], 'members' => [ 'AssignIpv6AddressOnCreation' => [ 'shape' => 'AttributeBooleanValue', ], 'MapPublicIpOnLaunch' => [ 'shape' => 'AttributeBooleanValue', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'MapCustomerOwnedIpOnLaunch' => [ 'shape' => 'AttributeBooleanValue', ], 'CustomerOwnedIpv4Pool' => [ 'shape' => 'CoipPoolId', ], 'EnableDns64' => [ 'shape' => 'AttributeBooleanValue', ], 'PrivateDnsHostnameTypeOnLaunch' => [ 'shape' => 'HostnameType', ], 'EnableResourceNameDnsARecordOnLaunch' => [ 'shape' => 'AttributeBooleanValue', ], 'EnableResourceNameDnsAAAARecordOnLaunch' => [ 'shape' => 'AttributeBooleanValue', ], 'EnableLniAtDeviceIndex' => [ 'shape' => 'Integer', ], 'DisableLniAtDeviceIndex' => [ 'shape' => 'AttributeBooleanValue', ], ], ], 'ModifyTrafficMirrorFilterNetworkServicesRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficMirrorFilterId', ], 'members' => [ 'TrafficMirrorFilterId' => [ 'shape' => 'TrafficMirrorFilterId', ], 'AddNetworkServices' => [ 'shape' => 'TrafficMirrorNetworkServiceList', 'locationName' => 'AddNetworkService', ], 'RemoveNetworkServices' => [ 'shape' => 'TrafficMirrorNetworkServiceList', 'locationName' => 'RemoveNetworkService', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyTrafficMirrorFilterNetworkServicesResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilter' => [ 'shape' => 'TrafficMirrorFilter', 'locationName' => 'trafficMirrorFilter', ], ], ], 'ModifyTrafficMirrorFilterRuleRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficMirrorFilterRuleId', ], 'members' => [ 'TrafficMirrorFilterRuleId' => [ 'shape' => 'TrafficMirrorFilterRuleIdWithResolver', ], 'TrafficDirection' => [ 'shape' => 'TrafficDirection', ], 'RuleNumber' => [ 'shape' => 'Integer', ], 'RuleAction' => [ 'shape' => 'TrafficMirrorRuleAction', ], 'DestinationPortRange' => [ 'shape' => 'TrafficMirrorPortRangeRequest', ], 'SourcePortRange' => [ 'shape' => 'TrafficMirrorPortRangeRequest', ], 'Protocol' => [ 'shape' => 'Integer', ], 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'SourceCidrBlock' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'RemoveFields' => [ 'shape' => 'TrafficMirrorFilterRuleFieldList', 'locationName' => 'RemoveField', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyTrafficMirrorFilterRuleResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterRule' => [ 'shape' => 'TrafficMirrorFilterRule', 'locationName' => 'trafficMirrorFilterRule', ], ], ], 'ModifyTrafficMirrorSessionRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficMirrorSessionId', ], 'members' => [ 'TrafficMirrorSessionId' => [ 'shape' => 'TrafficMirrorSessionId', ], 'TrafficMirrorTargetId' => [ 'shape' => 'TrafficMirrorTargetId', ], 'TrafficMirrorFilterId' => [ 'shape' => 'TrafficMirrorFilterId', ], 'PacketLength' => [ 'shape' => 'Integer', ], 'SessionNumber' => [ 'shape' => 'Integer', ], 'VirtualNetworkId' => [ 'shape' => 'Integer', ], 'Description' => [ 'shape' => 'String', ], 'RemoveFields' => [ 'shape' => 'TrafficMirrorSessionFieldList', 'locationName' => 'RemoveField', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyTrafficMirrorSessionResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorSession' => [ 'shape' => 'TrafficMirrorSession', 'locationName' => 'trafficMirrorSession', ], ], ], 'ModifyTransitGatewayMeteringPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMeteringPolicyId', ], 'members' => [ 'TransitGatewayMeteringPolicyId' => [ 'shape' => 'TransitGatewayMeteringPolicyId', ], 'AddMiddleboxAttachmentIds' => [ 'shape' => 'TransitGatewayAttachmentIdStringList', 'locationName' => 'AddMiddleboxAttachmentId', ], 'RemoveMiddleboxAttachmentIds' => [ 'shape' => 'TransitGatewayAttachmentIdStringList', 'locationName' => 'RemoveMiddleboxAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyTransitGatewayMeteringPolicyResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicy' => [ 'shape' => 'TransitGatewayMeteringPolicy', 'locationName' => 'transitGatewayMeteringPolicy', ], ], ], 'ModifyTransitGatewayOptions' => [ 'type' => 'structure', 'members' => [ 'AddTransitGatewayCidrBlocks' => [ 'shape' => 'TransitGatewayCidrBlockStringList', ], 'RemoveTransitGatewayCidrBlocks' => [ 'shape' => 'TransitGatewayCidrBlockStringList', ], 'VpnEcmpSupport' => [ 'shape' => 'VpnEcmpSupportValue', ], 'DnsSupport' => [ 'shape' => 'DnsSupportValue', ], 'SecurityGroupReferencingSupport' => [ 'shape' => 'SecurityGroupReferencingSupportValue', ], 'AutoAcceptSharedAttachments' => [ 'shape' => 'AutoAcceptSharedAttachmentsValue', ], 'DefaultRouteTableAssociation' => [ 'shape' => 'DefaultRouteTableAssociationValue', ], 'AssociationDefaultRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'DefaultRouteTablePropagation' => [ 'shape' => 'DefaultRouteTablePropagationValue', ], 'PropagationDefaultRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'AmazonSideAsn' => [ 'shape' => 'Long', ], 'EncryptionSupport' => [ 'shape' => 'EncryptionSupportOptionValue', ], ], ], 'ModifyTransitGatewayPrefixListReferenceRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'PrefixListId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'Blackhole' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyTransitGatewayPrefixListReferenceResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPrefixListReference' => [ 'shape' => 'TransitGatewayPrefixListReference', 'locationName' => 'transitGatewayPrefixListReference', ], ], ], 'ModifyTransitGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'Description' => [ 'shape' => 'String', ], 'Options' => [ 'shape' => 'ModifyTransitGatewayOptions', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyTransitGatewayResult' => [ 'type' => 'structure', 'members' => [ 'TransitGateway' => [ 'shape' => 'TransitGateway', 'locationName' => 'transitGateway', ], ], ], 'ModifyTransitGatewayVpcAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'AddSubnetIds' => [ 'shape' => 'TransitGatewaySubnetIdList', ], 'RemoveSubnetIds' => [ 'shape' => 'TransitGatewaySubnetIdList', ], 'Options' => [ 'shape' => 'ModifyTransitGatewayVpcAttachmentRequestOptions', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyTransitGatewayVpcAttachmentRequestOptions' => [ 'type' => 'structure', 'members' => [ 'DnsSupport' => [ 'shape' => 'DnsSupportValue', ], 'SecurityGroupReferencingSupport' => [ 'shape' => 'SecurityGroupReferencingSupportValue', ], 'Ipv6Support' => [ 'shape' => 'Ipv6SupportValue', ], 'ApplianceModeSupport' => [ 'shape' => 'ApplianceModeSupportValue', ], ], ], 'ModifyTransitGatewayVpcAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachment' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'transitGatewayVpcAttachment', ], ], ], 'ModifyVerifiedAccessEndpointCidrOptions' => [ 'type' => 'structure', 'members' => [ 'PortRanges' => [ 'shape' => 'ModifyVerifiedAccessEndpointPortRangeList', 'locationName' => 'PortRange', ], ], ], 'ModifyVerifiedAccessEndpointEniOptions' => [ 'type' => 'structure', 'members' => [ 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], 'PortRanges' => [ 'shape' => 'ModifyVerifiedAccessEndpointPortRangeList', 'locationName' => 'PortRange', ], ], ], 'ModifyVerifiedAccessEndpointLoadBalancerOptions' => [ 'type' => 'structure', 'members' => [ 'SubnetIds' => [ 'shape' => 'ModifyVerifiedAccessEndpointSubnetIdList', 'locationName' => 'SubnetId', ], 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], 'PortRanges' => [ 'shape' => 'ModifyVerifiedAccessEndpointPortRangeList', 'locationName' => 'PortRange', ], ], ], 'ModifyVerifiedAccessEndpointPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessEndpointId', ], 'members' => [ 'VerifiedAccessEndpointId' => [ 'shape' => 'VerifiedAccessEndpointId', ], 'PolicyEnabled' => [ 'shape' => 'Boolean', ], 'PolicyDocument' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationRequest', ], ], ], 'ModifyVerifiedAccessEndpointPolicyResult' => [ 'type' => 'structure', 'members' => [ 'PolicyEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'policyEnabled', ], 'PolicyDocument' => [ 'shape' => 'String', 'locationName' => 'policyDocument', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationResponse', 'locationName' => 'sseSpecification', ], ], ], 'ModifyVerifiedAccessEndpointPortRange' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], 'ToPort' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], ], ], 'ModifyVerifiedAccessEndpointPortRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ModifyVerifiedAccessEndpointPortRange', 'locationName' => 'item', ], ], 'ModifyVerifiedAccessEndpointRdsOptions' => [ 'type' => 'structure', 'members' => [ 'SubnetIds' => [ 'shape' => 'ModifyVerifiedAccessEndpointSubnetIdList', 'locationName' => 'SubnetId', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], 'RdsEndpoint' => [ 'shape' => 'String', ], ], ], 'ModifyVerifiedAccessEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessEndpointId', ], 'members' => [ 'VerifiedAccessEndpointId' => [ 'shape' => 'VerifiedAccessEndpointId', ], 'VerifiedAccessGroupId' => [ 'shape' => 'VerifiedAccessGroupId', ], 'LoadBalancerOptions' => [ 'shape' => 'ModifyVerifiedAccessEndpointLoadBalancerOptions', ], 'NetworkInterfaceOptions' => [ 'shape' => 'ModifyVerifiedAccessEndpointEniOptions', ], 'Description' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'RdsOptions' => [ 'shape' => 'ModifyVerifiedAccessEndpointRdsOptions', ], 'CidrOptions' => [ 'shape' => 'ModifyVerifiedAccessEndpointCidrOptions', ], ], ], 'ModifyVerifiedAccessEndpointResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessEndpoint' => [ 'shape' => 'VerifiedAccessEndpoint', 'locationName' => 'verifiedAccessEndpoint', ], ], ], 'ModifyVerifiedAccessEndpointSubnetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', 'locationName' => 'item', ], ], 'ModifyVerifiedAccessGroupPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessGroupId', ], 'members' => [ 'VerifiedAccessGroupId' => [ 'shape' => 'VerifiedAccessGroupId', ], 'PolicyEnabled' => [ 'shape' => 'Boolean', ], 'PolicyDocument' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationRequest', ], ], ], 'ModifyVerifiedAccessGroupPolicyResult' => [ 'type' => 'structure', 'members' => [ 'PolicyEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'policyEnabled', ], 'PolicyDocument' => [ 'shape' => 'String', 'locationName' => 'policyDocument', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationResponse', 'locationName' => 'sseSpecification', ], ], ], 'ModifyVerifiedAccessGroupRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessGroupId', ], 'members' => [ 'VerifiedAccessGroupId' => [ 'shape' => 'VerifiedAccessGroupId', ], 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'Description' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyVerifiedAccessGroupResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessGroup' => [ 'shape' => 'VerifiedAccessGroup', 'locationName' => 'verifiedAccessGroup', ], ], ], 'ModifyVerifiedAccessInstanceLoggingConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessInstanceId', 'AccessLogs', ], 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'AccessLogs' => [ 'shape' => 'VerifiedAccessLogOptions', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'ModifyVerifiedAccessInstanceLoggingConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'LoggingConfiguration' => [ 'shape' => 'VerifiedAccessInstanceLoggingConfiguration', 'locationName' => 'loggingConfiguration', ], ], ], 'ModifyVerifiedAccessInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessInstanceId', ], 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'Description' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'CidrEndpointsCustomSubDomain' => [ 'shape' => 'String', ], ], ], 'ModifyVerifiedAccessInstanceResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstance' => [ 'shape' => 'VerifiedAccessInstance', 'locationName' => 'verifiedAccessInstance', ], ], ], 'ModifyVerifiedAccessNativeApplicationOidcOptions' => [ 'type' => 'structure', 'members' => [ 'PublicSigningKeyEndpoint' => [ 'shape' => 'String', ], 'Issuer' => [ 'shape' => 'String', ], 'AuthorizationEndpoint' => [ 'shape' => 'String', ], 'TokenEndpoint' => [ 'shape' => 'String', ], 'UserInfoEndpoint' => [ 'shape' => 'String', ], 'ClientId' => [ 'shape' => 'String', ], 'ClientSecret' => [ 'shape' => 'ClientSecretType', ], 'Scope' => [ 'shape' => 'String', ], ], ], 'ModifyVerifiedAccessTrustProviderDeviceOptions' => [ 'type' => 'structure', 'members' => [ 'PublicSigningKeyUrl' => [ 'shape' => 'String', ], ], ], 'ModifyVerifiedAccessTrustProviderOidcOptions' => [ 'type' => 'structure', 'members' => [ 'Issuer' => [ 'shape' => 'String', ], 'AuthorizationEndpoint' => [ 'shape' => 'String', ], 'TokenEndpoint' => [ 'shape' => 'String', ], 'UserInfoEndpoint' => [ 'shape' => 'String', ], 'ClientId' => [ 'shape' => 'String', ], 'ClientSecret' => [ 'shape' => 'ClientSecretType', ], 'Scope' => [ 'shape' => 'String', ], ], ], 'ModifyVerifiedAccessTrustProviderRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessTrustProviderId', ], 'members' => [ 'VerifiedAccessTrustProviderId' => [ 'shape' => 'VerifiedAccessTrustProviderId', ], 'OidcOptions' => [ 'shape' => 'ModifyVerifiedAccessTrustProviderOidcOptions', ], 'DeviceOptions' => [ 'shape' => 'ModifyVerifiedAccessTrustProviderDeviceOptions', ], 'Description' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationRequest', ], 'NativeApplicationOidcOptions' => [ 'shape' => 'ModifyVerifiedAccessNativeApplicationOidcOptions', ], ], ], 'ModifyVerifiedAccessTrustProviderResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProvider' => [ 'shape' => 'VerifiedAccessTrustProvider', 'locationName' => 'verifiedAccessTrustProvider', ], ], ], 'ModifyVolumeAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'AutoEnableIO' => [ 'shape' => 'AttributeBooleanValue', ], 'VolumeId' => [ 'shape' => 'VolumeId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ModifyVolumeRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VolumeId' => [ 'shape' => 'VolumeId', ], 'Size' => [ 'shape' => 'Integer', ], 'VolumeType' => [ 'shape' => 'VolumeType', ], 'Iops' => [ 'shape' => 'Integer', ], 'Throughput' => [ 'shape' => 'Integer', ], 'MultiAttachEnabled' => [ 'shape' => 'Boolean', ], ], ], 'ModifyVolumeResult' => [ 'type' => 'structure', 'members' => [ 'VolumeModification' => [ 'shape' => 'VolumeModification', 'locationName' => 'volumeModification', ], ], ], 'ModifyVpcAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'EnableDnsHostnames' => [ 'shape' => 'AttributeBooleanValue', ], 'EnableDnsSupport' => [ 'shape' => 'AttributeBooleanValue', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'EnableNetworkAddressUsageMetrics' => [ 'shape' => 'AttributeBooleanValue', ], ], ], 'ModifyVpcBlockPublicAccessExclusionRequest' => [ 'type' => 'structure', 'required' => [ 'ExclusionId', 'InternetGatewayExclusionMode', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ExclusionId' => [ 'shape' => 'VpcBlockPublicAccessExclusionId', ], 'InternetGatewayExclusionMode' => [ 'shape' => 'InternetGatewayExclusionMode', ], ], ], 'ModifyVpcBlockPublicAccessExclusionResult' => [ 'type' => 'structure', 'members' => [ 'VpcBlockPublicAccessExclusion' => [ 'shape' => 'VpcBlockPublicAccessExclusion', 'locationName' => 'vpcBlockPublicAccessExclusion', ], ], ], 'ModifyVpcBlockPublicAccessOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'InternetGatewayBlockMode', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InternetGatewayBlockMode' => [ 'shape' => 'InternetGatewayBlockMode', ], ], ], 'ModifyVpcBlockPublicAccessOptionsResult' => [ 'type' => 'structure', 'members' => [ 'VpcBlockPublicAccessOptions' => [ 'shape' => 'VpcBlockPublicAccessOptions', 'locationName' => 'vpcBlockPublicAccessOptions', ], ], ], 'ModifyVpcEncryptionControlRequest' => [ 'type' => 'structure', 'required' => [ 'VpcEncryptionControlId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcEncryptionControlId' => [ 'shape' => 'VpcEncryptionControlId', ], 'Mode' => [ 'shape' => 'VpcEncryptionControlMode', ], 'InternetGatewayExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'EgressOnlyInternetGatewayExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'NatGatewayExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VirtualPrivateGatewayExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VpcPeeringExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'LambdaExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VpcLatticeExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'ElasticFileSystemExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], ], ], 'ModifyVpcEncryptionControlResult' => [ 'type' => 'structure', 'members' => [ 'VpcEncryptionControl' => [ 'shape' => 'VpcEncryptionControl', 'locationName' => 'vpcEncryptionControl', ], ], ], 'ModifyVpcEndpointConnectionNotificationRequest' => [ 'type' => 'structure', 'required' => [ 'ConnectionNotificationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ConnectionNotificationId' => [ 'shape' => 'ConnectionNotificationId', ], 'ConnectionNotificationArn' => [ 'shape' => 'String', ], 'ConnectionEvents' => [ 'shape' => 'ValueStringList', ], ], ], 'ModifyVpcEndpointConnectionNotificationResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyVpcEndpointPayerResponsibilityRequest' => [ 'type' => 'structure', 'required' => [ 'VpcEndpointId', 'PayerResponsibility', 'Scope', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], 'VpcEndpointId' => [ 'shape' => 'VpcEndpointId', ], 'PayerResponsibility' => [ 'shape' => 'PayerResponsibilityType', ], 'Scope' => [ 'shape' => 'PayerResponsibilityScope', ], ], ], 'ModifyVpcEndpointPayerResponsibilityResult' => [ 'type' => 'structure', 'members' => [ 'VpcEndpointId' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointId', ], 'PayerResponsibilities' => [ 'shape' => 'PayerResponsibilitySet', 'locationName' => 'payerResponsibilitySet', ], ], ], 'ModifyVpcEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'VpcEndpointId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcEndpointId' => [ 'shape' => 'VpcEndpointId', ], 'ResetPolicy' => [ 'shape' => 'Boolean', ], 'PolicyDocument' => [ 'shape' => 'String', ], 'AddRouteTableIds' => [ 'shape' => 'VpcEndpointRouteTableIdList', 'locationName' => 'AddRouteTableId', ], 'RemoveRouteTableIds' => [ 'shape' => 'VpcEndpointRouteTableIdList', 'locationName' => 'RemoveRouteTableId', ], 'AddSubnetIds' => [ 'shape' => 'VpcEndpointSubnetIdList', 'locationName' => 'AddSubnetId', ], 'RemoveSubnetIds' => [ 'shape' => 'VpcEndpointSubnetIdList', 'locationName' => 'RemoveSubnetId', ], 'AddSecurityGroupIds' => [ 'shape' => 'VpcEndpointSecurityGroupIdList', 'locationName' => 'AddSecurityGroupId', ], 'RemoveSecurityGroupIds' => [ 'shape' => 'VpcEndpointSecurityGroupIdList', 'locationName' => 'RemoveSecurityGroupId', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', ], 'DnsOptions' => [ 'shape' => 'DnsOptionsSpecification', ], 'PrivateDnsEnabled' => [ 'shape' => 'Boolean', ], 'SubnetConfigurations' => [ 'shape' => 'SubnetConfigurationsList', 'locationName' => 'SubnetConfiguration', ], ], ], 'ModifyVpcEndpointResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyVpcEndpointServiceConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], 'PrivateDnsName' => [ 'shape' => 'String', ], 'RemovePrivateDnsName' => [ 'shape' => 'Boolean', ], 'AcceptanceRequired' => [ 'shape' => 'Boolean', ], 'AddNetworkLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'AddNetworkLoadBalancerArn', ], 'RemoveNetworkLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'RemoveNetworkLoadBalancerArn', ], 'AddGatewayLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'AddGatewayLoadBalancerArn', ], 'RemoveGatewayLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'RemoveGatewayLoadBalancerArn', ], 'AddSupportedIpAddressTypes' => [ 'shape' => 'ValueStringList', 'locationName' => 'AddSupportedIpAddressType', ], 'RemoveSupportedIpAddressTypes' => [ 'shape' => 'ValueStringList', 'locationName' => 'RemoveSupportedIpAddressType', ], 'AddSupportedRegions' => [ 'shape' => 'ValueStringList', 'locationName' => 'AddSupportedRegion', ], 'RemoveSupportedRegions' => [ 'shape' => 'ValueStringList', 'locationName' => 'RemoveSupportedRegion', ], ], ], 'ModifyVpcEndpointServiceConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyVpcEndpointServicePayerResponsibilityRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', 'PayerResponsibility', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], 'PayerResponsibility' => [ 'shape' => 'PayerResponsibility', ], ], ], 'ModifyVpcEndpointServicePayerResponsibilityResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyVpcEndpointServicePermissionsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], 'AddAllowedPrincipals' => [ 'shape' => 'ValueStringList', ], 'RemoveAllowedPrincipals' => [ 'shape' => 'ValueStringList', ], ], ], 'ModifyVpcEndpointServicePermissionsResult' => [ 'type' => 'structure', 'members' => [ 'AddedPrincipals' => [ 'shape' => 'AddedPrincipalSet', 'locationName' => 'addedPrincipalSet', ], 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyVpcPeeringConnectionOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'VpcPeeringConnectionId', ], 'members' => [ 'AccepterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptionsRequest', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'RequesterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptionsRequest', ], 'VpcPeeringConnectionId' => [ 'shape' => 'VpcPeeringConnectionId', ], ], ], 'ModifyVpcPeeringConnectionOptionsResult' => [ 'type' => 'structure', 'members' => [ 'AccepterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptions', 'locationName' => 'accepterPeeringConnectionOptions', ], 'RequesterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptions', 'locationName' => 'requesterPeeringConnectionOptions', ], ], ], 'ModifyVpcTenancyRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', 'InstanceTenancy', ], 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], 'InstanceTenancy' => [ 'shape' => 'VpcTenancy', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyVpcTenancyResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyVpnConnectionOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'LocalIpv4NetworkCidr' => [ 'shape' => 'String', ], 'RemoteIpv4NetworkCidr' => [ 'shape' => 'String', ], 'LocalIpv6NetworkCidr' => [ 'shape' => 'String', ], 'RemoteIpv6NetworkCidr' => [ 'shape' => 'String', ], 'TunnelBandwidth' => [ 'shape' => 'VpnTunnelBandwidth', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyVpnConnectionOptionsResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnection' => [ 'shape' => 'VpnConnection', 'locationName' => 'vpnConnection', ], ], ], 'ModifyVpnConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'CustomerGatewayId' => [ 'shape' => 'CustomerGatewayId', ], 'VpnGatewayId' => [ 'shape' => 'VpnGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyVpnConnectionResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnection' => [ 'shape' => 'VpnConnection', 'locationName' => 'vpnConnection', ], ], ], 'ModifyVpnTunnelCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', 'VpnTunnelOutsideIpAddress', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'VpnTunnelOutsideIpAddress' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyVpnTunnelCertificateResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnection' => [ 'shape' => 'VpnConnection', 'locationName' => 'vpnConnection', ], ], ], 'ModifyVpnTunnelOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', 'VpnTunnelOutsideIpAddress', 'TunnelOptions', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'VpnTunnelOutsideIpAddress' => [ 'shape' => 'String', ], 'TunnelOptions' => [ 'shape' => 'ModifyVpnTunnelOptionsSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SkipTunnelReplacement' => [ 'shape' => 'Boolean', ], 'PreSharedKeyStorage' => [ 'shape' => 'String', ], ], ], 'ModifyVpnTunnelOptionsResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnection' => [ 'shape' => 'VpnConnection', 'locationName' => 'vpnConnection', ], ], ], 'ModifyVpnTunnelOptionsSpecification' => [ 'type' => 'structure', 'members' => [ 'TunnelInsideCidr' => [ 'shape' => 'String', ], 'TunnelInsideIpv6Cidr' => [ 'shape' => 'String', ], 'PreSharedKey' => [ 'shape' => 'preSharedKey', ], 'Phase1LifetimeSeconds' => [ 'shape' => 'Integer', ], 'Phase2LifetimeSeconds' => [ 'shape' => 'Integer', ], 'RekeyMarginTimeSeconds' => [ 'shape' => 'Integer', ], 'RekeyFuzzPercentage' => [ 'shape' => 'Integer', ], 'ReplayWindowSize' => [ 'shape' => 'Integer', ], 'DPDTimeoutSeconds' => [ 'shape' => 'Integer', ], 'DPDTimeoutAction' => [ 'shape' => 'String', ], 'Phase1EncryptionAlgorithms' => [ 'shape' => 'Phase1EncryptionAlgorithmsRequestList', 'locationName' => 'Phase1EncryptionAlgorithm', ], 'Phase2EncryptionAlgorithms' => [ 'shape' => 'Phase2EncryptionAlgorithmsRequestList', 'locationName' => 'Phase2EncryptionAlgorithm', ], 'Phase1IntegrityAlgorithms' => [ 'shape' => 'Phase1IntegrityAlgorithmsRequestList', 'locationName' => 'Phase1IntegrityAlgorithm', ], 'Phase2IntegrityAlgorithms' => [ 'shape' => 'Phase2IntegrityAlgorithmsRequestList', 'locationName' => 'Phase2IntegrityAlgorithm', ], 'Phase1DHGroupNumbers' => [ 'shape' => 'Phase1DHGroupNumbersRequestList', 'locationName' => 'Phase1DHGroupNumber', ], 'Phase2DHGroupNumbers' => [ 'shape' => 'Phase2DHGroupNumbersRequestList', 'locationName' => 'Phase2DHGroupNumber', ], 'IKEVersions' => [ 'shape' => 'IKEVersionsRequestList', 'locationName' => 'IKEVersion', ], 'StartupAction' => [ 'shape' => 'String', ], 'LogOptions' => [ 'shape' => 'VpnTunnelLogOptionsSpecification', ], 'EnableTunnelLifecycleControl' => [ 'shape' => 'Boolean', ], ], 'sensitive' => true, ], 'MonitorInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'MonitorInstancesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceMonitorings' => [ 'shape' => 'InstanceMonitoringList', 'locationName' => 'instancesSet', ], ], ], 'Monitoring' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'MonitoringState', 'locationName' => 'state', ], ], ], 'MonitoringState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'disabling', 'enabled', 'pending', ], ], 'MoveAddressToVpcRequest' => [ 'type' => 'structure', 'required' => [ 'PublicIp', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], ], ], 'MoveAddressToVpcResult' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'Status' => [ 'shape' => 'Status', 'locationName' => 'status', ], ], ], 'MoveByoipCidrToIpamRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', 'IpamPoolId', 'IpamPoolOwner', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Cidr' => [ 'shape' => 'String', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'IpamPoolOwner' => [ 'shape' => 'String', ], ], ], 'MoveByoipCidrToIpamResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidr' => [ 'shape' => 'ByoipCidr', 'locationName' => 'byoipCidr', ], ], ], 'MoveCapacityReservationInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'SourceCapacityReservationId', 'DestinationCapacityReservationId', 'InstanceCount', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'SourceCapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'DestinationCapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'InstanceCount' => [ 'shape' => 'Integer', ], ], ], 'MoveCapacityReservationInstancesResult' => [ 'type' => 'structure', 'members' => [ 'SourceCapacityReservation' => [ 'shape' => 'CapacityReservation', 'locationName' => 'sourceCapacityReservation', ], 'DestinationCapacityReservation' => [ 'shape' => 'CapacityReservation', 'locationName' => 'destinationCapacityReservation', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], ], ], 'MoveStatus' => [ 'type' => 'string', 'enum' => [ 'movingToVpc', 'restoringToClassic', ], ], 'MovingAddressStatus' => [ 'type' => 'structure', 'members' => [ 'MoveStatus' => [ 'shape' => 'MoveStatus', 'locationName' => 'moveStatus', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], ], ], 'MovingAddressStatusSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'MovingAddressStatus', 'locationName' => 'item', ], ], 'MulticastSupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'NatGateway' => [ 'type' => 'structure', 'members' => [ 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'DeleteTime' => [ 'shape' => 'DateTime', 'locationName' => 'deleteTime', ], 'FailureCode' => [ 'shape' => 'String', 'locationName' => 'failureCode', ], 'FailureMessage' => [ 'shape' => 'String', 'locationName' => 'failureMessage', ], 'NatGatewayAddresses' => [ 'shape' => 'NatGatewayAddressList', 'locationName' => 'natGatewayAddressSet', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], 'ProvisionedBandwidth' => [ 'shape' => 'ProvisionedBandwidth', 'locationName' => 'provisionedBandwidth', ], 'State' => [ 'shape' => 'NatGatewayState', 'locationName' => 'state', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'ConnectivityType' => [ 'shape' => 'ConnectivityType', 'locationName' => 'connectivityType', ], 'AvailabilityMode' => [ 'shape' => 'AvailabilityMode', 'locationName' => 'availabilityMode', ], 'AutoScalingIps' => [ 'shape' => 'AutoScalingIpsState', 'locationName' => 'autoScalingIps', ], 'AutoProvisionZones' => [ 'shape' => 'AutoProvisionZonesState', 'locationName' => 'autoProvisionZones', ], 'AttachedAppliances' => [ 'shape' => 'NatGatewayAttachedApplianceList', 'locationName' => 'attachedApplianceSet', ], 'RouteTableId' => [ 'shape' => 'String', 'locationName' => 'routeTableId', ], ], ], 'NatGatewayAddress' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'PrivateIp' => [ 'shape' => 'String', 'locationName' => 'privateIp', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'IsPrimary' => [ 'shape' => 'Boolean', 'locationName' => 'isPrimary', ], 'FailureMessage' => [ 'shape' => 'String', 'locationName' => 'failureMessage', ], 'Status' => [ 'shape' => 'NatGatewayAddressStatus', 'locationName' => 'status', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], ], ], 'NatGatewayAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NatGatewayAddress', 'locationName' => 'item', ], ], 'NatGatewayAddressStatus' => [ 'type' => 'string', 'enum' => [ 'assigning', 'unassigning', 'associating', 'disassociating', 'succeeded', 'failed', ], ], 'NatGatewayApplianceModifyState' => [ 'type' => 'string', 'enum' => [ 'modifying', 'completed', 'failed', ], ], 'NatGatewayApplianceState' => [ 'type' => 'string', 'enum' => [ 'attaching', 'attached', 'detaching', 'detached', 'attach-failed', 'detach-failed', ], ], 'NatGatewayApplianceType' => [ 'type' => 'string', 'enum' => [ 'network-firewall-proxy', ], ], 'NatGatewayAttachedAppliance' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'NatGatewayApplianceType', 'locationName' => 'type', ], 'ApplianceArn' => [ 'shape' => 'String', 'locationName' => 'applianceArn', ], 'VpcEndpointId' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointId', ], 'AttachmentState' => [ 'shape' => 'NatGatewayApplianceState', 'locationName' => 'attachmentState', ], 'ModificationState' => [ 'shape' => 'NatGatewayApplianceModifyState', 'locationName' => 'modificationState', ], 'FailureCode' => [ 'shape' => 'String', 'locationName' => 'failureCode', ], 'FailureMessage' => [ 'shape' => 'String', 'locationName' => 'failureMessage', ], ], ], 'NatGatewayAttachedApplianceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NatGatewayAttachedAppliance', 'locationName' => 'item', ], ], 'NatGatewayId' => [ 'type' => 'string', ], 'NatGatewayIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NatGatewayId', 'locationName' => 'item', ], ], 'NatGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NatGateway', 'locationName' => 'item', ], ], 'NatGatewayState' => [ 'type' => 'string', 'enum' => [ 'pending', 'failed', 'available', 'deleting', 'deleted', ], ], 'NativeApplicationOidcOptions' => [ 'type' => 'structure', 'members' => [ 'PublicSigningKeyEndpoint' => [ 'shape' => 'String', 'locationName' => 'publicSigningKeyEndpoint', ], 'Issuer' => [ 'shape' => 'String', 'locationName' => 'issuer', ], 'AuthorizationEndpoint' => [ 'shape' => 'String', 'locationName' => 'authorizationEndpoint', ], 'TokenEndpoint' => [ 'shape' => 'String', 'locationName' => 'tokenEndpoint', ], 'UserInfoEndpoint' => [ 'shape' => 'String', 'locationName' => 'userInfoEndpoint', ], 'ClientId' => [ 'shape' => 'String', 'locationName' => 'clientId', ], 'Scope' => [ 'shape' => 'String', 'locationName' => 'scope', ], ], ], 'NestedVirtualizationSpecification' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'NetmaskLength' => [ 'type' => 'integer', ], 'NetworkAcl' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'NetworkAclAssociationList', 'locationName' => 'associationSet', ], 'Entries' => [ 'shape' => 'NetworkAclEntryList', 'locationName' => 'entrySet', ], 'IsDefault' => [ 'shape' => 'Boolean', 'locationName' => 'default', ], 'NetworkAclId' => [ 'shape' => 'String', 'locationName' => 'networkAclId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], ], ], 'NetworkAclAssociation' => [ 'type' => 'structure', 'members' => [ 'NetworkAclAssociationId' => [ 'shape' => 'String', 'locationName' => 'networkAclAssociationId', ], 'NetworkAclId' => [ 'shape' => 'String', 'locationName' => 'networkAclId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], ], ], 'NetworkAclAssociationId' => [ 'type' => 'string', ], 'NetworkAclAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkAclAssociation', 'locationName' => 'item', ], ], 'NetworkAclEntry' => [ 'type' => 'structure', 'members' => [ 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'Egress' => [ 'shape' => 'Boolean', 'locationName' => 'egress', ], 'IcmpTypeCode' => [ 'shape' => 'IcmpTypeCode', 'locationName' => 'icmpTypeCode', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], 'PortRange' => [ 'shape' => 'PortRange', 'locationName' => 'portRange', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'RuleAction' => [ 'shape' => 'RuleAction', 'locationName' => 'ruleAction', ], 'RuleNumber' => [ 'shape' => 'Integer', 'locationName' => 'ruleNumber', ], ], ], 'NetworkAclEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkAclEntry', 'locationName' => 'item', ], ], 'NetworkAclId' => [ 'type' => 'string', ], 'NetworkAclIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkAclId', 'locationName' => 'item', ], ], 'NetworkAclList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkAcl', 'locationName' => 'item', ], ], 'NetworkBandwidthGbps' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Double', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Double', 'locationName' => 'max', ], ], ], 'NetworkBandwidthGbpsRequest' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Double', ], 'Max' => [ 'shape' => 'Double', ], ], ], 'NetworkCardIndex' => [ 'type' => 'integer', ], 'NetworkCardInfo' => [ 'type' => 'structure', 'members' => [ 'NetworkCardIndex' => [ 'shape' => 'NetworkCardIndex', 'locationName' => 'networkCardIndex', ], 'NetworkPerformance' => [ 'shape' => 'NetworkPerformance', 'locationName' => 'networkPerformance', ], 'MaximumNetworkInterfaces' => [ 'shape' => 'MaxNetworkInterfaces', 'locationName' => 'maximumNetworkInterfaces', ], 'AdditionalFlexibleNetworkInterfaces' => [ 'shape' => 'AdditionalFlexibleNetworkInterfaces', 'locationName' => 'additionalFlexibleNetworkInterfaces', ], 'BaselineBandwidthInGbps' => [ 'shape' => 'BaselineBandwidthInGbps', 'locationName' => 'baselineBandwidthInGbps', ], 'PeakBandwidthInGbps' => [ 'shape' => 'PeakBandwidthInGbps', 'locationName' => 'peakBandwidthInGbps', ], 'DefaultEnaQueueCountPerInterface' => [ 'shape' => 'DefaultEnaQueueCountPerInterface', 'locationName' => 'defaultEnaQueueCountPerInterface', ], 'MaximumEnaQueueCount' => [ 'shape' => 'MaximumEnaQueueCount', 'locationName' => 'maximumEnaQueueCount', ], 'MaximumEnaQueueCountPerInterface' => [ 'shape' => 'MaximumEnaQueueCountPerInterface', 'locationName' => 'maximumEnaQueueCountPerInterface', ], ], ], 'NetworkCardInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkCardInfo', 'locationName' => 'item', ], ], 'NetworkInfo' => [ 'type' => 'structure', 'members' => [ 'NetworkPerformance' => [ 'shape' => 'NetworkPerformance', 'locationName' => 'networkPerformance', ], 'MaximumNetworkInterfaces' => [ 'shape' => 'MaxNetworkInterfaces', 'locationName' => 'maximumNetworkInterfaces', ], 'MaximumNetworkCards' => [ 'shape' => 'MaximumNetworkCards', 'locationName' => 'maximumNetworkCards', ], 'DefaultNetworkCardIndex' => [ 'shape' => 'DefaultNetworkCardIndex', 'locationName' => 'defaultNetworkCardIndex', ], 'NetworkCards' => [ 'shape' => 'NetworkCardInfoList', 'locationName' => 'networkCards', ], 'Ipv4AddressesPerInterface' => [ 'shape' => 'MaxIpv4AddrPerInterface', 'locationName' => 'ipv4AddressesPerInterface', ], 'Ipv6AddressesPerInterface' => [ 'shape' => 'MaxIpv6AddrPerInterface', 'locationName' => 'ipv6AddressesPerInterface', ], 'Ipv6Supported' => [ 'shape' => 'Ipv6Flag', 'locationName' => 'ipv6Supported', ], 'EnaSupport' => [ 'shape' => 'EnaSupport', 'locationName' => 'enaSupport', ], 'EfaSupported' => [ 'shape' => 'EfaSupportedFlag', 'locationName' => 'efaSupported', ], 'EfaInfo' => [ 'shape' => 'EfaInfo', 'locationName' => 'efaInfo', ], 'EncryptionInTransitSupported' => [ 'shape' => 'EncryptionInTransitSupported', 'locationName' => 'encryptionInTransitSupported', ], 'EnaSrdSupported' => [ 'shape' => 'EnaSrdSupported', 'locationName' => 'enaSrdSupported', ], 'BandwidthWeightings' => [ 'shape' => 'BandwidthWeightingTypeList', 'locationName' => 'bandwidthWeightings', ], 'FlexibleEnaQueuesSupport' => [ 'shape' => 'FlexibleEnaQueuesSupport', 'locationName' => 'flexibleEnaQueuesSupport', ], 'ConnectionTrackingConfiguration' => [ 'shape' => 'DefaultConnectionTrackingConfiguration', 'locationName' => 'connectionTrackingConfiguration', ], 'SecondaryNetworkSupported' => [ 'shape' => 'SecondaryNetworkSupportedFlag', 'locationName' => 'secondaryNetworkSupported', ], 'MaximumSecondaryNetworkInterfaces' => [ 'shape' => 'MaximumSecondaryNetworkInterfaces', 'locationName' => 'maximumSecondaryNetworkInterfaces', ], 'Ipv4AddressesPerSecondaryInterface' => [ 'shape' => 'Ipv4AddressesPerSecondaryInterface', 'locationName' => 'ipv4AddressesPerSecondaryInterface', ], ], ], 'NetworkInsightsAccessScope' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', 'locationName' => 'networkInsightsAccessScopeId', ], 'NetworkInsightsAccessScopeArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'networkInsightsAccessScopeArn', ], 'CreatedDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createdDate', ], 'UpdatedDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'updatedDate', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'NetworkInsightsAccessScopeAnalysis' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeAnalysisId' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisId', 'locationName' => 'networkInsightsAccessScopeAnalysisId', ], 'NetworkInsightsAccessScopeAnalysisArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'networkInsightsAccessScopeAnalysisArn', ], 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', 'locationName' => 'networkInsightsAccessScopeId', ], 'Status' => [ 'shape' => 'AnalysisStatus', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'WarningMessage' => [ 'shape' => 'String', 'locationName' => 'warningMessage', ], 'StartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startDate', ], 'EndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'endDate', ], 'FindingsFound' => [ 'shape' => 'FindingsFound', 'locationName' => 'findingsFound', ], 'AnalyzedEniCount' => [ 'shape' => 'Integer', 'locationName' => 'analyzedEniCount', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'NetworkInsightsAccessScopeAnalysisId' => [ 'type' => 'string', ], 'NetworkInsightsAccessScopeAnalysisIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisId', 'locationName' => 'item', ], ], 'NetworkInsightsAccessScopeAnalysisList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysis', 'locationName' => 'item', ], ], 'NetworkInsightsAccessScopeContent' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', 'locationName' => 'networkInsightsAccessScopeId', ], 'MatchPaths' => [ 'shape' => 'AccessScopePathList', 'locationName' => 'matchPathSet', ], 'ExcludePaths' => [ 'shape' => 'AccessScopePathList', 'locationName' => 'excludePathSet', ], ], ], 'NetworkInsightsAccessScopeId' => [ 'type' => 'string', ], 'NetworkInsightsAccessScopeIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInsightsAccessScopeId', 'locationName' => 'item', ], ], 'NetworkInsightsAccessScopeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInsightsAccessScope', 'locationName' => 'item', ], ], 'NetworkInsightsAnalysis' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAnalysisId' => [ 'shape' => 'NetworkInsightsAnalysisId', 'locationName' => 'networkInsightsAnalysisId', ], 'NetworkInsightsAnalysisArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'networkInsightsAnalysisArn', ], 'NetworkInsightsPathId' => [ 'shape' => 'NetworkInsightsPathId', 'locationName' => 'networkInsightsPathId', ], 'AdditionalAccounts' => [ 'shape' => 'ValueStringList', 'locationName' => 'additionalAccountSet', ], 'FilterInArns' => [ 'shape' => 'ArnList', 'locationName' => 'filterInArnSet', ], 'FilterOutArns' => [ 'shape' => 'ArnList', 'locationName' => 'filterOutArnSet', ], 'StartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startDate', ], 'Status' => [ 'shape' => 'AnalysisStatus', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'WarningMessage' => [ 'shape' => 'String', 'locationName' => 'warningMessage', ], 'NetworkPathFound' => [ 'shape' => 'Boolean', 'locationName' => 'networkPathFound', ], 'ForwardPathComponents' => [ 'shape' => 'PathComponentList', 'locationName' => 'forwardPathComponentSet', ], 'ReturnPathComponents' => [ 'shape' => 'PathComponentList', 'locationName' => 'returnPathComponentSet', ], 'Explanations' => [ 'shape' => 'ExplanationList', 'locationName' => 'explanationSet', ], 'AlternatePathHints' => [ 'shape' => 'AlternatePathHintList', 'locationName' => 'alternatePathHintSet', ], 'SuggestedAccounts' => [ 'shape' => 'ValueStringList', 'locationName' => 'suggestedAccountSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'NetworkInsightsAnalysisId' => [ 'type' => 'string', ], 'NetworkInsightsAnalysisIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInsightsAnalysisId', 'locationName' => 'item', ], ], 'NetworkInsightsAnalysisList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInsightsAnalysis', 'locationName' => 'item', ], ], 'NetworkInsightsMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'NetworkInsightsPath' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsPathId' => [ 'shape' => 'NetworkInsightsPathId', 'locationName' => 'networkInsightsPathId', ], 'NetworkInsightsPathArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'networkInsightsPathArn', ], 'CreatedDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createdDate', ], 'Source' => [ 'shape' => 'String', 'locationName' => 'source', ], 'Destination' => [ 'shape' => 'String', 'locationName' => 'destination', ], 'SourceArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'sourceArn', ], 'DestinationArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'destinationArn', ], 'SourceIp' => [ 'shape' => 'IpAddress', 'locationName' => 'sourceIp', ], 'DestinationIp' => [ 'shape' => 'IpAddress', 'locationName' => 'destinationIp', ], 'Protocol' => [ 'shape' => 'Protocol', 'locationName' => 'protocol', ], 'DestinationPort' => [ 'shape' => 'Integer', 'locationName' => 'destinationPort', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'FilterAtSource' => [ 'shape' => 'PathFilter', 'locationName' => 'filterAtSource', ], 'FilterAtDestination' => [ 'shape' => 'PathFilter', 'locationName' => 'filterAtDestination', ], ], ], 'NetworkInsightsPathId' => [ 'type' => 'string', ], 'NetworkInsightsPathIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInsightsPathId', 'locationName' => 'item', ], ], 'NetworkInsightsPathList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInsightsPath', 'locationName' => 'item', ], ], 'NetworkInsightsResourceId' => [ 'type' => 'string', ], 'NetworkInterface' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'NetworkInterfaceAssociation', 'locationName' => 'association', ], 'Attachment' => [ 'shape' => 'NetworkInterfaceAttachment', 'locationName' => 'attachment', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'ConnectionTrackingConfiguration' => [ 'shape' => 'ConnectionTrackingConfiguration', 'locationName' => 'connectionTrackingConfiguration', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'InterfaceType' => [ 'shape' => 'NetworkInterfaceType', 'locationName' => 'interfaceType', ], 'Ipv6Addresses' => [ 'shape' => 'NetworkInterfaceIpv6AddressesList', 'locationName' => 'ipv6AddressesSet', ], 'MacAddress' => [ 'shape' => 'String', 'locationName' => 'macAddress', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PublicDnsName' => [ 'shape' => 'String', 'locationName' => 'publicDnsName', ], 'PublicIpDnsNameOptions' => [ 'shape' => 'PublicIpDnsNameOptions', 'locationName' => 'publicIpDnsNameOptions', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'PrivateIpAddresses' => [ 'shape' => 'NetworkInterfacePrivateIpAddressList', 'locationName' => 'privateIpAddressesSet', ], 'Ipv4Prefixes' => [ 'shape' => 'Ipv4PrefixesList', 'locationName' => 'ipv4PrefixSet', ], 'Ipv6Prefixes' => [ 'shape' => 'Ipv6PrefixesList', 'locationName' => 'ipv6PrefixSet', ], 'RequesterId' => [ 'shape' => 'String', 'locationName' => 'requesterId', ], 'RequesterManaged' => [ 'shape' => 'Boolean', 'locationName' => 'requesterManaged', ], 'SourceDestCheck' => [ 'shape' => 'Boolean', 'locationName' => 'sourceDestCheck', ], 'Status' => [ 'shape' => 'NetworkInterfaceStatus', 'locationName' => 'status', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'TagSet' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'DenyAllIgwTraffic' => [ 'shape' => 'Boolean', 'locationName' => 'denyAllIgwTraffic', ], 'Ipv6Native' => [ 'shape' => 'Boolean', 'locationName' => 'ipv6Native', ], 'Ipv6Address' => [ 'shape' => 'String', 'locationName' => 'ipv6Address', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], 'AssociatedSubnets' => [ 'shape' => 'AssociatedSubnetList', 'locationName' => 'associatedSubnetSet', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], ], ], 'NetworkInterfaceAssociation' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'IpOwnerId' => [ 'shape' => 'String', 'locationName' => 'ipOwnerId', ], 'PublicDnsName' => [ 'shape' => 'String', 'locationName' => 'publicDnsName', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], 'CustomerOwnedIp' => [ 'shape' => 'String', 'locationName' => 'customerOwnedIp', ], 'CarrierIp' => [ 'shape' => 'String', 'locationName' => 'carrierIp', ], ], ], 'NetworkInterfaceAttachment' => [ 'type' => 'structure', 'members' => [ 'AttachTime' => [ 'shape' => 'DateTime', 'locationName' => 'attachTime', ], 'AttachmentId' => [ 'shape' => 'String', 'locationName' => 'attachmentId', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'networkCardIndex', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceOwnerId' => [ 'shape' => 'String', 'locationName' => 'instanceOwnerId', ], 'Status' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'status', ], 'EnaSrdSpecification' => [ 'shape' => 'AttachmentEnaSrdSpecification', 'locationName' => 'enaSrdSpecification', ], 'EnaQueueCount' => [ 'shape' => 'Integer', 'locationName' => 'enaQueueCount', ], ], ], 'NetworkInterfaceAttachmentChanges' => [ 'type' => 'structure', 'members' => [ 'DefaultEnaQueueCount' => [ 'shape' => 'Boolean', ], 'EnaQueueCount' => [ 'shape' => 'Integer', ], 'AttachmentId' => [ 'shape' => 'NetworkInterfaceAttachmentId', 'locationName' => 'attachmentId', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], ], ], 'NetworkInterfaceAttachmentId' => [ 'type' => 'string', ], 'NetworkInterfaceAttribute' => [ 'type' => 'string', 'enum' => [ 'description', 'groupSet', 'sourceDestCheck', 'attachment', 'associatePublicIpAddress', ], ], 'NetworkInterfaceCount' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Integer', 'locationName' => 'max', ], ], ], 'NetworkInterfaceCountRequest' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', ], 'Max' => [ 'shape' => 'Integer', ], ], ], 'NetworkInterfaceCreationType' => [ 'type' => 'string', 'enum' => [ 'efa', 'efa-only', 'branch', 'trunk', ], ], 'NetworkInterfaceId' => [ 'type' => 'string', ], 'NetworkInterfaceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'item', ], ], 'NetworkInterfaceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'NetworkInterfaceIpv6Address' => [ 'type' => 'structure', 'members' => [ 'Ipv6Address' => [ 'shape' => 'String', 'locationName' => 'ipv6Address', ], 'PublicIpv6DnsName' => [ 'shape' => 'String', 'locationName' => 'publicIpv6DnsName', ], 'IsPrimaryIpv6' => [ 'shape' => 'Boolean', 'locationName' => 'isPrimaryIpv6', ], ], ], 'NetworkInterfaceIpv6AddressesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterfaceIpv6Address', 'locationName' => 'item', ], ], 'NetworkInterfaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterface', 'locationName' => 'item', ], ], 'NetworkInterfacePermission' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfacePermissionId' => [ 'shape' => 'String', 'locationName' => 'networkInterfacePermissionId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'AwsAccountId' => [ 'shape' => 'String', 'locationName' => 'awsAccountId', ], 'AwsService' => [ 'shape' => 'String', 'locationName' => 'awsService', ], 'Permission' => [ 'shape' => 'InterfacePermissionType', 'locationName' => 'permission', ], 'PermissionState' => [ 'shape' => 'NetworkInterfacePermissionState', 'locationName' => 'permissionState', ], ], ], 'NetworkInterfacePermissionId' => [ 'type' => 'string', ], 'NetworkInterfacePermissionIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterfacePermissionId', ], ], 'NetworkInterfacePermissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterfacePermission', 'locationName' => 'item', ], ], 'NetworkInterfacePermissionState' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'NetworkInterfacePermissionStateCode', 'locationName' => 'state', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], ], ], 'NetworkInterfacePermissionStateCode' => [ 'type' => 'string', 'enum' => [ 'pending', 'granted', 'revoking', 'revoked', ], ], 'NetworkInterfacePrivateIpAddress' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'NetworkInterfaceAssociation', 'locationName' => 'association', ], 'Primary' => [ 'shape' => 'Boolean', 'locationName' => 'primary', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'NetworkInterfacePrivateIpAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterfacePrivateIpAddress', 'locationName' => 'item', ], ], 'NetworkInterfaceStatus' => [ 'type' => 'string', 'enum' => [ 'available', 'associated', 'attaching', 'in-use', 'detaching', ], ], 'NetworkInterfaceType' => [ 'type' => 'string', 'enum' => [ 'interface', 'natGateway', 'efa', 'efa-only', 'trunk', 'load_balancer', 'network_load_balancer', 'vpc_endpoint', 'branch', 'transit_gateway', 'lambda', 'quicksight', 'global_accelerator_managed', 'api_gateway_managed', 'gateway_load_balancer', 'gateway_load_balancer_endpoint', 'iot_rules_managed', 'aws_codestar_connections_managed', ], ], 'NetworkNodeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'NetworkNodesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'NetworkPerformance' => [ 'type' => 'string', ], 'NeuronDeviceCoreCount' => [ 'type' => 'integer', ], 'NeuronDeviceCoreInfo' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => 'NeuronDeviceCoreCount', 'locationName' => 'count', ], 'Version' => [ 'shape' => 'NeuronDeviceCoreVersion', 'locationName' => 'version', ], ], ], 'NeuronDeviceCoreVersion' => [ 'type' => 'integer', ], 'NeuronDeviceCount' => [ 'type' => 'integer', ], 'NeuronDeviceInfo' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => 'NeuronDeviceCount', 'locationName' => 'count', ], 'Name' => [ 'shape' => 'NeuronDeviceName', 'locationName' => 'name', ], 'CoreInfo' => [ 'shape' => 'NeuronDeviceCoreInfo', 'locationName' => 'coreInfo', ], 'MemoryInfo' => [ 'shape' => 'NeuronDeviceMemoryInfo', 'locationName' => 'memoryInfo', ], ], ], 'NeuronDeviceInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NeuronDeviceInfo', 'locationName' => 'item', ], ], 'NeuronDeviceMemoryInfo' => [ 'type' => 'structure', 'members' => [ 'SizeInMiB' => [ 'shape' => 'NeuronDeviceMemorySize', 'locationName' => 'sizeInMiB', ], ], ], 'NeuronDeviceMemorySize' => [ 'type' => 'integer', ], 'NeuronDeviceName' => [ 'type' => 'string', ], 'NeuronInfo' => [ 'type' => 'structure', 'members' => [ 'NeuronDevices' => [ 'shape' => 'NeuronDeviceInfoList', 'locationName' => 'neuronDevices', ], 'TotalNeuronDeviceMemoryInMiB' => [ 'shape' => 'TotalNeuronMemory', 'locationName' => 'totalNeuronDeviceMemoryInMiB', ], ], ], 'NewDhcpConfiguration' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', ], 'Values' => [ 'shape' => 'ValueStringList', 'locationName' => 'Value', ], ], ], 'NewDhcpConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NewDhcpConfiguration', 'locationName' => 'item', ], ], 'NextToken' => [ 'type' => 'string', ], 'NitroEnclavesSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', ], ], 'NitroTpmInfo' => [ 'type' => 'structure', 'members' => [ 'SupportedVersions' => [ 'shape' => 'NitroTpmSupportedVersionsList', 'locationName' => 'supportedVersions', ], ], ], 'NitroTpmSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', ], ], 'NitroTpmSupportedVersionType' => [ 'type' => 'string', ], 'NitroTpmSupportedVersionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NitroTpmSupportedVersionType', 'locationName' => 'item', ], ], 'OccurrenceDayRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Integer', 'locationName' => 'OccurenceDay', ], ], 'OccurrenceDaySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Integer', 'locationName' => 'item', ], ], 'OdbNetworkArn' => [ 'type' => 'string', ], 'OfferingClassType' => [ 'type' => 'string', 'enum' => [ 'standard', 'convertible', ], ], 'OfferingId' => [ 'type' => 'string', ], 'OfferingTypeValues' => [ 'type' => 'string', 'enum' => [ 'Heavy Utilization', 'Medium Utilization', 'Light Utilization', 'No Upfront', 'Partial Upfront', 'All Upfront', ], ], 'OidcOptions' => [ 'type' => 'structure', 'members' => [ 'Issuer' => [ 'shape' => 'String', 'locationName' => 'issuer', ], 'AuthorizationEndpoint' => [ 'shape' => 'String', 'locationName' => 'authorizationEndpoint', ], 'TokenEndpoint' => [ 'shape' => 'String', 'locationName' => 'tokenEndpoint', ], 'UserInfoEndpoint' => [ 'shape' => 'String', 'locationName' => 'userInfoEndpoint', ], 'ClientId' => [ 'shape' => 'String', 'locationName' => 'clientId', ], 'ClientSecret' => [ 'shape' => 'ClientSecretType', 'locationName' => 'clientSecret', ], 'Scope' => [ 'shape' => 'String', 'locationName' => 'scope', ], ], ], 'OnDemandAllocationStrategy' => [ 'type' => 'string', 'enum' => [ 'lowestPrice', 'prioritized', ], ], 'OnDemandOptions' => [ 'type' => 'structure', 'members' => [ 'AllocationStrategy' => [ 'shape' => 'FleetOnDemandAllocationStrategy', 'locationName' => 'allocationStrategy', ], 'CapacityReservationOptions' => [ 'shape' => 'CapacityReservationOptions', 'locationName' => 'capacityReservationOptions', ], 'SingleInstanceType' => [ 'shape' => 'Boolean', 'locationName' => 'singleInstanceType', ], 'SingleAvailabilityZone' => [ 'shape' => 'Boolean', 'locationName' => 'singleAvailabilityZone', ], 'MinTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'minTargetCapacity', ], 'MaxTotalPrice' => [ 'shape' => 'String', 'locationName' => 'maxTotalPrice', ], ], ], 'OnDemandOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AllocationStrategy' => [ 'shape' => 'FleetOnDemandAllocationStrategy', ], 'CapacityReservationOptions' => [ 'shape' => 'CapacityReservationOptionsRequest', ], 'SingleInstanceType' => [ 'shape' => 'Boolean', ], 'SingleAvailabilityZone' => [ 'shape' => 'Boolean', ], 'MinTargetCapacity' => [ 'shape' => 'Integer', ], 'MaxTotalPrice' => [ 'shape' => 'String', ], ], ], 'OperationType' => [ 'type' => 'string', 'enum' => [ 'add', 'remove', ], ], 'OperatorRequest' => [ 'type' => 'structure', 'members' => [ 'Principal' => [ 'shape' => 'String', ], ], ], 'OperatorResponse' => [ 'type' => 'structure', 'members' => [ 'Managed' => [ 'shape' => 'Boolean', 'locationName' => 'managed', ], 'Principal' => [ 'shape' => 'String', 'locationName' => 'principal', ], 'HiddenByDefault' => [ 'shape' => 'Boolean', 'locationName' => 'hiddenByDefault', ], ], ], 'OrganizationArnStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'OrganizationArn', ], ], 'OrganizationalUnitArnStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'OrganizationalUnitArn', ], ], 'OutpostArn' => [ 'type' => 'string', 'pattern' => '^arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/op-[a-f0-9]{17}$', ], 'OutpostLag' => [ 'type' => 'structure', 'members' => [ 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'OutpostLagId' => [ 'shape' => 'OutpostLagId', 'locationName' => 'outpostLagId', ], 'LocalGatewayVirtualInterfaceIds' => [ 'shape' => 'LocalGatewayVirtualInterfaceIdSet', 'locationName' => 'localGatewayVirtualInterfaceIdSet', ], 'ServiceLinkVirtualInterfaceIds' => [ 'shape' => 'ServiceLinkVirtualInterfaceIdSet', 'locationName' => 'serviceLinkVirtualInterfaceIdSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'OutpostLagId' => [ 'type' => 'string', ], 'OutpostLagIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutpostLagId', 'locationName' => 'item', ], ], 'OutpostLagMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'OutpostLagSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutpostLag', 'locationName' => 'item', ], ], 'OutputFormat' => [ 'type' => 'string', 'enum' => [ 'csv', 'parquet', ], ], 'OwnerStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'Owner', ], ], 'PacketHeaderStatement' => [ 'type' => 'structure', 'members' => [ 'SourceAddresses' => [ 'shape' => 'ValueStringList', 'locationName' => 'sourceAddressSet', ], 'DestinationAddresses' => [ 'shape' => 'ValueStringList', 'locationName' => 'destinationAddressSet', ], 'SourcePorts' => [ 'shape' => 'ValueStringList', 'locationName' => 'sourcePortSet', ], 'DestinationPorts' => [ 'shape' => 'ValueStringList', 'locationName' => 'destinationPortSet', ], 'SourcePrefixLists' => [ 'shape' => 'ValueStringList', 'locationName' => 'sourcePrefixListSet', ], 'DestinationPrefixLists' => [ 'shape' => 'ValueStringList', 'locationName' => 'destinationPrefixListSet', ], 'Protocols' => [ 'shape' => 'ProtocolList', 'locationName' => 'protocolSet', ], ], ], 'PacketHeaderStatementRequest' => [ 'type' => 'structure', 'members' => [ 'SourceAddresses' => [ 'shape' => 'ValueStringList', 'locationName' => 'SourceAddress', ], 'DestinationAddresses' => [ 'shape' => 'ValueStringList', 'locationName' => 'DestinationAddress', ], 'SourcePorts' => [ 'shape' => 'ValueStringList', 'locationName' => 'SourcePort', ], 'DestinationPorts' => [ 'shape' => 'ValueStringList', 'locationName' => 'DestinationPort', ], 'SourcePrefixLists' => [ 'shape' => 'ValueStringList', 'locationName' => 'SourcePrefixList', ], 'DestinationPrefixLists' => [ 'shape' => 'ValueStringList', 'locationName' => 'DestinationPrefixList', ], 'Protocols' => [ 'shape' => 'ProtocolList', 'locationName' => 'Protocol', ], ], ], 'PartitionLoadFrequency' => [ 'type' => 'string', 'enum' => [ 'none', 'daily', 'weekly', 'monthly', ], ], 'PasswordData' => [ 'type' => 'string', 'sensitive' => true, ], 'PathComponent' => [ 'type' => 'structure', 'members' => [ 'SequenceNumber' => [ 'shape' => 'Integer', 'locationName' => 'sequenceNumber', ], 'AclRule' => [ 'shape' => 'AnalysisAclRule', 'locationName' => 'aclRule', ], 'AttachedTo' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'attachedTo', ], 'Component' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'component', ], 'DestinationVpc' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'destinationVpc', ], 'OutboundHeader' => [ 'shape' => 'AnalysisPacketHeader', 'locationName' => 'outboundHeader', ], 'InboundHeader' => [ 'shape' => 'AnalysisPacketHeader', 'locationName' => 'inboundHeader', ], 'RouteTableRoute' => [ 'shape' => 'AnalysisRouteTableRoute', 'locationName' => 'routeTableRoute', ], 'SecurityGroupRule' => [ 'shape' => 'AnalysisSecurityGroupRule', 'locationName' => 'securityGroupRule', ], 'SourceVpc' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'sourceVpc', ], 'Subnet' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'subnet', ], 'Vpc' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'vpc', ], 'AdditionalDetails' => [ 'shape' => 'AdditionalDetailList', 'locationName' => 'additionalDetailSet', ], 'TransitGateway' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'transitGateway', ], 'TransitGatewayRouteTableRoute' => [ 'shape' => 'TransitGatewayRouteTableRoute', 'locationName' => 'transitGatewayRouteTableRoute', ], 'Explanations' => [ 'shape' => 'ExplanationList', 'locationName' => 'explanationSet', ], 'ElasticLoadBalancerListener' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'elasticLoadBalancerListener', ], 'FirewallStatelessRule' => [ 'shape' => 'FirewallStatelessRule', 'locationName' => 'firewallStatelessRule', ], 'FirewallStatefulRule' => [ 'shape' => 'FirewallStatefulRule', 'locationName' => 'firewallStatefulRule', ], 'ServiceName' => [ 'shape' => 'String', 'locationName' => 'serviceName', ], ], ], 'PathComponentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PathComponent', 'locationName' => 'item', ], ], 'PathFilter' => [ 'type' => 'structure', 'members' => [ 'SourceAddress' => [ 'shape' => 'IpAddress', 'locationName' => 'sourceAddress', ], 'SourcePortRange' => [ 'shape' => 'FilterPortRange', 'locationName' => 'sourcePortRange', ], 'DestinationAddress' => [ 'shape' => 'IpAddress', 'locationName' => 'destinationAddress', ], 'DestinationPortRange' => [ 'shape' => 'FilterPortRange', 'locationName' => 'destinationPortRange', ], ], ], 'PathRequestFilter' => [ 'type' => 'structure', 'members' => [ 'SourceAddress' => [ 'shape' => 'IpAddress', ], 'SourcePortRange' => [ 'shape' => 'RequestFilterPortRange', ], 'DestinationAddress' => [ 'shape' => 'IpAddress', ], 'DestinationPortRange' => [ 'shape' => 'RequestFilterPortRange', ], ], ], 'PathStatement' => [ 'type' => 'structure', 'members' => [ 'PacketHeaderStatement' => [ 'shape' => 'PacketHeaderStatement', 'locationName' => 'packetHeaderStatement', ], 'ResourceStatement' => [ 'shape' => 'ResourceStatement', 'locationName' => 'resourceStatement', ], ], ], 'PathStatementRequest' => [ 'type' => 'structure', 'members' => [ 'PacketHeaderStatement' => [ 'shape' => 'PacketHeaderStatementRequest', ], 'ResourceStatement' => [ 'shape' => 'ResourceStatementRequest', ], ], ], 'PayerResponsibility' => [ 'type' => 'string', 'enum' => [ 'ServiceOwner', ], ], 'PayerResponsibilityEntry' => [ 'type' => 'structure', 'members' => [ 'Scope' => [ 'shape' => 'PayerResponsibilityScope', 'locationName' => 'scope', ], 'PayerResponsibilityType' => [ 'shape' => 'PayerResponsibilityType', 'locationName' => 'payerResponsibilityType', ], ], ], 'PayerResponsibilityScope' => [ 'type' => 'string', 'enum' => [ 'vpc-endpoint-charges', ], ], 'PayerResponsibilitySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PayerResponsibilityEntry', 'locationName' => 'item', ], ], 'PayerResponsibilityType' => [ 'type' => 'string', 'enum' => [ 'vpc-endpoint-account', 'vpc-endpoint-service-account', ], ], 'PaymentOption' => [ 'type' => 'string', 'enum' => [ 'AllUpfront', 'PartialUpfront', 'NoUpfront', ], ], 'PciId' => [ 'type' => 'structure', 'members' => [ 'DeviceId' => [ 'shape' => 'String', ], 'VendorId' => [ 'shape' => 'String', ], 'SubsystemId' => [ 'shape' => 'String', ], 'SubsystemVendorId' => [ 'shape' => 'String', ], ], ], 'PeakBandwidthInGbps' => [ 'type' => 'double', ], 'PeeringAttachmentStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'PeeringConnectionOptions' => [ 'type' => 'structure', 'members' => [ 'AllowDnsResolutionFromRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowDnsResolutionFromRemoteVpc', ], 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalClassicLinkToRemoteVpc', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalVpcToRemoteClassicLink', ], ], ], 'PeeringConnectionOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AllowDnsResolutionFromRemoteVpc' => [ 'shape' => 'Boolean', ], 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', ], ], ], 'PeeringTgwInfo' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'CoreNetworkId' => [ 'shape' => 'String', 'locationName' => 'coreNetworkId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Region' => [ 'shape' => 'String', 'locationName' => 'region', ], ], ], 'PerformanceFactorReference' => [ 'type' => 'structure', 'members' => [ 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], ], ], 'PerformanceFactorReferenceRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceFamily' => [ 'shape' => 'String', ], ], ], 'PerformanceFactorReferenceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PerformanceFactorReference', 'locationName' => 'item', ], ], 'PerformanceFactorReferenceSetRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'PerformanceFactorReferenceRequest', 'locationName' => 'item', ], ], 'Period' => [ 'type' => 'integer', 'min' => 3600, ], 'PeriodType' => [ 'type' => 'string', 'enum' => [ 'five-minutes', 'fifteen-minutes', 'one-hour', 'three-hours', 'one-day', 'one-week', ], ], 'PermissionGroup' => [ 'type' => 'string', 'enum' => [ 'all', ], ], 'Phase1DHGroupNumbersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase1DHGroupNumbersListValue', 'locationName' => 'item', ], ], 'Phase1DHGroupNumbersListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Integer', 'locationName' => 'value', ], ], ], 'Phase1DHGroupNumbersRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase1DHGroupNumbersRequestListValue', 'locationName' => 'item', ], ], 'Phase1DHGroupNumbersRequestListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Integer', ], ], ], 'Phase1EncryptionAlgorithmsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase1EncryptionAlgorithmsListValue', 'locationName' => 'item', ], ], 'Phase1EncryptionAlgorithmsListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'Phase1EncryptionAlgorithmsRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase1EncryptionAlgorithmsRequestListValue', 'locationName' => 'item', ], ], 'Phase1EncryptionAlgorithmsRequestListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', ], ], ], 'Phase1IntegrityAlgorithmsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase1IntegrityAlgorithmsListValue', 'locationName' => 'item', ], ], 'Phase1IntegrityAlgorithmsListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'Phase1IntegrityAlgorithmsRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase1IntegrityAlgorithmsRequestListValue', 'locationName' => 'item', ], ], 'Phase1IntegrityAlgorithmsRequestListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', ], ], ], 'Phase2DHGroupNumbersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase2DHGroupNumbersListValue', 'locationName' => 'item', ], ], 'Phase2DHGroupNumbersListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Integer', 'locationName' => 'value', ], ], ], 'Phase2DHGroupNumbersRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase2DHGroupNumbersRequestListValue', 'locationName' => 'item', ], ], 'Phase2DHGroupNumbersRequestListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Integer', ], ], ], 'Phase2EncryptionAlgorithmsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase2EncryptionAlgorithmsListValue', 'locationName' => 'item', ], ], 'Phase2EncryptionAlgorithmsListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'Phase2EncryptionAlgorithmsRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase2EncryptionAlgorithmsRequestListValue', 'locationName' => 'item', ], ], 'Phase2EncryptionAlgorithmsRequestListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', ], ], ], 'Phase2IntegrityAlgorithmsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase2IntegrityAlgorithmsListValue', 'locationName' => 'item', ], ], 'Phase2IntegrityAlgorithmsListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'Phase2IntegrityAlgorithmsRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase2IntegrityAlgorithmsRequestListValue', 'locationName' => 'item', ], ], 'Phase2IntegrityAlgorithmsRequestListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', ], ], ], 'PhcSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', ], ], 'Placement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], 'Affinity' => [ 'shape' => 'String', 'locationName' => 'affinity', ], 'GroupName' => [ 'shape' => 'PlacementGroupName', 'locationName' => 'groupName', ], 'PartitionNumber' => [ 'shape' => 'Integer', 'locationName' => 'partitionNumber', ], 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], 'Tenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'tenancy', ], 'SpreadDomain' => [ 'shape' => 'String', 'locationName' => 'spreadDomain', ], 'HostResourceGroupArn' => [ 'shape' => 'String', 'locationName' => 'hostResourceGroupArn', ], 'GroupId' => [ 'shape' => 'PlacementGroupId', 'locationName' => 'groupId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], ], ], 'PlacementGroup' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'State' => [ 'shape' => 'PlacementGroupState', 'locationName' => 'state', ], 'Strategy' => [ 'shape' => 'PlacementStrategy', 'locationName' => 'strategy', ], 'PartitionCount' => [ 'shape' => 'Integer', 'locationName' => 'partitionCount', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'GroupArn' => [ 'shape' => 'String', 'locationName' => 'groupArn', ], 'SpreadLevel' => [ 'shape' => 'SpreadLevel', 'locationName' => 'spreadLevel', ], 'LinkedGroupId' => [ 'shape' => 'PlacementGroupId', 'locationName' => 'linkedGroupId', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], 'ParentGroupId' => [ 'shape' => 'PlacementGroupId', 'locationName' => 'parentGroupId', ], ], ], 'PlacementGroupArn' => [ 'type' => 'string', 'pattern' => '^arn:aws([a-z-]+)?:ec2:[a-z\\d-]+:\\d{12}:placement-group/^.{1,255}$', ], 'PlacementGroupId' => [ 'type' => 'string', ], 'PlacementGroupIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementGroupId', 'locationName' => 'GroupId', ], ], 'PlacementGroupInfo' => [ 'type' => 'structure', 'members' => [ 'SupportedStrategies' => [ 'shape' => 'PlacementGroupStrategyList', 'locationName' => 'supportedStrategies', ], ], ], 'PlacementGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementGroup', 'locationName' => 'item', ], ], 'PlacementGroupName' => [ 'type' => 'string', ], 'PlacementGroupNameWithResolver' => [ 'type' => 'string', ], 'PlacementGroupState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'PlacementGroupStrategy' => [ 'type' => 'string', 'enum' => [ 'cluster', 'partition', 'spread', ], ], 'PlacementGroupStrategyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementGroupStrategy', 'locationName' => 'item', ], ], 'PlacementGroupStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementGroupName', ], ], 'PlacementResponse' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'PlacementGroupName', 'locationName' => 'groupName', ], ], ], 'PlacementStrategy' => [ 'type' => 'string', 'enum' => [ 'cluster', 'spread', 'partition', 'precision-time', ], ], 'PlatformValues' => [ 'type' => 'string', 'enum' => [ 'Windows', ], ], 'PoolCidrBlock' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'poolCidrBlock', ], ], ], 'PoolCidrBlocksSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PoolCidrBlock', 'locationName' => 'item', ], ], 'PoolMaxResults' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'Port' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'PortRange' => [ 'type' => 'structure', 'members' => [ 'From' => [ 'shape' => 'Integer', 'locationName' => 'from', ], 'To' => [ 'shape' => 'Integer', 'locationName' => 'to', ], ], ], 'PortRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PortRange', 'locationName' => 'item', ], ], 'PrefixList' => [ 'type' => 'structure', 'members' => [ 'Cidrs' => [ 'shape' => 'ValueStringList', 'locationName' => 'cidrSet', ], 'PrefixListId' => [ 'shape' => 'String', 'locationName' => 'prefixListId', ], 'PrefixListName' => [ 'shape' => 'String', 'locationName' => 'prefixListName', ], ], ], 'PrefixListAssociation' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceOwner' => [ 'shape' => 'String', 'locationName' => 'resourceOwner', ], ], ], 'PrefixListAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrefixListAssociation', 'locationName' => 'item', ], ], 'PrefixListEntry' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], ], ], 'PrefixListEntrySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrefixListEntry', 'locationName' => 'item', ], ], 'PrefixListId' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'PrefixListId' => [ 'shape' => 'String', 'locationName' => 'prefixListId', ], ], ], 'PrefixListIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrefixListId', 'locationName' => 'item', ], ], 'PrefixListIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'PrefixListMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'PrefixListResourceId' => [ 'type' => 'string', ], 'PrefixListResourceIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrefixListResourceId', 'locationName' => 'item', ], ], 'PrefixListSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrefixList', 'locationName' => 'item', ], ], 'PrefixListState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'modify-in-progress', 'modify-complete', 'modify-failed', 'restore-in-progress', 'restore-complete', 'restore-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', ], ], 'PriceSchedule' => [ 'type' => 'structure', 'members' => [ 'Active' => [ 'shape' => 'Boolean', 'locationName' => 'active', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Price' => [ 'shape' => 'Double', 'locationName' => 'price', ], 'Term' => [ 'shape' => 'Long', 'locationName' => 'term', ], ], ], 'PriceScheduleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PriceSchedule', 'locationName' => 'item', ], ], 'PriceScheduleSpecification' => [ 'type' => 'structure', 'members' => [ 'Term' => [ 'shape' => 'Long', 'locationName' => 'term', ], 'Price' => [ 'shape' => 'Double', 'locationName' => 'price', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], ], ], 'PriceScheduleSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PriceScheduleSpecification', 'locationName' => 'item', ], ], 'PricingDetail' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => 'Integer', 'locationName' => 'count', ], 'Price' => [ 'shape' => 'Double', 'locationName' => 'price', ], ], ], 'PricingDetailsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PricingDetail', 'locationName' => 'item', ], ], 'PrincipalIdFormat' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], 'PrincipalIdFormatList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrincipalIdFormat', 'locationName' => 'item', ], ], 'PrincipalType' => [ 'type' => 'string', 'enum' => [ 'All', 'Service', 'OrganizationUnit', 'Account', 'User', 'Role', ], ], 'Priority' => [ 'type' => 'integer', 'max' => 65535, 'min' => -1, ], 'PrivateDnsDetails' => [ 'type' => 'structure', 'members' => [ 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], ], ], 'PrivateDnsDetailsSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrivateDnsDetails', 'locationName' => 'item', ], ], 'PrivateDnsNameConfiguration' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'DnsNameState', 'locationName' => 'state', ], 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'PrivateDnsNameOptionsOnLaunch' => [ 'type' => 'structure', 'members' => [ 'HostnameType' => [ 'shape' => 'HostnameType', 'locationName' => 'hostnameType', ], 'EnableResourceNameDnsARecord' => [ 'shape' => 'Boolean', 'locationName' => 'enableResourceNameDnsARecord', ], 'EnableResourceNameDnsAAAARecord' => [ 'shape' => 'Boolean', 'locationName' => 'enableResourceNameDnsAAAARecord', ], ], ], 'PrivateDnsNameOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'HostnameType' => [ 'shape' => 'HostnameType', ], 'EnableResourceNameDnsARecord' => [ 'shape' => 'Boolean', ], 'EnableResourceNameDnsAAAARecord' => [ 'shape' => 'Boolean', ], ], ], 'PrivateDnsNameOptionsResponse' => [ 'type' => 'structure', 'members' => [ 'HostnameType' => [ 'shape' => 'HostnameType', 'locationName' => 'hostnameType', ], 'EnableResourceNameDnsARecord' => [ 'shape' => 'Boolean', 'locationName' => 'enableResourceNameDnsARecord', ], 'EnableResourceNameDnsAAAARecord' => [ 'shape' => 'Boolean', 'locationName' => 'enableResourceNameDnsAAAARecord', ], ], ], 'PrivateDnsSpecifiedDomainSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], 'max' => 10, 'min' => 0, ], 'PrivateIpAddressConfigSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesPrivateIpAddressConfig', 'locationName' => 'PrivateIpAddressConfigSet', ], ], 'PrivateIpAddressCount' => [ 'type' => 'integer', 'max' => 31, 'min' => 1, ], 'PrivateIpAddressSpecification' => [ 'type' => 'structure', 'members' => [ 'Primary' => [ 'shape' => 'Boolean', 'locationName' => 'primary', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'PrivateIpAddressSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrivateIpAddressSpecification', 'locationName' => 'item', ], ], 'PrivateIpAddressStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'PrivateIpAddress', ], ], 'ProcessorInfo' => [ 'type' => 'structure', 'members' => [ 'SupportedArchitectures' => [ 'shape' => 'ArchitectureTypeList', 'locationName' => 'supportedArchitectures', ], 'SustainedClockSpeedInGhz' => [ 'shape' => 'ProcessorSustainedClockSpeed', 'locationName' => 'sustainedClockSpeedInGhz', ], 'SupportedFeatures' => [ 'shape' => 'SupportedAdditionalProcessorFeatureList', 'locationName' => 'supportedFeatures', ], 'Manufacturer' => [ 'shape' => 'CpuManufacturerName', 'locationName' => 'manufacturer', ], ], ], 'ProcessorSustainedClockSpeed' => [ 'type' => 'double', ], 'ProductCode' => [ 'type' => 'structure', 'members' => [ 'ProductCodeId' => [ 'shape' => 'String', 'locationName' => 'productCode', ], 'ProductCodeType' => [ 'shape' => 'ProductCodeValues', 'locationName' => 'type', ], ], ], 'ProductCodeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProductCode', 'locationName' => 'item', ], ], 'ProductCodeStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ProductCode', ], ], 'ProductCodeValues' => [ 'type' => 'string', 'enum' => [ 'devpay', 'marketplace', ], ], 'ProductDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'PropagatingVgw' => [ 'type' => 'structure', 'members' => [ 'GatewayId' => [ 'shape' => 'String', 'locationName' => 'gatewayId', ], ], ], 'PropagatingVgwList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PropagatingVgw', 'locationName' => 'item', ], ], 'Protocol' => [ 'type' => 'string', 'enum' => [ 'tcp', 'udp', ], ], 'ProtocolInt' => [ 'type' => 'integer', 'max' => 255, 'min' => 0, ], 'ProtocolIntList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProtocolInt', 'locationName' => 'item', ], ], 'ProtocolList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Protocol', 'locationName' => 'item', ], ], 'ProtocolValue' => [ 'type' => 'string', 'enum' => [ 'gre', ], ], 'ProvisionByoipCidrRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'CidrAuthorizationContext' => [ 'shape' => 'CidrAuthorizationContext', ], 'PubliclyAdvertisable' => [ 'shape' => 'Boolean', ], 'Description' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'PoolTagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'PoolTagSpecification', ], 'MultiRegion' => [ 'shape' => 'Boolean', ], 'NetworkBorderGroup' => [ 'shape' => 'String', ], ], ], 'ProvisionByoipCidrResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidr' => [ 'shape' => 'ByoipCidr', 'locationName' => 'byoipCidr', ], ], ], 'ProvisionIpamByoasnRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', 'Asn', 'AsnAuthorizationContext', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamId' => [ 'shape' => 'IpamId', ], 'Asn' => [ 'shape' => 'String', ], 'AsnAuthorizationContext' => [ 'shape' => 'AsnAuthorizationContext', ], ], ], 'ProvisionIpamByoasnResult' => [ 'type' => 'structure', 'members' => [ 'Byoasn' => [ 'shape' => 'Byoasn', 'locationName' => 'byoasn', ], ], ], 'ProvisionIpamPoolCidrRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Cidr' => [ 'shape' => 'String', ], 'CidrAuthorizationContext' => [ 'shape' => 'IpamCidrAuthorizationContext', ], 'NetmaskLength' => [ 'shape' => 'Integer', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'VerificationMethod' => [ 'shape' => 'VerificationMethod', ], 'IpamExternalResourceVerificationTokenId' => [ 'shape' => 'IpamExternalResourceVerificationTokenId', ], ], ], 'ProvisionIpamPoolCidrResult' => [ 'type' => 'structure', 'members' => [ 'IpamPoolCidr' => [ 'shape' => 'IpamPoolCidr', 'locationName' => 'ipamPoolCidr', ], ], ], 'ProvisionPublicIpv4PoolCidrRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', 'PoolId', 'NetmaskLength', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'PoolId' => [ 'shape' => 'Ipv4PoolEc2Id', ], 'NetmaskLength' => [ 'shape' => 'Integer', ], 'NetworkBorderGroup' => [ 'shape' => 'String', ], ], ], 'ProvisionPublicIpv4PoolCidrResult' => [ 'type' => 'structure', 'members' => [ 'PoolId' => [ 'shape' => 'Ipv4PoolEc2Id', 'locationName' => 'poolId', ], 'PoolAddressRange' => [ 'shape' => 'PublicIpv4PoolRange', 'locationName' => 'poolAddressRange', ], ], ], 'ProvisionedBandwidth' => [ 'type' => 'structure', 'members' => [ 'ProvisionTime' => [ 'shape' => 'DateTime', 'locationName' => 'provisionTime', ], 'Provisioned' => [ 'shape' => 'String', 'locationName' => 'provisioned', ], 'RequestTime' => [ 'shape' => 'DateTime', 'locationName' => 'requestTime', ], 'Requested' => [ 'shape' => 'String', 'locationName' => 'requested', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], ], ], 'PtrUpdateStatus' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'Reason' => [ 'shape' => 'String', 'locationName' => 'reason', ], ], ], 'PublicIpAddress' => [ 'type' => 'string', ], 'PublicIpDnsNameOptions' => [ 'type' => 'structure', 'members' => [ 'DnsHostnameType' => [ 'shape' => 'String', 'locationName' => 'dnsHostnameType', ], 'PublicIpv4DnsName' => [ 'shape' => 'String', 'locationName' => 'publicIpv4DnsName', ], 'PublicIpv6DnsName' => [ 'shape' => 'String', 'locationName' => 'publicIpv6DnsName', ], 'PublicDualStackDnsName' => [ 'shape' => 'String', 'locationName' => 'publicDualStackDnsName', ], ], ], 'PublicIpDnsOption' => [ 'type' => 'string', 'enum' => [ 'public-dual-stack-dns-name', 'public-ipv4-dns-name', 'public-ipv6-dns-name', ], ], 'PublicIpStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'PublicIp', ], ], 'PublicIpv4Pool' => [ 'type' => 'structure', 'members' => [ 'PoolId' => [ 'shape' => 'String', 'locationName' => 'poolId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'PoolAddressRanges' => [ 'shape' => 'PublicIpv4PoolRangeSet', 'locationName' => 'poolAddressRangeSet', ], 'TotalAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'totalAddressCount', ], 'TotalAvailableAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'totalAvailableAddressCount', ], 'NetworkBorderGroup' => [ 'shape' => 'String', 'locationName' => 'networkBorderGroup', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'PublicIpv4PoolIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv4PoolEc2Id', 'locationName' => 'item', ], ], 'PublicIpv4PoolRange' => [ 'type' => 'structure', 'members' => [ 'FirstAddress' => [ 'shape' => 'String', 'locationName' => 'firstAddress', ], 'LastAddress' => [ 'shape' => 'String', 'locationName' => 'lastAddress', ], 'AddressCount' => [ 'shape' => 'Integer', 'locationName' => 'addressCount', ], 'AvailableAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'availableAddressCount', ], ], ], 'PublicIpv4PoolRangeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PublicIpv4PoolRange', 'locationName' => 'item', ], ], 'PublicIpv4PoolSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PublicIpv4Pool', 'locationName' => 'item', ], ], 'Purchase' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => 'Integer', 'locationName' => 'duration', ], 'HostIdSet' => [ 'shape' => 'ResponseHostIdSet', 'locationName' => 'hostIdSet', ], 'HostReservationId' => [ 'shape' => 'HostReservationId', 'locationName' => 'hostReservationId', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', 'locationName' => 'paymentOption', ], 'UpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'upfrontPrice', ], ], ], 'PurchaseCapacityBlockExtensionRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityBlockExtensionOfferingId', 'CapacityReservationId', ], 'members' => [ 'CapacityBlockExtensionOfferingId' => [ 'shape' => 'OfferingId', ], 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'PurchaseCapacityBlockExtensionResult' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockExtensions' => [ 'shape' => 'CapacityBlockExtensionSet', 'locationName' => 'capacityBlockExtensionSet', ], ], ], 'PurchaseCapacityBlockRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityBlockOfferingId', 'InstancePlatform', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'CapacityBlockOfferingId' => [ 'shape' => 'OfferingId', ], 'InstancePlatform' => [ 'shape' => 'CapacityReservationInstancePlatform', ], ], ], 'PurchaseCapacityBlockResult' => [ 'type' => 'structure', 'members' => [ 'CapacityReservation' => [ 'shape' => 'CapacityReservation', 'locationName' => 'capacityReservation', ], 'CapacityBlocks' => [ 'shape' => 'CapacityBlockSet', 'locationName' => 'capacityBlockSet', ], ], ], 'PurchaseHostReservationRequest' => [ 'type' => 'structure', 'required' => [ 'HostIdSet', 'OfferingId', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', ], 'HostIdSet' => [ 'shape' => 'RequestHostIdSet', ], 'LimitPrice' => [ 'shape' => 'String', ], 'OfferingId' => [ 'shape' => 'OfferingId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'PurchaseHostReservationResult' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Purchase' => [ 'shape' => 'PurchaseSet', 'locationName' => 'purchase', ], 'TotalHourlyPrice' => [ 'shape' => 'String', 'locationName' => 'totalHourlyPrice', ], 'TotalUpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'totalUpfrontPrice', ], ], ], 'PurchaseRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceCount', 'PurchaseToken', ], 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', ], 'PurchaseToken' => [ 'shape' => 'String', ], ], ], 'PurchaseRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PurchaseRequest', 'locationName' => 'PurchaseRequest', ], 'min' => 1, ], 'PurchaseReservedInstancesOfferingRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceCount', 'ReservedInstancesOfferingId', ], 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', ], 'ReservedInstancesOfferingId' => [ 'shape' => 'ReservedInstancesOfferingId', ], 'PurchaseTime' => [ 'shape' => 'DateTime', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'LimitPrice' => [ 'shape' => 'ReservedInstanceLimitPrice', 'locationName' => 'limitPrice', ], ], ], 'PurchaseReservedInstancesOfferingResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], ], ], 'PurchaseScheduledInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'PurchaseRequests', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'PurchaseRequests' => [ 'shape' => 'PurchaseRequestSet', 'locationName' => 'PurchaseRequest', ], ], ], 'PurchaseScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'ScheduledInstanceSet' => [ 'shape' => 'PurchasedScheduledInstanceSet', 'locationName' => 'scheduledInstanceSet', ], ], ], 'PurchaseSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Purchase', 'locationName' => 'item', ], ], 'PurchasedScheduledInstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstance', 'locationName' => 'item', ], ], 'RIProductDescription' => [ 'type' => 'string', 'enum' => [ 'Linux/UNIX', 'Linux/UNIX (Amazon VPC)', 'Windows', 'Windows (Amazon VPC)', ], ], 'RamdiskId' => [ 'type' => 'string', ], 'RdsDbClusterArn' => [ 'type' => 'string', ], 'RdsDbInstanceArn' => [ 'type' => 'string', ], 'RdsDbProxyArn' => [ 'type' => 'string', ], 'ReasonCodesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReportInstanceReasonCodes', 'locationName' => 'item', ], ], 'RebootInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'RebootMigrationSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', ], ], 'RecurringCharge' => [ 'type' => 'structure', 'members' => [ 'Amount' => [ 'shape' => 'Double', 'locationName' => 'amount', ], 'Frequency' => [ 'shape' => 'RecurringChargeFrequency', 'locationName' => 'frequency', ], ], ], 'RecurringChargeFrequency' => [ 'type' => 'string', 'enum' => [ 'Hourly', ], ], 'RecurringChargesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RecurringCharge', 'locationName' => 'item', ], ], 'ReferencedSecurityGroup' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'PeeringStatus' => [ 'shape' => 'String', 'locationName' => 'peeringStatus', ], 'UserId' => [ 'shape' => 'String', 'locationName' => 'userId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'Region' => [ 'type' => 'structure', 'members' => [ 'OptInStatus' => [ 'shape' => 'String', 'locationName' => 'optInStatus', ], 'Geography' => [ 'shape' => 'RegionGeographyList', 'locationName' => 'geographySet', ], 'RegionName' => [ 'shape' => 'String', 'locationName' => 'regionName', ], 'Endpoint' => [ 'shape' => 'String', 'locationName' => 'regionEndpoint', ], ], ], 'RegionGeography' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'RegionGeographyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegionGeography', 'locationName' => 'item', ], ], 'RegionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Region', 'locationName' => 'item', ], ], 'RegionNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'RegionName', ], ], 'RegionNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], 'max' => 10, 'min' => 0, ], 'RegionalSummary' => [ 'type' => 'structure', 'members' => [ 'RegionName' => [ 'shape' => 'String', 'locationName' => 'regionName', ], 'NumberOfMatchedAccounts' => [ 'shape' => 'Integer', 'locationName' => 'numberOfMatchedAccounts', ], 'NumberOfUnmatchedAccounts' => [ 'shape' => 'Integer', 'locationName' => 'numberOfUnmatchedAccounts', ], ], ], 'RegionalSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegionalSummary', 'locationName' => 'item', ], ], 'RegisterImageRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'ImageLocation' => [ 'shape' => 'String', ], 'BillingProducts' => [ 'shape' => 'BillingProductList', 'locationName' => 'BillingProduct', ], 'BootMode' => [ 'shape' => 'BootModeValues', ], 'TpmSupport' => [ 'shape' => 'TpmSupportValues', ], 'UefiData' => [ 'shape' => 'ImageUefiDataRequest', ], 'ImdsSupport' => [ 'shape' => 'ImdsSupportValues', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Name' => [ 'shape' => 'ImageNameRequest', 'locationName' => 'name', ], 'Description' => [ 'shape' => 'ImageDescriptionRequest', 'locationName' => 'description', ], 'Architecture' => [ 'shape' => 'ArchitectureValues', 'locationName' => 'architecture', ], 'KernelId' => [ 'shape' => 'KernelId', 'locationName' => 'kernelId', ], 'RamdiskId' => [ 'shape' => 'RamdiskId', 'locationName' => 'ramdiskId', ], 'RootDeviceName' => [ 'shape' => 'String', 'locationName' => 'rootDeviceName', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingRequestList', 'locationName' => 'BlockDeviceMapping', ], 'VirtualizationType' => [ 'shape' => 'String', 'locationName' => 'virtualizationType', ], 'SriovNetSupport' => [ 'shape' => 'String', 'locationName' => 'sriovNetSupport', ], 'EnaSupport' => [ 'shape' => 'Boolean', 'locationName' => 'enaSupport', ], ], ], 'RegisterImageResult' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], ], ], 'RegisterInstanceEventNotificationAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceTagAttribute', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceTagAttribute' => [ 'shape' => 'RegisterInstanceTagAttributeRequest', ], ], ], 'RegisterInstanceEventNotificationAttributesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceTagAttribute' => [ 'shape' => 'InstanceTagNotificationAttribute', 'locationName' => 'instanceTagAttribute', ], ], ], 'RegisterInstanceTagAttributeRequest' => [ 'type' => 'structure', 'members' => [ 'IncludeAllTagsOfInstance' => [ 'shape' => 'Boolean', ], 'InstanceTagKeys' => [ 'shape' => 'InstanceTagKeySet', 'locationName' => 'InstanceTagKey', ], ], ], 'RegisterTransitGatewayMulticastGroupMembersRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMulticastDomainId', 'NetworkInterfaceIds', ], 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'GroupIpAddress' => [ 'shape' => 'String', ], 'NetworkInterfaceIds' => [ 'shape' => 'TransitGatewayNetworkInterfaceIdList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RegisterTransitGatewayMulticastGroupMembersResult' => [ 'type' => 'structure', 'members' => [ 'RegisteredMulticastGroupMembers' => [ 'shape' => 'TransitGatewayMulticastRegisteredGroupMembers', 'locationName' => 'registeredMulticastGroupMembers', ], ], ], 'RegisterTransitGatewayMulticastGroupSourcesRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMulticastDomainId', 'NetworkInterfaceIds', ], 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'GroupIpAddress' => [ 'shape' => 'String', ], 'NetworkInterfaceIds' => [ 'shape' => 'TransitGatewayNetworkInterfaceIdList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RegisterTransitGatewayMulticastGroupSourcesResult' => [ 'type' => 'structure', 'members' => [ 'RegisteredMulticastGroupSources' => [ 'shape' => 'TransitGatewayMulticastRegisteredGroupSources', 'locationName' => 'registeredMulticastGroupSources', ], ], ], 'RegisteredInstance' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'SqlServerLicenseUsage' => [ 'shape' => 'SqlServerLicenseUsage', 'locationName' => 'sqlServerLicenseUsage', ], 'HaStatus' => [ 'shape' => 'HaStatus', 'locationName' => 'haStatus', ], 'ProcessingStatus' => [ 'shape' => 'String', 'locationName' => 'processingStatus', ], 'LastUpdatedTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastUpdatedTime', ], 'SqlServerCredentials' => [ 'shape' => 'String', 'locationName' => 'sqlServerCredentials', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'RegisteredInstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegisteredInstance', 'locationName' => 'item', ], ], 'RejectCapacityReservationBillingOwnershipRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], ], ], 'RejectCapacityReservationBillingOwnershipResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'RejectTransitGatewayClientVpnAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RejectTransitGatewayClientVpnAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayClientVpnAttachment' => [ 'shape' => 'TransitGatewayClientVpnAttachment', 'locationName' => 'transitGatewayClientVpnAttachment', ], ], ], 'RejectTransitGatewayMulticastDomainAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'SubnetIds' => [ 'shape' => 'ValueStringList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RejectTransitGatewayMulticastDomainAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'TransitGatewayMulticastDomainAssociations', 'locationName' => 'associations', ], ], ], 'RejectTransitGatewayPeeringAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RejectTransitGatewayPeeringAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPeeringAttachment' => [ 'shape' => 'TransitGatewayPeeringAttachment', 'locationName' => 'transitGatewayPeeringAttachment', ], ], ], 'RejectTransitGatewayVpcAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RejectTransitGatewayVpcAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachment' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'transitGatewayVpcAttachment', ], ], ], 'RejectVpcEndpointConnectionsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', 'VpcEndpointIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], 'VpcEndpointIds' => [ 'shape' => 'VpcEndpointIdList', 'locationName' => 'VpcEndpointId', ], ], ], 'RejectVpcEndpointConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'RejectVpcPeeringConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'VpcPeeringConnectionId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcPeeringConnectionId' => [ 'shape' => 'VpcPeeringConnectionId', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'RejectVpcPeeringConnectionResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ReleaseAddressRequest' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'AllocationId', ], 'PublicIp' => [ 'shape' => 'String', ], 'NetworkBorderGroup' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ReleaseHostsRequest' => [ 'type' => 'structure', 'required' => [ 'HostIds', ], 'members' => [ 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], ], ], 'ReleaseHostsResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'successful', ], 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemList', 'locationName' => 'unsuccessful', ], ], ], 'ReleaseIpamPoolAllocationRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', 'Cidr', 'IpamPoolAllocationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Cidr' => [ 'shape' => 'String', ], 'IpamPoolAllocationId' => [ 'shape' => 'IpamPoolAllocationId', ], ], ], 'ReleaseIpamPoolAllocationResult' => [ 'type' => 'structure', 'members' => [ 'Success' => [ 'shape' => 'Boolean', 'locationName' => 'success', ], ], ], 'RemoveIpamOperatingRegion' => [ 'type' => 'structure', 'members' => [ 'RegionName' => [ 'shape' => 'String', ], ], ], 'RemoveIpamOperatingRegionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'RemoveIpamOperatingRegion', ], 'max' => 50, 'min' => 0, ], 'RemoveIpamOrganizationalUnitExclusion' => [ 'type' => 'structure', 'members' => [ 'OrganizationsEntityPath' => [ 'shape' => 'String', ], ], ], 'RemoveIpamOrganizationalUnitExclusionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'RemoveIpamOrganizationalUnitExclusion', ], 'max' => 10, 'min' => 0, ], 'RemovePrefixListEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'RemovePrefixListEntry', ], 'max' => 100, 'min' => 0, ], 'RemovePrefixListEntry' => [ 'type' => 'structure', 'required' => [ 'Cidr', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], ], ], 'ReplaceIamInstanceProfileAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'IamInstanceProfile', 'AssociationId', ], 'members' => [ 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', ], 'AssociationId' => [ 'shape' => 'IamInstanceProfileAssociationId', ], ], ], 'ReplaceIamInstanceProfileAssociationResult' => [ 'type' => 'structure', 'members' => [ 'IamInstanceProfileAssociation' => [ 'shape' => 'IamInstanceProfileAssociation', 'locationName' => 'iamInstanceProfileAssociation', ], ], ], 'ReplaceImageCriteriaInAllowedImagesSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'ImageCriteria' => [ 'shape' => 'ImageCriterionRequestList', 'locationName' => 'ImageCriterion', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ReplaceImageCriteriaInAllowedImagesSettingsResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ReplaceNetworkAclAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', 'NetworkAclId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'AssociationId' => [ 'shape' => 'NetworkAclAssociationId', 'locationName' => 'associationId', ], 'NetworkAclId' => [ 'shape' => 'NetworkAclId', 'locationName' => 'networkAclId', ], ], ], 'ReplaceNetworkAclAssociationResult' => [ 'type' => 'structure', 'members' => [ 'NewAssociationId' => [ 'shape' => 'String', 'locationName' => 'newAssociationId', ], ], ], 'ReplaceNetworkAclEntryRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkAclId', 'RuleNumber', 'Protocol', 'RuleAction', 'Egress', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkAclId' => [ 'shape' => 'NetworkAclId', 'locationName' => 'networkAclId', ], 'RuleNumber' => [ 'shape' => 'Integer', 'locationName' => 'ruleNumber', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'RuleAction' => [ 'shape' => 'RuleAction', 'locationName' => 'ruleAction', ], 'Egress' => [ 'shape' => 'Boolean', 'locationName' => 'egress', ], 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], 'IcmpTypeCode' => [ 'shape' => 'IcmpTypeCode', 'locationName' => 'Icmp', ], 'PortRange' => [ 'shape' => 'PortRange', 'locationName' => 'portRange', ], ], ], 'ReplaceRootVolumeTask' => [ 'type' => 'structure', 'members' => [ 'ReplaceRootVolumeTaskId' => [ 'shape' => 'ReplaceRootVolumeTaskId', 'locationName' => 'replaceRootVolumeTaskId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'TaskState' => [ 'shape' => 'ReplaceRootVolumeTaskState', 'locationName' => 'taskState', ], 'StartTime' => [ 'shape' => 'String', 'locationName' => 'startTime', ], 'CompleteTime' => [ 'shape' => 'String', 'locationName' => 'completeTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', 'locationName' => 'snapshotId', ], 'DeleteReplacedRootVolume' => [ 'shape' => 'Boolean', 'locationName' => 'deleteReplacedRootVolume', ], ], ], 'ReplaceRootVolumeTaskId' => [ 'type' => 'string', ], 'ReplaceRootVolumeTaskIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplaceRootVolumeTaskId', 'locationName' => 'ReplaceRootVolumeTaskId', ], ], 'ReplaceRootVolumeTaskState' => [ 'type' => 'string', 'enum' => [ 'pending', 'in-progress', 'failing', 'succeeded', 'failed', 'failed-detached', ], ], 'ReplaceRootVolumeTasks' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplaceRootVolumeTask', 'locationName' => 'item', ], ], 'ReplaceRouteRequest' => [ 'type' => 'structure', 'required' => [ 'RouteTableId', ], 'members' => [ 'DestinationPrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'VpcEndpointId' => [ 'shape' => 'VpcEndpointId', ], 'LocalTarget' => [ 'shape' => 'Boolean', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'LocalGatewayId' => [ 'shape' => 'LocalGatewayId', ], 'CarrierGatewayId' => [ 'shape' => 'CarrierGatewayId', ], 'CoreNetworkArn' => [ 'shape' => 'CoreNetworkArn', ], 'OdbNetworkArn' => [ 'shape' => 'OdbNetworkArn', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', 'locationName' => 'routeTableId', ], 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'GatewayId' => [ 'shape' => 'RouteGatewayId', 'locationName' => 'gatewayId', ], 'DestinationIpv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationIpv6CidrBlock', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'EgressOnlyInternetGatewayId', 'locationName' => 'egressOnlyInternetGatewayId', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'VpcPeeringConnectionId', 'locationName' => 'vpcPeeringConnectionId', ], 'NatGatewayId' => [ 'shape' => 'NatGatewayId', 'locationName' => 'natGatewayId', ], ], ], 'ReplaceRouteTableAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', 'RouteTableId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'AssociationId' => [ 'shape' => 'RouteTableAssociationId', 'locationName' => 'associationId', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', 'locationName' => 'routeTableId', ], ], ], 'ReplaceRouteTableAssociationResult' => [ 'type' => 'structure', 'members' => [ 'NewAssociationId' => [ 'shape' => 'String', 'locationName' => 'newAssociationId', ], 'AssociationState' => [ 'shape' => 'RouteTableAssociationState', 'locationName' => 'associationState', ], ], ], 'ReplaceTransitGatewayRouteRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationCidrBlock', 'TransitGatewayRouteTableId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'Blackhole' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ReplaceTransitGatewayRouteResult' => [ 'type' => 'structure', 'members' => [ 'Route' => [ 'shape' => 'TransitGatewayRoute', 'locationName' => 'route', ], ], ], 'ReplaceVpnTunnelRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', 'VpnTunnelOutsideIpAddress', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'VpnTunnelOutsideIpAddress' => [ 'shape' => 'String', ], 'ApplyPendingMaintenance' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ReplaceVpnTunnelResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ReplacementStrategy' => [ 'type' => 'string', 'enum' => [ 'launch', 'launch-before-terminate', ], ], 'ReportInstanceReasonCodes' => [ 'type' => 'string', 'enum' => [ 'instance-stuck-in-state', 'unresponsive', 'not-accepting-credentials', 'password-not-available', 'performance-network', 'performance-instance-store', 'performance-ebs-volume', 'performance-other', 'other', ], ], 'ReportInstanceStatusRequest' => [ 'type' => 'structure', 'required' => [ 'Instances', 'Status', 'ReasonCodes', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Instances' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'instanceId', ], 'Status' => [ 'shape' => 'ReportStatusType', 'locationName' => 'status', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], 'EndTime' => [ 'shape' => 'DateTime', 'locationName' => 'endTime', ], 'ReasonCodes' => [ 'shape' => 'ReasonCodesList', 'locationName' => 'reasonCode', ], 'Description' => [ 'shape' => 'ReportInstanceStatusRequestDescription', 'deprecated' => true, 'deprecatedMessage' => 'This member has been deprecated', 'locationName' => 'description', ], ], ], 'ReportInstanceStatusRequestDescription' => [ 'type' => 'string', 'sensitive' => true, ], 'ReportState' => [ 'type' => 'string', 'enum' => [ 'running', 'cancelled', 'complete', 'error', ], ], 'ReportStatusType' => [ 'type' => 'string', 'enum' => [ 'ok', 'impaired', ], ], 'RequestFilterPortRange' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'Port', ], 'ToPort' => [ 'shape' => 'Port', ], ], ], 'RequestHostIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DedicatedHostId', 'locationName' => 'item', ], ], 'RequestHostIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DedicatedHostId', 'locationName' => 'item', ], ], 'RequestInstanceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceType', ], 'locationName' => 'InstanceType', 'max' => 100, 'min' => 0, ], 'RequestIpamResourceTag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'RequestIpamResourceTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RequestIpamResourceTag', 'locationName' => 'item', ], ], 'RequestLaunchTemplateData' => [ 'type' => 'structure', 'members' => [ 'KernelId' => [ 'shape' => 'KernelId', ], 'EbsOptimized' => [ 'shape' => 'Boolean', ], 'IamInstanceProfile' => [ 'shape' => 'LaunchTemplateIamInstanceProfileSpecificationRequest', ], 'BlockDeviceMappings' => [ 'shape' => 'LaunchTemplateBlockDeviceMappingRequestList', 'locationName' => 'BlockDeviceMapping', ], 'NetworkInterfaces' => [ 'shape' => 'LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList', 'locationName' => 'NetworkInterface', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'InstanceType' => [ 'shape' => 'InstanceType', ], 'KeyName' => [ 'shape' => 'KeyPairName', ], 'Monitoring' => [ 'shape' => 'LaunchTemplatesMonitoringRequest', ], 'Placement' => [ 'shape' => 'LaunchTemplatePlacementRequest', ], 'RamDiskId' => [ 'shape' => 'RamdiskId', ], 'DisableApiTermination' => [ 'shape' => 'Boolean', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'ShutdownBehavior', ], 'UserData' => [ 'shape' => 'SensitiveUserData', ], 'TagSpecifications' => [ 'shape' => 'LaunchTemplateTagSpecificationRequestList', 'locationName' => 'TagSpecification', ], 'ElasticGpuSpecifications' => [ 'shape' => 'ElasticGpuSpecificationList', 'deprecated' => true, 'deprecatedMessage' => 'Specifying Elastic Graphics accelerators is no longer supported on the RunInstances API.', 'deprecatedSince' => '2024-01-08', 'locationName' => 'ElasticGpuSpecification', ], 'ElasticInferenceAccelerators' => [ 'shape' => 'LaunchTemplateElasticInferenceAcceleratorList', 'deprecated' => true, 'deprecatedMessage' => 'Specifying Elastic Inference accelerators is no longer supported on the RunInstances API.', 'deprecatedSince' => '2024-01-08', 'locationName' => 'ElasticInferenceAccelerator', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'SecurityGroups' => [ 'shape' => 'SecurityGroupStringList', 'locationName' => 'SecurityGroup', ], 'InstanceMarketOptions' => [ 'shape' => 'LaunchTemplateInstanceMarketOptionsRequest', ], 'CreditSpecification' => [ 'shape' => 'CreditSpecificationRequest', ], 'CpuOptions' => [ 'shape' => 'LaunchTemplateCpuOptionsRequest', ], 'CapacityReservationSpecification' => [ 'shape' => 'LaunchTemplateCapacityReservationSpecificationRequest', ], 'LicenseSpecifications' => [ 'shape' => 'LaunchTemplateLicenseSpecificationListRequest', 'locationName' => 'LicenseSpecification', ], 'HibernationOptions' => [ 'shape' => 'LaunchTemplateHibernationOptionsRequest', ], 'MetadataOptions' => [ 'shape' => 'LaunchTemplateInstanceMetadataOptionsRequest', ], 'EnclaveOptions' => [ 'shape' => 'LaunchTemplateEnclaveOptionsRequest', ], 'InstanceRequirements' => [ 'shape' => 'InstanceRequirementsRequest', ], 'PrivateDnsNameOptions' => [ 'shape' => 'LaunchTemplatePrivateDnsNameOptionsRequest', ], 'MaintenanceOptions' => [ 'shape' => 'LaunchTemplateInstanceMaintenanceOptionsRequest', ], 'DisableApiStop' => [ 'shape' => 'Boolean', ], 'Operator' => [ 'shape' => 'OperatorRequest', ], 'NetworkPerformanceOptions' => [ 'shape' => 'LaunchTemplateNetworkPerformanceOptionsRequest', ], 'SecondaryInterfaces' => [ 'shape' => 'LaunchTemplateInstanceSecondaryInterfaceSpecificationRequestList', 'locationName' => 'SecondaryInterface', ], ], ], 'RequestSpotFleetRequest' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestConfig', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotFleetRequestConfig' => [ 'shape' => 'SpotFleetRequestConfigData', 'locationName' => 'spotFleetRequestConfig', ], ], ], 'RequestSpotFleetResponse' => [ 'type' => 'structure', 'members' => [ 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], ], ], 'RequestSpotInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'LaunchSpecification' => [ 'shape' => 'RequestSpotLaunchSpecification', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'Type' => [ 'shape' => 'SpotInstanceType', 'locationName' => 'type', ], 'ValidFrom' => [ 'shape' => 'DateTime', 'locationName' => 'validFrom', ], 'ValidUntil' => [ 'shape' => 'DateTime', 'locationName' => 'validUntil', ], 'LaunchGroup' => [ 'shape' => 'String', 'locationName' => 'launchGroup', ], 'AvailabilityZoneGroup' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneGroup', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'blockDurationMinutes', ], ], ], 'RequestSpotInstancesResult' => [ 'type' => 'structure', 'members' => [ 'SpotInstanceRequests' => [ 'shape' => 'SpotInstanceRequestList', 'locationName' => 'spotInstanceRequestSet', ], ], ], 'RequestSpotLaunchSpecification' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupIds' => [ 'shape' => 'RequestSpotLaunchSpecificationSecurityGroupIdList', 'locationName' => 'SecurityGroupId', ], 'SecurityGroups' => [ 'shape' => 'RequestSpotLaunchSpecificationSecurityGroupList', 'locationName' => 'SecurityGroup', ], 'AddressingType' => [ 'shape' => 'String', 'locationName' => 'addressingType', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'KernelId' => [ 'shape' => 'KernelId', 'locationName' => 'kernelId', ], 'KeyName' => [ 'shape' => 'KeyPairNameWithResolver', 'locationName' => 'keyName', ], 'Monitoring' => [ 'shape' => 'RunInstancesMonitoringEnabled', 'locationName' => 'monitoring', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceSpecificationList', 'locationName' => 'NetworkInterface', ], 'Placement' => [ 'shape' => 'SpotPlacement', 'locationName' => 'placement', ], 'RamdiskId' => [ 'shape' => 'RamdiskId', 'locationName' => 'ramdiskId', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'UserData' => [ 'shape' => 'SensitiveUserData', 'locationName' => 'userData', ], ], ], 'RequestSpotLaunchSpecificationSecurityGroupIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'item', ], ], 'RequestSpotLaunchSpecificationSecurityGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'Reservation' => [ 'type' => 'structure', 'members' => [ 'ReservationId' => [ 'shape' => 'String', 'locationName' => 'reservationId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'RequesterId' => [ 'shape' => 'String', 'locationName' => 'requesterId', ], 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'Instances' => [ 'shape' => 'InstanceList', 'locationName' => 'instancesSet', ], ], ], 'ReservationEndDateType' => [ 'type' => 'string', 'enum' => [ 'limited', 'unlimited', ], ], 'ReservationFleetInstanceSpecification' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', ], 'InstancePlatform' => [ 'shape' => 'CapacityReservationInstancePlatform', ], 'Weight' => [ 'shape' => 'DoubleWithConstraints', ], 'AvailabilityZone' => [ 'shape' => 'String', ], 'AvailabilityZoneId' => [ 'shape' => 'String', ], 'EbsOptimized' => [ 'shape' => 'Boolean', ], 'Priority' => [ 'shape' => 'IntegerWithConstraints', ], ], ], 'ReservationFleetInstanceSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservationFleetInstanceSpecification', ], ], 'ReservationId' => [ 'type' => 'string', ], 'ReservationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Reservation', 'locationName' => 'item', ], ], 'ReservationState' => [ 'type' => 'string', 'enum' => [ 'active', 'expired', 'cancelled', 'scheduled', 'pending', 'failed', 'delayed', 'unsupported', 'payment-pending', 'payment-failed', 'retired', ], ], 'ReservationType' => [ 'type' => 'string', 'enum' => [ 'capacity-block', 'odcr', ], ], 'ReservationTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetReservationType', 'locationName' => 'item', ], ], 'ReservationTypeListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetReservationType', 'locationName' => 'ReservationType', ], ], 'ReservationValue' => [ 'type' => 'structure', 'members' => [ 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'RemainingTotalValue' => [ 'shape' => 'String', 'locationName' => 'remainingTotalValue', ], 'RemainingUpfrontValue' => [ 'shape' => 'String', 'locationName' => 'remainingUpfrontValue', ], ], ], 'ReservedCapacityOptions' => [ 'type' => 'structure', 'members' => [ 'ReservationTypes' => [ 'shape' => 'ReservationTypeList', 'locationName' => 'reservationTypeSet', ], ], ], 'ReservedCapacityOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'ReservationTypes' => [ 'shape' => 'ReservationTypeListRequest', 'locationName' => 'ReservationType', ], ], ], 'ReservedInstanceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservationId', 'locationName' => 'ReservedInstanceId', ], ], 'ReservedInstanceLimitPrice' => [ 'type' => 'structure', 'members' => [ 'Amount' => [ 'shape' => 'Double', 'locationName' => 'amount', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], ], ], 'ReservedInstanceReservationValue' => [ 'type' => 'structure', 'members' => [ 'ReservationValue' => [ 'shape' => 'ReservationValue', 'locationName' => 'reservationValue', ], 'ReservedInstanceId' => [ 'shape' => 'String', 'locationName' => 'reservedInstanceId', ], ], ], 'ReservedInstanceReservationValueSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstanceReservationValue', 'locationName' => 'item', ], ], 'ReservedInstanceState' => [ 'type' => 'string', 'enum' => [ 'payment-pending', 'active', 'payment-failed', 'retired', 'queued', 'queued-deleted', ], ], 'ReservedInstances' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'InstanceTenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'instanceTenancy', ], 'OfferingClass' => [ 'shape' => 'OfferingClassType', 'locationName' => 'offeringClass', ], 'OfferingType' => [ 'shape' => 'OfferingTypeValues', 'locationName' => 'offeringType', ], 'RecurringCharges' => [ 'shape' => 'RecurringChargesList', 'locationName' => 'recurringCharges', ], 'Scope' => [ 'shape' => 'scope', 'locationName' => 'scope', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Start' => [ 'shape' => 'DateTime', 'locationName' => 'start', ], 'End' => [ 'shape' => 'DateTime', 'locationName' => 'end', ], 'Duration' => [ 'shape' => 'Long', 'locationName' => 'duration', ], 'UsagePrice' => [ 'shape' => 'Float', 'locationName' => 'usagePrice', ], 'FixedPrice' => [ 'shape' => 'Float', 'locationName' => 'fixedPrice', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'ProductDescription' => [ 'shape' => 'RIProductDescription', 'locationName' => 'productDescription', ], 'State' => [ 'shape' => 'ReservedInstanceState', 'locationName' => 'state', ], ], ], 'ReservedInstancesConfiguration' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'Scope' => [ 'shape' => 'scope', 'locationName' => 'scope', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], ], ], 'ReservedInstancesConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesConfiguration', 'locationName' => 'item', ], ], 'ReservedInstancesId' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], ], ], 'ReservedInstancesIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservationId', 'locationName' => 'ReservedInstancesId', ], ], 'ReservedInstancesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstances', 'locationName' => 'item', ], ], 'ReservedInstancesListing' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'CreateDate' => [ 'shape' => 'DateTime', 'locationName' => 'createDate', ], 'InstanceCounts' => [ 'shape' => 'InstanceCountList', 'locationName' => 'instanceCounts', ], 'PriceSchedules' => [ 'shape' => 'PriceScheduleList', 'locationName' => 'priceSchedules', ], 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], 'ReservedInstancesListingId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesListingId', ], 'Status' => [ 'shape' => 'ListingStatus', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'UpdateDate' => [ 'shape' => 'DateTime', 'locationName' => 'updateDate', ], ], ], 'ReservedInstancesListingId' => [ 'type' => 'string', ], 'ReservedInstancesListingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesListing', 'locationName' => 'item', ], ], 'ReservedInstancesModification' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'CreateDate' => [ 'shape' => 'DateTime', 'locationName' => 'createDate', ], 'EffectiveDate' => [ 'shape' => 'DateTime', 'locationName' => 'effectiveDate', ], 'ModificationResults' => [ 'shape' => 'ReservedInstancesModificationResultList', 'locationName' => 'modificationResultSet', ], 'ReservedInstancesIds' => [ 'shape' => 'ReservedIntancesIds', 'locationName' => 'reservedInstancesSet', ], 'ReservedInstancesModificationId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesModificationId', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'UpdateDate' => [ 'shape' => 'DateTime', 'locationName' => 'updateDate', ], ], ], 'ReservedInstancesModificationId' => [ 'type' => 'string', ], 'ReservedInstancesModificationIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesModificationId', 'locationName' => 'ReservedInstancesModificationId', ], ], 'ReservedInstancesModificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesModification', 'locationName' => 'item', ], ], 'ReservedInstancesModificationResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], 'TargetConfiguration' => [ 'shape' => 'ReservedInstancesConfiguration', 'locationName' => 'targetConfiguration', ], ], ], 'ReservedInstancesModificationResultList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesModificationResult', 'locationName' => 'item', ], ], 'ReservedInstancesOffering' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'InstanceTenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'instanceTenancy', ], 'Marketplace' => [ 'shape' => 'Boolean', 'locationName' => 'marketplace', ], 'OfferingClass' => [ 'shape' => 'OfferingClassType', 'locationName' => 'offeringClass', ], 'OfferingType' => [ 'shape' => 'OfferingTypeValues', 'locationName' => 'offeringType', ], 'PricingDetails' => [ 'shape' => 'PricingDetailsList', 'locationName' => 'pricingDetailsSet', ], 'RecurringCharges' => [ 'shape' => 'RecurringChargesList', 'locationName' => 'recurringCharges', ], 'Scope' => [ 'shape' => 'scope', 'locationName' => 'scope', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], 'ReservedInstancesOfferingId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesOfferingId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Duration' => [ 'shape' => 'Long', 'locationName' => 'duration', ], 'UsagePrice' => [ 'shape' => 'Float', 'locationName' => 'usagePrice', ], 'FixedPrice' => [ 'shape' => 'Float', 'locationName' => 'fixedPrice', ], 'ProductDescription' => [ 'shape' => 'RIProductDescription', 'locationName' => 'productDescription', ], ], ], 'ReservedInstancesOfferingId' => [ 'type' => 'string', ], 'ReservedInstancesOfferingIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesOfferingId', ], ], 'ReservedInstancesOfferingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesOffering', 'locationName' => 'item', ], ], 'ReservedIntancesIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesId', 'locationName' => 'item', ], ], 'ResetAddressAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'AllocationId', 'Attribute', ], 'members' => [ 'AllocationId' => [ 'shape' => 'AllocationId', ], 'Attribute' => [ 'shape' => 'AddressAttributeName', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ResetAddressAttributeResult' => [ 'type' => 'structure', 'members' => [ 'Address' => [ 'shape' => 'AddressAttribute', 'locationName' => 'address', ], ], ], 'ResetEbsDefaultKmsKeyIdRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ResetEbsDefaultKmsKeyIdResult' => [ 'type' => 'structure', 'members' => [ 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], ], ], 'ResetFpgaImageAttributeName' => [ 'type' => 'string', 'enum' => [ 'loadPermission', ], ], 'ResetFpgaImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'FpgaImageId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FpgaImageId' => [ 'shape' => 'FpgaImageId', ], 'Attribute' => [ 'shape' => 'ResetFpgaImageAttributeName', ], ], ], 'ResetFpgaImageAttributeResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ResetImageAttributeName' => [ 'type' => 'string', 'enum' => [ 'launchPermission', ], ], 'ResetImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'ImageId', ], 'members' => [ 'Attribute' => [ 'shape' => 'ResetImageAttributeName', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ResetInstanceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'Attribute', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'Attribute' => [ 'shape' => 'InstanceAttributeName', 'locationName' => 'attribute', ], ], ], 'ResetNetworkInterfaceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'SourceDestCheck' => [ 'shape' => 'String', 'locationName' => 'sourceDestCheck', ], ], ], 'ResetSnapshotAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'SnapshotId', ], 'members' => [ 'Attribute' => [ 'shape' => 'SnapshotAttributeName', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ResourceArn' => [ 'type' => 'string', 'max' => 1283, 'min' => 1, ], 'ResourceConfigurationArn' => [ 'type' => 'string', ], 'ResourceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaggableResourceId', ], ], 'ResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'ResourceStatement' => [ 'type' => 'structure', 'members' => [ 'Resources' => [ 'shape' => 'ValueStringList', 'locationName' => 'resourceSet', ], 'ResourceTypes' => [ 'shape' => 'ValueStringList', 'locationName' => 'resourceTypeSet', ], ], ], 'ResourceStatementRequest' => [ 'type' => 'structure', 'members' => [ 'Resources' => [ 'shape' => 'ValueStringList', 'locationName' => 'Resource', ], 'ResourceTypes' => [ 'shape' => 'ValueStringList', 'locationName' => 'ResourceType', ], ], ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'capacity-reservation', 'client-vpn-endpoint', 'customer-gateway', 'carrier-gateway', 'coip-pool', 'declarative-policies-report', 'dedicated-host', 'dhcp-options', 'egress-only-internet-gateway', 'elastic-ip', 'elastic-gpu', 'export-image-task', 'export-instance-task', 'fleet', 'fpga-image', 'host-reservation', 'image', 'image-usage-report', 'import-image-task', 'import-snapshot-task', 'instance', 'instance-event-window', 'internet-gateway', 'ipam', 'ipam-pool', 'ipam-scope', 'ipv4pool-ec2', 'ipv6pool-ec2', 'key-pair', 'launch-template', 'local-gateway', 'local-gateway-route-table', 'local-gateway-virtual-interface', 'local-gateway-virtual-interface-group', 'local-gateway-route-table-vpc-association', 'local-gateway-route-table-virtual-interface-group-association', 'natgateway', 'network-acl', 'network-interface', 'network-insights-analysis', 'network-insights-path', 'network-insights-access-scope', 'network-insights-access-scope-analysis', 'outpost-lag', 'placement-group', 'prefix-list', 'replace-root-volume-task', 'reserved-instances', 'route-table', 'security-group', 'security-group-rule', 'service-link-virtual-interface', 'snapshot', 'spot-fleet-request', 'spot-instances-request', 'subnet', 'subnet-cidr-reservation', 'traffic-mirror-filter', 'traffic-mirror-session', 'traffic-mirror-target', 'transit-gateway', 'transit-gateway-attachment', 'transit-gateway-connect-peer', 'transit-gateway-multicast-domain', 'transit-gateway-policy-table', 'transit-gateway-metering-policy', 'transit-gateway-route-table', 'transit-gateway-route-table-announcement', 'volume', 'vpc', 'vpc-endpoint', 'vpc-endpoint-connection', 'vpc-endpoint-service', 'vpc-endpoint-service-permission', 'vpc-peering-connection', 'vpn-connection', 'vpn-gateway', 'vpc-flow-log', 'capacity-reservation-fleet', 'traffic-mirror-filter-rule', 'vpc-endpoint-connection-device-type', 'verified-access-instance', 'verified-access-group', 'verified-access-endpoint', 'verified-access-policy', 'verified-access-trust-provider', 'vpn-connection-device-type', 'vpc-block-public-access-exclusion', 'vpc-encryption-control', 'route-server', 'route-server-endpoint', 'route-server-peer', 'ipam-resource-discovery', 'ipam-resource-discovery-association', 'instance-connect-endpoint', 'verified-access-endpoint-target', 'ipam-external-resource-verification-token', 'capacity-block', 'mac-modification-task', 'ipam-prefix-list-resolver', 'ipam-policy', 'ipam-prefix-list-resolver-target', 'secondary-interface', 'secondary-network', 'secondary-subnet', 'capacity-manager-data-export', 'vpn-concentrator', 'ipam-pool-allocation', 'capacity-reservation-cancellation-quote', ], ], 'ResourceTypeOption' => [ 'type' => 'structure', 'members' => [ 'OptionName' => [ 'shape' => 'ImageReferenceOptionName', ], 'OptionValues' => [ 'shape' => 'ResourceTypeOptionValuesList', 'locationName' => 'OptionValue', ], ], ], 'ResourceTypeOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceTypeOption', ], ], 'ResourceTypeOptionValue' => [ 'type' => 'string', ], 'ResourceTypeOptionValuesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceTypeOptionValue', ], ], 'ResourceTypeRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ImageReferenceResourceType', ], 'ResourceTypeOptions' => [ 'shape' => 'ResourceTypeOptionList', 'locationName' => 'ResourceTypeOption', ], ], ], 'ResourceTypeRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceTypeRequest', ], ], 'ResponseError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'LaunchTemplateErrorCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ResponseHostIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'ResponseHostIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'ResponseLaunchTemplateData' => [ 'type' => 'structure', 'members' => [ 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'IamInstanceProfile' => [ 'shape' => 'LaunchTemplateIamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'BlockDeviceMappings' => [ 'shape' => 'LaunchTemplateBlockDeviceMappingList', 'locationName' => 'blockDeviceMappingSet', ], 'NetworkInterfaces' => [ 'shape' => 'LaunchTemplateInstanceNetworkInterfaceSpecificationList', 'locationName' => 'networkInterfaceSet', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'Monitoring' => [ 'shape' => 'LaunchTemplatesMonitoring', 'locationName' => 'monitoring', ], 'Placement' => [ 'shape' => 'LaunchTemplatePlacement', 'locationName' => 'placement', ], 'RamDiskId' => [ 'shape' => 'String', 'locationName' => 'ramDiskId', ], 'DisableApiTermination' => [ 'shape' => 'Boolean', 'locationName' => 'disableApiTermination', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'ShutdownBehavior', 'locationName' => 'instanceInitiatedShutdownBehavior', ], 'UserData' => [ 'shape' => 'SensitiveUserData', 'locationName' => 'userData', ], 'TagSpecifications' => [ 'shape' => 'LaunchTemplateTagSpecificationList', 'locationName' => 'tagSpecificationSet', ], 'ElasticGpuSpecifications' => [ 'shape' => 'ElasticGpuSpecificationResponseList', 'locationName' => 'elasticGpuSpecificationSet', ], 'ElasticInferenceAccelerators' => [ 'shape' => 'LaunchTemplateElasticInferenceAcceleratorResponseList', 'locationName' => 'elasticInferenceAcceleratorSet', ], 'SecurityGroupIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'securityGroupIdSet', ], 'SecurityGroups' => [ 'shape' => 'ValueStringList', 'locationName' => 'securityGroupSet', ], 'InstanceMarketOptions' => [ 'shape' => 'LaunchTemplateInstanceMarketOptions', 'locationName' => 'instanceMarketOptions', ], 'CreditSpecification' => [ 'shape' => 'CreditSpecification', 'locationName' => 'creditSpecification', ], 'CpuOptions' => [ 'shape' => 'LaunchTemplateCpuOptions', 'locationName' => 'cpuOptions', ], 'CapacityReservationSpecification' => [ 'shape' => 'LaunchTemplateCapacityReservationSpecificationResponse', 'locationName' => 'capacityReservationSpecification', ], 'LicenseSpecifications' => [ 'shape' => 'LaunchTemplateLicenseList', 'locationName' => 'licenseSet', ], 'HibernationOptions' => [ 'shape' => 'LaunchTemplateHibernationOptions', 'locationName' => 'hibernationOptions', ], 'MetadataOptions' => [ 'shape' => 'LaunchTemplateInstanceMetadataOptions', 'locationName' => 'metadataOptions', ], 'EnclaveOptions' => [ 'shape' => 'LaunchTemplateEnclaveOptions', 'locationName' => 'enclaveOptions', ], 'InstanceRequirements' => [ 'shape' => 'InstanceRequirements', 'locationName' => 'instanceRequirements', ], 'PrivateDnsNameOptions' => [ 'shape' => 'LaunchTemplatePrivateDnsNameOptions', 'locationName' => 'privateDnsNameOptions', ], 'MaintenanceOptions' => [ 'shape' => 'LaunchTemplateInstanceMaintenanceOptions', 'locationName' => 'maintenanceOptions', ], 'DisableApiStop' => [ 'shape' => 'Boolean', 'locationName' => 'disableApiStop', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], 'NetworkPerformanceOptions' => [ 'shape' => 'LaunchTemplateNetworkPerformanceOptions', 'locationName' => 'networkPerformanceOptions', ], 'SecondaryInterfaces' => [ 'shape' => 'LaunchTemplateInstanceSecondaryInterfaceSpecificationList', 'locationName' => 'secondaryInterfaceSet', ], ], ], 'RestorableByStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'RestoreAddressToClassicRequest' => [ 'type' => 'structure', 'required' => [ 'PublicIp', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], ], ], 'RestoreAddressToClassicResult' => [ 'type' => 'structure', 'members' => [ 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], 'Status' => [ 'shape' => 'Status', 'locationName' => 'status', ], ], ], 'RestoreImageFromRecycleBinRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RestoreImageFromRecycleBinResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'RestoreManagedPrefixListVersionRequest' => [ 'type' => 'structure', 'required' => [ 'PrefixListId', 'PreviousVersion', 'CurrentVersion', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'PreviousVersion' => [ 'shape' => 'Long', ], 'CurrentVersion' => [ 'shape' => 'Long', ], ], ], 'RestoreManagedPrefixListVersionResult' => [ 'type' => 'structure', 'members' => [ 'PrefixList' => [ 'shape' => 'ManagedPrefixList', 'locationName' => 'prefixList', ], ], ], 'RestoreSnapshotFromRecycleBinRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', ], 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RestoreSnapshotFromRecycleBinResult' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startTime', ], 'State' => [ 'shape' => 'SnapshotState', 'locationName' => 'status', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'VolumeSize' => [ 'shape' => 'Integer', 'locationName' => 'volumeSize', ], 'SseType' => [ 'shape' => 'SSEType', 'locationName' => 'sseType', ], ], ], 'RestoreSnapshotTierRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', ], 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'TemporaryRestoreDays' => [ 'shape' => 'RestoreSnapshotTierRequestTemporaryRestoreDays', ], 'PermanentRestore' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RestoreSnapshotTierRequestTemporaryRestoreDays' => [ 'type' => 'integer', ], 'RestoreSnapshotTierResult' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'RestoreStartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'restoreStartTime', ], 'RestoreDuration' => [ 'shape' => 'Integer', 'locationName' => 'restoreDuration', ], 'IsPermanentRestore' => [ 'shape' => 'Boolean', 'locationName' => 'isPermanentRestore', ], ], ], 'RestoreVolumeFromRecycleBinRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'VolumeId' => [ 'shape' => 'VolumeId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RestoreVolumeFromRecycleBinResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ResultRange' => [ 'type' => 'integer', 'max' => 500, 'min' => 20, ], 'RetentionPeriodRequestDays' => [ 'type' => 'integer', 'max' => 36500, 'min' => 1, ], 'RetentionPeriodResponseDays' => [ 'type' => 'integer', ], 'RevokeClientVpnIngressRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'TargetNetworkCidr', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'TargetNetworkCidr' => [ 'shape' => 'String', ], 'AccessGroupId' => [ 'shape' => 'String', ], 'RevokeAllGroups' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RevokeClientVpnIngressResult' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ClientVpnAuthorizationRuleStatus', 'locationName' => 'status', ], ], ], 'RevokeSecurityGroupEgressRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', ], 'members' => [ 'SecurityGroupRuleIds' => [ 'shape' => 'SecurityGroupRuleIdList', 'locationName' => 'SecurityGroupRuleId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'groupId', ], 'SourceSecurityGroupName' => [ 'shape' => 'String', 'locationName' => 'sourceSecurityGroupName', ], 'SourceSecurityGroupOwnerId' => [ 'shape' => 'String', 'locationName' => 'sourceSecurityGroupOwnerId', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'CidrIp' => [ 'shape' => 'String', 'locationName' => 'cidrIp', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', 'locationName' => 'ipPermissions', ], ], ], 'RevokeSecurityGroupEgressResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'UnknownIpPermissions' => [ 'shape' => 'IpPermissionList', 'locationName' => 'unknownIpPermissionSet', ], 'RevokedSecurityGroupRules' => [ 'shape' => 'RevokedSecurityGroupRuleList', 'locationName' => 'revokedSecurityGroupRuleSet', ], ], ], 'RevokeSecurityGroupIngressRequest' => [ 'type' => 'structure', 'members' => [ 'CidrIp' => [ 'shape' => 'String', ], 'FromPort' => [ 'shape' => 'Integer', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', ], 'GroupName' => [ 'shape' => 'SecurityGroupName', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', ], 'IpProtocol' => [ 'shape' => 'String', ], 'SourceSecurityGroupName' => [ 'shape' => 'String', ], 'SourceSecurityGroupOwnerId' => [ 'shape' => 'String', ], 'ToPort' => [ 'shape' => 'Integer', ], 'SecurityGroupRuleIds' => [ 'shape' => 'SecurityGroupRuleIdList', 'locationName' => 'SecurityGroupRuleId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'RevokeSecurityGroupIngressResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'UnknownIpPermissions' => [ 'shape' => 'IpPermissionList', 'locationName' => 'unknownIpPermissionSet', ], 'RevokedSecurityGroupRules' => [ 'shape' => 'RevokedSecurityGroupRuleList', 'locationName' => 'revokedSecurityGroupRuleSet', ], ], ], 'RevokedSecurityGroupRule' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupRuleId' => [ 'shape' => 'SecurityGroupRuleId', 'locationName' => 'securityGroupRuleId', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'groupId', ], 'IsEgress' => [ 'shape' => 'Boolean', 'locationName' => 'isEgress', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'CidrIpv4' => [ 'shape' => 'String', 'locationName' => 'cidrIpv4', ], 'CidrIpv6' => [ 'shape' => 'String', 'locationName' => 'cidrIpv6', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', 'locationName' => 'prefixListId', ], 'ReferencedGroupId' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'referencedGroupId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], ], ], 'RevokedSecurityGroupRuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RevokedSecurityGroupRule', 'locationName' => 'item', ], ], 'RoleId' => [ 'type' => 'string', ], 'RootDeviceType' => [ 'type' => 'string', 'enum' => [ 'ebs', 'instance-store', ], ], 'RootDeviceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RootDeviceType', 'locationName' => 'item', ], ], 'Route' => [ 'type' => 'structure', 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'DestinationIpv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationIpv6CidrBlock', ], 'DestinationPrefixListId' => [ 'shape' => 'String', 'locationName' => 'destinationPrefixListId', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'String', 'locationName' => 'egressOnlyInternetGatewayId', ], 'GatewayId' => [ 'shape' => 'String', 'locationName' => 'gatewayId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceOwnerId' => [ 'shape' => 'String', 'locationName' => 'instanceOwnerId', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'LocalGatewayId' => [ 'shape' => 'String', 'locationName' => 'localGatewayId', ], 'CarrierGatewayId' => [ 'shape' => 'CarrierGatewayId', 'locationName' => 'carrierGatewayId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'Origin' => [ 'shape' => 'RouteOrigin', 'locationName' => 'origin', ], 'State' => [ 'shape' => 'RouteState', 'locationName' => 'state', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], 'CoreNetworkArn' => [ 'shape' => 'CoreNetworkArn', 'locationName' => 'coreNetworkArn', ], 'OdbNetworkArn' => [ 'shape' => 'OdbNetworkArn', 'locationName' => 'odbNetworkArn', ], 'IpAddress' => [ 'shape' => 'String', 'locationName' => 'ipAddress', ], ], ], 'RouteGatewayId' => [ 'type' => 'string', ], 'RouteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Route', 'locationName' => 'item', ], ], 'RouteOrigin' => [ 'type' => 'string', 'enum' => [ 'CreateRouteTable', 'CreateRoute', 'EnableVgwRoutePropagation', 'Advertisement', ], ], 'RouteServer' => [ 'type' => 'structure', 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', 'locationName' => 'routeServerId', ], 'AmazonSideAsn' => [ 'shape' => 'Long', 'locationName' => 'amazonSideAsn', ], 'State' => [ 'shape' => 'RouteServerState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'PersistRoutesState' => [ 'shape' => 'RouteServerPersistRoutesState', 'locationName' => 'persistRoutesState', ], 'PersistRoutesDuration' => [ 'shape' => 'BoxedLong', 'locationName' => 'persistRoutesDuration', ], 'SnsNotificationsEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'snsNotificationsEnabled', ], 'SnsTopicArn' => [ 'shape' => 'String', 'locationName' => 'snsTopicArn', ], ], ], 'RouteServerAssociation' => [ 'type' => 'structure', 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', 'locationName' => 'routeServerId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'State' => [ 'shape' => 'RouteServerAssociationState', 'locationName' => 'state', ], ], ], 'RouteServerAssociationState' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', ], ], 'RouteServerAssociationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerAssociation', 'locationName' => 'item', ], ], 'RouteServerBfdState' => [ 'type' => 'string', 'enum' => [ 'up', 'down', ], ], 'RouteServerBfdStatus' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'RouteServerBfdState', 'locationName' => 'status', ], ], ], 'RouteServerBgpOptions' => [ 'type' => 'structure', 'members' => [ 'PeerAsn' => [ 'shape' => 'Long', 'locationName' => 'peerAsn', ], 'PeerLivenessDetection' => [ 'shape' => 'RouteServerPeerLivenessMode', 'locationName' => 'peerLivenessDetection', ], ], ], 'RouteServerBgpOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'PeerAsn', ], 'members' => [ 'PeerAsn' => [ 'shape' => 'Long', ], 'PeerLivenessDetection' => [ 'shape' => 'RouteServerPeerLivenessMode', ], ], ], 'RouteServerBgpState' => [ 'type' => 'string', 'enum' => [ 'up', 'down', ], ], 'RouteServerBgpStatus' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'RouteServerBgpState', 'locationName' => 'status', ], ], ], 'RouteServerEndpoint' => [ 'type' => 'structure', 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', 'locationName' => 'routeServerId', ], 'RouteServerEndpointId' => [ 'shape' => 'RouteServerEndpointId', 'locationName' => 'routeServerEndpointId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'EniId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'eniId', ], 'EniAddress' => [ 'shape' => 'String', 'locationName' => 'eniAddress', ], 'State' => [ 'shape' => 'RouteServerEndpointState', 'locationName' => 'state', ], 'FailureReason' => [ 'shape' => 'String', 'locationName' => 'failureReason', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'RouteServerEndpointId' => [ 'type' => 'string', ], 'RouteServerEndpointIdsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerEndpointId', ], ], 'RouteServerEndpointState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', 'failing', 'failed', 'delete-failed', ], ], 'RouteServerEndpointsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerEndpoint', 'locationName' => 'item', ], ], 'RouteServerId' => [ 'type' => 'string', ], 'RouteServerIdsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerId', ], ], 'RouteServerMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'RouteServerPeer' => [ 'type' => 'structure', 'members' => [ 'RouteServerPeerId' => [ 'shape' => 'RouteServerPeerId', 'locationName' => 'routeServerPeerId', ], 'RouteServerEndpointId' => [ 'shape' => 'RouteServerEndpointId', 'locationName' => 'routeServerEndpointId', ], 'RouteServerId' => [ 'shape' => 'RouteServerId', 'locationName' => 'routeServerId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'State' => [ 'shape' => 'RouteServerPeerState', 'locationName' => 'state', ], 'FailureReason' => [ 'shape' => 'String', 'locationName' => 'failureReason', ], 'EndpointEniId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'endpointEniId', ], 'EndpointEniAddress' => [ 'shape' => 'String', 'locationName' => 'endpointEniAddress', ], 'PeerAddress' => [ 'shape' => 'String', 'locationName' => 'peerAddress', ], 'BgpOptions' => [ 'shape' => 'RouteServerBgpOptions', 'locationName' => 'bgpOptions', ], 'BgpStatus' => [ 'shape' => 'RouteServerBgpStatus', 'locationName' => 'bgpStatus', ], 'BfdStatus' => [ 'shape' => 'RouteServerBfdStatus', 'locationName' => 'bfdStatus', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'RouteServerPeerId' => [ 'type' => 'string', ], 'RouteServerPeerIdsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerPeerId', ], ], 'RouteServerPeerLivenessMode' => [ 'type' => 'string', 'enum' => [ 'bfd', 'bgp-keepalive', ], ], 'RouteServerPeerState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', 'failing', 'failed', ], ], 'RouteServerPeersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerPeer', 'locationName' => 'item', ], ], 'RouteServerPersistRoutesAction' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', 'reset', ], ], 'RouteServerPersistRoutesState' => [ 'type' => 'string', 'enum' => [ 'enabling', 'enabled', 'resetting', 'disabling', 'disabled', 'modifying', ], ], 'RouteServerPropagation' => [ 'type' => 'structure', 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', 'locationName' => 'routeServerId', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', 'locationName' => 'routeTableId', ], 'State' => [ 'shape' => 'RouteServerPropagationState', 'locationName' => 'state', ], ], ], 'RouteServerPropagationState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', ], ], 'RouteServerPropagationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerPropagation', 'locationName' => 'item', ], ], 'RouteServerRoute' => [ 'type' => 'structure', 'members' => [ 'RouteServerEndpointId' => [ 'shape' => 'RouteServerEndpointId', 'locationName' => 'routeServerEndpointId', ], 'RouteServerPeerId' => [ 'shape' => 'RouteServerPeerId', 'locationName' => 'routeServerPeerId', ], 'RouteInstallationDetails' => [ 'shape' => 'RouteServerRouteInstallationDetails', 'locationName' => 'routeInstallationDetailSet', ], 'RouteStatus' => [ 'shape' => 'RouteServerRouteStatus', 'locationName' => 'routeStatus', ], 'Prefix' => [ 'shape' => 'String', 'locationName' => 'prefix', ], 'AsPaths' => [ 'shape' => 'AsPath', 'locationName' => 'asPathSet', ], 'Med' => [ 'shape' => 'Integer', 'locationName' => 'med', ], 'NextHopIp' => [ 'shape' => 'String', 'locationName' => 'nextHopIp', ], ], ], 'RouteServerRouteInstallationDetail' => [ 'type' => 'structure', 'members' => [ 'RouteTableId' => [ 'shape' => 'RouteTableId', 'locationName' => 'routeTableId', ], 'RouteInstallationStatus' => [ 'shape' => 'RouteServerRouteInstallationStatus', 'locationName' => 'routeInstallationStatus', ], 'RouteInstallationStatusReason' => [ 'shape' => 'String', 'locationName' => 'routeInstallationStatusReason', ], ], ], 'RouteServerRouteInstallationDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerRouteInstallationDetail', 'locationName' => 'item', ], ], 'RouteServerRouteInstallationStatus' => [ 'type' => 'string', 'enum' => [ 'installed', 'rejected', ], ], 'RouteServerRouteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerRoute', 'locationName' => 'item', ], ], 'RouteServerRouteStatus' => [ 'type' => 'string', 'enum' => [ 'in-rib', 'in-fib', ], ], 'RouteServerState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'modifying', 'deleting', 'deleted', ], ], 'RouteServersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServer', 'locationName' => 'item', ], ], 'RouteState' => [ 'type' => 'string', 'enum' => [ 'active', 'blackhole', 'filtered', ], ], 'RouteTable' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'RouteTableAssociationList', 'locationName' => 'associationSet', ], 'PropagatingVgws' => [ 'shape' => 'PropagatingVgwList', 'locationName' => 'propagatingVgwSet', ], 'RouteTableId' => [ 'shape' => 'String', 'locationName' => 'routeTableId', ], 'Routes' => [ 'shape' => 'RouteList', 'locationName' => 'routeSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], ], ], 'RouteTableAssociation' => [ 'type' => 'structure', 'members' => [ 'Main' => [ 'shape' => 'Boolean', 'locationName' => 'main', ], 'RouteTableAssociationId' => [ 'shape' => 'String', 'locationName' => 'routeTableAssociationId', ], 'RouteTableId' => [ 'shape' => 'String', 'locationName' => 'routeTableId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'GatewayId' => [ 'shape' => 'String', 'locationName' => 'gatewayId', ], 'PublicIpv4Pool' => [ 'shape' => 'String', 'locationName' => 'publicIpv4Pool', ], 'AssociationState' => [ 'shape' => 'RouteTableAssociationState', 'locationName' => 'associationState', ], ], ], 'RouteTableAssociationId' => [ 'type' => 'string', ], 'RouteTableAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteTableAssociation', 'locationName' => 'item', ], ], 'RouteTableAssociationState' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'RouteTableAssociationStateCode', 'locationName' => 'state', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], ], ], 'RouteTableAssociationStateCode' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', 'disassociated', 'failed', ], ], 'RouteTableId' => [ 'type' => 'string', ], 'RouteTableIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteTableId', 'locationName' => 'item', ], ], 'RouteTableList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteTable', 'locationName' => 'item', ], ], 'RuleAction' => [ 'type' => 'string', 'enum' => [ 'allow', 'deny', ], ], 'RuleGroupRuleOptionsPair' => [ 'type' => 'structure', 'members' => [ 'RuleGroupArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ruleGroupArn', ], 'RuleOptions' => [ 'shape' => 'RuleOptionList', 'locationName' => 'ruleOptionSet', ], ], ], 'RuleGroupRuleOptionsPairList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleGroupRuleOptionsPair', 'locationName' => 'item', ], ], 'RuleGroupTypePair' => [ 'type' => 'structure', 'members' => [ 'RuleGroupArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ruleGroupArn', ], 'RuleGroupType' => [ 'shape' => 'String', 'locationName' => 'ruleGroupType', ], ], ], 'RuleGroupTypePairList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleGroupTypePair', 'locationName' => 'item', ], ], 'RuleOption' => [ 'type' => 'structure', 'members' => [ 'Keyword' => [ 'shape' => 'String', 'locationName' => 'keyword', ], 'Settings' => [ 'shape' => 'StringList', 'locationName' => 'settingSet', ], ], ], 'RuleOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleOption', 'locationName' => 'item', ], ], 'RunInstancesMonitoringEnabled' => [ 'type' => 'structure', 'required' => [ 'Enabled', ], 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], ], ], 'RunInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'MaxCount', 'MinCount', ], 'members' => [ 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingRequestList', 'locationName' => 'BlockDeviceMapping', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'InstanceType' => [ 'shape' => 'InstanceType', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressList', 'locationName' => 'Ipv6Address', ], 'KernelId' => [ 'shape' => 'KernelId', ], 'KeyName' => [ 'shape' => 'KeyPairName', ], 'MaxCount' => [ 'shape' => 'Integer', ], 'MinCount' => [ 'shape' => 'Integer', ], 'Monitoring' => [ 'shape' => 'RunInstancesMonitoringEnabled', ], 'Placement' => [ 'shape' => 'Placement', ], 'RamdiskId' => [ 'shape' => 'RamdiskId', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'SecurityGroups' => [ 'shape' => 'SecurityGroupStringList', 'locationName' => 'SecurityGroup', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'UserData' => [ 'shape' => 'RunInstancesUserData', ], 'ElasticGpuSpecification' => [ 'shape' => 'ElasticGpuSpecifications', 'deprecated' => true, 'deprecatedMessage' => 'Specifying Elastic Graphics accelerators is no longer supported on the RunInstances API.', 'deprecatedSince' => '2024-01-08', ], 'ElasticInferenceAccelerators' => [ 'shape' => 'ElasticInferenceAccelerators', 'deprecated' => true, 'deprecatedMessage' => 'Specifying Elastic Inference accelerators is no longer supported on the RunInstances API.', 'deprecatedSince' => '2024-01-08', 'locationName' => 'ElasticInferenceAccelerator', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'LaunchTemplate' => [ 'shape' => 'LaunchTemplateSpecification', ], 'InstanceMarketOptions' => [ 'shape' => 'InstanceMarketOptionsRequest', ], 'CreditSpecification' => [ 'shape' => 'CreditSpecificationRequest', ], 'CpuOptions' => [ 'shape' => 'CpuOptionsRequest', ], 'CapacityReservationSpecification' => [ 'shape' => 'CapacityReservationSpecification', ], 'HibernationOptions' => [ 'shape' => 'HibernationOptionsRequest', ], 'LicenseSpecifications' => [ 'shape' => 'LicenseSpecificationListRequest', 'locationName' => 'LicenseSpecification', ], 'MetadataOptions' => [ 'shape' => 'InstanceMetadataOptionsRequest', ], 'EnclaveOptions' => [ 'shape' => 'EnclaveOptionsRequest', ], 'PrivateDnsNameOptions' => [ 'shape' => 'PrivateDnsNameOptionsRequest', ], 'MaintenanceOptions' => [ 'shape' => 'InstanceMaintenanceOptionsRequest', ], 'DisableApiStop' => [ 'shape' => 'Boolean', ], 'EnablePrimaryIpv6' => [ 'shape' => 'Boolean', ], 'NetworkPerformanceOptions' => [ 'shape' => 'InstanceNetworkPerformanceOptionsRequest', ], 'Operator' => [ 'shape' => 'OperatorRequest', ], 'SecondaryInterfaces' => [ 'shape' => 'InstanceSecondaryInterfaceSpecificationListRequest', 'locationName' => 'SecondaryInterface', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'DisableApiTermination' => [ 'shape' => 'Boolean', 'locationName' => 'disableApiTermination', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'ShutdownBehavior', 'locationName' => 'instanceInitiatedShutdownBehavior', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, 'locationName' => 'clientToken', ], 'AdditionalInfo' => [ 'shape' => 'String', 'locationName' => 'additionalInfo', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceSpecificationList', 'locationName' => 'networkInterface', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], ], ], 'RunInstancesUserData' => [ 'type' => 'string', 'sensitive' => true, ], 'RunScheduledInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'LaunchSpecification', 'ScheduledInstanceId', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'LaunchSpecification' => [ 'shape' => 'ScheduledInstancesLaunchSpecification', ], 'ScheduledInstanceId' => [ 'shape' => 'ScheduledInstanceId', ], ], ], 'RunScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceIdSet' => [ 'shape' => 'InstanceIdSet', 'locationName' => 'instanceIdSet', ], ], ], 'S3ObjectTag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'S3ObjectTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'S3ObjectTag', 'locationName' => 'item', ], ], 'S3Storage' => [ 'type' => 'structure', 'members' => [ 'AWSAccessKeyId' => [ 'shape' => 'String', ], 'Bucket' => [ 'shape' => 'String', 'locationName' => 'bucket', ], 'Prefix' => [ 'shape' => 'String', 'locationName' => 'prefix', ], 'UploadPolicy' => [ 'shape' => 'SecureBlob', 'locationName' => 'uploadPolicy', ], 'UploadPolicySignature' => [ 'shape' => 'S3StorageUploadPolicySignature', 'locationName' => 'uploadPolicySignature', ], ], ], 'S3StorageUploadPolicy' => [ 'type' => 'string', 'sensitive' => true, ], 'S3StorageUploadPolicySignature' => [ 'type' => 'string', 'sensitive' => true, ], 'SSEType' => [ 'type' => 'string', 'enum' => [ 'sse-ebs', 'sse-kms', 'none', ], ], 'Schedule' => [ 'type' => 'string', 'enum' => [ 'hourly', ], ], 'ScheduledInstance' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'CreateDate' => [ 'shape' => 'DateTime', 'locationName' => 'createDate', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'NetworkPlatform' => [ 'shape' => 'String', 'locationName' => 'networkPlatform', ], 'NextSlotStartTime' => [ 'shape' => 'DateTime', 'locationName' => 'nextSlotStartTime', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'PreviousSlotEndTime' => [ 'shape' => 'DateTime', 'locationName' => 'previousSlotEndTime', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrence', 'locationName' => 'recurrence', ], 'ScheduledInstanceId' => [ 'shape' => 'String', 'locationName' => 'scheduledInstanceId', ], 'SlotDurationInHours' => [ 'shape' => 'Integer', 'locationName' => 'slotDurationInHours', ], 'TermEndDate' => [ 'shape' => 'DateTime', 'locationName' => 'termEndDate', ], 'TermStartDate' => [ 'shape' => 'DateTime', 'locationName' => 'termStartDate', ], 'TotalScheduledInstanceHours' => [ 'shape' => 'Integer', 'locationName' => 'totalScheduledInstanceHours', ], ], ], 'ScheduledInstanceAvailability' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailableInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'availableInstanceCount', ], 'FirstSlotStartTime' => [ 'shape' => 'DateTime', 'locationName' => 'firstSlotStartTime', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'MaxTermDurationInDays' => [ 'shape' => 'Integer', 'locationName' => 'maxTermDurationInDays', ], 'MinTermDurationInDays' => [ 'shape' => 'Integer', 'locationName' => 'minTermDurationInDays', ], 'NetworkPlatform' => [ 'shape' => 'String', 'locationName' => 'networkPlatform', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'PurchaseToken' => [ 'shape' => 'String', 'locationName' => 'purchaseToken', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrence', 'locationName' => 'recurrence', ], 'SlotDurationInHours' => [ 'shape' => 'Integer', 'locationName' => 'slotDurationInHours', ], 'TotalScheduledInstanceHours' => [ 'shape' => 'Integer', 'locationName' => 'totalScheduledInstanceHours', ], ], ], 'ScheduledInstanceAvailabilitySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstanceAvailability', 'locationName' => 'item', ], ], 'ScheduledInstanceId' => [ 'type' => 'string', ], 'ScheduledInstanceIdRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstanceId', 'locationName' => 'ScheduledInstanceId', ], ], 'ScheduledInstanceRecurrence' => [ 'type' => 'structure', 'members' => [ 'Frequency' => [ 'shape' => 'String', 'locationName' => 'frequency', ], 'Interval' => [ 'shape' => 'Integer', 'locationName' => 'interval', ], 'OccurrenceDaySet' => [ 'shape' => 'OccurrenceDaySet', 'locationName' => 'occurrenceDaySet', ], 'OccurrenceRelativeToEnd' => [ 'shape' => 'Boolean', 'locationName' => 'occurrenceRelativeToEnd', ], 'OccurrenceUnit' => [ 'shape' => 'String', 'locationName' => 'occurrenceUnit', ], ], ], 'ScheduledInstanceRecurrenceRequest' => [ 'type' => 'structure', 'members' => [ 'Frequency' => [ 'shape' => 'String', ], 'Interval' => [ 'shape' => 'Integer', ], 'OccurrenceDays' => [ 'shape' => 'OccurrenceDayRequestSet', 'locationName' => 'OccurrenceDay', ], 'OccurrenceRelativeToEnd' => [ 'shape' => 'Boolean', ], 'OccurrenceUnit' => [ 'shape' => 'String', ], ], ], 'ScheduledInstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstance', 'locationName' => 'item', ], ], 'ScheduledInstancesBlockDeviceMapping' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', ], 'Ebs' => [ 'shape' => 'ScheduledInstancesEbs', ], 'NoDevice' => [ 'shape' => 'String', ], 'VirtualName' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesBlockDeviceMappingSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesBlockDeviceMapping', 'locationName' => 'BlockDeviceMapping', ], ], 'ScheduledInstancesEbs' => [ 'type' => 'structure', 'members' => [ 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'Encrypted' => [ 'shape' => 'Boolean', ], 'Iops' => [ 'shape' => 'Integer', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'VolumeSize' => [ 'shape' => 'Integer', ], 'VolumeType' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesIamInstanceProfile' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesIpv6Address' => [ 'type' => 'structure', 'members' => [ 'Ipv6Address' => [ 'shape' => 'Ipv6Address', ], ], ], 'ScheduledInstancesIpv6AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesIpv6Address', 'locationName' => 'Ipv6Address', ], ], 'ScheduledInstancesLaunchSpecification' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'BlockDeviceMappings' => [ 'shape' => 'ScheduledInstancesBlockDeviceMappingSet', 'locationName' => 'BlockDeviceMapping', ], 'EbsOptimized' => [ 'shape' => 'Boolean', ], 'IamInstanceProfile' => [ 'shape' => 'ScheduledInstancesIamInstanceProfile', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'InstanceType' => [ 'shape' => 'String', ], 'KernelId' => [ 'shape' => 'KernelId', ], 'KeyName' => [ 'shape' => 'KeyPairName', ], 'Monitoring' => [ 'shape' => 'ScheduledInstancesMonitoring', ], 'NetworkInterfaces' => [ 'shape' => 'ScheduledInstancesNetworkInterfaceSet', 'locationName' => 'NetworkInterface', ], 'Placement' => [ 'shape' => 'ScheduledInstancesPlacement', ], 'RamdiskId' => [ 'shape' => 'RamdiskId', ], 'SecurityGroupIds' => [ 'shape' => 'ScheduledInstancesSecurityGroupIdSet', 'locationName' => 'SecurityGroupId', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'UserData' => [ 'shape' => 'String', ], ], 'sensitive' => true, ], 'ScheduledInstancesMonitoring' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesNetworkInterface' => [ 'type' => 'structure', 'members' => [ 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'Description' => [ 'shape' => 'String', ], 'DeviceIndex' => [ 'shape' => 'Integer', ], 'Groups' => [ 'shape' => 'ScheduledInstancesSecurityGroupIdSet', 'locationName' => 'Group', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', ], 'Ipv6Addresses' => [ 'shape' => 'ScheduledInstancesIpv6AddressList', 'locationName' => 'Ipv6Address', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'PrivateIpAddress' => [ 'shape' => 'String', ], 'PrivateIpAddressConfigs' => [ 'shape' => 'PrivateIpAddressConfigSet', 'locationName' => 'PrivateIpAddressConfig', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], ], ], 'ScheduledInstancesNetworkInterfaceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesNetworkInterface', 'locationName' => 'NetworkInterface', ], ], 'ScheduledInstancesPlacement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'GroupName' => [ 'shape' => 'PlacementGroupName', ], ], ], 'ScheduledInstancesPrivateIpAddressConfig' => [ 'type' => 'structure', 'members' => [ 'Primary' => [ 'shape' => 'Boolean', ], 'PrivateIpAddress' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesSecurityGroupIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'SecurityGroupId', ], ], 'SearchLocalGatewayRoutesRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableId', ], 'members' => [ 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'SearchLocalGatewayRoutesResult' => [ 'type' => 'structure', 'members' => [ 'Routes' => [ 'shape' => 'LocalGatewayRouteList', 'locationName' => 'routeSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'SearchTransitGatewayMulticastGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMulticastDomainId', ], 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'SearchTransitGatewayMulticastGroupsResult' => [ 'type' => 'structure', 'members' => [ 'MulticastGroups' => [ 'shape' => 'TransitGatewayMulticastGroupList', 'locationName' => 'multicastGroups', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'SearchTransitGatewayRoutesRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'Filters', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'SearchTransitGatewayRoutesResult' => [ 'type' => 'structure', 'members' => [ 'Routes' => [ 'shape' => 'TransitGatewayRouteList', 'locationName' => 'routeSet', ], 'AdditionalRoutesAvailable' => [ 'shape' => 'Boolean', 'locationName' => 'additionalRoutesAvailable', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'SecondaryInterface' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], 'Attachment' => [ 'shape' => 'SecondaryInterfaceAttachment', 'locationName' => 'attachment', ], 'MacAddress' => [ 'shape' => 'String', 'locationName' => 'macAddress', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PrivateIpv4Addresses' => [ 'shape' => 'SecondaryInterfaceIpv4AddressList', 'locationName' => 'privateIpv4AddressSet', ], 'SecondaryInterfaceId' => [ 'shape' => 'SecondaryInterfaceId', 'locationName' => 'secondaryInterfaceId', ], 'SecondaryInterfaceArn' => [ 'shape' => 'String', 'locationName' => 'secondaryInterfaceArn', ], 'SecondaryInterfaceType' => [ 'shape' => 'SecondaryInterfaceType', 'locationName' => 'secondaryInterfaceType', ], 'SecondarySubnetId' => [ 'shape' => 'SecondarySubnetId', 'locationName' => 'secondarySubnetId', ], 'SecondaryNetworkId' => [ 'shape' => 'SecondaryNetworkId', 'locationName' => 'secondaryNetworkId', ], 'SecondaryNetworkType' => [ 'shape' => 'SecondaryNetworkType', 'locationName' => 'secondaryNetworkType', ], 'SourceDestCheck' => [ 'shape' => 'Boolean', 'locationName' => 'sourceDestCheck', ], 'Status' => [ 'shape' => 'SecondaryInterfaceStatus', 'locationName' => 'status', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'SecondaryInterfaceAttachment' => [ 'type' => 'structure', 'members' => [ 'AttachmentId' => [ 'shape' => 'String', 'locationName' => 'attachmentId', ], 'AttachTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'attachTime', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceOwnerId' => [ 'shape' => 'String', 'locationName' => 'instanceOwnerId', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'networkCardIndex', ], 'Status' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'status', ], ], ], 'SecondaryInterfaceId' => [ 'type' => 'string', ], 'SecondaryInterfaceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryInterfaceId', 'locationName' => 'item', ], ], 'SecondaryInterfaceIpv4Address' => [ 'type' => 'structure', 'members' => [ 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'SecondaryInterfaceIpv4AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryInterfaceIpv4Address', 'locationName' => 'item', ], ], 'SecondaryInterfaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryInterface', 'locationName' => 'item', ], ], 'SecondaryInterfacePrivateIpAddressSpecification' => [ 'type' => 'structure', 'members' => [ 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'SecondaryInterfacePrivateIpAddressSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryInterfacePrivateIpAddressSpecification', 'locationName' => 'item', ], ], 'SecondaryInterfacePrivateIpAddressSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryInterfacePrivateIpAddressSpecificationRequest', 'locationName' => 'SecondaryInterfacePrivateIpAddressSpecification', ], ], 'SecondaryInterfacePrivateIpAddressSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'PrivateIpAddress' => [ 'shape' => 'String', ], ], ], 'SecondaryInterfaceStatus' => [ 'type' => 'string', 'enum' => [ 'available', 'in-use', ], ], 'SecondaryInterfaceType' => [ 'type' => 'string', 'enum' => [ 'secondary', ], ], 'SecondaryNetwork' => [ 'type' => 'structure', 'members' => [ 'SecondaryNetworkId' => [ 'shape' => 'SecondaryNetworkId', 'locationName' => 'secondaryNetworkId', ], 'SecondaryNetworkArn' => [ 'shape' => 'String', 'locationName' => 'secondaryNetworkArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Type' => [ 'shape' => 'SecondaryNetworkType', 'locationName' => 'type', ], 'State' => [ 'shape' => 'SecondaryNetworkState', 'locationName' => 'state', ], 'StateReason' => [ 'shape' => 'String', 'locationName' => 'stateReason', ], 'Ipv4CidrBlockAssociations' => [ 'shape' => 'SecondaryNetworkIpv4CidrBlockAssociationList', 'locationName' => 'ipv4CidrBlockAssociationSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'SecondaryNetworkCidrAssociationId' => [ 'type' => 'string', ], 'SecondaryNetworkCidrBlockAssociationState' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'association-failed', 'disassociating', 'disassociated', 'disassociation-failed', ], ], 'SecondaryNetworkId' => [ 'type' => 'string', ], 'SecondaryNetworkIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryNetworkId', 'locationName' => 'item', ], ], 'SecondaryNetworkIpv4CidrBlockAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'SecondaryNetworkCidrAssociationId', 'locationName' => 'associationId', ], 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'State' => [ 'shape' => 'SecondaryNetworkCidrBlockAssociationState', 'locationName' => 'state', ], 'StateReason' => [ 'shape' => 'String', 'locationName' => 'stateReason', ], ], ], 'SecondaryNetworkIpv4CidrBlockAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryNetworkIpv4CidrBlockAssociation', 'locationName' => 'item', ], ], 'SecondaryNetworkList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryNetwork', 'locationName' => 'item', ], ], 'SecondaryNetworkState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', ], ], 'SecondaryNetworkSupportedFlag' => [ 'type' => 'boolean', ], 'SecondaryNetworkType' => [ 'type' => 'string', 'enum' => [ 'rdma', ], ], 'SecondarySubnet' => [ 'type' => 'structure', 'members' => [ 'SecondarySubnetId' => [ 'shape' => 'SecondarySubnetId', 'locationName' => 'secondarySubnetId', ], 'SecondarySubnetArn' => [ 'shape' => 'String', 'locationName' => 'secondarySubnetArn', ], 'SecondaryNetworkId' => [ 'shape' => 'SecondaryNetworkId', 'locationName' => 'secondaryNetworkId', ], 'SecondaryNetworkType' => [ 'shape' => 'SecondaryNetworkType', 'locationName' => 'secondaryNetworkType', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'availabilityZone', ], 'Ipv4CidrBlockAssociations' => [ 'shape' => 'SecondarySubnetIpv4CidrBlockAssociationList', 'locationName' => 'ipv4CidrBlockAssociationSet', ], 'State' => [ 'shape' => 'SecondarySubnetState', 'locationName' => 'state', ], 'StateReason' => [ 'shape' => 'String', 'locationName' => 'stateReason', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'SecondarySubnetCidrAssociationId' => [ 'type' => 'string', ], 'SecondarySubnetCidrBlockAssociationState' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'association-failed', 'disassociating', 'disassociated', 'disassociation-failed', ], ], 'SecondarySubnetId' => [ 'type' => 'string', ], 'SecondarySubnetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondarySubnetId', 'locationName' => 'item', ], ], 'SecondarySubnetIpv4CidrBlockAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'SecondarySubnetCidrAssociationId', 'locationName' => 'associationId', ], 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'State' => [ 'shape' => 'SecondarySubnetCidrBlockAssociationState', 'locationName' => 'state', ], 'StateReason' => [ 'shape' => 'String', 'locationName' => 'stateReason', ], ], ], 'SecondarySubnetIpv4CidrBlockAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondarySubnetIpv4CidrBlockAssociation', 'locationName' => 'item', ], ], 'SecondarySubnetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondarySubnet', 'locationName' => 'item', ], ], 'SecondarySubnetState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', ], ], 'SecretArn' => [ 'type' => 'string', 'pattern' => '^(?=.{20,2048}$)arn:aws[a-z-]*:secretsmanager:[a-z0-9-]+:\\d{12}:secret:[a-zA-Z0-9/_+=.@-]+', ], 'SecureBlob' => [ 'type' => 'blob', 'sensitive' => true, ], 'SecureBlobAttributeValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'SecureBlob', 'locationName' => 'value', ], ], ], 'SecurityGroup' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'IpPermissionsEgress' => [ 'shape' => 'IpPermissionList', 'locationName' => 'ipPermissionsEgress', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'SecurityGroupArn' => [ 'shape' => 'String', 'locationName' => 'securityGroupArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'groupDescription', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', 'locationName' => 'ipPermissions', ], ], ], 'SecurityGroupForVpc' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'PrimaryVpcId' => [ 'shape' => 'String', 'locationName' => 'primaryVpcId', ], ], ], 'SecurityGroupForVpcList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupForVpc', 'locationName' => 'item', ], ], 'SecurityGroupId' => [ 'type' => 'string', ], 'SecurityGroupIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'item', ], ], 'SecurityGroupIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'item', ], ], 'SecurityGroupIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'SecurityGroupId', ], ], 'SecurityGroupIdStringListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'SecurityGroupId', ], 'max' => 16, 'min' => 0, ], 'SecurityGroupIdentifier' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], ], ], 'SecurityGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroup', 'locationName' => 'item', ], ], 'SecurityGroupName' => [ 'type' => 'string', ], 'SecurityGroupReference' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'ReferencingVpcId' => [ 'shape' => 'String', 'locationName' => 'referencingVpcId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], ], ], 'SecurityGroupReferences' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupReference', 'locationName' => 'item', ], ], 'SecurityGroupReferencingSupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'SecurityGroupRule' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupRuleId' => [ 'shape' => 'SecurityGroupRuleId', 'locationName' => 'securityGroupRuleId', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'groupId', ], 'GroupOwnerId' => [ 'shape' => 'String', 'locationName' => 'groupOwnerId', ], 'IsEgress' => [ 'shape' => 'Boolean', 'locationName' => 'isEgress', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'CidrIpv4' => [ 'shape' => 'String', 'locationName' => 'cidrIpv4', ], 'CidrIpv6' => [ 'shape' => 'String', 'locationName' => 'cidrIpv6', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', 'locationName' => 'prefixListId', ], 'ReferencedGroupInfo' => [ 'shape' => 'ReferencedSecurityGroup', 'locationName' => 'referencedGroupInfo', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SecurityGroupRuleArn' => [ 'shape' => 'String', 'locationName' => 'securityGroupRuleArn', ], ], ], 'SecurityGroupRuleDescription' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupRuleId' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], ], ], 'SecurityGroupRuleDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupRuleDescription', 'locationName' => 'item', ], ], 'SecurityGroupRuleId' => [ 'type' => 'string', ], 'SecurityGroupRuleIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'SecurityGroupRuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupRule', 'locationName' => 'item', ], ], 'SecurityGroupRuleRequest' => [ 'type' => 'structure', 'members' => [ 'IpProtocol' => [ 'shape' => 'String', ], 'FromPort' => [ 'shape' => 'Integer', ], 'ToPort' => [ 'shape' => 'Integer', ], 'CidrIpv4' => [ 'shape' => 'String', ], 'CidrIpv6' => [ 'shape' => 'String', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'ReferencedGroupId' => [ 'shape' => 'SecurityGroupId', ], 'Description' => [ 'shape' => 'String', ], ], ], 'SecurityGroupRuleUpdate' => [ 'type' => 'structure', 'required' => [ 'SecurityGroupRuleId', ], 'members' => [ 'SecurityGroupRuleId' => [ 'shape' => 'SecurityGroupRuleId', ], 'SecurityGroupRule' => [ 'shape' => 'SecurityGroupRuleRequest', ], ], ], 'SecurityGroupRuleUpdateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupRuleUpdate', 'locationName' => 'item', ], ], 'SecurityGroupStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupName', 'locationName' => 'SecurityGroup', ], ], 'SecurityGroupVpcAssociation' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'groupId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'VpcOwnerId' => [ 'shape' => 'String', 'locationName' => 'vpcOwnerId', ], 'State' => [ 'shape' => 'SecurityGroupVpcAssociationState', 'locationName' => 'state', ], 'StateReason' => [ 'shape' => 'String', 'locationName' => 'stateReason', ], 'GroupOwnerId' => [ 'shape' => 'String', 'locationName' => 'groupOwnerId', ], ], ], 'SecurityGroupVpcAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupVpcAssociation', 'locationName' => 'item', ], ], 'SecurityGroupVpcAssociationState' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'association-failed', 'disassociating', 'disassociated', 'disassociation-failed', ], ], 'SelfServicePortal' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'SendDiagnosticInterruptRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'SensitiveMacCredentials' => [ 'type' => 'string', 'sensitive' => true, ], 'SensitiveUrl' => [ 'type' => 'string', 'sensitive' => true, ], 'SensitiveUserData' => [ 'type' => 'string', 'sensitive' => true, ], 'ServiceConfiguration' => [ 'type' => 'structure', 'members' => [ 'ServiceType' => [ 'shape' => 'ServiceTypeDetailSet', 'locationName' => 'serviceType', ], 'ServiceId' => [ 'shape' => 'String', 'locationName' => 'serviceId', ], 'ServiceName' => [ 'shape' => 'String', 'locationName' => 'serviceName', ], 'ServiceState' => [ 'shape' => 'ServiceState', 'locationName' => 'serviceState', ], 'AvailabilityZoneIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'availabilityZoneIdSet', ], 'AvailabilityZones' => [ 'shape' => 'ValueStringList', 'locationName' => 'availabilityZoneSet', ], 'AcceptanceRequired' => [ 'shape' => 'Boolean', 'locationName' => 'acceptanceRequired', ], 'ManagesVpcEndpoints' => [ 'shape' => 'Boolean', 'locationName' => 'managesVpcEndpoints', ], 'NetworkLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'networkLoadBalancerArnSet', ], 'GatewayLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'gatewayLoadBalancerArnSet', ], 'SupportedIpAddressTypes' => [ 'shape' => 'SupportedIpAddressTypes', 'locationName' => 'supportedIpAddressTypeSet', ], 'BaseEndpointDnsNames' => [ 'shape' => 'ValueStringList', 'locationName' => 'baseEndpointDnsNameSet', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PrivateDnsNameConfiguration' => [ 'shape' => 'PrivateDnsNameConfiguration', 'locationName' => 'privateDnsNameConfiguration', ], 'PayerResponsibility' => [ 'shape' => 'PayerResponsibility', 'locationName' => 'payerResponsibility', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SupportedRegions' => [ 'shape' => 'SupportedRegionSet', 'locationName' => 'supportedRegionSet', ], 'RemoteAccessEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'remoteAccessEnabled', ], ], ], 'ServiceConfigurationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceConfiguration', 'locationName' => 'item', ], ], 'ServiceConnectivityType' => [ 'type' => 'string', 'enum' => [ 'ipv4', 'ipv6', ], ], 'ServiceDetail' => [ 'type' => 'structure', 'members' => [ 'ServiceName' => [ 'shape' => 'String', 'locationName' => 'serviceName', ], 'ServiceId' => [ 'shape' => 'String', 'locationName' => 'serviceId', ], 'ServiceType' => [ 'shape' => 'ServiceTypeDetailSet', 'locationName' => 'serviceType', ], 'ServiceRegion' => [ 'shape' => 'String', 'locationName' => 'serviceRegion', ], 'AvailabilityZoneIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'availabilityZoneIdSet', ], 'AvailabilityZones' => [ 'shape' => 'ValueStringList', 'locationName' => 'availabilityZoneSet', ], 'Owner' => [ 'shape' => 'String', 'locationName' => 'owner', ], 'BaseEndpointDnsNames' => [ 'shape' => 'ValueStringList', 'locationName' => 'baseEndpointDnsNameSet', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PrivateDnsNames' => [ 'shape' => 'PrivateDnsDetailsSet', 'locationName' => 'privateDnsNameSet', ], 'VpcEndpointPolicySupported' => [ 'shape' => 'Boolean', 'locationName' => 'vpcEndpointPolicySupported', ], 'AcceptanceRequired' => [ 'shape' => 'Boolean', 'locationName' => 'acceptanceRequired', ], 'ManagesVpcEndpoints' => [ 'shape' => 'Boolean', 'locationName' => 'managesVpcEndpoints', ], 'PayerResponsibility' => [ 'shape' => 'PayerResponsibility', 'locationName' => 'payerResponsibility', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'PrivateDnsNameVerificationState' => [ 'shape' => 'DnsNameState', 'locationName' => 'privateDnsNameVerificationState', ], 'SupportedIpAddressTypes' => [ 'shape' => 'SupportedIpAddressTypes', 'locationName' => 'supportedIpAddressTypeSet', ], ], ], 'ServiceDetailSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceDetail', 'locationName' => 'item', ], ], 'ServiceLinkMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'ServiceLinkVirtualInterface' => [ 'type' => 'structure', 'members' => [ 'ServiceLinkVirtualInterfaceId' => [ 'shape' => 'ServiceLinkVirtualInterfaceId', 'locationName' => 'serviceLinkVirtualInterfaceId', ], 'ServiceLinkVirtualInterfaceArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'serviceLinkVirtualInterfaceArn', ], 'OutpostId' => [ 'shape' => 'String', 'locationName' => 'outpostId', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'LocalAddress' => [ 'shape' => 'String', 'locationName' => 'localAddress', ], 'PeerAddress' => [ 'shape' => 'String', 'locationName' => 'peerAddress', ], 'PeerBgpAsn' => [ 'shape' => 'Long', 'locationName' => 'peerBgpAsn', ], 'Vlan' => [ 'shape' => 'Integer', 'locationName' => 'vlan', ], 'OutpostLagId' => [ 'shape' => 'OutpostLagId', 'locationName' => 'outpostLagId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'ConfigurationState' => [ 'shape' => 'ServiceLinkVirtualInterfaceConfigurationState', 'locationName' => 'configurationState', ], ], ], 'ServiceLinkVirtualInterfaceConfigurationState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'ServiceLinkVirtualInterfaceId' => [ 'type' => 'string', ], 'ServiceLinkVirtualInterfaceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceLinkVirtualInterfaceId', 'locationName' => 'item', ], ], 'ServiceLinkVirtualInterfaceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceLinkVirtualInterface', 'locationName' => 'item', ], ], 'ServiceManaged' => [ 'type' => 'string', 'enum' => [ 'alb', 'nlb', 'rnat', 'rds', ], ], 'ServiceNetworkArn' => [ 'type' => 'string', ], 'ServiceState' => [ 'type' => 'string', 'enum' => [ 'Pending', 'Available', 'Deleting', 'Deleted', 'Failed', ], ], 'ServiceType' => [ 'type' => 'string', 'enum' => [ 'Interface', 'Gateway', 'GatewayLoadBalancer', ], ], 'ServiceTypeDetail' => [ 'type' => 'structure', 'members' => [ 'ServiceType' => [ 'shape' => 'ServiceType', 'locationName' => 'serviceType', ], ], ], 'ServiceTypeDetailSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceTypeDetail', 'locationName' => 'item', ], ], 'ShutdownBehavior' => [ 'type' => 'string', 'enum' => [ 'stop', 'terminate', ], ], 'SlotDateTimeRangeRequest' => [ 'type' => 'structure', 'required' => [ 'EarliestTime', 'LatestTime', ], 'members' => [ 'EarliestTime' => [ 'shape' => 'DateTime', ], 'LatestTime' => [ 'shape' => 'DateTime', ], ], ], 'SlotStartTimeRangeRequest' => [ 'type' => 'structure', 'members' => [ 'EarliestTime' => [ 'shape' => 'DateTime', ], 'LatestTime' => [ 'shape' => 'DateTime', ], ], ], 'Snapshot' => [ 'type' => 'structure', 'members' => [ 'OwnerAlias' => [ 'shape' => 'String', 'locationName' => 'ownerAlias', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'StorageTier' => [ 'shape' => 'StorageTier', 'locationName' => 'storageTier', ], 'RestoreExpiryTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'restoreExpiryTime', ], 'SseType' => [ 'shape' => 'SSEType', 'locationName' => 'sseType', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'TransferType' => [ 'shape' => 'TransferType', 'locationName' => 'transferType', ], 'CompletionDurationMinutes' => [ 'shape' => 'SnapshotCompletionDurationMinutesResponse', 'locationName' => 'completionDurationMinutes', ], 'CompletionTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'completionTime', ], 'FullSnapshotSizeInBytes' => [ 'shape' => 'Long', 'locationName' => 'fullSnapshotSizeInBytes', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'State' => [ 'shape' => 'SnapshotState', 'locationName' => 'status', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'VolumeSize' => [ 'shape' => 'Integer', 'locationName' => 'volumeSize', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], 'DataEncryptionKeyId' => [ 'shape' => 'String', 'locationName' => 'dataEncryptionKeyId', ], ], ], 'SnapshotAttributeName' => [ 'type' => 'string', 'enum' => [ 'productCodes', 'createVolumePermission', ], ], 'SnapshotBlockPublicAccessState' => [ 'type' => 'string', 'enum' => [ 'block-all-sharing', 'block-new-sharing', 'unblocked', ], ], 'SnapshotCompletionDurationMinutesRequest' => [ 'type' => 'integer', 'max' => 2880, 'min' => 1, ], 'SnapshotCompletionDurationMinutesResponse' => [ 'type' => 'integer', ], 'SnapshotDetail' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'DiskImageSize' => [ 'shape' => 'Double', 'locationName' => 'diskImageSize', ], 'Format' => [ 'shape' => 'String', 'locationName' => 'format', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Url' => [ 'shape' => 'SensitiveUrl', 'locationName' => 'url', ], 'UserBucket' => [ 'shape' => 'UserBucketDetails', 'locationName' => 'userBucket', ], ], ], 'SnapshotDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SnapshotDetail', 'locationName' => 'item', ], ], 'SnapshotDiskContainer' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', ], 'Format' => [ 'shape' => 'String', ], 'Url' => [ 'shape' => 'SensitiveUrl', ], 'UserBucket' => [ 'shape' => 'UserBucket', ], ], ], 'SnapshotId' => [ 'type' => 'string', ], 'SnapshotIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SnapshotId', 'locationName' => 'SnapshotId', ], ], 'SnapshotInfo' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'State' => [ 'shape' => 'SnapshotState', 'locationName' => 'state', ], 'VolumeSize' => [ 'shape' => 'Integer', 'locationName' => 'volumeSize', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startTime', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'SseType' => [ 'shape' => 'SSEType', 'locationName' => 'sseType', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], ], ], 'SnapshotList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Snapshot', 'locationName' => 'item', ], ], 'SnapshotLocationEnum' => [ 'type' => 'string', 'enum' => [ 'regional', 'local', ], ], 'SnapshotRecycleBinInfo' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'RecycleBinEnterTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'recycleBinEnterTime', ], 'RecycleBinExitTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'recycleBinExitTime', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], ], ], 'SnapshotRecycleBinInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SnapshotRecycleBinInfo', 'locationName' => 'item', ], ], 'SnapshotReturnCodes' => [ 'type' => 'string', 'enum' => [ 'success', 'skipped', 'missing-permissions', 'internal-error', 'client-error', ], ], 'SnapshotSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SnapshotInfo', 'locationName' => 'item', ], ], 'SnapshotState' => [ 'type' => 'string', 'enum' => [ 'pending', 'completed', 'error', 'recoverable', 'recovering', ], ], 'SnapshotTaskDetail' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DiskImageSize' => [ 'shape' => 'Double', 'locationName' => 'diskImageSize', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'Format' => [ 'shape' => 'String', 'locationName' => 'format', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Url' => [ 'shape' => 'SensitiveUrl', 'locationName' => 'url', ], 'UserBucket' => [ 'shape' => 'UserBucketDetails', 'locationName' => 'userBucket', ], ], ], 'SnapshotTierStatus' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', 'locationName' => 'snapshotId', ], 'VolumeId' => [ 'shape' => 'VolumeId', 'locationName' => 'volumeId', ], 'Status' => [ 'shape' => 'SnapshotState', 'locationName' => 'status', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'StorageTier' => [ 'shape' => 'StorageTier', 'locationName' => 'storageTier', ], 'LastTieringStartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastTieringStartTime', ], 'LastTieringProgress' => [ 'shape' => 'Integer', 'locationName' => 'lastTieringProgress', ], 'LastTieringOperationStatus' => [ 'shape' => 'TieringOperationStatus', 'locationName' => 'lastTieringOperationStatus', ], 'LastTieringOperationStatusDetail' => [ 'shape' => 'String', 'locationName' => 'lastTieringOperationStatusDetail', ], 'ArchivalCompleteTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'archivalCompleteTime', ], 'RestoreExpiryTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'restoreExpiryTime', ], ], ], 'SpotAllocationStrategy' => [ 'type' => 'string', 'enum' => [ 'lowest-price', 'diversified', 'capacity-optimized', 'capacity-optimized-prioritized', 'price-capacity-optimized', ], ], 'SpotCapacityRebalance' => [ 'type' => 'structure', 'members' => [ 'ReplacementStrategy' => [ 'shape' => 'ReplacementStrategy', 'locationName' => 'replacementStrategy', ], 'TerminationDelay' => [ 'shape' => 'Integer', 'locationName' => 'terminationDelay', ], ], ], 'SpotDatafeedSubscription' => [ 'type' => 'structure', 'members' => [ 'Bucket' => [ 'shape' => 'String', 'locationName' => 'bucket', ], 'Fault' => [ 'shape' => 'SpotInstanceStateFault', 'locationName' => 'fault', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Prefix' => [ 'shape' => 'String', 'locationName' => 'prefix', ], 'State' => [ 'shape' => 'DatafeedSubscriptionState', 'locationName' => 'state', ], ], ], 'SpotFleetLaunchSpecification' => [ 'type' => 'structure', 'members' => [ 'AddressingType' => [ 'shape' => 'String', 'locationName' => 'addressingType', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'KeyName' => [ 'shape' => 'KeyPairName', 'locationName' => 'keyName', ], 'Monitoring' => [ 'shape' => 'SpotFleetMonitoring', 'locationName' => 'monitoring', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceSpecificationList', 'locationName' => 'networkInterfaceSet', ], 'Placement' => [ 'shape' => 'SpotPlacement', 'locationName' => 'placement', ], 'RamdiskId' => [ 'shape' => 'String', 'locationName' => 'ramdiskId', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'UserData' => [ 'shape' => 'SensitiveUserData', 'locationName' => 'userData', ], 'WeightedCapacity' => [ 'shape' => 'Double', 'locationName' => 'weightedCapacity', ], 'TagSpecifications' => [ 'shape' => 'SpotFleetTagSpecificationList', 'locationName' => 'tagSpecificationSet', ], 'InstanceRequirements' => [ 'shape' => 'InstanceRequirements', 'locationName' => 'instanceRequirements', ], 'SecurityGroups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], ], ], 'SpotFleetMonitoring' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], ], ], 'SpotFleetRequestConfig' => [ 'type' => 'structure', 'members' => [ 'ActivityStatus' => [ 'shape' => 'ActivityStatus', 'locationName' => 'activityStatus', ], 'CreateTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createTime', ], 'SpotFleetRequestConfig' => [ 'shape' => 'SpotFleetRequestConfigData', 'locationName' => 'spotFleetRequestConfig', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], 'SpotFleetRequestState' => [ 'shape' => 'BatchState', 'locationName' => 'spotFleetRequestState', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'SpotFleetRequestConfigData' => [ 'type' => 'structure', 'required' => [ 'IamFleetRole', 'TargetCapacity', ], 'members' => [ 'AllocationStrategy' => [ 'shape' => 'AllocationStrategy', 'locationName' => 'allocationStrategy', ], 'OnDemandAllocationStrategy' => [ 'shape' => 'OnDemandAllocationStrategy', 'locationName' => 'onDemandAllocationStrategy', ], 'SpotMaintenanceStrategies' => [ 'shape' => 'SpotMaintenanceStrategies', 'locationName' => 'spotMaintenanceStrategies', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'ExcessCapacityTerminationPolicy', 'locationName' => 'excessCapacityTerminationPolicy', ], 'FulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'fulfilledCapacity', ], 'OnDemandFulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'onDemandFulfilledCapacity', ], 'IamFleetRole' => [ 'shape' => 'String', 'locationName' => 'iamFleetRole', ], 'LaunchSpecifications' => [ 'shape' => 'LaunchSpecsList', 'locationName' => 'launchSpecifications', ], 'LaunchTemplateConfigs' => [ 'shape' => 'LaunchTemplateConfigList', 'locationName' => 'launchTemplateConfigs', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'TargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'targetCapacity', ], 'OnDemandTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'onDemandTargetCapacity', ], 'OnDemandMaxTotalPrice' => [ 'shape' => 'String', 'locationName' => 'onDemandMaxTotalPrice', ], 'SpotMaxTotalPrice' => [ 'shape' => 'String', 'locationName' => 'spotMaxTotalPrice', ], 'TerminateInstancesWithExpiration' => [ 'shape' => 'Boolean', 'locationName' => 'terminateInstancesWithExpiration', ], 'Type' => [ 'shape' => 'FleetType', 'locationName' => 'type', ], 'ValidFrom' => [ 'shape' => 'DateTime', 'locationName' => 'validFrom', ], 'ValidUntil' => [ 'shape' => 'DateTime', 'locationName' => 'validUntil', ], 'ReplaceUnhealthyInstances' => [ 'shape' => 'Boolean', 'locationName' => 'replaceUnhealthyInstances', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', 'locationName' => 'instanceInterruptionBehavior', ], 'LoadBalancersConfig' => [ 'shape' => 'LoadBalancersConfig', 'locationName' => 'loadBalancersConfig', ], 'InstancePoolsToUseCount' => [ 'shape' => 'Integer', 'locationName' => 'instancePoolsToUseCount', ], 'Context' => [ 'shape' => 'String', 'locationName' => 'context', ], 'TargetCapacityUnitType' => [ 'shape' => 'TargetCapacityUnitType', 'locationName' => 'targetCapacityUnitType', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'SpotFleetRequestConfigSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotFleetRequestConfig', 'locationName' => 'item', ], ], 'SpotFleetRequestId' => [ 'type' => 'string', ], 'SpotFleetRequestIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotFleetRequestId', 'locationName' => 'item', ], ], 'SpotFleetTagSpecification' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', 'locationName' => 'resourceType', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tag', ], ], ], 'SpotFleetTagSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotFleetTagSpecification', 'locationName' => 'item', ], ], 'SpotInstanceInterruptionBehavior' => [ 'type' => 'string', 'enum' => [ 'hibernate', 'stop', 'terminate', ], ], 'SpotInstanceRequest' => [ 'type' => 'structure', 'members' => [ 'ActualBlockHourlyPrice' => [ 'shape' => 'String', 'locationName' => 'actualBlockHourlyPrice', ], 'AvailabilityZoneGroup' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneGroup', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'blockDurationMinutes', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'Fault' => [ 'shape' => 'SpotInstanceStateFault', 'locationName' => 'fault', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'LaunchGroup' => [ 'shape' => 'String', 'locationName' => 'launchGroup', ], 'LaunchSpecification' => [ 'shape' => 'LaunchSpecification', 'locationName' => 'launchSpecification', ], 'LaunchedAvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'launchedAvailabilityZone', ], 'LaunchedAvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'launchedAvailabilityZoneId', ], 'ProductDescription' => [ 'shape' => 'RIProductDescription', 'locationName' => 'productDescription', ], 'SpotInstanceRequestId' => [ 'shape' => 'String', 'locationName' => 'spotInstanceRequestId', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'State' => [ 'shape' => 'SpotInstanceState', 'locationName' => 'state', ], 'Status' => [ 'shape' => 'SpotInstanceStatus', 'locationName' => 'status', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'Type' => [ 'shape' => 'SpotInstanceType', 'locationName' => 'type', ], 'ValidFrom' => [ 'shape' => 'DateTime', 'locationName' => 'validFrom', ], 'ValidUntil' => [ 'shape' => 'DateTime', 'locationName' => 'validUntil', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', 'locationName' => 'instanceInterruptionBehavior', ], ], ], 'SpotInstanceRequestId' => [ 'type' => 'string', ], 'SpotInstanceRequestIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotInstanceRequestId', 'locationName' => 'SpotInstanceRequestId', ], ], 'SpotInstanceRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotInstanceRequest', 'locationName' => 'item', ], ], 'SpotInstanceState' => [ 'type' => 'string', 'enum' => [ 'open', 'active', 'closed', 'cancelled', 'failed', 'disabled', ], ], 'SpotInstanceStateFault' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'SpotInstanceStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], 'UpdateTime' => [ 'shape' => 'DateTime', 'locationName' => 'updateTime', ], ], ], 'SpotInstanceType' => [ 'type' => 'string', 'enum' => [ 'one-time', 'persistent', ], ], 'SpotMaintenanceStrategies' => [ 'type' => 'structure', 'members' => [ 'CapacityRebalance' => [ 'shape' => 'SpotCapacityRebalance', 'locationName' => 'capacityRebalance', ], ], ], 'SpotMarketOptions' => [ 'type' => 'structure', 'members' => [ 'MaxPrice' => [ 'shape' => 'String', ], 'SpotInstanceType' => [ 'shape' => 'SpotInstanceType', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', ], 'ValidUntil' => [ 'shape' => 'DateTime', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', ], ], ], 'SpotOptions' => [ 'type' => 'structure', 'members' => [ 'AllocationStrategy' => [ 'shape' => 'SpotAllocationStrategy', 'locationName' => 'allocationStrategy', ], 'MaintenanceStrategies' => [ 'shape' => 'FleetSpotMaintenanceStrategies', 'locationName' => 'maintenanceStrategies', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'SpotInstanceInterruptionBehavior', 'locationName' => 'instanceInterruptionBehavior', ], 'InstancePoolsToUseCount' => [ 'shape' => 'Integer', 'locationName' => 'instancePoolsToUseCount', ], 'SingleInstanceType' => [ 'shape' => 'Boolean', 'locationName' => 'singleInstanceType', ], 'SingleAvailabilityZone' => [ 'shape' => 'Boolean', 'locationName' => 'singleAvailabilityZone', ], 'MinTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'minTargetCapacity', ], 'MaxTotalPrice' => [ 'shape' => 'String', 'locationName' => 'maxTotalPrice', ], ], ], 'SpotOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AllocationStrategy' => [ 'shape' => 'SpotAllocationStrategy', ], 'MaintenanceStrategies' => [ 'shape' => 'FleetSpotMaintenanceStrategiesRequest', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'SpotInstanceInterruptionBehavior', ], 'InstancePoolsToUseCount' => [ 'shape' => 'Integer', ], 'SingleInstanceType' => [ 'shape' => 'Boolean', ], 'SingleAvailabilityZone' => [ 'shape' => 'Boolean', ], 'MinTargetCapacity' => [ 'shape' => 'Integer', ], 'MaxTotalPrice' => [ 'shape' => 'String', ], ], ], 'SpotPlacement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'GroupName' => [ 'shape' => 'PlacementGroupName', 'locationName' => 'groupName', ], 'Tenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'tenancy', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], ], ], 'SpotPlacementScore' => [ 'type' => 'structure', 'members' => [ 'Region' => [ 'shape' => 'String', 'locationName' => 'region', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'Score' => [ 'shape' => 'Integer', 'locationName' => 'score', ], ], ], 'SpotPlacementScores' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotPlacementScore', 'locationName' => 'item', ], ], 'SpotPlacementScoresMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 10, ], 'SpotPlacementScoresTargetCapacity' => [ 'type' => 'integer', 'max' => 2000000000, 'min' => 1, ], 'SpotPrice' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'ProductDescription' => [ 'shape' => 'RIProductDescription', 'locationName' => 'productDescription', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], ], ], 'SpotPriceHistoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotPrice', 'locationName' => 'item', ], ], 'SpreadLevel' => [ 'type' => 'string', 'enum' => [ 'host', 'rack', ], ], 'SqlServerLicenseUsage' => [ 'type' => 'string', 'enum' => [ 'full', 'waived', ], ], 'StaleIpPermission' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'IpRanges' => [ 'shape' => 'IpRanges', 'locationName' => 'ipRanges', ], 'PrefixListIds' => [ 'shape' => 'PrefixListIdSet', 'locationName' => 'prefixListIds', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'UserIdGroupPairs' => [ 'shape' => 'UserIdGroupPairSet', 'locationName' => 'groups', ], ], ], 'StaleIpPermissionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'StaleIpPermission', 'locationName' => 'item', ], ], 'StaleSecurityGroup' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'StaleIpPermissions' => [ 'shape' => 'StaleIpPermissionSet', 'locationName' => 'staleIpPermissions', ], 'StaleIpPermissionsEgress' => [ 'shape' => 'StaleIpPermissionSet', 'locationName' => 'staleIpPermissionsEgress', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'StaleSecurityGroupSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'StaleSecurityGroup', 'locationName' => 'item', ], ], 'StartDeclarativePoliciesReportRequest' => [ 'type' => 'structure', 'required' => [ 'S3Bucket', 'TargetId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'S3Bucket' => [ 'shape' => 'String', ], 'S3Prefix' => [ 'shape' => 'String', ], 'TargetId' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'StartDeclarativePoliciesReportResult' => [ 'type' => 'structure', 'members' => [ 'ReportId' => [ 'shape' => 'String', 'locationName' => 'reportId', ], ], ], 'StartInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'AdditionalInfo' => [ 'shape' => 'String', 'locationName' => 'additionalInfo', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'StartInstancesResult' => [ 'type' => 'structure', 'members' => [ 'StartingInstances' => [ 'shape' => 'InstanceStateChangeList', 'locationName' => 'instancesSet', ], ], ], 'StartNetworkInsightsAccessScopeAnalysisRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInsightsAccessScopeId', 'ClientToken', ], 'members' => [ 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'StartNetworkInsightsAccessScopeAnalysisResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeAnalysis' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysis', 'locationName' => 'networkInsightsAccessScopeAnalysis', ], ], ], 'StartNetworkInsightsAnalysisRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInsightsPathId', 'ClientToken', ], 'members' => [ 'NetworkInsightsPathId' => [ 'shape' => 'NetworkInsightsPathId', ], 'AdditionalAccounts' => [ 'shape' => 'ValueStringList', 'locationName' => 'AdditionalAccount', ], 'FilterInArns' => [ 'shape' => 'ArnList', 'locationName' => 'FilterInArn', ], 'FilterOutArns' => [ 'shape' => 'ArnList', 'locationName' => 'FilterOutArn', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'StartNetworkInsightsAnalysisResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAnalysis' => [ 'shape' => 'NetworkInsightsAnalysis', 'locationName' => 'networkInsightsAnalysis', ], ], ], 'StartVpcEndpointServicePrivateDnsVerificationRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], ], ], 'StartVpcEndpointServicePrivateDnsVerificationResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'State' => [ 'type' => 'string', 'enum' => [ 'PendingAcceptance', 'Pending', 'Available', 'Deleting', 'Deleted', 'Rejected', 'Failed', 'Expired', 'Partial', ], ], 'StateReason' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'StaticSourcesSupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'StatisticType' => [ 'type' => 'string', 'enum' => [ 'p50', ], ], 'Status' => [ 'type' => 'string', 'enum' => [ 'MoveInProgress', 'InVpc', 'InClassic', ], ], 'StatusName' => [ 'type' => 'string', 'enum' => [ 'reachability', ], ], 'StatusType' => [ 'type' => 'string', 'enum' => [ 'passed', 'failed', 'insufficient-data', 'initializing', ], ], 'StopInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'Hibernate' => [ 'shape' => 'Boolean', ], 'SkipOsShutdown' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Force' => [ 'shape' => 'Boolean', 'locationName' => 'force', ], ], ], 'StopInstancesResult' => [ 'type' => 'structure', 'members' => [ 'StoppingInstances' => [ 'shape' => 'InstanceStateChangeList', 'locationName' => 'instancesSet', ], ], ], 'Storage' => [ 'type' => 'structure', 'members' => [ 'S3' => [ 'shape' => 'S3Storage', ], ], ], 'StorageLocation' => [ 'type' => 'structure', 'members' => [ 'Bucket' => [ 'shape' => 'String', ], 'Key' => [ 'shape' => 'String', ], ], ], 'StorageTier' => [ 'type' => 'string', 'enum' => [ 'archive', 'standard', ], ], 'StoreImageTaskResult' => [ 'type' => 'structure', 'members' => [ 'AmiId' => [ 'shape' => 'String', 'locationName' => 'amiId', ], 'TaskStartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'taskStartTime', ], 'Bucket' => [ 'shape' => 'String', 'locationName' => 'bucket', ], 'S3objectKey' => [ 'shape' => 'String', 'locationName' => 's3objectKey', ], 'ProgressPercentage' => [ 'shape' => 'Integer', 'locationName' => 'progressPercentage', ], 'StoreTaskState' => [ 'shape' => 'String', 'locationName' => 'storeTaskState', ], 'StoreTaskFailureReason' => [ 'shape' => 'String', 'locationName' => 'storeTaskFailureReason', ], ], ], 'StoreImageTaskResultSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'StoreImageTaskResult', 'locationName' => 'item', ], ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'Subnet' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'EnableLniAtDeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'enableLniAtDeviceIndex', ], 'MapCustomerOwnedIpOnLaunch' => [ 'shape' => 'Boolean', 'locationName' => 'mapCustomerOwnedIpOnLaunch', ], 'CustomerOwnedIpv4Pool' => [ 'shape' => 'CoipPoolId', 'locationName' => 'customerOwnedIpv4Pool', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'AssignIpv6AddressOnCreation' => [ 'shape' => 'Boolean', 'locationName' => 'assignIpv6AddressOnCreation', ], 'Ipv6CidrBlockAssociationSet' => [ 'shape' => 'SubnetIpv6CidrBlockAssociationSet', 'locationName' => 'ipv6CidrBlockAssociationSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SubnetArn' => [ 'shape' => 'String', 'locationName' => 'subnetArn', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'EnableDns64' => [ 'shape' => 'Boolean', 'locationName' => 'enableDns64', ], 'Ipv6Native' => [ 'shape' => 'Boolean', 'locationName' => 'ipv6Native', ], 'PrivateDnsNameOptionsOnLaunch' => [ 'shape' => 'PrivateDnsNameOptionsOnLaunch', 'locationName' => 'privateDnsNameOptionsOnLaunch', ], 'BlockPublicAccessStates' => [ 'shape' => 'BlockPublicAccessStates', 'locationName' => 'blockPublicAccessStates', ], 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'State' => [ 'shape' => 'SubnetState', 'locationName' => 'state', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'AvailableIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'availableIpAddressCount', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'DefaultForAz' => [ 'shape' => 'Boolean', 'locationName' => 'defaultForAz', ], 'MapPublicIpOnLaunch' => [ 'shape' => 'Boolean', 'locationName' => 'mapPublicIpOnLaunch', ], ], ], 'SubnetAssociation' => [ 'type' => 'structure', 'members' => [ 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'State' => [ 'shape' => 'TransitGatewayMulitcastDomainAssociationState', 'locationName' => 'state', ], ], ], 'SubnetAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetAssociation', 'locationName' => 'item', ], ], 'SubnetCidrAssociationId' => [ 'type' => 'string', ], 'SubnetCidrBlockState' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'SubnetCidrBlockStateCode', 'locationName' => 'state', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], ], ], 'SubnetCidrBlockStateCode' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', 'disassociated', 'failing', 'failed', ], ], 'SubnetCidrReservation' => [ 'type' => 'structure', 'members' => [ 'SubnetCidrReservationId' => [ 'shape' => 'SubnetCidrReservationId', 'locationName' => 'subnetCidrReservationId', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'ReservationType' => [ 'shape' => 'SubnetCidrReservationType', 'locationName' => 'reservationType', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'SubnetCidrReservationId' => [ 'type' => 'string', ], 'SubnetCidrReservationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetCidrReservation', 'locationName' => 'item', ], ], 'SubnetCidrReservationType' => [ 'type' => 'string', 'enum' => [ 'prefix', 'explicit', ], ], 'SubnetConfiguration' => [ 'type' => 'structure', 'members' => [ 'SubnetId' => [ 'shape' => 'SubnetId', ], 'Ipv4' => [ 'shape' => 'String', ], 'Ipv6' => [ 'shape' => 'String', ], ], ], 'SubnetConfigurationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetConfiguration', 'locationName' => 'item', ], ], 'SubnetId' => [ 'type' => 'string', ], 'SubnetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', 'locationName' => 'AssociatedSubnetId', ], ], 'SubnetIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', 'locationName' => 'SubnetId', ], ], 'SubnetIpPrefixes' => [ 'type' => 'structure', 'members' => [ 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'IpPrefixes' => [ 'shape' => 'ValueStringList', 'locationName' => 'ipPrefixSet', ], ], ], 'SubnetIpPrefixesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetIpPrefixes', 'locationName' => 'item', ], ], 'SubnetIpv6CidrBlockAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'SubnetCidrAssociationId', 'locationName' => 'associationId', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], 'Ipv6CidrBlockState' => [ 'shape' => 'SubnetCidrBlockState', 'locationName' => 'ipv6CidrBlockState', ], 'Ipv6AddressAttribute' => [ 'shape' => 'Ipv6AddressAttribute', 'locationName' => 'ipv6AddressAttribute', ], 'IpSource' => [ 'shape' => 'IpSource', 'locationName' => 'ipSource', ], ], ], 'SubnetIpv6CidrBlockAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetIpv6CidrBlockAssociation', 'locationName' => 'item', ], ], 'SubnetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Subnet', 'locationName' => 'item', ], ], 'SubnetState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'unavailable', 'failed', 'failed-insufficient-capacity', ], ], 'Subscription' => [ 'type' => 'structure', 'members' => [ 'Source' => [ 'shape' => 'String', 'locationName' => 'source', ], 'Destination' => [ 'shape' => 'String', 'locationName' => 'destination', ], 'Metric' => [ 'shape' => 'MetricType', 'locationName' => 'metric', ], 'Statistic' => [ 'shape' => 'StatisticType', 'locationName' => 'statistic', ], 'Period' => [ 'shape' => 'PeriodType', 'locationName' => 'period', ], ], ], 'SubscriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Subscription', 'locationName' => 'item', ], ], 'SuccessfulInstanceCreditSpecificationItem' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], ], ], 'SuccessfulInstanceCreditSpecificationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SuccessfulInstanceCreditSpecificationItem', 'locationName' => 'item', ], ], 'SuccessfulQueuedPurchaseDeletion' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], ], ], 'SuccessfulQueuedPurchaseDeletionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SuccessfulQueuedPurchaseDeletion', 'locationName' => 'item', ], ], 'SummaryStatus' => [ 'type' => 'string', 'enum' => [ 'ok', 'impaired', 'insufficient-data', 'not-applicable', 'initializing', ], ], 'SupportedAdditionalProcessorFeature' => [ 'type' => 'string', 'enum' => [ 'amd-sev-snp', 'nested-virtualization', ], ], 'SupportedAdditionalProcessorFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SupportedAdditionalProcessorFeature', 'locationName' => 'item', ], ], 'SupportedInRegion' => [ 'type' => 'boolean', ], 'SupportedIpAddressTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceConnectivityType', 'locationName' => 'item', ], 'max' => 2, 'min' => 0, ], 'SupportedRegionDetail' => [ 'type' => 'structure', 'members' => [ 'Region' => [ 'shape' => 'String', 'locationName' => 'region', ], 'ServiceState' => [ 'shape' => 'String', 'locationName' => 'serviceState', ], ], ], 'SupportedRegionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SupportedRegionDetail', 'locationName' => 'item', ], ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'TagDescription' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'ResourceType', 'locationName' => 'resourceType', ], 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'TagDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagDescription', 'locationName' => 'item', ], ], 'TagFieldSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagFieldSpecificationRequest', 'locationName' => 'item', ], 'max' => 3, 'min' => 1, ], 'TagFieldSpecificationListResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagFieldSpecificationResponse', 'locationName' => 'item', ], 'max' => 3, 'min' => 1, ], 'TagFieldSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'TaggableResourceType', ], 'TagKeys' => [ 'shape' => 'TagKeyList', 'locationName' => 'TagKey', ], ], ], 'TagFieldSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'TaggableResourceType', 'locationName' => 'resourceType', ], 'TagKeys' => [ 'shape' => 'TagKeyList', 'locationName' => 'tagKeySet', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', 'locationName' => 'item', ], 'max' => 2, 'min' => 1, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', 'locationName' => 'item', ], ], 'TagSpecification' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', 'locationName' => 'resourceType', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'Tag', ], ], ], 'TagSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagSpecification', 'locationName' => 'item', ], ], 'TaggableResourceId' => [ 'type' => 'string', ], 'TaggableResourceType' => [ 'type' => 'string', 'enum' => [ 'network-interface', 'instance', 'auto-scaling-group', ], ], 'TargetCapacitySpecification' => [ 'type' => 'structure', 'members' => [ 'TotalTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalTargetCapacity', ], 'OnDemandTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'onDemandTargetCapacity', ], 'SpotTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'spotTargetCapacity', ], 'DefaultTargetCapacityType' => [ 'shape' => 'DefaultTargetCapacityType', 'locationName' => 'defaultTargetCapacityType', ], 'TargetCapacityUnitType' => [ 'shape' => 'TargetCapacityUnitType', 'locationName' => 'targetCapacityUnitType', ], ], ], 'TargetCapacitySpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'TotalTargetCapacity', ], 'members' => [ 'TotalTargetCapacity' => [ 'shape' => 'Integer', ], 'OnDemandTargetCapacity' => [ 'shape' => 'Integer', ], 'SpotTargetCapacity' => [ 'shape' => 'Integer', ], 'DefaultTargetCapacityType' => [ 'shape' => 'DefaultTargetCapacityType', ], 'TargetCapacityUnitType' => [ 'shape' => 'TargetCapacityUnitType', ], ], ], 'TargetCapacityUnitType' => [ 'type' => 'string', 'enum' => [ 'vcpu', 'memory-mib', 'units', ], ], 'TargetConfiguration' => [ 'type' => 'structure', 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'OfferingId' => [ 'shape' => 'String', 'locationName' => 'offeringId', ], ], ], 'TargetConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'OfferingId', ], 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', ], 'OfferingId' => [ 'shape' => 'ReservedInstancesOfferingId', ], ], ], 'TargetConfigurationRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetConfigurationRequest', 'locationName' => 'TargetConfigurationRequest', ], ], 'TargetGroup' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], ], ], 'TargetGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetGroup', 'locationName' => 'item', ], 'max' => 5, 'min' => 1, ], 'TargetGroupsConfig' => [ 'type' => 'structure', 'members' => [ 'TargetGroups' => [ 'shape' => 'TargetGroups', 'locationName' => 'targetGroups', ], ], ], 'TargetNetwork' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'TargetNetworkId' => [ 'shape' => 'String', 'locationName' => 'targetNetworkId', ], 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Status' => [ 'shape' => 'AssociationStatus', 'locationName' => 'status', ], 'SecurityGroups' => [ 'shape' => 'ValueStringList', 'locationName' => 'securityGroups', ], 'AvailabilityZones' => [ 'shape' => 'ClientVpnAvailabilityZoneSet', 'locationName' => 'availabilityZoneSet', ], 'AvailabilityZoneIds' => [ 'shape' => 'ClientVpnAvailabilityZoneIdSet', 'locationName' => 'availabilityZoneIdSet', ], ], ], 'TargetNetworkSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetNetwork', 'locationName' => 'item', ], ], 'TargetReservationValue' => [ 'type' => 'structure', 'members' => [ 'ReservationValue' => [ 'shape' => 'ReservationValue', 'locationName' => 'reservationValue', ], 'TargetConfiguration' => [ 'shape' => 'TargetConfiguration', 'locationName' => 'targetConfiguration', ], ], ], 'TargetReservationValueSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetReservationValue', 'locationName' => 'item', ], ], 'TargetStorageTier' => [ 'type' => 'string', 'enum' => [ 'archive', ], ], 'TelemetryStatus' => [ 'type' => 'string', 'enum' => [ 'UP', 'DOWN', ], ], 'Tenancy' => [ 'type' => 'string', 'enum' => [ 'default', 'dedicated', 'host', ], ], 'TerminateClientVpnConnectionsRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'ConnectionId' => [ 'shape' => 'String', ], 'Username' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'TerminateClientVpnConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Username' => [ 'shape' => 'String', 'locationName' => 'username', ], 'ConnectionStatuses' => [ 'shape' => 'TerminateConnectionStatusSet', 'locationName' => 'connectionStatuses', ], ], ], 'TerminateConnectionStatus' => [ 'type' => 'structure', 'members' => [ 'ConnectionId' => [ 'shape' => 'String', 'locationName' => 'connectionId', ], 'PreviousStatus' => [ 'shape' => 'ClientVpnConnectionStatus', 'locationName' => 'previousStatus', ], 'CurrentStatus' => [ 'shape' => 'ClientVpnConnectionStatus', 'locationName' => 'currentStatus', ], ], ], 'TerminateConnectionStatusSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TerminateConnectionStatus', 'locationName' => 'item', ], ], 'TerminateInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'Force' => [ 'shape' => 'Boolean', ], 'SkipOsShutdown' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'TerminateInstancesResult' => [ 'type' => 'structure', 'members' => [ 'TerminatingInstances' => [ 'shape' => 'InstanceStateChangeList', 'locationName' => 'instancesSet', ], ], ], 'ThreadsPerCore' => [ 'type' => 'integer', ], 'ThreadsPerCoreList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ThreadsPerCore', 'locationName' => 'item', ], ], 'ThroughResourcesStatement' => [ 'type' => 'structure', 'members' => [ 'ResourceStatement' => [ 'shape' => 'ResourceStatement', 'locationName' => 'resourceStatement', ], ], ], 'ThroughResourcesStatementList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ThroughResourcesStatement', 'locationName' => 'item', ], ], 'ThroughResourcesStatementRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceStatement' => [ 'shape' => 'ResourceStatementRequest', ], ], ], 'ThroughResourcesStatementRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ThroughResourcesStatementRequest', 'locationName' => 'item', ], ], 'TieringOperationStatus' => [ 'type' => 'string', 'enum' => [ 'archival-in-progress', 'archival-completed', 'archival-failed', 'temporary-restore-in-progress', 'temporary-restore-completed', 'temporary-restore-failed', 'permanent-restore-in-progress', 'permanent-restore-completed', 'permanent-restore-failed', ], ], 'TokenState' => [ 'type' => 'string', 'enum' => [ 'valid', 'expired', ], ], 'TotalLocalStorageGB' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Double', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Double', 'locationName' => 'max', ], ], ], 'TotalLocalStorageGBRequest' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Double', ], 'Max' => [ 'shape' => 'Double', ], ], ], 'TotalMediaMemory' => [ 'type' => 'integer', ], 'TotalNeuronMemory' => [ 'type' => 'integer', ], 'TpmSupportValues' => [ 'type' => 'string', 'enum' => [ 'v2.0', ], ], 'TrafficDirection' => [ 'type' => 'string', 'enum' => [ 'ingress', 'egress', ], ], 'TrafficIpAddressType' => [ 'type' => 'string', 'enum' => [ 'ipv4', 'ipv6', 'dual-stack', ], ], 'TrafficMirrorFilter' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorFilterId', ], 'IngressFilterRules' => [ 'shape' => 'TrafficMirrorFilterRuleList', 'locationName' => 'ingressFilterRuleSet', ], 'EgressFilterRules' => [ 'shape' => 'TrafficMirrorFilterRuleList', 'locationName' => 'egressFilterRuleSet', ], 'NetworkServices' => [ 'shape' => 'TrafficMirrorNetworkServiceList', 'locationName' => 'networkServiceSet', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TrafficMirrorFilterId' => [ 'type' => 'string', ], 'TrafficMirrorFilterIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorFilterId', 'locationName' => 'item', ], ], 'TrafficMirrorFilterRule' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterRuleId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorFilterRuleId', ], 'TrafficMirrorFilterId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorFilterId', ], 'TrafficDirection' => [ 'shape' => 'TrafficDirection', 'locationName' => 'trafficDirection', ], 'RuleNumber' => [ 'shape' => 'Integer', 'locationName' => 'ruleNumber', ], 'RuleAction' => [ 'shape' => 'TrafficMirrorRuleAction', 'locationName' => 'ruleAction', ], 'Protocol' => [ 'shape' => 'Integer', 'locationName' => 'protocol', ], 'DestinationPortRange' => [ 'shape' => 'TrafficMirrorPortRange', 'locationName' => 'destinationPortRange', ], 'SourcePortRange' => [ 'shape' => 'TrafficMirrorPortRange', 'locationName' => 'sourcePortRange', ], 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'SourceCidrBlock' => [ 'shape' => 'String', 'locationName' => 'sourceCidrBlock', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TrafficMirrorFilterRuleField' => [ 'type' => 'string', 'enum' => [ 'destination-port-range', 'source-port-range', 'protocol', 'description', ], ], 'TrafficMirrorFilterRuleFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorFilterRuleField', ], ], 'TrafficMirrorFilterRuleIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorFilterRuleIdWithResolver', 'locationName' => 'item', ], ], 'TrafficMirrorFilterRuleIdWithResolver' => [ 'type' => 'string', ], 'TrafficMirrorFilterRuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorFilterRule', 'locationName' => 'item', ], ], 'TrafficMirrorFilterRuleSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorFilterRule', 'locationName' => 'item', ], ], 'TrafficMirrorFilterSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorFilter', 'locationName' => 'item', ], ], 'TrafficMirrorNetworkService' => [ 'type' => 'string', 'enum' => [ 'amazon-dns', ], ], 'TrafficMirrorNetworkServiceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorNetworkService', 'locationName' => 'item', ], ], 'TrafficMirrorPortRange' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], ], ], 'TrafficMirrorPortRangeRequest' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'Integer', ], 'ToPort' => [ 'shape' => 'Integer', ], ], ], 'TrafficMirrorRuleAction' => [ 'type' => 'string', 'enum' => [ 'accept', 'reject', ], ], 'TrafficMirrorSession' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorSessionId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorSessionId', ], 'TrafficMirrorTargetId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorTargetId', ], 'TrafficMirrorFilterId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorFilterId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PacketLength' => [ 'shape' => 'Integer', 'locationName' => 'packetLength', ], 'SessionNumber' => [ 'shape' => 'Integer', 'locationName' => 'sessionNumber', ], 'VirtualNetworkId' => [ 'shape' => 'Integer', 'locationName' => 'virtualNetworkId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TrafficMirrorSessionField' => [ 'type' => 'string', 'enum' => [ 'packet-length', 'description', 'virtual-network-id', ], ], 'TrafficMirrorSessionFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorSessionField', ], ], 'TrafficMirrorSessionId' => [ 'type' => 'string', ], 'TrafficMirrorSessionIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorSessionId', 'locationName' => 'item', ], ], 'TrafficMirrorSessionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorSession', 'locationName' => 'item', ], ], 'TrafficMirrorTarget' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorTargetId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorTargetId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'NetworkLoadBalancerArn' => [ 'shape' => 'String', 'locationName' => 'networkLoadBalancerArn', ], 'Type' => [ 'shape' => 'TrafficMirrorTargetType', 'locationName' => 'type', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'GatewayLoadBalancerEndpointId' => [ 'shape' => 'String', 'locationName' => 'gatewayLoadBalancerEndpointId', ], ], ], 'TrafficMirrorTargetId' => [ 'type' => 'string', ], 'TrafficMirrorTargetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorTargetId', 'locationName' => 'item', ], ], 'TrafficMirrorTargetSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorTarget', 'locationName' => 'item', ], ], 'TrafficMirrorTargetType' => [ 'type' => 'string', 'enum' => [ 'network-interface', 'network-load-balancer', 'gateway-load-balancer-endpoint', ], ], 'TrafficMirroringMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'TrafficType' => [ 'type' => 'string', 'enum' => [ 'ACCEPT', 'REJECT', 'ALL', ], ], 'TransferType' => [ 'type' => 'string', 'enum' => [ 'time-based', 'standard', ], ], 'TransitAssociationGatewayId' => [ 'type' => 'string', ], 'TransitGateway' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'TransitGatewayArn' => [ 'shape' => 'String', 'locationName' => 'transitGatewayArn', ], 'State' => [ 'shape' => 'TransitGatewayState', 'locationName' => 'state', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Options' => [ 'shape' => 'TransitGatewayOptions', 'locationName' => 'options', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayAssociation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', 'locationName' => 'transitGatewayRouteTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'State' => [ 'shape' => 'TransitGatewayAssociationState', 'locationName' => 'state', ], ], ], 'TransitGatewayAssociationState' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', 'disassociated', ], ], 'TransitGatewayAttachment' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'TransitGatewayOwnerId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayOwnerId', ], 'ResourceOwnerId' => [ 'shape' => 'String', 'locationName' => 'resourceOwnerId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'State' => [ 'shape' => 'TransitGatewayAttachmentState', 'locationName' => 'state', ], 'Association' => [ 'shape' => 'TransitGatewayAttachmentAssociation', 'locationName' => 'association', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayAttachmentAssociation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayRouteTableId', ], 'State' => [ 'shape' => 'TransitGatewayAssociationState', 'locationName' => 'state', ], ], ], 'TransitGatewayAttachmentBgpConfiguration' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAsn' => [ 'shape' => 'Long', 'locationName' => 'transitGatewayAsn', ], 'PeerAsn' => [ 'shape' => 'Long', 'locationName' => 'peerAsn', ], 'TransitGatewayAddress' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAddress', ], 'PeerAddress' => [ 'shape' => 'String', 'locationName' => 'peerAddress', ], 'BgpStatus' => [ 'shape' => 'BgpStatus', 'locationName' => 'bgpStatus', ], ], ], 'TransitGatewayAttachmentBgpConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayAttachmentBgpConfiguration', 'locationName' => 'item', ], ], 'TransitGatewayAttachmentId' => [ 'type' => 'string', ], 'TransitGatewayAttachmentIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayAttachmentId', ], ], 'TransitGatewayAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayAttachment', 'locationName' => 'item', ], ], 'TransitGatewayAttachmentPropagation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayRouteTableId', ], 'State' => [ 'shape' => 'TransitGatewayPropagationState', 'locationName' => 'state', ], ], ], 'TransitGatewayAttachmentPropagationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayAttachmentPropagation', 'locationName' => 'item', ], ], 'TransitGatewayAttachmentResourceType' => [ 'type' => 'string', 'enum' => [ 'vpc', 'vpn', 'vpn-concentrator', 'direct-connect-gateway', 'connect', 'peering', 'tgw-peering', 'network-function', 'client-vpn', ], ], 'TransitGatewayAttachmentState' => [ 'type' => 'string', 'enum' => [ 'initiating', 'initiatingRequest', 'pendingAcceptance', 'rollingBack', 'pending', 'available', 'modifying', 'deleting', 'deleted', 'failed', 'rejected', 'rejecting', 'failing', ], ], 'TransitGatewayAttachmentStatusType' => [ 'type' => 'string', 'enum' => [ 'pending-acceptance', 'pending', 'rejected', 'available', 'deleting', 'deleted', ], ], 'TransitGatewayCidrBlockStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'TransitGatewayClientVpnAttachment' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'transitGatewayId', ], 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', 'locationName' => 'clientVpnEndpointId', ], 'ClientVpnOwnerId' => [ 'shape' => 'String', 'locationName' => 'clientVpnOwnerId', ], 'State' => [ 'shape' => 'TransitGatewayAttachmentStatusType', 'locationName' => 'state', ], 'CreationTime' => [ 'shape' => 'String', 'locationName' => 'creationTime', ], ], ], 'TransitGatewayConfigurationDescribeEndpointStructure' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'transitGatewayId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], 'AvailabilityZones' => [ 'shape' => 'ClientVpnAvailabilityZoneSet', 'locationName' => 'availabilityZoneSet', ], 'AvailabilityZoneIds' => [ 'shape' => 'ClientVpnAvailabilityZoneIdSet', 'locationName' => 'availabilityZoneIdSet', ], ], ], 'TransitGatewayConfigurationInputStructure' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'AvailabilityZones' => [ 'shape' => 'ClientVpnAvailabilityZoneSet', 'locationName' => 'AvailabilityZone', ], 'AvailabilityZoneIds' => [ 'shape' => 'ClientVpnAvailabilityZoneIdSet', 'locationName' => 'AvailabilityZoneId', ], ], ], 'TransitGatewayConnect' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], 'TransportTransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transportTransitGatewayAttachmentId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'transitGatewayId', ], 'State' => [ 'shape' => 'TransitGatewayAttachmentState', 'locationName' => 'state', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Options' => [ 'shape' => 'TransitGatewayConnectOptions', 'locationName' => 'options', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayConnectList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayConnect', 'locationName' => 'item', ], ], 'TransitGatewayConnectOptions' => [ 'type' => 'structure', 'members' => [ 'Protocol' => [ 'shape' => 'ProtocolValue', 'locationName' => 'protocol', ], ], ], 'TransitGatewayConnectPeer' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], 'TransitGatewayConnectPeerId' => [ 'shape' => 'TransitGatewayConnectPeerId', 'locationName' => 'transitGatewayConnectPeerId', ], 'State' => [ 'shape' => 'TransitGatewayConnectPeerState', 'locationName' => 'state', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'ConnectPeerConfiguration' => [ 'shape' => 'TransitGatewayConnectPeerConfiguration', 'locationName' => 'connectPeerConfiguration', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayConnectPeerConfiguration' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAddress' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAddress', ], 'PeerAddress' => [ 'shape' => 'String', 'locationName' => 'peerAddress', ], 'InsideCidrBlocks' => [ 'shape' => 'InsideCidrBlocksStringList', 'locationName' => 'insideCidrBlocks', ], 'Protocol' => [ 'shape' => 'ProtocolValue', 'locationName' => 'protocol', ], 'BgpConfigurations' => [ 'shape' => 'TransitGatewayAttachmentBgpConfigurationList', 'locationName' => 'bgpConfigurations', ], ], ], 'TransitGatewayConnectPeerId' => [ 'type' => 'string', ], 'TransitGatewayConnectPeerIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayConnectPeerId', 'locationName' => 'item', ], ], 'TransitGatewayConnectPeerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayConnectPeer', 'locationName' => 'item', ], ], 'TransitGatewayConnectPeerState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'TransitGatewayConnectRequestBgpOptions' => [ 'type' => 'structure', 'members' => [ 'PeerAsn' => [ 'shape' => 'Long', ], ], ], 'TransitGatewayId' => [ 'type' => 'string', ], 'TransitGatewayIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'item', ], ], 'TransitGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGateway', 'locationName' => 'item', ], ], 'TransitGatewayMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'TransitGatewayMeteringPayerType' => [ 'type' => 'string', 'enum' => [ 'source-attachment-owner', 'destination-attachment-owner', 'transit-gateway-owner', ], ], 'TransitGatewayMeteringPolicy' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicyId' => [ 'shape' => 'TransitGatewayMeteringPolicyId', 'locationName' => 'transitGatewayMeteringPolicyId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'transitGatewayId', ], 'MiddleboxAttachmentIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'middleboxAttachmentIdSet', ], 'State' => [ 'shape' => 'TransitGatewayMeteringPolicyState', 'locationName' => 'state', ], 'UpdateEffectiveAt' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'updateEffectiveAt', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayMeteringPolicyEntry' => [ 'type' => 'structure', 'members' => [ 'PolicyRuleNumber' => [ 'shape' => 'String', 'locationName' => 'policyRuleNumber', ], 'MeteredAccount' => [ 'shape' => 'TransitGatewayMeteringPayerType', 'locationName' => 'meteredAccount', ], 'State' => [ 'shape' => 'TransitGatewayMeteringPolicyEntryState', 'locationName' => 'state', ], 'UpdatedAt' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'updatedAt', ], 'UpdateEffectiveAt' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'updateEffectiveAt', ], 'MeteringPolicyRule' => [ 'shape' => 'TransitGatewayMeteringPolicyRule', 'locationName' => 'meteringPolicyRule', ], ], ], 'TransitGatewayMeteringPolicyEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayMeteringPolicyEntry', 'locationName' => 'item', ], ], 'TransitGatewayMeteringPolicyEntryState' => [ 'type' => 'string', 'enum' => [ 'available', 'deleted', ], ], 'TransitGatewayMeteringPolicyId' => [ 'type' => 'string', ], 'TransitGatewayMeteringPolicyIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayMeteringPolicyId', 'locationName' => 'item', ], ], 'TransitGatewayMeteringPolicyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayMeteringPolicy', 'locationName' => 'item', ], ], 'TransitGatewayMeteringPolicyRule' => [ 'type' => 'structure', 'members' => [ 'SourceTransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'sourceTransitGatewayAttachmentId', ], 'SourceTransitGatewayAttachmentType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'sourceTransitGatewayAttachmentType', ], 'SourceCidrBlock' => [ 'shape' => 'String', 'locationName' => 'sourceCidrBlock', ], 'SourcePortRange' => [ 'shape' => 'String', 'locationName' => 'sourcePortRange', ], 'DestinationTransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'destinationTransitGatewayAttachmentId', ], 'DestinationTransitGatewayAttachmentType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'destinationTransitGatewayAttachmentType', ], 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'DestinationPortRange' => [ 'shape' => 'String', 'locationName' => 'destinationPortRange', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], ], ], 'TransitGatewayMeteringPolicyState' => [ 'type' => 'string', 'enum' => [ 'available', 'deleted', 'pending', 'modifying', 'deleting', ], ], 'TransitGatewayMulitcastDomainAssociationState' => [ 'type' => 'string', 'enum' => [ 'pendingAcceptance', 'associating', 'associated', 'disassociating', 'disassociated', 'rejected', 'failed', ], ], 'TransitGatewayMulticastDeregisteredGroupMembers' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayMulticastDomainId', ], 'DeregisteredNetworkInterfaceIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'deregisteredNetworkInterfaceIds', ], 'GroupIpAddress' => [ 'shape' => 'String', 'locationName' => 'groupIpAddress', ], ], ], 'TransitGatewayMulticastDeregisteredGroupSources' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayMulticastDomainId', ], 'DeregisteredNetworkInterfaceIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'deregisteredNetworkInterfaceIds', ], 'GroupIpAddress' => [ 'shape' => 'String', 'locationName' => 'groupIpAddress', ], ], ], 'TransitGatewayMulticastDomain' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayMulticastDomainId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'TransitGatewayMulticastDomainArn' => [ 'shape' => 'String', 'locationName' => 'transitGatewayMulticastDomainArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Options' => [ 'shape' => 'TransitGatewayMulticastDomainOptions', 'locationName' => 'options', ], 'State' => [ 'shape' => 'TransitGatewayMulticastDomainState', 'locationName' => 'state', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayMulticastDomainAssociation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'ResourceOwnerId' => [ 'shape' => 'String', 'locationName' => 'resourceOwnerId', ], 'Subnet' => [ 'shape' => 'SubnetAssociation', 'locationName' => 'subnet', ], ], ], 'TransitGatewayMulticastDomainAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayMulticastDomainAssociation', 'locationName' => 'item', ], ], 'TransitGatewayMulticastDomainAssociations' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayMulticastDomainId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'ResourceOwnerId' => [ 'shape' => 'String', 'locationName' => 'resourceOwnerId', ], 'Subnets' => [ 'shape' => 'SubnetAssociationList', 'locationName' => 'subnets', ], ], ], 'TransitGatewayMulticastDomainId' => [ 'type' => 'string', ], 'TransitGatewayMulticastDomainIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayMulticastDomainId', 'locationName' => 'item', ], ], 'TransitGatewayMulticastDomainList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayMulticastDomain', 'locationName' => 'item', ], ], 'TransitGatewayMulticastDomainOptions' => [ 'type' => 'structure', 'members' => [ 'Igmpv2Support' => [ 'shape' => 'Igmpv2SupportValue', 'locationName' => 'igmpv2Support', ], 'StaticSourcesSupport' => [ 'shape' => 'StaticSourcesSupportValue', 'locationName' => 'staticSourcesSupport', ], 'AutoAcceptSharedAssociations' => [ 'shape' => 'AutoAcceptSharedAssociationsValue', 'locationName' => 'autoAcceptSharedAssociations', ], ], ], 'TransitGatewayMulticastDomainState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'TransitGatewayMulticastGroup' => [ 'type' => 'structure', 'members' => [ 'GroupIpAddress' => [ 'shape' => 'String', 'locationName' => 'groupIpAddress', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'ResourceOwnerId' => [ 'shape' => 'String', 'locationName' => 'resourceOwnerId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'GroupMember' => [ 'shape' => 'Boolean', 'locationName' => 'groupMember', ], 'GroupSource' => [ 'shape' => 'Boolean', 'locationName' => 'groupSource', ], 'MemberType' => [ 'shape' => 'MembershipType', 'locationName' => 'memberType', ], 'SourceType' => [ 'shape' => 'MembershipType', 'locationName' => 'sourceType', ], ], ], 'TransitGatewayMulticastGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayMulticastGroup', 'locationName' => 'item', ], ], 'TransitGatewayMulticastRegisteredGroupMembers' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayMulticastDomainId', ], 'RegisteredNetworkInterfaceIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'registeredNetworkInterfaceIds', ], 'GroupIpAddress' => [ 'shape' => 'String', 'locationName' => 'groupIpAddress', ], ], ], 'TransitGatewayMulticastRegisteredGroupSources' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayMulticastDomainId', ], 'RegisteredNetworkInterfaceIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'registeredNetworkInterfaceIds', ], 'GroupIpAddress' => [ 'shape' => 'String', 'locationName' => 'groupIpAddress', ], ], ], 'TransitGatewayNetworkInterfaceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'item', ], ], 'TransitGatewayOptions' => [ 'type' => 'structure', 'members' => [ 'AmazonSideAsn' => [ 'shape' => 'Long', 'locationName' => 'amazonSideAsn', ], 'TransitGatewayCidrBlocks' => [ 'shape' => 'ValueStringList', 'locationName' => 'transitGatewayCidrBlocks', ], 'AutoAcceptSharedAttachments' => [ 'shape' => 'AutoAcceptSharedAttachmentsValue', 'locationName' => 'autoAcceptSharedAttachments', ], 'DefaultRouteTableAssociation' => [ 'shape' => 'DefaultRouteTableAssociationValue', 'locationName' => 'defaultRouteTableAssociation', ], 'AssociationDefaultRouteTableId' => [ 'shape' => 'String', 'locationName' => 'associationDefaultRouteTableId', ], 'DefaultRouteTablePropagation' => [ 'shape' => 'DefaultRouteTablePropagationValue', 'locationName' => 'defaultRouteTablePropagation', ], 'PropagationDefaultRouteTableId' => [ 'shape' => 'String', 'locationName' => 'propagationDefaultRouteTableId', ], 'VpnEcmpSupport' => [ 'shape' => 'VpnEcmpSupportValue', 'locationName' => 'vpnEcmpSupport', ], 'DnsSupport' => [ 'shape' => 'DnsSupportValue', 'locationName' => 'dnsSupport', ], 'SecurityGroupReferencingSupport' => [ 'shape' => 'SecurityGroupReferencingSupportValue', 'locationName' => 'securityGroupReferencingSupport', ], 'MulticastSupport' => [ 'shape' => 'MulticastSupportValue', 'locationName' => 'multicastSupport', ], 'EncryptionSupport' => [ 'shape' => 'EncryptionSupport', 'locationName' => 'encryptionSupport', ], ], ], 'TransitGatewayPeeringAttachment' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'AccepterTransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'accepterTransitGatewayAttachmentId', ], 'RequesterTgwInfo' => [ 'shape' => 'PeeringTgwInfo', 'locationName' => 'requesterTgwInfo', ], 'AccepterTgwInfo' => [ 'shape' => 'PeeringTgwInfo', 'locationName' => 'accepterTgwInfo', ], 'Options' => [ 'shape' => 'TransitGatewayPeeringAttachmentOptions', 'locationName' => 'options', ], 'Status' => [ 'shape' => 'PeeringAttachmentStatus', 'locationName' => 'status', ], 'State' => [ 'shape' => 'TransitGatewayAttachmentState', 'locationName' => 'state', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayPeeringAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayPeeringAttachment', 'locationName' => 'item', ], ], 'TransitGatewayPeeringAttachmentOptions' => [ 'type' => 'structure', 'members' => [ 'DynamicRouting' => [ 'shape' => 'DynamicRoutingValue', 'locationName' => 'dynamicRouting', ], ], ], 'TransitGatewayPolicyRule' => [ 'type' => 'structure', 'members' => [ 'SourceCidrBlock' => [ 'shape' => 'String', 'locationName' => 'sourceCidrBlock', ], 'SourcePortRange' => [ 'shape' => 'String', 'locationName' => 'sourcePortRange', ], 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'DestinationPortRange' => [ 'shape' => 'String', 'locationName' => 'destinationPortRange', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'MetaData' => [ 'shape' => 'TransitGatewayPolicyRuleMetaData', 'locationName' => 'metaData', ], ], ], 'TransitGatewayPolicyRuleMetaData' => [ 'type' => 'structure', 'members' => [ 'MetaDataKey' => [ 'shape' => 'String', 'locationName' => 'metaDataKey', ], 'MetaDataValue' => [ 'shape' => 'String', 'locationName' => 'metaDataValue', ], ], ], 'TransitGatewayPolicyTable' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPolicyTableId' => [ 'shape' => 'TransitGatewayPolicyTableId', 'locationName' => 'transitGatewayPolicyTableId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'transitGatewayId', ], 'State' => [ 'shape' => 'TransitGatewayPolicyTableState', 'locationName' => 'state', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayPolicyTableAssociation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPolicyTableId' => [ 'shape' => 'TransitGatewayPolicyTableId', 'locationName' => 'transitGatewayPolicyTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'State' => [ 'shape' => 'TransitGatewayAssociationState', 'locationName' => 'state', ], ], ], 'TransitGatewayPolicyTableAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayPolicyTableAssociation', 'locationName' => 'item', ], ], 'TransitGatewayPolicyTableEntry' => [ 'type' => 'structure', 'members' => [ 'PolicyRuleNumber' => [ 'shape' => 'String', 'locationName' => 'policyRuleNumber', ], 'PolicyRule' => [ 'shape' => 'TransitGatewayPolicyRule', 'locationName' => 'policyRule', ], 'TargetRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', 'locationName' => 'targetRouteTableId', ], ], ], 'TransitGatewayPolicyTableEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayPolicyTableEntry', 'locationName' => 'item', ], ], 'TransitGatewayPolicyTableId' => [ 'type' => 'string', ], 'TransitGatewayPolicyTableIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayPolicyTableId', 'locationName' => 'item', ], ], 'TransitGatewayPolicyTableList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayPolicyTable', 'locationName' => 'item', ], ], 'TransitGatewayPolicyTableState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'TransitGatewayPrefixListAttachment' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], ], ], 'TransitGatewayPrefixListReference' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', 'locationName' => 'transitGatewayRouteTableId', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', 'locationName' => 'prefixListId', ], 'PrefixListOwnerId' => [ 'shape' => 'String', 'locationName' => 'prefixListOwnerId', ], 'State' => [ 'shape' => 'TransitGatewayPrefixListReferenceState', 'locationName' => 'state', ], 'Blackhole' => [ 'shape' => 'Boolean', 'locationName' => 'blackhole', ], 'TransitGatewayAttachment' => [ 'shape' => 'TransitGatewayPrefixListAttachment', 'locationName' => 'transitGatewayAttachment', ], ], ], 'TransitGatewayPrefixListReferenceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayPrefixListReference', 'locationName' => 'item', ], ], 'TransitGatewayPrefixListReferenceState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'modifying', 'deleting', ], ], 'TransitGatewayPropagation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'TransitGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayRouteTableId', ], 'State' => [ 'shape' => 'TransitGatewayPropagationState', 'locationName' => 'state', ], 'TransitGatewayRouteTableAnnouncementId' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementId', 'locationName' => 'transitGatewayRouteTableAnnouncementId', ], ], ], 'TransitGatewayPropagationState' => [ 'type' => 'string', 'enum' => [ 'enabling', 'enabled', 'disabling', 'disabled', ], ], 'TransitGatewayRequestOptions' => [ 'type' => 'structure', 'members' => [ 'AmazonSideAsn' => [ 'shape' => 'Long', ], 'AutoAcceptSharedAttachments' => [ 'shape' => 'AutoAcceptSharedAttachmentsValue', ], 'DefaultRouteTableAssociation' => [ 'shape' => 'DefaultRouteTableAssociationValue', ], 'DefaultRouteTablePropagation' => [ 'shape' => 'DefaultRouteTablePropagationValue', ], 'VpnEcmpSupport' => [ 'shape' => 'VpnEcmpSupportValue', ], 'DnsSupport' => [ 'shape' => 'DnsSupportValue', ], 'SecurityGroupReferencingSupport' => [ 'shape' => 'SecurityGroupReferencingSupportValue', ], 'MulticastSupport' => [ 'shape' => 'MulticastSupportValue', ], 'TransitGatewayCidrBlocks' => [ 'shape' => 'TransitGatewayCidrBlockStringList', ], ], ], 'TransitGatewayRoute' => [ 'type' => 'structure', 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', 'locationName' => 'prefixListId', ], 'TransitGatewayRouteTableAnnouncementId' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementId', 'locationName' => 'transitGatewayRouteTableAnnouncementId', ], 'TransitGatewayAttachments' => [ 'shape' => 'TransitGatewayRouteAttachmentList', 'locationName' => 'transitGatewayAttachments', ], 'Type' => [ 'shape' => 'TransitGatewayRouteType', 'locationName' => 'type', ], 'State' => [ 'shape' => 'TransitGatewayRouteState', 'locationName' => 'state', ], ], ], 'TransitGatewayRouteAttachment' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], ], ], 'TransitGatewayRouteAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteAttachment', 'locationName' => 'item', ], ], 'TransitGatewayRouteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRoute', 'locationName' => 'item', ], ], 'TransitGatewayRouteState' => [ 'type' => 'string', 'enum' => [ 'pending', 'active', 'blackhole', 'deleting', 'deleted', ], ], 'TransitGatewayRouteTable' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayRouteTableId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'State' => [ 'shape' => 'TransitGatewayRouteTableState', 'locationName' => 'state', ], 'DefaultAssociationRouteTable' => [ 'shape' => 'Boolean', 'locationName' => 'defaultAssociationRouteTable', ], 'DefaultPropagationRouteTable' => [ 'shape' => 'Boolean', 'locationName' => 'defaultPropagationRouteTable', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayRouteTableAnnouncement' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableAnnouncementId' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementId', 'locationName' => 'transitGatewayRouteTableAnnouncementId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'transitGatewayId', ], 'CoreNetworkId' => [ 'shape' => 'String', 'locationName' => 'coreNetworkId', ], 'PeerTransitGatewayId' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'peerTransitGatewayId', ], 'PeerCoreNetworkId' => [ 'shape' => 'String', 'locationName' => 'peerCoreNetworkId', ], 'PeeringAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'peeringAttachmentId', ], 'AnnouncementDirection' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementDirection', 'locationName' => 'announcementDirection', ], 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', 'locationName' => 'transitGatewayRouteTableId', ], 'State' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementState', 'locationName' => 'state', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayRouteTableAnnouncementDirection' => [ 'type' => 'string', 'enum' => [ 'outgoing', 'incoming', ], ], 'TransitGatewayRouteTableAnnouncementId' => [ 'type' => 'string', ], 'TransitGatewayRouteTableAnnouncementIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementId', 'locationName' => 'item', ], ], 'TransitGatewayRouteTableAnnouncementList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteTableAnnouncement', 'locationName' => 'item', ], ], 'TransitGatewayRouteTableAnnouncementState' => [ 'type' => 'string', 'enum' => [ 'available', 'pending', 'failing', 'failed', 'deleting', 'deleted', ], ], 'TransitGatewayRouteTableAssociation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'State' => [ 'shape' => 'TransitGatewayAssociationState', 'locationName' => 'state', ], ], ], 'TransitGatewayRouteTableAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteTableAssociation', 'locationName' => 'item', ], ], 'TransitGatewayRouteTableId' => [ 'type' => 'string', ], 'TransitGatewayRouteTableIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteTableId', 'locationName' => 'item', ], ], 'TransitGatewayRouteTableList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteTable', 'locationName' => 'item', ], ], 'TransitGatewayRouteTablePropagation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'State' => [ 'shape' => 'TransitGatewayPropagationState', 'locationName' => 'state', ], 'TransitGatewayRouteTableAnnouncementId' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementId', 'locationName' => 'transitGatewayRouteTableAnnouncementId', ], ], ], 'TransitGatewayRouteTablePropagationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteTablePropagation', 'locationName' => 'item', ], ], 'TransitGatewayRouteTableRoute' => [ 'type' => 'structure', 'members' => [ 'DestinationCidr' => [ 'shape' => 'String', 'locationName' => 'destinationCidr', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'RouteOrigin' => [ 'shape' => 'String', 'locationName' => 'routeOrigin', ], 'PrefixListId' => [ 'shape' => 'String', 'locationName' => 'prefixListId', ], 'AttachmentId' => [ 'shape' => 'String', 'locationName' => 'attachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'String', 'locationName' => 'resourceType', ], ], ], 'TransitGatewayRouteTableState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'TransitGatewayRouteType' => [ 'type' => 'string', 'enum' => [ 'static', 'propagated', ], ], 'TransitGatewayState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'modifying', 'deleting', 'deleted', ], ], 'TransitGatewaySubnetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', 'locationName' => 'item', ], ], 'TransitGatewayVpcAttachment' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'VpcOwnerId' => [ 'shape' => 'String', 'locationName' => 'vpcOwnerId', ], 'State' => [ 'shape' => 'TransitGatewayAttachmentState', 'locationName' => 'state', ], 'SubnetIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'subnetIds', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Options' => [ 'shape' => 'TransitGatewayVpcAttachmentOptions', 'locationName' => 'options', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayVpcAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'item', ], ], 'TransitGatewayVpcAttachmentOptions' => [ 'type' => 'structure', 'members' => [ 'DnsSupport' => [ 'shape' => 'DnsSupportValue', 'locationName' => 'dnsSupport', ], 'SecurityGroupReferencingSupport' => [ 'shape' => 'SecurityGroupReferencingSupportValue', 'locationName' => 'securityGroupReferencingSupport', ], 'Ipv6Support' => [ 'shape' => 'Ipv6SupportValue', 'locationName' => 'ipv6Support', ], 'ApplianceModeSupport' => [ 'shape' => 'ApplianceModeSupportValue', 'locationName' => 'applianceModeSupport', ], ], ], 'TransportProtocol' => [ 'type' => 'string', 'enum' => [ 'tcp', 'udp', ], ], 'TrunkInterfaceAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'TrunkInterfaceAssociationId', 'locationName' => 'associationId', ], 'BranchInterfaceId' => [ 'shape' => 'String', 'locationName' => 'branchInterfaceId', ], 'TrunkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'trunkInterfaceId', ], 'InterfaceProtocol' => [ 'shape' => 'InterfaceProtocolType', 'locationName' => 'interfaceProtocol', ], 'VlanId' => [ 'shape' => 'Integer', 'locationName' => 'vlanId', ], 'GreKey' => [ 'shape' => 'Integer', 'locationName' => 'greKey', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TrunkInterfaceAssociationId' => [ 'type' => 'string', ], 'TrunkInterfaceAssociationIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrunkInterfaceAssociationId', 'locationName' => 'item', ], ], 'TrunkInterfaceAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrunkInterfaceAssociation', 'locationName' => 'item', ], ], 'TrustProviderType' => [ 'type' => 'string', 'enum' => [ 'user', 'device', ], ], 'TunnelInsideIpVersion' => [ 'type' => 'string', 'enum' => [ 'ipv4', 'ipv6', ], ], 'TunnelOption' => [ 'type' => 'structure', 'members' => [ 'OutsideIpAddress' => [ 'shape' => 'String', 'locationName' => 'outsideIpAddress', ], 'TunnelInsideCidr' => [ 'shape' => 'String', 'locationName' => 'tunnelInsideCidr', ], 'TunnelInsideIpv6Cidr' => [ 'shape' => 'String', 'locationName' => 'tunnelInsideIpv6Cidr', ], 'PreSharedKey' => [ 'shape' => 'preSharedKey', 'locationName' => 'preSharedKey', ], 'Phase1LifetimeSeconds' => [ 'shape' => 'Integer', 'locationName' => 'phase1LifetimeSeconds', ], 'Phase2LifetimeSeconds' => [ 'shape' => 'Integer', 'locationName' => 'phase2LifetimeSeconds', ], 'RekeyMarginTimeSeconds' => [ 'shape' => 'Integer', 'locationName' => 'rekeyMarginTimeSeconds', ], 'RekeyFuzzPercentage' => [ 'shape' => 'Integer', 'locationName' => 'rekeyFuzzPercentage', ], 'ReplayWindowSize' => [ 'shape' => 'Integer', 'locationName' => 'replayWindowSize', ], 'DpdTimeoutSeconds' => [ 'shape' => 'Integer', 'locationName' => 'dpdTimeoutSeconds', ], 'DpdTimeoutAction' => [ 'shape' => 'String', 'locationName' => 'dpdTimeoutAction', ], 'Phase1EncryptionAlgorithms' => [ 'shape' => 'Phase1EncryptionAlgorithmsList', 'locationName' => 'phase1EncryptionAlgorithmSet', ], 'Phase2EncryptionAlgorithms' => [ 'shape' => 'Phase2EncryptionAlgorithmsList', 'locationName' => 'phase2EncryptionAlgorithmSet', ], 'Phase1IntegrityAlgorithms' => [ 'shape' => 'Phase1IntegrityAlgorithmsList', 'locationName' => 'phase1IntegrityAlgorithmSet', ], 'Phase2IntegrityAlgorithms' => [ 'shape' => 'Phase2IntegrityAlgorithmsList', 'locationName' => 'phase2IntegrityAlgorithmSet', ], 'Phase1DHGroupNumbers' => [ 'shape' => 'Phase1DHGroupNumbersList', 'locationName' => 'phase1DHGroupNumberSet', ], 'Phase2DHGroupNumbers' => [ 'shape' => 'Phase2DHGroupNumbersList', 'locationName' => 'phase2DHGroupNumberSet', ], 'IkeVersions' => [ 'shape' => 'IKEVersionsList', 'locationName' => 'ikeVersionSet', ], 'StartupAction' => [ 'shape' => 'String', 'locationName' => 'startupAction', ], 'LogOptions' => [ 'shape' => 'VpnTunnelLogOptions', 'locationName' => 'logOptions', ], 'EnableTunnelLifecycleControl' => [ 'shape' => 'Boolean', 'locationName' => 'enableTunnelLifecycleControl', ], ], ], 'TunnelOptionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TunnelOption', 'locationName' => 'item', ], ], 'UnassignIpv6AddressesRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'Ipv6Prefixes' => [ 'shape' => 'IpPrefixList', 'locationName' => 'Ipv6Prefix', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'Ipv6Addresses' => [ 'shape' => 'Ipv6AddressList', 'locationName' => 'ipv6Addresses', ], ], ], 'UnassignIpv6AddressesResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'UnassignedIpv6Addresses' => [ 'shape' => 'Ipv6AddressList', 'locationName' => 'unassignedIpv6Addresses', ], 'UnassignedIpv6Prefixes' => [ 'shape' => 'IpPrefixList', 'locationName' => 'unassignedIpv6PrefixSet', ], ], ], 'UnassignPrivateIpAddressesRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'Ipv4Prefixes' => [ 'shape' => 'IpPrefixList', 'locationName' => 'Ipv4Prefix', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressStringList', 'locationName' => 'privateIpAddress', ], ], ], 'UnassignPrivateNatGatewayAddressRequest' => [ 'type' => 'structure', 'required' => [ 'NatGatewayId', 'PrivateIpAddresses', ], 'members' => [ 'NatGatewayId' => [ 'shape' => 'NatGatewayId', ], 'PrivateIpAddresses' => [ 'shape' => 'IpList', 'locationName' => 'PrivateIpAddress', ], 'MaxDrainDurationSeconds' => [ 'shape' => 'DrainSeconds', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'UnassignPrivateNatGatewayAddressResult' => [ 'type' => 'structure', 'members' => [ 'NatGatewayId' => [ 'shape' => 'NatGatewayId', 'locationName' => 'natGatewayId', ], 'NatGatewayAddresses' => [ 'shape' => 'NatGatewayAddressList', 'locationName' => 'natGatewayAddressSet', ], ], ], 'UnlimitedSupportedInstanceFamily' => [ 'type' => 'string', 'enum' => [ 't2', 't3', 't3a', 't4g', ], ], 'UnlockSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', ], 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'UnlockSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], ], ], 'UnmonitorInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'UnmonitorInstancesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceMonitorings' => [ 'shape' => 'InstanceMonitoringList', 'locationName' => 'instancesSet', ], ], ], 'UnsuccessfulInstanceCreditSpecificationErrorCode' => [ 'type' => 'string', 'enum' => [ 'InvalidInstanceID.Malformed', 'InvalidInstanceID.NotFound', 'IncorrectInstanceState', 'InstanceCreditSpecification.NotSupported', ], ], 'UnsuccessfulInstanceCreditSpecificationItem' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Error' => [ 'shape' => 'UnsuccessfulInstanceCreditSpecificationItemError', 'locationName' => 'error', ], ], ], 'UnsuccessfulInstanceCreditSpecificationItemError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'UnsuccessfulInstanceCreditSpecificationErrorCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'UnsuccessfulInstanceCreditSpecificationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnsuccessfulInstanceCreditSpecificationItem', 'locationName' => 'item', ], ], 'UnsuccessfulItem' => [ 'type' => 'structure', 'members' => [ 'Error' => [ 'shape' => 'UnsuccessfulItemError', 'locationName' => 'error', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], ], ], 'UnsuccessfulItemError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'UnsuccessfulItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnsuccessfulItem', 'locationName' => 'item', ], ], 'UnsuccessfulItemSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnsuccessfulItem', 'locationName' => 'item', ], ], 'UpdateCapacityManagerMonitoredTagKeysRequest' => [ 'type' => 'structure', 'members' => [ 'ActivateTagKeys' => [ 'shape' => 'ValueStringList', 'locationName' => 'ActivateTagKey', ], 'DeactivateTagKeys' => [ 'shape' => 'ValueStringList', 'locationName' => 'DeactivateTagKey', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'UpdateCapacityManagerMonitoredTagKeysResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerTagKeys' => [ 'shape' => 'CapacityManagerMonitoredTagKeyList', 'locationName' => 'capacityManagerTagKeySet', ], ], ], 'UpdateCapacityManagerOrganizationsAccessRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationsAccess', ], 'members' => [ 'OrganizationsAccess' => [ 'shape' => 'BoxedBoolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'UpdateCapacityManagerOrganizationsAccessResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerStatus' => [ 'shape' => 'CapacityManagerStatus', 'locationName' => 'capacityManagerStatus', ], 'OrganizationsAccess' => [ 'shape' => 'Boolean', 'locationName' => 'organizationsAccess', ], ], ], 'UpdateInterruptibleCapacityReservationAllocationRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', 'TargetInstanceCount', ], 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'TargetInstanceCount' => [ 'shape' => 'Integer', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'UpdateInterruptibleCapacityReservationAllocationResult' => [ 'type' => 'structure', 'members' => [ 'InterruptibleCapacityReservationId' => [ 'shape' => 'CapacityReservationId', 'locationName' => 'interruptibleCapacityReservationId', ], 'SourceCapacityReservationId' => [ 'shape' => 'CapacityReservationId', 'locationName' => 'sourceCapacityReservationId', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'TargetInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'targetInstanceCount', ], 'Status' => [ 'shape' => 'InterruptibleCapacityReservationAllocationStatus', 'locationName' => 'status', ], 'InterruptionType' => [ 'shape' => 'InterruptionType', 'locationName' => 'interruptionType', ], ], ], 'UpdateSecurityGroupRuleDescriptionsEgressRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', ], 'GroupName' => [ 'shape' => 'SecurityGroupName', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', ], 'SecurityGroupRuleDescriptions' => [ 'shape' => 'SecurityGroupRuleDescriptionList', 'locationName' => 'SecurityGroupRuleDescription', ], ], ], 'UpdateSecurityGroupRuleDescriptionsEgressResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'UpdateSecurityGroupRuleDescriptionsIngressRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', ], 'GroupName' => [ 'shape' => 'SecurityGroupName', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', ], 'SecurityGroupRuleDescriptions' => [ 'shape' => 'SecurityGroupRuleDescriptionList', 'locationName' => 'SecurityGroupRuleDescription', ], ], ], 'UpdateSecurityGroupRuleDescriptionsIngressResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'UsageClassType' => [ 'type' => 'string', 'enum' => [ 'spot', 'on-demand', 'capacity-block', ], ], 'UsageClassTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UsageClassType', 'locationName' => 'item', ], ], 'UserBucket' => [ 'type' => 'structure', 'members' => [ 'S3Bucket' => [ 'shape' => 'String', ], 'S3Key' => [ 'shape' => 'String', ], ], ], 'UserBucketDetails' => [ 'type' => 'structure', 'members' => [ 'S3Bucket' => [ 'shape' => 'String', 'locationName' => 's3Bucket', ], 'S3Key' => [ 'shape' => 'String', 'locationName' => 's3Key', ], ], ], 'UserData' => [ 'type' => 'structure', 'members' => [ 'Data' => [ 'shape' => 'String', 'locationName' => 'data', ], ], 'sensitive' => true, ], 'UserGroupStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'UserGroup', ], ], 'UserIdGroupPair' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'UserId' => [ 'shape' => 'String', 'locationName' => 'userId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], 'PeeringStatus' => [ 'shape' => 'String', 'locationName' => 'peeringStatus', ], ], ], 'UserIdGroupPairList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserIdGroupPair', 'locationName' => 'item', ], ], 'UserIdGroupPairSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserIdGroupPair', 'locationName' => 'item', ], ], 'UserIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'UserIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'UserId', ], ], 'UserTrustProviderType' => [ 'type' => 'string', 'enum' => [ 'iam-identity-center', 'oidc', ], ], 'VCpuCount' => [ 'type' => 'integer', ], 'VCpuCountRange' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Integer', 'locationName' => 'max', ], ], ], 'VCpuCountRangeRequest' => [ 'type' => 'structure', 'required' => [ 'Min', ], 'members' => [ 'Min' => [ 'shape' => 'Integer', ], 'Max' => [ 'shape' => 'Integer', ], ], ], 'VCpuInfo' => [ 'type' => 'structure', 'members' => [ 'DefaultVCpus' => [ 'shape' => 'VCpuCount', 'locationName' => 'defaultVCpus', ], 'DefaultCores' => [ 'shape' => 'CoreCount', 'locationName' => 'defaultCores', ], 'DefaultThreadsPerCore' => [ 'shape' => 'ThreadsPerCore', 'locationName' => 'defaultThreadsPerCore', ], 'ValidCores' => [ 'shape' => 'CoreCountList', 'locationName' => 'validCores', ], 'ValidThreadsPerCore' => [ 'shape' => 'ThreadsPerCoreList', 'locationName' => 'validThreadsPerCore', ], ], ], 'ValidationError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ValidationWarning' => [ 'type' => 'structure', 'members' => [ 'Errors' => [ 'shape' => 'ErrorSet', 'locationName' => 'errorSet', ], ], ], 'ValueStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'VerificationMethod' => [ 'type' => 'string', 'enum' => [ 'remarks-x509', 'dns-token', ], ], 'VerifiedAccessEndpoint' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessInstanceId', ], 'VerifiedAccessGroupId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessGroupId', ], 'VerifiedAccessEndpointId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessEndpointId', ], 'ApplicationDomain' => [ 'shape' => 'String', 'locationName' => 'applicationDomain', ], 'EndpointType' => [ 'shape' => 'VerifiedAccessEndpointType', 'locationName' => 'endpointType', ], 'AttachmentType' => [ 'shape' => 'VerifiedAccessEndpointAttachmentType', 'locationName' => 'attachmentType', ], 'DomainCertificateArn' => [ 'shape' => 'String', 'locationName' => 'domainCertificateArn', ], 'EndpointDomain' => [ 'shape' => 'String', 'locationName' => 'endpointDomain', ], 'DeviceValidationDomain' => [ 'shape' => 'String', 'locationName' => 'deviceValidationDomain', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdList', 'locationName' => 'securityGroupIdSet', ], 'LoadBalancerOptions' => [ 'shape' => 'VerifiedAccessEndpointLoadBalancerOptions', 'locationName' => 'loadBalancerOptions', ], 'NetworkInterfaceOptions' => [ 'shape' => 'VerifiedAccessEndpointEniOptions', 'locationName' => 'networkInterfaceOptions', ], 'Status' => [ 'shape' => 'VerifiedAccessEndpointStatus', 'locationName' => 'status', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'CreationTime' => [ 'shape' => 'String', 'locationName' => 'creationTime', ], 'LastUpdatedTime' => [ 'shape' => 'String', 'locationName' => 'lastUpdatedTime', ], 'DeletionTime' => [ 'shape' => 'String', 'locationName' => 'deletionTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationResponse', 'locationName' => 'sseSpecification', ], 'RdsOptions' => [ 'shape' => 'VerifiedAccessEndpointRdsOptions', 'locationName' => 'rdsOptions', ], 'CidrOptions' => [ 'shape' => 'VerifiedAccessEndpointCidrOptions', 'locationName' => 'cidrOptions', ], ], ], 'VerifiedAccessEndpointAttachmentType' => [ 'type' => 'string', 'enum' => [ 'vpc', ], ], 'VerifiedAccessEndpointCidrOptions' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'PortRanges' => [ 'shape' => 'VerifiedAccessEndpointPortRangeList', 'locationName' => 'portRangeSet', ], 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', 'locationName' => 'protocol', ], 'SubnetIds' => [ 'shape' => 'VerifiedAccessEndpointSubnetIdList', 'locationName' => 'subnetIdSet', ], ], ], 'VerifiedAccessEndpointEniOptions' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', 'locationName' => 'protocol', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', 'locationName' => 'port', ], 'PortRanges' => [ 'shape' => 'VerifiedAccessEndpointPortRangeList', 'locationName' => 'portRangeSet', ], ], ], 'VerifiedAccessEndpointId' => [ 'type' => 'string', ], 'VerifiedAccessEndpointIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessEndpointId', 'locationName' => 'item', ], ], 'VerifiedAccessEndpointList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessEndpoint', 'locationName' => 'item', ], ], 'VerifiedAccessEndpointLoadBalancerOptions' => [ 'type' => 'structure', 'members' => [ 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', 'locationName' => 'protocol', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', 'locationName' => 'port', ], 'LoadBalancerArn' => [ 'shape' => 'String', 'locationName' => 'loadBalancerArn', ], 'SubnetIds' => [ 'shape' => 'VerifiedAccessEndpointSubnetIdList', 'locationName' => 'subnetIdSet', ], 'PortRanges' => [ 'shape' => 'VerifiedAccessEndpointPortRangeList', 'locationName' => 'portRangeSet', ], ], ], 'VerifiedAccessEndpointPortNumber' => [ 'type' => 'integer', 'max' => 65535, 'min' => 1, ], 'VerifiedAccessEndpointPortRange' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', 'locationName' => 'fromPort', ], 'ToPort' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', 'locationName' => 'toPort', ], ], ], 'VerifiedAccessEndpointPortRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessEndpointPortRange', 'locationName' => 'item', ], ], 'VerifiedAccessEndpointProtocol' => [ 'type' => 'string', 'enum' => [ 'http', 'https', 'tcp', ], ], 'VerifiedAccessEndpointRdsOptions' => [ 'type' => 'structure', 'members' => [ 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', 'locationName' => 'protocol', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', 'locationName' => 'port', ], 'RdsDbInstanceArn' => [ 'shape' => 'String', 'locationName' => 'rdsDbInstanceArn', ], 'RdsDbClusterArn' => [ 'shape' => 'String', 'locationName' => 'rdsDbClusterArn', ], 'RdsDbProxyArn' => [ 'shape' => 'String', 'locationName' => 'rdsDbProxyArn', ], 'RdsEndpoint' => [ 'shape' => 'String', 'locationName' => 'rdsEndpoint', ], 'SubnetIds' => [ 'shape' => 'VerifiedAccessEndpointSubnetIdList', 'locationName' => 'subnetIdSet', ], ], ], 'VerifiedAccessEndpointStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'VerifiedAccessEndpointStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'VerifiedAccessEndpointStatusCode' => [ 'type' => 'string', 'enum' => [ 'pending', 'active', 'updating', 'deleting', 'deleted', ], ], 'VerifiedAccessEndpointSubnetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', 'locationName' => 'item', ], ], 'VerifiedAccessEndpointTarget' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessEndpointId' => [ 'shape' => 'VerifiedAccessEndpointId', 'locationName' => 'verifiedAccessEndpointId', ], 'VerifiedAccessEndpointTargetIpAddress' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessEndpointTargetIpAddress', ], 'VerifiedAccessEndpointTargetDns' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessEndpointTargetDns', ], ], ], 'VerifiedAccessEndpointTargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessEndpointTarget', 'locationName' => 'item', ], ], 'VerifiedAccessEndpointType' => [ 'type' => 'string', 'enum' => [ 'load-balancer', 'network-interface', 'rds', 'cidr', ], ], 'VerifiedAccessGroup' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessGroupId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessGroupId', ], 'VerifiedAccessInstanceId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessInstanceId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Owner' => [ 'shape' => 'String', 'locationName' => 'owner', ], 'VerifiedAccessGroupArn' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessGroupArn', ], 'CreationTime' => [ 'shape' => 'String', 'locationName' => 'creationTime', ], 'LastUpdatedTime' => [ 'shape' => 'String', 'locationName' => 'lastUpdatedTime', ], 'DeletionTime' => [ 'shape' => 'String', 'locationName' => 'deletionTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationResponse', 'locationName' => 'sseSpecification', ], ], ], 'VerifiedAccessGroupId' => [ 'type' => 'string', ], 'VerifiedAccessGroupIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessGroupId', 'locationName' => 'item', ], ], 'VerifiedAccessGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessGroup', 'locationName' => 'item', ], ], 'VerifiedAccessInstance' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessInstanceId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'VerifiedAccessTrustProviders' => [ 'shape' => 'VerifiedAccessTrustProviderCondensedList', 'locationName' => 'verifiedAccessTrustProviderSet', ], 'CreationTime' => [ 'shape' => 'String', 'locationName' => 'creationTime', ], 'LastUpdatedTime' => [ 'shape' => 'String', 'locationName' => 'lastUpdatedTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'FipsEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'fipsEnabled', ], 'CidrEndpointsCustomSubDomain' => [ 'shape' => 'VerifiedAccessInstanceCustomSubDomain', 'locationName' => 'cidrEndpointsCustomSubDomain', ], ], ], 'VerifiedAccessInstanceCustomSubDomain' => [ 'type' => 'structure', 'members' => [ 'SubDomain' => [ 'shape' => 'String', 'locationName' => 'subDomain', ], 'Nameservers' => [ 'shape' => 'ValueStringList', 'locationName' => 'nameserverSet', ], ], ], 'VerifiedAccessInstanceId' => [ 'type' => 'string', ], 'VerifiedAccessInstanceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessInstanceId', 'locationName' => 'item', ], ], 'VerifiedAccessInstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessInstance', 'locationName' => 'item', ], ], 'VerifiedAccessInstanceLoggingConfiguration' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessInstanceId', ], 'AccessLogs' => [ 'shape' => 'VerifiedAccessLogs', 'locationName' => 'accessLogs', ], ], ], 'VerifiedAccessInstanceLoggingConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessInstanceLoggingConfiguration', 'locationName' => 'item', ], ], 'VerifiedAccessInstanceOpenVpnClientConfiguration' => [ 'type' => 'structure', 'members' => [ 'Config' => [ 'shape' => 'String', 'locationName' => 'config', ], 'Routes' => [ 'shape' => 'VerifiedAccessInstanceOpenVpnClientConfigurationRouteList', 'locationName' => 'routeSet', ], ], ], 'VerifiedAccessInstanceOpenVpnClientConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessInstanceOpenVpnClientConfiguration', 'locationName' => 'item', ], ], 'VerifiedAccessInstanceOpenVpnClientConfigurationRoute' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], ], ], 'VerifiedAccessInstanceOpenVpnClientConfigurationRouteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessInstanceOpenVpnClientConfigurationRoute', 'locationName' => 'item', ], ], 'VerifiedAccessInstanceUserTrustProviderClientConfiguration' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'UserTrustProviderType', 'locationName' => 'type', ], 'Scopes' => [ 'shape' => 'String', 'locationName' => 'scopes', ], 'Issuer' => [ 'shape' => 'String', 'locationName' => 'issuer', ], 'AuthorizationEndpoint' => [ 'shape' => 'String', 'locationName' => 'authorizationEndpoint', ], 'PublicSigningKeyEndpoint' => [ 'shape' => 'String', 'locationName' => 'publicSigningKeyEndpoint', ], 'TokenEndpoint' => [ 'shape' => 'String', 'locationName' => 'tokenEndpoint', ], 'UserInfoEndpoint' => [ 'shape' => 'String', 'locationName' => 'userInfoEndpoint', ], 'ClientId' => [ 'shape' => 'String', 'locationName' => 'clientId', ], 'ClientSecret' => [ 'shape' => 'ClientSecretType', 'locationName' => 'clientSecret', ], 'PkceEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'pkceEnabled', ], ], ], 'VerifiedAccessLogCloudWatchLogsDestination' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], 'DeliveryStatus' => [ 'shape' => 'VerifiedAccessLogDeliveryStatus', 'locationName' => 'deliveryStatus', ], 'LogGroup' => [ 'shape' => 'String', 'locationName' => 'logGroup', ], ], ], 'VerifiedAccessLogCloudWatchLogsDestinationOptions' => [ 'type' => 'structure', 'required' => [ 'Enabled', ], 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'LogGroup' => [ 'shape' => 'String', ], ], ], 'VerifiedAccessLogDeliveryStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'VerifiedAccessLogDeliveryStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'VerifiedAccessLogDeliveryStatusCode' => [ 'type' => 'string', 'enum' => [ 'success', 'failed', ], ], 'VerifiedAccessLogKinesisDataFirehoseDestination' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], 'DeliveryStatus' => [ 'shape' => 'VerifiedAccessLogDeliveryStatus', 'locationName' => 'deliveryStatus', ], 'DeliveryStream' => [ 'shape' => 'String', 'locationName' => 'deliveryStream', ], ], ], 'VerifiedAccessLogKinesisDataFirehoseDestinationOptions' => [ 'type' => 'structure', 'required' => [ 'Enabled', ], 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'DeliveryStream' => [ 'shape' => 'String', ], ], ], 'VerifiedAccessLogOptions' => [ 'type' => 'structure', 'members' => [ 'S3' => [ 'shape' => 'VerifiedAccessLogS3DestinationOptions', ], 'CloudWatchLogs' => [ 'shape' => 'VerifiedAccessLogCloudWatchLogsDestinationOptions', ], 'KinesisDataFirehose' => [ 'shape' => 'VerifiedAccessLogKinesisDataFirehoseDestinationOptions', ], 'LogVersion' => [ 'shape' => 'String', ], 'IncludeTrustContext' => [ 'shape' => 'Boolean', ], ], ], 'VerifiedAccessLogS3Destination' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], 'DeliveryStatus' => [ 'shape' => 'VerifiedAccessLogDeliveryStatus', 'locationName' => 'deliveryStatus', ], 'BucketName' => [ 'shape' => 'String', 'locationName' => 'bucketName', ], 'Prefix' => [ 'shape' => 'String', 'locationName' => 'prefix', ], 'BucketOwner' => [ 'shape' => 'String', 'locationName' => 'bucketOwner', ], ], ], 'VerifiedAccessLogS3DestinationOptions' => [ 'type' => 'structure', 'required' => [ 'Enabled', ], 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'BucketName' => [ 'shape' => 'String', ], 'Prefix' => [ 'shape' => 'String', ], 'BucketOwner' => [ 'shape' => 'String', ], ], ], 'VerifiedAccessLogs' => [ 'type' => 'structure', 'members' => [ 'S3' => [ 'shape' => 'VerifiedAccessLogS3Destination', 'locationName' => 's3', ], 'CloudWatchLogs' => [ 'shape' => 'VerifiedAccessLogCloudWatchLogsDestination', 'locationName' => 'cloudWatchLogs', ], 'KinesisDataFirehose' => [ 'shape' => 'VerifiedAccessLogKinesisDataFirehoseDestination', 'locationName' => 'kinesisDataFirehose', ], 'LogVersion' => [ 'shape' => 'String', 'locationName' => 'logVersion', ], 'IncludeTrustContext' => [ 'shape' => 'Boolean', 'locationName' => 'includeTrustContext', ], ], ], 'VerifiedAccessSseSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'CustomerManagedKeyEnabled' => [ 'shape' => 'Boolean', ], 'KmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'VerifiedAccessSseSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'CustomerManagedKeyEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'customerManagedKeyEnabled', ], 'KmsKeyArn' => [ 'shape' => 'KmsKeyArn', 'locationName' => 'kmsKeyArn', ], ], ], 'VerifiedAccessTrustProvider' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProviderId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessTrustProviderId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'TrustProviderType' => [ 'shape' => 'TrustProviderType', 'locationName' => 'trustProviderType', ], 'UserTrustProviderType' => [ 'shape' => 'UserTrustProviderType', 'locationName' => 'userTrustProviderType', ], 'DeviceTrustProviderType' => [ 'shape' => 'DeviceTrustProviderType', 'locationName' => 'deviceTrustProviderType', ], 'OidcOptions' => [ 'shape' => 'OidcOptions', 'locationName' => 'oidcOptions', ], 'DeviceOptions' => [ 'shape' => 'DeviceOptions', 'locationName' => 'deviceOptions', ], 'PolicyReferenceName' => [ 'shape' => 'String', 'locationName' => 'policyReferenceName', ], 'CreationTime' => [ 'shape' => 'String', 'locationName' => 'creationTime', ], 'LastUpdatedTime' => [ 'shape' => 'String', 'locationName' => 'lastUpdatedTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationResponse', 'locationName' => 'sseSpecification', ], 'NativeApplicationOidcOptions' => [ 'shape' => 'NativeApplicationOidcOptions', 'locationName' => 'nativeApplicationOidcOptions', ], ], ], 'VerifiedAccessTrustProviderCondensed' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProviderId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessTrustProviderId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'TrustProviderType' => [ 'shape' => 'TrustProviderType', 'locationName' => 'trustProviderType', ], 'UserTrustProviderType' => [ 'shape' => 'UserTrustProviderType', 'locationName' => 'userTrustProviderType', ], 'DeviceTrustProviderType' => [ 'shape' => 'DeviceTrustProviderType', 'locationName' => 'deviceTrustProviderType', ], ], ], 'VerifiedAccessTrustProviderCondensedList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessTrustProviderCondensed', 'locationName' => 'item', ], ], 'VerifiedAccessTrustProviderId' => [ 'type' => 'string', ], 'VerifiedAccessTrustProviderIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessTrustProviderId', 'locationName' => 'item', ], ], 'VerifiedAccessTrustProviderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessTrustProvider', 'locationName' => 'item', ], ], 'VersionDescription' => [ 'type' => 'string', 'max' => 255, 'min' => 0, ], 'VersionStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'VgwTelemetry' => [ 'type' => 'structure', 'members' => [ 'AcceptedRouteCount' => [ 'shape' => 'Integer', 'locationName' => 'acceptedRouteCount', ], 'LastStatusChange' => [ 'shape' => 'DateTime', 'locationName' => 'lastStatusChange', ], 'OutsideIpAddress' => [ 'shape' => 'String', 'locationName' => 'outsideIpAddress', ], 'Status' => [ 'shape' => 'TelemetryStatus', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'CertificateArn' => [ 'shape' => 'String', 'locationName' => 'certificateArn', ], ], ], 'VgwTelemetryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VgwTelemetry', 'locationName' => 'item', ], ], 'VirtualizationType' => [ 'type' => 'string', 'enum' => [ 'hvm', 'paravirtual', ], ], 'VirtualizationTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VirtualizationType', 'locationName' => 'item', ], ], 'VirtualizationTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'VirtualizationType', 'locationName' => 'item', ], 'max' => 2, 'min' => 0, ], 'Volume' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'SourceVolumeId' => [ 'shape' => 'String', 'locationName' => 'sourceVolumeId', ], 'Iops' => [ 'shape' => 'Integer', 'locationName' => 'iops', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'volumeType', ], 'FastRestored' => [ 'shape' => 'Boolean', 'locationName' => 'fastRestored', ], 'MultiAttachEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'multiAttachEnabled', ], 'Throughput' => [ 'shape' => 'Integer', 'locationName' => 'throughput', ], 'SseType' => [ 'shape' => 'SSEType', 'locationName' => 'sseType', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], 'VolumeInitializationRate' => [ 'shape' => 'Integer', 'locationName' => 'volumeInitializationRate', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'Size' => [ 'shape' => 'Integer', 'locationName' => 'size', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'State' => [ 'shape' => 'VolumeState', 'locationName' => 'status', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'Attachments' => [ 'shape' => 'VolumeAttachmentList', 'locationName' => 'attachmentSet', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], ], ], 'VolumeAttachment' => [ 'type' => 'structure', 'members' => [ 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'AssociatedResource' => [ 'shape' => 'String', 'locationName' => 'associatedResource', ], 'InstanceOwningService' => [ 'shape' => 'String', 'locationName' => 'instanceOwningService', ], 'EbsCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'ebsCardIndex', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Device' => [ 'shape' => 'String', 'locationName' => 'device', ], 'State' => [ 'shape' => 'VolumeAttachmentState', 'locationName' => 'status', ], 'AttachTime' => [ 'shape' => 'DateTime', 'locationName' => 'attachTime', ], ], ], 'VolumeAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeAttachment', 'locationName' => 'item', ], ], 'VolumeAttachmentState' => [ 'type' => 'string', 'enum' => [ 'attaching', 'attached', 'detaching', 'detached', 'busy', ], ], 'VolumeAttributeName' => [ 'type' => 'string', 'enum' => [ 'autoEnableIO', 'productCodes', ], ], 'VolumeDetail' => [ 'type' => 'structure', 'required' => [ 'Size', ], 'members' => [ 'Size' => [ 'shape' => 'Long', 'locationName' => 'size', ], ], ], 'VolumeId' => [ 'type' => 'string', ], 'VolumeIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeId', 'locationName' => 'VolumeId', ], ], 'VolumeIdWithResolver' => [ 'type' => 'string', ], 'VolumeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Volume', 'locationName' => 'item', ], ], 'VolumeModification' => [ 'type' => 'structure', 'members' => [ 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'ModificationState' => [ 'shape' => 'VolumeModificationState', 'locationName' => 'modificationState', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'TargetSize' => [ 'shape' => 'Integer', 'locationName' => 'targetSize', ], 'TargetIops' => [ 'shape' => 'Integer', 'locationName' => 'targetIops', ], 'TargetVolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'targetVolumeType', ], 'TargetThroughput' => [ 'shape' => 'Integer', 'locationName' => 'targetThroughput', ], 'TargetMultiAttachEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'targetMultiAttachEnabled', ], 'OriginalSize' => [ 'shape' => 'Integer', 'locationName' => 'originalSize', ], 'OriginalIops' => [ 'shape' => 'Integer', 'locationName' => 'originalIops', ], 'OriginalVolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'originalVolumeType', ], 'OriginalThroughput' => [ 'shape' => 'Integer', 'locationName' => 'originalThroughput', ], 'OriginalMultiAttachEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'originalMultiAttachEnabled', ], 'Progress' => [ 'shape' => 'Long', 'locationName' => 'progress', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], 'EndTime' => [ 'shape' => 'DateTime', 'locationName' => 'endTime', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], ], ], 'VolumeModificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeModification', 'locationName' => 'item', ], ], 'VolumeModificationState' => [ 'type' => 'string', 'enum' => [ 'modifying', 'optimizing', 'completed', 'failed', ], ], 'VolumeRecycleBinInfo' => [ 'type' => 'structure', 'members' => [ 'VolumeId' => [ 'shape' => 'VolumeId', 'locationName' => 'volumeId', ], 'VolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'volumeType', ], 'State' => [ 'shape' => 'VolumeState', 'locationName' => 'state', ], 'Size' => [ 'shape' => 'Integer', 'locationName' => 'size', ], 'Iops' => [ 'shape' => 'Integer', 'locationName' => 'iops', ], 'Throughput' => [ 'shape' => 'Integer', 'locationName' => 'throughput', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'SourceVolumeId' => [ 'shape' => 'String', 'locationName' => 'sourceVolumeId', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'RecycleBinEnterTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'recycleBinEnterTime', ], 'RecycleBinExitTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'recycleBinExitTime', ], ], ], 'VolumeRecycleBinInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeRecycleBinInfo', 'locationName' => 'item', ], ], 'VolumeState' => [ 'type' => 'string', 'enum' => [ 'creating', 'available', 'in-use', 'deleting', 'deleted', 'error', ], ], 'VolumeStatusAction' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'EventId' => [ 'shape' => 'String', 'locationName' => 'eventId', ], 'EventType' => [ 'shape' => 'String', 'locationName' => 'eventType', ], ], ], 'VolumeStatusActionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeStatusAction', 'locationName' => 'item', ], ], 'VolumeStatusAttachmentStatus' => [ 'type' => 'structure', 'members' => [ 'IoPerformance' => [ 'shape' => 'String', 'locationName' => 'ioPerformance', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], ], ], 'VolumeStatusAttachmentStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeStatusAttachmentStatus', 'locationName' => 'item', ], ], 'VolumeStatusDetails' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'VolumeStatusName', 'locationName' => 'name', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], ], ], 'VolumeStatusDetailsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeStatusDetails', 'locationName' => 'item', ], ], 'VolumeStatusEvent' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'EventId' => [ 'shape' => 'String', 'locationName' => 'eventId', ], 'EventType' => [ 'shape' => 'String', 'locationName' => 'eventType', ], 'NotAfter' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'notAfter', ], 'NotBefore' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'notBefore', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], ], ], 'VolumeStatusEventsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeStatusEvent', 'locationName' => 'item', ], ], 'VolumeStatusInfo' => [ 'type' => 'structure', 'members' => [ 'Details' => [ 'shape' => 'VolumeStatusDetailsList', 'locationName' => 'details', ], 'Status' => [ 'shape' => 'VolumeStatusInfoStatus', 'locationName' => 'status', ], ], ], 'VolumeStatusInfoStatus' => [ 'type' => 'string', 'enum' => [ 'ok', 'impaired', 'insufficient-data', 'warning', ], ], 'VolumeStatusItem' => [ 'type' => 'structure', 'members' => [ 'Actions' => [ 'shape' => 'VolumeStatusActionsList', 'locationName' => 'actionsSet', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'Events' => [ 'shape' => 'VolumeStatusEventsList', 'locationName' => 'eventsSet', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'VolumeStatus' => [ 'shape' => 'VolumeStatusInfo', 'locationName' => 'volumeStatus', ], 'AttachmentStatuses' => [ 'shape' => 'VolumeStatusAttachmentStatusList', 'locationName' => 'attachmentStatuses', ], 'InitializationStatusDetails' => [ 'shape' => 'InitializationStatusDetails', 'locationName' => 'initializationStatusDetails', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], ], ], 'VolumeStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeStatusItem', 'locationName' => 'item', ], ], 'VolumeStatusName' => [ 'type' => 'string', 'enum' => [ 'io-enabled', 'io-performance', 'initialization-state', ], ], 'VolumeType' => [ 'type' => 'string', 'enum' => [ 'standard', 'io1', 'io2', 'gp2', 'sc1', 'st1', 'gp3', ], ], 'Vpc' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'InstanceTenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'instanceTenancy', ], 'Ipv6CidrBlockAssociationSet' => [ 'shape' => 'VpcIpv6CidrBlockAssociationSet', 'locationName' => 'ipv6CidrBlockAssociationSet', ], 'CidrBlockAssociationSet' => [ 'shape' => 'VpcCidrBlockAssociationSet', 'locationName' => 'cidrBlockAssociationSet', ], 'IsDefault' => [ 'shape' => 'Boolean', 'locationName' => 'isDefault', ], 'EncryptionControl' => [ 'shape' => 'VpcEncryptionControl', 'locationName' => 'encryptionControl', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'BlockPublicAccessStates' => [ 'shape' => 'BlockPublicAccessStates', 'locationName' => 'blockPublicAccessStates', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'State' => [ 'shape' => 'VpcState', 'locationName' => 'state', ], 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'DhcpOptionsId' => [ 'shape' => 'String', 'locationName' => 'dhcpOptionsId', ], ], ], 'VpcAttachment' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'State' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'state', ], ], ], 'VpcAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcAttachment', 'locationName' => 'item', ], ], 'VpcAttributeName' => [ 'type' => 'string', 'enum' => [ 'enableDnsSupport', 'enableDnsHostnames', 'enableNetworkAddressUsageMetrics', ], ], 'VpcBlockPublicAccessExclusion' => [ 'type' => 'structure', 'members' => [ 'ExclusionId' => [ 'shape' => 'VpcBlockPublicAccessExclusionId', 'locationName' => 'exclusionId', ], 'InternetGatewayExclusionMode' => [ 'shape' => 'InternetGatewayExclusionMode', 'locationName' => 'internetGatewayExclusionMode', ], 'ResourceArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'resourceArn', ], 'State' => [ 'shape' => 'VpcBlockPublicAccessExclusionState', 'locationName' => 'state', ], 'Reason' => [ 'shape' => 'String', 'locationName' => 'reason', ], 'CreationTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'creationTimestamp', ], 'LastUpdateTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastUpdateTimestamp', ], 'DeletionTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'deletionTimestamp', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'VpcBlockPublicAccessExclusionId' => [ 'type' => 'string', ], 'VpcBlockPublicAccessExclusionIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcBlockPublicAccessExclusionId', 'locationName' => 'item', ], ], 'VpcBlockPublicAccessExclusionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcBlockPublicAccessExclusion', 'locationName' => 'item', ], ], 'VpcBlockPublicAccessExclusionState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'update-in-progress', 'update-complete', 'update-failed', 'delete-in-progress', 'delete-complete', 'disable-in-progress', 'disable-complete', ], ], 'VpcBlockPublicAccessExclusionsAllowed' => [ 'type' => 'string', 'enum' => [ 'allowed', 'not-allowed', ], ], 'VpcBlockPublicAccessOptions' => [ 'type' => 'structure', 'members' => [ 'AwsAccountId' => [ 'shape' => 'String', 'locationName' => 'awsAccountId', ], 'AwsRegion' => [ 'shape' => 'String', 'locationName' => 'awsRegion', ], 'State' => [ 'shape' => 'VpcBlockPublicAccessState', 'locationName' => 'state', ], 'InternetGatewayBlockMode' => [ 'shape' => 'InternetGatewayBlockMode', 'locationName' => 'internetGatewayBlockMode', ], 'Reason' => [ 'shape' => 'String', 'locationName' => 'reason', ], 'LastUpdateTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastUpdateTimestamp', ], 'ManagedBy' => [ 'shape' => 'ManagedBy', 'locationName' => 'managedBy', ], 'ExclusionsAllowed' => [ 'shape' => 'VpcBlockPublicAccessExclusionsAllowed', 'locationName' => 'exclusionsAllowed', ], ], ], 'VpcBlockPublicAccessState' => [ 'type' => 'string', 'enum' => [ 'default-state', 'update-in-progress', 'update-complete', ], ], 'VpcCidrAssociationId' => [ 'type' => 'string', ], 'VpcCidrBlockAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'CidrBlockState' => [ 'shape' => 'VpcCidrBlockState', 'locationName' => 'cidrBlockState', ], ], ], 'VpcCidrBlockAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcCidrBlockAssociation', 'locationName' => 'item', ], ], 'VpcCidrBlockState' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'VpcCidrBlockStateCode', 'locationName' => 'state', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], ], ], 'VpcCidrBlockStateCode' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', 'disassociated', 'failing', 'failed', ], ], 'VpcClassicLink' => [ 'type' => 'structure', 'members' => [ 'ClassicLinkEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'classicLinkEnabled', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'VpcClassicLinkIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcId', 'locationName' => 'VpcId', ], ], 'VpcClassicLinkList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcClassicLink', 'locationName' => 'item', ], ], 'VpcEncryptionControl' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'VpcEncryptionControlId' => [ 'shape' => 'VpcEncryptionControlId', 'locationName' => 'vpcEncryptionControlId', ], 'Mode' => [ 'shape' => 'VpcEncryptionControlMode', 'locationName' => 'mode', ], 'State' => [ 'shape' => 'VpcEncryptionControlState', 'locationName' => 'state', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], 'ResourceExclusions' => [ 'shape' => 'VpcEncryptionControlExclusions', 'locationName' => 'resourceExclusions', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'VpcEncryptionControlConfiguration' => [ 'type' => 'structure', 'required' => [ 'Mode', ], 'members' => [ 'Mode' => [ 'shape' => 'VpcEncryptionControlMode', ], 'InternetGatewayExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'EgressOnlyInternetGatewayExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'NatGatewayExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VirtualPrivateGatewayExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VpcPeeringExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'LambdaExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VpcLatticeExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'ElasticFileSystemExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], ], ], 'VpcEncryptionControlExclusion' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'state', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], ], ], 'VpcEncryptionControlExclusionState' => [ 'type' => 'string', 'enum' => [ 'enabling', 'enabled', 'disabling', 'disabled', ], ], 'VpcEncryptionControlExclusionStateInput' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'VpcEncryptionControlExclusions' => [ 'type' => 'structure', 'members' => [ 'InternetGateway' => [ 'shape' => 'VpcEncryptionControlExclusion', 'locationName' => 'internetGateway', ], 'EgressOnlyInternetGateway' => [ 'shape' => 'VpcEncryptionControlExclusion', 'locationName' => 'egressOnlyInternetGateway', ], 'NatGateway' => [ 'shape' => 'VpcEncryptionControlExclusion', 'locationName' => 'natGateway', ], 'VirtualPrivateGateway' => [ 'shape' => 'VpcEncryptionControlExclusion', 'locationName' => 'virtualPrivateGateway', ], 'VpcPeering' => [ 'shape' => 'VpcEncryptionControlExclusion', 'locationName' => 'vpcPeering', ], 'Lambda' => [ 'shape' => 'VpcEncryptionControlExclusion', 'locationName' => 'lambda', ], 'VpcLattice' => [ 'shape' => 'VpcEncryptionControlExclusion', 'locationName' => 'vpcLattice', ], 'ElasticFileSystem' => [ 'shape' => 'VpcEncryptionControlExclusion', 'locationName' => 'elasticFileSystem', ], ], ], 'VpcEncryptionControlId' => [ 'type' => 'string', ], 'VpcEncryptionControlIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEncryptionControlId', 'locationName' => 'item', ], ], 'VpcEncryptionControlList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEncryptionControl', 'locationName' => 'item', ], ], 'VpcEncryptionControlMode' => [ 'type' => 'string', 'enum' => [ 'monitor', 'enforce', ], ], 'VpcEncryptionControlState' => [ 'type' => 'string', 'enum' => [ 'enforce-in-progress', 'monitor-in-progress', 'enforce-failed', 'monitor-failed', 'deleting', 'deleted', 'available', 'creating', 'delete-failed', ], ], 'VpcEncryptionNonCompliantResource' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', 'locationName' => 'id', ], 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'IsExcludable' => [ 'shape' => 'Boolean', 'locationName' => 'isExcludable', ], ], ], 'VpcEncryptionNonCompliantResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEncryptionNonCompliantResource', 'locationName' => 'item', ], ], 'VpcEndpoint' => [ 'type' => 'structure', 'members' => [ 'VpcEndpointId' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointId', ], 'VpcEndpointType' => [ 'shape' => 'VpcEndpointType', 'locationName' => 'vpcEndpointType', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'ServiceName' => [ 'shape' => 'String', 'locationName' => 'serviceName', ], 'State' => [ 'shape' => 'State', 'locationName' => 'state', ], 'PolicyDocument' => [ 'shape' => 'String', 'locationName' => 'policyDocument', ], 'RouteTableIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'routeTableIdSet', ], 'SubnetIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'subnetIdSet', ], 'Groups' => [ 'shape' => 'GroupIdentifierSet', 'locationName' => 'groupSet', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', 'locationName' => 'ipAddressType', ], 'DnsOptions' => [ 'shape' => 'DnsOptions', 'locationName' => 'dnsOptions', ], 'PrivateDnsEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'privateDnsEnabled', ], 'RequesterManaged' => [ 'shape' => 'Boolean', 'locationName' => 'requesterManaged', ], 'NetworkInterfaceIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'networkInterfaceIdSet', ], 'DnsEntries' => [ 'shape' => 'DnsEntrySet', 'locationName' => 'dnsEntrySet', ], 'CreationTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'creationTimestamp', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'LastError' => [ 'shape' => 'LastError', 'locationName' => 'lastError', ], 'Ipv4Prefixes' => [ 'shape' => 'SubnetIpPrefixesList', 'locationName' => 'ipv4PrefixSet', ], 'Ipv6Prefixes' => [ 'shape' => 'SubnetIpPrefixesList', 'locationName' => 'ipv6PrefixSet', ], 'FailureReason' => [ 'shape' => 'String', 'locationName' => 'failureReason', ], 'ServiceNetworkArn' => [ 'shape' => 'ServiceNetworkArn', 'locationName' => 'serviceNetworkArn', ], 'ResourceConfigurationArn' => [ 'shape' => 'ResourceConfigurationArn', 'locationName' => 'resourceConfigurationArn', ], 'ServiceRegion' => [ 'shape' => 'String', 'locationName' => 'serviceRegion', ], 'PayerResponsibilities' => [ 'shape' => 'PayerResponsibilitySet', 'locationName' => 'payerResponsibilitySet', ], ], ], 'VpcEndpointAssociation' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', 'locationName' => 'id', ], 'VpcEndpointId' => [ 'shape' => 'VpcEndpointId', 'locationName' => 'vpcEndpointId', ], 'ServiceNetworkArn' => [ 'shape' => 'ServiceNetworkArn', 'locationName' => 'serviceNetworkArn', ], 'ServiceNetworkName' => [ 'shape' => 'String', 'locationName' => 'serviceNetworkName', ], 'AssociatedResourceAccessibility' => [ 'shape' => 'String', 'locationName' => 'associatedResourceAccessibility', ], 'FailureReason' => [ 'shape' => 'String', 'locationName' => 'failureReason', ], 'FailureCode' => [ 'shape' => 'String', 'locationName' => 'failureCode', ], 'DnsEntry' => [ 'shape' => 'DnsEntry', 'locationName' => 'dnsEntry', ], 'PrivateDnsEntry' => [ 'shape' => 'DnsEntry', 'locationName' => 'privateDnsEntry', ], 'AssociatedResourceArn' => [ 'shape' => 'String', 'locationName' => 'associatedResourceArn', ], 'ResourceConfigurationGroupArn' => [ 'shape' => 'String', 'locationName' => 'resourceConfigurationGroupArn', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'VpcEndpointAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEndpointAssociation', 'locationName' => 'item', ], ], 'VpcEndpointConnection' => [ 'type' => 'structure', 'members' => [ 'ServiceId' => [ 'shape' => 'String', 'locationName' => 'serviceId', ], 'VpcEndpointId' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointId', ], 'VpcEndpointOwner' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointOwner', ], 'VpcEndpointState' => [ 'shape' => 'State', 'locationName' => 'vpcEndpointState', ], 'CreationTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'creationTimestamp', ], 'DnsEntries' => [ 'shape' => 'DnsEntrySet', 'locationName' => 'dnsEntrySet', ], 'NetworkLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'networkLoadBalancerArnSet', ], 'GatewayLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'gatewayLoadBalancerArnSet', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', 'locationName' => 'ipAddressType', ], 'VpcEndpointConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointConnectionId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcEndpointRegion' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointRegion', ], 'PayerResponsibilities' => [ 'shape' => 'PayerResponsibilitySet', 'locationName' => 'payerResponsibilitySet', ], ], ], 'VpcEndpointConnectionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEndpointConnection', 'locationName' => 'item', ], ], 'VpcEndpointId' => [ 'type' => 'string', ], 'VpcEndpointIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEndpointId', 'locationName' => 'item', ], ], 'VpcEndpointRouteTableIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteTableId', 'locationName' => 'item', ], ], 'VpcEndpointSecurityGroupIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'item', ], ], 'VpcEndpointServiceId' => [ 'type' => 'string', ], 'VpcEndpointServiceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEndpointServiceId', 'locationName' => 'item', ], ], 'VpcEndpointSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEndpoint', 'locationName' => 'item', ], ], 'VpcEndpointSubnetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', 'locationName' => 'item', ], ], 'VpcEndpointType' => [ 'type' => 'string', 'enum' => [ 'Interface', 'Gateway', 'GatewayLoadBalancer', 'Resource', 'ServiceNetwork', ], ], 'VpcFlowLogId' => [ 'type' => 'string', ], 'VpcId' => [ 'type' => 'string', ], 'VpcIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcId', 'locationName' => 'VpcId', ], ], 'VpcIpv6CidrBlockAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], 'Ipv6CidrBlockState' => [ 'shape' => 'VpcCidrBlockState', 'locationName' => 'ipv6CidrBlockState', ], 'NetworkBorderGroup' => [ 'shape' => 'String', 'locationName' => 'networkBorderGroup', ], 'Ipv6Pool' => [ 'shape' => 'String', 'locationName' => 'ipv6Pool', ], 'Ipv6AddressAttribute' => [ 'shape' => 'Ipv6AddressAttribute', 'locationName' => 'ipv6AddressAttribute', ], 'IpSource' => [ 'shape' => 'IpSource', 'locationName' => 'ipSource', ], ], ], 'VpcIpv6CidrBlockAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcIpv6CidrBlockAssociation', 'locationName' => 'item', ], ], 'VpcList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Vpc', 'locationName' => 'item', ], ], 'VpcPeeringConnection' => [ 'type' => 'structure', 'members' => [ 'AccepterVpcInfo' => [ 'shape' => 'VpcPeeringConnectionVpcInfo', 'locationName' => 'accepterVpcInfo', ], 'ExpirationTime' => [ 'shape' => 'DateTime', 'locationName' => 'expirationTime', ], 'RequesterVpcInfo' => [ 'shape' => 'VpcPeeringConnectionVpcInfo', 'locationName' => 'requesterVpcInfo', ], 'Status' => [ 'shape' => 'VpcPeeringConnectionStateReason', 'locationName' => 'status', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'VpcPeeringConnectionId' => [ 'type' => 'string', ], 'VpcPeeringConnectionIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcPeeringConnectionId', 'locationName' => 'item', ], ], 'VpcPeeringConnectionIdWithResolver' => [ 'type' => 'string', ], 'VpcPeeringConnectionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcPeeringConnection', 'locationName' => 'item', ], ], 'VpcPeeringConnectionOptionsDescription' => [ 'type' => 'structure', 'members' => [ 'AllowDnsResolutionFromRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowDnsResolutionFromRemoteVpc', ], 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalClassicLinkToRemoteVpc', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalVpcToRemoteClassicLink', ], ], ], 'VpcPeeringConnectionStateReason' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'VpcPeeringConnectionStateReasonCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'VpcPeeringConnectionStateReasonCode' => [ 'type' => 'string', 'enum' => [ 'initiating-request', 'pending-acceptance', 'active', 'deleted', 'rejected', 'failed', 'expired', 'provisioning', 'deleting', ], ], 'VpcPeeringConnectionVpcInfo' => [ 'type' => 'structure', 'members' => [ 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'Ipv6CidrBlockSet' => [ 'shape' => 'Ipv6CidrBlockSet', 'locationName' => 'ipv6CidrBlockSet', ], 'CidrBlockSet' => [ 'shape' => 'CidrBlockSet', 'locationName' => 'cidrBlockSet', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PeeringOptions' => [ 'shape' => 'VpcPeeringConnectionOptionsDescription', 'locationName' => 'peeringOptions', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'Region' => [ 'shape' => 'String', 'locationName' => 'region', ], ], ], 'VpcState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', ], ], 'VpcTenancy' => [ 'type' => 'string', 'enum' => [ 'default', ], ], 'VpnConcentrator' => [ 'type' => 'structure', 'members' => [ 'VpnConcentratorId' => [ 'shape' => 'String', 'locationName' => 'vpnConcentratorId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'VpnConcentratorId' => [ 'type' => 'string', ], 'VpnConcentratorIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnConcentratorId', 'locationName' => 'VpnConcentratorId', ], ], 'VpnConcentratorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnConcentrator', 'locationName' => 'item', ], ], 'VpnConcentratorType' => [ 'type' => 'string', 'enum' => [ 'ipsec.1', ], ], 'VpnConnection' => [ 'type' => 'structure', 'members' => [ 'Category' => [ 'shape' => 'String', 'locationName' => 'category', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'VpnConcentratorId' => [ 'shape' => 'String', 'locationName' => 'vpnConcentratorId', ], 'CoreNetworkArn' => [ 'shape' => 'String', 'locationName' => 'coreNetworkArn', ], 'CoreNetworkAttachmentArn' => [ 'shape' => 'String', 'locationName' => 'coreNetworkAttachmentArn', ], 'GatewayAssociationState' => [ 'shape' => 'GatewayAssociationState', 'locationName' => 'gatewayAssociationState', ], 'Options' => [ 'shape' => 'VpnConnectionOptions', 'locationName' => 'options', ], 'Routes' => [ 'shape' => 'VpnStaticRouteList', 'locationName' => 'routes', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VgwTelemetry' => [ 'shape' => 'VgwTelemetryList', 'locationName' => 'vgwTelemetry', ], 'PreSharedKeyArn' => [ 'shape' => 'String', 'locationName' => 'preSharedKeyArn', ], 'VpnConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpnConnectionId', ], 'State' => [ 'shape' => 'VpnState', 'locationName' => 'state', ], 'CustomerGatewayConfiguration' => [ 'shape' => 'customerGatewayConfiguration', 'locationName' => 'customerGatewayConfiguration', ], 'Type' => [ 'shape' => 'GatewayType', 'locationName' => 'type', ], 'CustomerGatewayId' => [ 'shape' => 'String', 'locationName' => 'customerGatewayId', ], 'VpnGatewayId' => [ 'shape' => 'String', 'locationName' => 'vpnGatewayId', ], ], ], 'VpnConnectionDeviceSampleConfiguration' => [ 'type' => 'string', 'sensitive' => true, ], 'VpnConnectionDeviceType' => [ 'type' => 'structure', 'members' => [ 'VpnConnectionDeviceTypeId' => [ 'shape' => 'String', 'locationName' => 'vpnConnectionDeviceTypeId', ], 'Vendor' => [ 'shape' => 'String', 'locationName' => 'vendor', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'Software' => [ 'shape' => 'String', 'locationName' => 'software', ], ], ], 'VpnConnectionDeviceTypeId' => [ 'type' => 'string', ], 'VpnConnectionDeviceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnConnectionDeviceType', 'locationName' => 'item', ], ], 'VpnConnectionId' => [ 'type' => 'string', ], 'VpnConnectionIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnConnectionId', 'locationName' => 'VpnConnectionId', ], ], 'VpnConnectionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnConnection', 'locationName' => 'item', ], ], 'VpnConnectionOptions' => [ 'type' => 'structure', 'members' => [ 'EnableAcceleration' => [ 'shape' => 'Boolean', 'locationName' => 'enableAcceleration', ], 'StaticRoutesOnly' => [ 'shape' => 'Boolean', 'locationName' => 'staticRoutesOnly', ], 'LocalIpv4NetworkCidr' => [ 'shape' => 'String', 'locationName' => 'localIpv4NetworkCidr', ], 'RemoteIpv4NetworkCidr' => [ 'shape' => 'String', 'locationName' => 'remoteIpv4NetworkCidr', ], 'LocalIpv6NetworkCidr' => [ 'shape' => 'String', 'locationName' => 'localIpv6NetworkCidr', ], 'RemoteIpv6NetworkCidr' => [ 'shape' => 'String', 'locationName' => 'remoteIpv6NetworkCidr', ], 'OutsideIpAddressType' => [ 'shape' => 'String', 'locationName' => 'outsideIpAddressType', ], 'TransportTransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transportTransitGatewayAttachmentId', ], 'TunnelInsideIpVersion' => [ 'shape' => 'TunnelInsideIpVersion', 'locationName' => 'tunnelInsideIpVersion', ], 'TunnelOptions' => [ 'shape' => 'TunnelOptionsList', 'locationName' => 'tunnelOptionSet', ], 'TunnelBandwidth' => [ 'shape' => 'VpnTunnelBandwidth', 'locationName' => 'tunnelBandwidth', ], ], ], 'VpnConnectionOptionsSpecification' => [ 'type' => 'structure', 'members' => [ 'EnableAcceleration' => [ 'shape' => 'Boolean', ], 'TunnelInsideIpVersion' => [ 'shape' => 'TunnelInsideIpVersion', ], 'TunnelOptions' => [ 'shape' => 'VpnTunnelOptionsSpecificationsList', ], 'LocalIpv4NetworkCidr' => [ 'shape' => 'String', ], 'RemoteIpv4NetworkCidr' => [ 'shape' => 'String', ], 'LocalIpv6NetworkCidr' => [ 'shape' => 'String', ], 'RemoteIpv6NetworkCidr' => [ 'shape' => 'String', ], 'OutsideIpAddressType' => [ 'shape' => 'String', ], 'TransportTransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'TunnelBandwidth' => [ 'shape' => 'VpnTunnelBandwidth', ], 'StaticRoutesOnly' => [ 'shape' => 'Boolean', 'locationName' => 'staticRoutesOnly', ], ], ], 'VpnEcmpSupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'VpnGateway' => [ 'type' => 'structure', 'members' => [ 'AmazonSideAsn' => [ 'shape' => 'Long', 'locationName' => 'amazonSideAsn', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpnGatewayId' => [ 'shape' => 'String', 'locationName' => 'vpnGatewayId', ], 'State' => [ 'shape' => 'VpnState', 'locationName' => 'state', ], 'Type' => [ 'shape' => 'GatewayType', 'locationName' => 'type', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'VpcAttachments' => [ 'shape' => 'VpcAttachmentList', 'locationName' => 'attachments', ], ], ], 'VpnGatewayId' => [ 'type' => 'string', ], 'VpnGatewayIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnGatewayId', 'locationName' => 'VpnGatewayId', ], ], 'VpnGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnGateway', 'locationName' => 'item', ], ], 'VpnProtocol' => [ 'type' => 'string', 'enum' => [ 'openvpn', ], ], 'VpnState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'VpnStaticRoute' => [ 'type' => 'structure', 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'Source' => [ 'shape' => 'VpnStaticRouteSource', 'locationName' => 'source', ], 'State' => [ 'shape' => 'VpnState', 'locationName' => 'state', ], ], ], 'VpnStaticRouteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnStaticRoute', 'locationName' => 'item', ], ], 'VpnStaticRouteSource' => [ 'type' => 'string', 'enum' => [ 'Static', ], ], 'VpnTunnelBandwidth' => [ 'type' => 'string', 'enum' => [ 'standard', 'large', ], ], 'VpnTunnelLogOptions' => [ 'type' => 'structure', 'members' => [ 'CloudWatchLogOptions' => [ 'shape' => 'CloudWatchLogOptions', 'locationName' => 'cloudWatchLogOptions', ], ], ], 'VpnTunnelLogOptionsSpecification' => [ 'type' => 'structure', 'members' => [ 'CloudWatchLogOptions' => [ 'shape' => 'CloudWatchLogOptionsSpecification', ], ], ], 'VpnTunnelOptionsSpecification' => [ 'type' => 'structure', 'members' => [ 'TunnelInsideCidr' => [ 'shape' => 'String', ], 'TunnelInsideIpv6Cidr' => [ 'shape' => 'String', ], 'PreSharedKey' => [ 'shape' => 'preSharedKey', ], 'Phase1LifetimeSeconds' => [ 'shape' => 'Integer', ], 'Phase2LifetimeSeconds' => [ 'shape' => 'Integer', ], 'RekeyMarginTimeSeconds' => [ 'shape' => 'Integer', ], 'RekeyFuzzPercentage' => [ 'shape' => 'Integer', ], 'ReplayWindowSize' => [ 'shape' => 'Integer', ], 'DPDTimeoutSeconds' => [ 'shape' => 'Integer', ], 'DPDTimeoutAction' => [ 'shape' => 'String', ], 'Phase1EncryptionAlgorithms' => [ 'shape' => 'Phase1EncryptionAlgorithmsRequestList', 'locationName' => 'Phase1EncryptionAlgorithm', ], 'Phase2EncryptionAlgorithms' => [ 'shape' => 'Phase2EncryptionAlgorithmsRequestList', 'locationName' => 'Phase2EncryptionAlgorithm', ], 'Phase1IntegrityAlgorithms' => [ 'shape' => 'Phase1IntegrityAlgorithmsRequestList', 'locationName' => 'Phase1IntegrityAlgorithm', ], 'Phase2IntegrityAlgorithms' => [ 'shape' => 'Phase2IntegrityAlgorithmsRequestList', 'locationName' => 'Phase2IntegrityAlgorithm', ], 'Phase1DHGroupNumbers' => [ 'shape' => 'Phase1DHGroupNumbersRequestList', 'locationName' => 'Phase1DHGroupNumber', ], 'Phase2DHGroupNumbers' => [ 'shape' => 'Phase2DHGroupNumbersRequestList', 'locationName' => 'Phase2DHGroupNumber', ], 'IKEVersions' => [ 'shape' => 'IKEVersionsRequestList', 'locationName' => 'IKEVersion', ], 'StartupAction' => [ 'shape' => 'String', ], 'LogOptions' => [ 'shape' => 'VpnTunnelLogOptionsSpecification', ], 'EnableTunnelLifecycleControl' => [ 'shape' => 'Boolean', ], ], ], 'VpnTunnelOptionsSpecificationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnTunnelOptionsSpecification', ], ], 'VpnTunnelProvisioningStatus' => [ 'type' => 'string', 'enum' => [ 'available', 'pending', 'failed', ], ], 'WeekDay' => [ 'type' => 'string', 'enum' => [ 'sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', ], ], 'WithdrawByoipCidrRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'WithdrawByoipCidrResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidr' => [ 'shape' => 'ByoipCidr', 'locationName' => 'byoipCidr', ], ], ], 'Workload' => [ 'type' => 'string', ], 'WorkloadsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Workload', 'locationName' => 'item', ], ], 'ZoneIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ZoneId', ], ], 'ZoneNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ZoneName', ], ], 'customerGatewayConfiguration' => [ 'type' => 'string', 'sensitive' => true, ], 'maxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'preSharedKey' => [ 'type' => 'string', 'sensitive' => true, ], 'scope' => [ 'type' => 'string', 'enum' => [ 'Availability Zone', 'Region', ], ], 'snapshotTierStatusSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SnapshotTierStatus', 'locationName' => 'item', ], ], 'totalFpgaMemory' => [ 'type' => 'integer', ], 'totalGpuMemory' => [ 'type' => 'integer', ], 'totalInferenceMemory' => [ 'type' => 'integer', ], ],]; +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2016-11-15', 'endpointPrefix' => 'ec2', 'protocol' => 'ec2', 'protocols' => [ 'ec2', ], 'serviceAbbreviation' => 'Amazon EC2', 'serviceFullName' => 'Amazon Elastic Compute Cloud', 'serviceId' => 'EC2', 'signatureVersion' => 'v4', 'uid' => 'ec2-2016-11-15', 'xmlNamespace' => 'http://ec2.amazonaws.com/doc/2016-11-15', 'auth' => [ 'aws.auth#sigv4', ], ], 'operations' => [ 'AcceptAddressTransfer' => [ 'name' => 'AcceptAddressTransfer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptAddressTransferRequest', ], 'output' => [ 'shape' => 'AcceptAddressTransferResult', ], ], 'AcceptCapacityReservationBillingOwnership' => [ 'name' => 'AcceptCapacityReservationBillingOwnership', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptCapacityReservationBillingOwnershipRequest', ], 'output' => [ 'shape' => 'AcceptCapacityReservationBillingOwnershipResult', ], ], 'AcceptReservedInstancesExchangeQuote' => [ 'name' => 'AcceptReservedInstancesExchangeQuote', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptReservedInstancesExchangeQuoteRequest', ], 'output' => [ 'shape' => 'AcceptReservedInstancesExchangeQuoteResult', ], ], 'AcceptTransitGatewayClientVpnAttachment' => [ 'name' => 'AcceptTransitGatewayClientVpnAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptTransitGatewayClientVpnAttachmentRequest', ], 'output' => [ 'shape' => 'AcceptTransitGatewayClientVpnAttachmentResult', ], ], 'AcceptTransitGatewayMulticastDomainAssociations' => [ 'name' => 'AcceptTransitGatewayMulticastDomainAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptTransitGatewayMulticastDomainAssociationsRequest', ], 'output' => [ 'shape' => 'AcceptTransitGatewayMulticastDomainAssociationsResult', ], ], 'AcceptTransitGatewayPeeringAttachment' => [ 'name' => 'AcceptTransitGatewayPeeringAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptTransitGatewayPeeringAttachmentRequest', ], 'output' => [ 'shape' => 'AcceptTransitGatewayPeeringAttachmentResult', ], ], 'AcceptTransitGatewayVpcAttachment' => [ 'name' => 'AcceptTransitGatewayVpcAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptTransitGatewayVpcAttachmentRequest', ], 'output' => [ 'shape' => 'AcceptTransitGatewayVpcAttachmentResult', ], ], 'AcceptVpcEndpointConnections' => [ 'name' => 'AcceptVpcEndpointConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptVpcEndpointConnectionsRequest', ], 'output' => [ 'shape' => 'AcceptVpcEndpointConnectionsResult', ], ], 'AcceptVpcPeeringConnection' => [ 'name' => 'AcceptVpcPeeringConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AcceptVpcPeeringConnectionRequest', ], 'output' => [ 'shape' => 'AcceptVpcPeeringConnectionResult', ], ], 'AdvertiseByoipCidr' => [ 'name' => 'AdvertiseByoipCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AdvertiseByoipCidrRequest', ], 'output' => [ 'shape' => 'AdvertiseByoipCidrResult', ], ], 'AllocateAddress' => [ 'name' => 'AllocateAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AllocateAddressRequest', ], 'output' => [ 'shape' => 'AllocateAddressResult', ], ], 'AllocateHosts' => [ 'name' => 'AllocateHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AllocateHostsRequest', ], 'output' => [ 'shape' => 'AllocateHostsResult', ], ], 'AllocateIpamPoolCidr' => [ 'name' => 'AllocateIpamPoolCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AllocateIpamPoolCidrRequest', ], 'output' => [ 'shape' => 'AllocateIpamPoolCidrResult', ], ], 'ApplySecurityGroupsToClientVpnTargetNetwork' => [ 'name' => 'ApplySecurityGroupsToClientVpnTargetNetwork', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ApplySecurityGroupsToClientVpnTargetNetworkRequest', ], 'output' => [ 'shape' => 'ApplySecurityGroupsToClientVpnTargetNetworkResult', ], ], 'AssignIpv6Addresses' => [ 'name' => 'AssignIpv6Addresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssignIpv6AddressesRequest', ], 'output' => [ 'shape' => 'AssignIpv6AddressesResult', ], ], 'AssignPrivateIpAddresses' => [ 'name' => 'AssignPrivateIpAddresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssignPrivateIpAddressesRequest', ], 'output' => [ 'shape' => 'AssignPrivateIpAddressesResult', ], ], 'AssignPrivateNatGatewayAddress' => [ 'name' => 'AssignPrivateNatGatewayAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssignPrivateNatGatewayAddressRequest', ], 'output' => [ 'shape' => 'AssignPrivateNatGatewayAddressResult', ], ], 'AssociateAddress' => [ 'name' => 'AssociateAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateAddressRequest', ], 'output' => [ 'shape' => 'AssociateAddressResult', ], ], 'AssociateCapacityReservationBillingOwner' => [ 'name' => 'AssociateCapacityReservationBillingOwner', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateCapacityReservationBillingOwnerRequest', ], 'output' => [ 'shape' => 'AssociateCapacityReservationBillingOwnerResult', ], ], 'AssociateClientVpnTargetNetwork' => [ 'name' => 'AssociateClientVpnTargetNetwork', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateClientVpnTargetNetworkRequest', ], 'output' => [ 'shape' => 'AssociateClientVpnTargetNetworkResult', ], ], 'AssociateDhcpOptions' => [ 'name' => 'AssociateDhcpOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateDhcpOptionsRequest', ], ], 'AssociateEnclaveCertificateIamRole' => [ 'name' => 'AssociateEnclaveCertificateIamRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateEnclaveCertificateIamRoleRequest', ], 'output' => [ 'shape' => 'AssociateEnclaveCertificateIamRoleResult', ], ], 'AssociateIamInstanceProfile' => [ 'name' => 'AssociateIamInstanceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateIamInstanceProfileRequest', ], 'output' => [ 'shape' => 'AssociateIamInstanceProfileResult', ], ], 'AssociateInstanceEventWindow' => [ 'name' => 'AssociateInstanceEventWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateInstanceEventWindowRequest', ], 'output' => [ 'shape' => 'AssociateInstanceEventWindowResult', ], ], 'AssociateIpamByoasn' => [ 'name' => 'AssociateIpamByoasn', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateIpamByoasnRequest', ], 'output' => [ 'shape' => 'AssociateIpamByoasnResult', ], ], 'AssociateIpamResourceDiscovery' => [ 'name' => 'AssociateIpamResourceDiscovery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateIpamResourceDiscoveryRequest', ], 'output' => [ 'shape' => 'AssociateIpamResourceDiscoveryResult', ], ], 'AssociateNatGatewayAddress' => [ 'name' => 'AssociateNatGatewayAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateNatGatewayAddressRequest', ], 'output' => [ 'shape' => 'AssociateNatGatewayAddressResult', ], ], 'AssociateRouteServer' => [ 'name' => 'AssociateRouteServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateRouteServerRequest', ], 'output' => [ 'shape' => 'AssociateRouteServerResult', ], ], 'AssociateRouteTable' => [ 'name' => 'AssociateRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateRouteTableRequest', ], 'output' => [ 'shape' => 'AssociateRouteTableResult', ], ], 'AssociateSecurityGroupVpc' => [ 'name' => 'AssociateSecurityGroupVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateSecurityGroupVpcRequest', ], 'output' => [ 'shape' => 'AssociateSecurityGroupVpcResult', ], ], 'AssociateSubnetCidrBlock' => [ 'name' => 'AssociateSubnetCidrBlock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateSubnetCidrBlockRequest', ], 'output' => [ 'shape' => 'AssociateSubnetCidrBlockResult', ], ], 'AssociateTransitGatewayMulticastDomain' => [ 'name' => 'AssociateTransitGatewayMulticastDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateTransitGatewayMulticastDomainRequest', ], 'output' => [ 'shape' => 'AssociateTransitGatewayMulticastDomainResult', ], ], 'AssociateTransitGatewayPolicyTable' => [ 'name' => 'AssociateTransitGatewayPolicyTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateTransitGatewayPolicyTableRequest', ], 'output' => [ 'shape' => 'AssociateTransitGatewayPolicyTableResult', ], ], 'AssociateTransitGatewayRouteTable' => [ 'name' => 'AssociateTransitGatewayRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateTransitGatewayRouteTableRequest', ], 'output' => [ 'shape' => 'AssociateTransitGatewayRouteTableResult', ], ], 'AssociateTrunkInterface' => [ 'name' => 'AssociateTrunkInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateTrunkInterfaceRequest', ], 'output' => [ 'shape' => 'AssociateTrunkInterfaceResult', ], ], 'AssociateVpcCidrBlock' => [ 'name' => 'AssociateVpcCidrBlock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssociateVpcCidrBlockRequest', ], 'output' => [ 'shape' => 'AssociateVpcCidrBlockResult', ], ], 'AttachClassicLinkVpc' => [ 'name' => 'AttachClassicLinkVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachClassicLinkVpcRequest', ], 'output' => [ 'shape' => 'AttachClassicLinkVpcResult', ], ], 'AttachImageWatermark' => [ 'name' => 'AttachImageWatermark', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachImageWatermarkRequest', ], 'output' => [ 'shape' => 'AttachImageWatermarkResult', ], ], 'AttachInternetGateway' => [ 'name' => 'AttachInternetGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachInternetGatewayRequest', ], ], 'AttachNetworkInterface' => [ 'name' => 'AttachNetworkInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachNetworkInterfaceRequest', ], 'output' => [ 'shape' => 'AttachNetworkInterfaceResult', ], ], 'AttachVerifiedAccessTrustProvider' => [ 'name' => 'AttachVerifiedAccessTrustProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachVerifiedAccessTrustProviderRequest', ], 'output' => [ 'shape' => 'AttachVerifiedAccessTrustProviderResult', ], ], 'AttachVolume' => [ 'name' => 'AttachVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachVolumeRequest', ], 'output' => [ 'shape' => 'VolumeAttachment', ], ], 'AttachVpnGateway' => [ 'name' => 'AttachVpnGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AttachVpnGatewayRequest', ], 'output' => [ 'shape' => 'AttachVpnGatewayResult', ], ], 'AuthorizeClientVpnIngress' => [ 'name' => 'AuthorizeClientVpnIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AuthorizeClientVpnIngressRequest', ], 'output' => [ 'shape' => 'AuthorizeClientVpnIngressResult', ], ], 'AuthorizeSecurityGroupEgress' => [ 'name' => 'AuthorizeSecurityGroupEgress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AuthorizeSecurityGroupEgressRequest', ], 'output' => [ 'shape' => 'AuthorizeSecurityGroupEgressResult', ], ], 'AuthorizeSecurityGroupIngress' => [ 'name' => 'AuthorizeSecurityGroupIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AuthorizeSecurityGroupIngressRequest', ], 'output' => [ 'shape' => 'AuthorizeSecurityGroupIngressResult', ], ], 'BundleInstance' => [ 'name' => 'BundleInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'BundleInstanceRequest', ], 'output' => [ 'shape' => 'BundleInstanceResult', ], ], 'CancelBundleTask' => [ 'name' => 'CancelBundleTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelBundleTaskRequest', ], 'output' => [ 'shape' => 'CancelBundleTaskResult', ], ], 'CancelCapacityReservation' => [ 'name' => 'CancelCapacityReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelCapacityReservationRequest', ], 'output' => [ 'shape' => 'CancelCapacityReservationResult', ], ], 'CancelCapacityReservationFleets' => [ 'name' => 'CancelCapacityReservationFleets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelCapacityReservationFleetsRequest', ], 'output' => [ 'shape' => 'CancelCapacityReservationFleetsResult', ], ], 'CancelConversionTask' => [ 'name' => 'CancelConversionTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelConversionRequest', ], ], 'CancelDeclarativePoliciesReport' => [ 'name' => 'CancelDeclarativePoliciesReport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelDeclarativePoliciesReportRequest', ], 'output' => [ 'shape' => 'CancelDeclarativePoliciesReportResult', ], ], 'CancelExportTask' => [ 'name' => 'CancelExportTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelExportTaskRequest', ], ], 'CancelImageLaunchPermission' => [ 'name' => 'CancelImageLaunchPermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelImageLaunchPermissionRequest', ], 'output' => [ 'shape' => 'CancelImageLaunchPermissionResult', ], ], 'CancelImportTask' => [ 'name' => 'CancelImportTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelImportTaskRequest', ], 'output' => [ 'shape' => 'CancelImportTaskResult', ], ], 'CancelReservedInstancesListing' => [ 'name' => 'CancelReservedInstancesListing', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelReservedInstancesListingRequest', ], 'output' => [ 'shape' => 'CancelReservedInstancesListingResult', ], ], 'CancelSpotFleetRequests' => [ 'name' => 'CancelSpotFleetRequests', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelSpotFleetRequestsRequest', ], 'output' => [ 'shape' => 'CancelSpotFleetRequestsResponse', ], ], 'CancelSpotInstanceRequests' => [ 'name' => 'CancelSpotInstanceRequests', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelSpotInstanceRequestsRequest', ], 'output' => [ 'shape' => 'CancelSpotInstanceRequestsResult', ], ], 'ConfirmProductInstance' => [ 'name' => 'ConfirmProductInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ConfirmProductInstanceRequest', ], 'output' => [ 'shape' => 'ConfirmProductInstanceResult', ], ], 'CopyFpgaImage' => [ 'name' => 'CopyFpgaImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyFpgaImageRequest', ], 'output' => [ 'shape' => 'CopyFpgaImageResult', ], ], 'CopyImage' => [ 'name' => 'CopyImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyImageRequest', ], 'output' => [ 'shape' => 'CopyImageResult', ], ], 'CopySnapshot' => [ 'name' => 'CopySnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopySnapshotRequest', ], 'output' => [ 'shape' => 'CopySnapshotResult', ], ], 'CopyVolumes' => [ 'name' => 'CopyVolumes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CopyVolumesRequest', ], 'output' => [ 'shape' => 'CopyVolumesResult', ], ], 'CreateCapacityManagerDataExport' => [ 'name' => 'CreateCapacityManagerDataExport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCapacityManagerDataExportRequest', ], 'output' => [ 'shape' => 'CreateCapacityManagerDataExportResult', ], ], 'CreateCapacityReservation' => [ 'name' => 'CreateCapacityReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCapacityReservationRequest', ], 'output' => [ 'shape' => 'CreateCapacityReservationResult', ], ], 'CreateCapacityReservationBySplitting' => [ 'name' => 'CreateCapacityReservationBySplitting', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCapacityReservationBySplittingRequest', ], 'output' => [ 'shape' => 'CreateCapacityReservationBySplittingResult', ], ], 'CreateCapacityReservationCancellationQuote' => [ 'name' => 'CreateCapacityReservationCancellationQuote', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCapacityReservationCancellationQuoteRequest', ], 'output' => [ 'shape' => 'CreateCapacityReservationCancellationQuoteResult', ], ], 'CreateCapacityReservationFleet' => [ 'name' => 'CreateCapacityReservationFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCapacityReservationFleetRequest', ], 'output' => [ 'shape' => 'CreateCapacityReservationFleetResult', ], ], 'CreateCarrierGateway' => [ 'name' => 'CreateCarrierGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCarrierGatewayRequest', ], 'output' => [ 'shape' => 'CreateCarrierGatewayResult', ], ], 'CreateClientVpnEndpoint' => [ 'name' => 'CreateClientVpnEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClientVpnEndpointRequest', ], 'output' => [ 'shape' => 'CreateClientVpnEndpointResult', ], ], 'CreateClientVpnRoute' => [ 'name' => 'CreateClientVpnRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClientVpnRouteRequest', ], 'output' => [ 'shape' => 'CreateClientVpnRouteResult', ], ], 'CreateCoipCidr' => [ 'name' => 'CreateCoipCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCoipCidrRequest', ], 'output' => [ 'shape' => 'CreateCoipCidrResult', ], ], 'CreateCoipPool' => [ 'name' => 'CreateCoipPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCoipPoolRequest', ], 'output' => [ 'shape' => 'CreateCoipPoolResult', ], ], 'CreateCustomerGateway' => [ 'name' => 'CreateCustomerGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCustomerGatewayRequest', ], 'output' => [ 'shape' => 'CreateCustomerGatewayResult', ], ], 'CreateDefaultSubnet' => [ 'name' => 'CreateDefaultSubnet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDefaultSubnetRequest', ], 'output' => [ 'shape' => 'CreateDefaultSubnetResult', ], ], 'CreateDefaultVpc' => [ 'name' => 'CreateDefaultVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDefaultVpcRequest', ], 'output' => [ 'shape' => 'CreateDefaultVpcResult', ], ], 'CreateDelegateMacVolumeOwnershipTask' => [ 'name' => 'CreateDelegateMacVolumeOwnershipTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDelegateMacVolumeOwnershipTaskRequest', ], 'output' => [ 'shape' => 'CreateDelegateMacVolumeOwnershipTaskResult', ], ], 'CreateDhcpOptions' => [ 'name' => 'CreateDhcpOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDhcpOptionsRequest', ], 'output' => [ 'shape' => 'CreateDhcpOptionsResult', ], ], 'CreateEgressOnlyInternetGateway' => [ 'name' => 'CreateEgressOnlyInternetGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateEgressOnlyInternetGatewayRequest', ], 'output' => [ 'shape' => 'CreateEgressOnlyInternetGatewayResult', ], ], 'CreateFleet' => [ 'name' => 'CreateFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateFleetRequest', ], 'output' => [ 'shape' => 'CreateFleetResult', ], ], 'CreateFlowLogs' => [ 'name' => 'CreateFlowLogs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateFlowLogsRequest', ], 'output' => [ 'shape' => 'CreateFlowLogsResult', ], ], 'CreateFpgaImage' => [ 'name' => 'CreateFpgaImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateFpgaImageRequest', ], 'output' => [ 'shape' => 'CreateFpgaImageResult', ], ], 'CreateImage' => [ 'name' => 'CreateImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateImageRequest', ], 'output' => [ 'shape' => 'CreateImageResult', ], ], 'CreateImageUsageReport' => [ 'name' => 'CreateImageUsageReport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateImageUsageReportRequest', ], 'output' => [ 'shape' => 'CreateImageUsageReportResult', ], ], 'CreateInstanceConnectEndpoint' => [ 'name' => 'CreateInstanceConnectEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInstanceConnectEndpointRequest', ], 'output' => [ 'shape' => 'CreateInstanceConnectEndpointResult', ], ], 'CreateInstanceEventWindow' => [ 'name' => 'CreateInstanceEventWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInstanceEventWindowRequest', ], 'output' => [ 'shape' => 'CreateInstanceEventWindowResult', ], ], 'CreateInstanceExportTask' => [ 'name' => 'CreateInstanceExportTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInstanceExportTaskRequest', ], 'output' => [ 'shape' => 'CreateInstanceExportTaskResult', ], ], 'CreateInternetGateway' => [ 'name' => 'CreateInternetGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInternetGatewayRequest', ], 'output' => [ 'shape' => 'CreateInternetGatewayResult', ], ], 'CreateInterruptibleCapacityReservationAllocation' => [ 'name' => 'CreateInterruptibleCapacityReservationAllocation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateInterruptibleCapacityReservationAllocationRequest', ], 'output' => [ 'shape' => 'CreateInterruptibleCapacityReservationAllocationResult', ], ], 'CreateIpam' => [ 'name' => 'CreateIpam', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpamRequest', ], 'output' => [ 'shape' => 'CreateIpamResult', ], ], 'CreateIpamExternalResourceVerificationToken' => [ 'name' => 'CreateIpamExternalResourceVerificationToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpamExternalResourceVerificationTokenRequest', ], 'output' => [ 'shape' => 'CreateIpamExternalResourceVerificationTokenResult', ], ], 'CreateIpamPolicy' => [ 'name' => 'CreateIpamPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpamPolicyRequest', ], 'output' => [ 'shape' => 'CreateIpamPolicyResult', ], ], 'CreateIpamPool' => [ 'name' => 'CreateIpamPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpamPoolRequest', ], 'output' => [ 'shape' => 'CreateIpamPoolResult', ], ], 'CreateIpamPrefixListResolver' => [ 'name' => 'CreateIpamPrefixListResolver', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpamPrefixListResolverRequest', ], 'output' => [ 'shape' => 'CreateIpamPrefixListResolverResult', ], ], 'CreateIpamPrefixListResolverTarget' => [ 'name' => 'CreateIpamPrefixListResolverTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpamPrefixListResolverTargetRequest', ], 'output' => [ 'shape' => 'CreateIpamPrefixListResolverTargetResult', ], ], 'CreateIpamResourceDiscovery' => [ 'name' => 'CreateIpamResourceDiscovery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpamResourceDiscoveryRequest', ], 'output' => [ 'shape' => 'CreateIpamResourceDiscoveryResult', ], ], 'CreateIpamScope' => [ 'name' => 'CreateIpamScope', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateIpamScopeRequest', ], 'output' => [ 'shape' => 'CreateIpamScopeResult', ], ], 'CreateKeyPair' => [ 'name' => 'CreateKeyPair', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateKeyPairRequest', ], 'output' => [ 'shape' => 'KeyPair', ], ], 'CreateLaunchTemplate' => [ 'name' => 'CreateLaunchTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLaunchTemplateRequest', ], 'output' => [ 'shape' => 'CreateLaunchTemplateResult', ], ], 'CreateLaunchTemplateVersion' => [ 'name' => 'CreateLaunchTemplateVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLaunchTemplateVersionRequest', ], 'output' => [ 'shape' => 'CreateLaunchTemplateVersionResult', ], ], 'CreateLocalGatewayRoute' => [ 'name' => 'CreateLocalGatewayRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLocalGatewayRouteRequest', ], 'output' => [ 'shape' => 'CreateLocalGatewayRouteResult', ], ], 'CreateLocalGatewayRouteTable' => [ 'name' => 'CreateLocalGatewayRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLocalGatewayRouteTableRequest', ], 'output' => [ 'shape' => 'CreateLocalGatewayRouteTableResult', ], ], 'CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation' => [ 'name' => 'CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest', ], 'output' => [ 'shape' => 'CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult', ], ], 'CreateLocalGatewayRouteTableVpcAssociation' => [ 'name' => 'CreateLocalGatewayRouteTableVpcAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLocalGatewayRouteTableVpcAssociationRequest', ], 'output' => [ 'shape' => 'CreateLocalGatewayRouteTableVpcAssociationResult', ], ], 'CreateLocalGatewayVirtualInterface' => [ 'name' => 'CreateLocalGatewayVirtualInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLocalGatewayVirtualInterfaceRequest', ], 'output' => [ 'shape' => 'CreateLocalGatewayVirtualInterfaceResult', ], ], 'CreateLocalGatewayVirtualInterfaceGroup' => [ 'name' => 'CreateLocalGatewayVirtualInterfaceGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateLocalGatewayVirtualInterfaceGroupRequest', ], 'output' => [ 'shape' => 'CreateLocalGatewayVirtualInterfaceGroupResult', ], ], 'CreateMacSystemIntegrityProtectionModificationTask' => [ 'name' => 'CreateMacSystemIntegrityProtectionModificationTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateMacSystemIntegrityProtectionModificationTaskRequest', ], 'output' => [ 'shape' => 'CreateMacSystemIntegrityProtectionModificationTaskResult', ], ], 'CreateManagedPrefixList' => [ 'name' => 'CreateManagedPrefixList', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateManagedPrefixListRequest', ], 'output' => [ 'shape' => 'CreateManagedPrefixListResult', ], ], 'CreateNatGateway' => [ 'name' => 'CreateNatGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNatGatewayRequest', ], 'output' => [ 'shape' => 'CreateNatGatewayResult', ], ], 'CreateNetworkAcl' => [ 'name' => 'CreateNetworkAcl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNetworkAclRequest', ], 'output' => [ 'shape' => 'CreateNetworkAclResult', ], ], 'CreateNetworkAclEntry' => [ 'name' => 'CreateNetworkAclEntry', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNetworkAclEntryRequest', ], ], 'CreateNetworkInsightsAccessScope' => [ 'name' => 'CreateNetworkInsightsAccessScope', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNetworkInsightsAccessScopeRequest', ], 'output' => [ 'shape' => 'CreateNetworkInsightsAccessScopeResult', ], ], 'CreateNetworkInsightsPath' => [ 'name' => 'CreateNetworkInsightsPath', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNetworkInsightsPathRequest', ], 'output' => [ 'shape' => 'CreateNetworkInsightsPathResult', ], ], 'CreateNetworkInterface' => [ 'name' => 'CreateNetworkInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNetworkInterfaceRequest', ], 'output' => [ 'shape' => 'CreateNetworkInterfaceResult', ], ], 'CreateNetworkInterfacePermission' => [ 'name' => 'CreateNetworkInterfacePermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateNetworkInterfacePermissionRequest', ], 'output' => [ 'shape' => 'CreateNetworkInterfacePermissionResult', ], ], 'CreatePlacementGroup' => [ 'name' => 'CreatePlacementGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePlacementGroupRequest', ], 'output' => [ 'shape' => 'CreatePlacementGroupResult', ], ], 'CreatePublicIpv4Pool' => [ 'name' => 'CreatePublicIpv4Pool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePublicIpv4PoolRequest', ], 'output' => [ 'shape' => 'CreatePublicIpv4PoolResult', ], ], 'CreateReplaceRootVolumeTask' => [ 'name' => 'CreateReplaceRootVolumeTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateReplaceRootVolumeTaskRequest', ], 'output' => [ 'shape' => 'CreateReplaceRootVolumeTaskResult', ], ], 'CreateReservedInstancesListing' => [ 'name' => 'CreateReservedInstancesListing', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateReservedInstancesListingRequest', ], 'output' => [ 'shape' => 'CreateReservedInstancesListingResult', ], ], 'CreateRestoreImageTask' => [ 'name' => 'CreateRestoreImageTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRestoreImageTaskRequest', ], 'output' => [ 'shape' => 'CreateRestoreImageTaskResult', ], ], 'CreateRoute' => [ 'name' => 'CreateRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRouteRequest', ], 'output' => [ 'shape' => 'CreateRouteResult', ], ], 'CreateRouteServer' => [ 'name' => 'CreateRouteServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRouteServerRequest', ], 'output' => [ 'shape' => 'CreateRouteServerResult', ], ], 'CreateRouteServerEndpoint' => [ 'name' => 'CreateRouteServerEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRouteServerEndpointRequest', ], 'output' => [ 'shape' => 'CreateRouteServerEndpointResult', ], ], 'CreateRouteServerPeer' => [ 'name' => 'CreateRouteServerPeer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRouteServerPeerRequest', ], 'output' => [ 'shape' => 'CreateRouteServerPeerResult', ], ], 'CreateRouteTable' => [ 'name' => 'CreateRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateRouteTableRequest', ], 'output' => [ 'shape' => 'CreateRouteTableResult', ], ], 'CreateSecondaryNetwork' => [ 'name' => 'CreateSecondaryNetwork', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSecondaryNetworkRequest', ], 'output' => [ 'shape' => 'CreateSecondaryNetworkResult', ], ], 'CreateSecondarySubnet' => [ 'name' => 'CreateSecondarySubnet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSecondarySubnetRequest', ], 'output' => [ 'shape' => 'CreateSecondarySubnetResult', ], ], 'CreateSecurityGroup' => [ 'name' => 'CreateSecurityGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSecurityGroupRequest', ], 'output' => [ 'shape' => 'CreateSecurityGroupResult', ], ], 'CreateSnapshot' => [ 'name' => 'CreateSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSnapshotRequest', ], 'output' => [ 'shape' => 'Snapshot', ], ], 'CreateSnapshots' => [ 'name' => 'CreateSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSnapshotsRequest', ], 'output' => [ 'shape' => 'CreateSnapshotsResult', ], ], 'CreateSpotDatafeedSubscription' => [ 'name' => 'CreateSpotDatafeedSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSpotDatafeedSubscriptionRequest', ], 'output' => [ 'shape' => 'CreateSpotDatafeedSubscriptionResult', ], ], 'CreateStoreImageTask' => [ 'name' => 'CreateStoreImageTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateStoreImageTaskRequest', ], 'output' => [ 'shape' => 'CreateStoreImageTaskResult', ], ], 'CreateSubnet' => [ 'name' => 'CreateSubnet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSubnetRequest', ], 'output' => [ 'shape' => 'CreateSubnetResult', ], ], 'CreateSubnetCidrReservation' => [ 'name' => 'CreateSubnetCidrReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSubnetCidrReservationRequest', ], 'output' => [ 'shape' => 'CreateSubnetCidrReservationResult', ], ], 'CreateTags' => [ 'name' => 'CreateTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTagsRequest', ], ], 'CreateTrafficMirrorFilter' => [ 'name' => 'CreateTrafficMirrorFilter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTrafficMirrorFilterRequest', ], 'output' => [ 'shape' => 'CreateTrafficMirrorFilterResult', ], ], 'CreateTrafficMirrorFilterRule' => [ 'name' => 'CreateTrafficMirrorFilterRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTrafficMirrorFilterRuleRequest', ], 'output' => [ 'shape' => 'CreateTrafficMirrorFilterRuleResult', ], ], 'CreateTrafficMirrorSession' => [ 'name' => 'CreateTrafficMirrorSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTrafficMirrorSessionRequest', ], 'output' => [ 'shape' => 'CreateTrafficMirrorSessionResult', ], ], 'CreateTrafficMirrorTarget' => [ 'name' => 'CreateTrafficMirrorTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTrafficMirrorTargetRequest', ], 'output' => [ 'shape' => 'CreateTrafficMirrorTargetResult', ], ], 'CreateTransitGateway' => [ 'name' => 'CreateTransitGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayResult', ], ], 'CreateTransitGatewayConnect' => [ 'name' => 'CreateTransitGatewayConnect', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayConnectRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayConnectResult', ], ], 'CreateTransitGatewayConnectPeer' => [ 'name' => 'CreateTransitGatewayConnectPeer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayConnectPeerRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayConnectPeerResult', ], ], 'CreateTransitGatewayMeteringPolicy' => [ 'name' => 'CreateTransitGatewayMeteringPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayMeteringPolicyRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayMeteringPolicyResult', ], ], 'CreateTransitGatewayMeteringPolicyEntry' => [ 'name' => 'CreateTransitGatewayMeteringPolicyEntry', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayMeteringPolicyEntryRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayMeteringPolicyEntryResult', ], ], 'CreateTransitGatewayMulticastDomain' => [ 'name' => 'CreateTransitGatewayMulticastDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayMulticastDomainRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayMulticastDomainResult', ], ], 'CreateTransitGatewayPeeringAttachment' => [ 'name' => 'CreateTransitGatewayPeeringAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayPeeringAttachmentRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayPeeringAttachmentResult', ], ], 'CreateTransitGatewayPolicyTable' => [ 'name' => 'CreateTransitGatewayPolicyTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayPolicyTableRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayPolicyTableResult', ], ], 'CreateTransitGatewayPrefixListReference' => [ 'name' => 'CreateTransitGatewayPrefixListReference', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayPrefixListReferenceRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayPrefixListReferenceResult', ], ], 'CreateTransitGatewayRoute' => [ 'name' => 'CreateTransitGatewayRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayRouteRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayRouteResult', ], ], 'CreateTransitGatewayRouteTable' => [ 'name' => 'CreateTransitGatewayRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayRouteTableRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayRouteTableResult', ], ], 'CreateTransitGatewayRouteTableAnnouncement' => [ 'name' => 'CreateTransitGatewayRouteTableAnnouncement', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayRouteTableAnnouncementRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayRouteTableAnnouncementResult', ], ], 'CreateTransitGatewayVpcAttachment' => [ 'name' => 'CreateTransitGatewayVpcAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTransitGatewayVpcAttachmentRequest', ], 'output' => [ 'shape' => 'CreateTransitGatewayVpcAttachmentResult', ], ], 'CreateVerifiedAccessEndpoint' => [ 'name' => 'CreateVerifiedAccessEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVerifiedAccessEndpointRequest', ], 'output' => [ 'shape' => 'CreateVerifiedAccessEndpointResult', ], ], 'CreateVerifiedAccessGroup' => [ 'name' => 'CreateVerifiedAccessGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVerifiedAccessGroupRequest', ], 'output' => [ 'shape' => 'CreateVerifiedAccessGroupResult', ], ], 'CreateVerifiedAccessInstance' => [ 'name' => 'CreateVerifiedAccessInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVerifiedAccessInstanceRequest', ], 'output' => [ 'shape' => 'CreateVerifiedAccessInstanceResult', ], ], 'CreateVerifiedAccessTrustProvider' => [ 'name' => 'CreateVerifiedAccessTrustProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVerifiedAccessTrustProviderRequest', ], 'output' => [ 'shape' => 'CreateVerifiedAccessTrustProviderResult', ], ], 'CreateVolume' => [ 'name' => 'CreateVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVolumeRequest', ], 'output' => [ 'shape' => 'Volume', ], ], 'CreateVpc' => [ 'name' => 'CreateVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcRequest', ], 'output' => [ 'shape' => 'CreateVpcResult', ], ], 'CreateVpcBlockPublicAccessExclusion' => [ 'name' => 'CreateVpcBlockPublicAccessExclusion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcBlockPublicAccessExclusionRequest', ], 'output' => [ 'shape' => 'CreateVpcBlockPublicAccessExclusionResult', ], ], 'CreateVpcEncryptionControl' => [ 'name' => 'CreateVpcEncryptionControl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcEncryptionControlRequest', ], 'output' => [ 'shape' => 'CreateVpcEncryptionControlResult', ], ], 'CreateVpcEndpoint' => [ 'name' => 'CreateVpcEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcEndpointRequest', ], 'output' => [ 'shape' => 'CreateVpcEndpointResult', ], ], 'CreateVpcEndpointConnectionNotification' => [ 'name' => 'CreateVpcEndpointConnectionNotification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcEndpointConnectionNotificationRequest', ], 'output' => [ 'shape' => 'CreateVpcEndpointConnectionNotificationResult', ], ], 'CreateVpcEndpointServiceConfiguration' => [ 'name' => 'CreateVpcEndpointServiceConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcEndpointServiceConfigurationRequest', ], 'output' => [ 'shape' => 'CreateVpcEndpointServiceConfigurationResult', ], ], 'CreateVpcPeeringConnection' => [ 'name' => 'CreateVpcPeeringConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpcPeeringConnectionRequest', ], 'output' => [ 'shape' => 'CreateVpcPeeringConnectionResult', ], ], 'CreateVpnConcentrator' => [ 'name' => 'CreateVpnConcentrator', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpnConcentratorRequest', ], 'output' => [ 'shape' => 'CreateVpnConcentratorResult', ], ], 'CreateVpnConnection' => [ 'name' => 'CreateVpnConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpnConnectionRequest', ], 'output' => [ 'shape' => 'CreateVpnConnectionResult', ], ], 'CreateVpnConnectionRoute' => [ 'name' => 'CreateVpnConnectionRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpnConnectionRouteRequest', ], ], 'CreateVpnGateway' => [ 'name' => 'CreateVpnGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateVpnGatewayRequest', ], 'output' => [ 'shape' => 'CreateVpnGatewayResult', ], ], 'DeleteCapacityManagerDataExport' => [ 'name' => 'DeleteCapacityManagerDataExport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCapacityManagerDataExportRequest', ], 'output' => [ 'shape' => 'DeleteCapacityManagerDataExportResult', ], ], 'DeleteCarrierGateway' => [ 'name' => 'DeleteCarrierGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCarrierGatewayRequest', ], 'output' => [ 'shape' => 'DeleteCarrierGatewayResult', ], ], 'DeleteClientVpnEndpoint' => [ 'name' => 'DeleteClientVpnEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClientVpnEndpointRequest', ], 'output' => [ 'shape' => 'DeleteClientVpnEndpointResult', ], ], 'DeleteClientVpnRoute' => [ 'name' => 'DeleteClientVpnRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClientVpnRouteRequest', ], 'output' => [ 'shape' => 'DeleteClientVpnRouteResult', ], ], 'DeleteCoipCidr' => [ 'name' => 'DeleteCoipCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCoipCidrRequest', ], 'output' => [ 'shape' => 'DeleteCoipCidrResult', ], ], 'DeleteCoipPool' => [ 'name' => 'DeleteCoipPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCoipPoolRequest', ], 'output' => [ 'shape' => 'DeleteCoipPoolResult', ], ], 'DeleteCustomerGateway' => [ 'name' => 'DeleteCustomerGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCustomerGatewayRequest', ], ], 'DeleteDhcpOptions' => [ 'name' => 'DeleteDhcpOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDhcpOptionsRequest', ], ], 'DeleteEgressOnlyInternetGateway' => [ 'name' => 'DeleteEgressOnlyInternetGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEgressOnlyInternetGatewayRequest', ], 'output' => [ 'shape' => 'DeleteEgressOnlyInternetGatewayResult', ], ], 'DeleteFleets' => [ 'name' => 'DeleteFleets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteFleetsRequest', ], 'output' => [ 'shape' => 'DeleteFleetsResult', ], ], 'DeleteFlowLogs' => [ 'name' => 'DeleteFlowLogs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteFlowLogsRequest', ], 'output' => [ 'shape' => 'DeleteFlowLogsResult', ], ], 'DeleteFpgaImage' => [ 'name' => 'DeleteFpgaImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteFpgaImageRequest', ], 'output' => [ 'shape' => 'DeleteFpgaImageResult', ], ], 'DeleteImageUsageReport' => [ 'name' => 'DeleteImageUsageReport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteImageUsageReportRequest', ], 'output' => [ 'shape' => 'DeleteImageUsageReportResult', ], ], 'DeleteInstanceConnectEndpoint' => [ 'name' => 'DeleteInstanceConnectEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteInstanceConnectEndpointRequest', ], 'output' => [ 'shape' => 'DeleteInstanceConnectEndpointResult', ], ], 'DeleteInstanceEventWindow' => [ 'name' => 'DeleteInstanceEventWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteInstanceEventWindowRequest', ], 'output' => [ 'shape' => 'DeleteInstanceEventWindowResult', ], ], 'DeleteInternetGateway' => [ 'name' => 'DeleteInternetGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteInternetGatewayRequest', ], ], 'DeleteIpam' => [ 'name' => 'DeleteIpam', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpamRequest', ], 'output' => [ 'shape' => 'DeleteIpamResult', ], ], 'DeleteIpamExternalResourceVerificationToken' => [ 'name' => 'DeleteIpamExternalResourceVerificationToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpamExternalResourceVerificationTokenRequest', ], 'output' => [ 'shape' => 'DeleteIpamExternalResourceVerificationTokenResult', ], ], 'DeleteIpamPolicy' => [ 'name' => 'DeleteIpamPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpamPolicyRequest', ], 'output' => [ 'shape' => 'DeleteIpamPolicyResult', ], ], 'DeleteIpamPool' => [ 'name' => 'DeleteIpamPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpamPoolRequest', ], 'output' => [ 'shape' => 'DeleteIpamPoolResult', ], ], 'DeleteIpamPrefixListResolver' => [ 'name' => 'DeleteIpamPrefixListResolver', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpamPrefixListResolverRequest', ], 'output' => [ 'shape' => 'DeleteIpamPrefixListResolverResult', ], ], 'DeleteIpamPrefixListResolverTarget' => [ 'name' => 'DeleteIpamPrefixListResolverTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpamPrefixListResolverTargetRequest', ], 'output' => [ 'shape' => 'DeleteIpamPrefixListResolverTargetResult', ], ], 'DeleteIpamResourceDiscovery' => [ 'name' => 'DeleteIpamResourceDiscovery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpamResourceDiscoveryRequest', ], 'output' => [ 'shape' => 'DeleteIpamResourceDiscoveryResult', ], ], 'DeleteIpamScope' => [ 'name' => 'DeleteIpamScope', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteIpamScopeRequest', ], 'output' => [ 'shape' => 'DeleteIpamScopeResult', ], ], 'DeleteKeyPair' => [ 'name' => 'DeleteKeyPair', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteKeyPairRequest', ], 'output' => [ 'shape' => 'DeleteKeyPairResult', ], ], 'DeleteLaunchTemplate' => [ 'name' => 'DeleteLaunchTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLaunchTemplateRequest', ], 'output' => [ 'shape' => 'DeleteLaunchTemplateResult', ], ], 'DeleteLaunchTemplateVersions' => [ 'name' => 'DeleteLaunchTemplateVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLaunchTemplateVersionsRequest', ], 'output' => [ 'shape' => 'DeleteLaunchTemplateVersionsResult', ], ], 'DeleteLocalGatewayRoute' => [ 'name' => 'DeleteLocalGatewayRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLocalGatewayRouteRequest', ], 'output' => [ 'shape' => 'DeleteLocalGatewayRouteResult', ], ], 'DeleteLocalGatewayRouteTable' => [ 'name' => 'DeleteLocalGatewayRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLocalGatewayRouteTableRequest', ], 'output' => [ 'shape' => 'DeleteLocalGatewayRouteTableResult', ], ], 'DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation' => [ 'name' => 'DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest', ], 'output' => [ 'shape' => 'DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult', ], ], 'DeleteLocalGatewayRouteTableVpcAssociation' => [ 'name' => 'DeleteLocalGatewayRouteTableVpcAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLocalGatewayRouteTableVpcAssociationRequest', ], 'output' => [ 'shape' => 'DeleteLocalGatewayRouteTableVpcAssociationResult', ], ], 'DeleteLocalGatewayVirtualInterface' => [ 'name' => 'DeleteLocalGatewayVirtualInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLocalGatewayVirtualInterfaceRequest', ], 'output' => [ 'shape' => 'DeleteLocalGatewayVirtualInterfaceResult', ], ], 'DeleteLocalGatewayVirtualInterfaceGroup' => [ 'name' => 'DeleteLocalGatewayVirtualInterfaceGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteLocalGatewayVirtualInterfaceGroupRequest', ], 'output' => [ 'shape' => 'DeleteLocalGatewayVirtualInterfaceGroupResult', ], ], 'DeleteManagedPrefixList' => [ 'name' => 'DeleteManagedPrefixList', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteManagedPrefixListRequest', ], 'output' => [ 'shape' => 'DeleteManagedPrefixListResult', ], ], 'DeleteNatGateway' => [ 'name' => 'DeleteNatGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNatGatewayRequest', ], 'output' => [ 'shape' => 'DeleteNatGatewayResult', ], ], 'DeleteNetworkAcl' => [ 'name' => 'DeleteNetworkAcl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkAclRequest', ], ], 'DeleteNetworkAclEntry' => [ 'name' => 'DeleteNetworkAclEntry', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkAclEntryRequest', ], ], 'DeleteNetworkInsightsAccessScope' => [ 'name' => 'DeleteNetworkInsightsAccessScope', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkInsightsAccessScopeRequest', ], 'output' => [ 'shape' => 'DeleteNetworkInsightsAccessScopeResult', ], ], 'DeleteNetworkInsightsAccessScopeAnalysis' => [ 'name' => 'DeleteNetworkInsightsAccessScopeAnalysis', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkInsightsAccessScopeAnalysisRequest', ], 'output' => [ 'shape' => 'DeleteNetworkInsightsAccessScopeAnalysisResult', ], ], 'DeleteNetworkInsightsAnalysis' => [ 'name' => 'DeleteNetworkInsightsAnalysis', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkInsightsAnalysisRequest', ], 'output' => [ 'shape' => 'DeleteNetworkInsightsAnalysisResult', ], ], 'DeleteNetworkInsightsPath' => [ 'name' => 'DeleteNetworkInsightsPath', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkInsightsPathRequest', ], 'output' => [ 'shape' => 'DeleteNetworkInsightsPathResult', ], ], 'DeleteNetworkInterface' => [ 'name' => 'DeleteNetworkInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkInterfaceRequest', ], ], 'DeleteNetworkInterfacePermission' => [ 'name' => 'DeleteNetworkInterfacePermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteNetworkInterfacePermissionRequest', ], 'output' => [ 'shape' => 'DeleteNetworkInterfacePermissionResult', ], ], 'DeletePlacementGroup' => [ 'name' => 'DeletePlacementGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePlacementGroupRequest', ], ], 'DeletePublicIpv4Pool' => [ 'name' => 'DeletePublicIpv4Pool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePublicIpv4PoolRequest', ], 'output' => [ 'shape' => 'DeletePublicIpv4PoolResult', ], ], 'DeleteQueuedReservedInstances' => [ 'name' => 'DeleteQueuedReservedInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteQueuedReservedInstancesRequest', ], 'output' => [ 'shape' => 'DeleteQueuedReservedInstancesResult', ], ], 'DeleteRoute' => [ 'name' => 'DeleteRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRouteRequest', ], ], 'DeleteRouteServer' => [ 'name' => 'DeleteRouteServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRouteServerRequest', ], 'output' => [ 'shape' => 'DeleteRouteServerResult', ], ], 'DeleteRouteServerEndpoint' => [ 'name' => 'DeleteRouteServerEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRouteServerEndpointRequest', ], 'output' => [ 'shape' => 'DeleteRouteServerEndpointResult', ], ], 'DeleteRouteServerPeer' => [ 'name' => 'DeleteRouteServerPeer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRouteServerPeerRequest', ], 'output' => [ 'shape' => 'DeleteRouteServerPeerResult', ], ], 'DeleteRouteTable' => [ 'name' => 'DeleteRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteRouteTableRequest', ], ], 'DeleteSecondaryNetwork' => [ 'name' => 'DeleteSecondaryNetwork', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSecondaryNetworkRequest', ], 'output' => [ 'shape' => 'DeleteSecondaryNetworkResult', ], ], 'DeleteSecondarySubnet' => [ 'name' => 'DeleteSecondarySubnet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSecondarySubnetRequest', ], 'output' => [ 'shape' => 'DeleteSecondarySubnetResult', ], ], 'DeleteSecurityGroup' => [ 'name' => 'DeleteSecurityGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSecurityGroupRequest', ], 'output' => [ 'shape' => 'DeleteSecurityGroupResult', ], ], 'DeleteSnapshot' => [ 'name' => 'DeleteSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSnapshotRequest', ], ], 'DeleteSpotDatafeedSubscription' => [ 'name' => 'DeleteSpotDatafeedSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSpotDatafeedSubscriptionRequest', ], ], 'DeleteSubnet' => [ 'name' => 'DeleteSubnet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSubnetRequest', ], ], 'DeleteSubnetCidrReservation' => [ 'name' => 'DeleteSubnetCidrReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSubnetCidrReservationRequest', ], 'output' => [ 'shape' => 'DeleteSubnetCidrReservationResult', ], ], 'DeleteTags' => [ 'name' => 'DeleteTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTagsRequest', ], ], 'DeleteTrafficMirrorFilter' => [ 'name' => 'DeleteTrafficMirrorFilter', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTrafficMirrorFilterRequest', ], 'output' => [ 'shape' => 'DeleteTrafficMirrorFilterResult', ], ], 'DeleteTrafficMirrorFilterRule' => [ 'name' => 'DeleteTrafficMirrorFilterRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTrafficMirrorFilterRuleRequest', ], 'output' => [ 'shape' => 'DeleteTrafficMirrorFilterRuleResult', ], ], 'DeleteTrafficMirrorSession' => [ 'name' => 'DeleteTrafficMirrorSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTrafficMirrorSessionRequest', ], 'output' => [ 'shape' => 'DeleteTrafficMirrorSessionResult', ], ], 'DeleteTrafficMirrorTarget' => [ 'name' => 'DeleteTrafficMirrorTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTrafficMirrorTargetRequest', ], 'output' => [ 'shape' => 'DeleteTrafficMirrorTargetResult', ], ], 'DeleteTransitGateway' => [ 'name' => 'DeleteTransitGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayResult', ], ], 'DeleteTransitGatewayClientVpnAttachment' => [ 'name' => 'DeleteTransitGatewayClientVpnAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayClientVpnAttachmentRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayClientVpnAttachmentResult', ], ], 'DeleteTransitGatewayConnect' => [ 'name' => 'DeleteTransitGatewayConnect', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayConnectRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayConnectResult', ], ], 'DeleteTransitGatewayConnectPeer' => [ 'name' => 'DeleteTransitGatewayConnectPeer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayConnectPeerRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayConnectPeerResult', ], ], 'DeleteTransitGatewayMeteringPolicy' => [ 'name' => 'DeleteTransitGatewayMeteringPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayMeteringPolicyRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayMeteringPolicyResult', ], ], 'DeleteTransitGatewayMeteringPolicyEntry' => [ 'name' => 'DeleteTransitGatewayMeteringPolicyEntry', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayMeteringPolicyEntryRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayMeteringPolicyEntryResult', ], ], 'DeleteTransitGatewayMulticastDomain' => [ 'name' => 'DeleteTransitGatewayMulticastDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayMulticastDomainRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayMulticastDomainResult', ], ], 'DeleteTransitGatewayPeeringAttachment' => [ 'name' => 'DeleteTransitGatewayPeeringAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayPeeringAttachmentRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayPeeringAttachmentResult', ], ], 'DeleteTransitGatewayPolicyTable' => [ 'name' => 'DeleteTransitGatewayPolicyTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayPolicyTableRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayPolicyTableResult', ], ], 'DeleteTransitGatewayPrefixListReference' => [ 'name' => 'DeleteTransitGatewayPrefixListReference', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayPrefixListReferenceRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayPrefixListReferenceResult', ], ], 'DeleteTransitGatewayRoute' => [ 'name' => 'DeleteTransitGatewayRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayRouteRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayRouteResult', ], ], 'DeleteTransitGatewayRouteTable' => [ 'name' => 'DeleteTransitGatewayRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayRouteTableRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayRouteTableResult', ], ], 'DeleteTransitGatewayRouteTableAnnouncement' => [ 'name' => 'DeleteTransitGatewayRouteTableAnnouncement', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayRouteTableAnnouncementRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayRouteTableAnnouncementResult', ], ], 'DeleteTransitGatewayVpcAttachment' => [ 'name' => 'DeleteTransitGatewayVpcAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTransitGatewayVpcAttachmentRequest', ], 'output' => [ 'shape' => 'DeleteTransitGatewayVpcAttachmentResult', ], ], 'DeleteVerifiedAccessEndpoint' => [ 'name' => 'DeleteVerifiedAccessEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVerifiedAccessEndpointRequest', ], 'output' => [ 'shape' => 'DeleteVerifiedAccessEndpointResult', ], ], 'DeleteVerifiedAccessGroup' => [ 'name' => 'DeleteVerifiedAccessGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVerifiedAccessGroupRequest', ], 'output' => [ 'shape' => 'DeleteVerifiedAccessGroupResult', ], ], 'DeleteVerifiedAccessInstance' => [ 'name' => 'DeleteVerifiedAccessInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVerifiedAccessInstanceRequest', ], 'output' => [ 'shape' => 'DeleteVerifiedAccessInstanceResult', ], ], 'DeleteVerifiedAccessTrustProvider' => [ 'name' => 'DeleteVerifiedAccessTrustProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVerifiedAccessTrustProviderRequest', ], 'output' => [ 'shape' => 'DeleteVerifiedAccessTrustProviderResult', ], ], 'DeleteVolume' => [ 'name' => 'DeleteVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVolumeRequest', ], ], 'DeleteVpc' => [ 'name' => 'DeleteVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcRequest', ], ], 'DeleteVpcBlockPublicAccessExclusion' => [ 'name' => 'DeleteVpcBlockPublicAccessExclusion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcBlockPublicAccessExclusionRequest', ], 'output' => [ 'shape' => 'DeleteVpcBlockPublicAccessExclusionResult', ], ], 'DeleteVpcEncryptionControl' => [ 'name' => 'DeleteVpcEncryptionControl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcEncryptionControlRequest', ], 'output' => [ 'shape' => 'DeleteVpcEncryptionControlResult', ], ], 'DeleteVpcEndpointConnectionNotifications' => [ 'name' => 'DeleteVpcEndpointConnectionNotifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcEndpointConnectionNotificationsRequest', ], 'output' => [ 'shape' => 'DeleteVpcEndpointConnectionNotificationsResult', ], ], 'DeleteVpcEndpointServiceConfigurations' => [ 'name' => 'DeleteVpcEndpointServiceConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcEndpointServiceConfigurationsRequest', ], 'output' => [ 'shape' => 'DeleteVpcEndpointServiceConfigurationsResult', ], ], 'DeleteVpcEndpoints' => [ 'name' => 'DeleteVpcEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcEndpointsRequest', ], 'output' => [ 'shape' => 'DeleteVpcEndpointsResult', ], ], 'DeleteVpcPeeringConnection' => [ 'name' => 'DeleteVpcPeeringConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpcPeeringConnectionRequest', ], 'output' => [ 'shape' => 'DeleteVpcPeeringConnectionResult', ], ], 'DeleteVpnConcentrator' => [ 'name' => 'DeleteVpnConcentrator', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpnConcentratorRequest', ], 'output' => [ 'shape' => 'DeleteVpnConcentratorResult', ], ], 'DeleteVpnConnection' => [ 'name' => 'DeleteVpnConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpnConnectionRequest', ], ], 'DeleteVpnConnectionRoute' => [ 'name' => 'DeleteVpnConnectionRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpnConnectionRouteRequest', ], ], 'DeleteVpnGateway' => [ 'name' => 'DeleteVpnGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteVpnGatewayRequest', ], ], 'DeprovisionByoipCidr' => [ 'name' => 'DeprovisionByoipCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeprovisionByoipCidrRequest', ], 'output' => [ 'shape' => 'DeprovisionByoipCidrResult', ], ], 'DeprovisionIpamByoasn' => [ 'name' => 'DeprovisionIpamByoasn', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeprovisionIpamByoasnRequest', ], 'output' => [ 'shape' => 'DeprovisionIpamByoasnResult', ], ], 'DeprovisionIpamPoolCidr' => [ 'name' => 'DeprovisionIpamPoolCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeprovisionIpamPoolCidrRequest', ], 'output' => [ 'shape' => 'DeprovisionIpamPoolCidrResult', ], ], 'DeprovisionPublicIpv4PoolCidr' => [ 'name' => 'DeprovisionPublicIpv4PoolCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeprovisionPublicIpv4PoolCidrRequest', ], 'output' => [ 'shape' => 'DeprovisionPublicIpv4PoolCidrResult', ], ], 'DeregisterImage' => [ 'name' => 'DeregisterImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterImageRequest', ], 'output' => [ 'shape' => 'DeregisterImageResult', ], ], 'DeregisterInstanceEventNotificationAttributes' => [ 'name' => 'DeregisterInstanceEventNotificationAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterInstanceEventNotificationAttributesRequest', ], 'output' => [ 'shape' => 'DeregisterInstanceEventNotificationAttributesResult', ], ], 'DeregisterTransitGatewayMulticastGroupMembers' => [ 'name' => 'DeregisterTransitGatewayMulticastGroupMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterTransitGatewayMulticastGroupMembersRequest', ], 'output' => [ 'shape' => 'DeregisterTransitGatewayMulticastGroupMembersResult', ], ], 'DeregisterTransitGatewayMulticastGroupSources' => [ 'name' => 'DeregisterTransitGatewayMulticastGroupSources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterTransitGatewayMulticastGroupSourcesRequest', ], 'output' => [ 'shape' => 'DeregisterTransitGatewayMulticastGroupSourcesResult', ], ], 'DescribeAccountAttributes' => [ 'name' => 'DescribeAccountAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAccountAttributesRequest', ], 'output' => [ 'shape' => 'DescribeAccountAttributesResult', ], ], 'DescribeAccountVpcEncryptionControl' => [ 'name' => 'DescribeAccountVpcEncryptionControl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAccountVpcEncryptionControlRequest', ], 'output' => [ 'shape' => 'DescribeAccountVpcEncryptionControlResult', ], ], 'DescribeAddressTransfers' => [ 'name' => 'DescribeAddressTransfers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAddressTransfersRequest', ], 'output' => [ 'shape' => 'DescribeAddressTransfersResult', ], ], 'DescribeAddresses' => [ 'name' => 'DescribeAddresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAddressesRequest', ], 'output' => [ 'shape' => 'DescribeAddressesResult', ], ], 'DescribeAddressesAttribute' => [ 'name' => 'DescribeAddressesAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAddressesAttributeRequest', ], 'output' => [ 'shape' => 'DescribeAddressesAttributeResult', ], ], 'DescribeAggregateIdFormat' => [ 'name' => 'DescribeAggregateIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAggregateIdFormatRequest', ], 'output' => [ 'shape' => 'DescribeAggregateIdFormatResult', ], ], 'DescribeAvailabilityZones' => [ 'name' => 'DescribeAvailabilityZones', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAvailabilityZonesRequest', ], 'output' => [ 'shape' => 'DescribeAvailabilityZonesResult', ], ], 'DescribeAwsNetworkPerformanceMetricSubscriptions' => [ 'name' => 'DescribeAwsNetworkPerformanceMetricSubscriptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeAwsNetworkPerformanceMetricSubscriptionsRequest', ], 'output' => [ 'shape' => 'DescribeAwsNetworkPerformanceMetricSubscriptionsResult', ], ], 'DescribeBundleTasks' => [ 'name' => 'DescribeBundleTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeBundleTasksRequest', ], 'output' => [ 'shape' => 'DescribeBundleTasksResult', ], ], 'DescribeByoipCidrs' => [ 'name' => 'DescribeByoipCidrs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeByoipCidrsRequest', ], 'output' => [ 'shape' => 'DescribeByoipCidrsResult', ], ], 'DescribeCapacityBlockExtensionHistory' => [ 'name' => 'DescribeCapacityBlockExtensionHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityBlockExtensionHistoryRequest', ], 'output' => [ 'shape' => 'DescribeCapacityBlockExtensionHistoryResult', ], ], 'DescribeCapacityBlockExtensionOfferings' => [ 'name' => 'DescribeCapacityBlockExtensionOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityBlockExtensionOfferingsRequest', ], 'output' => [ 'shape' => 'DescribeCapacityBlockExtensionOfferingsResult', ], ], 'DescribeCapacityBlockOfferings' => [ 'name' => 'DescribeCapacityBlockOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityBlockOfferingsRequest', ], 'output' => [ 'shape' => 'DescribeCapacityBlockOfferingsResult', ], ], 'DescribeCapacityBlockStatus' => [ 'name' => 'DescribeCapacityBlockStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityBlockStatusRequest', ], 'output' => [ 'shape' => 'DescribeCapacityBlockStatusResult', ], ], 'DescribeCapacityBlocks' => [ 'name' => 'DescribeCapacityBlocks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityBlocksRequest', ], 'output' => [ 'shape' => 'DescribeCapacityBlocksResult', ], ], 'DescribeCapacityManagerDataExports' => [ 'name' => 'DescribeCapacityManagerDataExports', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityManagerDataExportsRequest', ], 'output' => [ 'shape' => 'DescribeCapacityManagerDataExportsResult', ], ], 'DescribeCapacityReservationBillingRequests' => [ 'name' => 'DescribeCapacityReservationBillingRequests', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityReservationBillingRequestsRequest', ], 'output' => [ 'shape' => 'DescribeCapacityReservationBillingRequestsResult', ], ], 'DescribeCapacityReservationCancellationQuotes' => [ 'name' => 'DescribeCapacityReservationCancellationQuotes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityReservationCancellationQuotesRequest', ], 'output' => [ 'shape' => 'DescribeCapacityReservationCancellationQuotesResult', ], ], 'DescribeCapacityReservationFleets' => [ 'name' => 'DescribeCapacityReservationFleets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityReservationFleetsRequest', ], 'output' => [ 'shape' => 'DescribeCapacityReservationFleetsResult', ], ], 'DescribeCapacityReservationTopology' => [ 'name' => 'DescribeCapacityReservationTopology', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityReservationTopologyRequest', ], 'output' => [ 'shape' => 'DescribeCapacityReservationTopologyResult', ], ], 'DescribeCapacityReservations' => [ 'name' => 'DescribeCapacityReservations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityReservationsRequest', ], 'output' => [ 'shape' => 'DescribeCapacityReservationsResult', ], ], 'DescribeCarrierGateways' => [ 'name' => 'DescribeCarrierGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCarrierGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeCarrierGatewaysResult', ], ], 'DescribeClassicLinkInstances' => [ 'name' => 'DescribeClassicLinkInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClassicLinkInstancesRequest', ], 'output' => [ 'shape' => 'DescribeClassicLinkInstancesResult', ], ], 'DescribeClientVpnAuthorizationRules' => [ 'name' => 'DescribeClientVpnAuthorizationRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClientVpnAuthorizationRulesRequest', ], 'output' => [ 'shape' => 'DescribeClientVpnAuthorizationRulesResult', ], ], 'DescribeClientVpnConnections' => [ 'name' => 'DescribeClientVpnConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClientVpnConnectionsRequest', ], 'output' => [ 'shape' => 'DescribeClientVpnConnectionsResult', ], ], 'DescribeClientVpnEndpoints' => [ 'name' => 'DescribeClientVpnEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClientVpnEndpointsRequest', ], 'output' => [ 'shape' => 'DescribeClientVpnEndpointsResult', ], ], 'DescribeClientVpnRoutes' => [ 'name' => 'DescribeClientVpnRoutes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClientVpnRoutesRequest', ], 'output' => [ 'shape' => 'DescribeClientVpnRoutesResult', ], ], 'DescribeClientVpnTargetNetworks' => [ 'name' => 'DescribeClientVpnTargetNetworks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClientVpnTargetNetworksRequest', ], 'output' => [ 'shape' => 'DescribeClientVpnTargetNetworksResult', ], ], 'DescribeCoipPools' => [ 'name' => 'DescribeCoipPools', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCoipPoolsRequest', ], 'output' => [ 'shape' => 'DescribeCoipPoolsResult', ], ], 'DescribeConversionTasks' => [ 'name' => 'DescribeConversionTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeConversionTasksRequest', ], 'output' => [ 'shape' => 'DescribeConversionTasksResult', ], ], 'DescribeCustomerGateways' => [ 'name' => 'DescribeCustomerGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCustomerGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeCustomerGatewaysResult', ], ], 'DescribeDeclarativePoliciesReports' => [ 'name' => 'DescribeDeclarativePoliciesReports', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDeclarativePoliciesReportsRequest', ], 'output' => [ 'shape' => 'DescribeDeclarativePoliciesReportsResult', ], ], 'DescribeDhcpOptions' => [ 'name' => 'DescribeDhcpOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDhcpOptionsRequest', ], 'output' => [ 'shape' => 'DescribeDhcpOptionsResult', ], ], 'DescribeEgressOnlyInternetGateways' => [ 'name' => 'DescribeEgressOnlyInternetGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeEgressOnlyInternetGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeEgressOnlyInternetGatewaysResult', ], ], 'DescribeElasticGpus' => [ 'name' => 'DescribeElasticGpus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeElasticGpusRequest', ], 'output' => [ 'shape' => 'DescribeElasticGpusResult', ], ], 'DescribeExportImageTasks' => [ 'name' => 'DescribeExportImageTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeExportImageTasksRequest', ], 'output' => [ 'shape' => 'DescribeExportImageTasksResult', ], ], 'DescribeExportTasks' => [ 'name' => 'DescribeExportTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeExportTasksRequest', ], 'output' => [ 'shape' => 'DescribeExportTasksResult', ], ], 'DescribeFastLaunchImages' => [ 'name' => 'DescribeFastLaunchImages', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFastLaunchImagesRequest', ], 'output' => [ 'shape' => 'DescribeFastLaunchImagesResult', ], ], 'DescribeFastSnapshotRestores' => [ 'name' => 'DescribeFastSnapshotRestores', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFastSnapshotRestoresRequest', ], 'output' => [ 'shape' => 'DescribeFastSnapshotRestoresResult', ], ], 'DescribeFleetHistory' => [ 'name' => 'DescribeFleetHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFleetHistoryRequest', ], 'output' => [ 'shape' => 'DescribeFleetHistoryResult', ], ], 'DescribeFleetInstances' => [ 'name' => 'DescribeFleetInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFleetInstancesRequest', ], 'output' => [ 'shape' => 'DescribeFleetInstancesResult', ], ], 'DescribeFleets' => [ 'name' => 'DescribeFleets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFleetsRequest', ], 'output' => [ 'shape' => 'DescribeFleetsResult', ], ], 'DescribeFlowLogs' => [ 'name' => 'DescribeFlowLogs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFlowLogsRequest', ], 'output' => [ 'shape' => 'DescribeFlowLogsResult', ], ], 'DescribeFpgaImageAttribute' => [ 'name' => 'DescribeFpgaImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFpgaImageAttributeRequest', ], 'output' => [ 'shape' => 'DescribeFpgaImageAttributeResult', ], ], 'DescribeFpgaImages' => [ 'name' => 'DescribeFpgaImages', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeFpgaImagesRequest', ], 'output' => [ 'shape' => 'DescribeFpgaImagesResult', ], ], 'DescribeHostReservationOfferings' => [ 'name' => 'DescribeHostReservationOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostReservationOfferingsRequest', ], 'output' => [ 'shape' => 'DescribeHostReservationOfferingsResult', ], ], 'DescribeHostReservations' => [ 'name' => 'DescribeHostReservations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostReservationsRequest', ], 'output' => [ 'shape' => 'DescribeHostReservationsResult', ], ], 'DescribeHosts' => [ 'name' => 'DescribeHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeHostsRequest', ], 'output' => [ 'shape' => 'DescribeHostsResult', ], ], 'DescribeIamInstanceProfileAssociations' => [ 'name' => 'DescribeIamInstanceProfileAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIamInstanceProfileAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeIamInstanceProfileAssociationsResult', ], ], 'DescribeIdFormat' => [ 'name' => 'DescribeIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIdFormatRequest', ], 'output' => [ 'shape' => 'DescribeIdFormatResult', ], ], 'DescribeIdentityIdFormat' => [ 'name' => 'DescribeIdentityIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIdentityIdFormatRequest', ], 'output' => [ 'shape' => 'DescribeIdentityIdFormatResult', ], ], 'DescribeImageAttribute' => [ 'name' => 'DescribeImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImageAttributeRequest', ], 'output' => [ 'shape' => 'ImageAttribute', ], ], 'DescribeImageReferences' => [ 'name' => 'DescribeImageReferences', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImageReferencesRequest', ], 'output' => [ 'shape' => 'DescribeImageReferencesResult', ], ], 'DescribeImageUsageReportEntries' => [ 'name' => 'DescribeImageUsageReportEntries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImageUsageReportEntriesRequest', ], 'output' => [ 'shape' => 'DescribeImageUsageReportEntriesResult', ], ], 'DescribeImageUsageReports' => [ 'name' => 'DescribeImageUsageReports', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImageUsageReportsRequest', ], 'output' => [ 'shape' => 'DescribeImageUsageReportsResult', ], ], 'DescribeImages' => [ 'name' => 'DescribeImages', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImagesRequest', ], 'output' => [ 'shape' => 'DescribeImagesResult', ], ], 'DescribeImportImageTasks' => [ 'name' => 'DescribeImportImageTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImportImageTasksRequest', ], 'output' => [ 'shape' => 'DescribeImportImageTasksResult', ], ], 'DescribeImportSnapshotTasks' => [ 'name' => 'DescribeImportSnapshotTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeImportSnapshotTasksRequest', ], 'output' => [ 'shape' => 'DescribeImportSnapshotTasksResult', ], ], 'DescribeInstanceAttribute' => [ 'name' => 'DescribeInstanceAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceAttributeRequest', ], 'output' => [ 'shape' => 'InstanceAttribute', ], ], 'DescribeInstanceConnectEndpoints' => [ 'name' => 'DescribeInstanceConnectEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceConnectEndpointsRequest', ], 'output' => [ 'shape' => 'DescribeInstanceConnectEndpointsResult', ], ], 'DescribeInstanceCreditSpecifications' => [ 'name' => 'DescribeInstanceCreditSpecifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceCreditSpecificationsRequest', ], 'output' => [ 'shape' => 'DescribeInstanceCreditSpecificationsResult', ], ], 'DescribeInstanceEventNotificationAttributes' => [ 'name' => 'DescribeInstanceEventNotificationAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceEventNotificationAttributesRequest', ], 'output' => [ 'shape' => 'DescribeInstanceEventNotificationAttributesResult', ], ], 'DescribeInstanceEventWindows' => [ 'name' => 'DescribeInstanceEventWindows', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceEventWindowsRequest', ], 'output' => [ 'shape' => 'DescribeInstanceEventWindowsResult', ], ], 'DescribeInstanceImageMetadata' => [ 'name' => 'DescribeInstanceImageMetadata', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceImageMetadataRequest', ], 'output' => [ 'shape' => 'DescribeInstanceImageMetadataResult', ], ], 'DescribeInstanceSqlHaHistoryStates' => [ 'name' => 'DescribeInstanceSqlHaHistoryStates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceSqlHaHistoryStatesRequest', ], 'output' => [ 'shape' => 'DescribeInstanceSqlHaHistoryStatesResult', ], ], 'DescribeInstanceSqlHaStates' => [ 'name' => 'DescribeInstanceSqlHaStates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceSqlHaStatesRequest', ], 'output' => [ 'shape' => 'DescribeInstanceSqlHaStatesResult', ], ], 'DescribeInstanceStatus' => [ 'name' => 'DescribeInstanceStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceStatusRequest', ], 'output' => [ 'shape' => 'DescribeInstanceStatusResult', ], ], 'DescribeInstanceTopology' => [ 'name' => 'DescribeInstanceTopology', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceTopologyRequest', ], 'output' => [ 'shape' => 'DescribeInstanceTopologyResult', ], ], 'DescribeInstanceTypeOfferings' => [ 'name' => 'DescribeInstanceTypeOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceTypeOfferingsRequest', ], 'output' => [ 'shape' => 'DescribeInstanceTypeOfferingsResult', ], ], 'DescribeInstanceTypes' => [ 'name' => 'DescribeInstanceTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstanceTypesRequest', ], 'output' => [ 'shape' => 'DescribeInstanceTypesResult', ], ], 'DescribeInstances' => [ 'name' => 'DescribeInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInstancesRequest', ], 'output' => [ 'shape' => 'DescribeInstancesResult', ], ], 'DescribeInternetGateways' => [ 'name' => 'DescribeInternetGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeInternetGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeInternetGatewaysResult', ], ], 'DescribeIpamByoasn' => [ 'name' => 'DescribeIpamByoasn', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamByoasnRequest', ], 'output' => [ 'shape' => 'DescribeIpamByoasnResult', ], ], 'DescribeIpamExternalResourceVerificationTokens' => [ 'name' => 'DescribeIpamExternalResourceVerificationTokens', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamExternalResourceVerificationTokensRequest', ], 'output' => [ 'shape' => 'DescribeIpamExternalResourceVerificationTokensResult', ], ], 'DescribeIpamPolicies' => [ 'name' => 'DescribeIpamPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamPoliciesRequest', ], 'output' => [ 'shape' => 'DescribeIpamPoliciesResult', ], ], 'DescribeIpamPoolAllocations' => [ 'name' => 'DescribeIpamPoolAllocations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamPoolAllocationsRequest', ], 'output' => [ 'shape' => 'DescribeIpamPoolAllocationsResult', ], ], 'DescribeIpamPools' => [ 'name' => 'DescribeIpamPools', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamPoolsRequest', ], 'output' => [ 'shape' => 'DescribeIpamPoolsResult', ], ], 'DescribeIpamPrefixListResolverTargets' => [ 'name' => 'DescribeIpamPrefixListResolverTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamPrefixListResolverTargetsRequest', ], 'output' => [ 'shape' => 'DescribeIpamPrefixListResolverTargetsResult', ], ], 'DescribeIpamPrefixListResolvers' => [ 'name' => 'DescribeIpamPrefixListResolvers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamPrefixListResolversRequest', ], 'output' => [ 'shape' => 'DescribeIpamPrefixListResolversResult', ], ], 'DescribeIpamResourceDiscoveries' => [ 'name' => 'DescribeIpamResourceDiscoveries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamResourceDiscoveriesRequest', ], 'output' => [ 'shape' => 'DescribeIpamResourceDiscoveriesResult', ], ], 'DescribeIpamResourceDiscoveryAssociations' => [ 'name' => 'DescribeIpamResourceDiscoveryAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamResourceDiscoveryAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeIpamResourceDiscoveryAssociationsResult', ], ], 'DescribeIpamScopes' => [ 'name' => 'DescribeIpamScopes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamScopesRequest', ], 'output' => [ 'shape' => 'DescribeIpamScopesResult', ], ], 'DescribeIpams' => [ 'name' => 'DescribeIpams', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpamsRequest', ], 'output' => [ 'shape' => 'DescribeIpamsResult', ], ], 'DescribeIpv6Pools' => [ 'name' => 'DescribeIpv6Pools', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeIpv6PoolsRequest', ], 'output' => [ 'shape' => 'DescribeIpv6PoolsResult', ], ], 'DescribeKeyPairs' => [ 'name' => 'DescribeKeyPairs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeKeyPairsRequest', ], 'output' => [ 'shape' => 'DescribeKeyPairsResult', ], ], 'DescribeLaunchTemplateVersions' => [ 'name' => 'DescribeLaunchTemplateVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLaunchTemplateVersionsRequest', ], 'output' => [ 'shape' => 'DescribeLaunchTemplateVersionsResult', ], ], 'DescribeLaunchTemplates' => [ 'name' => 'DescribeLaunchTemplates', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLaunchTemplatesRequest', ], 'output' => [ 'shape' => 'DescribeLaunchTemplatesResult', ], ], 'DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations' => [ 'name' => 'DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult', ], ], 'DescribeLocalGatewayRouteTableVpcAssociations' => [ 'name' => 'DescribeLocalGatewayRouteTableVpcAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLocalGatewayRouteTableVpcAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeLocalGatewayRouteTableVpcAssociationsResult', ], ], 'DescribeLocalGatewayRouteTables' => [ 'name' => 'DescribeLocalGatewayRouteTables', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLocalGatewayRouteTablesRequest', ], 'output' => [ 'shape' => 'DescribeLocalGatewayRouteTablesResult', ], ], 'DescribeLocalGatewayVirtualInterfaceGroups' => [ 'name' => 'DescribeLocalGatewayVirtualInterfaceGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLocalGatewayVirtualInterfaceGroupsRequest', ], 'output' => [ 'shape' => 'DescribeLocalGatewayVirtualInterfaceGroupsResult', ], ], 'DescribeLocalGatewayVirtualInterfaces' => [ 'name' => 'DescribeLocalGatewayVirtualInterfaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLocalGatewayVirtualInterfacesRequest', ], 'output' => [ 'shape' => 'DescribeLocalGatewayVirtualInterfacesResult', ], ], 'DescribeLocalGateways' => [ 'name' => 'DescribeLocalGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLocalGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeLocalGatewaysResult', ], ], 'DescribeLockedSnapshots' => [ 'name' => 'DescribeLockedSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeLockedSnapshotsRequest', ], 'output' => [ 'shape' => 'DescribeLockedSnapshotsResult', ], ], 'DescribeMacHosts' => [ 'name' => 'DescribeMacHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMacHostsRequest', ], 'output' => [ 'shape' => 'DescribeMacHostsResult', ], ], 'DescribeMacModificationTasks' => [ 'name' => 'DescribeMacModificationTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMacModificationTasksRequest', ], 'output' => [ 'shape' => 'DescribeMacModificationTasksResult', ], ], 'DescribeManagedPrefixLists' => [ 'name' => 'DescribeManagedPrefixLists', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeManagedPrefixListsRequest', ], 'output' => [ 'shape' => 'DescribeManagedPrefixListsResult', ], ], 'DescribeMovingAddresses' => [ 'name' => 'DescribeMovingAddresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeMovingAddressesRequest', ], 'output' => [ 'shape' => 'DescribeMovingAddressesResult', ], ], 'DescribeNatGateways' => [ 'name' => 'DescribeNatGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNatGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeNatGatewaysResult', ], ], 'DescribeNetworkAcls' => [ 'name' => 'DescribeNetworkAcls', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkAclsRequest', ], 'output' => [ 'shape' => 'DescribeNetworkAclsResult', ], ], 'DescribeNetworkInsightsAccessScopeAnalyses' => [ 'name' => 'DescribeNetworkInsightsAccessScopeAnalyses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkInsightsAccessScopeAnalysesRequest', ], 'output' => [ 'shape' => 'DescribeNetworkInsightsAccessScopeAnalysesResult', ], ], 'DescribeNetworkInsightsAccessScopes' => [ 'name' => 'DescribeNetworkInsightsAccessScopes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkInsightsAccessScopesRequest', ], 'output' => [ 'shape' => 'DescribeNetworkInsightsAccessScopesResult', ], ], 'DescribeNetworkInsightsAnalyses' => [ 'name' => 'DescribeNetworkInsightsAnalyses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkInsightsAnalysesRequest', ], 'output' => [ 'shape' => 'DescribeNetworkInsightsAnalysesResult', ], ], 'DescribeNetworkInsightsPaths' => [ 'name' => 'DescribeNetworkInsightsPaths', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkInsightsPathsRequest', ], 'output' => [ 'shape' => 'DescribeNetworkInsightsPathsResult', ], ], 'DescribeNetworkInterfaceAttribute' => [ 'name' => 'DescribeNetworkInterfaceAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkInterfaceAttributeRequest', ], 'output' => [ 'shape' => 'DescribeNetworkInterfaceAttributeResult', ], ], 'DescribeNetworkInterfacePermissions' => [ 'name' => 'DescribeNetworkInterfacePermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkInterfacePermissionsRequest', ], 'output' => [ 'shape' => 'DescribeNetworkInterfacePermissionsResult', ], ], 'DescribeNetworkInterfaces' => [ 'name' => 'DescribeNetworkInterfaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeNetworkInterfacesRequest', ], 'output' => [ 'shape' => 'DescribeNetworkInterfacesResult', ], ], 'DescribeOutpostLags' => [ 'name' => 'DescribeOutpostLags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeOutpostLagsRequest', ], 'output' => [ 'shape' => 'DescribeOutpostLagsResult', ], ], 'DescribePlacementGroups' => [ 'name' => 'DescribePlacementGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePlacementGroupsRequest', ], 'output' => [ 'shape' => 'DescribePlacementGroupsResult', ], ], 'DescribePrefixLists' => [ 'name' => 'DescribePrefixLists', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePrefixListsRequest', ], 'output' => [ 'shape' => 'DescribePrefixListsResult', ], ], 'DescribePrincipalIdFormat' => [ 'name' => 'DescribePrincipalIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePrincipalIdFormatRequest', ], 'output' => [ 'shape' => 'DescribePrincipalIdFormatResult', ], ], 'DescribePublicIpv4Pools' => [ 'name' => 'DescribePublicIpv4Pools', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribePublicIpv4PoolsRequest', ], 'output' => [ 'shape' => 'DescribePublicIpv4PoolsResult', ], ], 'DescribeRegions' => [ 'name' => 'DescribeRegions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRegionsRequest', ], 'output' => [ 'shape' => 'DescribeRegionsResult', ], ], 'DescribeReplaceRootVolumeTasks' => [ 'name' => 'DescribeReplaceRootVolumeTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReplaceRootVolumeTasksRequest', ], 'output' => [ 'shape' => 'DescribeReplaceRootVolumeTasksResult', ], ], 'DescribeReservedInstances' => [ 'name' => 'DescribeReservedInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReservedInstancesRequest', ], 'output' => [ 'shape' => 'DescribeReservedInstancesResult', ], ], 'DescribeReservedInstancesListings' => [ 'name' => 'DescribeReservedInstancesListings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReservedInstancesListingsRequest', ], 'output' => [ 'shape' => 'DescribeReservedInstancesListingsResult', ], ], 'DescribeReservedInstancesModifications' => [ 'name' => 'DescribeReservedInstancesModifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReservedInstancesModificationsRequest', ], 'output' => [ 'shape' => 'DescribeReservedInstancesModificationsResult', ], ], 'DescribeReservedInstancesOfferings' => [ 'name' => 'DescribeReservedInstancesOfferings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeReservedInstancesOfferingsRequest', ], 'output' => [ 'shape' => 'DescribeReservedInstancesOfferingsResult', ], ], 'DescribeRouteServerEndpoints' => [ 'name' => 'DescribeRouteServerEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRouteServerEndpointsRequest', ], 'output' => [ 'shape' => 'DescribeRouteServerEndpointsResult', ], ], 'DescribeRouteServerPeers' => [ 'name' => 'DescribeRouteServerPeers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRouteServerPeersRequest', ], 'output' => [ 'shape' => 'DescribeRouteServerPeersResult', ], ], 'DescribeRouteServers' => [ 'name' => 'DescribeRouteServers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRouteServersRequest', ], 'output' => [ 'shape' => 'DescribeRouteServersResult', ], ], 'DescribeRouteTables' => [ 'name' => 'DescribeRouteTables', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeRouteTablesRequest', ], 'output' => [ 'shape' => 'DescribeRouteTablesResult', ], ], 'DescribeScheduledInstanceAvailability' => [ 'name' => 'DescribeScheduledInstanceAvailability', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScheduledInstanceAvailabilityRequest', ], 'output' => [ 'shape' => 'DescribeScheduledInstanceAvailabilityResult', ], ], 'DescribeScheduledInstances' => [ 'name' => 'DescribeScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeScheduledInstancesRequest', ], 'output' => [ 'shape' => 'DescribeScheduledInstancesResult', ], ], 'DescribeSecondaryInterfaces' => [ 'name' => 'DescribeSecondaryInterfaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecondaryInterfacesRequest', ], 'output' => [ 'shape' => 'DescribeSecondaryInterfacesResult', ], ], 'DescribeSecondaryNetworks' => [ 'name' => 'DescribeSecondaryNetworks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecondaryNetworksRequest', ], 'output' => [ 'shape' => 'DescribeSecondaryNetworksResult', ], ], 'DescribeSecondarySubnets' => [ 'name' => 'DescribeSecondarySubnets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecondarySubnetsRequest', ], 'output' => [ 'shape' => 'DescribeSecondarySubnetsResult', ], ], 'DescribeSecurityGroupReferences' => [ 'name' => 'DescribeSecurityGroupReferences', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecurityGroupReferencesRequest', ], 'output' => [ 'shape' => 'DescribeSecurityGroupReferencesResult', ], ], 'DescribeSecurityGroupRules' => [ 'name' => 'DescribeSecurityGroupRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecurityGroupRulesRequest', ], 'output' => [ 'shape' => 'DescribeSecurityGroupRulesResult', ], ], 'DescribeSecurityGroupVpcAssociations' => [ 'name' => 'DescribeSecurityGroupVpcAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecurityGroupVpcAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeSecurityGroupVpcAssociationsResult', ], ], 'DescribeSecurityGroups' => [ 'name' => 'DescribeSecurityGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSecurityGroupsRequest', ], 'output' => [ 'shape' => 'DescribeSecurityGroupsResult', ], ], 'DescribeServiceLinkVirtualInterfaces' => [ 'name' => 'DescribeServiceLinkVirtualInterfaces', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeServiceLinkVirtualInterfacesRequest', ], 'output' => [ 'shape' => 'DescribeServiceLinkVirtualInterfacesResult', ], ], 'DescribeSnapshotAttribute' => [ 'name' => 'DescribeSnapshotAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSnapshotAttributeRequest', ], 'output' => [ 'shape' => 'DescribeSnapshotAttributeResult', ], ], 'DescribeSnapshotTierStatus' => [ 'name' => 'DescribeSnapshotTierStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSnapshotTierStatusRequest', ], 'output' => [ 'shape' => 'DescribeSnapshotTierStatusResult', ], ], 'DescribeSnapshots' => [ 'name' => 'DescribeSnapshots', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSnapshotsRequest', ], 'output' => [ 'shape' => 'DescribeSnapshotsResult', ], ], 'DescribeSpotDatafeedSubscription' => [ 'name' => 'DescribeSpotDatafeedSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSpotDatafeedSubscriptionRequest', ], 'output' => [ 'shape' => 'DescribeSpotDatafeedSubscriptionResult', ], ], 'DescribeSpotFleetInstances' => [ 'name' => 'DescribeSpotFleetInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSpotFleetInstancesRequest', ], 'output' => [ 'shape' => 'DescribeSpotFleetInstancesResponse', ], ], 'DescribeSpotFleetRequestHistory' => [ 'name' => 'DescribeSpotFleetRequestHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSpotFleetRequestHistoryRequest', ], 'output' => [ 'shape' => 'DescribeSpotFleetRequestHistoryResponse', ], ], 'DescribeSpotFleetRequests' => [ 'name' => 'DescribeSpotFleetRequests', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSpotFleetRequestsRequest', ], 'output' => [ 'shape' => 'DescribeSpotFleetRequestsResponse', ], ], 'DescribeSpotInstanceRequests' => [ 'name' => 'DescribeSpotInstanceRequests', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSpotInstanceRequestsRequest', ], 'output' => [ 'shape' => 'DescribeSpotInstanceRequestsResult', ], ], 'DescribeSpotPriceHistory' => [ 'name' => 'DescribeSpotPriceHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSpotPriceHistoryRequest', ], 'output' => [ 'shape' => 'DescribeSpotPriceHistoryResult', ], ], 'DescribeStaleSecurityGroups' => [ 'name' => 'DescribeStaleSecurityGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStaleSecurityGroupsRequest', ], 'output' => [ 'shape' => 'DescribeStaleSecurityGroupsResult', ], ], 'DescribeStoreImageTasks' => [ 'name' => 'DescribeStoreImageTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeStoreImageTasksRequest', ], 'output' => [ 'shape' => 'DescribeStoreImageTasksResult', ], ], 'DescribeSubnets' => [ 'name' => 'DescribeSubnets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeSubnetsRequest', ], 'output' => [ 'shape' => 'DescribeSubnetsResult', ], ], 'DescribeTags' => [ 'name' => 'DescribeTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTagsRequest', ], 'output' => [ 'shape' => 'DescribeTagsResult', ], ], 'DescribeTrafficMirrorFilterRules' => [ 'name' => 'DescribeTrafficMirrorFilterRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrafficMirrorFilterRulesRequest', ], 'output' => [ 'shape' => 'DescribeTrafficMirrorFilterRulesResult', ], ], 'DescribeTrafficMirrorFilters' => [ 'name' => 'DescribeTrafficMirrorFilters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrafficMirrorFiltersRequest', ], 'output' => [ 'shape' => 'DescribeTrafficMirrorFiltersResult', ], ], 'DescribeTrafficMirrorSessions' => [ 'name' => 'DescribeTrafficMirrorSessions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrafficMirrorSessionsRequest', ], 'output' => [ 'shape' => 'DescribeTrafficMirrorSessionsResult', ], ], 'DescribeTrafficMirrorTargets' => [ 'name' => 'DescribeTrafficMirrorTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrafficMirrorTargetsRequest', ], 'output' => [ 'shape' => 'DescribeTrafficMirrorTargetsResult', ], ], 'DescribeTransitGatewayAttachments' => [ 'name' => 'DescribeTransitGatewayAttachments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayAttachmentsRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayAttachmentsResult', ], ], 'DescribeTransitGatewayConnectPeers' => [ 'name' => 'DescribeTransitGatewayConnectPeers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayConnectPeersRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayConnectPeersResult', ], ], 'DescribeTransitGatewayConnects' => [ 'name' => 'DescribeTransitGatewayConnects', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayConnectsRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayConnectsResult', ], ], 'DescribeTransitGatewayMeteringPolicies' => [ 'name' => 'DescribeTransitGatewayMeteringPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayMeteringPoliciesRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayMeteringPoliciesResult', ], ], 'DescribeTransitGatewayMulticastDomains' => [ 'name' => 'DescribeTransitGatewayMulticastDomains', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayMulticastDomainsRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayMulticastDomainsResult', ], ], 'DescribeTransitGatewayPeeringAttachments' => [ 'name' => 'DescribeTransitGatewayPeeringAttachments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayPeeringAttachmentsRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayPeeringAttachmentsResult', ], ], 'DescribeTransitGatewayPolicyTables' => [ 'name' => 'DescribeTransitGatewayPolicyTables', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayPolicyTablesRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayPolicyTablesResult', ], ], 'DescribeTransitGatewayRouteTableAnnouncements' => [ 'name' => 'DescribeTransitGatewayRouteTableAnnouncements', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayRouteTableAnnouncementsRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayRouteTableAnnouncementsResult', ], ], 'DescribeTransitGatewayRouteTables' => [ 'name' => 'DescribeTransitGatewayRouteTables', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayRouteTablesRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayRouteTablesResult', ], ], 'DescribeTransitGatewayVpcAttachments' => [ 'name' => 'DescribeTransitGatewayVpcAttachments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewayVpcAttachmentsRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewayVpcAttachmentsResult', ], ], 'DescribeTransitGateways' => [ 'name' => 'DescribeTransitGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTransitGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeTransitGatewaysResult', ], ], 'DescribeTrunkInterfaceAssociations' => [ 'name' => 'DescribeTrunkInterfaceAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTrunkInterfaceAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeTrunkInterfaceAssociationsResult', ], ], 'DescribeVerifiedAccessEndpoints' => [ 'name' => 'DescribeVerifiedAccessEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVerifiedAccessEndpointsRequest', ], 'output' => [ 'shape' => 'DescribeVerifiedAccessEndpointsResult', ], ], 'DescribeVerifiedAccessGroups' => [ 'name' => 'DescribeVerifiedAccessGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVerifiedAccessGroupsRequest', ], 'output' => [ 'shape' => 'DescribeVerifiedAccessGroupsResult', ], ], 'DescribeVerifiedAccessInstanceLoggingConfigurations' => [ 'name' => 'DescribeVerifiedAccessInstanceLoggingConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVerifiedAccessInstanceLoggingConfigurationsRequest', ], 'output' => [ 'shape' => 'DescribeVerifiedAccessInstanceLoggingConfigurationsResult', ], ], 'DescribeVerifiedAccessInstances' => [ 'name' => 'DescribeVerifiedAccessInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVerifiedAccessInstancesRequest', ], 'output' => [ 'shape' => 'DescribeVerifiedAccessInstancesResult', ], ], 'DescribeVerifiedAccessTrustProviders' => [ 'name' => 'DescribeVerifiedAccessTrustProviders', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVerifiedAccessTrustProvidersRequest', ], 'output' => [ 'shape' => 'DescribeVerifiedAccessTrustProvidersResult', ], ], 'DescribeVolumeAttribute' => [ 'name' => 'DescribeVolumeAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVolumeAttributeRequest', ], 'output' => [ 'shape' => 'DescribeVolumeAttributeResult', ], ], 'DescribeVolumeStatus' => [ 'name' => 'DescribeVolumeStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVolumeStatusRequest', ], 'output' => [ 'shape' => 'DescribeVolumeStatusResult', ], ], 'DescribeVolumes' => [ 'name' => 'DescribeVolumes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVolumesRequest', ], 'output' => [ 'shape' => 'DescribeVolumesResult', ], ], 'DescribeVolumesModifications' => [ 'name' => 'DescribeVolumesModifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVolumesModificationsRequest', ], 'output' => [ 'shape' => 'DescribeVolumesModificationsResult', ], ], 'DescribeVpcAttribute' => [ 'name' => 'DescribeVpcAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcAttributeRequest', ], 'output' => [ 'shape' => 'DescribeVpcAttributeResult', ], ], 'DescribeVpcBlockPublicAccessExclusions' => [ 'name' => 'DescribeVpcBlockPublicAccessExclusions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcBlockPublicAccessExclusionsRequest', ], 'output' => [ 'shape' => 'DescribeVpcBlockPublicAccessExclusionsResult', ], ], 'DescribeVpcBlockPublicAccessOptions' => [ 'name' => 'DescribeVpcBlockPublicAccessOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcBlockPublicAccessOptionsRequest', ], 'output' => [ 'shape' => 'DescribeVpcBlockPublicAccessOptionsResult', ], ], 'DescribeVpcClassicLink' => [ 'name' => 'DescribeVpcClassicLink', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcClassicLinkRequest', ], 'output' => [ 'shape' => 'DescribeVpcClassicLinkResult', ], ], 'DescribeVpcClassicLinkDnsSupport' => [ 'name' => 'DescribeVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportResult', ], ], 'DescribeVpcEncryptionControls' => [ 'name' => 'DescribeVpcEncryptionControls', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEncryptionControlsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEncryptionControlsResult', ], ], 'DescribeVpcEndpointAssociations' => [ 'name' => 'DescribeVpcEndpointAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointAssociationsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointAssociationsResult', ], ], 'DescribeVpcEndpointConnectionNotifications' => [ 'name' => 'DescribeVpcEndpointConnectionNotifications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointConnectionNotificationsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointConnectionNotificationsResult', ], ], 'DescribeVpcEndpointConnections' => [ 'name' => 'DescribeVpcEndpointConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointConnectionsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointConnectionsResult', ], ], 'DescribeVpcEndpointServiceConfigurations' => [ 'name' => 'DescribeVpcEndpointServiceConfigurations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointServiceConfigurationsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointServiceConfigurationsResult', ], ], 'DescribeVpcEndpointServicePermissions' => [ 'name' => 'DescribeVpcEndpointServicePermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointServicePermissionsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointServicePermissionsResult', ], ], 'DescribeVpcEndpointServices' => [ 'name' => 'DescribeVpcEndpointServices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointServicesRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointServicesResult', ], ], 'DescribeVpcEndpoints' => [ 'name' => 'DescribeVpcEndpoints', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcEndpointsRequest', ], 'output' => [ 'shape' => 'DescribeVpcEndpointsResult', ], ], 'DescribeVpcPeeringConnections' => [ 'name' => 'DescribeVpcPeeringConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcPeeringConnectionsRequest', ], 'output' => [ 'shape' => 'DescribeVpcPeeringConnectionsResult', ], ], 'DescribeVpcs' => [ 'name' => 'DescribeVpcs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpcsRequest', ], 'output' => [ 'shape' => 'DescribeVpcsResult', ], ], 'DescribeVpnConcentrators' => [ 'name' => 'DescribeVpnConcentrators', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpnConcentratorsRequest', ], 'output' => [ 'shape' => 'DescribeVpnConcentratorsResult', ], ], 'DescribeVpnConnections' => [ 'name' => 'DescribeVpnConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpnConnectionsRequest', ], 'output' => [ 'shape' => 'DescribeVpnConnectionsResult', ], ], 'DescribeVpnGateways' => [ 'name' => 'DescribeVpnGateways', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeVpnGatewaysRequest', ], 'output' => [ 'shape' => 'DescribeVpnGatewaysResult', ], ], 'DetachClassicLinkVpc' => [ 'name' => 'DetachClassicLinkVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachClassicLinkVpcRequest', ], 'output' => [ 'shape' => 'DetachClassicLinkVpcResult', ], ], 'DetachImageWatermark' => [ 'name' => 'DetachImageWatermark', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachImageWatermarkRequest', ], 'output' => [ 'shape' => 'DetachImageWatermarkResult', ], ], 'DetachInternetGateway' => [ 'name' => 'DetachInternetGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachInternetGatewayRequest', ], ], 'DetachNetworkInterface' => [ 'name' => 'DetachNetworkInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachNetworkInterfaceRequest', ], ], 'DetachVerifiedAccessTrustProvider' => [ 'name' => 'DetachVerifiedAccessTrustProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachVerifiedAccessTrustProviderRequest', ], 'output' => [ 'shape' => 'DetachVerifiedAccessTrustProviderResult', ], ], 'DetachVolume' => [ 'name' => 'DetachVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachVolumeRequest', ], 'output' => [ 'shape' => 'VolumeAttachment', ], ], 'DetachVpnGateway' => [ 'name' => 'DetachVpnGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DetachVpnGatewayRequest', ], ], 'DisableAddressTransfer' => [ 'name' => 'DisableAddressTransfer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableAddressTransferRequest', ], 'output' => [ 'shape' => 'DisableAddressTransferResult', ], ], 'DisableAllowedImagesSettings' => [ 'name' => 'DisableAllowedImagesSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableAllowedImagesSettingsRequest', ], 'output' => [ 'shape' => 'DisableAllowedImagesSettingsResult', ], ], 'DisableAwsNetworkPerformanceMetricSubscription' => [ 'name' => 'DisableAwsNetworkPerformanceMetricSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableAwsNetworkPerformanceMetricSubscriptionRequest', ], 'output' => [ 'shape' => 'DisableAwsNetworkPerformanceMetricSubscriptionResult', ], ], 'DisableCapacityManager' => [ 'name' => 'DisableCapacityManager', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableCapacityManagerRequest', ], 'output' => [ 'shape' => 'DisableCapacityManagerResult', ], ], 'DisableEbsEncryptionByDefault' => [ 'name' => 'DisableEbsEncryptionByDefault', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableEbsEncryptionByDefaultRequest', ], 'output' => [ 'shape' => 'DisableEbsEncryptionByDefaultResult', ], ], 'DisableFastLaunch' => [ 'name' => 'DisableFastLaunch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableFastLaunchRequest', ], 'output' => [ 'shape' => 'DisableFastLaunchResult', ], ], 'DisableFastSnapshotRestores' => [ 'name' => 'DisableFastSnapshotRestores', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableFastSnapshotRestoresRequest', ], 'output' => [ 'shape' => 'DisableFastSnapshotRestoresResult', ], ], 'DisableImage' => [ 'name' => 'DisableImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableImageRequest', ], 'output' => [ 'shape' => 'DisableImageResult', ], ], 'DisableImageBlockPublicAccess' => [ 'name' => 'DisableImageBlockPublicAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableImageBlockPublicAccessRequest', ], 'output' => [ 'shape' => 'DisableImageBlockPublicAccessResult', ], ], 'DisableImageDeprecation' => [ 'name' => 'DisableImageDeprecation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableImageDeprecationRequest', ], 'output' => [ 'shape' => 'DisableImageDeprecationResult', ], ], 'DisableImageDeregistrationProtection' => [ 'name' => 'DisableImageDeregistrationProtection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableImageDeregistrationProtectionRequest', ], 'output' => [ 'shape' => 'DisableImageDeregistrationProtectionResult', ], ], 'DisableInstanceSqlHaStandbyDetections' => [ 'name' => 'DisableInstanceSqlHaStandbyDetections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableInstanceSqlHaStandbyDetectionsRequest', ], 'output' => [ 'shape' => 'DisableInstanceSqlHaStandbyDetectionsResult', ], ], 'DisableIpamOrganizationAdminAccount' => [ 'name' => 'DisableIpamOrganizationAdminAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableIpamOrganizationAdminAccountRequest', ], 'output' => [ 'shape' => 'DisableIpamOrganizationAdminAccountResult', ], ], 'DisableIpamPolicy' => [ 'name' => 'DisableIpamPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableIpamPolicyRequest', ], 'output' => [ 'shape' => 'DisableIpamPolicyResult', ], ], 'DisableRouteServerPropagation' => [ 'name' => 'DisableRouteServerPropagation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableRouteServerPropagationRequest', ], 'output' => [ 'shape' => 'DisableRouteServerPropagationResult', ], ], 'DisableSerialConsoleAccess' => [ 'name' => 'DisableSerialConsoleAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableSerialConsoleAccessRequest', ], 'output' => [ 'shape' => 'DisableSerialConsoleAccessResult', ], ], 'DisableSnapshotBlockPublicAccess' => [ 'name' => 'DisableSnapshotBlockPublicAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableSnapshotBlockPublicAccessRequest', ], 'output' => [ 'shape' => 'DisableSnapshotBlockPublicAccessResult', ], ], 'DisableTransitGatewayRouteTablePropagation' => [ 'name' => 'DisableTransitGatewayRouteTablePropagation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableTransitGatewayRouteTablePropagationRequest', ], 'output' => [ 'shape' => 'DisableTransitGatewayRouteTablePropagationResult', ], ], 'DisableVgwRoutePropagation' => [ 'name' => 'DisableVgwRoutePropagation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableVgwRoutePropagationRequest', ], ], 'DisableVpcClassicLink' => [ 'name' => 'DisableVpcClassicLink', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableVpcClassicLinkRequest', ], 'output' => [ 'shape' => 'DisableVpcClassicLinkResult', ], ], 'DisableVpcClassicLinkDnsSupport' => [ 'name' => 'DisableVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'DisableVpcClassicLinkDnsSupportResult', ], ], 'DisassociateAddress' => [ 'name' => 'DisassociateAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateAddressRequest', ], ], 'DisassociateCapacityReservationBillingOwner' => [ 'name' => 'DisassociateCapacityReservationBillingOwner', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateCapacityReservationBillingOwnerRequest', ], 'output' => [ 'shape' => 'DisassociateCapacityReservationBillingOwnerResult', ], ], 'DisassociateClientVpnTargetNetwork' => [ 'name' => 'DisassociateClientVpnTargetNetwork', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateClientVpnTargetNetworkRequest', ], 'output' => [ 'shape' => 'DisassociateClientVpnTargetNetworkResult', ], ], 'DisassociateEnclaveCertificateIamRole' => [ 'name' => 'DisassociateEnclaveCertificateIamRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateEnclaveCertificateIamRoleRequest', ], 'output' => [ 'shape' => 'DisassociateEnclaveCertificateIamRoleResult', ], ], 'DisassociateIamInstanceProfile' => [ 'name' => 'DisassociateIamInstanceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateIamInstanceProfileRequest', ], 'output' => [ 'shape' => 'DisassociateIamInstanceProfileResult', ], ], 'DisassociateInstanceEventWindow' => [ 'name' => 'DisassociateInstanceEventWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateInstanceEventWindowRequest', ], 'output' => [ 'shape' => 'DisassociateInstanceEventWindowResult', ], ], 'DisassociateIpamByoasn' => [ 'name' => 'DisassociateIpamByoasn', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateIpamByoasnRequest', ], 'output' => [ 'shape' => 'DisassociateIpamByoasnResult', ], ], 'DisassociateIpamResourceDiscovery' => [ 'name' => 'DisassociateIpamResourceDiscovery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateIpamResourceDiscoveryRequest', ], 'output' => [ 'shape' => 'DisassociateIpamResourceDiscoveryResult', ], ], 'DisassociateNatGatewayAddress' => [ 'name' => 'DisassociateNatGatewayAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateNatGatewayAddressRequest', ], 'output' => [ 'shape' => 'DisassociateNatGatewayAddressResult', ], ], 'DisassociateRouteServer' => [ 'name' => 'DisassociateRouteServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateRouteServerRequest', ], 'output' => [ 'shape' => 'DisassociateRouteServerResult', ], ], 'DisassociateRouteTable' => [ 'name' => 'DisassociateRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateRouteTableRequest', ], ], 'DisassociateSecurityGroupVpc' => [ 'name' => 'DisassociateSecurityGroupVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateSecurityGroupVpcRequest', ], 'output' => [ 'shape' => 'DisassociateSecurityGroupVpcResult', ], ], 'DisassociateSubnetCidrBlock' => [ 'name' => 'DisassociateSubnetCidrBlock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateSubnetCidrBlockRequest', ], 'output' => [ 'shape' => 'DisassociateSubnetCidrBlockResult', ], ], 'DisassociateTransitGatewayMulticastDomain' => [ 'name' => 'DisassociateTransitGatewayMulticastDomain', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateTransitGatewayMulticastDomainRequest', ], 'output' => [ 'shape' => 'DisassociateTransitGatewayMulticastDomainResult', ], ], 'DisassociateTransitGatewayPolicyTable' => [ 'name' => 'DisassociateTransitGatewayPolicyTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateTransitGatewayPolicyTableRequest', ], 'output' => [ 'shape' => 'DisassociateTransitGatewayPolicyTableResult', ], ], 'DisassociateTransitGatewayRouteTable' => [ 'name' => 'DisassociateTransitGatewayRouteTable', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateTransitGatewayRouteTableRequest', ], 'output' => [ 'shape' => 'DisassociateTransitGatewayRouteTableResult', ], ], 'DisassociateTrunkInterface' => [ 'name' => 'DisassociateTrunkInterface', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateTrunkInterfaceRequest', ], 'output' => [ 'shape' => 'DisassociateTrunkInterfaceResult', ], ], 'DisassociateVpcCidrBlock' => [ 'name' => 'DisassociateVpcCidrBlock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisassociateVpcCidrBlockRequest', ], 'output' => [ 'shape' => 'DisassociateVpcCidrBlockResult', ], ], 'EnableAddressTransfer' => [ 'name' => 'EnableAddressTransfer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableAddressTransferRequest', ], 'output' => [ 'shape' => 'EnableAddressTransferResult', ], ], 'EnableAllowedImagesSettings' => [ 'name' => 'EnableAllowedImagesSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableAllowedImagesSettingsRequest', ], 'output' => [ 'shape' => 'EnableAllowedImagesSettingsResult', ], ], 'EnableAwsNetworkPerformanceMetricSubscription' => [ 'name' => 'EnableAwsNetworkPerformanceMetricSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableAwsNetworkPerformanceMetricSubscriptionRequest', ], 'output' => [ 'shape' => 'EnableAwsNetworkPerformanceMetricSubscriptionResult', ], ], 'EnableCapacityManager' => [ 'name' => 'EnableCapacityManager', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableCapacityManagerRequest', ], 'output' => [ 'shape' => 'EnableCapacityManagerResult', ], ], 'EnableEbsEncryptionByDefault' => [ 'name' => 'EnableEbsEncryptionByDefault', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableEbsEncryptionByDefaultRequest', ], 'output' => [ 'shape' => 'EnableEbsEncryptionByDefaultResult', ], ], 'EnableFastLaunch' => [ 'name' => 'EnableFastLaunch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableFastLaunchRequest', ], 'output' => [ 'shape' => 'EnableFastLaunchResult', ], ], 'EnableFastSnapshotRestores' => [ 'name' => 'EnableFastSnapshotRestores', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableFastSnapshotRestoresRequest', ], 'output' => [ 'shape' => 'EnableFastSnapshotRestoresResult', ], ], 'EnableImage' => [ 'name' => 'EnableImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableImageRequest', ], 'output' => [ 'shape' => 'EnableImageResult', ], ], 'EnableImageBlockPublicAccess' => [ 'name' => 'EnableImageBlockPublicAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableImageBlockPublicAccessRequest', ], 'output' => [ 'shape' => 'EnableImageBlockPublicAccessResult', ], ], 'EnableImageDeprecation' => [ 'name' => 'EnableImageDeprecation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableImageDeprecationRequest', ], 'output' => [ 'shape' => 'EnableImageDeprecationResult', ], ], 'EnableImageDeregistrationProtection' => [ 'name' => 'EnableImageDeregistrationProtection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableImageDeregistrationProtectionRequest', ], 'output' => [ 'shape' => 'EnableImageDeregistrationProtectionResult', ], ], 'EnableInstanceSqlHaStandbyDetections' => [ 'name' => 'EnableInstanceSqlHaStandbyDetections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableInstanceSqlHaStandbyDetectionsRequest', ], 'output' => [ 'shape' => 'EnableInstanceSqlHaStandbyDetectionsResult', ], ], 'EnableIpamOrganizationAdminAccount' => [ 'name' => 'EnableIpamOrganizationAdminAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableIpamOrganizationAdminAccountRequest', ], 'output' => [ 'shape' => 'EnableIpamOrganizationAdminAccountResult', ], ], 'EnableIpamPolicy' => [ 'name' => 'EnableIpamPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableIpamPolicyRequest', ], 'output' => [ 'shape' => 'EnableIpamPolicyResult', ], ], 'EnableReachabilityAnalyzerOrganizationSharing' => [ 'name' => 'EnableReachabilityAnalyzerOrganizationSharing', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableReachabilityAnalyzerOrganizationSharingRequest', ], 'output' => [ 'shape' => 'EnableReachabilityAnalyzerOrganizationSharingResult', ], ], 'EnableRouteServerPropagation' => [ 'name' => 'EnableRouteServerPropagation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableRouteServerPropagationRequest', ], 'output' => [ 'shape' => 'EnableRouteServerPropagationResult', ], ], 'EnableSerialConsoleAccess' => [ 'name' => 'EnableSerialConsoleAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableSerialConsoleAccessRequest', ], 'output' => [ 'shape' => 'EnableSerialConsoleAccessResult', ], ], 'EnableSnapshotBlockPublicAccess' => [ 'name' => 'EnableSnapshotBlockPublicAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableSnapshotBlockPublicAccessRequest', ], 'output' => [ 'shape' => 'EnableSnapshotBlockPublicAccessResult', ], ], 'EnableTransitGatewayRouteTablePropagation' => [ 'name' => 'EnableTransitGatewayRouteTablePropagation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableTransitGatewayRouteTablePropagationRequest', ], 'output' => [ 'shape' => 'EnableTransitGatewayRouteTablePropagationResult', ], ], 'EnableVgwRoutePropagation' => [ 'name' => 'EnableVgwRoutePropagation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableVgwRoutePropagationRequest', ], ], 'EnableVolumeIO' => [ 'name' => 'EnableVolumeIO', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableVolumeIORequest', ], ], 'EnableVpcClassicLink' => [ 'name' => 'EnableVpcClassicLink', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableVpcClassicLinkRequest', ], 'output' => [ 'shape' => 'EnableVpcClassicLinkResult', ], ], 'EnableVpcClassicLinkDnsSupport' => [ 'name' => 'EnableVpcClassicLinkDnsSupport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableVpcClassicLinkDnsSupportRequest', ], 'output' => [ 'shape' => 'EnableVpcClassicLinkDnsSupportResult', ], ], 'ExportClientVpnClientCertificateRevocationList' => [ 'name' => 'ExportClientVpnClientCertificateRevocationList', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExportClientVpnClientCertificateRevocationListRequest', ], 'output' => [ 'shape' => 'ExportClientVpnClientCertificateRevocationListResult', ], ], 'ExportClientVpnClientConfiguration' => [ 'name' => 'ExportClientVpnClientConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExportClientVpnClientConfigurationRequest', ], 'output' => [ 'shape' => 'ExportClientVpnClientConfigurationResult', ], ], 'ExportImage' => [ 'name' => 'ExportImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExportImageRequest', ], 'output' => [ 'shape' => 'ExportImageResult', ], ], 'ExportTransitGatewayRoutes' => [ 'name' => 'ExportTransitGatewayRoutes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExportTransitGatewayRoutesRequest', ], 'output' => [ 'shape' => 'ExportTransitGatewayRoutesResult', ], ], 'ExportVerifiedAccessInstanceClientConfiguration' => [ 'name' => 'ExportVerifiedAccessInstanceClientConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExportVerifiedAccessInstanceClientConfigurationRequest', ], 'output' => [ 'shape' => 'ExportVerifiedAccessInstanceClientConfigurationResult', ], ], 'GetActiveVpnTunnelStatus' => [ 'name' => 'GetActiveVpnTunnelStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetActiveVpnTunnelStatusRequest', ], 'output' => [ 'shape' => 'GetActiveVpnTunnelStatusResult', ], ], 'GetAllowedImagesSettings' => [ 'name' => 'GetAllowedImagesSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAllowedImagesSettingsRequest', ], 'output' => [ 'shape' => 'GetAllowedImagesSettingsResult', ], ], 'GetAssociatedEnclaveCertificateIamRoles' => [ 'name' => 'GetAssociatedEnclaveCertificateIamRoles', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAssociatedEnclaveCertificateIamRolesRequest', ], 'output' => [ 'shape' => 'GetAssociatedEnclaveCertificateIamRolesResult', ], ], 'GetAssociatedIpv6PoolCidrs' => [ 'name' => 'GetAssociatedIpv6PoolCidrs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAssociatedIpv6PoolCidrsRequest', ], 'output' => [ 'shape' => 'GetAssociatedIpv6PoolCidrsResult', ], ], 'GetAwsNetworkPerformanceData' => [ 'name' => 'GetAwsNetworkPerformanceData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAwsNetworkPerformanceDataRequest', ], 'output' => [ 'shape' => 'GetAwsNetworkPerformanceDataResult', ], ], 'GetCapacityManagerAttributes' => [ 'name' => 'GetCapacityManagerAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCapacityManagerAttributesRequest', ], 'output' => [ 'shape' => 'GetCapacityManagerAttributesResult', ], ], 'GetCapacityManagerMetricData' => [ 'name' => 'GetCapacityManagerMetricData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCapacityManagerMetricDataRequest', ], 'output' => [ 'shape' => 'GetCapacityManagerMetricDataResult', ], ], 'GetCapacityManagerMetricDimensions' => [ 'name' => 'GetCapacityManagerMetricDimensions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCapacityManagerMetricDimensionsRequest', ], 'output' => [ 'shape' => 'GetCapacityManagerMetricDimensionsResult', ], ], 'GetCapacityManagerMonitoredTagKeys' => [ 'name' => 'GetCapacityManagerMonitoredTagKeys', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCapacityManagerMonitoredTagKeysRequest', ], 'output' => [ 'shape' => 'GetCapacityManagerMonitoredTagKeysResult', ], ], 'GetCapacityReservationUsage' => [ 'name' => 'GetCapacityReservationUsage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCapacityReservationUsageRequest', ], 'output' => [ 'shape' => 'GetCapacityReservationUsageResult', ], ], 'GetCoipPoolUsage' => [ 'name' => 'GetCoipPoolUsage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCoipPoolUsageRequest', ], 'output' => [ 'shape' => 'GetCoipPoolUsageResult', ], ], 'GetConsoleOutput' => [ 'name' => 'GetConsoleOutput', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConsoleOutputRequest', ], 'output' => [ 'shape' => 'GetConsoleOutputResult', ], ], 'GetConsoleScreenshot' => [ 'name' => 'GetConsoleScreenshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetConsoleScreenshotRequest', ], 'output' => [ 'shape' => 'GetConsoleScreenshotResult', ], ], 'GetDeclarativePoliciesReportSummary' => [ 'name' => 'GetDeclarativePoliciesReportSummary', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDeclarativePoliciesReportSummaryRequest', ], 'output' => [ 'shape' => 'GetDeclarativePoliciesReportSummaryResult', ], ], 'GetDefaultCreditSpecification' => [ 'name' => 'GetDefaultCreditSpecification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDefaultCreditSpecificationRequest', ], 'output' => [ 'shape' => 'GetDefaultCreditSpecificationResult', ], ], 'GetEbsDefaultKmsKeyId' => [ 'name' => 'GetEbsDefaultKmsKeyId', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetEbsDefaultKmsKeyIdRequest', ], 'output' => [ 'shape' => 'GetEbsDefaultKmsKeyIdResult', ], ], 'GetEbsEncryptionByDefault' => [ 'name' => 'GetEbsEncryptionByDefault', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetEbsEncryptionByDefaultRequest', ], 'output' => [ 'shape' => 'GetEbsEncryptionByDefaultResult', ], ], 'GetEnabledIpamPolicy' => [ 'name' => 'GetEnabledIpamPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetEnabledIpamPolicyRequest', ], 'output' => [ 'shape' => 'GetEnabledIpamPolicyResult', ], ], 'GetFlowLogsIntegrationTemplate' => [ 'name' => 'GetFlowLogsIntegrationTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetFlowLogsIntegrationTemplateRequest', ], 'output' => [ 'shape' => 'GetFlowLogsIntegrationTemplateResult', ], ], 'GetGroupsForCapacityReservation' => [ 'name' => 'GetGroupsForCapacityReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetGroupsForCapacityReservationRequest', ], 'output' => [ 'shape' => 'GetGroupsForCapacityReservationResult', ], ], 'GetHostReservationPurchasePreview' => [ 'name' => 'GetHostReservationPurchasePreview', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetHostReservationPurchasePreviewRequest', ], 'output' => [ 'shape' => 'GetHostReservationPurchasePreviewResult', ], ], 'GetImageAncestry' => [ 'name' => 'GetImageAncestry', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetImageAncestryRequest', ], 'output' => [ 'shape' => 'GetImageAncestryResult', ], ], 'GetImageBlockPublicAccessState' => [ 'name' => 'GetImageBlockPublicAccessState', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetImageBlockPublicAccessStateRequest', ], 'output' => [ 'shape' => 'GetImageBlockPublicAccessStateResult', ], ], 'GetInstanceMetadataDefaults' => [ 'name' => 'GetInstanceMetadataDefaults', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceMetadataDefaultsRequest', ], 'output' => [ 'shape' => 'GetInstanceMetadataDefaultsResult', ], ], 'GetInstanceTpmEkPub' => [ 'name' => 'GetInstanceTpmEkPub', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceTpmEkPubRequest', ], 'output' => [ 'shape' => 'GetInstanceTpmEkPubResult', ], ], 'GetInstanceTypesFromInstanceRequirements' => [ 'name' => 'GetInstanceTypesFromInstanceRequirements', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceTypesFromInstanceRequirementsRequest', ], 'output' => [ 'shape' => 'GetInstanceTypesFromInstanceRequirementsResult', ], ], 'GetInstanceUefiData' => [ 'name' => 'GetInstanceUefiData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetInstanceUefiDataRequest', ], 'output' => [ 'shape' => 'GetInstanceUefiDataResult', ], ], 'GetIpamAddressHistory' => [ 'name' => 'GetIpamAddressHistory', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamAddressHistoryRequest', ], 'output' => [ 'shape' => 'GetIpamAddressHistoryResult', ], ], 'GetIpamDiscoveredAccounts' => [ 'name' => 'GetIpamDiscoveredAccounts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamDiscoveredAccountsRequest', ], 'output' => [ 'shape' => 'GetIpamDiscoveredAccountsResult', ], ], 'GetIpamDiscoveredPublicAddresses' => [ 'name' => 'GetIpamDiscoveredPublicAddresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamDiscoveredPublicAddressesRequest', ], 'output' => [ 'shape' => 'GetIpamDiscoveredPublicAddressesResult', ], ], 'GetIpamDiscoveredResourceCidrs' => [ 'name' => 'GetIpamDiscoveredResourceCidrs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamDiscoveredResourceCidrsRequest', ], 'output' => [ 'shape' => 'GetIpamDiscoveredResourceCidrsResult', ], ], 'GetIpamPolicyAllocationRules' => [ 'name' => 'GetIpamPolicyAllocationRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamPolicyAllocationRulesRequest', ], 'output' => [ 'shape' => 'GetIpamPolicyAllocationRulesResult', ], ], 'GetIpamPolicyOrganizationTargets' => [ 'name' => 'GetIpamPolicyOrganizationTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamPolicyOrganizationTargetsRequest', ], 'output' => [ 'shape' => 'GetIpamPolicyOrganizationTargetsResult', ], ], 'GetIpamPoolAllocations' => [ 'name' => 'GetIpamPoolAllocations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamPoolAllocationsRequest', ], 'output' => [ 'shape' => 'GetIpamPoolAllocationsResult', ], ], 'GetIpamPoolCidrs' => [ 'name' => 'GetIpamPoolCidrs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamPoolCidrsRequest', ], 'output' => [ 'shape' => 'GetIpamPoolCidrsResult', ], ], 'GetIpamPrefixListResolverRules' => [ 'name' => 'GetIpamPrefixListResolverRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamPrefixListResolverRulesRequest', ], 'output' => [ 'shape' => 'GetIpamPrefixListResolverRulesResult', ], ], 'GetIpamPrefixListResolverVersionEntries' => [ 'name' => 'GetIpamPrefixListResolverVersionEntries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamPrefixListResolverVersionEntriesRequest', ], 'output' => [ 'shape' => 'GetIpamPrefixListResolverVersionEntriesResult', ], ], 'GetIpamPrefixListResolverVersions' => [ 'name' => 'GetIpamPrefixListResolverVersions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamPrefixListResolverVersionsRequest', ], 'output' => [ 'shape' => 'GetIpamPrefixListResolverVersionsResult', ], ], 'GetIpamResourceCidrs' => [ 'name' => 'GetIpamResourceCidrs', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetIpamResourceCidrsRequest', ], 'output' => [ 'shape' => 'GetIpamResourceCidrsResult', ], ], 'GetLaunchTemplateData' => [ 'name' => 'GetLaunchTemplateData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetLaunchTemplateDataRequest', ], 'output' => [ 'shape' => 'GetLaunchTemplateDataResult', ], ], 'GetManagedPrefixListAssociations' => [ 'name' => 'GetManagedPrefixListAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetManagedPrefixListAssociationsRequest', ], 'output' => [ 'shape' => 'GetManagedPrefixListAssociationsResult', ], ], 'GetManagedPrefixListEntries' => [ 'name' => 'GetManagedPrefixListEntries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetManagedPrefixListEntriesRequest', ], 'output' => [ 'shape' => 'GetManagedPrefixListEntriesResult', ], ], 'GetManagedResourceVisibility' => [ 'name' => 'GetManagedResourceVisibility', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetManagedResourceVisibilityRequest', ], 'output' => [ 'shape' => 'GetManagedResourceVisibilityResult', ], ], 'GetNetworkInsightsAccessScopeAnalysisFindings' => [ 'name' => 'GetNetworkInsightsAccessScopeAnalysisFindings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetNetworkInsightsAccessScopeAnalysisFindingsRequest', ], 'output' => [ 'shape' => 'GetNetworkInsightsAccessScopeAnalysisFindingsResult', ], ], 'GetNetworkInsightsAccessScopeContent' => [ 'name' => 'GetNetworkInsightsAccessScopeContent', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetNetworkInsightsAccessScopeContentRequest', ], 'output' => [ 'shape' => 'GetNetworkInsightsAccessScopeContentResult', ], ], 'GetPasswordData' => [ 'name' => 'GetPasswordData', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPasswordDataRequest', ], 'output' => [ 'shape' => 'GetPasswordDataResult', ], ], 'GetReservedInstancesExchangeQuote' => [ 'name' => 'GetReservedInstancesExchangeQuote', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetReservedInstancesExchangeQuoteRequest', ], 'output' => [ 'shape' => 'GetReservedInstancesExchangeQuoteResult', ], ], 'GetRouteServerAssociations' => [ 'name' => 'GetRouteServerAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRouteServerAssociationsRequest', ], 'output' => [ 'shape' => 'GetRouteServerAssociationsResult', ], ], 'GetRouteServerPropagations' => [ 'name' => 'GetRouteServerPropagations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRouteServerPropagationsRequest', ], 'output' => [ 'shape' => 'GetRouteServerPropagationsResult', ], ], 'GetRouteServerRoutingDatabase' => [ 'name' => 'GetRouteServerRoutingDatabase', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetRouteServerRoutingDatabaseRequest', ], 'output' => [ 'shape' => 'GetRouteServerRoutingDatabaseResult', ], ], 'GetSecurityGroupsForVpc' => [ 'name' => 'GetSecurityGroupsForVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSecurityGroupsForVpcRequest', ], 'output' => [ 'shape' => 'GetSecurityGroupsForVpcResult', ], ], 'GetSerialConsoleAccessStatus' => [ 'name' => 'GetSerialConsoleAccessStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSerialConsoleAccessStatusRequest', ], 'output' => [ 'shape' => 'GetSerialConsoleAccessStatusResult', ], ], 'GetSnapshotBlockPublicAccessState' => [ 'name' => 'GetSnapshotBlockPublicAccessState', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSnapshotBlockPublicAccessStateRequest', ], 'output' => [ 'shape' => 'GetSnapshotBlockPublicAccessStateResult', ], ], 'GetSpotPlacementScores' => [ 'name' => 'GetSpotPlacementScores', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSpotPlacementScoresRequest', ], 'output' => [ 'shape' => 'GetSpotPlacementScoresResult', ], ], 'GetSubnetCidrReservations' => [ 'name' => 'GetSubnetCidrReservations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSubnetCidrReservationsRequest', ], 'output' => [ 'shape' => 'GetSubnetCidrReservationsResult', ], ], 'GetTransitGatewayAttachmentPropagations' => [ 'name' => 'GetTransitGatewayAttachmentPropagations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayAttachmentPropagationsRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayAttachmentPropagationsResult', ], ], 'GetTransitGatewayMeteringPolicyEntries' => [ 'name' => 'GetTransitGatewayMeteringPolicyEntries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayMeteringPolicyEntriesRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayMeteringPolicyEntriesResult', ], ], 'GetTransitGatewayMulticastDomainAssociations' => [ 'name' => 'GetTransitGatewayMulticastDomainAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayMulticastDomainAssociationsRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayMulticastDomainAssociationsResult', ], ], 'GetTransitGatewayPolicyTableAssociations' => [ 'name' => 'GetTransitGatewayPolicyTableAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayPolicyTableAssociationsRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayPolicyTableAssociationsResult', ], ], 'GetTransitGatewayPolicyTableEntries' => [ 'name' => 'GetTransitGatewayPolicyTableEntries', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayPolicyTableEntriesRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayPolicyTableEntriesResult', ], ], 'GetTransitGatewayPrefixListReferences' => [ 'name' => 'GetTransitGatewayPrefixListReferences', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayPrefixListReferencesRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayPrefixListReferencesResult', ], ], 'GetTransitGatewayRouteTableAssociations' => [ 'name' => 'GetTransitGatewayRouteTableAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayRouteTableAssociationsRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayRouteTableAssociationsResult', ], ], 'GetTransitGatewayRouteTablePropagations' => [ 'name' => 'GetTransitGatewayRouteTablePropagations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTransitGatewayRouteTablePropagationsRequest', ], 'output' => [ 'shape' => 'GetTransitGatewayRouteTablePropagationsResult', ], ], 'GetVerifiedAccessEndpointPolicy' => [ 'name' => 'GetVerifiedAccessEndpointPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetVerifiedAccessEndpointPolicyRequest', ], 'output' => [ 'shape' => 'GetVerifiedAccessEndpointPolicyResult', ], ], 'GetVerifiedAccessEndpointTargets' => [ 'name' => 'GetVerifiedAccessEndpointTargets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetVerifiedAccessEndpointTargetsRequest', ], 'output' => [ 'shape' => 'GetVerifiedAccessEndpointTargetsResult', ], ], 'GetVerifiedAccessGroupPolicy' => [ 'name' => 'GetVerifiedAccessGroupPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetVerifiedAccessGroupPolicyRequest', ], 'output' => [ 'shape' => 'GetVerifiedAccessGroupPolicyResult', ], ], 'GetVpcResourcesBlockingEncryptionEnforcement' => [ 'name' => 'GetVpcResourcesBlockingEncryptionEnforcement', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetVpcResourcesBlockingEncryptionEnforcementRequest', ], 'output' => [ 'shape' => 'GetVpcResourcesBlockingEncryptionEnforcementResult', ], ], 'GetVpnConnectionDeviceSampleConfiguration' => [ 'name' => 'GetVpnConnectionDeviceSampleConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetVpnConnectionDeviceSampleConfigurationRequest', ], 'output' => [ 'shape' => 'GetVpnConnectionDeviceSampleConfigurationResult', ], ], 'GetVpnConnectionDeviceTypes' => [ 'name' => 'GetVpnConnectionDeviceTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetVpnConnectionDeviceTypesRequest', ], 'output' => [ 'shape' => 'GetVpnConnectionDeviceTypesResult', ], ], 'GetVpnTunnelReplacementStatus' => [ 'name' => 'GetVpnTunnelReplacementStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetVpnTunnelReplacementStatusRequest', ], 'output' => [ 'shape' => 'GetVpnTunnelReplacementStatusResult', ], ], 'ImportClientVpnClientCertificateRevocationList' => [ 'name' => 'ImportClientVpnClientCertificateRevocationList', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportClientVpnClientCertificateRevocationListRequest', ], 'output' => [ 'shape' => 'ImportClientVpnClientCertificateRevocationListResult', ], ], 'ImportImage' => [ 'name' => 'ImportImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportImageRequest', ], 'output' => [ 'shape' => 'ImportImageResult', ], ], 'ImportInstance' => [ 'name' => 'ImportInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportInstanceRequest', ], 'output' => [ 'shape' => 'ImportInstanceResult', ], ], 'ImportKeyPair' => [ 'name' => 'ImportKeyPair', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportKeyPairRequest', ], 'output' => [ 'shape' => 'ImportKeyPairResult', ], ], 'ImportSnapshot' => [ 'name' => 'ImportSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportSnapshotRequest', ], 'output' => [ 'shape' => 'ImportSnapshotResult', ], ], 'ImportVolume' => [ 'name' => 'ImportVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportVolumeRequest', ], 'output' => [ 'shape' => 'ImportVolumeResult', ], ], 'ListImagesInRecycleBin' => [ 'name' => 'ListImagesInRecycleBin', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListImagesInRecycleBinRequest', ], 'output' => [ 'shape' => 'ListImagesInRecycleBinResult', ], ], 'ListSnapshotsInRecycleBin' => [ 'name' => 'ListSnapshotsInRecycleBin', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSnapshotsInRecycleBinRequest', ], 'output' => [ 'shape' => 'ListSnapshotsInRecycleBinResult', ], ], 'ListVolumesInRecycleBin' => [ 'name' => 'ListVolumesInRecycleBin', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListVolumesInRecycleBinRequest', ], 'output' => [ 'shape' => 'ListVolumesInRecycleBinResult', ], ], 'LockSnapshot' => [ 'name' => 'LockSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'LockSnapshotRequest', ], 'output' => [ 'shape' => 'LockSnapshotResult', ], ], 'ModifyAccountVpcEncryptionControl' => [ 'name' => 'ModifyAccountVpcEncryptionControl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyAccountVpcEncryptionControlRequest', ], 'output' => [ 'shape' => 'ModifyAccountVpcEncryptionControlResult', ], ], 'ModifyAddressAttribute' => [ 'name' => 'ModifyAddressAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyAddressAttributeRequest', ], 'output' => [ 'shape' => 'ModifyAddressAttributeResult', ], ], 'ModifyAvailabilityZoneGroup' => [ 'name' => 'ModifyAvailabilityZoneGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyAvailabilityZoneGroupRequest', ], 'output' => [ 'shape' => 'ModifyAvailabilityZoneGroupResult', ], ], 'ModifyCapacityReservation' => [ 'name' => 'ModifyCapacityReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyCapacityReservationRequest', ], 'output' => [ 'shape' => 'ModifyCapacityReservationResult', ], ], 'ModifyCapacityReservationFleet' => [ 'name' => 'ModifyCapacityReservationFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyCapacityReservationFleetRequest', ], 'output' => [ 'shape' => 'ModifyCapacityReservationFleetResult', ], ], 'ModifyClientVpnEndpoint' => [ 'name' => 'ModifyClientVpnEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyClientVpnEndpointRequest', ], 'output' => [ 'shape' => 'ModifyClientVpnEndpointResult', ], ], 'ModifyDefaultCreditSpecification' => [ 'name' => 'ModifyDefaultCreditSpecification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyDefaultCreditSpecificationRequest', ], 'output' => [ 'shape' => 'ModifyDefaultCreditSpecificationResult', ], ], 'ModifyEbsDefaultKmsKeyId' => [ 'name' => 'ModifyEbsDefaultKmsKeyId', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyEbsDefaultKmsKeyIdRequest', ], 'output' => [ 'shape' => 'ModifyEbsDefaultKmsKeyIdResult', ], ], 'ModifyFleet' => [ 'name' => 'ModifyFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyFleetRequest', ], 'output' => [ 'shape' => 'ModifyFleetResult', ], ], 'ModifyFpgaImageAttribute' => [ 'name' => 'ModifyFpgaImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyFpgaImageAttributeRequest', ], 'output' => [ 'shape' => 'ModifyFpgaImageAttributeResult', ], ], 'ModifyHosts' => [ 'name' => 'ModifyHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyHostsRequest', ], 'output' => [ 'shape' => 'ModifyHostsResult', ], ], 'ModifyIdFormat' => [ 'name' => 'ModifyIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIdFormatRequest', ], ], 'ModifyIdentityIdFormat' => [ 'name' => 'ModifyIdentityIdFormat', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIdentityIdFormatRequest', ], ], 'ModifyImageAttribute' => [ 'name' => 'ModifyImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyImageAttributeRequest', ], ], 'ModifyInstanceAttribute' => [ 'name' => 'ModifyInstanceAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceAttributeRequest', ], ], 'ModifyInstanceCapacityReservationAttributes' => [ 'name' => 'ModifyInstanceCapacityReservationAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceCapacityReservationAttributesRequest', ], 'output' => [ 'shape' => 'ModifyInstanceCapacityReservationAttributesResult', ], ], 'ModifyInstanceConnectEndpoint' => [ 'name' => 'ModifyInstanceConnectEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceConnectEndpointRequest', ], 'output' => [ 'shape' => 'ModifyInstanceConnectEndpointResult', ], ], 'ModifyInstanceCpuOptions' => [ 'name' => 'ModifyInstanceCpuOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceCpuOptionsRequest', ], 'output' => [ 'shape' => 'ModifyInstanceCpuOptionsResult', ], ], 'ModifyInstanceCreditSpecification' => [ 'name' => 'ModifyInstanceCreditSpecification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceCreditSpecificationRequest', ], 'output' => [ 'shape' => 'ModifyInstanceCreditSpecificationResult', ], ], 'ModifyInstanceEventStartTime' => [ 'name' => 'ModifyInstanceEventStartTime', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceEventStartTimeRequest', ], 'output' => [ 'shape' => 'ModifyInstanceEventStartTimeResult', ], ], 'ModifyInstanceEventWindow' => [ 'name' => 'ModifyInstanceEventWindow', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceEventWindowRequest', ], 'output' => [ 'shape' => 'ModifyInstanceEventWindowResult', ], ], 'ModifyInstanceMaintenanceOptions' => [ 'name' => 'ModifyInstanceMaintenanceOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceMaintenanceOptionsRequest', ], 'output' => [ 'shape' => 'ModifyInstanceMaintenanceOptionsResult', ], ], 'ModifyInstanceMetadataDefaults' => [ 'name' => 'ModifyInstanceMetadataDefaults', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceMetadataDefaultsRequest', ], 'output' => [ 'shape' => 'ModifyInstanceMetadataDefaultsResult', ], ], 'ModifyInstanceMetadataOptions' => [ 'name' => 'ModifyInstanceMetadataOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceMetadataOptionsRequest', ], 'output' => [ 'shape' => 'ModifyInstanceMetadataOptionsResult', ], ], 'ModifyInstanceNetworkPerformanceOptions' => [ 'name' => 'ModifyInstanceNetworkPerformanceOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstanceNetworkPerformanceRequest', ], 'output' => [ 'shape' => 'ModifyInstanceNetworkPerformanceResult', ], ], 'ModifyInstancePlacement' => [ 'name' => 'ModifyInstancePlacement', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyInstancePlacementRequest', ], 'output' => [ 'shape' => 'ModifyInstancePlacementResult', ], ], 'ModifyIpam' => [ 'name' => 'ModifyIpam', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamRequest', ], 'output' => [ 'shape' => 'ModifyIpamResult', ], ], 'ModifyIpamPolicyAllocationRules' => [ 'name' => 'ModifyIpamPolicyAllocationRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamPolicyAllocationRulesRequest', ], 'output' => [ 'shape' => 'ModifyIpamPolicyAllocationRulesResult', ], ], 'ModifyIpamPool' => [ 'name' => 'ModifyIpamPool', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamPoolRequest', ], 'output' => [ 'shape' => 'ModifyIpamPoolResult', ], ], 'ModifyIpamPoolAllocation' => [ 'name' => 'ModifyIpamPoolAllocation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamPoolAllocationRequest', ], 'output' => [ 'shape' => 'ModifyIpamPoolAllocationResult', ], ], 'ModifyIpamPrefixListResolver' => [ 'name' => 'ModifyIpamPrefixListResolver', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamPrefixListResolverRequest', ], 'output' => [ 'shape' => 'ModifyIpamPrefixListResolverResult', ], ], 'ModifyIpamPrefixListResolverTarget' => [ 'name' => 'ModifyIpamPrefixListResolverTarget', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamPrefixListResolverTargetRequest', ], 'output' => [ 'shape' => 'ModifyIpamPrefixListResolverTargetResult', ], ], 'ModifyIpamResourceCidr' => [ 'name' => 'ModifyIpamResourceCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamResourceCidrRequest', ], 'output' => [ 'shape' => 'ModifyIpamResourceCidrResult', ], ], 'ModifyIpamResourceDiscovery' => [ 'name' => 'ModifyIpamResourceDiscovery', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamResourceDiscoveryRequest', ], 'output' => [ 'shape' => 'ModifyIpamResourceDiscoveryResult', ], ], 'ModifyIpamScope' => [ 'name' => 'ModifyIpamScope', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyIpamScopeRequest', ], 'output' => [ 'shape' => 'ModifyIpamScopeResult', ], ], 'ModifyLaunchTemplate' => [ 'name' => 'ModifyLaunchTemplate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyLaunchTemplateRequest', ], 'output' => [ 'shape' => 'ModifyLaunchTemplateResult', ], ], 'ModifyLocalGatewayRoute' => [ 'name' => 'ModifyLocalGatewayRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyLocalGatewayRouteRequest', ], 'output' => [ 'shape' => 'ModifyLocalGatewayRouteResult', ], ], 'ModifyManagedPrefixList' => [ 'name' => 'ModifyManagedPrefixList', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyManagedPrefixListRequest', ], 'output' => [ 'shape' => 'ModifyManagedPrefixListResult', ], ], 'ModifyManagedResourceVisibility' => [ 'name' => 'ModifyManagedResourceVisibility', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyManagedResourceVisibilityRequest', ], 'output' => [ 'shape' => 'ModifyManagedResourceVisibilityResult', ], ], 'ModifyNetworkInterfaceAttribute' => [ 'name' => 'ModifyNetworkInterfaceAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyNetworkInterfaceAttributeRequest', ], ], 'ModifyPrivateDnsNameOptions' => [ 'name' => 'ModifyPrivateDnsNameOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyPrivateDnsNameOptionsRequest', ], 'output' => [ 'shape' => 'ModifyPrivateDnsNameOptionsResult', ], ], 'ModifyPublicIpDnsNameOptions' => [ 'name' => 'ModifyPublicIpDnsNameOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyPublicIpDnsNameOptionsRequest', ], 'output' => [ 'shape' => 'ModifyPublicIpDnsNameOptionsResult', ], ], 'ModifyReservedInstances' => [ 'name' => 'ModifyReservedInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyReservedInstancesRequest', ], 'output' => [ 'shape' => 'ModifyReservedInstancesResult', ], ], 'ModifyRouteServer' => [ 'name' => 'ModifyRouteServer', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyRouteServerRequest', ], 'output' => [ 'shape' => 'ModifyRouteServerResult', ], ], 'ModifySecurityGroupRules' => [ 'name' => 'ModifySecurityGroupRules', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySecurityGroupRulesRequest', ], 'output' => [ 'shape' => 'ModifySecurityGroupRulesResult', ], ], 'ModifySnapshotAttribute' => [ 'name' => 'ModifySnapshotAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySnapshotAttributeRequest', ], ], 'ModifySnapshotTier' => [ 'name' => 'ModifySnapshotTier', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySnapshotTierRequest', ], 'output' => [ 'shape' => 'ModifySnapshotTierResult', ], ], 'ModifySpotFleetRequest' => [ 'name' => 'ModifySpotFleetRequest', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySpotFleetRequestRequest', ], 'output' => [ 'shape' => 'ModifySpotFleetRequestResponse', ], ], 'ModifySubnetAttribute' => [ 'name' => 'ModifySubnetAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifySubnetAttributeRequest', ], ], 'ModifyTrafficMirrorFilterNetworkServices' => [ 'name' => 'ModifyTrafficMirrorFilterNetworkServices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTrafficMirrorFilterNetworkServicesRequest', ], 'output' => [ 'shape' => 'ModifyTrafficMirrorFilterNetworkServicesResult', ], ], 'ModifyTrafficMirrorFilterRule' => [ 'name' => 'ModifyTrafficMirrorFilterRule', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTrafficMirrorFilterRuleRequest', ], 'output' => [ 'shape' => 'ModifyTrafficMirrorFilterRuleResult', ], ], 'ModifyTrafficMirrorSession' => [ 'name' => 'ModifyTrafficMirrorSession', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTrafficMirrorSessionRequest', ], 'output' => [ 'shape' => 'ModifyTrafficMirrorSessionResult', ], ], 'ModifyTransitGateway' => [ 'name' => 'ModifyTransitGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTransitGatewayRequest', ], 'output' => [ 'shape' => 'ModifyTransitGatewayResult', ], ], 'ModifyTransitGatewayMeteringPolicy' => [ 'name' => 'ModifyTransitGatewayMeteringPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTransitGatewayMeteringPolicyRequest', ], 'output' => [ 'shape' => 'ModifyTransitGatewayMeteringPolicyResult', ], ], 'ModifyTransitGatewayPrefixListReference' => [ 'name' => 'ModifyTransitGatewayPrefixListReference', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTransitGatewayPrefixListReferenceRequest', ], 'output' => [ 'shape' => 'ModifyTransitGatewayPrefixListReferenceResult', ], ], 'ModifyTransitGatewayVpcAttachment' => [ 'name' => 'ModifyTransitGatewayVpcAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyTransitGatewayVpcAttachmentRequest', ], 'output' => [ 'shape' => 'ModifyTransitGatewayVpcAttachmentResult', ], ], 'ModifyVerifiedAccessEndpoint' => [ 'name' => 'ModifyVerifiedAccessEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVerifiedAccessEndpointRequest', ], 'output' => [ 'shape' => 'ModifyVerifiedAccessEndpointResult', ], ], 'ModifyVerifiedAccessEndpointPolicy' => [ 'name' => 'ModifyVerifiedAccessEndpointPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVerifiedAccessEndpointPolicyRequest', ], 'output' => [ 'shape' => 'ModifyVerifiedAccessEndpointPolicyResult', ], ], 'ModifyVerifiedAccessGroup' => [ 'name' => 'ModifyVerifiedAccessGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVerifiedAccessGroupRequest', ], 'output' => [ 'shape' => 'ModifyVerifiedAccessGroupResult', ], ], 'ModifyVerifiedAccessGroupPolicy' => [ 'name' => 'ModifyVerifiedAccessGroupPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVerifiedAccessGroupPolicyRequest', ], 'output' => [ 'shape' => 'ModifyVerifiedAccessGroupPolicyResult', ], ], 'ModifyVerifiedAccessInstance' => [ 'name' => 'ModifyVerifiedAccessInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVerifiedAccessInstanceRequest', ], 'output' => [ 'shape' => 'ModifyVerifiedAccessInstanceResult', ], ], 'ModifyVerifiedAccessInstanceLoggingConfiguration' => [ 'name' => 'ModifyVerifiedAccessInstanceLoggingConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVerifiedAccessInstanceLoggingConfigurationRequest', ], 'output' => [ 'shape' => 'ModifyVerifiedAccessInstanceLoggingConfigurationResult', ], ], 'ModifyVerifiedAccessTrustProvider' => [ 'name' => 'ModifyVerifiedAccessTrustProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVerifiedAccessTrustProviderRequest', ], 'output' => [ 'shape' => 'ModifyVerifiedAccessTrustProviderResult', ], ], 'ModifyVolume' => [ 'name' => 'ModifyVolume', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVolumeRequest', ], 'output' => [ 'shape' => 'ModifyVolumeResult', ], ], 'ModifyVolumeAttribute' => [ 'name' => 'ModifyVolumeAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVolumeAttributeRequest', ], ], 'ModifyVpcAttribute' => [ 'name' => 'ModifyVpcAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcAttributeRequest', ], ], 'ModifyVpcBlockPublicAccessExclusion' => [ 'name' => 'ModifyVpcBlockPublicAccessExclusion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcBlockPublicAccessExclusionRequest', ], 'output' => [ 'shape' => 'ModifyVpcBlockPublicAccessExclusionResult', ], ], 'ModifyVpcBlockPublicAccessOptions' => [ 'name' => 'ModifyVpcBlockPublicAccessOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcBlockPublicAccessOptionsRequest', ], 'output' => [ 'shape' => 'ModifyVpcBlockPublicAccessOptionsResult', ], ], 'ModifyVpcEncryptionControl' => [ 'name' => 'ModifyVpcEncryptionControl', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEncryptionControlRequest', ], 'output' => [ 'shape' => 'ModifyVpcEncryptionControlResult', ], ], 'ModifyVpcEndpoint' => [ 'name' => 'ModifyVpcEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEndpointRequest', ], 'output' => [ 'shape' => 'ModifyVpcEndpointResult', ], ], 'ModifyVpcEndpointConnectionNotification' => [ 'name' => 'ModifyVpcEndpointConnectionNotification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEndpointConnectionNotificationRequest', ], 'output' => [ 'shape' => 'ModifyVpcEndpointConnectionNotificationResult', ], ], 'ModifyVpcEndpointPayerResponsibility' => [ 'name' => 'ModifyVpcEndpointPayerResponsibility', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEndpointPayerResponsibilityRequest', ], 'output' => [ 'shape' => 'ModifyVpcEndpointPayerResponsibilityResult', ], ], 'ModifyVpcEndpointServiceConfiguration' => [ 'name' => 'ModifyVpcEndpointServiceConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEndpointServiceConfigurationRequest', ], 'output' => [ 'shape' => 'ModifyVpcEndpointServiceConfigurationResult', ], ], 'ModifyVpcEndpointServicePayerResponsibility' => [ 'name' => 'ModifyVpcEndpointServicePayerResponsibility', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEndpointServicePayerResponsibilityRequest', ], 'output' => [ 'shape' => 'ModifyVpcEndpointServicePayerResponsibilityResult', ], ], 'ModifyVpcEndpointServicePermissions' => [ 'name' => 'ModifyVpcEndpointServicePermissions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcEndpointServicePermissionsRequest', ], 'output' => [ 'shape' => 'ModifyVpcEndpointServicePermissionsResult', ], ], 'ModifyVpcPeeringConnectionOptions' => [ 'name' => 'ModifyVpcPeeringConnectionOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcPeeringConnectionOptionsRequest', ], 'output' => [ 'shape' => 'ModifyVpcPeeringConnectionOptionsResult', ], ], 'ModifyVpcTenancy' => [ 'name' => 'ModifyVpcTenancy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpcTenancyRequest', ], 'output' => [ 'shape' => 'ModifyVpcTenancyResult', ], ], 'ModifyVpnConnection' => [ 'name' => 'ModifyVpnConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpnConnectionRequest', ], 'output' => [ 'shape' => 'ModifyVpnConnectionResult', ], ], 'ModifyVpnConnectionOptions' => [ 'name' => 'ModifyVpnConnectionOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpnConnectionOptionsRequest', ], 'output' => [ 'shape' => 'ModifyVpnConnectionOptionsResult', ], ], 'ModifyVpnTunnelCertificate' => [ 'name' => 'ModifyVpnTunnelCertificate', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpnTunnelCertificateRequest', ], 'output' => [ 'shape' => 'ModifyVpnTunnelCertificateResult', ], ], 'ModifyVpnTunnelOptions' => [ 'name' => 'ModifyVpnTunnelOptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ModifyVpnTunnelOptionsRequest', ], 'output' => [ 'shape' => 'ModifyVpnTunnelOptionsResult', ], ], 'MonitorInstances' => [ 'name' => 'MonitorInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'MonitorInstancesRequest', ], 'output' => [ 'shape' => 'MonitorInstancesResult', ], ], 'MoveAddressToVpc' => [ 'name' => 'MoveAddressToVpc', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'MoveAddressToVpcRequest', ], 'output' => [ 'shape' => 'MoveAddressToVpcResult', ], ], 'MoveByoipCidrToIpam' => [ 'name' => 'MoveByoipCidrToIpam', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'MoveByoipCidrToIpamRequest', ], 'output' => [ 'shape' => 'MoveByoipCidrToIpamResult', ], ], 'MoveCapacityReservationInstances' => [ 'name' => 'MoveCapacityReservationInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'MoveCapacityReservationInstancesRequest', ], 'output' => [ 'shape' => 'MoveCapacityReservationInstancesResult', ], ], 'ProvisionByoipCidr' => [ 'name' => 'ProvisionByoipCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ProvisionByoipCidrRequest', ], 'output' => [ 'shape' => 'ProvisionByoipCidrResult', ], ], 'ProvisionIpamByoasn' => [ 'name' => 'ProvisionIpamByoasn', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ProvisionIpamByoasnRequest', ], 'output' => [ 'shape' => 'ProvisionIpamByoasnResult', ], ], 'ProvisionIpamPoolCidr' => [ 'name' => 'ProvisionIpamPoolCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ProvisionIpamPoolCidrRequest', ], 'output' => [ 'shape' => 'ProvisionIpamPoolCidrResult', ], ], 'ProvisionPublicIpv4PoolCidr' => [ 'name' => 'ProvisionPublicIpv4PoolCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ProvisionPublicIpv4PoolCidrRequest', ], 'output' => [ 'shape' => 'ProvisionPublicIpv4PoolCidrResult', ], ], 'PurchaseCapacityBlock' => [ 'name' => 'PurchaseCapacityBlock', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseCapacityBlockRequest', ], 'output' => [ 'shape' => 'PurchaseCapacityBlockResult', ], ], 'PurchaseCapacityBlockExtension' => [ 'name' => 'PurchaseCapacityBlockExtension', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseCapacityBlockExtensionRequest', ], 'output' => [ 'shape' => 'PurchaseCapacityBlockExtensionResult', ], ], 'PurchaseHostReservation' => [ 'name' => 'PurchaseHostReservation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseHostReservationRequest', ], 'output' => [ 'shape' => 'PurchaseHostReservationResult', ], ], 'PurchaseReservedInstancesOffering' => [ 'name' => 'PurchaseReservedInstancesOffering', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseReservedInstancesOfferingRequest', ], 'output' => [ 'shape' => 'PurchaseReservedInstancesOfferingResult', ], ], 'PurchaseScheduledInstances' => [ 'name' => 'PurchaseScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PurchaseScheduledInstancesRequest', ], 'output' => [ 'shape' => 'PurchaseScheduledInstancesResult', ], ], 'RebootInstances' => [ 'name' => 'RebootInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RebootInstancesRequest', ], ], 'RegisterImage' => [ 'name' => 'RegisterImage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterImageRequest', ], 'output' => [ 'shape' => 'RegisterImageResult', ], ], 'RegisterInstanceEventNotificationAttributes' => [ 'name' => 'RegisterInstanceEventNotificationAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterInstanceEventNotificationAttributesRequest', ], 'output' => [ 'shape' => 'RegisterInstanceEventNotificationAttributesResult', ], ], 'RegisterTransitGatewayMulticastGroupMembers' => [ 'name' => 'RegisterTransitGatewayMulticastGroupMembers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterTransitGatewayMulticastGroupMembersRequest', ], 'output' => [ 'shape' => 'RegisterTransitGatewayMulticastGroupMembersResult', ], ], 'RegisterTransitGatewayMulticastGroupSources' => [ 'name' => 'RegisterTransitGatewayMulticastGroupSources', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterTransitGatewayMulticastGroupSourcesRequest', ], 'output' => [ 'shape' => 'RegisterTransitGatewayMulticastGroupSourcesResult', ], ], 'RejectCapacityReservationBillingOwnership' => [ 'name' => 'RejectCapacityReservationBillingOwnership', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectCapacityReservationBillingOwnershipRequest', ], 'output' => [ 'shape' => 'RejectCapacityReservationBillingOwnershipResult', ], ], 'RejectTransitGatewayClientVpnAttachment' => [ 'name' => 'RejectTransitGatewayClientVpnAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectTransitGatewayClientVpnAttachmentRequest', ], 'output' => [ 'shape' => 'RejectTransitGatewayClientVpnAttachmentResult', ], ], 'RejectTransitGatewayMulticastDomainAssociations' => [ 'name' => 'RejectTransitGatewayMulticastDomainAssociations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectTransitGatewayMulticastDomainAssociationsRequest', ], 'output' => [ 'shape' => 'RejectTransitGatewayMulticastDomainAssociationsResult', ], ], 'RejectTransitGatewayPeeringAttachment' => [ 'name' => 'RejectTransitGatewayPeeringAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectTransitGatewayPeeringAttachmentRequest', ], 'output' => [ 'shape' => 'RejectTransitGatewayPeeringAttachmentResult', ], ], 'RejectTransitGatewayVpcAttachment' => [ 'name' => 'RejectTransitGatewayVpcAttachment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectTransitGatewayVpcAttachmentRequest', ], 'output' => [ 'shape' => 'RejectTransitGatewayVpcAttachmentResult', ], ], 'RejectVpcEndpointConnections' => [ 'name' => 'RejectVpcEndpointConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectVpcEndpointConnectionsRequest', ], 'output' => [ 'shape' => 'RejectVpcEndpointConnectionsResult', ], ], 'RejectVpcPeeringConnection' => [ 'name' => 'RejectVpcPeeringConnection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RejectVpcPeeringConnectionRequest', ], 'output' => [ 'shape' => 'RejectVpcPeeringConnectionResult', ], ], 'ReleaseAddress' => [ 'name' => 'ReleaseAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReleaseAddressRequest', ], ], 'ReleaseHosts' => [ 'name' => 'ReleaseHosts', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReleaseHostsRequest', ], 'output' => [ 'shape' => 'ReleaseHostsResult', ], ], 'ReleaseIpamPoolAllocation' => [ 'name' => 'ReleaseIpamPoolAllocation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReleaseIpamPoolAllocationRequest', ], 'output' => [ 'shape' => 'ReleaseIpamPoolAllocationResult', ], ], 'ReplaceIamInstanceProfileAssociation' => [ 'name' => 'ReplaceIamInstanceProfileAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceIamInstanceProfileAssociationRequest', ], 'output' => [ 'shape' => 'ReplaceIamInstanceProfileAssociationResult', ], ], 'ReplaceImageCriteriaInAllowedImagesSettings' => [ 'name' => 'ReplaceImageCriteriaInAllowedImagesSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceImageCriteriaInAllowedImagesSettingsRequest', ], 'output' => [ 'shape' => 'ReplaceImageCriteriaInAllowedImagesSettingsResult', ], ], 'ReplaceNetworkAclAssociation' => [ 'name' => 'ReplaceNetworkAclAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceNetworkAclAssociationRequest', ], 'output' => [ 'shape' => 'ReplaceNetworkAclAssociationResult', ], ], 'ReplaceNetworkAclEntry' => [ 'name' => 'ReplaceNetworkAclEntry', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceNetworkAclEntryRequest', ], ], 'ReplaceRoute' => [ 'name' => 'ReplaceRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceRouteRequest', ], ], 'ReplaceRouteTableAssociation' => [ 'name' => 'ReplaceRouteTableAssociation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceRouteTableAssociationRequest', ], 'output' => [ 'shape' => 'ReplaceRouteTableAssociationResult', ], ], 'ReplaceTransitGatewayRoute' => [ 'name' => 'ReplaceTransitGatewayRoute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceTransitGatewayRouteRequest', ], 'output' => [ 'shape' => 'ReplaceTransitGatewayRouteResult', ], ], 'ReplaceVpnTunnel' => [ 'name' => 'ReplaceVpnTunnel', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplaceVpnTunnelRequest', ], 'output' => [ 'shape' => 'ReplaceVpnTunnelResult', ], ], 'ReportInstanceStatus' => [ 'name' => 'ReportInstanceStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReportInstanceStatusRequest', ], ], 'RequestSpotFleet' => [ 'name' => 'RequestSpotFleet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RequestSpotFleetRequest', ], 'output' => [ 'shape' => 'RequestSpotFleetResponse', ], ], 'RequestSpotInstances' => [ 'name' => 'RequestSpotInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RequestSpotInstancesRequest', ], 'output' => [ 'shape' => 'RequestSpotInstancesResult', ], ], 'ResetAddressAttribute' => [ 'name' => 'ResetAddressAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetAddressAttributeRequest', ], 'output' => [ 'shape' => 'ResetAddressAttributeResult', ], ], 'ResetEbsDefaultKmsKeyId' => [ 'name' => 'ResetEbsDefaultKmsKeyId', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetEbsDefaultKmsKeyIdRequest', ], 'output' => [ 'shape' => 'ResetEbsDefaultKmsKeyIdResult', ], ], 'ResetFpgaImageAttribute' => [ 'name' => 'ResetFpgaImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetFpgaImageAttributeRequest', ], 'output' => [ 'shape' => 'ResetFpgaImageAttributeResult', ], ], 'ResetImageAttribute' => [ 'name' => 'ResetImageAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetImageAttributeRequest', ], ], 'ResetInstanceAttribute' => [ 'name' => 'ResetInstanceAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetInstanceAttributeRequest', ], ], 'ResetNetworkInterfaceAttribute' => [ 'name' => 'ResetNetworkInterfaceAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetNetworkInterfaceAttributeRequest', ], ], 'ResetSnapshotAttribute' => [ 'name' => 'ResetSnapshotAttribute', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ResetSnapshotAttributeRequest', ], ], 'RestoreAddressToClassic' => [ 'name' => 'RestoreAddressToClassic', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreAddressToClassicRequest', ], 'output' => [ 'shape' => 'RestoreAddressToClassicResult', ], ], 'RestoreImageFromRecycleBin' => [ 'name' => 'RestoreImageFromRecycleBin', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreImageFromRecycleBinRequest', ], 'output' => [ 'shape' => 'RestoreImageFromRecycleBinResult', ], ], 'RestoreManagedPrefixListVersion' => [ 'name' => 'RestoreManagedPrefixListVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreManagedPrefixListVersionRequest', ], 'output' => [ 'shape' => 'RestoreManagedPrefixListVersionResult', ], ], 'RestoreSnapshotFromRecycleBin' => [ 'name' => 'RestoreSnapshotFromRecycleBin', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreSnapshotFromRecycleBinRequest', ], 'output' => [ 'shape' => 'RestoreSnapshotFromRecycleBinResult', ], ], 'RestoreSnapshotTier' => [ 'name' => 'RestoreSnapshotTier', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreSnapshotTierRequest', ], 'output' => [ 'shape' => 'RestoreSnapshotTierResult', ], ], 'RestoreVolumeFromRecycleBin' => [ 'name' => 'RestoreVolumeFromRecycleBin', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RestoreVolumeFromRecycleBinRequest', ], 'output' => [ 'shape' => 'RestoreVolumeFromRecycleBinResult', ], ], 'RevokeClientVpnIngress' => [ 'name' => 'RevokeClientVpnIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeClientVpnIngressRequest', ], 'output' => [ 'shape' => 'RevokeClientVpnIngressResult', ], ], 'RevokeSecurityGroupEgress' => [ 'name' => 'RevokeSecurityGroupEgress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeSecurityGroupEgressRequest', ], 'output' => [ 'shape' => 'RevokeSecurityGroupEgressResult', ], ], 'RevokeSecurityGroupIngress' => [ 'name' => 'RevokeSecurityGroupIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeSecurityGroupIngressRequest', ], 'output' => [ 'shape' => 'RevokeSecurityGroupIngressResult', ], ], 'RunInstances' => [ 'name' => 'RunInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RunInstancesRequest', ], 'output' => [ 'shape' => 'Reservation', ], ], 'RunScheduledInstances' => [ 'name' => 'RunScheduledInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RunScheduledInstancesRequest', ], 'output' => [ 'shape' => 'RunScheduledInstancesResult', ], ], 'SearchLocalGatewayRoutes' => [ 'name' => 'SearchLocalGatewayRoutes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchLocalGatewayRoutesRequest', ], 'output' => [ 'shape' => 'SearchLocalGatewayRoutesResult', ], ], 'SearchTransitGatewayMulticastGroups' => [ 'name' => 'SearchTransitGatewayMulticastGroups', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchTransitGatewayMulticastGroupsRequest', ], 'output' => [ 'shape' => 'SearchTransitGatewayMulticastGroupsResult', ], ], 'SearchTransitGatewayRoutes' => [ 'name' => 'SearchTransitGatewayRoutes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SearchTransitGatewayRoutesRequest', ], 'output' => [ 'shape' => 'SearchTransitGatewayRoutesResult', ], ], 'SendDiagnosticInterrupt' => [ 'name' => 'SendDiagnosticInterrupt', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SendDiagnosticInterruptRequest', ], ], 'StartDeclarativePoliciesReport' => [ 'name' => 'StartDeclarativePoliciesReport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartDeclarativePoliciesReportRequest', ], 'output' => [ 'shape' => 'StartDeclarativePoliciesReportResult', ], ], 'StartInstances' => [ 'name' => 'StartInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartInstancesRequest', ], 'output' => [ 'shape' => 'StartInstancesResult', ], ], 'StartNetworkInsightsAccessScopeAnalysis' => [ 'name' => 'StartNetworkInsightsAccessScopeAnalysis', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartNetworkInsightsAccessScopeAnalysisRequest', ], 'output' => [ 'shape' => 'StartNetworkInsightsAccessScopeAnalysisResult', ], ], 'StartNetworkInsightsAnalysis' => [ 'name' => 'StartNetworkInsightsAnalysis', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartNetworkInsightsAnalysisRequest', ], 'output' => [ 'shape' => 'StartNetworkInsightsAnalysisResult', ], ], 'StartVpcEndpointServicePrivateDnsVerification' => [ 'name' => 'StartVpcEndpointServicePrivateDnsVerification', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartVpcEndpointServicePrivateDnsVerificationRequest', ], 'output' => [ 'shape' => 'StartVpcEndpointServicePrivateDnsVerificationResult', ], ], 'StopInstances' => [ 'name' => 'StopInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopInstancesRequest', ], 'output' => [ 'shape' => 'StopInstancesResult', ], ], 'TerminateClientVpnConnections' => [ 'name' => 'TerminateClientVpnConnections', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TerminateClientVpnConnectionsRequest', ], 'output' => [ 'shape' => 'TerminateClientVpnConnectionsResult', ], ], 'TerminateInstances' => [ 'name' => 'TerminateInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TerminateInstancesRequest', ], 'output' => [ 'shape' => 'TerminateInstancesResult', ], ], 'UnassignIpv6Addresses' => [ 'name' => 'UnassignIpv6Addresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnassignIpv6AddressesRequest', ], 'output' => [ 'shape' => 'UnassignIpv6AddressesResult', ], ], 'UnassignPrivateIpAddresses' => [ 'name' => 'UnassignPrivateIpAddresses', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnassignPrivateIpAddressesRequest', ], ], 'UnassignPrivateNatGatewayAddress' => [ 'name' => 'UnassignPrivateNatGatewayAddress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnassignPrivateNatGatewayAddressRequest', ], 'output' => [ 'shape' => 'UnassignPrivateNatGatewayAddressResult', ], ], 'UnlockSnapshot' => [ 'name' => 'UnlockSnapshot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnlockSnapshotRequest', ], 'output' => [ 'shape' => 'UnlockSnapshotResult', ], ], 'UnmonitorInstances' => [ 'name' => 'UnmonitorInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnmonitorInstancesRequest', ], 'output' => [ 'shape' => 'UnmonitorInstancesResult', ], ], 'UpdateCapacityManagerMonitoredTagKeys' => [ 'name' => 'UpdateCapacityManagerMonitoredTagKeys', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateCapacityManagerMonitoredTagKeysRequest', ], 'output' => [ 'shape' => 'UpdateCapacityManagerMonitoredTagKeysResult', ], ], 'UpdateCapacityManagerOrganizationsAccess' => [ 'name' => 'UpdateCapacityManagerOrganizationsAccess', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateCapacityManagerOrganizationsAccessRequest', ], 'output' => [ 'shape' => 'UpdateCapacityManagerOrganizationsAccessResult', ], ], 'UpdateInterruptibleCapacityReservationAllocation' => [ 'name' => 'UpdateInterruptibleCapacityReservationAllocation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateInterruptibleCapacityReservationAllocationRequest', ], 'output' => [ 'shape' => 'UpdateInterruptibleCapacityReservationAllocationResult', ], ], 'UpdateSecurityGroupRuleDescriptionsEgress' => [ 'name' => 'UpdateSecurityGroupRuleDescriptionsEgress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSecurityGroupRuleDescriptionsEgressRequest', ], 'output' => [ 'shape' => 'UpdateSecurityGroupRuleDescriptionsEgressResult', ], ], 'UpdateSecurityGroupRuleDescriptionsIngress' => [ 'name' => 'UpdateSecurityGroupRuleDescriptionsIngress', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateSecurityGroupRuleDescriptionsIngressRequest', ], 'output' => [ 'shape' => 'UpdateSecurityGroupRuleDescriptionsIngressResult', ], ], 'WithdrawByoipCidr' => [ 'name' => 'WithdrawByoipCidr', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'WithdrawByoipCidrRequest', ], 'output' => [ 'shape' => 'WithdrawByoipCidrResult', ], ], ], 'shapes' => [ 'AcceleratorCount' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Integer', 'locationName' => 'max', ], ], ], 'AcceleratorCountRequest' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', ], 'Max' => [ 'shape' => 'Integer', ], ], ], 'AcceleratorManufacturer' => [ 'type' => 'string', 'enum' => [ 'amazon-web-services', 'amd', 'nvidia', 'xilinx', 'habana', ], ], 'AcceleratorManufacturerSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AcceleratorManufacturer', 'locationName' => 'item', ], ], 'AcceleratorName' => [ 'type' => 'string', 'enum' => [ 'a100', 'inferentia', 'k520', 'k80', 'm60', 'radeon-pro-v520', 't4', 'vu9p', 'v100', 'a10g', 'h100', 't4g', 'l40s', 'l4', 'gaudi-hl-205', 'inferentia2', 'trainium', 'trainium2', 'u30', ], ], 'AcceleratorNameSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AcceleratorName', 'locationName' => 'item', ], ], 'AcceleratorTotalMemoryMiB' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Integer', 'locationName' => 'max', ], ], ], 'AcceleratorTotalMemoryMiBRequest' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', ], 'Max' => [ 'shape' => 'Integer', ], ], ], 'AcceleratorType' => [ 'type' => 'string', 'enum' => [ 'gpu', 'fpga', 'inference', 'media', ], ], 'AcceleratorTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AcceleratorType', 'locationName' => 'item', ], ], 'AcceptAddressTransferRequest' => [ 'type' => 'structure', 'required' => [ 'Address', ], 'members' => [ 'Address' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AcceptAddressTransferResult' => [ 'type' => 'structure', 'members' => [ 'AddressTransfer' => [ 'shape' => 'AddressTransfer', 'locationName' => 'addressTransfer', ], ], ], 'AcceptCapacityReservationBillingOwnershipRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], ], ], 'AcceptCapacityReservationBillingOwnershipResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'AcceptReservedInstancesExchangeQuoteRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstanceIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ReservedInstanceIds' => [ 'shape' => 'ReservedInstanceIdSet', 'locationName' => 'ReservedInstanceId', ], 'TargetConfigurations' => [ 'shape' => 'TargetConfigurationRequestSet', 'locationName' => 'TargetConfiguration', ], ], ], 'AcceptReservedInstancesExchangeQuoteResult' => [ 'type' => 'structure', 'members' => [ 'ExchangeId' => [ 'shape' => 'String', 'locationName' => 'exchangeId', ], ], ], 'AcceptTransitGatewayClientVpnAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AcceptTransitGatewayClientVpnAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayClientVpnAttachment' => [ 'shape' => 'TransitGatewayClientVpnAttachment', 'locationName' => 'transitGatewayClientVpnAttachment', ], ], ], 'AcceptTransitGatewayMulticastDomainAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'SubnetIds' => [ 'shape' => 'ValueStringList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AcceptTransitGatewayMulticastDomainAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'TransitGatewayMulticastDomainAssociations', 'locationName' => 'associations', ], ], ], 'AcceptTransitGatewayPeeringAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AcceptTransitGatewayPeeringAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPeeringAttachment' => [ 'shape' => 'TransitGatewayPeeringAttachment', 'locationName' => 'transitGatewayPeeringAttachment', ], ], ], 'AcceptTransitGatewayVpcAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AcceptTransitGatewayVpcAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachment' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'transitGatewayVpcAttachment', ], ], ], 'AcceptVpcEndpointConnectionsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', 'VpcEndpointIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], 'VpcEndpointIds' => [ 'shape' => 'VpcEndpointIdList', 'locationName' => 'VpcEndpointId', ], ], ], 'AcceptVpcEndpointConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'AcceptVpcPeeringConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'VpcPeeringConnectionId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcPeeringConnectionId' => [ 'shape' => 'VpcPeeringConnectionIdWithResolver', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'AcceptVpcPeeringConnectionResult' => [ 'type' => 'structure', 'members' => [ 'VpcPeeringConnection' => [ 'shape' => 'VpcPeeringConnection', 'locationName' => 'vpcPeeringConnection', ], ], ], 'AccessScopeAnalysisFinding' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeAnalysisId' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisId', 'locationName' => 'networkInsightsAccessScopeAnalysisId', ], 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', 'locationName' => 'networkInsightsAccessScopeId', ], 'FindingId' => [ 'shape' => 'String', 'locationName' => 'findingId', ], 'FindingComponents' => [ 'shape' => 'PathComponentList', 'locationName' => 'findingComponentSet', ], ], ], 'AccessScopeAnalysisFindingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccessScopeAnalysisFinding', 'locationName' => 'item', ], ], 'AccessScopePath' => [ 'type' => 'structure', 'members' => [ 'Source' => [ 'shape' => 'PathStatement', 'locationName' => 'source', ], 'Destination' => [ 'shape' => 'PathStatement', 'locationName' => 'destination', ], 'ThroughResources' => [ 'shape' => 'ThroughResourcesStatementList', 'locationName' => 'throughResourceSet', ], ], ], 'AccessScopePathList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccessScopePath', 'locationName' => 'item', ], ], 'AccessScopePathListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccessScopePathRequest', 'locationName' => 'item', ], ], 'AccessScopePathRequest' => [ 'type' => 'structure', 'members' => [ 'Source' => [ 'shape' => 'PathStatementRequest', ], 'Destination' => [ 'shape' => 'PathStatementRequest', ], 'ThroughResources' => [ 'shape' => 'ThroughResourcesStatementRequestList', 'locationName' => 'ThroughResource', ], ], ], 'AccountAttribute' => [ 'type' => 'structure', 'members' => [ 'AttributeName' => [ 'shape' => 'String', 'locationName' => 'attributeName', ], 'AttributeValues' => [ 'shape' => 'AccountAttributeValueList', 'locationName' => 'attributeValueSet', ], ], ], 'AccountAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountAttribute', 'locationName' => 'item', ], ], 'AccountAttributeName' => [ 'type' => 'string', 'enum' => [ 'supported-platforms', 'default-vpc', ], ], 'AccountAttributeNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountAttributeName', 'locationName' => 'attributeName', ], ], 'AccountAttributeValue' => [ 'type' => 'structure', 'members' => [ 'AttributeValue' => [ 'shape' => 'String', 'locationName' => 'attributeValue', ], ], ], 'AccountAttributeValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountAttributeValue', 'locationName' => 'item', ], ], 'AccountID' => [ 'type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '[0-9]{12}', ], 'AccountVpcEncryptionControl' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'AccountVpcEncryptionControlState', 'locationName' => 'state', ], 'Mode' => [ 'shape' => 'AccountVpcEncryptionControlMode', 'locationName' => 'mode', ], 'Exclusions' => [ 'shape' => 'AccountVpcEncryptionControlExclusions', 'locationName' => 'exclusions', ], 'ManagedBy' => [ 'shape' => 'ManagedBy', 'locationName' => 'managedBy', ], 'LastUpdateTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastUpdateTimestamp', ], ], ], 'AccountVpcEncryptionControlExclusions' => [ 'type' => 'structure', 'members' => [ 'InternetGateway' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'internetGateway', ], 'EgressOnlyInternetGateway' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'egressOnlyInternetGateway', ], 'NatGateway' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'natGateway', ], 'VirtualPrivateGateway' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'virtualPrivateGateway', ], 'VpcPeering' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'vpcPeering', ], 'Lambda' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'lambda', ], 'VpcLattice' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'vpcLattice', ], 'ElasticFileSystem' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'elasticFileSystem', ], ], ], 'AccountVpcEncryptionControlMode' => [ 'type' => 'string', 'enum' => [ 'unmanaged', 'attempt-monitor', 'attempt-enforce', ], ], 'AccountVpcEncryptionControlState' => [ 'type' => 'string', 'enum' => [ 'default-state', 'transitions-in-progress', 'transitions-partially-successful', 'transitions-successful', 'transitions-failed', ], ], 'ActiveInstance' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'SpotInstanceRequestId' => [ 'shape' => 'String', 'locationName' => 'spotInstanceRequestId', ], 'InstanceHealth' => [ 'shape' => 'InstanceHealthStatus', 'locationName' => 'instanceHealth', ], ], ], 'ActiveInstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ActiveInstance', 'locationName' => 'item', ], ], 'ActiveVpnTunnelStatus' => [ 'type' => 'structure', 'members' => [ 'Phase1EncryptionAlgorithm' => [ 'shape' => 'String', 'locationName' => 'phase1EncryptionAlgorithm', ], 'Phase2EncryptionAlgorithm' => [ 'shape' => 'String', 'locationName' => 'phase2EncryptionAlgorithm', ], 'Phase1IntegrityAlgorithm' => [ 'shape' => 'String', 'locationName' => 'phase1IntegrityAlgorithm', ], 'Phase2IntegrityAlgorithm' => [ 'shape' => 'String', 'locationName' => 'phase2IntegrityAlgorithm', ], 'Phase1DHGroup' => [ 'shape' => 'Integer', 'locationName' => 'phase1DHGroup', ], 'Phase2DHGroup' => [ 'shape' => 'Integer', 'locationName' => 'phase2DHGroup', ], 'IkeVersion' => [ 'shape' => 'String', 'locationName' => 'ikeVersion', ], 'ProvisioningStatus' => [ 'shape' => 'VpnTunnelProvisioningStatus', 'locationName' => 'provisioningStatus', ], 'ProvisioningStatusReason' => [ 'shape' => 'String', 'locationName' => 'provisioningStatusReason', ], ], ], 'ActivityStatus' => [ 'type' => 'string', 'enum' => [ 'error', 'pending_fulfillment', 'pending_termination', 'fulfilled', ], ], 'AddIpamOperatingRegion' => [ 'type' => 'structure', 'members' => [ 'RegionName' => [ 'shape' => 'String', ], ], ], 'AddIpamOperatingRegionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AddIpamOperatingRegion', ], 'max' => 50, 'min' => 0, ], 'AddIpamOrganizationalUnitExclusion' => [ 'type' => 'structure', 'members' => [ 'OrganizationsEntityPath' => [ 'shape' => 'String', ], ], ], 'AddIpamOrganizationalUnitExclusionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AddIpamOrganizationalUnitExclusion', ], 'max' => 10, 'min' => 0, ], 'AddPrefixListEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'AddPrefixListEntry', ], 'max' => 100, 'min' => 0, ], 'AddPrefixListEntry' => [ 'type' => 'structure', 'required' => [ 'Cidr', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], ], ], 'AddedPrincipal' => [ 'type' => 'structure', 'members' => [ 'PrincipalType' => [ 'shape' => 'PrincipalType', 'locationName' => 'principalType', ], 'Principal' => [ 'shape' => 'String', 'locationName' => 'principal', ], 'ServicePermissionId' => [ 'shape' => 'String', 'locationName' => 'servicePermissionId', ], 'ServiceId' => [ 'shape' => 'String', 'locationName' => 'serviceId', ], ], ], 'AddedPrincipalSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AddedPrincipal', 'locationName' => 'item', ], ], 'AdditionalDetail' => [ 'type' => 'structure', 'members' => [ 'AdditionalDetailType' => [ 'shape' => 'String', 'locationName' => 'additionalDetailType', ], 'Component' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'component', ], 'VpcEndpointService' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'vpcEndpointService', ], 'RuleOptions' => [ 'shape' => 'RuleOptionList', 'locationName' => 'ruleOptionSet', ], 'RuleGroupTypePairs' => [ 'shape' => 'RuleGroupTypePairList', 'locationName' => 'ruleGroupTypePairSet', ], 'RuleGroupRuleOptionsPairs' => [ 'shape' => 'RuleGroupRuleOptionsPairList', 'locationName' => 'ruleGroupRuleOptionsPairSet', ], 'ServiceName' => [ 'shape' => 'String', 'locationName' => 'serviceName', ], 'LoadBalancers' => [ 'shape' => 'AnalysisComponentList', 'locationName' => 'loadBalancerSet', ], ], ], 'AdditionalDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AdditionalDetail', 'locationName' => 'item', ], ], 'AdditionalFlexibleNetworkInterfaces' => [ 'type' => 'integer', ], 'Address' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'Domain' => [ 'shape' => 'DomainType', 'locationName' => 'domain', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'NetworkInterfaceOwnerId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceOwnerId', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'PublicIpv4Pool' => [ 'shape' => 'String', 'locationName' => 'publicIpv4Pool', ], 'NetworkBorderGroup' => [ 'shape' => 'String', 'locationName' => 'networkBorderGroup', ], 'CustomerOwnedIp' => [ 'shape' => 'String', 'locationName' => 'customerOwnedIp', ], 'CustomerOwnedIpv4Pool' => [ 'shape' => 'String', 'locationName' => 'customerOwnedIpv4Pool', ], 'CarrierIp' => [ 'shape' => 'String', 'locationName' => 'carrierIp', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'ServiceManaged' => [ 'shape' => 'ServiceManaged', 'locationName' => 'serviceManaged', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], ], ], 'AddressAttribute' => [ 'type' => 'structure', 'members' => [ 'PublicIp' => [ 'shape' => 'PublicIpAddress', 'locationName' => 'publicIp', ], 'AllocationId' => [ 'shape' => 'AllocationId', 'locationName' => 'allocationId', ], 'PtrRecord' => [ 'shape' => 'String', 'locationName' => 'ptrRecord', ], 'PtrRecordUpdate' => [ 'shape' => 'PtrUpdateStatus', 'locationName' => 'ptrRecordUpdate', ], ], ], 'AddressAttributeName' => [ 'type' => 'string', 'enum' => [ 'domain-name', ], ], 'AddressFamily' => [ 'type' => 'string', 'enum' => [ 'ipv4', 'ipv6', ], ], 'AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Address', 'locationName' => 'item', ], ], 'AddressMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'AddressSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AddressAttribute', 'locationName' => 'item', ], ], 'AddressTransfer' => [ 'type' => 'structure', 'members' => [ 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'TransferAccountId' => [ 'shape' => 'String', 'locationName' => 'transferAccountId', ], 'TransferOfferExpirationTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'transferOfferExpirationTimestamp', ], 'TransferOfferAcceptedTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'transferOfferAcceptedTimestamp', ], 'AddressTransferStatus' => [ 'shape' => 'AddressTransferStatus', 'locationName' => 'addressTransferStatus', ], ], ], 'AddressTransferList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AddressTransfer', 'locationName' => 'item', ], ], 'AddressTransferStatus' => [ 'type' => 'string', 'enum' => [ 'pending', 'disabled', 'accepted', ], ], 'AdvertiseByoipCidrRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'Asn' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NetworkBorderGroup' => [ 'shape' => 'String', ], ], ], 'AdvertiseByoipCidrResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidr' => [ 'shape' => 'ByoipCidr', 'locationName' => 'byoipCidr', ], ], ], 'Affinity' => [ 'type' => 'string', 'enum' => [ 'default', 'host', ], ], 'AllocateAddressRequest' => [ 'type' => 'structure', 'members' => [ 'Domain' => [ 'shape' => 'DomainType', ], 'Address' => [ 'shape' => 'PublicIpAddress', ], 'PublicIpv4Pool' => [ 'shape' => 'Ipv4PoolEc2Id', ], 'NetworkBorderGroup' => [ 'shape' => 'String', ], 'CustomerOwnedIpv4Pool' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'AllocateAddressResult' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'PublicIpv4Pool' => [ 'shape' => 'String', 'locationName' => 'publicIpv4Pool', ], 'NetworkBorderGroup' => [ 'shape' => 'String', 'locationName' => 'networkBorderGroup', ], 'Domain' => [ 'shape' => 'DomainType', 'locationName' => 'domain', ], 'CustomerOwnedIp' => [ 'shape' => 'String', 'locationName' => 'customerOwnedIp', ], 'CustomerOwnedIpv4Pool' => [ 'shape' => 'String', 'locationName' => 'customerOwnedIpv4Pool', ], 'CarrierIp' => [ 'shape' => 'String', 'locationName' => 'carrierIp', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], ], ], 'AllocateHostsRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceFamily' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'HostRecovery' => [ 'shape' => 'HostRecovery', ], 'OutpostArn' => [ 'shape' => 'String', ], 'HostMaintenance' => [ 'shape' => 'HostMaintenance', ], 'AssetIds' => [ 'shape' => 'AssetIdList', 'locationName' => 'AssetId', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'CpuOptions' => [ 'shape' => 'HostCpuOptionsRequest', ], 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'Quantity' => [ 'shape' => 'Integer', 'locationName' => 'quantity', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'availabilityZone', ], ], ], 'AllocateHostsResult' => [ 'type' => 'structure', 'members' => [ 'HostIds' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'hostIdSet', ], ], ], 'AllocateIpamPoolCidrRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Cidr' => [ 'shape' => 'String', ], 'NetmaskLength' => [ 'shape' => 'Integer', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'Description' => [ 'shape' => 'String', ], 'PreviewNextCidr' => [ 'shape' => 'Boolean', ], 'AllowedCidrs' => [ 'shape' => 'IpamPoolAllocationAllowedCidrs', 'locationName' => 'AllowedCidr', ], 'DisallowedCidrs' => [ 'shape' => 'IpamPoolAllocationDisallowedCidrs', 'locationName' => 'DisallowedCidr', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'AllocateIpamPoolCidrResult' => [ 'type' => 'structure', 'members' => [ 'IpamPoolAllocation' => [ 'shape' => 'IpamPoolAllocation', 'locationName' => 'ipamPoolAllocation', ], ], ], 'AllocationId' => [ 'type' => 'string', ], 'AllocationIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllocationId', 'locationName' => 'AllocationId', ], ], 'AllocationIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllocationId', 'locationName' => 'item', ], ], 'AllocationState' => [ 'type' => 'string', 'enum' => [ 'available', 'under-assessment', 'permanent-failure', 'released', 'released-permanent-failure', 'pending', 'configuring', ], ], 'AllocationStrategy' => [ 'type' => 'string', 'enum' => [ 'lowestPrice', 'diversified', 'capacityOptimized', 'capacityOptimizedPrioritized', 'priceCapacityOptimized', ], ], 'AllocationType' => [ 'type' => 'string', 'enum' => [ 'used', 'future', 'cancelling', ], ], 'AllowedImagesSettingsDisabledState' => [ 'type' => 'string', 'enum' => [ 'disabled', ], ], 'AllowedImagesSettingsEnabledState' => [ 'type' => 'string', 'enum' => [ 'enabled', 'audit-mode', ], ], 'AllowedInstanceType' => [ 'type' => 'string', 'max' => 30, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\.\\*\\-]+', ], 'AllowedInstanceTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedInstanceType', 'locationName' => 'item', ], 'max' => 400, 'min' => 0, ], 'AllowedPrincipal' => [ 'type' => 'structure', 'members' => [ 'PrincipalType' => [ 'shape' => 'PrincipalType', 'locationName' => 'principalType', ], 'Principal' => [ 'shape' => 'String', 'locationName' => 'principal', ], 'ServicePermissionId' => [ 'shape' => 'String', 'locationName' => 'servicePermissionId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'ServiceId' => [ 'shape' => 'String', 'locationName' => 'serviceId', ], ], ], 'AllowedPrincipalSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedPrincipal', 'locationName' => 'item', ], ], 'AllowsMultipleInstanceTypes' => [ 'type' => 'string', 'enum' => [ 'on', 'off', ], ], 'AlternatePathHint' => [ 'type' => 'structure', 'members' => [ 'ComponentId' => [ 'shape' => 'String', 'locationName' => 'componentId', ], 'ComponentArn' => [ 'shape' => 'String', 'locationName' => 'componentArn', ], ], ], 'AlternatePathHintList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AlternatePathHint', 'locationName' => 'item', ], ], 'AmdSevSnp' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'AmdSevSnpSpecification' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'AnalysisAclRule' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'Egress' => [ 'shape' => 'Boolean', 'locationName' => 'egress', ], 'PortRange' => [ 'shape' => 'PortRange', 'locationName' => 'portRange', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'RuleAction' => [ 'shape' => 'String', 'locationName' => 'ruleAction', ], 'RuleNumber' => [ 'shape' => 'Integer', 'locationName' => 'ruleNumber', ], ], ], 'AnalysisComponent' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', 'locationName' => 'id', ], 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'AnalysisComponentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'item', ], ], 'AnalysisLoadBalancerListener' => [ 'type' => 'structure', 'members' => [ 'LoadBalancerPort' => [ 'shape' => 'Port', 'locationName' => 'loadBalancerPort', ], 'InstancePort' => [ 'shape' => 'Port', 'locationName' => 'instancePort', ], ], ], 'AnalysisLoadBalancerTarget' => [ 'type' => 'structure', 'members' => [ 'Address' => [ 'shape' => 'IpAddress', 'locationName' => 'address', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'Instance' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'instance', ], 'Port' => [ 'shape' => 'Port', 'locationName' => 'port', ], ], ], 'AnalysisPacketHeader' => [ 'type' => 'structure', 'members' => [ 'DestinationAddresses' => [ 'shape' => 'IpAddressList', 'locationName' => 'destinationAddressSet', ], 'DestinationPortRanges' => [ 'shape' => 'PortRangeList', 'locationName' => 'destinationPortRangeSet', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'SourceAddresses' => [ 'shape' => 'IpAddressList', 'locationName' => 'sourceAddressSet', ], 'SourcePortRanges' => [ 'shape' => 'PortRangeList', 'locationName' => 'sourcePortRangeSet', ], ], ], 'AnalysisRouteTableRoute' => [ 'type' => 'structure', 'members' => [ 'DestinationCidr' => [ 'shape' => 'String', 'locationName' => 'destinationCidr', ], 'DestinationPrefixListId' => [ 'shape' => 'String', 'locationName' => 'destinationPrefixListId', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'String', 'locationName' => 'egressOnlyInternetGatewayId', ], 'GatewayId' => [ 'shape' => 'String', 'locationName' => 'gatewayId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'Origin' => [ 'shape' => 'String', 'locationName' => 'origin', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'CarrierGatewayId' => [ 'shape' => 'String', 'locationName' => 'carrierGatewayId', ], 'CoreNetworkArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'coreNetworkArn', ], 'LocalGatewayId' => [ 'shape' => 'String', 'locationName' => 'localGatewayId', ], ], ], 'AnalysisSecurityGroupRule' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'Direction' => [ 'shape' => 'String', 'locationName' => 'direction', ], 'SecurityGroupId' => [ 'shape' => 'String', 'locationName' => 'securityGroupId', ], 'PortRange' => [ 'shape' => 'PortRange', 'locationName' => 'portRange', ], 'PrefixListId' => [ 'shape' => 'String', 'locationName' => 'prefixListId', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], ], ], 'AnalysisStatus' => [ 'type' => 'string', 'enum' => [ 'running', 'succeeded', 'failed', ], ], 'ApplianceModeSupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'ApplyCancellationCharges' => [ 'type' => 'string', 'enum' => [ 'commitment-wind-down', ], ], 'ApplySecurityGroupsToClientVpnTargetNetworkRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'VpcId', 'SecurityGroupIds', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'SecurityGroupIds' => [ 'shape' => 'ClientVpnSecurityGroupIdSet', 'locationName' => 'SecurityGroupId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ApplySecurityGroupsToClientVpnTargetNetworkResult' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupIds' => [ 'shape' => 'ClientVpnSecurityGroupIdSet', 'locationName' => 'securityGroupIds', ], ], ], 'ArchitectureType' => [ 'type' => 'string', 'enum' => [ 'i386', 'x86_64', 'arm64', 'x86_64_mac', 'arm64_mac', ], ], 'ArchitectureTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ArchitectureType', 'locationName' => 'item', ], ], 'ArchitectureTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ArchitectureType', 'locationName' => 'item', ], 'max' => 3, 'min' => 0, ], 'ArchitectureValues' => [ 'type' => 'string', 'enum' => [ 'i386', 'x86_64', 'arm64', 'x86_64_mac', 'arm64_mac', ], ], 'ArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceArn', 'locationName' => 'item', ], ], 'AsPath' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'AsnAssociation' => [ 'type' => 'structure', 'members' => [ 'Asn' => [ 'shape' => 'String', 'locationName' => 'asn', ], 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'State' => [ 'shape' => 'AsnAssociationState', 'locationName' => 'state', ], ], ], 'AsnAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AsnAssociation', 'locationName' => 'item', ], ], 'AsnAssociationState' => [ 'type' => 'string', 'enum' => [ 'disassociated', 'failed-disassociation', 'failed-association', 'pending-disassociation', 'pending-association', 'associated', ], ], 'AsnAuthorizationContext' => [ 'type' => 'structure', 'required' => [ 'Message', 'Signature', ], 'members' => [ 'Message' => [ 'shape' => 'String', ], 'Signature' => [ 'shape' => 'String', ], ], ], 'AsnState' => [ 'type' => 'string', 'enum' => [ 'deprovisioned', 'failed-deprovision', 'failed-provision', 'pending-deprovision', 'pending-provision', 'provisioned', ], ], 'AssetId' => [ 'type' => 'string', ], 'AssetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssetId', ], ], 'AssignIpv6AddressesRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'Ipv6PrefixCount' => [ 'shape' => 'Integer', ], 'Ipv6Prefixes' => [ 'shape' => 'IpPrefixList', 'locationName' => 'Ipv6Prefix', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'Ipv6Addresses' => [ 'shape' => 'Ipv6AddressList', 'locationName' => 'ipv6Addresses', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', 'locationName' => 'ipv6AddressCount', ], ], ], 'AssignIpv6AddressesResult' => [ 'type' => 'structure', 'members' => [ 'AssignedIpv6Addresses' => [ 'shape' => 'Ipv6AddressList', 'locationName' => 'assignedIpv6Addresses', ], 'AssignedIpv6Prefixes' => [ 'shape' => 'IpPrefixList', 'locationName' => 'assignedIpv6PrefixSet', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], ], ], 'AssignPrivateIpAddressesRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'Ipv4Prefixes' => [ 'shape' => 'IpPrefixList', 'locationName' => 'Ipv4Prefix', ], 'Ipv4PrefixCount' => [ 'shape' => 'Integer', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressStringList', 'locationName' => 'privateIpAddress', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'secondaryPrivateIpAddressCount', ], 'AllowReassignment' => [ 'shape' => 'Boolean', 'locationName' => 'allowReassignment', ], ], ], 'AssignPrivateIpAddressesResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'AssignedPrivateIpAddresses' => [ 'shape' => 'AssignedPrivateIpAddressList', 'locationName' => 'assignedPrivateIpAddressesSet', ], 'AssignedIpv4Prefixes' => [ 'shape' => 'Ipv4PrefixesList', 'locationName' => 'assignedIpv4PrefixSet', ], ], ], 'AssignPrivateNatGatewayAddressRequest' => [ 'type' => 'structure', 'required' => [ 'NatGatewayId', ], 'members' => [ 'NatGatewayId' => [ 'shape' => 'NatGatewayId', ], 'PrivateIpAddresses' => [ 'shape' => 'IpList', 'locationName' => 'PrivateIpAddress', ], 'PrivateIpAddressCount' => [ 'shape' => 'PrivateIpAddressCount', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssignPrivateNatGatewayAddressResult' => [ 'type' => 'structure', 'members' => [ 'NatGatewayId' => [ 'shape' => 'NatGatewayId', 'locationName' => 'natGatewayId', ], 'NatGatewayAddresses' => [ 'shape' => 'NatGatewayAddressList', 'locationName' => 'natGatewayAddressSet', ], ], ], 'AssignedPrivateIpAddress' => [ 'type' => 'structure', 'members' => [ 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'AssignedPrivateIpAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssignedPrivateIpAddress', 'locationName' => 'item', ], ], 'AssociateAddressRequest' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'AllocationId', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'PublicIp' => [ 'shape' => 'EipAllocationPublicIp', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'AllowReassociation' => [ 'shape' => 'Boolean', 'locationName' => 'allowReassociation', ], ], ], 'AssociateAddressResult' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], ], ], 'AssociateCapacityReservationBillingOwnerRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', 'UnusedReservationBillingOwnerId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'UnusedReservationBillingOwnerId' => [ 'shape' => 'AccountID', ], ], ], 'AssociateCapacityReservationBillingOwnerResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'AssociateClientVpnTargetNetworkRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], ], ], 'AssociateClientVpnTargetNetworkResult' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'Status' => [ 'shape' => 'AssociationStatus', 'locationName' => 'status', ], ], ], 'AssociateDhcpOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'DhcpOptionsId', 'VpcId', ], 'members' => [ 'DhcpOptionsId' => [ 'shape' => 'DefaultingDhcpOptionsId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'AssociateEnclaveCertificateIamRoleRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', 'RoleArn', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'CertificateId', ], 'RoleArn' => [ 'shape' => 'RoleId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssociateEnclaveCertificateIamRoleResult' => [ 'type' => 'structure', 'members' => [ 'CertificateS3BucketName' => [ 'shape' => 'String', 'locationName' => 'certificateS3BucketName', ], 'CertificateS3ObjectKey' => [ 'shape' => 'String', 'locationName' => 'certificateS3ObjectKey', ], 'EncryptionKmsKeyId' => [ 'shape' => 'String', 'locationName' => 'encryptionKmsKeyId', ], ], ], 'AssociateIamInstanceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'IamInstanceProfile', 'InstanceId', ], 'members' => [ 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], ], ], 'AssociateIamInstanceProfileResult' => [ 'type' => 'structure', 'members' => [ 'IamInstanceProfileAssociation' => [ 'shape' => 'IamInstanceProfileAssociation', 'locationName' => 'iamInstanceProfileAssociation', ], ], ], 'AssociateInstanceEventWindowRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceEventWindowId', 'AssociationTarget', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceEventWindowId' => [ 'shape' => 'InstanceEventWindowId', ], 'AssociationTarget' => [ 'shape' => 'InstanceEventWindowAssociationRequest', ], ], ], 'AssociateInstanceEventWindowResult' => [ 'type' => 'structure', 'members' => [ 'InstanceEventWindow' => [ 'shape' => 'InstanceEventWindow', 'locationName' => 'instanceEventWindow', ], ], ], 'AssociateIpamByoasnRequest' => [ 'type' => 'structure', 'required' => [ 'Asn', 'Cidr', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Asn' => [ 'shape' => 'String', ], 'Cidr' => [ 'shape' => 'String', ], ], ], 'AssociateIpamByoasnResult' => [ 'type' => 'structure', 'members' => [ 'AsnAssociation' => [ 'shape' => 'AsnAssociation', 'locationName' => 'asnAssociation', ], ], ], 'AssociateIpamResourceDiscoveryRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', 'IpamResourceDiscoveryId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamId' => [ 'shape' => 'IpamId', ], 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'AssociateIpamResourceDiscoveryResult' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscoveryAssociation' => [ 'shape' => 'IpamResourceDiscoveryAssociation', 'locationName' => 'ipamResourceDiscoveryAssociation', ], ], ], 'AssociateNatGatewayAddressRequest' => [ 'type' => 'structure', 'required' => [ 'NatGatewayId', 'AllocationIds', ], 'members' => [ 'NatGatewayId' => [ 'shape' => 'NatGatewayId', ], 'AllocationIds' => [ 'shape' => 'AllocationIdList', 'locationName' => 'AllocationId', ], 'PrivateIpAddresses' => [ 'shape' => 'IpList', 'locationName' => 'PrivateIpAddress', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], ], ], 'AssociateNatGatewayAddressResult' => [ 'type' => 'structure', 'members' => [ 'NatGatewayId' => [ 'shape' => 'NatGatewayId', 'locationName' => 'natGatewayId', ], 'NatGatewayAddresses' => [ 'shape' => 'NatGatewayAddressList', 'locationName' => 'natGatewayAddressSet', ], ], ], 'AssociateRouteServerRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', 'VpcId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssociateRouteServerResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerAssociation' => [ 'shape' => 'RouteServerAssociation', 'locationName' => 'routeServerAssociation', ], ], ], 'AssociateRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'RouteTableId', ], 'members' => [ 'GatewayId' => [ 'shape' => 'RouteGatewayId', ], 'PublicIpv4Pool' => [ 'shape' => 'Ipv4PoolEc2Id', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', 'locationName' => 'routeTableId', ], ], ], 'AssociateRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'AssociationState' => [ 'shape' => 'RouteTableAssociationState', 'locationName' => 'associationState', ], ], ], 'AssociateSecurityGroupVpcRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', 'VpcId', ], 'members' => [ 'GroupId' => [ 'shape' => 'SecurityGroupId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssociateSecurityGroupVpcResult' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'SecurityGroupVpcAssociationState', 'locationName' => 'state', ], ], ], 'AssociateSubnetCidrBlockRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', ], 'members' => [ 'Ipv6IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Ipv6NetmaskLength' => [ 'shape' => 'NetmaskLength', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], ], ], 'AssociateSubnetCidrBlockResult' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrBlockAssociation' => [ 'shape' => 'SubnetIpv6CidrBlockAssociation', 'locationName' => 'ipv6CidrBlockAssociation', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], ], ], 'AssociateTransitGatewayMulticastDomainRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMulticastDomainId', 'TransitGatewayAttachmentId', 'SubnetIds', ], 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'SubnetIds' => [ 'shape' => 'TransitGatewaySubnetIdList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssociateTransitGatewayMulticastDomainResult' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'TransitGatewayMulticastDomainAssociations', 'locationName' => 'associations', ], ], ], 'AssociateTransitGatewayPolicyTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayPolicyTableId', 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayPolicyTableId' => [ 'shape' => 'TransitGatewayPolicyTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssociateTransitGatewayPolicyTableResult' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'TransitGatewayPolicyTableAssociation', 'locationName' => 'association', ], ], ], 'AssociateTransitGatewayRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssociateTransitGatewayRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'TransitGatewayAssociation', 'locationName' => 'association', ], ], ], 'AssociateTrunkInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'BranchInterfaceId', 'TrunkInterfaceId', ], 'members' => [ 'BranchInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'TrunkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'VlanId' => [ 'shape' => 'Integer', ], 'GreKey' => [ 'shape' => 'Integer', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AssociateTrunkInterfaceResult' => [ 'type' => 'structure', 'members' => [ 'InterfaceAssociation' => [ 'shape' => 'TrunkInterfaceAssociation', 'locationName' => 'interfaceAssociation', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'AssociateVpcCidrBlockRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'CidrBlock' => [ 'shape' => 'String', ], 'Ipv6CidrBlockNetworkBorderGroup' => [ 'shape' => 'String', ], 'Ipv6Pool' => [ 'shape' => 'Ipv6PoolEc2Id', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', ], 'Ipv4IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Ipv4NetmaskLength' => [ 'shape' => 'NetmaskLength', ], 'Ipv6IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Ipv6NetmaskLength' => [ 'shape' => 'NetmaskLength', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'AmazonProvidedIpv6CidrBlock' => [ 'shape' => 'Boolean', 'locationName' => 'amazonProvidedIpv6CidrBlock', ], ], ], 'AssociateVpcCidrBlockResult' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrBlockAssociation' => [ 'shape' => 'VpcIpv6CidrBlockAssociation', 'locationName' => 'ipv6CidrBlockAssociation', ], 'CidrBlockAssociation' => [ 'shape' => 'VpcCidrBlockAssociation', 'locationName' => 'cidrBlockAssociation', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'AssociatedNetworkType' => [ 'type' => 'string', 'enum' => [ 'vpc', ], ], 'AssociatedRole' => [ 'type' => 'structure', 'members' => [ 'AssociatedRoleArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'associatedRoleArn', ], 'CertificateS3BucketName' => [ 'shape' => 'String', 'locationName' => 'certificateS3BucketName', ], 'CertificateS3ObjectKey' => [ 'shape' => 'String', 'locationName' => 'certificateS3ObjectKey', ], 'EncryptionKmsKeyId' => [ 'shape' => 'String', 'locationName' => 'encryptionKmsKeyId', ], ], ], 'AssociatedRolesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssociatedRole', 'locationName' => 'item', ], ], 'AssociatedSubnetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', 'locationName' => 'item', ], ], 'AssociatedTargetNetwork' => [ 'type' => 'structure', 'members' => [ 'NetworkId' => [ 'shape' => 'String', 'locationName' => 'networkId', ], 'NetworkType' => [ 'shape' => 'AssociatedNetworkType', 'locationName' => 'networkType', ], ], ], 'AssociatedTargetNetworkSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssociatedTargetNetwork', 'locationName' => 'item', ], ], 'AssociationIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IamInstanceProfileAssociationId', 'locationName' => 'AssociationId', ], ], 'AssociationStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'AssociationStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'AssociationStatusCode' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'association-failed', 'disassociating', 'disassociated', ], ], 'AthenaIntegration' => [ 'type' => 'structure', 'required' => [ 'IntegrationResultS3DestinationArn', 'PartitionLoadFrequency', ], 'members' => [ 'IntegrationResultS3DestinationArn' => [ 'shape' => 'String', ], 'PartitionLoadFrequency' => [ 'shape' => 'PartitionLoadFrequency', ], 'PartitionStartDate' => [ 'shape' => 'MillisecondDateTime', ], 'PartitionEndDate' => [ 'shape' => 'MillisecondDateTime', ], ], ], 'AthenaIntegrationsSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AthenaIntegration', 'locationName' => 'item', ], 'max' => 10, 'min' => 1, ], 'AttachClassicLinkVpcRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'VpcId', 'Groups', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'Groups' => [ 'shape' => 'GroupIdStringList', 'locationName' => 'SecurityGroupId', ], ], ], 'AttachClassicLinkVpcResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'AttachImageWatermarkRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', 'WatermarkName', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'WatermarkName' => [ 'shape' => 'ImageWatermarkNameRequest', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AttachImageWatermarkResult' => [ 'type' => 'structure', 'members' => [ 'WatermarkKey' => [ 'shape' => 'String', 'locationName' => 'watermarkKey', ], ], ], 'AttachInternetGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'InternetGatewayId', 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InternetGatewayId' => [ 'shape' => 'InternetGatewayId', 'locationName' => 'internetGatewayId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], ], ], 'AttachNetworkInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', 'InstanceId', 'DeviceIndex', ], 'members' => [ 'NetworkCardIndex' => [ 'shape' => 'Integer', ], 'EnaSrdSpecification' => [ 'shape' => 'EnaSrdSpecification', ], 'EnaQueueCount' => [ 'shape' => 'Integer', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], ], ], 'AttachNetworkInterfaceResult' => [ 'type' => 'structure', 'members' => [ 'AttachmentId' => [ 'shape' => 'String', 'locationName' => 'attachmentId', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'networkCardIndex', ], ], ], 'AttachVerifiedAccessTrustProviderRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessInstanceId', 'VerifiedAccessTrustProviderId', ], 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'VerifiedAccessTrustProviderId' => [ 'shape' => 'VerifiedAccessTrustProviderId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AttachVerifiedAccessTrustProviderResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProvider' => [ 'shape' => 'VerifiedAccessTrustProvider', 'locationName' => 'verifiedAccessTrustProvider', ], 'VerifiedAccessInstance' => [ 'shape' => 'VerifiedAccessInstance', 'locationName' => 'verifiedAccessInstance', ], ], ], 'AttachVolumeRequest' => [ 'type' => 'structure', 'required' => [ 'Device', 'InstanceId', 'VolumeId', ], 'members' => [ 'Device' => [ 'shape' => 'String', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'VolumeId' => [ 'shape' => 'VolumeId', ], 'EbsCardIndex' => [ 'shape' => 'BoxedInteger', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'AttachVpnGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', 'VpnGatewayId', ], 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], 'VpnGatewayId' => [ 'shape' => 'VpnGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'AttachVpnGatewayResult' => [ 'type' => 'structure', 'members' => [ 'VpcAttachment' => [ 'shape' => 'VpcAttachment', 'locationName' => 'attachment', ], ], ], 'AttachmentEnaSrdSpecification' => [ 'type' => 'structure', 'members' => [ 'EnaSrdEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'enaSrdEnabled', ], 'EnaSrdUdpSpecification' => [ 'shape' => 'AttachmentEnaSrdUdpSpecification', 'locationName' => 'enaSrdUdpSpecification', ], ], ], 'AttachmentEnaSrdUdpSpecification' => [ 'type' => 'structure', 'members' => [ 'EnaSrdUdpEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'enaSrdUdpEnabled', ], ], ], 'AttachmentLimitType' => [ 'type' => 'string', 'enum' => [ 'shared', 'dedicated', ], ], 'AttachmentStatus' => [ 'type' => 'string', 'enum' => [ 'attaching', 'attached', 'detaching', 'detached', ], ], 'AttributeBooleanValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Boolean', 'locationName' => 'value', ], ], ], 'AttributeSummary' => [ 'type' => 'structure', 'members' => [ 'AttributeName' => [ 'shape' => 'String', 'locationName' => 'attributeName', ], 'MostFrequentValue' => [ 'shape' => 'String', 'locationName' => 'mostFrequentValue', ], 'NumberOfMatchedAccounts' => [ 'shape' => 'Integer', 'locationName' => 'numberOfMatchedAccounts', ], 'NumberOfUnmatchedAccounts' => [ 'shape' => 'Integer', 'locationName' => 'numberOfUnmatchedAccounts', ], 'RegionalSummaries' => [ 'shape' => 'RegionalSummaryList', 'locationName' => 'regionalSummarySet', ], ], ], 'AttributeSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeSummary', 'locationName' => 'item', ], ], 'AttributeValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'AuthorizationRule' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'AccessAll' => [ 'shape' => 'Boolean', 'locationName' => 'accessAll', ], 'DestinationCidr' => [ 'shape' => 'String', 'locationName' => 'destinationCidr', ], 'Status' => [ 'shape' => 'ClientVpnAuthorizationRuleStatus', 'locationName' => 'status', ], ], ], 'AuthorizationRuleSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AuthorizationRule', 'locationName' => 'item', ], ], 'AuthorizeClientVpnIngressRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'TargetNetworkCidr', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'TargetNetworkCidr' => [ 'shape' => 'String', ], 'AccessGroupId' => [ 'shape' => 'String', ], 'AuthorizeAllGroups' => [ 'shape' => 'Boolean', ], 'Description' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'AuthorizeClientVpnIngressResult' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ClientVpnAuthorizationRuleStatus', 'locationName' => 'status', ], ], ], 'AuthorizeSecurityGroupEgressRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', ], 'members' => [ 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'groupId', ], 'SourceSecurityGroupName' => [ 'shape' => 'String', 'locationName' => 'sourceSecurityGroupName', ], 'SourceSecurityGroupOwnerId' => [ 'shape' => 'String', 'locationName' => 'sourceSecurityGroupOwnerId', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'CidrIp' => [ 'shape' => 'String', 'locationName' => 'cidrIp', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', 'locationName' => 'ipPermissions', ], ], ], 'AuthorizeSecurityGroupEgressResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'SecurityGroupRules' => [ 'shape' => 'SecurityGroupRuleList', 'locationName' => 'securityGroupRuleSet', ], ], ], 'AuthorizeSecurityGroupIngressRequest' => [ 'type' => 'structure', 'members' => [ 'CidrIp' => [ 'shape' => 'String', ], 'FromPort' => [ 'shape' => 'Integer', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', ], 'GroupName' => [ 'shape' => 'SecurityGroupName', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', ], 'IpProtocol' => [ 'shape' => 'String', ], 'SourceSecurityGroupName' => [ 'shape' => 'String', ], 'SourceSecurityGroupOwnerId' => [ 'shape' => 'String', ], 'ToPort' => [ 'shape' => 'Integer', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'AuthorizeSecurityGroupIngressResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'SecurityGroupRules' => [ 'shape' => 'SecurityGroupRuleList', 'locationName' => 'securityGroupRuleSet', ], ], ], 'AutoAcceptSharedAssociationsValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'AutoAcceptSharedAttachmentsValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'AutoPlacement' => [ 'type' => 'string', 'enum' => [ 'on', 'off', ], ], 'AutoProvisionZonesState' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'AutoRecoveryFlag' => [ 'type' => 'boolean', ], 'AutoScalingIpsState' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'AvailabilityMode' => [ 'type' => 'string', 'enum' => [ 'zonal', 'regional', ], ], 'AvailabilityZone' => [ 'type' => 'structure', 'members' => [ 'OptInStatus' => [ 'shape' => 'AvailabilityZoneOptInStatus', 'locationName' => 'optInStatus', ], 'Messages' => [ 'shape' => 'AvailabilityZoneMessageList', 'locationName' => 'messageSet', ], 'RegionName' => [ 'shape' => 'String', 'locationName' => 'regionName', ], 'ZoneName' => [ 'shape' => 'String', 'locationName' => 'zoneName', ], 'ZoneId' => [ 'shape' => 'String', 'locationName' => 'zoneId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'NetworkBorderGroup' => [ 'shape' => 'String', 'locationName' => 'networkBorderGroup', ], 'ZoneType' => [ 'shape' => 'String', 'locationName' => 'zoneType', ], 'ParentZoneName' => [ 'shape' => 'String', 'locationName' => 'parentZoneName', ], 'ParentZoneId' => [ 'shape' => 'String', 'locationName' => 'parentZoneId', ], 'GroupLongName' => [ 'shape' => 'String', 'locationName' => 'groupLongName', ], 'Geography' => [ 'shape' => 'AvailabilityZoneGeographyList', 'locationName' => 'geographySet', ], 'SubGeography' => [ 'shape' => 'AvailabilityZoneSubGeographyList', 'locationName' => 'subGeographySet', ], 'State' => [ 'shape' => 'AvailabilityZoneState', 'locationName' => 'zoneState', ], ], ], 'AvailabilityZoneAddress' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'AllocationIds' => [ 'shape' => 'AllocationIdList', 'locationName' => 'AllocationId', ], ], ], 'AvailabilityZoneAddresses' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZoneAddress', 'locationName' => 'AvailabilityZoneAddress', ], ], 'AvailabilityZoneGeography' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'AvailabilityZoneGeographyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZoneGeography', 'locationName' => 'item', ], ], 'AvailabilityZoneId' => [ 'type' => 'string', ], 'AvailabilityZoneIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'AvailabilityZoneId', ], ], 'AvailabilityZoneList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZone', 'locationName' => 'item', ], ], 'AvailabilityZoneMessage' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'AvailabilityZoneMessageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZoneMessage', 'locationName' => 'item', ], ], 'AvailabilityZoneName' => [ 'type' => 'string', ], 'AvailabilityZoneOptInStatus' => [ 'type' => 'string', 'enum' => [ 'opt-in-not-required', 'opted-in', 'not-opted-in', ], ], 'AvailabilityZoneState' => [ 'type' => 'string', 'enum' => [ 'available', 'information', 'impaired', 'unavailable', 'constrained', ], ], 'AvailabilityZoneStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'AvailabilityZone', ], ], 'AvailabilityZoneSubGeography' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'AvailabilityZoneSubGeographyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZoneSubGeography', 'locationName' => 'item', ], ], 'AvailableCapacity' => [ 'type' => 'structure', 'members' => [ 'AvailableInstanceCapacity' => [ 'shape' => 'AvailableInstanceCapacityList', 'locationName' => 'availableInstanceCapacity', ], 'AvailableVCpus' => [ 'shape' => 'Integer', 'locationName' => 'availableVCpus', ], ], ], 'AvailableInstanceCapacityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceCapacity', 'locationName' => 'item', ], ], 'BandwidthWeightingType' => [ 'type' => 'string', 'enum' => [ 'default', 'vpc-1', 'ebs-1', ], ], 'BandwidthWeightingTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BandwidthWeightingType', 'locationName' => 'item', ], ], 'BareMetal' => [ 'type' => 'string', 'enum' => [ 'included', 'required', 'excluded', ], ], 'BareMetalFlag' => [ 'type' => 'boolean', ], 'BaselineBandwidthInGbps' => [ 'type' => 'double', ], 'BaselineBandwidthInMbps' => [ 'type' => 'integer', ], 'BaselineEbsBandwidthMbps' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Integer', 'locationName' => 'max', ], ], ], 'BaselineEbsBandwidthMbpsRequest' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', ], 'Max' => [ 'shape' => 'Integer', ], ], ], 'BaselineIops' => [ 'type' => 'integer', ], 'BaselinePerformanceFactors' => [ 'type' => 'structure', 'members' => [ 'Cpu' => [ 'shape' => 'CpuPerformanceFactor', 'locationName' => 'cpu', ], ], ], 'BaselinePerformanceFactorsRequest' => [ 'type' => 'structure', 'members' => [ 'Cpu' => [ 'shape' => 'CpuPerformanceFactorRequest', ], ], ], 'BaselineThroughputInMBps' => [ 'type' => 'double', ], 'BatchState' => [ 'type' => 'string', 'enum' => [ 'submitted', 'active', 'cancelled', 'failed', 'cancelled_running', 'cancelled_terminating', 'modifying', ], ], 'BgpStatus' => [ 'type' => 'string', 'enum' => [ 'up', 'down', ], ], 'BillingProductList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'Blob' => [ 'type' => 'blob', ], 'BlobAttributeValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Blob', 'locationName' => 'value', ], ], ], 'BlockDeviceMapping' => [ 'type' => 'structure', 'members' => [ 'Ebs' => [ 'shape' => 'EbsBlockDevice', 'locationName' => 'ebs', ], 'NoDevice' => [ 'shape' => 'String', 'locationName' => 'noDevice', ], 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'VirtualName' => [ 'shape' => 'String', 'locationName' => 'virtualName', ], ], ], 'BlockDeviceMappingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BlockDeviceMapping', 'locationName' => 'item', ], ], 'BlockDeviceMappingRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BlockDeviceMapping', 'locationName' => 'BlockDeviceMapping', ], ], 'BlockDeviceMappingResponse' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'VirtualName' => [ 'shape' => 'String', 'locationName' => 'virtualName', ], 'Ebs' => [ 'shape' => 'EbsBlockDeviceResponse', 'locationName' => 'ebs', ], 'NoDevice' => [ 'shape' => 'String', 'locationName' => 'noDevice', ], ], ], 'BlockDeviceMappingResponseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BlockDeviceMappingResponse', 'locationName' => 'item', ], ], 'BlockPublicAccessMode' => [ 'type' => 'string', 'enum' => [ 'off', 'block-bidirectional', 'block-ingress', ], ], 'BlockPublicAccessStates' => [ 'type' => 'structure', 'members' => [ 'InternetGatewayBlockMode' => [ 'shape' => 'BlockPublicAccessMode', 'locationName' => 'internetGatewayBlockMode', ], ], ], 'Boolean' => [ 'type' => 'boolean', ], 'BootModeType' => [ 'type' => 'string', 'enum' => [ 'legacy-bios', 'uefi', ], ], 'BootModeTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BootModeType', 'locationName' => 'item', ], ], 'BootModeValues' => [ 'type' => 'string', 'enum' => [ 'legacy-bios', 'uefi', 'uefi-preferred', ], ], 'BoxedBoolean' => [ 'type' => 'boolean', ], 'BoxedDouble' => [ 'type' => 'double', ], 'BoxedInteger' => [ 'type' => 'integer', ], 'BoxedLong' => [ 'type' => 'long', ], 'BundleId' => [ 'type' => 'string', ], 'BundleIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BundleId', 'locationName' => 'BundleId', ], ], 'BundleInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'Storage', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'Storage' => [ 'shape' => 'Storage', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'BundleInstanceResult' => [ 'type' => 'structure', 'members' => [ 'BundleTask' => [ 'shape' => 'BundleTask', 'locationName' => 'bundleInstanceTask', ], ], ], 'BundleTask' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'BundleId' => [ 'shape' => 'String', 'locationName' => 'bundleId', ], 'State' => [ 'shape' => 'BundleTaskState', 'locationName' => 'state', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], 'UpdateTime' => [ 'shape' => 'DateTime', 'locationName' => 'updateTime', ], 'Storage' => [ 'shape' => 'Storage', 'locationName' => 'storage', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'BundleTaskError' => [ 'shape' => 'BundleTaskError', 'locationName' => 'error', ], ], ], 'BundleTaskError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'BundleTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BundleTask', 'locationName' => 'item', ], ], 'BundleTaskState' => [ 'type' => 'string', 'enum' => [ 'pending', 'waiting-for-shutdown', 'bundling', 'storing', 'cancelling', 'complete', 'failed', ], ], 'BurstablePerformance' => [ 'type' => 'string', 'enum' => [ 'included', 'required', 'excluded', ], ], 'BurstablePerformanceFlag' => [ 'type' => 'boolean', ], 'Byoasn' => [ 'type' => 'structure', 'members' => [ 'Asn' => [ 'shape' => 'String', 'locationName' => 'asn', ], 'IpamId' => [ 'shape' => 'IpamId', 'locationName' => 'ipamId', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'State' => [ 'shape' => 'AsnState', 'locationName' => 'state', ], ], ], 'ByoasnSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Byoasn', 'locationName' => 'item', ], ], 'ByoipCidr' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'AsnAssociations' => [ 'shape' => 'AsnAssociationSet', 'locationName' => 'asnAssociationSet', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'State' => [ 'shape' => 'ByoipCidrState', 'locationName' => 'state', ], 'NetworkBorderGroup' => [ 'shape' => 'String', 'locationName' => 'networkBorderGroup', ], 'AdvertisementType' => [ 'shape' => 'String', 'locationName' => 'advertisementType', ], ], ], 'ByoipCidrSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ByoipCidr', 'locationName' => 'item', ], ], 'ByoipCidrState' => [ 'type' => 'string', 'enum' => [ 'advertised', 'deprovisioned', 'failed-deprovision', 'failed-provision', 'pending-advertising', 'pending-deprovision', 'pending-provision', 'pending-withdrawal', 'provisioned', 'provisioned-not-publicly-advertisable', ], ], 'CallerRole' => [ 'type' => 'string', 'enum' => [ 'odcr-owner', 'unused-reservation-billing-owner', ], ], 'CancelBatchErrorCode' => [ 'type' => 'string', 'enum' => [ 'fleetRequestIdDoesNotExist', 'fleetRequestIdMalformed', 'fleetRequestNotInCancellableState', 'unexpectedError', ], ], 'CancelBundleTaskRequest' => [ 'type' => 'structure', 'required' => [ 'BundleId', ], 'members' => [ 'BundleId' => [ 'shape' => 'BundleId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CancelBundleTaskResult' => [ 'type' => 'structure', 'members' => [ 'BundleTask' => [ 'shape' => 'BundleTask', 'locationName' => 'bundleInstanceTask', ], ], ], 'CancelCapacityReservationFleetError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'CancelCapacityReservationFleetErrorCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'CancelCapacityReservationFleetErrorMessage', 'locationName' => 'message', ], ], ], 'CancelCapacityReservationFleetErrorCode' => [ 'type' => 'string', ], 'CancelCapacityReservationFleetErrorMessage' => [ 'type' => 'string', ], 'CancelCapacityReservationFleetsRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationFleetIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'CapacityReservationFleetIds' => [ 'shape' => 'CapacityReservationFleetIdSet', 'locationName' => 'CapacityReservationFleetId', ], ], ], 'CancelCapacityReservationFleetsResult' => [ 'type' => 'structure', 'members' => [ 'SuccessfulFleetCancellations' => [ 'shape' => 'CapacityReservationFleetCancellationStateSet', 'locationName' => 'successfulFleetCancellationSet', ], 'FailedFleetCancellations' => [ 'shape' => 'FailedCapacityReservationFleetCancellationResultSet', 'locationName' => 'failedFleetCancellationSet', ], ], ], 'CancelCapacityReservationRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', ], 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ApplyCancellationCharges' => [ 'shape' => 'ApplyCancellationCharges', ], 'QuoteId' => [ 'shape' => 'CapacityReservationCancellationQuoteId', ], ], ], 'CancelCapacityReservationResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'CancelConversionRequest' => [ 'type' => 'structure', 'required' => [ 'ConversionTaskId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'ConversionTaskId' => [ 'shape' => 'ConversionTaskId', 'locationName' => 'conversionTaskId', ], 'ReasonMessage' => [ 'shape' => 'String', 'locationName' => 'reasonMessage', ], ], ], 'CancelDeclarativePoliciesReportRequest' => [ 'type' => 'structure', 'required' => [ 'ReportId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ReportId' => [ 'shape' => 'DeclarativePoliciesReportId', ], ], ], 'CancelDeclarativePoliciesReportResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'CancelExportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'ExportTaskId', ], 'members' => [ 'ExportTaskId' => [ 'shape' => 'ExportVmTaskId', 'locationName' => 'exportTaskId', ], ], ], 'CancelImageLaunchPermissionRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CancelImageLaunchPermissionResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'CancelImportTaskRequest' => [ 'type' => 'structure', 'members' => [ 'CancelReason' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ImportTaskId' => [ 'shape' => 'ImportTaskId', ], ], ], 'CancelImportTaskResult' => [ 'type' => 'structure', 'members' => [ 'ImportTaskId' => [ 'shape' => 'String', 'locationName' => 'importTaskId', ], 'PreviousState' => [ 'shape' => 'String', 'locationName' => 'previousState', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], ], ], 'CancelReservedInstancesListingRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstancesListingId', ], 'members' => [ 'ReservedInstancesListingId' => [ 'shape' => 'ReservedInstancesListingId', 'locationName' => 'reservedInstancesListingId', ], ], ], 'CancelReservedInstancesListingResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesListings' => [ 'shape' => 'ReservedInstancesListingList', 'locationName' => 'reservedInstancesListingsSet', ], ], ], 'CancelSpotFleetRequestsError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'CancelBatchErrorCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'CancelSpotFleetRequestsErrorItem' => [ 'type' => 'structure', 'members' => [ 'Error' => [ 'shape' => 'CancelSpotFleetRequestsError', 'locationName' => 'error', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], ], ], 'CancelSpotFleetRequestsErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CancelSpotFleetRequestsErrorItem', 'locationName' => 'item', ], ], 'CancelSpotFleetRequestsRequest' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestIds', 'TerminateInstances', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotFleetRequestIds' => [ 'shape' => 'SpotFleetRequestIdList', 'locationName' => 'spotFleetRequestId', ], 'TerminateInstances' => [ 'shape' => 'Boolean', 'locationName' => 'terminateInstances', ], ], ], 'CancelSpotFleetRequestsResponse' => [ 'type' => 'structure', 'members' => [ 'SuccessfulFleetRequests' => [ 'shape' => 'CancelSpotFleetRequestsSuccessSet', 'locationName' => 'successfulFleetRequestSet', ], 'UnsuccessfulFleetRequests' => [ 'shape' => 'CancelSpotFleetRequestsErrorSet', 'locationName' => 'unsuccessfulFleetRequestSet', ], ], ], 'CancelSpotFleetRequestsSuccessItem' => [ 'type' => 'structure', 'members' => [ 'CurrentSpotFleetRequestState' => [ 'shape' => 'BatchState', 'locationName' => 'currentSpotFleetRequestState', ], 'PreviousSpotFleetRequestState' => [ 'shape' => 'BatchState', 'locationName' => 'previousSpotFleetRequestState', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], ], ], 'CancelSpotFleetRequestsSuccessSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CancelSpotFleetRequestsSuccessItem', 'locationName' => 'item', ], ], 'CancelSpotInstanceRequestState' => [ 'type' => 'string', 'enum' => [ 'active', 'open', 'closed', 'cancelled', 'completed', ], ], 'CancelSpotInstanceRequestsRequest' => [ 'type' => 'structure', 'required' => [ 'SpotInstanceRequestIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotInstanceRequestIds' => [ 'shape' => 'SpotInstanceRequestIdList', 'locationName' => 'SpotInstanceRequestId', ], ], ], 'CancelSpotInstanceRequestsResult' => [ 'type' => 'structure', 'members' => [ 'CancelledSpotInstanceRequests' => [ 'shape' => 'CancelledSpotInstanceRequestList', 'locationName' => 'spotInstanceRequestSet', ], ], ], 'CancellationTerms' => [ 'type' => 'structure', 'members' => [ 'CancellationType' => [ 'shape' => 'ApplyCancellationCharges', 'locationName' => 'cancellationType', ], 'ReservationState' => [ 'shape' => 'String', 'locationName' => 'reservationState', ], 'CommittedInstanceCount' => [ 'shape' => 'BoxedInteger', 'locationName' => 'committedInstanceCount', ], 'ChargeCommitmentDurationHours' => [ 'shape' => 'BoxedLong', 'locationName' => 'chargeCommitmentDurationHours', ], 'ChargeEndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'chargeEndDate', ], ], ], 'CancellationTermsSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CancellationTerms', 'locationName' => 'item', ], ], 'CancelledSpotInstanceRequest' => [ 'type' => 'structure', 'members' => [ 'SpotInstanceRequestId' => [ 'shape' => 'String', 'locationName' => 'spotInstanceRequestId', ], 'State' => [ 'shape' => 'CancelSpotInstanceRequestState', 'locationName' => 'state', ], ], ], 'CancelledSpotInstanceRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CancelledSpotInstanceRequest', 'locationName' => 'item', ], ], 'CapacityAllocation' => [ 'type' => 'structure', 'members' => [ 'AllocationType' => [ 'shape' => 'AllocationType', 'locationName' => 'allocationType', ], 'Count' => [ 'shape' => 'Integer', 'locationName' => 'count', ], 'AllocationMetadata' => [ 'shape' => 'CapacityAllocationMetadataList', 'locationName' => 'allocationMetadataList', ], ], ], 'CapacityAllocationMetadataEntry' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'CapacityAllocationMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityAllocationMetadataEntry', 'locationName' => 'item', ], ], 'CapacityAllocations' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityAllocation', 'locationName' => 'item', ], ], 'CapacityBlock' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockId' => [ 'shape' => 'CapacityBlockId', 'locationName' => 'capacityBlockId', ], 'UltraserverType' => [ 'shape' => 'String', 'locationName' => 'ultraserverType', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'CapacityReservationIds' => [ 'shape' => 'CapacityReservationIdSet', 'locationName' => 'capacityReservationIdSet', ], 'StartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startDate', ], 'EndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'endDate', ], 'CreateDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createDate', ], 'State' => [ 'shape' => 'CapacityBlockResourceState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'CapacityBlockExtension' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', 'locationName' => 'capacityReservationId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], 'CapacityBlockExtensionOfferingId' => [ 'shape' => 'OfferingId', 'locationName' => 'capacityBlockExtensionOfferingId', ], 'CapacityBlockExtensionDurationHours' => [ 'shape' => 'Integer', 'locationName' => 'capacityBlockExtensionDurationHours', ], 'CapacityBlockExtensionStatus' => [ 'shape' => 'CapacityBlockExtensionStatus', 'locationName' => 'capacityBlockExtensionStatus', ], 'CapacityBlockExtensionPurchaseDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'capacityBlockExtensionPurchaseDate', ], 'CapacityBlockExtensionStartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'capacityBlockExtensionStartDate', ], 'CapacityBlockExtensionEndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'capacityBlockExtensionEndDate', ], 'UpfrontFee' => [ 'shape' => 'String', 'locationName' => 'upfrontFee', ], 'CurrencyCode' => [ 'shape' => 'String', 'locationName' => 'currencyCode', ], 'ZoneType' => [ 'shape' => 'String', 'locationName' => 'zoneType', ], ], ], 'CapacityBlockExtensionOffering' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockExtensionOfferingId' => [ 'shape' => 'OfferingId', 'locationName' => 'capacityBlockExtensionOfferingId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], 'StartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startDate', ], 'CapacityBlockExtensionStartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'capacityBlockExtensionStartDate', ], 'CapacityBlockExtensionEndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'capacityBlockExtensionEndDate', ], 'CapacityBlockExtensionDurationHours' => [ 'shape' => 'Integer', 'locationName' => 'capacityBlockExtensionDurationHours', ], 'UpfrontFee' => [ 'shape' => 'String', 'locationName' => 'upfrontFee', ], 'CurrencyCode' => [ 'shape' => 'String', 'locationName' => 'currencyCode', ], 'Tenancy' => [ 'shape' => 'CapacityReservationTenancy', 'locationName' => 'tenancy', ], 'ZoneType' => [ 'shape' => 'String', 'locationName' => 'zoneType', ], ], ], 'CapacityBlockExtensionOfferingSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityBlockExtensionOffering', 'locationName' => 'item', ], ], 'CapacityBlockExtensionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityBlockExtension', 'locationName' => 'item', ], ], 'CapacityBlockExtensionStatus' => [ 'type' => 'string', 'enum' => [ 'payment-pending', 'payment-failed', 'payment-succeeded', ], ], 'CapacityBlockId' => [ 'type' => 'string', ], 'CapacityBlockIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityBlockId', 'locationName' => 'item', ], ], 'CapacityBlockInterconnectStatus' => [ 'type' => 'string', 'enum' => [ 'ok', 'impaired', 'insufficient-data', ], ], 'CapacityBlockOffering' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockOfferingId' => [ 'shape' => 'OfferingId', 'locationName' => 'capacityBlockOfferingId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'StartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startDate', ], 'EndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'endDate', ], 'CapacityBlockDurationHours' => [ 'shape' => 'Integer', 'locationName' => 'capacityBlockDurationHours', ], 'UpfrontFee' => [ 'shape' => 'String', 'locationName' => 'upfrontFee', ], 'CurrencyCode' => [ 'shape' => 'String', 'locationName' => 'currencyCode', ], 'Tenancy' => [ 'shape' => 'CapacityReservationTenancy', 'locationName' => 'tenancy', ], 'UltraserverType' => [ 'shape' => 'String', 'locationName' => 'ultraserverType', ], 'UltraserverCount' => [ 'shape' => 'BoxedInteger', 'locationName' => 'ultraserverCount', ], 'CapacityBlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'capacityBlockDurationMinutes', ], 'ZoneType' => [ 'shape' => 'String', 'locationName' => 'zoneType', ], ], ], 'CapacityBlockOfferingSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityBlockOffering', 'locationName' => 'item', ], ], 'CapacityBlockResourceState' => [ 'type' => 'string', 'enum' => [ 'active', 'expired', 'unavailable', 'cancelled', 'failed', 'scheduled', 'payment-pending', 'payment-failed', ], ], 'CapacityBlockSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityBlock', 'locationName' => 'item', ], ], 'CapacityBlockStatus' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockId' => [ 'shape' => 'CapacityBlockId', 'locationName' => 'capacityBlockId', ], 'InterconnectStatus' => [ 'shape' => 'CapacityBlockInterconnectStatus', 'locationName' => 'interconnectStatus', ], 'TotalCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalCapacity', ], 'TotalAvailableCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalAvailableCapacity', ], 'TotalUnavailableCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalUnavailableCapacity', ], 'CapacityReservationStatuses' => [ 'shape' => 'CapacityReservationStatusSet', 'locationName' => 'capacityReservationStatusSet', ], ], ], 'CapacityBlockStatusSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityBlockStatus', 'locationName' => 'item', ], ], 'CapacityManagerCondition' => [ 'type' => 'structure', 'members' => [ 'DimensionCondition' => [ 'shape' => 'DimensionCondition', ], ], ], 'CapacityManagerConditionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityManagerCondition', 'locationName' => 'item', ], 'max' => 20, 'min' => 0, ], 'CapacityManagerDataExportId' => [ 'type' => 'string', ], 'CapacityManagerDataExportIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityManagerDataExportId', 'locationName' => 'item', ], ], 'CapacityManagerDataExportResponse' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerDataExportId' => [ 'shape' => 'CapacityManagerDataExportId', 'locationName' => 'capacityManagerDataExportId', ], 'S3BucketName' => [ 'shape' => 'String', 'locationName' => 's3BucketName', ], 'S3BucketPrefix' => [ 'shape' => 'String', 'locationName' => 's3BucketPrefix', ], 'Schedule' => [ 'shape' => 'Schedule', 'locationName' => 'schedule', ], 'OutputFormat' => [ 'shape' => 'OutputFormat', 'locationName' => 'outputFormat', ], 'CreateTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createTime', ], 'LatestDeliveryStatus' => [ 'shape' => 'CapacityManagerDataExportStatus', 'locationName' => 'latestDeliveryStatus', ], 'LatestDeliveryStatusMessage' => [ 'shape' => 'String', 'locationName' => 'latestDeliveryStatusMessage', ], 'LatestDeliveryS3LocationUri' => [ 'shape' => 'String', 'locationName' => 'latestDeliveryS3LocationUri', ], 'LatestDeliveryTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'latestDeliveryTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'CapacityManagerDataExportResponseSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityManagerDataExportResponse', 'locationName' => 'item', ], ], 'CapacityManagerDataExportStatus' => [ 'type' => 'string', 'enum' => [ 'pending', 'in-progress', 'delivered', 'failed', ], ], 'CapacityManagerDimension' => [ 'type' => 'structure', 'members' => [ 'ResourceRegion' => [ 'shape' => 'String', 'locationName' => 'resourceRegion', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'AccountId' => [ 'shape' => 'String', 'locationName' => 'accountId', ], 'AccountName' => [ 'shape' => 'String', 'locationName' => 'accountName', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'InstancePlatform' => [ 'shape' => 'String', 'locationName' => 'instancePlatform', ], 'ReservationArn' => [ 'shape' => 'String', 'locationName' => 'reservationArn', ], 'ReservationId' => [ 'shape' => 'String', 'locationName' => 'reservationId', ], 'ReservationType' => [ 'shape' => 'ReservationType', 'locationName' => 'reservationType', ], 'ReservationCreateTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'reservationCreateTimestamp', ], 'ReservationStartTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'reservationStartTimestamp', ], 'ReservationEndTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'reservationEndTimestamp', ], 'ReservationEndDateType' => [ 'shape' => 'ReservationEndDateType', 'locationName' => 'reservationEndDateType', ], 'Tenancy' => [ 'shape' => 'CapacityTenancy', 'locationName' => 'tenancy', ], 'ReservationState' => [ 'shape' => 'ReservationState', 'locationName' => 'reservationState', ], 'ReservationInstanceMatchCriteria' => [ 'shape' => 'String', 'locationName' => 'reservationInstanceMatchCriteria', ], 'ReservationUnusedFinancialOwner' => [ 'shape' => 'String', 'locationName' => 'reservationUnusedFinancialOwner', ], 'Tags' => [ 'shape' => 'CapacityManagerTagDimensionSet', 'locationName' => 'tagSet', ], ], ], 'CapacityManagerMonitoredTagKey' => [ 'type' => 'structure', 'members' => [ 'TagKey' => [ 'shape' => 'String', 'locationName' => 'tagKey', ], 'Status' => [ 'shape' => 'CapacityManagerMonitoredTagKeyStatus', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'CapacityManagerProvided' => [ 'shape' => 'Boolean', 'locationName' => 'capacityManagerProvided', ], 'EarliestDatapointTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'earliestDatapointTimestamp', ], ], ], 'CapacityManagerMonitoredTagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityManagerMonitoredTagKey', 'locationName' => 'item', ], ], 'CapacityManagerMonitoredTagKeyStatus' => [ 'type' => 'string', 'enum' => [ 'activating', 'activated', 'deactivating', 'suspended', ], ], 'CapacityManagerStatus' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'CapacityManagerTagDimension' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'CapacityManagerTagDimensionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityManagerTagDimension', 'locationName' => 'item', ], ], 'CapacityReservation' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'CapacityReservationArn' => [ 'shape' => 'String', 'locationName' => 'capacityReservationArn', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'InstancePlatform' => [ 'shape' => 'CapacityReservationInstancePlatform', 'locationName' => 'instancePlatform', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Tenancy' => [ 'shape' => 'CapacityReservationTenancy', 'locationName' => 'tenancy', ], 'TotalInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'totalInstanceCount', ], 'AvailableInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'availableInstanceCount', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'EphemeralStorage' => [ 'shape' => 'Boolean', 'locationName' => 'ephemeralStorage', ], 'State' => [ 'shape' => 'CapacityReservationState', 'locationName' => 'state', ], 'StartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startDate', ], 'EndDate' => [ 'shape' => 'DateTime', 'locationName' => 'endDate', ], 'EndDateType' => [ 'shape' => 'EndDateType', 'locationName' => 'endDateType', ], 'InstanceMatchCriteria' => [ 'shape' => 'InstanceMatchCriteria', 'locationName' => 'instanceMatchCriteria', ], 'CreateDate' => [ 'shape' => 'DateTime', 'locationName' => 'createDate', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'OutpostArn' => [ 'shape' => 'OutpostArn', 'locationName' => 'outpostArn', ], 'CapacityReservationFleetId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationFleetId', ], 'PlacementGroupArn' => [ 'shape' => 'PlacementGroupArn', 'locationName' => 'placementGroupArn', ], 'CapacityAllocations' => [ 'shape' => 'CapacityAllocations', 'locationName' => 'capacityAllocationSet', ], 'ReservationType' => [ 'shape' => 'CapacityReservationType', 'locationName' => 'reservationType', ], 'UnusedReservationBillingOwnerId' => [ 'shape' => 'AccountID', 'locationName' => 'unusedReservationBillingOwnerId', ], 'CommitmentInfo' => [ 'shape' => 'CapacityReservationCommitmentInfo', 'locationName' => 'commitmentInfo', ], 'DeliveryPreference' => [ 'shape' => 'CapacityReservationDeliveryPreference', 'locationName' => 'deliveryPreference', ], 'CapacityBlockId' => [ 'shape' => 'CapacityBlockId', 'locationName' => 'capacityBlockId', ], 'Interruptible' => [ 'shape' => 'BoxedBoolean', 'locationName' => 'interruptible', ], 'InterruptibleCapacityAllocation' => [ 'shape' => 'InterruptibleCapacityAllocation', 'locationName' => 'interruptibleCapacityAllocation', ], 'InterruptionInfo' => [ 'shape' => 'InterruptionInfo', 'locationName' => 'interruptionInfo', ], ], ], 'CapacityReservationBillingRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationId', ], 'RequestedBy' => [ 'shape' => 'String', 'locationName' => 'requestedBy', ], 'UnusedReservationBillingOwnerId' => [ 'shape' => 'AccountID', 'locationName' => 'unusedReservationBillingOwnerId', ], 'LastUpdateTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastUpdateTime', ], 'Status' => [ 'shape' => 'CapacityReservationBillingRequestStatus', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'CapacityReservationInfo' => [ 'shape' => 'CapacityReservationInfo', 'locationName' => 'capacityReservationInfo', ], ], ], 'CapacityReservationBillingRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationBillingRequest', 'locationName' => 'item', ], ], 'CapacityReservationBillingRequestStatus' => [ 'type' => 'string', 'enum' => [ 'pending', 'accepted', 'rejected', 'cancelled', 'revoked', 'expired', ], ], 'CapacityReservationCancellationQuote' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationCancellationQuoteId' => [ 'shape' => 'CapacityReservationCancellationQuoteId', 'locationName' => 'capacityReservationCancellationQuoteId', ], 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', 'locationName' => 'capacityReservationId', ], 'CreateTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createTime', ], 'ExpirationTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'expirationTime', ], 'QuoteState' => [ 'shape' => 'CapacityReservationCancellationQuoteState', 'locationName' => 'quoteState', ], 'CurrentConfiguration' => [ 'shape' => 'CapacityReservationConfiguration', 'locationName' => 'currentConfiguration', ], 'CancellationTerms' => [ 'shape' => 'CancellationTermsSet', 'locationName' => 'cancellationTermSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'CapacityReservationCancellationQuoteId' => [ 'type' => 'string', ], 'CapacityReservationCancellationQuoteIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationCancellationQuoteId', 'locationName' => 'item', ], ], 'CapacityReservationCancellationQuoteResponseSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationCancellationQuote', 'locationName' => 'item', ], ], 'CapacityReservationCancellationQuoteState' => [ 'type' => 'string', 'enum' => [ 'pending', 'active', 'expired', ], ], 'CapacityReservationCommitmentDuration' => [ 'type' => 'long', 'max' => 200000000, 'min' => 1, ], 'CapacityReservationCommitmentInfo' => [ 'type' => 'structure', 'members' => [ 'CommittedInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'committedInstanceCount', ], 'CommitmentEndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'commitmentEndDate', ], ], ], 'CapacityReservationConfiguration' => [ 'type' => 'structure', 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'ReservationState' => [ 'shape' => 'String', 'locationName' => 'reservationState', ], ], ], 'CapacityReservationDeliveryPreference' => [ 'type' => 'string', 'enum' => [ 'fixed', 'incremental', ], ], 'CapacityReservationFleet' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationFleetId' => [ 'shape' => 'CapacityReservationFleetId', 'locationName' => 'capacityReservationFleetId', ], 'CapacityReservationFleetArn' => [ 'shape' => 'String', 'locationName' => 'capacityReservationFleetArn', ], 'State' => [ 'shape' => 'CapacityReservationFleetState', 'locationName' => 'state', ], 'TotalTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalTargetCapacity', ], 'TotalFulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'totalFulfilledCapacity', ], 'Tenancy' => [ 'shape' => 'FleetCapacityReservationTenancy', 'locationName' => 'tenancy', ], 'EndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'endDate', ], 'CreateTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createTime', ], 'InstanceMatchCriteria' => [ 'shape' => 'FleetInstanceMatchCriteria', 'locationName' => 'instanceMatchCriteria', ], 'AllocationStrategy' => [ 'shape' => 'String', 'locationName' => 'allocationStrategy', ], 'InstanceTypeSpecifications' => [ 'shape' => 'FleetCapacityReservationSet', 'locationName' => 'instanceTypeSpecificationSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'CapacityReservationFleetCancellationState' => [ 'type' => 'structure', 'members' => [ 'CurrentFleetState' => [ 'shape' => 'CapacityReservationFleetState', 'locationName' => 'currentFleetState', ], 'PreviousFleetState' => [ 'shape' => 'CapacityReservationFleetState', 'locationName' => 'previousFleetState', ], 'CapacityReservationFleetId' => [ 'shape' => 'CapacityReservationFleetId', 'locationName' => 'capacityReservationFleetId', ], ], ], 'CapacityReservationFleetCancellationStateSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationFleetCancellationState', 'locationName' => 'item', ], ], 'CapacityReservationFleetId' => [ 'type' => 'string', ], 'CapacityReservationFleetIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationFleetId', 'locationName' => 'item', ], ], 'CapacityReservationFleetSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationFleet', 'locationName' => 'item', ], ], 'CapacityReservationFleetState' => [ 'type' => 'string', 'enum' => [ 'submitted', 'modifying', 'active', 'partially_fulfilled', 'expiring', 'expired', 'cancelling', 'cancelled', 'failed', ], ], 'CapacityReservationGroup' => [ 'type' => 'structure', 'members' => [ 'GroupArn' => [ 'shape' => 'String', 'locationName' => 'groupArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], ], ], 'CapacityReservationGroupSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationGroup', 'locationName' => 'item', ], ], 'CapacityReservationId' => [ 'type' => 'string', ], 'CapacityReservationIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationId', 'locationName' => 'item', ], ], 'CapacityReservationInfo' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'availabilityZone', ], 'Tenancy' => [ 'shape' => 'CapacityReservationTenancy', 'locationName' => 'tenancy', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], ], ], 'CapacityReservationInstancePlatform' => [ 'type' => 'string', 'enum' => [ 'Linux/UNIX', 'Red Hat Enterprise Linux', 'SUSE Linux', 'Windows', 'Windows with SQL Server', 'Windows with SQL Server Enterprise', 'Windows with SQL Server Standard', 'Windows with SQL Server Web', 'Linux with SQL Server Standard', 'Linux with SQL Server Web', 'Linux with SQL Server Enterprise', 'RHEL with SQL Server Standard', 'RHEL with SQL Server Enterprise', 'RHEL with SQL Server Web', 'RHEL with HA', 'RHEL with HA and SQL Server Standard', 'RHEL with HA and SQL Server Enterprise', 'Ubuntu Pro', ], ], 'CapacityReservationOptions' => [ 'type' => 'structure', 'members' => [ 'UsageStrategy' => [ 'shape' => 'FleetCapacityReservationUsageStrategy', 'locationName' => 'usageStrategy', ], ], ], 'CapacityReservationOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'UsageStrategy' => [ 'shape' => 'FleetCapacityReservationUsageStrategy', ], ], ], 'CapacityReservationPreference' => [ 'type' => 'string', 'enum' => [ 'capacity-reservations-only', 'open', 'none', ], ], 'CapacityReservationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservation', 'locationName' => 'item', ], ], 'CapacityReservationSpecification' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationPreference' => [ 'shape' => 'CapacityReservationPreference', ], 'CapacityReservationTarget' => [ 'shape' => 'CapacityReservationTarget', ], ], ], 'CapacityReservationSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationPreference' => [ 'shape' => 'CapacityReservationPreference', 'locationName' => 'capacityReservationPreference', ], 'CapacityReservationTarget' => [ 'shape' => 'CapacityReservationTargetResponse', 'locationName' => 'capacityReservationTarget', ], ], ], 'CapacityReservationState' => [ 'type' => 'string', 'enum' => [ 'active', 'expired', 'cancelled', 'pending', 'failed', 'scheduled', 'payment-pending', 'payment-failed', 'assessing', 'delayed', 'unsupported', 'cancelling', 'unavailable', ], ], 'CapacityReservationStatus' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', 'locationName' => 'capacityReservationId', ], 'TotalCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalCapacity', ], 'TotalAvailableCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalAvailableCapacity', ], 'TotalUnavailableCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalUnavailableCapacity', ], ], ], 'CapacityReservationStatusSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationStatus', 'locationName' => 'item', ], ], 'CapacityReservationTarget' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'CapacityReservationResourceGroupArn' => [ 'shape' => 'String', ], ], ], 'CapacityReservationTargetResponse' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationId', ], 'CapacityReservationResourceGroupArn' => [ 'shape' => 'String', 'locationName' => 'capacityReservationResourceGroupArn', ], ], ], 'CapacityReservationTenancy' => [ 'type' => 'string', 'enum' => [ 'default', 'dedicated', ], ], 'CapacityReservationTopology' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationId', ], 'CapacityBlockId' => [ 'shape' => 'String', 'locationName' => 'capacityBlockId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'NetworkNodes' => [ 'shape' => 'NetworkNodeSet', 'locationName' => 'networkNodeSet', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], ], ], 'CapacityReservationTopologySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityReservationTopology', 'locationName' => 'item', ], ], 'CapacityReservationType' => [ 'type' => 'string', 'enum' => [ 'default', 'capacity-block', ], ], 'CapacityTenancy' => [ 'type' => 'string', 'enum' => [ 'default', 'dedicated', ], ], 'CarrierGateway' => [ 'type' => 'structure', 'members' => [ 'CarrierGatewayId' => [ 'shape' => 'CarrierGatewayId', 'locationName' => 'carrierGatewayId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'State' => [ 'shape' => 'CarrierGatewayState', 'locationName' => 'state', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'CarrierGatewayId' => [ 'type' => 'string', ], 'CarrierGatewayIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CarrierGatewayId', ], ], 'CarrierGatewayMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'CarrierGatewaySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CarrierGateway', 'locationName' => 'item', ], ], 'CarrierGatewayState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'CertificateArn' => [ 'type' => 'string', ], 'CertificateAuthentication' => [ 'type' => 'structure', 'members' => [ 'ClientRootCertificateChain' => [ 'shape' => 'String', 'locationName' => 'clientRootCertificateChain', ], ], ], 'CertificateAuthenticationRequest' => [ 'type' => 'structure', 'members' => [ 'ClientRootCertificateChainArn' => [ 'shape' => 'String', ], ], ], 'CertificateId' => [ 'type' => 'string', ], 'CidrAuthorizationContext' => [ 'type' => 'structure', 'required' => [ 'Message', 'Signature', ], 'members' => [ 'Message' => [ 'shape' => 'String', ], 'Signature' => [ 'shape' => 'String', ], ], ], 'CidrBlock' => [ 'type' => 'structure', 'members' => [ 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], ], ], 'CidrBlockSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CidrBlock', 'locationName' => 'item', ], ], 'ClassicLinkDnsSupport' => [ 'type' => 'structure', 'members' => [ 'ClassicLinkDnsSupported' => [ 'shape' => 'Boolean', 'locationName' => 'classicLinkDnsSupported', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'ClassicLinkDnsSupportList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClassicLinkDnsSupport', 'locationName' => 'item', ], ], 'ClassicLinkInstance' => [ 'type' => 'structure', 'members' => [ 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'ClassicLinkInstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClassicLinkInstance', 'locationName' => 'item', ], ], 'ClassicLoadBalancer' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'ClassicLoadBalancers' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClassicLoadBalancer', 'locationName' => 'item', ], 'max' => 5, 'min' => 1, ], 'ClassicLoadBalancersConfig' => [ 'type' => 'structure', 'members' => [ 'ClassicLoadBalancers' => [ 'shape' => 'ClassicLoadBalancers', 'locationName' => 'classicLoadBalancers', ], ], ], 'ClientCertificateRevocationListStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientCertificateRevocationListStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientCertificateRevocationListStatusCode' => [ 'type' => 'string', 'enum' => [ 'pending', 'active', ], ], 'ClientConnectOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'LambdaFunctionArn' => [ 'shape' => 'String', ], ], ], 'ClientConnectResponseOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], 'LambdaFunctionArn' => [ 'shape' => 'String', 'locationName' => 'lambdaFunctionArn', ], 'Status' => [ 'shape' => 'ClientVpnEndpointAttributeStatus', 'locationName' => 'status', ], ], ], 'ClientData' => [ 'type' => 'structure', 'members' => [ 'Comment' => [ 'shape' => 'String', ], 'UploadEnd' => [ 'shape' => 'DateTime', ], 'UploadSize' => [ 'shape' => 'Double', ], 'UploadStart' => [ 'shape' => 'DateTime', ], ], ], 'ClientLoginBannerOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'BannerText' => [ 'shape' => 'String', ], ], ], 'ClientLoginBannerResponseOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], 'BannerText' => [ 'shape' => 'String', 'locationName' => 'bannerText', ], ], ], 'ClientRouteEnforcementOptions' => [ 'type' => 'structure', 'members' => [ 'Enforced' => [ 'shape' => 'Boolean', ], ], ], 'ClientRouteEnforcementResponseOptions' => [ 'type' => 'structure', 'members' => [ 'Enforced' => [ 'shape' => 'Boolean', 'locationName' => 'enforced', ], ], ], 'ClientSecretType' => [ 'type' => 'string', 'sensitive' => true, ], 'ClientVpnAuthentication' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'ClientVpnAuthenticationType', 'locationName' => 'type', ], 'ActiveDirectory' => [ 'shape' => 'DirectoryServiceAuthentication', 'locationName' => 'activeDirectory', ], 'MutualAuthentication' => [ 'shape' => 'CertificateAuthentication', 'locationName' => 'mutualAuthentication', ], 'FederatedAuthentication' => [ 'shape' => 'FederatedAuthentication', 'locationName' => 'federatedAuthentication', ], ], ], 'ClientVpnAuthenticationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnAuthentication', 'locationName' => 'item', ], ], 'ClientVpnAuthenticationRequest' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'ClientVpnAuthenticationType', ], 'ActiveDirectory' => [ 'shape' => 'DirectoryServiceAuthenticationRequest', ], 'MutualAuthentication' => [ 'shape' => 'CertificateAuthenticationRequest', ], 'FederatedAuthentication' => [ 'shape' => 'FederatedAuthenticationRequest', ], ], ], 'ClientVpnAuthenticationRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnAuthenticationRequest', ], ], 'ClientVpnAuthenticationType' => [ 'type' => 'string', 'enum' => [ 'certificate-authentication', 'directory-service-authentication', 'federated-authentication', ], ], 'ClientVpnAuthorizationRuleStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientVpnAuthorizationRuleStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientVpnAuthorizationRuleStatusCode' => [ 'type' => 'string', 'enum' => [ 'authorizing', 'active', 'failed', 'revoking', ], ], 'ClientVpnAvailabilityZoneIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'item', ], ], 'ClientVpnAvailabilityZoneSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'item', ], ], 'ClientVpnConnection' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Timestamp' => [ 'shape' => 'String', 'locationName' => 'timestamp', ], 'ConnectionId' => [ 'shape' => 'String', 'locationName' => 'connectionId', ], 'Username' => [ 'shape' => 'String', 'locationName' => 'username', ], 'ConnectionEstablishedTime' => [ 'shape' => 'String', 'locationName' => 'connectionEstablishedTime', ], 'IngressBytes' => [ 'shape' => 'String', 'locationName' => 'ingressBytes', ], 'EgressBytes' => [ 'shape' => 'String', 'locationName' => 'egressBytes', ], 'IngressPackets' => [ 'shape' => 'String', 'locationName' => 'ingressPackets', ], 'EgressPackets' => [ 'shape' => 'String', 'locationName' => 'egressPackets', ], 'ClientIp' => [ 'shape' => 'String', 'locationName' => 'clientIp', ], 'ClientIpv6Address' => [ 'shape' => 'String', 'locationName' => 'clientIpv6Address', ], 'CommonName' => [ 'shape' => 'String', 'locationName' => 'commonName', ], 'Status' => [ 'shape' => 'ClientVpnConnectionStatus', 'locationName' => 'status', ], 'ConnectionEndTime' => [ 'shape' => 'String', 'locationName' => 'connectionEndTime', ], 'PostureComplianceStatuses' => [ 'shape' => 'ValueStringList', 'locationName' => 'postureComplianceStatusSet', ], ], ], 'ClientVpnConnectionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnConnection', 'locationName' => 'item', ], ], 'ClientVpnConnectionStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientVpnConnectionStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientVpnConnectionStatusCode' => [ 'type' => 'string', 'enum' => [ 'active', 'failed-to-terminate', 'terminating', 'terminated', ], ], 'ClientVpnEndpoint' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Status' => [ 'shape' => 'ClientVpnEndpointStatus', 'locationName' => 'status', ], 'CreationTime' => [ 'shape' => 'String', 'locationName' => 'creationTime', ], 'DeletionTime' => [ 'shape' => 'String', 'locationName' => 'deletionTime', ], 'DnsName' => [ 'shape' => 'String', 'locationName' => 'dnsName', ], 'ClientCidrBlock' => [ 'shape' => 'String', 'locationName' => 'clientCidrBlock', ], 'DnsServers' => [ 'shape' => 'ValueStringList', 'locationName' => 'dnsServer', ], 'SplitTunnel' => [ 'shape' => 'Boolean', 'locationName' => 'splitTunnel', ], 'VpnProtocol' => [ 'shape' => 'VpnProtocol', 'locationName' => 'vpnProtocol', ], 'TransportProtocol' => [ 'shape' => 'TransportProtocol', 'locationName' => 'transportProtocol', ], 'VpnPort' => [ 'shape' => 'Integer', 'locationName' => 'vpnPort', ], 'AssociatedTargetNetworks' => [ 'shape' => 'AssociatedTargetNetworkSet', 'deprecated' => true, 'deprecatedMessage' => 'This property is deprecated. To view the target networks associated with a Client VPN endpoint, call DescribeClientVpnTargetNetworks and inspect the clientVpnTargetNetworks response element.', 'locationName' => 'associatedTargetNetwork', ], 'ServerCertificateArn' => [ 'shape' => 'String', 'locationName' => 'serverCertificateArn', ], 'AuthenticationOptions' => [ 'shape' => 'ClientVpnAuthenticationList', 'locationName' => 'authenticationOptions', ], 'ConnectionLogOptions' => [ 'shape' => 'ConnectionLogResponseOptions', 'locationName' => 'connectionLogOptions', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SecurityGroupIds' => [ 'shape' => 'ClientVpnSecurityGroupIdSet', 'locationName' => 'securityGroupIdSet', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'SelfServicePortalUrl' => [ 'shape' => 'String', 'locationName' => 'selfServicePortalUrl', ], 'ClientConnectOptions' => [ 'shape' => 'ClientConnectResponseOptions', 'locationName' => 'clientConnectOptions', ], 'SessionTimeoutHours' => [ 'shape' => 'Integer', 'locationName' => 'sessionTimeoutHours', ], 'ClientLoginBannerOptions' => [ 'shape' => 'ClientLoginBannerResponseOptions', 'locationName' => 'clientLoginBannerOptions', ], 'ClientRouteEnforcementOptions' => [ 'shape' => 'ClientRouteEnforcementResponseOptions', 'locationName' => 'clientRouteEnforcementOptions', ], 'DisconnectOnSessionTimeout' => [ 'shape' => 'Boolean', 'locationName' => 'disconnectOnSessionTimeout', ], 'EndpointIpAddressType' => [ 'shape' => 'EndpointIpAddressType', 'locationName' => 'endpointIpAddressType', ], 'TrafficIpAddressType' => [ 'shape' => 'TrafficIpAddressType', 'locationName' => 'trafficIpAddressType', ], 'TransitGatewayConfiguration' => [ 'shape' => 'TransitGatewayConfigurationDescribeEndpointStructure', 'locationName' => 'transitGatewayConfiguration', ], ], ], 'ClientVpnEndpointAttributeStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientVpnEndpointAttributeStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientVpnEndpointAttributeStatusCode' => [ 'type' => 'string', 'enum' => [ 'applying', 'applied', ], ], 'ClientVpnEndpointId' => [ 'type' => 'string', ], 'ClientVpnEndpointIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnEndpointId', 'locationName' => 'item', ], ], 'ClientVpnEndpointStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientVpnEndpointStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientVpnEndpointStatusCode' => [ 'type' => 'string', 'enum' => [ 'pending-associate', 'available', 'deleting', 'deleted', 'pending', ], ], 'ClientVpnRoute' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'DestinationCidr' => [ 'shape' => 'String', 'locationName' => 'destinationCidr', ], 'TargetSubnet' => [ 'shape' => 'String', 'locationName' => 'targetSubnet', ], 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], 'Origin' => [ 'shape' => 'String', 'locationName' => 'origin', ], 'Status' => [ 'shape' => 'ClientVpnRouteStatus', 'locationName' => 'status', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], ], ], 'ClientVpnRouteSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnRoute', 'locationName' => 'item', ], ], 'ClientVpnRouteStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'ClientVpnRouteStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ClientVpnRouteStatusCode' => [ 'type' => 'string', 'enum' => [ 'creating', 'active', 'failed', 'deleting', ], ], 'ClientVpnSecurityGroupIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'item', ], ], 'CloudWatchLogGroupArn' => [ 'type' => 'string', ], 'CloudWatchLogOptions' => [ 'type' => 'structure', 'members' => [ 'LogEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'logEnabled', ], 'LogGroupArn' => [ 'shape' => 'String', 'locationName' => 'logGroupArn', ], 'LogOutputFormat' => [ 'shape' => 'String', 'locationName' => 'logOutputFormat', ], 'BgpLogEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'bgpLogEnabled', ], 'BgpLogGroupArn' => [ 'shape' => 'String', 'locationName' => 'bgpLogGroupArn', ], 'BgpLogOutputFormat' => [ 'shape' => 'String', 'locationName' => 'bgpLogOutputFormat', ], ], ], 'CloudWatchLogOptionsSpecification' => [ 'type' => 'structure', 'members' => [ 'LogEnabled' => [ 'shape' => 'Boolean', ], 'LogGroupArn' => [ 'shape' => 'CloudWatchLogGroupArn', ], 'LogOutputFormat' => [ 'shape' => 'String', ], 'BgpLogEnabled' => [ 'shape' => 'Boolean', ], 'BgpLogGroupArn' => [ 'shape' => 'CloudWatchLogGroupArn', ], 'BgpLogOutputFormat' => [ 'shape' => 'String', ], ], ], 'CoipAddressUsage' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'AwsAccountId' => [ 'shape' => 'String', 'locationName' => 'awsAccountId', ], 'AwsService' => [ 'shape' => 'String', 'locationName' => 'awsService', ], 'CoIp' => [ 'shape' => 'String', 'locationName' => 'coIp', ], ], ], 'CoipAddressUsageSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CoipAddressUsage', 'locationName' => 'item', ], ], 'CoipCidr' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'CoipPoolId' => [ 'shape' => 'Ipv4PoolCoipId', 'locationName' => 'coipPoolId', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'localGatewayRouteTableId', ], ], ], 'CoipPool' => [ 'type' => 'structure', 'members' => [ 'PoolId' => [ 'shape' => 'Ipv4PoolCoipId', 'locationName' => 'poolId', ], 'PoolCidrs' => [ 'shape' => 'ValueStringList', 'locationName' => 'poolCidrSet', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', 'locationName' => 'localGatewayRouteTableId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'PoolArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'poolArn', ], ], ], 'CoipPoolId' => [ 'type' => 'string', ], 'CoipPoolIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv4PoolCoipId', 'locationName' => 'item', ], ], 'CoipPoolMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'CoipPoolSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CoipPool', 'locationName' => 'item', ], ], 'Comparison' => [ 'type' => 'string', 'enum' => [ 'equals', 'in', ], ], 'ComponentAccount' => [ 'type' => 'string', 'pattern' => '\\d{12}', ], 'ComponentRegion' => [ 'type' => 'string', 'pattern' => '[a-z]{2}-[a-z]+-[1-9]+', ], 'ConditionValue' => [ 'type' => 'string', 'max' => 300, 'min' => 0, ], 'ConditionValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConditionValue', 'locationName' => 'item', ], 'max' => 10, 'min' => 0, ], 'ConfirmProductInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'ProductCode', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'ProductCode' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ConfirmProductInstanceResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], ], ], 'ConnectionLogOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'CloudwatchLogGroup' => [ 'shape' => 'String', ], 'CloudwatchLogStream' => [ 'shape' => 'String', ], ], ], 'ConnectionLogResponseOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'CloudwatchLogGroup' => [ 'shape' => 'String', ], 'CloudwatchLogStream' => [ 'shape' => 'String', ], ], ], 'ConnectionNotification' => [ 'type' => 'structure', 'members' => [ 'ConnectionNotificationId' => [ 'shape' => 'String', 'locationName' => 'connectionNotificationId', ], 'ServiceId' => [ 'shape' => 'String', 'locationName' => 'serviceId', ], 'VpcEndpointId' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointId', ], 'ConnectionNotificationType' => [ 'shape' => 'ConnectionNotificationType', 'locationName' => 'connectionNotificationType', ], 'ConnectionNotificationArn' => [ 'shape' => 'String', 'locationName' => 'connectionNotificationArn', ], 'ConnectionEvents' => [ 'shape' => 'ValueStringList', 'locationName' => 'connectionEvents', ], 'ConnectionNotificationState' => [ 'shape' => 'ConnectionNotificationState', 'locationName' => 'connectionNotificationState', ], 'ServiceRegion' => [ 'shape' => 'String', 'locationName' => 'serviceRegion', ], ], ], 'ConnectionNotificationId' => [ 'type' => 'string', ], 'ConnectionNotificationIdsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConnectionNotificationId', 'locationName' => 'item', ], ], 'ConnectionNotificationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConnectionNotification', 'locationName' => 'item', ], ], 'ConnectionNotificationState' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'ConnectionNotificationType' => [ 'type' => 'string', 'enum' => [ 'Topic', ], ], 'ConnectionTrackingConfiguration' => [ 'type' => 'structure', 'members' => [ 'TcpEstablishedTimeout' => [ 'shape' => 'Integer', 'locationName' => 'tcpEstablishedTimeout', ], 'UdpStreamTimeout' => [ 'shape' => 'Integer', 'locationName' => 'udpStreamTimeout', ], 'UdpTimeout' => [ 'shape' => 'Integer', 'locationName' => 'udpTimeout', ], ], ], 'ConnectionTrackingSpecification' => [ 'type' => 'structure', 'members' => [ 'TcpEstablishedTimeout' => [ 'shape' => 'Integer', 'locationName' => 'tcpEstablishedTimeout', ], 'UdpTimeout' => [ 'shape' => 'Integer', 'locationName' => 'udpTimeout', ], 'UdpStreamTimeout' => [ 'shape' => 'Integer', 'locationName' => 'udpStreamTimeout', ], ], ], 'ConnectionTrackingSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'TcpEstablishedTimeout' => [ 'shape' => 'Integer', ], 'UdpStreamTimeout' => [ 'shape' => 'Integer', ], 'UdpTimeout' => [ 'shape' => 'Integer', ], ], ], 'ConnectionTrackingSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'TcpEstablishedTimeout' => [ 'shape' => 'Integer', 'locationName' => 'tcpEstablishedTimeout', ], 'UdpStreamTimeout' => [ 'shape' => 'Integer', 'locationName' => 'udpStreamTimeout', ], 'UdpTimeout' => [ 'shape' => 'Integer', 'locationName' => 'udpTimeout', ], ], ], 'ConnectivityType' => [ 'type' => 'string', 'enum' => [ 'private', 'public', ], ], 'ContainerFormat' => [ 'type' => 'string', 'enum' => [ 'ova', ], ], 'ConversionIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConversionTaskId', 'locationName' => 'item', ], ], 'ConversionTask' => [ 'type' => 'structure', 'members' => [ 'ConversionTaskId' => [ 'shape' => 'String', 'locationName' => 'conversionTaskId', ], 'ExpirationTime' => [ 'shape' => 'String', 'locationName' => 'expirationTime', ], 'ImportInstance' => [ 'shape' => 'ImportInstanceTaskDetails', 'locationName' => 'importInstance', ], 'ImportVolume' => [ 'shape' => 'ImportVolumeTaskDetails', 'locationName' => 'importVolume', ], 'State' => [ 'shape' => 'ConversionTaskState', 'locationName' => 'state', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ConversionTaskId' => [ 'type' => 'string', ], 'ConversionTaskState' => [ 'type' => 'string', 'enum' => [ 'active', 'cancelling', 'cancelled', 'completed', ], ], 'CoolOffPeriodRequestHours' => [ 'type' => 'integer', 'max' => 72, 'min' => 1, ], 'CoolOffPeriodResponseHours' => [ 'type' => 'integer', ], 'CopyFpgaImageRequest' => [ 'type' => 'structure', 'required' => [ 'SourceFpgaImageId', 'SourceRegion', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'SourceFpgaImageId' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], 'SourceRegion' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', ], ], ], 'CopyFpgaImageResult' => [ 'type' => 'structure', 'members' => [ 'FpgaImageId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageId', ], ], ], 'CopyImageClientToken' => [ 'type' => 'string', 'max' => 128, 'min' => 0, ], 'CopyImageRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'SourceImageId', 'SourceRegion', ], 'members' => [ 'ClientToken' => [ 'shape' => 'CopyImageClientToken', 'idempotencyToken' => true, ], 'Description' => [ 'shape' => 'ImageDescriptionRequest', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', 'locationName' => 'kmsKeyId', ], 'Name' => [ 'shape' => 'ImageNameRequest', ], 'SourceImageId' => [ 'shape' => 'String', ], 'SourceRegion' => [ 'shape' => 'String', ], 'DestinationOutpostArn' => [ 'shape' => 'String', ], 'CopyImageTags' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'SnapshotCopyCompletionDurationMinutes' => [ 'shape' => 'Long', ], 'DestinationAvailabilityZone' => [ 'shape' => 'String', ], 'DestinationAvailabilityZoneId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CopyImageResult' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], ], ], 'CopySnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'SourceRegion', 'SourceSnapshotId', ], 'members' => [ 'Description' => [ 'shape' => 'String', ], 'DestinationOutpostArn' => [ 'shape' => 'String', ], 'DestinationRegion' => [ 'shape' => 'String', 'locationName' => 'destinationRegion', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', 'locationName' => 'kmsKeyId', ], 'PresignedUrl' => [ 'shape' => 'CopySnapshotRequestPSU', 'locationName' => 'presignedUrl', ], 'SourceRegion' => [ 'shape' => 'String', ], 'SourceSnapshotId' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'CompletionDurationMinutes' => [ 'shape' => 'SnapshotCompletionDurationMinutesRequest', ], 'DestinationAvailabilityZone' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CopySnapshotRequestPSU' => [ 'type' => 'string', 'sensitive' => true, ], 'CopySnapshotResult' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], ], ], 'CopyTagsFromSource' => [ 'type' => 'string', 'enum' => [ 'volume', ], ], 'CopyVolumesRequest' => [ 'type' => 'structure', 'required' => [ 'SourceVolumeId', ], 'members' => [ 'SourceVolumeId' => [ 'shape' => 'VolumeId', ], 'Iops' => [ 'shape' => 'Integer', ], 'Size' => [ 'shape' => 'Integer', ], 'VolumeType' => [ 'shape' => 'VolumeType', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'MultiAttachEnabled' => [ 'shape' => 'Boolean', ], 'Throughput' => [ 'shape' => 'Integer', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CopyVolumesResult' => [ 'type' => 'structure', 'members' => [ 'Volumes' => [ 'shape' => 'VolumeList', 'locationName' => 'volumeSet', ], ], ], 'CoreCount' => [ 'type' => 'integer', ], 'CoreCountList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CoreCount', 'locationName' => 'item', ], ], 'CoreNetworkArn' => [ 'type' => 'string', ], 'CpuManufacturer' => [ 'type' => 'string', 'enum' => [ 'intel', 'amd', 'amazon-web-services', 'apple', ], ], 'CpuManufacturerName' => [ 'type' => 'string', ], 'CpuManufacturerSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CpuManufacturer', 'locationName' => 'item', ], ], 'CpuOptions' => [ 'type' => 'structure', 'members' => [ 'CoreCount' => [ 'shape' => 'Integer', 'locationName' => 'coreCount', ], 'ThreadsPerCore' => [ 'shape' => 'Integer', 'locationName' => 'threadsPerCore', ], 'AmdSevSnp' => [ 'shape' => 'AmdSevSnpSpecification', 'locationName' => 'amdSevSnp', ], 'NestedVirtualization' => [ 'shape' => 'NestedVirtualizationSpecification', 'locationName' => 'nestedVirtualization', ], ], ], 'CpuOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'CoreCount' => [ 'shape' => 'Integer', ], 'ThreadsPerCore' => [ 'shape' => 'Integer', ], 'AmdSevSnp' => [ 'shape' => 'AmdSevSnpSpecification', ], 'NestedVirtualization' => [ 'shape' => 'NestedVirtualizationSpecification', ], ], ], 'CpuPerformanceFactor' => [ 'type' => 'structure', 'members' => [ 'References' => [ 'shape' => 'PerformanceFactorReferenceSet', 'locationName' => 'referenceSet', ], ], ], 'CpuPerformanceFactorRequest' => [ 'type' => 'structure', 'members' => [ 'References' => [ 'shape' => 'PerformanceFactorReferenceSetRequest', 'locationName' => 'Reference', ], ], ], 'CreateCapacityManagerDataExportRequest' => [ 'type' => 'structure', 'required' => [ 'S3BucketName', 'Schedule', 'OutputFormat', ], 'members' => [ 'S3BucketName' => [ 'shape' => 'String', ], 'S3BucketPrefix' => [ 'shape' => 'String', ], 'Schedule' => [ 'shape' => 'Schedule', ], 'OutputFormat' => [ 'shape' => 'OutputFormat', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateCapacityManagerDataExportResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerDataExportId' => [ 'shape' => 'CapacityManagerDataExportId', 'locationName' => 'capacityManagerDataExportId', ], ], ], 'CreateCapacityReservationBySplittingRequest' => [ 'type' => 'structure', 'required' => [ 'SourceCapacityReservationId', 'InstanceCount', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'SourceCapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateCapacityReservationBySplittingResult' => [ 'type' => 'structure', 'members' => [ 'SourceCapacityReservation' => [ 'shape' => 'CapacityReservation', 'locationName' => 'sourceCapacityReservation', ], 'DestinationCapacityReservation' => [ 'shape' => 'CapacityReservation', 'locationName' => 'destinationCapacityReservation', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], ], ], 'CreateCapacityReservationCancellationQuoteRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', ], 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateCapacityReservationCancellationQuoteResult' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationCancellationQuote' => [ 'shape' => 'CapacityReservationCancellationQuote', 'locationName' => 'capacityReservationCancellationQuote', ], ], ], 'CreateCapacityReservationFleetRequest' => [ 'type' => 'structure', 'required' => [ 'TotalTargetCapacity', ], 'members' => [ 'AllocationStrategy' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'InstanceTypeSpecifications' => [ 'shape' => 'ReservationFleetInstanceSpecificationList', 'locationName' => 'InstanceTypeSpecification', ], 'Tenancy' => [ 'shape' => 'FleetCapacityReservationTenancy', ], 'TotalTargetCapacity' => [ 'shape' => 'Integer', ], 'EndDate' => [ 'shape' => 'MillisecondDateTime', ], 'InstanceMatchCriteria' => [ 'shape' => 'FleetInstanceMatchCriteria', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateCapacityReservationFleetResult' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationFleetId' => [ 'shape' => 'CapacityReservationFleetId', 'locationName' => 'capacityReservationFleetId', ], 'State' => [ 'shape' => 'CapacityReservationFleetState', 'locationName' => 'state', ], 'TotalTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalTargetCapacity', ], 'TotalFulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'totalFulfilledCapacity', ], 'InstanceMatchCriteria' => [ 'shape' => 'FleetInstanceMatchCriteria', 'locationName' => 'instanceMatchCriteria', ], 'AllocationStrategy' => [ 'shape' => 'String', 'locationName' => 'allocationStrategy', ], 'CreateTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createTime', ], 'EndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'endDate', ], 'Tenancy' => [ 'shape' => 'FleetCapacityReservationTenancy', 'locationName' => 'tenancy', ], 'FleetCapacityReservations' => [ 'shape' => 'FleetCapacityReservationSet', 'locationName' => 'fleetCapacityReservationSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'CreateCapacityReservationRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceType', 'InstancePlatform', 'InstanceCount', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', ], 'InstanceType' => [ 'shape' => 'String', ], 'InstancePlatform' => [ 'shape' => 'CapacityReservationInstancePlatform', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'Tenancy' => [ 'shape' => 'CapacityReservationTenancy', ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'EbsOptimized' => [ 'shape' => 'Boolean', ], 'EphemeralStorage' => [ 'shape' => 'Boolean', ], 'EndDate' => [ 'shape' => 'DateTime', ], 'EndDateType' => [ 'shape' => 'EndDateType', ], 'InstanceMatchCriteria' => [ 'shape' => 'InstanceMatchCriteria', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'OutpostArn' => [ 'shape' => 'OutpostArn', ], 'PlacementGroupArn' => [ 'shape' => 'PlacementGroupArn', ], 'StartDate' => [ 'shape' => 'MillisecondDateTime', ], 'CommitmentDuration' => [ 'shape' => 'CapacityReservationCommitmentDuration', ], 'DeliveryPreference' => [ 'shape' => 'CapacityReservationDeliveryPreference', ], ], ], 'CreateCapacityReservationResult' => [ 'type' => 'structure', 'members' => [ 'CapacityReservation' => [ 'shape' => 'CapacityReservation', 'locationName' => 'capacityReservation', ], ], ], 'CreateCarrierGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateCarrierGatewayResult' => [ 'type' => 'structure', 'members' => [ 'CarrierGateway' => [ 'shape' => 'CarrierGateway', 'locationName' => 'carrierGateway', ], ], ], 'CreateClientVpnEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'ServerCertificateArn', 'AuthenticationOptions', 'ConnectionLogOptions', ], 'members' => [ 'ClientCidrBlock' => [ 'shape' => 'String', ], 'ServerCertificateArn' => [ 'shape' => 'String', ], 'AuthenticationOptions' => [ 'shape' => 'ClientVpnAuthenticationRequestList', 'locationName' => 'Authentication', ], 'ConnectionLogOptions' => [ 'shape' => 'ConnectionLogOptions', ], 'DnsServers' => [ 'shape' => 'ValueStringList', ], 'TransportProtocol' => [ 'shape' => 'TransportProtocol', ], 'VpnPort' => [ 'shape' => 'Integer', ], 'Description' => [ 'shape' => 'String', ], 'SplitTunnel' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'SecurityGroupIds' => [ 'shape' => 'ClientVpnSecurityGroupIdSet', 'locationName' => 'SecurityGroupId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'SelfServicePortal' => [ 'shape' => 'SelfServicePortal', ], 'ClientConnectOptions' => [ 'shape' => 'ClientConnectOptions', ], 'SessionTimeoutHours' => [ 'shape' => 'Integer', ], 'ClientLoginBannerOptions' => [ 'shape' => 'ClientLoginBannerOptions', ], 'ClientRouteEnforcementOptions' => [ 'shape' => 'ClientRouteEnforcementOptions', ], 'DisconnectOnSessionTimeout' => [ 'shape' => 'Boolean', ], 'EndpointIpAddressType' => [ 'shape' => 'EndpointIpAddressType', ], 'TrafficIpAddressType' => [ 'shape' => 'TrafficIpAddressType', ], 'TransitGatewayConfiguration' => [ 'shape' => 'TransitGatewayConfigurationInputStructure', ], ], ], 'CreateClientVpnEndpointResult' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Status' => [ 'shape' => 'ClientVpnEndpointStatus', 'locationName' => 'status', ], 'DnsName' => [ 'shape' => 'String', 'locationName' => 'dnsName', ], ], ], 'CreateClientVpnRouteRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'DestinationCidrBlock', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'TargetVpcSubnetId' => [ 'shape' => 'SubnetId', ], 'Description' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateClientVpnRouteResult' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ClientVpnRouteStatus', 'locationName' => 'status', ], ], ], 'CreateCoipCidrRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', 'CoipPoolId', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'CoipPoolId' => [ 'shape' => 'Ipv4PoolCoipId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateCoipCidrResult' => [ 'type' => 'structure', 'members' => [ 'CoipCidr' => [ 'shape' => 'CoipCidr', 'locationName' => 'coipCidr', ], ], ], 'CreateCoipPoolRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableId', ], 'members' => [ 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateCoipPoolResult' => [ 'type' => 'structure', 'members' => [ 'CoipPool' => [ 'shape' => 'CoipPool', 'locationName' => 'coipPool', ], ], ], 'CreateCustomerGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'BgpAsn' => [ 'shape' => 'Integer', ], 'PublicIp' => [ 'shape' => 'String', ], 'CertificateArn' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'GatewayType', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DeviceName' => [ 'shape' => 'String', ], 'IpAddress' => [ 'shape' => 'String', ], 'BgpAsnExtended' => [ 'shape' => 'Long', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateCustomerGatewayResult' => [ 'type' => 'structure', 'members' => [ 'CustomerGateway' => [ 'shape' => 'CustomerGateway', 'locationName' => 'customerGateway', ], ], ], 'CreateDefaultSubnetRequest' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Ipv6Native' => [ 'shape' => 'Boolean', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], ], ], 'CreateDefaultSubnetResult' => [ 'type' => 'structure', 'members' => [ 'Subnet' => [ 'shape' => 'Subnet', 'locationName' => 'subnet', ], ], ], 'CreateDefaultVpcRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateDefaultVpcResult' => [ 'type' => 'structure', 'members' => [ 'Vpc' => [ 'shape' => 'Vpc', 'locationName' => 'vpc', ], ], ], 'CreateDelegateMacVolumeOwnershipTaskRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'MacCredentials', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'MacCredentials' => [ 'shape' => 'SensitiveMacCredentials', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateDelegateMacVolumeOwnershipTaskResult' => [ 'type' => 'structure', 'members' => [ 'MacModificationTask' => [ 'shape' => 'MacModificationTask', 'locationName' => 'macModificationTask', ], ], ], 'CreateDhcpOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'DhcpConfigurations', ], 'members' => [ 'DhcpConfigurations' => [ 'shape' => 'NewDhcpConfigurationList', 'locationName' => 'dhcpConfiguration', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateDhcpOptionsResult' => [ 'type' => 'structure', 'members' => [ 'DhcpOptions' => [ 'shape' => 'DhcpOptions', 'locationName' => 'dhcpOptions', ], ], ], 'CreateEgressOnlyInternetGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateEgressOnlyInternetGatewayResult' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'EgressOnlyInternetGateway' => [ 'shape' => 'EgressOnlyInternetGateway', 'locationName' => 'egressOnlyInternetGateway', ], ], ], 'CreateFleetError' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateAndOverrides' => [ 'shape' => 'LaunchTemplateAndOverridesResponse', 'locationName' => 'launchTemplateAndOverrides', ], 'Lifecycle' => [ 'shape' => 'InstanceLifecycle', 'locationName' => 'lifecycle', ], 'ErrorCode' => [ 'shape' => 'String', 'locationName' => 'errorCode', ], 'ErrorMessage' => [ 'shape' => 'String', 'locationName' => 'errorMessage', ], ], ], 'CreateFleetErrorsSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CreateFleetError', 'locationName' => 'item', ], ], 'CreateFleetInstance' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateAndOverrides' => [ 'shape' => 'LaunchTemplateAndOverridesResponse', 'locationName' => 'launchTemplateAndOverrides', ], 'Lifecycle' => [ 'shape' => 'InstanceLifecycle', 'locationName' => 'lifecycle', ], 'InstanceIds' => [ 'shape' => 'InstanceIdsSet', 'locationName' => 'instanceIds', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], ], ], 'CreateFleetInstancesSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CreateFleetInstance', 'locationName' => 'item', ], ], 'CreateFleetRequest' => [ 'type' => 'structure', 'required' => [ 'LaunchTemplateConfigs', 'TargetCapacitySpecification', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'SpotOptions' => [ 'shape' => 'SpotOptionsRequest', ], 'OnDemandOptions' => [ 'shape' => 'OnDemandOptionsRequest', ], 'ReservedCapacityOptions' => [ 'shape' => 'ReservedCapacityOptionsRequest', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'FleetExcessCapacityTerminationPolicy', ], 'LaunchTemplateConfigs' => [ 'shape' => 'FleetLaunchTemplateConfigListRequest', ], 'TargetCapacitySpecification' => [ 'shape' => 'TargetCapacitySpecificationRequest', ], 'TerminateInstancesWithExpiration' => [ 'shape' => 'Boolean', ], 'Type' => [ 'shape' => 'FleetType', ], 'ValidFrom' => [ 'shape' => 'DateTime', ], 'ValidUntil' => [ 'shape' => 'DateTime', ], 'ReplaceUnhealthyInstances' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'Context' => [ 'shape' => 'String', ], ], ], 'CreateFleetResult' => [ 'type' => 'structure', 'members' => [ 'FleetId' => [ 'shape' => 'FleetId', 'locationName' => 'fleetId', ], 'Errors' => [ 'shape' => 'CreateFleetErrorsSet', 'locationName' => 'errorSet', ], 'Instances' => [ 'shape' => 'CreateFleetInstancesSet', 'locationName' => 'fleetInstanceSet', ], ], ], 'CreateFlowLogsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIds', 'ResourceType', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', ], 'DeliverLogsPermissionArn' => [ 'shape' => 'String', ], 'DeliverCrossAccountRole' => [ 'shape' => 'String', ], 'LogGroupName' => [ 'shape' => 'String', ], 'ResourceIds' => [ 'shape' => 'FlowLogResourceIds', 'locationName' => 'ResourceId', ], 'ResourceType' => [ 'shape' => 'FlowLogsResourceType', ], 'TrafficType' => [ 'shape' => 'TrafficType', ], 'LogDestinationType' => [ 'shape' => 'LogDestinationType', ], 'LogDestination' => [ 'shape' => 'String', ], 'LogFormat' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'MaxAggregationInterval' => [ 'shape' => 'Integer', ], 'DestinationOptions' => [ 'shape' => 'DestinationOptionsRequest', ], 'TagFieldSpecifications' => [ 'shape' => 'TagFieldSpecificationListRequest', 'locationName' => 'TagFieldSpecification', ], ], ], 'CreateFlowLogsResult' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'FlowLogIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'flowLogIdSet', ], 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'CreateFpgaImageRequest' => [ 'type' => 'structure', 'required' => [ 'InputStorageLocation', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InputStorageLocation' => [ 'shape' => 'StorageLocation', ], 'LogsStorageLocation' => [ 'shape' => 'StorageLocation', ], 'Description' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateFpgaImageResult' => [ 'type' => 'structure', 'members' => [ 'FpgaImageId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageId', ], 'FpgaImageGlobalId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageGlobalId', ], ], ], 'CreateImageRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'Name', ], 'members' => [ 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'SnapshotLocation' => [ 'shape' => 'SnapshotLocationEnum', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'Name' => [ 'shape' => 'ImageNameRequest', 'locationName' => 'name', ], 'Description' => [ 'shape' => 'ImageDescriptionRequest', 'locationName' => 'description', ], 'NoReboot' => [ 'shape' => 'Boolean', 'locationName' => 'noReboot', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingRequestList', 'locationName' => 'blockDeviceMapping', ], ], ], 'CreateImageResult' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], ], ], 'CreateImageUsageReportClientToken' => [ 'type' => 'string', 'max' => 128, 'min' => 0, ], 'CreateImageUsageReportRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', 'ResourceTypes', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ResourceTypes' => [ 'shape' => 'ImageUsageResourceTypeRequestList', 'locationName' => 'ResourceType', ], 'AccountIds' => [ 'shape' => 'ImageUsageReportUserIdStringList', 'locationName' => 'AccountId', ], 'ClientToken' => [ 'shape' => 'CreateImageUsageReportClientToken', 'idempotencyToken' => true, ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateImageUsageReportResult' => [ 'type' => 'structure', 'members' => [ 'ReportId' => [ 'shape' => 'ImageUsageReportId', 'locationName' => 'reportId', ], ], ], 'CreateInstanceConnectEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdStringListRequest', 'locationName' => 'SecurityGroupId', ], 'PreserveClientIp' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', ], ], ], 'CreateInstanceConnectEndpointResult' => [ 'type' => 'structure', 'members' => [ 'InstanceConnectEndpoint' => [ 'shape' => 'Ec2InstanceConnectEndpoint', 'locationName' => 'instanceConnectEndpoint', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateInstanceEventWindowRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Name' => [ 'shape' => 'String', ], 'TimeRanges' => [ 'shape' => 'InstanceEventWindowTimeRangeRequestSet', 'locationName' => 'TimeRange', ], 'CronExpression' => [ 'shape' => 'InstanceEventWindowCronExpression', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateInstanceEventWindowResult' => [ 'type' => 'structure', 'members' => [ 'InstanceEventWindow' => [ 'shape' => 'InstanceEventWindow', 'locationName' => 'instanceEventWindow', ], ], ], 'CreateInstanceExportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'TargetEnvironment', 'ExportToS3Task', ], 'members' => [ 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'TargetEnvironment' => [ 'shape' => 'ExportEnvironment', 'locationName' => 'targetEnvironment', ], 'ExportToS3Task' => [ 'shape' => 'ExportToS3TaskSpecification', 'locationName' => 'exportToS3', ], ], ], 'CreateInstanceExportTaskResult' => [ 'type' => 'structure', 'members' => [ 'ExportTask' => [ 'shape' => 'ExportTask', 'locationName' => 'exportTask', ], ], ], 'CreateInternetGatewayRequest' => [ 'type' => 'structure', 'members' => [ 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateInternetGatewayResult' => [ 'type' => 'structure', 'members' => [ 'InternetGateway' => [ 'shape' => 'InternetGateway', 'locationName' => 'internetGateway', ], ], ], 'CreateInterruptibleCapacityReservationAllocationRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', 'InstanceCount', ], 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateInterruptibleCapacityReservationAllocationResult' => [ 'type' => 'structure', 'members' => [ 'SourceCapacityReservationId' => [ 'shape' => 'CapacityReservationId', 'locationName' => 'sourceCapacityReservationId', ], 'TargetInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'targetInstanceCount', ], 'Status' => [ 'shape' => 'InterruptibleCapacityReservationAllocationStatus', 'locationName' => 'status', ], 'InterruptionType' => [ 'shape' => 'InterruptionType', 'locationName' => 'interruptionType', ], ], ], 'CreateIpamExternalResourceVerificationTokenRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamId' => [ 'shape' => 'IpamId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateIpamExternalResourceVerificationTokenResult' => [ 'type' => 'structure', 'members' => [ 'IpamExternalResourceVerificationToken' => [ 'shape' => 'IpamExternalResourceVerificationToken', 'locationName' => 'ipamExternalResourceVerificationToken', ], ], ], 'CreateIpamPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'IpamId' => [ 'shape' => 'IpamId', ], ], ], 'CreateIpamPolicyResult' => [ 'type' => 'structure', 'members' => [ 'IpamPolicy' => [ 'shape' => 'IpamPolicy', 'locationName' => 'ipamPolicy', ], ], ], 'CreateIpamPoolRequest' => [ 'type' => 'structure', 'required' => [ 'IpamScopeId', 'AddressFamily', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', ], 'Locale' => [ 'shape' => 'String', ], 'SourceIpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Description' => [ 'shape' => 'String', ], 'AddressFamily' => [ 'shape' => 'AddressFamily', ], 'AutoImport' => [ 'shape' => 'Boolean', ], 'PubliclyAdvertisable' => [ 'shape' => 'Boolean', ], 'AllocationMinNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', ], 'AllocationMaxNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', ], 'AllocationDefaultNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', ], 'AllocationResourceTags' => [ 'shape' => 'RequestIpamResourceTagList', 'locationName' => 'AllocationResourceTag', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'AwsService' => [ 'shape' => 'IpamPoolAwsService', ], 'PublicIpSource' => [ 'shape' => 'IpamPoolPublicIpSource', ], 'SourceResource' => [ 'shape' => 'IpamPoolSourceResourceRequest', ], ], ], 'CreateIpamPoolResult' => [ 'type' => 'structure', 'members' => [ 'IpamPool' => [ 'shape' => 'IpamPool', 'locationName' => 'ipamPool', ], ], ], 'CreateIpamPrefixListResolverRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', 'AddressFamily', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamId' => [ 'shape' => 'IpamId', ], 'Description' => [ 'shape' => 'String', ], 'AddressFamily' => [ 'shape' => 'AddressFamily', ], 'Rules' => [ 'shape' => 'IpamPrefixListResolverRuleRequestSet', 'locationName' => 'Rule', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateIpamPrefixListResolverResult' => [ 'type' => 'structure', 'members' => [ 'IpamPrefixListResolver' => [ 'shape' => 'IpamPrefixListResolver', 'locationName' => 'ipamPrefixListResolver', ], ], ], 'CreateIpamPrefixListResolverTargetRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPrefixListResolverId', 'PrefixListId', 'PrefixListRegion', 'TrackLatestVersion', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', ], 'PrefixListId' => [ 'shape' => 'String', ], 'PrefixListRegion' => [ 'shape' => 'String', ], 'DesiredVersion' => [ 'shape' => 'BoxedLong', ], 'TrackLatestVersion' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateIpamPrefixListResolverTargetResult' => [ 'type' => 'structure', 'members' => [ 'IpamPrefixListResolverTarget' => [ 'shape' => 'IpamPrefixListResolverTarget', 'locationName' => 'ipamPrefixListResolverTarget', ], ], ], 'CreateIpamRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Description' => [ 'shape' => 'String', ], 'OperatingRegions' => [ 'shape' => 'AddIpamOperatingRegionSet', 'locationName' => 'OperatingRegion', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'Tier' => [ 'shape' => 'IpamTier', ], 'EnablePrivateGua' => [ 'shape' => 'Boolean', ], 'MeteredAccount' => [ 'shape' => 'IpamMeteredAccount', ], ], ], 'CreateIpamResourceDiscoveryRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Description' => [ 'shape' => 'String', ], 'OperatingRegions' => [ 'shape' => 'AddIpamOperatingRegionSet', 'locationName' => 'OperatingRegion', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateIpamResourceDiscoveryResult' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscovery' => [ 'shape' => 'IpamResourceDiscovery', 'locationName' => 'ipamResourceDiscovery', ], ], ], 'CreateIpamResult' => [ 'type' => 'structure', 'members' => [ 'Ipam' => [ 'shape' => 'Ipam', 'locationName' => 'ipam', ], ], ], 'CreateIpamScopeRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamId' => [ 'shape' => 'IpamId', ], 'Description' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'ExternalAuthorityConfiguration' => [ 'shape' => 'ExternalAuthorityConfiguration', ], ], ], 'CreateIpamScopeResult' => [ 'type' => 'structure', 'members' => [ 'IpamScope' => [ 'shape' => 'IpamScope', 'locationName' => 'ipamScope', ], ], ], 'CreateKeyPairRequest' => [ 'type' => 'structure', 'required' => [ 'KeyName', ], 'members' => [ 'KeyName' => [ 'shape' => 'String', ], 'KeyType' => [ 'shape' => 'KeyType', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'KeyFormat' => [ 'shape' => 'KeyFormat', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateLaunchTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'LaunchTemplateName', 'LaunchTemplateData', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'LaunchTemplateName' => [ 'shape' => 'String', ], 'VersionDescription' => [ 'shape' => 'VersionDescription', ], 'LaunchTemplateData' => [ 'shape' => 'RequestLaunchTemplateData', ], 'Operator' => [ 'shape' => 'OperatorRequest', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateLaunchTemplateResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplate' => [ 'shape' => 'LaunchTemplate', 'locationName' => 'launchTemplate', ], 'Warning' => [ 'shape' => 'ValidationWarning', 'locationName' => 'warning', ], ], ], 'CreateLaunchTemplateVersionRequest' => [ 'type' => 'structure', 'required' => [ 'LaunchTemplateData', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'SourceVersion' => [ 'shape' => 'String', ], 'VersionDescription' => [ 'shape' => 'VersionDescription', ], 'LaunchTemplateData' => [ 'shape' => 'RequestLaunchTemplateData', ], 'ResolveAlias' => [ 'shape' => 'Boolean', ], ], ], 'CreateLaunchTemplateVersionResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateVersion' => [ 'shape' => 'LaunchTemplateVersion', 'locationName' => 'launchTemplateVersion', ], 'Warning' => [ 'shape' => 'ValidationWarning', 'locationName' => 'warning', ], ], ], 'CreateLocalGatewayRouteRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', ], 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'DestinationPrefixListId' => [ 'shape' => 'PrefixListResourceId', ], ], ], 'CreateLocalGatewayRouteResult' => [ 'type' => 'structure', 'members' => [ 'Route' => [ 'shape' => 'LocalGatewayRoute', 'locationName' => 'route', ], ], ], 'CreateLocalGatewayRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayId', ], 'members' => [ 'LocalGatewayId' => [ 'shape' => 'LocalGatewayId', ], 'Mode' => [ 'shape' => 'LocalGatewayRouteTableMode', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateLocalGatewayRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTable' => [ 'shape' => 'LocalGatewayRouteTable', 'locationName' => 'localGatewayRouteTable', ], ], ], 'CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableId', 'LocalGatewayVirtualInterfaceGroupId', ], 'members' => [ 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', ], 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVirtualInterfaceGroupAssociation' => [ 'shape' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociation', 'locationName' => 'localGatewayRouteTableVirtualInterfaceGroupAssociation', ], ], ], 'CreateLocalGatewayRouteTableVpcAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableId', 'VpcId', ], 'members' => [ 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateLocalGatewayRouteTableVpcAssociationResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVpcAssociation' => [ 'shape' => 'LocalGatewayRouteTableVpcAssociation', 'locationName' => 'localGatewayRouteTableVpcAssociation', ], ], ], 'CreateLocalGatewayVirtualInterfaceGroupRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayId', ], 'members' => [ 'LocalGatewayId' => [ 'shape' => 'LocalGatewayId', ], 'LocalBgpAsn' => [ 'shape' => 'Integer', ], 'LocalBgpAsnExtended' => [ 'shape' => 'Long', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateLocalGatewayVirtualInterfaceGroupResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterfaceGroup' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroup', 'locationName' => 'localGatewayVirtualInterfaceGroup', ], ], ], 'CreateLocalGatewayVirtualInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayVirtualInterfaceGroupId', 'OutpostLagId', 'Vlan', 'LocalAddress', 'PeerAddress', ], 'members' => [ 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', ], 'OutpostLagId' => [ 'shape' => 'OutpostLagId', ], 'Vlan' => [ 'shape' => 'Integer', ], 'LocalAddress' => [ 'shape' => 'String', ], 'PeerAddress' => [ 'shape' => 'String', ], 'PeerBgpAsn' => [ 'shape' => 'Integer', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'PeerBgpAsnExtended' => [ 'shape' => 'Long', ], ], ], 'CreateLocalGatewayVirtualInterfaceResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterface' => [ 'shape' => 'LocalGatewayVirtualInterface', 'locationName' => 'localGatewayVirtualInterface', ], ], ], 'CreateMacSystemIntegrityProtectionModificationTaskRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'MacSystemIntegrityProtectionStatus', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'MacCredentials' => [ 'shape' => 'SensitiveMacCredentials', ], 'MacSystemIntegrityProtectionConfiguration' => [ 'shape' => 'MacSystemIntegrityProtectionConfigurationRequest', ], 'MacSystemIntegrityProtectionStatus' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateMacSystemIntegrityProtectionModificationTaskResult' => [ 'type' => 'structure', 'members' => [ 'MacModificationTask' => [ 'shape' => 'MacModificationTask', 'locationName' => 'macModificationTask', ], ], ], 'CreateManagedPrefixListRequest' => [ 'type' => 'structure', 'required' => [ 'PrefixListName', 'MaxEntries', 'AddressFamily', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'PrefixListName' => [ 'shape' => 'String', ], 'Entries' => [ 'shape' => 'AddPrefixListEntries', 'locationName' => 'Entry', ], 'MaxEntries' => [ 'shape' => 'Integer', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'AddressFamily' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateManagedPrefixListResult' => [ 'type' => 'structure', 'members' => [ 'PrefixList' => [ 'shape' => 'ManagedPrefixList', 'locationName' => 'prefixList', ], ], ], 'CreateNatGatewayRequest' => [ 'type' => 'structure', 'members' => [ 'AvailabilityMode' => [ 'shape' => 'AvailabilityMode', ], 'AllocationId' => [ 'shape' => 'AllocationId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'AvailabilityZoneAddresses' => [ 'shape' => 'AvailabilityZoneAddresses', 'locationName' => 'AvailabilityZoneAddress', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ConnectivityType' => [ 'shape' => 'ConnectivityType', ], 'PrivateIpAddress' => [ 'shape' => 'String', ], 'SecondaryAllocationIds' => [ 'shape' => 'AllocationIdList', 'locationName' => 'SecondaryAllocationId', ], 'SecondaryPrivateIpAddresses' => [ 'shape' => 'IpList', 'locationName' => 'SecondaryPrivateIpAddress', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'PrivateIpAddressCount', ], ], ], 'CreateNatGatewayResult' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'NatGateway' => [ 'shape' => 'NatGateway', 'locationName' => 'natGateway', ], ], ], 'CreateNetworkAclEntryRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkAclId', 'RuleNumber', 'Protocol', 'RuleAction', 'Egress', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkAclId' => [ 'shape' => 'NetworkAclId', 'locationName' => 'networkAclId', ], 'RuleNumber' => [ 'shape' => 'Integer', 'locationName' => 'ruleNumber', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'RuleAction' => [ 'shape' => 'RuleAction', 'locationName' => 'ruleAction', ], 'Egress' => [ 'shape' => 'Boolean', 'locationName' => 'egress', ], 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], 'IcmpTypeCode' => [ 'shape' => 'IcmpTypeCode', 'locationName' => 'Icmp', ], 'PortRange' => [ 'shape' => 'PortRange', 'locationName' => 'portRange', ], ], ], 'CreateNetworkAclRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], ], ], 'CreateNetworkAclResult' => [ 'type' => 'structure', 'members' => [ 'NetworkAcl' => [ 'shape' => 'NetworkAcl', 'locationName' => 'networkAcl', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateNetworkInsightsAccessScopeRequest' => [ 'type' => 'structure', 'required' => [ 'ClientToken', ], 'members' => [ 'MatchPaths' => [ 'shape' => 'AccessScopePathListRequest', 'locationName' => 'MatchPath', ], 'ExcludePaths' => [ 'shape' => 'AccessScopePathListRequest', 'locationName' => 'ExcludePath', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateNetworkInsightsAccessScopeResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScope' => [ 'shape' => 'NetworkInsightsAccessScope', 'locationName' => 'networkInsightsAccessScope', ], 'NetworkInsightsAccessScopeContent' => [ 'shape' => 'NetworkInsightsAccessScopeContent', 'locationName' => 'networkInsightsAccessScopeContent', ], ], ], 'CreateNetworkInsightsPathRequest' => [ 'type' => 'structure', 'required' => [ 'Source', 'Protocol', 'ClientToken', ], 'members' => [ 'SourceIp' => [ 'shape' => 'IpAddress', ], 'DestinationIp' => [ 'shape' => 'IpAddress', ], 'Source' => [ 'shape' => 'NetworkInsightsResourceId', ], 'Destination' => [ 'shape' => 'NetworkInsightsResourceId', ], 'Protocol' => [ 'shape' => 'Protocol', ], 'DestinationPort' => [ 'shape' => 'Port', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'FilterAtSource' => [ 'shape' => 'PathRequestFilter', ], 'FilterAtDestination' => [ 'shape' => 'PathRequestFilter', ], ], ], 'CreateNetworkInsightsPathResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsPath' => [ 'shape' => 'NetworkInsightsPath', 'locationName' => 'networkInsightsPath', ], ], ], 'CreateNetworkInterfacePermissionRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', 'Permission', ], 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'AwsAccountId' => [ 'shape' => 'String', ], 'AwsService' => [ 'shape' => 'String', ], 'Permission' => [ 'shape' => 'InterfacePermissionType', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateNetworkInterfacePermissionResult' => [ 'type' => 'structure', 'members' => [ 'InterfacePermission' => [ 'shape' => 'NetworkInterfacePermission', 'locationName' => 'interfacePermission', ], ], ], 'CreateNetworkInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', ], 'members' => [ 'Ipv4Prefixes' => [ 'shape' => 'Ipv4PrefixList', 'locationName' => 'Ipv4Prefix', ], 'Ipv4PrefixCount' => [ 'shape' => 'Integer', ], 'Ipv6Prefixes' => [ 'shape' => 'Ipv6PrefixList', 'locationName' => 'Ipv6Prefix', ], 'Ipv6PrefixCount' => [ 'shape' => 'Integer', ], 'InterfaceType' => [ 'shape' => 'NetworkInterfaceCreationType', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'EnablePrimaryIpv6' => [ 'shape' => 'Boolean', ], 'ConnectionTrackingSpecification' => [ 'shape' => 'ConnectionTrackingSpecificationRequest', ], 'Operator' => [ 'shape' => 'OperatorRequest', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'Groups' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressSpecificationList', 'locationName' => 'privateIpAddresses', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'secondaryPrivateIpAddressCount', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressList', 'locationName' => 'ipv6Addresses', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', 'locationName' => 'ipv6AddressCount', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateNetworkInterfaceResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInterface' => [ 'shape' => 'NetworkInterface', 'locationName' => 'networkInterface', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreatePlacementGroupRequest' => [ 'type' => 'structure', 'members' => [ 'PartitionCount' => [ 'shape' => 'Integer', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'SpreadLevel' => [ 'shape' => 'SpreadLevel', ], 'LinkedGroupId' => [ 'shape' => 'PlacementGroupId', ], 'Operator' => [ 'shape' => 'OperatorRequest', ], 'ParentGroupId' => [ 'shape' => 'PlacementGroupId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'Strategy' => [ 'shape' => 'PlacementStrategy', 'locationName' => 'strategy', ], ], ], 'CreatePlacementGroupResult' => [ 'type' => 'structure', 'members' => [ 'PlacementGroup' => [ 'shape' => 'PlacementGroup', 'locationName' => 'placementGroup', ], ], ], 'CreatePublicIpv4PoolRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'NetworkBorderGroup' => [ 'shape' => 'String', ], ], ], 'CreatePublicIpv4PoolResult' => [ 'type' => 'structure', 'members' => [ 'PoolId' => [ 'shape' => 'Ipv4PoolEc2Id', 'locationName' => 'poolId', ], ], ], 'CreateReplaceRootVolumeTaskRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'DeleteReplacedRootVolume' => [ 'shape' => 'Boolean', ], 'VolumeInitializationRate' => [ 'shape' => 'Long', ], 'VolumeId' => [ 'shape' => 'VolumeId', ], ], ], 'CreateReplaceRootVolumeTaskResult' => [ 'type' => 'structure', 'members' => [ 'ReplaceRootVolumeTask' => [ 'shape' => 'ReplaceRootVolumeTask', 'locationName' => 'replaceRootVolumeTask', ], ], ], 'CreateReservedInstancesListingRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstancesId', 'InstanceCount', 'PriceSchedules', 'ClientToken', ], 'members' => [ 'ReservedInstancesId' => [ 'shape' => 'ReservationId', 'locationName' => 'reservedInstancesId', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'PriceSchedules' => [ 'shape' => 'PriceScheduleSpecificationList', 'locationName' => 'priceSchedules', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateReservedInstancesListingResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesListings' => [ 'shape' => 'ReservedInstancesListingList', 'locationName' => 'reservedInstancesListingsSet', ], ], ], 'CreateRestoreImageTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'ObjectKey', ], 'members' => [ 'Bucket' => [ 'shape' => 'String', ], 'ObjectKey' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'ImageNameRequest', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateRestoreImageTaskResult' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], ], ], 'CreateRouteRequest' => [ 'type' => 'structure', 'required' => [ 'RouteTableId', ], 'members' => [ 'DestinationPrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'VpcEndpointId' => [ 'shape' => 'VpcEndpointId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'LocalGatewayId' => [ 'shape' => 'LocalGatewayId', ], 'CarrierGatewayId' => [ 'shape' => 'CarrierGatewayId', ], 'CoreNetworkArn' => [ 'shape' => 'CoreNetworkArn', ], 'OdbNetworkArn' => [ 'shape' => 'OdbNetworkArn', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', 'locationName' => 'routeTableId', ], 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'GatewayId' => [ 'shape' => 'RouteGatewayId', 'locationName' => 'gatewayId', ], 'DestinationIpv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationIpv6CidrBlock', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'EgressOnlyInternetGatewayId', 'locationName' => 'egressOnlyInternetGatewayId', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'VpcPeeringConnectionId', 'locationName' => 'vpcPeeringConnectionId', ], 'NatGatewayId' => [ 'shape' => 'NatGatewayId', 'locationName' => 'natGatewayId', ], ], ], 'CreateRouteResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'CreateRouteServerEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', 'SubnetId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateRouteServerEndpointResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerEndpoint' => [ 'shape' => 'RouteServerEndpoint', 'locationName' => 'routeServerEndpoint', ], ], ], 'CreateRouteServerPeerRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerEndpointId', 'PeerAddress', 'BgpOptions', ], 'members' => [ 'RouteServerEndpointId' => [ 'shape' => 'RouteServerEndpointId', ], 'PeerAddress' => [ 'shape' => 'String', ], 'BgpOptions' => [ 'shape' => 'RouteServerBgpOptionsRequest', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateRouteServerPeerResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerPeer' => [ 'shape' => 'RouteServerPeer', 'locationName' => 'routeServerPeer', ], ], ], 'CreateRouteServerRequest' => [ 'type' => 'structure', 'required' => [ 'AmazonSideAsn', ], 'members' => [ 'AmazonSideAsn' => [ 'shape' => 'Long', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'PersistRoutes' => [ 'shape' => 'RouteServerPersistRoutesAction', ], 'PersistRoutesDuration' => [ 'shape' => 'BoxedLong', ], 'SnsNotificationsEnabled' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateRouteServerResult' => [ 'type' => 'structure', 'members' => [ 'RouteServer' => [ 'shape' => 'RouteServer', 'locationName' => 'routeServer', ], ], ], 'CreateRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], ], ], 'CreateRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'RouteTable' => [ 'shape' => 'RouteTable', 'locationName' => 'routeTable', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateSecondaryNetworkRequest' => [ 'type' => 'structure', 'required' => [ 'Ipv4CidrBlock', 'NetworkType', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Ipv4CidrBlock' => [ 'shape' => 'String', ], 'NetworkType' => [ 'shape' => 'SecondaryNetworkType', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateSecondaryNetworkResult' => [ 'type' => 'structure', 'members' => [ 'SecondaryNetwork' => [ 'shape' => 'SecondaryNetwork', 'locationName' => 'secondaryNetwork', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateSecondarySubnetRequest' => [ 'type' => 'structure', 'required' => [ 'Ipv4CidrBlock', 'SecondaryNetworkId', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Ipv4CidrBlock' => [ 'shape' => 'String', ], 'SecondaryNetworkId' => [ 'shape' => 'SecondaryNetworkId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateSecondarySubnetResult' => [ 'type' => 'structure', 'members' => [ 'SecondarySubnet' => [ 'shape' => 'SecondarySubnet', 'locationName' => 'secondarySubnet', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateSecurityGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Description', 'GroupName', ], 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'GroupDescription', ], 'GroupName' => [ 'shape' => 'String', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateSecurityGroupResult' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SecurityGroupArn' => [ 'shape' => 'String', 'locationName' => 'securityGroupArn', ], ], ], 'CreateSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'Description' => [ 'shape' => 'String', ], 'OutpostArn' => [ 'shape' => 'String', ], 'VolumeId' => [ 'shape' => 'VolumeId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'Location' => [ 'shape' => 'SnapshotLocationEnum', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateSnapshotsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceSpecification', ], 'members' => [ 'Description' => [ 'shape' => 'String', ], 'InstanceSpecification' => [ 'shape' => 'InstanceSpecification', ], 'OutpostArn' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'CopyTagsFromSource' => [ 'shape' => 'CopyTagsFromSource', ], 'Location' => [ 'shape' => 'SnapshotLocationEnum', ], ], ], 'CreateSnapshotsResult' => [ 'type' => 'structure', 'members' => [ 'Snapshots' => [ 'shape' => 'SnapshotSet', 'locationName' => 'snapshotSet', ], ], ], 'CreateSpotDatafeedSubscriptionRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Bucket' => [ 'shape' => 'String', 'locationName' => 'bucket', ], 'Prefix' => [ 'shape' => 'String', 'locationName' => 'prefix', ], ], ], 'CreateSpotDatafeedSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'SpotDatafeedSubscription' => [ 'shape' => 'SpotDatafeedSubscription', 'locationName' => 'spotDatafeedSubscription', ], ], ], 'CreateStoreImageTaskRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', 'Bucket', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'Bucket' => [ 'shape' => 'String', ], 'S3ObjectTags' => [ 'shape' => 'S3ObjectTagList', 'locationName' => 'S3ObjectTag', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateStoreImageTaskResult' => [ 'type' => 'structure', 'members' => [ 'ObjectKey' => [ 'shape' => 'String', 'locationName' => 'objectKey', ], ], ], 'CreateSubnetCidrReservationRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', 'Cidr', 'ReservationType', ], 'members' => [ 'SubnetId' => [ 'shape' => 'SubnetId', ], 'Cidr' => [ 'shape' => 'String', ], 'ReservationType' => [ 'shape' => 'SubnetCidrReservationType', ], 'Description' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateSubnetCidrReservationResult' => [ 'type' => 'structure', 'members' => [ 'SubnetCidrReservation' => [ 'shape' => 'SubnetCidrReservation', 'locationName' => 'subnetCidrReservation', ], ], ], 'CreateSubnetRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'AvailabilityZone' => [ 'shape' => 'String', ], 'AvailabilityZoneId' => [ 'shape' => 'String', ], 'CidrBlock' => [ 'shape' => 'String', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', ], 'OutpostArn' => [ 'shape' => 'String', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'Ipv6Native' => [ 'shape' => 'Boolean', ], 'Ipv4IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Ipv4NetmaskLength' => [ 'shape' => 'NetmaskLength', ], 'Ipv6IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Ipv6NetmaskLength' => [ 'shape' => 'NetmaskLength', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateSubnetResult' => [ 'type' => 'structure', 'members' => [ 'Subnet' => [ 'shape' => 'Subnet', 'locationName' => 'subnet', ], ], ], 'CreateTagsRequest' => [ 'type' => 'structure', 'required' => [ 'Resources', 'Tags', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Resources' => [ 'shape' => 'ResourceIdList', 'locationName' => 'ResourceId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'Tag', ], ], ], 'CreateTrafficMirrorFilterRequest' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateTrafficMirrorFilterResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilter' => [ 'shape' => 'TrafficMirrorFilter', 'locationName' => 'trafficMirrorFilter', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateTrafficMirrorFilterRuleRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficMirrorFilterId', 'TrafficDirection', 'RuleNumber', 'RuleAction', 'DestinationCidrBlock', 'SourceCidrBlock', ], 'members' => [ 'TrafficMirrorFilterId' => [ 'shape' => 'TrafficMirrorFilterId', ], 'TrafficDirection' => [ 'shape' => 'TrafficDirection', ], 'RuleNumber' => [ 'shape' => 'Integer', ], 'RuleAction' => [ 'shape' => 'TrafficMirrorRuleAction', ], 'DestinationPortRange' => [ 'shape' => 'TrafficMirrorPortRangeRequest', ], 'SourcePortRange' => [ 'shape' => 'TrafficMirrorPortRangeRequest', ], 'Protocol' => [ 'shape' => 'Integer', ], 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'SourceCidrBlock' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateTrafficMirrorFilterRuleResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterRule' => [ 'shape' => 'TrafficMirrorFilterRule', 'locationName' => 'trafficMirrorFilterRule', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateTrafficMirrorSessionRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', 'TrafficMirrorTargetId', 'TrafficMirrorFilterId', 'SessionNumber', ], 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'TrafficMirrorTargetId' => [ 'shape' => 'TrafficMirrorTargetId', ], 'TrafficMirrorFilterId' => [ 'shape' => 'TrafficMirrorFilterId', ], 'PacketLength' => [ 'shape' => 'Integer', ], 'SessionNumber' => [ 'shape' => 'Integer', ], 'VirtualNetworkId' => [ 'shape' => 'Integer', ], 'Description' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'CreateTrafficMirrorSessionResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorSession' => [ 'shape' => 'TrafficMirrorSession', 'locationName' => 'trafficMirrorSession', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateTrafficMirrorTargetRequest' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'NetworkLoadBalancerArn' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'GatewayLoadBalancerEndpointId' => [ 'shape' => 'VpcEndpointId', ], ], ], 'CreateTrafficMirrorTargetResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorTarget' => [ 'shape' => 'TrafficMirrorTarget', 'locationName' => 'trafficMirrorTarget', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateTransitGatewayConnectPeerRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', 'PeerAddress', 'InsideCidrBlocks', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'TransitGatewayAddress' => [ 'shape' => 'String', ], 'PeerAddress' => [ 'shape' => 'String', ], 'BgpOptions' => [ 'shape' => 'TransitGatewayConnectRequestBgpOptions', ], 'InsideCidrBlocks' => [ 'shape' => 'InsideCidrBlocksStringList', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayConnectPeerResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayConnectPeer' => [ 'shape' => 'TransitGatewayConnectPeer', 'locationName' => 'transitGatewayConnectPeer', ], ], ], 'CreateTransitGatewayConnectRequest' => [ 'type' => 'structure', 'required' => [ 'TransportTransitGatewayAttachmentId', 'Options', ], 'members' => [ 'TransportTransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'Options' => [ 'shape' => 'CreateTransitGatewayConnectRequestOptions', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayConnectRequestOptions' => [ 'type' => 'structure', 'required' => [ 'Protocol', ], 'members' => [ 'Protocol' => [ 'shape' => 'ProtocolValue', ], ], ], 'CreateTransitGatewayConnectResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayConnect' => [ 'shape' => 'TransitGatewayConnect', 'locationName' => 'transitGatewayConnect', ], ], ], 'CreateTransitGatewayMeteringPolicyEntryRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMeteringPolicyId', 'PolicyRuleNumber', 'MeteredAccount', ], 'members' => [ 'TransitGatewayMeteringPolicyId' => [ 'shape' => 'TransitGatewayMeteringPolicyId', ], 'PolicyRuleNumber' => [ 'shape' => 'Integer', ], 'SourceTransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'SourceTransitGatewayAttachmentType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', ], 'SourceCidrBlock' => [ 'shape' => 'String', ], 'SourcePortRange' => [ 'shape' => 'String', ], 'DestinationTransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DestinationTransitGatewayAttachmentType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', ], 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'DestinationPortRange' => [ 'shape' => 'String', ], 'Protocol' => [ 'shape' => 'String', ], 'MeteredAccount' => [ 'shape' => 'TransitGatewayMeteringPayerType', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayMeteringPolicyEntryResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicyEntry' => [ 'shape' => 'TransitGatewayMeteringPolicyEntry', 'locationName' => 'transitGatewayMeteringPolicyEntry', ], ], ], 'CreateTransitGatewayMeteringPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'MiddleboxAttachmentIds' => [ 'shape' => 'TransitGatewayAttachmentIdStringList', 'locationName' => 'MiddleboxAttachmentId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayMeteringPolicyResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicy' => [ 'shape' => 'TransitGatewayMeteringPolicy', 'locationName' => 'transitGatewayMeteringPolicy', ], ], ], 'CreateTransitGatewayMulticastDomainRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'Options' => [ 'shape' => 'CreateTransitGatewayMulticastDomainRequestOptions', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayMulticastDomainRequestOptions' => [ 'type' => 'structure', 'members' => [ 'Igmpv2Support' => [ 'shape' => 'Igmpv2SupportValue', ], 'StaticSourcesSupport' => [ 'shape' => 'StaticSourcesSupportValue', ], 'AutoAcceptSharedAssociations' => [ 'shape' => 'AutoAcceptSharedAssociationsValue', ], ], ], 'CreateTransitGatewayMulticastDomainResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomain' => [ 'shape' => 'TransitGatewayMulticastDomain', 'locationName' => 'transitGatewayMulticastDomain', ], ], ], 'CreateTransitGatewayPeeringAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', 'PeerTransitGatewayId', 'PeerAccountId', 'PeerRegion', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'PeerTransitGatewayId' => [ 'shape' => 'TransitAssociationGatewayId', ], 'PeerAccountId' => [ 'shape' => 'String', ], 'PeerRegion' => [ 'shape' => 'String', ], 'Options' => [ 'shape' => 'CreateTransitGatewayPeeringAttachmentRequestOptions', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayPeeringAttachmentRequestOptions' => [ 'type' => 'structure', 'members' => [ 'DynamicRouting' => [ 'shape' => 'DynamicRoutingValue', ], ], ], 'CreateTransitGatewayPeeringAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPeeringAttachment' => [ 'shape' => 'TransitGatewayPeeringAttachment', 'locationName' => 'transitGatewayPeeringAttachment', ], ], ], 'CreateTransitGatewayPolicyTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayPolicyTableResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPolicyTable' => [ 'shape' => 'TransitGatewayPolicyTable', 'locationName' => 'transitGatewayPolicyTable', ], ], ], 'CreateTransitGatewayPrefixListReferenceRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'PrefixListId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'Blackhole' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayPrefixListReferenceResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPrefixListReference' => [ 'shape' => 'TransitGatewayPrefixListReference', 'locationName' => 'transitGatewayPrefixListReference', ], ], ], 'CreateTransitGatewayRequest' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', ], 'Options' => [ 'shape' => 'TransitGatewayRequestOptions', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayResult' => [ 'type' => 'structure', 'members' => [ 'TransitGateway' => [ 'shape' => 'TransitGateway', 'locationName' => 'transitGateway', ], ], ], 'CreateTransitGatewayRouteRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationCidrBlock', 'TransitGatewayRouteTableId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'Blackhole' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayRouteResult' => [ 'type' => 'structure', 'members' => [ 'Route' => [ 'shape' => 'TransitGatewayRoute', 'locationName' => 'route', ], ], ], 'CreateTransitGatewayRouteTableAnnouncementRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'PeeringAttachmentId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'PeeringAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayRouteTableAnnouncementResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableAnnouncement' => [ 'shape' => 'TransitGatewayRouteTableAnnouncement', 'locationName' => 'transitGatewayRouteTableAnnouncement', ], ], ], 'CreateTransitGatewayRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTable' => [ 'shape' => 'TransitGatewayRouteTable', 'locationName' => 'transitGatewayRouteTable', ], ], ], 'CreateTransitGatewayVpcAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', 'VpcId', 'SubnetIds', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'SubnetIds' => [ 'shape' => 'TransitGatewaySubnetIdList', ], 'Options' => [ 'shape' => 'CreateTransitGatewayVpcAttachmentRequestOptions', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateTransitGatewayVpcAttachmentRequestOptions' => [ 'type' => 'structure', 'members' => [ 'DnsSupport' => [ 'shape' => 'DnsSupportValue', ], 'SecurityGroupReferencingSupport' => [ 'shape' => 'SecurityGroupReferencingSupportValue', ], 'Ipv6Support' => [ 'shape' => 'Ipv6SupportValue', ], 'ApplianceModeSupport' => [ 'shape' => 'ApplianceModeSupportValue', ], ], ], 'CreateTransitGatewayVpcAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachment' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'transitGatewayVpcAttachment', ], ], ], 'CreateVerifiedAccessEndpointCidrOptions' => [ 'type' => 'structure', 'members' => [ 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', ], 'SubnetIds' => [ 'shape' => 'CreateVerifiedAccessEndpointSubnetIdList', 'locationName' => 'SubnetId', ], 'Cidr' => [ 'shape' => 'String', ], 'PortRanges' => [ 'shape' => 'CreateVerifiedAccessEndpointPortRangeList', 'locationName' => 'PortRange', ], ], ], 'CreateVerifiedAccessEndpointEniOptions' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], 'PortRanges' => [ 'shape' => 'CreateVerifiedAccessEndpointPortRangeList', 'locationName' => 'PortRange', ], ], ], 'CreateVerifiedAccessEndpointLoadBalancerOptions' => [ 'type' => 'structure', 'members' => [ 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], 'LoadBalancerArn' => [ 'shape' => 'LoadBalancerArn', ], 'SubnetIds' => [ 'shape' => 'CreateVerifiedAccessEndpointSubnetIdList', 'locationName' => 'SubnetId', ], 'PortRanges' => [ 'shape' => 'CreateVerifiedAccessEndpointPortRangeList', 'locationName' => 'PortRange', ], ], ], 'CreateVerifiedAccessEndpointPortRange' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], 'ToPort' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], ], ], 'CreateVerifiedAccessEndpointPortRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CreateVerifiedAccessEndpointPortRange', 'locationName' => 'item', ], ], 'CreateVerifiedAccessEndpointRdsOptions' => [ 'type' => 'structure', 'members' => [ 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], 'RdsDbInstanceArn' => [ 'shape' => 'RdsDbInstanceArn', ], 'RdsDbClusterArn' => [ 'shape' => 'RdsDbClusterArn', ], 'RdsDbProxyArn' => [ 'shape' => 'RdsDbProxyArn', ], 'RdsEndpoint' => [ 'shape' => 'String', ], 'SubnetIds' => [ 'shape' => 'CreateVerifiedAccessEndpointSubnetIdList', 'locationName' => 'SubnetId', ], ], ], 'CreateVerifiedAccessEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessGroupId', 'EndpointType', 'AttachmentType', ], 'members' => [ 'VerifiedAccessGroupId' => [ 'shape' => 'VerifiedAccessGroupId', ], 'EndpointType' => [ 'shape' => 'VerifiedAccessEndpointType', ], 'AttachmentType' => [ 'shape' => 'VerifiedAccessEndpointAttachmentType', ], 'DomainCertificateArn' => [ 'shape' => 'CertificateArn', ], 'ApplicationDomain' => [ 'shape' => 'String', ], 'EndpointDomainPrefix' => [ 'shape' => 'String', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdList', 'locationName' => 'SecurityGroupId', ], 'LoadBalancerOptions' => [ 'shape' => 'CreateVerifiedAccessEndpointLoadBalancerOptions', ], 'NetworkInterfaceOptions' => [ 'shape' => 'CreateVerifiedAccessEndpointEniOptions', ], 'Description' => [ 'shape' => 'String', ], 'PolicyDocument' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationRequest', ], 'RdsOptions' => [ 'shape' => 'CreateVerifiedAccessEndpointRdsOptions', ], 'CidrOptions' => [ 'shape' => 'CreateVerifiedAccessEndpointCidrOptions', ], ], ], 'CreateVerifiedAccessEndpointResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessEndpoint' => [ 'shape' => 'VerifiedAccessEndpoint', 'locationName' => 'verifiedAccessEndpoint', ], ], ], 'CreateVerifiedAccessEndpointSubnetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', 'locationName' => 'item', ], ], 'CreateVerifiedAccessGroupRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessInstanceId', ], 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'Description' => [ 'shape' => 'String', ], 'PolicyDocument' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationRequest', ], ], ], 'CreateVerifiedAccessGroupResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessGroup' => [ 'shape' => 'VerifiedAccessGroup', 'locationName' => 'verifiedAccessGroup', ], ], ], 'CreateVerifiedAccessInstanceRequest' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'FIPSEnabled' => [ 'shape' => 'Boolean', ], 'CidrEndpointsCustomSubDomain' => [ 'shape' => 'String', ], ], ], 'CreateVerifiedAccessInstanceResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstance' => [ 'shape' => 'VerifiedAccessInstance', 'locationName' => 'verifiedAccessInstance', ], ], ], 'CreateVerifiedAccessNativeApplicationOidcOptions' => [ 'type' => 'structure', 'members' => [ 'PublicSigningKeyEndpoint' => [ 'shape' => 'String', ], 'Issuer' => [ 'shape' => 'String', ], 'AuthorizationEndpoint' => [ 'shape' => 'String', ], 'TokenEndpoint' => [ 'shape' => 'String', ], 'UserInfoEndpoint' => [ 'shape' => 'String', ], 'ClientId' => [ 'shape' => 'String', ], 'ClientSecret' => [ 'shape' => 'ClientSecretType', ], 'Scope' => [ 'shape' => 'String', ], ], ], 'CreateVerifiedAccessTrustProviderDeviceOptions' => [ 'type' => 'structure', 'members' => [ 'TenantId' => [ 'shape' => 'String', ], 'PublicSigningKeyUrl' => [ 'shape' => 'String', ], ], ], 'CreateVerifiedAccessTrustProviderOidcOptions' => [ 'type' => 'structure', 'members' => [ 'Issuer' => [ 'shape' => 'String', ], 'AuthorizationEndpoint' => [ 'shape' => 'String', ], 'TokenEndpoint' => [ 'shape' => 'String', ], 'UserInfoEndpoint' => [ 'shape' => 'String', ], 'ClientId' => [ 'shape' => 'String', ], 'ClientSecret' => [ 'shape' => 'ClientSecretType', ], 'Scope' => [ 'shape' => 'String', ], ], ], 'CreateVerifiedAccessTrustProviderRequest' => [ 'type' => 'structure', 'required' => [ 'TrustProviderType', 'PolicyReferenceName', ], 'members' => [ 'TrustProviderType' => [ 'shape' => 'TrustProviderType', ], 'UserTrustProviderType' => [ 'shape' => 'UserTrustProviderType', ], 'DeviceTrustProviderType' => [ 'shape' => 'DeviceTrustProviderType', ], 'OidcOptions' => [ 'shape' => 'CreateVerifiedAccessTrustProviderOidcOptions', ], 'DeviceOptions' => [ 'shape' => 'CreateVerifiedAccessTrustProviderDeviceOptions', ], 'PolicyReferenceName' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationRequest', ], 'NativeApplicationOidcOptions' => [ 'shape' => 'CreateVerifiedAccessNativeApplicationOidcOptions', ], ], ], 'CreateVerifiedAccessTrustProviderResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProvider' => [ 'shape' => 'VerifiedAccessTrustProvider', 'locationName' => 'verifiedAccessTrustProvider', ], ], ], 'CreateVolumePermission' => [ 'type' => 'structure', 'members' => [ 'UserId' => [ 'shape' => 'String', 'locationName' => 'userId', ], 'Group' => [ 'shape' => 'PermissionGroup', 'locationName' => 'group', ], ], ], 'CreateVolumePermissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CreateVolumePermission', 'locationName' => 'item', ], ], 'CreateVolumePermissionModifications' => [ 'type' => 'structure', 'members' => [ 'Add' => [ 'shape' => 'CreateVolumePermissionList', ], 'Remove' => [ 'shape' => 'CreateVolumePermissionList', ], ], ], 'CreateVolumeRequest' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'Iops' => [ 'shape' => 'Integer', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'OutpostArn' => [ 'shape' => 'String', ], 'Size' => [ 'shape' => 'Integer', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'VolumeType' => [ 'shape' => 'VolumeType', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'MultiAttachEnabled' => [ 'shape' => 'Boolean', ], 'Throughput' => [ 'shape' => 'Integer', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'VolumeInitializationRate' => [ 'shape' => 'Integer', ], 'Operator' => [ 'shape' => 'OperatorRequest', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateVpcBlockPublicAccessExclusionRequest' => [ 'type' => 'structure', 'required' => [ 'InternetGatewayExclusionMode', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'InternetGatewayExclusionMode' => [ 'shape' => 'InternetGatewayExclusionMode', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateVpcBlockPublicAccessExclusionResult' => [ 'type' => 'structure', 'members' => [ 'VpcBlockPublicAccessExclusion' => [ 'shape' => 'VpcBlockPublicAccessExclusion', 'locationName' => 'vpcBlockPublicAccessExclusion', ], ], ], 'CreateVpcEncryptionControlRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateVpcEncryptionControlResult' => [ 'type' => 'structure', 'members' => [ 'VpcEncryptionControl' => [ 'shape' => 'VpcEncryptionControl', 'locationName' => 'vpcEncryptionControl', ], ], ], 'CreateVpcEndpointConnectionNotificationRequest' => [ 'type' => 'structure', 'required' => [ 'ConnectionNotificationArn', 'ConnectionEvents', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], 'VpcEndpointId' => [ 'shape' => 'VpcEndpointId', ], 'ConnectionNotificationArn' => [ 'shape' => 'String', ], 'ConnectionEvents' => [ 'shape' => 'ValueStringList', ], 'ClientToken' => [ 'shape' => 'String', ], ], ], 'CreateVpcEndpointConnectionNotificationResult' => [ 'type' => 'structure', 'members' => [ 'ConnectionNotification' => [ 'shape' => 'ConnectionNotification', 'locationName' => 'connectionNotification', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateVpcEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcEndpointType' => [ 'shape' => 'VpcEndpointType', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'ServiceName' => [ 'shape' => 'String', ], 'PolicyDocument' => [ 'shape' => 'String', ], 'RouteTableIds' => [ 'shape' => 'VpcEndpointRouteTableIdList', 'locationName' => 'RouteTableId', ], 'SubnetIds' => [ 'shape' => 'VpcEndpointSubnetIdList', 'locationName' => 'SubnetId', ], 'SecurityGroupIds' => [ 'shape' => 'VpcEndpointSecurityGroupIdList', 'locationName' => 'SecurityGroupId', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', ], 'DnsOptions' => [ 'shape' => 'DnsOptionsSpecification', ], 'ClientToken' => [ 'shape' => 'String', ], 'PrivateDnsEnabled' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'SubnetConfigurations' => [ 'shape' => 'SubnetConfigurationsList', 'locationName' => 'SubnetConfiguration', ], 'ServiceNetworkArn' => [ 'shape' => 'ServiceNetworkArn', ], 'ResourceConfigurationArn' => [ 'shape' => 'ResourceConfigurationArn', ], 'ServiceRegion' => [ 'shape' => 'String', ], ], ], 'CreateVpcEndpointResult' => [ 'type' => 'structure', 'members' => [ 'VpcEndpoint' => [ 'shape' => 'VpcEndpoint', 'locationName' => 'vpcEndpoint', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateVpcEndpointServiceConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'AcceptanceRequired' => [ 'shape' => 'Boolean', ], 'PrivateDnsName' => [ 'shape' => 'String', ], 'NetworkLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'NetworkLoadBalancerArn', ], 'GatewayLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'GatewayLoadBalancerArn', ], 'SupportedIpAddressTypes' => [ 'shape' => 'ValueStringList', 'locationName' => 'SupportedIpAddressType', ], 'SupportedRegions' => [ 'shape' => 'ValueStringList', 'locationName' => 'SupportedRegion', ], 'ClientToken' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'CreateVpcEndpointServiceConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'ServiceConfiguration' => [ 'shape' => 'ServiceConfiguration', 'locationName' => 'serviceConfiguration', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'CreateVpcPeeringConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'PeerRegion' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'PeerVpcId' => [ 'shape' => 'String', 'locationName' => 'peerVpcId', ], 'PeerOwnerId' => [ 'shape' => 'String', 'locationName' => 'peerOwnerId', ], ], ], 'CreateVpcPeeringConnectionResult' => [ 'type' => 'structure', 'members' => [ 'VpcPeeringConnection' => [ 'shape' => 'VpcPeeringConnection', 'locationName' => 'vpcPeeringConnection', ], ], ], 'CreateVpcRequest' => [ 'type' => 'structure', 'members' => [ 'CidrBlock' => [ 'shape' => 'String', ], 'Ipv6Pool' => [ 'shape' => 'Ipv6PoolEc2Id', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', ], 'Ipv4IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Ipv4NetmaskLength' => [ 'shape' => 'NetmaskLength', ], 'Ipv6IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Ipv6NetmaskLength' => [ 'shape' => 'NetmaskLength', ], 'Ipv6CidrBlockNetworkBorderGroup' => [ 'shape' => 'String', ], 'VpcEncryptionControl' => [ 'shape' => 'VpcEncryptionControlConfiguration', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceTenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'instanceTenancy', ], 'AmazonProvidedIpv6CidrBlock' => [ 'shape' => 'Boolean', 'locationName' => 'amazonProvidedIpv6CidrBlock', ], ], ], 'CreateVpcResult' => [ 'type' => 'structure', 'members' => [ 'Vpc' => [ 'shape' => 'Vpc', 'locationName' => 'vpc', ], ], ], 'CreateVpnConcentratorRequest' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'VpnConcentratorType', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'CreateVpnConcentratorResult' => [ 'type' => 'structure', 'members' => [ 'VpnConcentrator' => [ 'shape' => 'VpnConcentrator', 'locationName' => 'vpnConcentrator', ], ], ], 'CreateVpnConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'CustomerGatewayId', 'Type', ], 'members' => [ 'CustomerGatewayId' => [ 'shape' => 'CustomerGatewayId', ], 'Type' => [ 'shape' => 'String', ], 'VpnGatewayId' => [ 'shape' => 'VpnGatewayId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'VpnConcentratorId' => [ 'shape' => 'VpnConcentratorId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'PreSharedKeyStorage' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Options' => [ 'shape' => 'VpnConnectionOptionsSpecification', 'locationName' => 'options', ], ], ], 'CreateVpnConnectionResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnection' => [ 'shape' => 'VpnConnection', 'locationName' => 'vpnConnection', ], ], ], 'CreateVpnConnectionRouteRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationCidrBlock', 'VpnConnectionId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], ], ], 'CreateVpnGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'Type' => [ 'shape' => 'GatewayType', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'AmazonSideAsn' => [ 'shape' => 'Long', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'CreateVpnGatewayResult' => [ 'type' => 'structure', 'members' => [ 'VpnGateway' => [ 'shape' => 'VpnGateway', 'locationName' => 'vpnGateway', ], ], ], 'CreationDateCondition' => [ 'type' => 'structure', 'members' => [ 'MaximumDaysSinceCreated' => [ 'shape' => 'MaximumDaysSinceCreatedValue', 'locationName' => 'maximumDaysSinceCreated', ], ], ], 'CreationDateConditionRequest' => [ 'type' => 'structure', 'members' => [ 'MaximumDaysSinceCreated' => [ 'shape' => 'MaximumDaysSinceCreatedValue', ], ], ], 'CreditSpecification' => [ 'type' => 'structure', 'members' => [ 'CpuCredits' => [ 'shape' => 'String', 'locationName' => 'cpuCredits', ], ], ], 'CreditSpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'CpuCredits', ], 'members' => [ 'CpuCredits' => [ 'shape' => 'String', ], ], ], 'CurrencyCodeValues' => [ 'type' => 'string', 'enum' => [ 'USD', ], ], 'CurrentGenerationFlag' => [ 'type' => 'boolean', ], 'CustomerGateway' => [ 'type' => 'structure', 'members' => [ 'CertificateArn' => [ 'shape' => 'String', 'locationName' => 'certificateArn', ], 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'BgpAsnExtended' => [ 'shape' => 'String', 'locationName' => 'bgpAsnExtended', ], 'CustomerGatewayId' => [ 'shape' => 'String', 'locationName' => 'customerGatewayId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], 'IpAddress' => [ 'shape' => 'String', 'locationName' => 'ipAddress', ], 'BgpAsn' => [ 'shape' => 'String', 'locationName' => 'bgpAsn', ], ], ], 'CustomerGatewayId' => [ 'type' => 'string', ], 'CustomerGatewayIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CustomerGatewayId', 'locationName' => 'CustomerGatewayId', ], ], 'CustomerGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CustomerGateway', 'locationName' => 'item', ], ], 'DITMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 5, ], 'DITOMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DataQueries' => [ 'type' => 'list', 'member' => [ 'shape' => 'DataQuery', ], ], 'DataQuery' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', ], 'Source' => [ 'shape' => 'String', ], 'Destination' => [ 'shape' => 'String', ], 'Metric' => [ 'shape' => 'MetricType', ], 'Statistic' => [ 'shape' => 'StatisticType', ], 'Period' => [ 'shape' => 'PeriodType', ], ], ], 'DataResponse' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', 'locationName' => 'id', ], 'Source' => [ 'shape' => 'String', 'locationName' => 'source', ], 'Destination' => [ 'shape' => 'String', 'locationName' => 'destination', ], 'Metric' => [ 'shape' => 'MetricType', 'locationName' => 'metric', ], 'Statistic' => [ 'shape' => 'StatisticType', 'locationName' => 'statistic', ], 'Period' => [ 'shape' => 'PeriodType', 'locationName' => 'period', ], 'MetricPoints' => [ 'shape' => 'MetricPoints', 'locationName' => 'metricPointSet', ], ], ], 'DataResponses' => [ 'type' => 'list', 'member' => [ 'shape' => 'DataResponse', 'locationName' => 'item', ], ], 'DatafeedSubscriptionState' => [ 'type' => 'string', 'enum' => [ 'Active', 'Inactive', ], ], 'DateTime' => [ 'type' => 'timestamp', ], 'DeclarativePoliciesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DeclarativePoliciesReport' => [ 'type' => 'structure', 'members' => [ 'ReportId' => [ 'shape' => 'String', 'locationName' => 'reportId', ], 'S3Bucket' => [ 'shape' => 'String', 'locationName' => 's3Bucket', ], 'S3Prefix' => [ 'shape' => 'String', 'locationName' => 's3Prefix', ], 'TargetId' => [ 'shape' => 'String', 'locationName' => 'targetId', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startTime', ], 'EndTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'endTime', ], 'Status' => [ 'shape' => 'ReportState', 'locationName' => 'status', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'DeclarativePoliciesReportId' => [ 'type' => 'string', ], 'DeclarativePoliciesReportList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeclarativePoliciesReport', 'locationName' => 'item', ], ], 'DedicatedHostFlag' => [ 'type' => 'boolean', ], 'DedicatedHostId' => [ 'type' => 'string', ], 'DedicatedHostIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DedicatedHostId', 'locationName' => 'item', ], ], 'DefaultConnectionTrackingConfiguration' => [ 'type' => 'structure', 'members' => [ 'DefaultTcpEstablishedTimeout' => [ 'shape' => 'DefaultTcpEstablishedTimeout', 'locationName' => 'defaultTcpEstablishedTimeout', ], 'DefaultUdpTimeout' => [ 'shape' => 'DefaultUdpTimeout', 'locationName' => 'defaultUdpTimeout', ], 'DefaultUdpStreamTimeout' => [ 'shape' => 'DefaultUdpStreamTimeout', 'locationName' => 'defaultUdpStreamTimeout', ], ], ], 'DefaultEnaQueueCountPerInterface' => [ 'type' => 'integer', ], 'DefaultHttpTokensEnforcedState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', 'no-preference', ], ], 'DefaultInstanceMetadataEndpointState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', 'no-preference', ], ], 'DefaultInstanceMetadataTagsState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', 'no-preference', ], ], 'DefaultNetworkCardIndex' => [ 'type' => 'integer', ], 'DefaultRouteTableAssociationValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'DefaultRouteTablePropagationValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'DefaultTargetCapacityType' => [ 'type' => 'string', 'enum' => [ 'spot', 'on-demand', 'capacity-block', 'reserved-capacity', ], ], 'DefaultTcpEstablishedTimeout' => [ 'type' => 'integer', ], 'DefaultUdpStreamTimeout' => [ 'type' => 'integer', ], 'DefaultUdpTimeout' => [ 'type' => 'integer', ], 'DefaultingDhcpOptionsId' => [ 'type' => 'string', ], 'DeleteCapacityManagerDataExportRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityManagerDataExportId', ], 'members' => [ 'CapacityManagerDataExportId' => [ 'shape' => 'CapacityManagerDataExportId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteCapacityManagerDataExportResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerDataExportId' => [ 'shape' => 'CapacityManagerDataExportId', 'locationName' => 'capacityManagerDataExportId', ], ], ], 'DeleteCarrierGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'CarrierGatewayId', ], 'members' => [ 'CarrierGatewayId' => [ 'shape' => 'CarrierGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteCarrierGatewayResult' => [ 'type' => 'structure', 'members' => [ 'CarrierGateway' => [ 'shape' => 'CarrierGateway', 'locationName' => 'carrierGateway', ], ], ], 'DeleteClientVpnEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteClientVpnEndpointResult' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ClientVpnEndpointStatus', 'locationName' => 'status', ], ], ], 'DeleteClientVpnRouteRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'DestinationCidrBlock', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'TargetVpcSubnetId' => [ 'shape' => 'SubnetId', ], 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteClientVpnRouteResult' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ClientVpnRouteStatus', 'locationName' => 'status', ], ], ], 'DeleteCoipCidrRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', 'CoipPoolId', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'CoipPoolId' => [ 'shape' => 'Ipv4PoolCoipId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteCoipCidrResult' => [ 'type' => 'structure', 'members' => [ 'CoipCidr' => [ 'shape' => 'CoipCidr', 'locationName' => 'coipCidr', ], ], ], 'DeleteCoipPoolRequest' => [ 'type' => 'structure', 'required' => [ 'CoipPoolId', ], 'members' => [ 'CoipPoolId' => [ 'shape' => 'Ipv4PoolCoipId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteCoipPoolResult' => [ 'type' => 'structure', 'members' => [ 'CoipPool' => [ 'shape' => 'CoipPool', 'locationName' => 'coipPool', ], ], ], 'DeleteCustomerGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'CustomerGatewayId', ], 'members' => [ 'CustomerGatewayId' => [ 'shape' => 'CustomerGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteDhcpOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'DhcpOptionsId', ], 'members' => [ 'DhcpOptionsId' => [ 'shape' => 'DhcpOptionsId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteEgressOnlyInternetGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'EgressOnlyInternetGatewayId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'EgressOnlyInternetGatewayId', ], ], ], 'DeleteEgressOnlyInternetGatewayResult' => [ 'type' => 'structure', 'members' => [ 'ReturnCode' => [ 'shape' => 'Boolean', 'locationName' => 'returnCode', ], ], ], 'DeleteFleetError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'DeleteFleetErrorCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'DeleteFleetErrorCode' => [ 'type' => 'string', 'enum' => [ 'fleetIdDoesNotExist', 'fleetIdMalformed', 'fleetNotInDeletableState', 'unexpectedError', ], ], 'DeleteFleetErrorItem' => [ 'type' => 'structure', 'members' => [ 'Error' => [ 'shape' => 'DeleteFleetError', 'locationName' => 'error', ], 'FleetId' => [ 'shape' => 'FleetId', 'locationName' => 'fleetId', ], ], ], 'DeleteFleetErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteFleetErrorItem', 'locationName' => 'item', ], ], 'DeleteFleetSuccessItem' => [ 'type' => 'structure', 'members' => [ 'CurrentFleetState' => [ 'shape' => 'FleetStateCode', 'locationName' => 'currentFleetState', ], 'PreviousFleetState' => [ 'shape' => 'FleetStateCode', 'locationName' => 'previousFleetState', ], 'FleetId' => [ 'shape' => 'FleetId', 'locationName' => 'fleetId', ], ], ], 'DeleteFleetSuccessSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteFleetSuccessItem', 'locationName' => 'item', ], ], 'DeleteFleetsRequest' => [ 'type' => 'structure', 'required' => [ 'FleetIds', 'TerminateInstances', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FleetIds' => [ 'shape' => 'FleetIdSet', 'locationName' => 'FleetId', ], 'TerminateInstances' => [ 'shape' => 'Boolean', ], ], ], 'DeleteFleetsResult' => [ 'type' => 'structure', 'members' => [ 'SuccessfulFleetDeletions' => [ 'shape' => 'DeleteFleetSuccessSet', 'locationName' => 'successfulFleetDeletionSet', ], 'UnsuccessfulFleetDeletions' => [ 'shape' => 'DeleteFleetErrorSet', 'locationName' => 'unsuccessfulFleetDeletionSet', ], ], ], 'DeleteFlowLogsRequest' => [ 'type' => 'structure', 'required' => [ 'FlowLogIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FlowLogIds' => [ 'shape' => 'FlowLogIdList', 'locationName' => 'FlowLogId', ], ], ], 'DeleteFlowLogsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'DeleteFpgaImageRequest' => [ 'type' => 'structure', 'required' => [ 'FpgaImageId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FpgaImageId' => [ 'shape' => 'FpgaImageId', ], ], ], 'DeleteFpgaImageResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DeleteImageUsageReportRequest' => [ 'type' => 'structure', 'required' => [ 'ReportId', ], 'members' => [ 'ReportId' => [ 'shape' => 'ImageUsageReportId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteImageUsageReportResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DeleteInstanceConnectEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceConnectEndpointId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceConnectEndpointId' => [ 'shape' => 'InstanceConnectEndpointId', ], ], ], 'DeleteInstanceConnectEndpointResult' => [ 'type' => 'structure', 'members' => [ 'InstanceConnectEndpoint' => [ 'shape' => 'Ec2InstanceConnectEndpoint', 'locationName' => 'instanceConnectEndpoint', ], ], ], 'DeleteInstanceEventWindowRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceEventWindowId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ForceDelete' => [ 'shape' => 'Boolean', ], 'InstanceEventWindowId' => [ 'shape' => 'InstanceEventWindowId', ], ], ], 'DeleteInstanceEventWindowResult' => [ 'type' => 'structure', 'members' => [ 'InstanceEventWindowState' => [ 'shape' => 'InstanceEventWindowStateChange', 'locationName' => 'instanceEventWindowState', ], ], ], 'DeleteInternetGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'InternetGatewayId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InternetGatewayId' => [ 'shape' => 'InternetGatewayId', 'locationName' => 'internetGatewayId', ], ], ], 'DeleteIpamExternalResourceVerificationTokenRequest' => [ 'type' => 'structure', 'required' => [ 'IpamExternalResourceVerificationTokenId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamExternalResourceVerificationTokenId' => [ 'shape' => 'IpamExternalResourceVerificationTokenId', ], ], ], 'DeleteIpamExternalResourceVerificationTokenResult' => [ 'type' => 'structure', 'members' => [ 'IpamExternalResourceVerificationToken' => [ 'shape' => 'IpamExternalResourceVerificationToken', 'locationName' => 'ipamExternalResourceVerificationToken', ], ], ], 'DeleteIpamPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPolicyId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', ], ], ], 'DeleteIpamPolicyResult' => [ 'type' => 'structure', 'members' => [ 'IpamPolicy' => [ 'shape' => 'IpamPolicy', 'locationName' => 'ipamPolicy', ], ], ], 'DeleteIpamPoolRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Cascade' => [ 'shape' => 'Boolean', ], ], ], 'DeleteIpamPoolResult' => [ 'type' => 'structure', 'members' => [ 'IpamPool' => [ 'shape' => 'IpamPool', 'locationName' => 'ipamPool', ], ], ], 'DeleteIpamPrefixListResolverRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPrefixListResolverId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', ], ], ], 'DeleteIpamPrefixListResolverResult' => [ 'type' => 'structure', 'members' => [ 'IpamPrefixListResolver' => [ 'shape' => 'IpamPrefixListResolver', 'locationName' => 'ipamPrefixListResolver', ], ], ], 'DeleteIpamPrefixListResolverTargetRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPrefixListResolverTargetId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPrefixListResolverTargetId' => [ 'shape' => 'IpamPrefixListResolverTargetId', ], ], ], 'DeleteIpamPrefixListResolverTargetResult' => [ 'type' => 'structure', 'members' => [ 'IpamPrefixListResolverTarget' => [ 'shape' => 'IpamPrefixListResolverTarget', 'locationName' => 'ipamPrefixListResolverTarget', ], ], ], 'DeleteIpamRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamId' => [ 'shape' => 'IpamId', ], 'Cascade' => [ 'shape' => 'Boolean', ], ], ], 'DeleteIpamResourceDiscoveryRequest' => [ 'type' => 'structure', 'required' => [ 'IpamResourceDiscoveryId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', ], ], ], 'DeleteIpamResourceDiscoveryResult' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscovery' => [ 'shape' => 'IpamResourceDiscovery', 'locationName' => 'ipamResourceDiscovery', ], ], ], 'DeleteIpamResult' => [ 'type' => 'structure', 'members' => [ 'Ipam' => [ 'shape' => 'Ipam', 'locationName' => 'ipam', ], ], ], 'DeleteIpamScopeRequest' => [ 'type' => 'structure', 'required' => [ 'IpamScopeId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', ], ], ], 'DeleteIpamScopeResult' => [ 'type' => 'structure', 'members' => [ 'IpamScope' => [ 'shape' => 'IpamScope', 'locationName' => 'ipamScope', ], ], ], 'DeleteKeyPairRequest' => [ 'type' => 'structure', 'members' => [ 'KeyName' => [ 'shape' => 'KeyPairNameWithResolver', ], 'KeyPairId' => [ 'shape' => 'KeyPairId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteKeyPairResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'KeyPairId' => [ 'shape' => 'String', 'locationName' => 'keyPairId', ], ], ], 'DeleteLaunchTemplateRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], ], ], 'DeleteLaunchTemplateResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplate' => [ 'shape' => 'LaunchTemplate', 'locationName' => 'launchTemplate', ], ], ], 'DeleteLaunchTemplateVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'Versions', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'Versions' => [ 'shape' => 'VersionStringList', 'locationName' => 'LaunchTemplateVersion', ], ], ], 'DeleteLaunchTemplateVersionsResponseErrorItem' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'String', 'locationName' => 'launchTemplateName', ], 'VersionNumber' => [ 'shape' => 'Long', 'locationName' => 'versionNumber', ], 'ResponseError' => [ 'shape' => 'ResponseError', 'locationName' => 'responseError', ], ], ], 'DeleteLaunchTemplateVersionsResponseErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteLaunchTemplateVersionsResponseErrorItem', 'locationName' => 'item', ], ], 'DeleteLaunchTemplateVersionsResponseSuccessItem' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'String', 'locationName' => 'launchTemplateName', ], 'VersionNumber' => [ 'shape' => 'Long', 'locationName' => 'versionNumber', ], ], ], 'DeleteLaunchTemplateVersionsResponseSuccessSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteLaunchTemplateVersionsResponseSuccessItem', 'locationName' => 'item', ], ], 'DeleteLaunchTemplateVersionsResult' => [ 'type' => 'structure', 'members' => [ 'SuccessfullyDeletedLaunchTemplateVersions' => [ 'shape' => 'DeleteLaunchTemplateVersionsResponseSuccessSet', 'locationName' => 'successfullyDeletedLaunchTemplateVersionSet', ], 'UnsuccessfullyDeletedLaunchTemplateVersions' => [ 'shape' => 'DeleteLaunchTemplateVersionsResponseErrorSet', 'locationName' => 'unsuccessfullyDeletedLaunchTemplateVersionSet', ], ], ], 'DeleteLocalGatewayRouteRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'DestinationPrefixListId' => [ 'shape' => 'PrefixListResourceId', ], ], ], 'DeleteLocalGatewayRouteResult' => [ 'type' => 'structure', 'members' => [ 'Route' => [ 'shape' => 'LocalGatewayRoute', 'locationName' => 'route', ], ], ], 'DeleteLocalGatewayRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableId', ], 'members' => [ 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteLocalGatewayRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTable' => [ 'shape' => 'LocalGatewayRouteTable', 'locationName' => 'localGatewayRouteTable', ], ], ], 'DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId', ], 'members' => [ 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId' => [ 'shape' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVirtualInterfaceGroupAssociation' => [ 'shape' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociation', 'locationName' => 'localGatewayRouteTableVirtualInterfaceGroupAssociation', ], ], ], 'DeleteLocalGatewayRouteTableVpcAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableVpcAssociationId', ], 'members' => [ 'LocalGatewayRouteTableVpcAssociationId' => [ 'shape' => 'LocalGatewayRouteTableVpcAssociationId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteLocalGatewayRouteTableVpcAssociationResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVpcAssociation' => [ 'shape' => 'LocalGatewayRouteTableVpcAssociation', 'locationName' => 'localGatewayRouteTableVpcAssociation', ], ], ], 'DeleteLocalGatewayVirtualInterfaceGroupRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayVirtualInterfaceGroupId', ], 'members' => [ 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteLocalGatewayVirtualInterfaceGroupResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterfaceGroup' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroup', 'locationName' => 'localGatewayVirtualInterfaceGroup', ], ], ], 'DeleteLocalGatewayVirtualInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayVirtualInterfaceId', ], 'members' => [ 'LocalGatewayVirtualInterfaceId' => [ 'shape' => 'LocalGatewayVirtualInterfaceId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteLocalGatewayVirtualInterfaceResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterface' => [ 'shape' => 'LocalGatewayVirtualInterface', 'locationName' => 'localGatewayVirtualInterface', ], ], ], 'DeleteManagedPrefixListRequest' => [ 'type' => 'structure', 'required' => [ 'PrefixListId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], ], ], 'DeleteManagedPrefixListResult' => [ 'type' => 'structure', 'members' => [ 'PrefixList' => [ 'shape' => 'ManagedPrefixList', 'locationName' => 'prefixList', ], ], ], 'DeleteNatGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'NatGatewayId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'NatGatewayId' => [ 'shape' => 'NatGatewayId', ], ], ], 'DeleteNatGatewayResult' => [ 'type' => 'structure', 'members' => [ 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], ], ], 'DeleteNetworkAclEntryRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkAclId', 'RuleNumber', 'Egress', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkAclId' => [ 'shape' => 'NetworkAclId', 'locationName' => 'networkAclId', ], 'RuleNumber' => [ 'shape' => 'Integer', 'locationName' => 'ruleNumber', ], 'Egress' => [ 'shape' => 'Boolean', 'locationName' => 'egress', ], ], ], 'DeleteNetworkAclRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkAclId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkAclId' => [ 'shape' => 'NetworkAclId', 'locationName' => 'networkAclId', ], ], ], 'DeleteNetworkInsightsAccessScopeAnalysisRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInsightsAccessScopeAnalysisId', ], 'members' => [ 'NetworkInsightsAccessScopeAnalysisId' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteNetworkInsightsAccessScopeAnalysisResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeAnalysisId' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisId', 'locationName' => 'networkInsightsAccessScopeAnalysisId', ], ], ], 'DeleteNetworkInsightsAccessScopeRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInsightsAccessScopeId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', ], ], ], 'DeleteNetworkInsightsAccessScopeResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', 'locationName' => 'networkInsightsAccessScopeId', ], ], ], 'DeleteNetworkInsightsAnalysisRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInsightsAnalysisId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'NetworkInsightsAnalysisId' => [ 'shape' => 'NetworkInsightsAnalysisId', ], ], ], 'DeleteNetworkInsightsAnalysisResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAnalysisId' => [ 'shape' => 'NetworkInsightsAnalysisId', 'locationName' => 'networkInsightsAnalysisId', ], ], ], 'DeleteNetworkInsightsPathRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInsightsPathId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'NetworkInsightsPathId' => [ 'shape' => 'NetworkInsightsPathId', ], ], ], 'DeleteNetworkInsightsPathResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsPathId' => [ 'shape' => 'NetworkInsightsPathId', 'locationName' => 'networkInsightsPathId', ], ], ], 'DeleteNetworkInterfacePermissionRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfacePermissionId', ], 'members' => [ 'NetworkInterfacePermissionId' => [ 'shape' => 'NetworkInterfacePermissionId', ], 'Force' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteNetworkInterfacePermissionResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DeleteNetworkInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], ], ], 'DeletePlacementGroupRequest' => [ 'type' => 'structure', 'required' => [ 'GroupName', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'GroupName' => [ 'shape' => 'PlacementGroupNameWithResolver', 'locationName' => 'groupName', ], ], ], 'DeletePublicIpv4PoolRequest' => [ 'type' => 'structure', 'required' => [ 'PoolId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'PoolId' => [ 'shape' => 'Ipv4PoolEc2Id', ], 'NetworkBorderGroup' => [ 'shape' => 'String', ], ], ], 'DeletePublicIpv4PoolResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'returnValue', ], ], ], 'DeleteQueuedReservedInstancesError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'DeleteQueuedReservedInstancesErrorCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'DeleteQueuedReservedInstancesErrorCode' => [ 'type' => 'string', 'enum' => [ 'reserved-instances-id-invalid', 'reserved-instances-not-in-queued-state', 'unexpected-error', ], ], 'DeleteQueuedReservedInstancesIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservationId', 'locationName' => 'item', ], 'max' => 100, 'min' => 1, ], 'DeleteQueuedReservedInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstancesIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ReservedInstancesIds' => [ 'shape' => 'DeleteQueuedReservedInstancesIdList', 'locationName' => 'ReservedInstancesId', ], ], ], 'DeleteQueuedReservedInstancesResult' => [ 'type' => 'structure', 'members' => [ 'SuccessfulQueuedPurchaseDeletions' => [ 'shape' => 'SuccessfulQueuedPurchaseDeletionSet', 'locationName' => 'successfulQueuedPurchaseDeletionSet', ], 'FailedQueuedPurchaseDeletions' => [ 'shape' => 'FailedQueuedPurchaseDeletionSet', 'locationName' => 'failedQueuedPurchaseDeletionSet', ], ], ], 'DeleteRouteRequest' => [ 'type' => 'structure', 'required' => [ 'RouteTableId', ], 'members' => [ 'DestinationPrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', 'locationName' => 'routeTableId', ], 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'DestinationIpv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationIpv6CidrBlock', ], ], ], 'DeleteRouteServerEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerEndpointId', ], 'members' => [ 'RouteServerEndpointId' => [ 'shape' => 'RouteServerEndpointId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteRouteServerEndpointResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerEndpoint' => [ 'shape' => 'RouteServerEndpoint', 'locationName' => 'routeServerEndpoint', ], ], ], 'DeleteRouteServerPeerRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerPeerId', ], 'members' => [ 'RouteServerPeerId' => [ 'shape' => 'RouteServerPeerId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteRouteServerPeerResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerPeer' => [ 'shape' => 'RouteServerPeer', 'locationName' => 'routeServerPeer', ], ], ], 'DeleteRouteServerRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteRouteServerResult' => [ 'type' => 'structure', 'members' => [ 'RouteServer' => [ 'shape' => 'RouteServer', 'locationName' => 'routeServer', ], ], ], 'DeleteRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'RouteTableId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', 'locationName' => 'routeTableId', ], ], ], 'DeleteSecondaryNetworkRequest' => [ 'type' => 'structure', 'required' => [ 'SecondaryNetworkId', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SecondaryNetworkId' => [ 'shape' => 'SecondaryNetworkId', ], ], ], 'DeleteSecondaryNetworkResult' => [ 'type' => 'structure', 'members' => [ 'SecondaryNetwork' => [ 'shape' => 'SecondaryNetwork', 'locationName' => 'secondaryNetwork', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'DeleteSecondarySubnetRequest' => [ 'type' => 'structure', 'required' => [ 'SecondarySubnetId', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SecondarySubnetId' => [ 'shape' => 'SecondarySubnetId', ], ], ], 'DeleteSecondarySubnetResult' => [ 'type' => 'structure', 'members' => [ 'SecondarySubnet' => [ 'shape' => 'SecondarySubnet', 'locationName' => 'secondarySubnet', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'DeleteSecurityGroupRequest' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'SecurityGroupId', ], 'GroupName' => [ 'shape' => 'SecurityGroupName', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteSecurityGroupResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'groupId', ], ], ], 'DeleteSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', ], 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteSnapshotResultSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteSnapshotReturnCode', 'locationName' => 'item', ], ], 'DeleteSnapshotReturnCode' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', 'locationName' => 'snapshotId', ], 'ReturnCode' => [ 'shape' => 'SnapshotReturnCodes', 'locationName' => 'returnCode', ], ], ], 'DeleteSpotDatafeedSubscriptionRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteSubnetCidrReservationRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetCidrReservationId', ], 'members' => [ 'SubnetCidrReservationId' => [ 'shape' => 'SubnetCidrReservationId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteSubnetCidrReservationResult' => [ 'type' => 'structure', 'members' => [ 'DeletedSubnetCidrReservation' => [ 'shape' => 'SubnetCidrReservation', 'locationName' => 'deletedSubnetCidrReservation', ], ], ], 'DeleteSubnetRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', ], 'members' => [ 'SubnetId' => [ 'shape' => 'SubnetId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteTagsRequest' => [ 'type' => 'structure', 'required' => [ 'Resources', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Resources' => [ 'shape' => 'ResourceIdList', 'locationName' => 'resourceId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tag', ], ], ], 'DeleteTrafficMirrorFilterRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficMirrorFilterId', ], 'members' => [ 'TrafficMirrorFilterId' => [ 'shape' => 'TrafficMirrorFilterId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTrafficMirrorFilterResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorFilterId', ], ], ], 'DeleteTrafficMirrorFilterRuleRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficMirrorFilterRuleId', ], 'members' => [ 'TrafficMirrorFilterRuleId' => [ 'shape' => 'TrafficMirrorFilterRuleIdWithResolver', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTrafficMirrorFilterRuleResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterRuleId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorFilterRuleId', ], ], ], 'DeleteTrafficMirrorSessionRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficMirrorSessionId', ], 'members' => [ 'TrafficMirrorSessionId' => [ 'shape' => 'TrafficMirrorSessionId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTrafficMirrorSessionResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorSessionId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorSessionId', ], ], ], 'DeleteTrafficMirrorTargetRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficMirrorTargetId', ], 'members' => [ 'TrafficMirrorTargetId' => [ 'shape' => 'TrafficMirrorTargetId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTrafficMirrorTargetResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorTargetId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorTargetId', ], ], ], 'DeleteTransitGatewayClientVpnAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayClientVpnAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayClientVpnAttachment' => [ 'shape' => 'TransitGatewayClientVpnAttachment', 'locationName' => 'transitGatewayClientVpnAttachment', ], ], ], 'DeleteTransitGatewayConnectPeerRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayConnectPeerId', ], 'members' => [ 'TransitGatewayConnectPeerId' => [ 'shape' => 'TransitGatewayConnectPeerId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayConnectPeerResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayConnectPeer' => [ 'shape' => 'TransitGatewayConnectPeer', 'locationName' => 'transitGatewayConnectPeer', ], ], ], 'DeleteTransitGatewayConnectRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayConnectResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayConnect' => [ 'shape' => 'TransitGatewayConnect', 'locationName' => 'transitGatewayConnect', ], ], ], 'DeleteTransitGatewayMeteringPolicyEntryRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMeteringPolicyId', 'PolicyRuleNumber', ], 'members' => [ 'TransitGatewayMeteringPolicyId' => [ 'shape' => 'TransitGatewayMeteringPolicyId', ], 'PolicyRuleNumber' => [ 'shape' => 'Integer', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayMeteringPolicyEntryResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicyEntry' => [ 'shape' => 'TransitGatewayMeteringPolicyEntry', 'locationName' => 'transitGatewayMeteringPolicyEntry', ], ], ], 'DeleteTransitGatewayMeteringPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMeteringPolicyId', ], 'members' => [ 'TransitGatewayMeteringPolicyId' => [ 'shape' => 'TransitGatewayMeteringPolicyId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayMeteringPolicyResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicy' => [ 'shape' => 'TransitGatewayMeteringPolicy', 'locationName' => 'transitGatewayMeteringPolicy', ], ], ], 'DeleteTransitGatewayMulticastDomainRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMulticastDomainId', ], 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayMulticastDomainResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomain' => [ 'shape' => 'TransitGatewayMulticastDomain', 'locationName' => 'transitGatewayMulticastDomain', ], ], ], 'DeleteTransitGatewayPeeringAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayPeeringAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPeeringAttachment' => [ 'shape' => 'TransitGatewayPeeringAttachment', 'locationName' => 'transitGatewayPeeringAttachment', ], ], ], 'DeleteTransitGatewayPolicyTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayPolicyTableId', ], 'members' => [ 'TransitGatewayPolicyTableId' => [ 'shape' => 'TransitGatewayPolicyTableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayPolicyTableResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPolicyTable' => [ 'shape' => 'TransitGatewayPolicyTable', 'locationName' => 'transitGatewayPolicyTable', ], ], ], 'DeleteTransitGatewayPrefixListReferenceRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'PrefixListId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayPrefixListReferenceResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPrefixListReference' => [ 'shape' => 'TransitGatewayPrefixListReference', 'locationName' => 'transitGatewayPrefixListReference', ], ], ], 'DeleteTransitGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayResult' => [ 'type' => 'structure', 'members' => [ 'TransitGateway' => [ 'shape' => 'TransitGateway', 'locationName' => 'transitGateway', ], ], ], 'DeleteTransitGatewayRouteRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'DestinationCidrBlock', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayRouteResult' => [ 'type' => 'structure', 'members' => [ 'Route' => [ 'shape' => 'TransitGatewayRoute', 'locationName' => 'route', ], ], ], 'DeleteTransitGatewayRouteTableAnnouncementRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableAnnouncementId', ], 'members' => [ 'TransitGatewayRouteTableAnnouncementId' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayRouteTableAnnouncementResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableAnnouncement' => [ 'shape' => 'TransitGatewayRouteTableAnnouncement', 'locationName' => 'transitGatewayRouteTableAnnouncement', ], ], ], 'DeleteTransitGatewayRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTable' => [ 'shape' => 'TransitGatewayRouteTable', 'locationName' => 'transitGatewayRouteTable', ], ], ], 'DeleteTransitGatewayVpcAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteTransitGatewayVpcAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachment' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'transitGatewayVpcAttachment', ], ], ], 'DeleteVerifiedAccessEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessEndpointId', ], 'members' => [ 'VerifiedAccessEndpointId' => [ 'shape' => 'VerifiedAccessEndpointId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteVerifiedAccessEndpointResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessEndpoint' => [ 'shape' => 'VerifiedAccessEndpoint', 'locationName' => 'verifiedAccessEndpoint', ], ], ], 'DeleteVerifiedAccessGroupRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessGroupId', ], 'members' => [ 'VerifiedAccessGroupId' => [ 'shape' => 'VerifiedAccessGroupId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteVerifiedAccessGroupResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessGroup' => [ 'shape' => 'VerifiedAccessGroup', 'locationName' => 'verifiedAccessGroup', ], ], ], 'DeleteVerifiedAccessInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessInstanceId', ], 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'DeleteVerifiedAccessInstanceResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstance' => [ 'shape' => 'VerifiedAccessInstance', 'locationName' => 'verifiedAccessInstance', ], ], ], 'DeleteVerifiedAccessTrustProviderRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessTrustProviderId', ], 'members' => [ 'VerifiedAccessTrustProviderId' => [ 'shape' => 'VerifiedAccessTrustProviderId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'DeleteVerifiedAccessTrustProviderResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProvider' => [ 'shape' => 'VerifiedAccessTrustProvider', 'locationName' => 'verifiedAccessTrustProvider', ], ], ], 'DeleteVolumeRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'VolumeId' => [ 'shape' => 'VolumeId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteVpcBlockPublicAccessExclusionRequest' => [ 'type' => 'structure', 'required' => [ 'ExclusionId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ExclusionId' => [ 'shape' => 'VpcBlockPublicAccessExclusionId', ], ], ], 'DeleteVpcBlockPublicAccessExclusionResult' => [ 'type' => 'structure', 'members' => [ 'VpcBlockPublicAccessExclusion' => [ 'shape' => 'VpcBlockPublicAccessExclusion', 'locationName' => 'vpcBlockPublicAccessExclusion', ], ], ], 'DeleteVpcEncryptionControlRequest' => [ 'type' => 'structure', 'required' => [ 'VpcEncryptionControlId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcEncryptionControlId' => [ 'shape' => 'VpcEncryptionControlId', ], ], ], 'DeleteVpcEncryptionControlResult' => [ 'type' => 'structure', 'members' => [ 'VpcEncryptionControl' => [ 'shape' => 'VpcEncryptionControl', 'locationName' => 'vpcEncryptionControl', ], ], ], 'DeleteVpcEndpointConnectionNotificationsRequest' => [ 'type' => 'structure', 'required' => [ 'ConnectionNotificationIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ConnectionNotificationIds' => [ 'shape' => 'ConnectionNotificationIdsList', 'locationName' => 'ConnectionNotificationId', ], ], ], 'DeleteVpcEndpointConnectionNotificationsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'DeleteVpcEndpointServiceConfigurationsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceIds' => [ 'shape' => 'VpcEndpointServiceIdList', 'locationName' => 'ServiceId', ], ], ], 'DeleteVpcEndpointServiceConfigurationsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'DeleteVpcEndpointsRequest' => [ 'type' => 'structure', 'required' => [ 'VpcEndpointIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcEndpointIds' => [ 'shape' => 'VpcEndpointIdList', 'locationName' => 'VpcEndpointId', ], ], ], 'DeleteVpcEndpointsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'DeleteVpcPeeringConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'VpcPeeringConnectionId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcPeeringConnectionId' => [ 'shape' => 'VpcPeeringConnectionId', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'DeleteVpcPeeringConnectionResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DeleteVpcRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteVpnConcentratorRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConcentratorId', ], 'members' => [ 'VpnConcentratorId' => [ 'shape' => 'VpnConcentratorId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeleteVpnConcentratorResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DeleteVpnConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeleteVpnConnectionRouteRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationCidrBlock', 'VpnConnectionId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], ], ], 'DeleteVpnGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'VpnGatewayId', ], 'members' => [ 'VpnGatewayId' => [ 'shape' => 'VpnGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeprecationTimeCondition' => [ 'type' => 'structure', 'members' => [ 'MaximumDaysSinceDeprecated' => [ 'shape' => 'MaximumDaysSinceDeprecatedValue', 'locationName' => 'maximumDaysSinceDeprecated', ], ], ], 'DeprecationTimeConditionRequest' => [ 'type' => 'structure', 'members' => [ 'MaximumDaysSinceDeprecated' => [ 'shape' => 'MaximumDaysSinceDeprecatedValue', ], ], ], 'DeprovisionByoipCidrRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeprovisionByoipCidrResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidr' => [ 'shape' => 'ByoipCidr', 'locationName' => 'byoipCidr', ], ], ], 'DeprovisionIpamByoasnRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', 'Asn', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamId' => [ 'shape' => 'IpamId', ], 'Asn' => [ 'shape' => 'String', ], ], ], 'DeprovisionIpamByoasnResult' => [ 'type' => 'structure', 'members' => [ 'Byoasn' => [ 'shape' => 'Byoasn', 'locationName' => 'byoasn', ], ], ], 'DeprovisionIpamPoolCidrRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Cidr' => [ 'shape' => 'String', ], ], ], 'DeprovisionIpamPoolCidrResult' => [ 'type' => 'structure', 'members' => [ 'IpamPoolCidr' => [ 'shape' => 'IpamPoolCidr', 'locationName' => 'ipamPoolCidr', ], ], ], 'DeprovisionPublicIpv4PoolCidrRequest' => [ 'type' => 'structure', 'required' => [ 'PoolId', 'Cidr', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'PoolId' => [ 'shape' => 'Ipv4PoolEc2Id', ], 'Cidr' => [ 'shape' => 'String', ], ], ], 'DeprovisionPublicIpv4PoolCidrResult' => [ 'type' => 'structure', 'members' => [ 'PoolId' => [ 'shape' => 'Ipv4PoolEc2Id', 'locationName' => 'poolId', ], 'DeprovisionedAddresses' => [ 'shape' => 'DeprovisionedAddressSet', 'locationName' => 'deprovisionedAddressSet', ], ], ], 'DeprovisionedAddressSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'DeregisterImageRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DeleteAssociatedSnapshots' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeregisterImageResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'DeleteSnapshotResults' => [ 'shape' => 'DeleteSnapshotResultSet', 'locationName' => 'deleteSnapshotResultSet', ], ], ], 'DeregisterInstanceEventNotificationAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceTagAttribute', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceTagAttribute' => [ 'shape' => 'DeregisterInstanceTagAttributeRequest', ], ], ], 'DeregisterInstanceEventNotificationAttributesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceTagAttribute' => [ 'shape' => 'InstanceTagNotificationAttribute', 'locationName' => 'instanceTagAttribute', ], ], ], 'DeregisterInstanceTagAttributeRequest' => [ 'type' => 'structure', 'members' => [ 'IncludeAllTagsOfInstance' => [ 'shape' => 'Boolean', ], 'InstanceTagKeys' => [ 'shape' => 'InstanceTagKeySet', 'locationName' => 'InstanceTagKey', ], ], ], 'DeregisterTransitGatewayMulticastGroupMembersRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'GroupIpAddress' => [ 'shape' => 'String', ], 'NetworkInterfaceIds' => [ 'shape' => 'TransitGatewayNetworkInterfaceIdList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeregisterTransitGatewayMulticastGroupMembersResult' => [ 'type' => 'structure', 'members' => [ 'DeregisteredMulticastGroupMembers' => [ 'shape' => 'TransitGatewayMulticastDeregisteredGroupMembers', 'locationName' => 'deregisteredMulticastGroupMembers', ], ], ], 'DeregisterTransitGatewayMulticastGroupSourcesRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'GroupIpAddress' => [ 'shape' => 'String', ], 'NetworkInterfaceIds' => [ 'shape' => 'TransitGatewayNetworkInterfaceIdList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DeregisterTransitGatewayMulticastGroupSourcesResult' => [ 'type' => 'structure', 'members' => [ 'DeregisteredMulticastGroupSources' => [ 'shape' => 'TransitGatewayMulticastDeregisteredGroupSources', 'locationName' => 'deregisteredMulticastGroupSources', ], ], ], 'DescribeAccountAttributesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'AttributeNames' => [ 'shape' => 'AccountAttributeNameStringList', 'locationName' => 'attributeName', ], ], ], 'DescribeAccountAttributesResult' => [ 'type' => 'structure', 'members' => [ 'AccountAttributes' => [ 'shape' => 'AccountAttributeList', 'locationName' => 'accountAttributeSet', ], ], ], 'DescribeAccountVpcEncryptionControlRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeAccountVpcEncryptionControlResult' => [ 'type' => 'structure', 'members' => [ 'AccountVpcEncryptionControl' => [ 'shape' => 'AccountVpcEncryptionControl', 'locationName' => 'accountVpcEncryptionControl', ], ], ], 'DescribeAddressTransfersMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeAddressTransfersRequest' => [ 'type' => 'structure', 'members' => [ 'AllocationIds' => [ 'shape' => 'AllocationIdList', 'locationName' => 'AllocationId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeAddressTransfersMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeAddressTransfersResult' => [ 'type' => 'structure', 'members' => [ 'AddressTransfers' => [ 'shape' => 'AddressTransferList', 'locationName' => 'addressTransferSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeAddressesAttributeRequest' => [ 'type' => 'structure', 'members' => [ 'AllocationIds' => [ 'shape' => 'AllocationIds', 'locationName' => 'AllocationId', ], 'Attribute' => [ 'shape' => 'AddressAttributeName', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'AddressMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeAddressesAttributeResult' => [ 'type' => 'structure', 'members' => [ 'Addresses' => [ 'shape' => 'AddressSet', 'locationName' => 'addressSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeAddressesRequest' => [ 'type' => 'structure', 'members' => [ 'PublicIps' => [ 'shape' => 'PublicIpStringList', 'locationName' => 'PublicIp', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'AllocationIds' => [ 'shape' => 'AllocationIdList', 'locationName' => 'AllocationId', ], ], ], 'DescribeAddressesResult' => [ 'type' => 'structure', 'members' => [ 'Addresses' => [ 'shape' => 'AddressList', 'locationName' => 'addressesSet', ], ], ], 'DescribeAggregateIdFormatRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeAggregateIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'UseLongIdsAggregated' => [ 'shape' => 'Boolean', 'locationName' => 'useLongIdsAggregated', ], 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], 'DescribeAvailabilityZonesRequest' => [ 'type' => 'structure', 'members' => [ 'ZoneNames' => [ 'shape' => 'ZoneNameStringList', 'locationName' => 'ZoneName', ], 'ZoneIds' => [ 'shape' => 'ZoneIdStringList', 'locationName' => 'ZoneId', ], 'AllAvailabilityZones' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeAvailabilityZonesResult' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZoneList', 'locationName' => 'availabilityZoneInfo', ], ], ], 'DescribeAwsNetworkPerformanceMetricSubscriptionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResultsParam', ], 'NextToken' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeAwsNetworkPerformanceMetricSubscriptionsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Subscriptions' => [ 'shape' => 'SubscriptionList', 'locationName' => 'subscriptionSet', ], ], ], 'DescribeBundleTasksRequest' => [ 'type' => 'structure', 'members' => [ 'BundleIds' => [ 'shape' => 'BundleIdStringList', 'locationName' => 'BundleId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeBundleTasksResult' => [ 'type' => 'structure', 'members' => [ 'BundleTasks' => [ 'shape' => 'BundleTaskList', 'locationName' => 'bundleInstanceTasksSet', ], ], ], 'DescribeByoipCidrsMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'DescribeByoipCidrsRequest' => [ 'type' => 'structure', 'required' => [ 'MaxResults', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'DescribeByoipCidrsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeByoipCidrsResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidrs' => [ 'shape' => 'ByoipCidrSet', 'locationName' => 'byoipCidrSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityBlockExtensionHistoryRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationIds' => [ 'shape' => 'CapacityReservationIdSet', 'locationName' => 'CapacityReservationId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeFutureCapacityMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCapacityBlockExtensionHistoryResult' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockExtensions' => [ 'shape' => 'CapacityBlockExtensionSet', 'locationName' => 'capacityBlockExtensionSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityBlockExtensionOfferingsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeCapacityBlockExtensionOfferingsRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityBlockExtensionDurationHours', 'CapacityReservationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'CapacityBlockExtensionDurationHours' => [ 'shape' => 'Integer', ], 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityBlockExtensionOfferingsMaxResults', ], ], ], 'DescribeCapacityBlockExtensionOfferingsResult' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockExtensionOfferings' => [ 'shape' => 'CapacityBlockExtensionOfferingSet', 'locationName' => 'capacityBlockExtensionOfferingSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityBlockOfferingsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeCapacityBlockOfferingsRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityDurationHours', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceType' => [ 'shape' => 'String', ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'StartDateRange' => [ 'shape' => 'MillisecondDateTime', ], 'EndDateRange' => [ 'shape' => 'MillisecondDateTime', ], 'CapacityDurationHours' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityBlockOfferingsMaxResults', ], 'UltraserverType' => [ 'shape' => 'String', ], 'UltraserverCount' => [ 'shape' => 'Integer', ], 'AllAvailabilityZones' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCapacityBlockOfferingsResult' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockOfferings' => [ 'shape' => 'CapacityBlockOfferingSet', 'locationName' => 'capacityBlockOfferingSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityBlockStatusMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeCapacityBlockStatusRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockIds' => [ 'shape' => 'CapacityBlockIds', 'locationName' => 'CapacityBlockId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityBlockStatusMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCapacityBlockStatusResult' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockStatuses' => [ 'shape' => 'CapacityBlockStatusSet', 'locationName' => 'capacityBlockStatusSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityBlocksMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeCapacityBlocksRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockIds' => [ 'shape' => 'CapacityBlockIds', 'locationName' => 'CapacityBlockId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityBlocksMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCapacityBlocksResult' => [ 'type' => 'structure', 'members' => [ 'CapacityBlocks' => [ 'shape' => 'CapacityBlockSet', 'locationName' => 'capacityBlockSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityManagerDataExportsRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerDataExportIds' => [ 'shape' => 'CapacityManagerDataExportIdSet', 'locationName' => 'CapacityManagerDataExportId', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityManagerDataExportsRequestMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeCapacityManagerDataExportsRequestMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeCapacityManagerDataExportsResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerDataExports' => [ 'shape' => 'CapacityManagerDataExportResponseSet', 'locationName' => 'capacityManagerDataExportSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityReservationBillingRequestsRequest' => [ 'type' => 'structure', 'required' => [ 'Role', ], 'members' => [ 'CapacityReservationIds' => [ 'shape' => 'CapacityReservationIdSet', 'locationName' => 'CapacityReservationId', ], 'Role' => [ 'shape' => 'CallerRole', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityReservationBillingRequestsRequestMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCapacityReservationBillingRequestsRequestMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeCapacityReservationBillingRequestsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'CapacityReservationBillingRequests' => [ 'shape' => 'CapacityReservationBillingRequestSet', 'locationName' => 'capacityReservationBillingRequestSet', ], ], ], 'DescribeCapacityReservationCancellationQuotesRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationCancellationQuoteIds' => [ 'shape' => 'CapacityReservationCancellationQuoteIdSet', 'locationName' => 'CapacityReservationCancellationQuoteId', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityReservationCancellationQuotesRequestMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeCapacityReservationCancellationQuotesRequestMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeCapacityReservationCancellationQuotesResult' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationCancellationQuotes' => [ 'shape' => 'CapacityReservationCancellationQuoteResponseSet', 'locationName' => 'capacityReservationCancellationQuoteSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityReservationFleetsMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'DescribeCapacityReservationFleetsRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationFleetIds' => [ 'shape' => 'CapacityReservationFleetIdSet', 'locationName' => 'CapacityReservationFleetId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityReservationFleetsMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCapacityReservationFleetsResult' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationFleets' => [ 'shape' => 'CapacityReservationFleetSet', 'locationName' => 'capacityReservationFleetSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeCapacityReservationTopologyMaxResults' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'DescribeCapacityReservationTopologyRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityReservationTopologyMaxResults', ], 'CapacityReservationIds' => [ 'shape' => 'CapacityReservationIdSet', 'locationName' => 'CapacityReservationId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeCapacityReservationTopologyResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'CapacityReservations' => [ 'shape' => 'CapacityReservationTopologySet', 'locationName' => 'capacityReservationSet', ], ], ], 'DescribeCapacityReservationsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeCapacityReservationsRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationIds' => [ 'shape' => 'CapacityReservationIdSet', 'locationName' => 'CapacityReservationId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeCapacityReservationsMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCapacityReservationsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'CapacityReservations' => [ 'shape' => 'CapacityReservationSet', 'locationName' => 'capacityReservationSet', ], ], ], 'DescribeCarrierGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'CarrierGatewayIds' => [ 'shape' => 'CarrierGatewayIdSet', 'locationName' => 'CarrierGatewayId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'CarrierGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCarrierGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'CarrierGateways' => [ 'shape' => 'CarrierGatewaySet', 'locationName' => 'carrierGatewaySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeClassicLinkInstancesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeClassicLinkInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'DescribeClassicLinkInstancesMaxResults', 'locationName' => 'maxResults', ], ], ], 'DescribeClassicLinkInstancesResult' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'ClassicLinkInstanceList', 'locationName' => 'instancesSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeClientVpnAuthorizationRulesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeClientVpnAuthorizationRulesRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeClientVpnAuthorizationRulesMaxResults', ], ], ], 'DescribeClientVpnAuthorizationRulesResult' => [ 'type' => 'structure', 'members' => [ 'AuthorizationRules' => [ 'shape' => 'AuthorizationRuleSet', 'locationName' => 'authorizationRule', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeClientVpnConnectionsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeClientVpnConnectionsRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'DescribeClientVpnConnectionsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeClientVpnConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'Connections' => [ 'shape' => 'ClientVpnConnectionSet', 'locationName' => 'connections', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeClientVpnEndpointMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeClientVpnEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointIds' => [ 'shape' => 'ClientVpnEndpointIdList', 'locationName' => 'ClientVpnEndpointId', ], 'MaxResults' => [ 'shape' => 'DescribeClientVpnEndpointMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeClientVpnEndpointsResult' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpoints' => [ 'shape' => 'EndpointSet', 'locationName' => 'clientVpnEndpoint', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeClientVpnRoutesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeClientVpnRoutesRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeClientVpnRoutesMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeClientVpnRoutesResult' => [ 'type' => 'structure', 'members' => [ 'Routes' => [ 'shape' => 'ClientVpnRouteSet', 'locationName' => 'routes', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeClientVpnTargetNetworksMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeClientVpnTargetNetworksRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'AssociationIds' => [ 'shape' => 'ValueStringList', ], 'MaxResults' => [ 'shape' => 'DescribeClientVpnTargetNetworksMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeClientVpnTargetNetworksResult' => [ 'type' => 'structure', 'members' => [ 'ClientVpnTargetNetworks' => [ 'shape' => 'TargetNetworkSet', 'locationName' => 'clientVpnTargetNetworks', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeCoipPoolsRequest' => [ 'type' => 'structure', 'members' => [ 'PoolIds' => [ 'shape' => 'CoipPoolIdSet', 'locationName' => 'PoolId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'CoipPoolMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeCoipPoolsResult' => [ 'type' => 'structure', 'members' => [ 'CoipPools' => [ 'shape' => 'CoipPoolSet', 'locationName' => 'coipPoolSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeConversionTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ConversionTask', 'locationName' => 'item', ], ], 'DescribeConversionTasksRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'ConversionTaskIds' => [ 'shape' => 'ConversionIdStringList', 'locationName' => 'conversionTaskId', ], ], ], 'DescribeConversionTasksResult' => [ 'type' => 'structure', 'members' => [ 'ConversionTasks' => [ 'shape' => 'DescribeConversionTaskList', 'locationName' => 'conversionTasks', ], ], ], 'DescribeCustomerGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'CustomerGatewayIds' => [ 'shape' => 'CustomerGatewayIdStringList', 'locationName' => 'CustomerGatewayId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeCustomerGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'CustomerGateways' => [ 'shape' => 'CustomerGatewayList', 'locationName' => 'customerGatewaySet', ], ], ], 'DescribeDeclarativePoliciesReportsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DeclarativePoliciesMaxResults', ], 'ReportIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'ReportId', ], ], ], 'DescribeDeclarativePoliciesReportsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Reports' => [ 'shape' => 'DeclarativePoliciesReportList', 'locationName' => 'reportSet', ], ], ], 'DescribeDhcpOptionsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeDhcpOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'DhcpOptionsIds' => [ 'shape' => 'DhcpOptionsIdStringList', 'locationName' => 'DhcpOptionsId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeDhcpOptionsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeDhcpOptionsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'DhcpOptions' => [ 'shape' => 'DhcpOptionsList', 'locationName' => 'dhcpOptionsSet', ], ], ], 'DescribeEgressOnlyInternetGatewaysMaxResults' => [ 'type' => 'integer', 'max' => 255, 'min' => 5, ], 'DescribeEgressOnlyInternetGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'EgressOnlyInternetGatewayIds' => [ 'shape' => 'EgressOnlyInternetGatewayIdList', 'locationName' => 'EgressOnlyInternetGatewayId', ], 'MaxResults' => [ 'shape' => 'DescribeEgressOnlyInternetGatewaysMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeEgressOnlyInternetGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'EgressOnlyInternetGateways' => [ 'shape' => 'EgressOnlyInternetGatewayList', 'locationName' => 'egressOnlyInternetGatewaySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeElasticGpusMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 10, ], 'DescribeElasticGpusRequest' => [ 'type' => 'structure', 'members' => [ 'ElasticGpuIds' => [ 'shape' => 'ElasticGpuIdSet', 'locationName' => 'ElasticGpuId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeElasticGpusMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeElasticGpusResult' => [ 'type' => 'structure', 'members' => [ 'ElasticGpuSet' => [ 'shape' => 'ElasticGpuSet', 'locationName' => 'elasticGpuSet', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeExportImageTasksMaxResults' => [ 'type' => 'integer', 'max' => 500, 'min' => 1, ], 'DescribeExportImageTasksRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'ExportImageTaskIds' => [ 'shape' => 'ExportImageTaskIdList', 'locationName' => 'ExportImageTaskId', ], 'MaxResults' => [ 'shape' => 'DescribeExportImageTasksMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeExportImageTasksResult' => [ 'type' => 'structure', 'members' => [ 'ExportImageTasks' => [ 'shape' => 'ExportImageTaskList', 'locationName' => 'exportImageTaskSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeExportTasksRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'ExportTaskIds' => [ 'shape' => 'ExportTaskIdStringList', 'locationName' => 'exportTaskId', ], ], ], 'DescribeExportTasksResult' => [ 'type' => 'structure', 'members' => [ 'ExportTasks' => [ 'shape' => 'ExportTaskList', 'locationName' => 'exportTaskSet', ], ], ], 'DescribeFastLaunchImagesRequest' => [ 'type' => 'structure', 'members' => [ 'ImageIds' => [ 'shape' => 'FastLaunchImageIdList', 'locationName' => 'ImageId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeFastLaunchImagesRequestMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeFastLaunchImagesRequestMaxResults' => [ 'type' => 'integer', 'max' => 200, 'min' => 0, ], 'DescribeFastLaunchImagesResult' => [ 'type' => 'structure', 'members' => [ 'FastLaunchImages' => [ 'shape' => 'DescribeFastLaunchImagesSuccessSet', 'locationName' => 'fastLaunchImageSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeFastLaunchImagesSuccessItem' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'ResourceType' => [ 'shape' => 'FastLaunchResourceType', 'locationName' => 'resourceType', ], 'SnapshotConfiguration' => [ 'shape' => 'FastLaunchSnapshotConfigurationResponse', 'locationName' => 'snapshotConfiguration', ], 'LaunchTemplate' => [ 'shape' => 'FastLaunchLaunchTemplateSpecificationResponse', 'locationName' => 'launchTemplate', ], 'MaxParallelLaunches' => [ 'shape' => 'Integer', 'locationName' => 'maxParallelLaunches', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'State' => [ 'shape' => 'FastLaunchStateCode', 'locationName' => 'state', ], 'StateTransitionReason' => [ 'shape' => 'String', 'locationName' => 'stateTransitionReason', ], 'StateTransitionTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'stateTransitionTime', ], ], ], 'DescribeFastLaunchImagesSuccessSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DescribeFastLaunchImagesSuccessItem', 'locationName' => 'item', ], ], 'DescribeFastSnapshotRestoreSuccessItem' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'State' => [ 'shape' => 'FastSnapshotRestoreStateCode', 'locationName' => 'state', ], 'StateTransitionReason' => [ 'shape' => 'String', 'locationName' => 'stateTransitionReason', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'OwnerAlias' => [ 'shape' => 'String', 'locationName' => 'ownerAlias', ], 'EnablingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'enablingTime', ], 'OptimizingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'optimizingTime', ], 'EnabledTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'enabledTime', ], 'DisablingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'disablingTime', ], 'DisabledTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'disabledTime', ], ], ], 'DescribeFastSnapshotRestoreSuccessSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DescribeFastSnapshotRestoreSuccessItem', 'locationName' => 'item', ], ], 'DescribeFastSnapshotRestoresMaxResults' => [ 'type' => 'integer', 'max' => 200, 'min' => 0, ], 'DescribeFastSnapshotRestoresRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeFastSnapshotRestoresMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeFastSnapshotRestoresResult' => [ 'type' => 'structure', 'members' => [ 'FastSnapshotRestores' => [ 'shape' => 'DescribeFastSnapshotRestoreSuccessSet', 'locationName' => 'fastSnapshotRestoreSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeFleetError' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateAndOverrides' => [ 'shape' => 'LaunchTemplateAndOverridesResponse', 'locationName' => 'launchTemplateAndOverrides', ], 'Lifecycle' => [ 'shape' => 'InstanceLifecycle', 'locationName' => 'lifecycle', ], 'ErrorCode' => [ 'shape' => 'String', 'locationName' => 'errorCode', ], 'ErrorMessage' => [ 'shape' => 'String', 'locationName' => 'errorMessage', ], ], ], 'DescribeFleetHistoryRequest' => [ 'type' => 'structure', 'required' => [ 'FleetId', 'StartTime', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'EventType' => [ 'shape' => 'FleetEventType', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'FleetId' => [ 'shape' => 'FleetId', ], 'StartTime' => [ 'shape' => 'DateTime', ], ], ], 'DescribeFleetHistoryResult' => [ 'type' => 'structure', 'members' => [ 'HistoryRecords' => [ 'shape' => 'HistoryRecordSet', 'locationName' => 'historyRecordSet', ], 'LastEvaluatedTime' => [ 'shape' => 'DateTime', 'locationName' => 'lastEvaluatedTime', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'FleetId' => [ 'shape' => 'FleetId', 'locationName' => 'fleetId', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], ], ], 'DescribeFleetInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'FleetId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'FleetId' => [ 'shape' => 'FleetId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeFleetInstancesResult' => [ 'type' => 'structure', 'members' => [ 'ActiveInstances' => [ 'shape' => 'ActiveInstanceSet', 'locationName' => 'activeInstanceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'FleetId' => [ 'shape' => 'FleetId', 'locationName' => 'fleetId', ], ], ], 'DescribeFleetsErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DescribeFleetError', 'locationName' => 'item', ], ], 'DescribeFleetsInstances' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateAndOverrides' => [ 'shape' => 'LaunchTemplateAndOverridesResponse', 'locationName' => 'launchTemplateAndOverrides', ], 'Lifecycle' => [ 'shape' => 'InstanceLifecycle', 'locationName' => 'lifecycle', ], 'InstanceIds' => [ 'shape' => 'InstanceIdsSet', 'locationName' => 'instanceIds', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], ], ], 'DescribeFleetsInstancesSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DescribeFleetsInstances', 'locationName' => 'item', ], ], 'DescribeFleetsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'FleetIds' => [ 'shape' => 'FleetIdSet', 'locationName' => 'FleetId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeFleetsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Fleets' => [ 'shape' => 'FleetSet', 'locationName' => 'fleetSet', ], ], ], 'DescribeFlowLogsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filter' => [ 'shape' => 'FilterList', ], 'FlowLogIds' => [ 'shape' => 'FlowLogIdList', 'locationName' => 'FlowLogId', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeFlowLogsResult' => [ 'type' => 'structure', 'members' => [ 'FlowLogs' => [ 'shape' => 'FlowLogSet', 'locationName' => 'flowLogSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeFpgaImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'FpgaImageId', 'Attribute', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FpgaImageId' => [ 'shape' => 'FpgaImageId', ], 'Attribute' => [ 'shape' => 'FpgaImageAttributeName', ], ], ], 'DescribeFpgaImageAttributeResult' => [ 'type' => 'structure', 'members' => [ 'FpgaImageAttribute' => [ 'shape' => 'FpgaImageAttribute', 'locationName' => 'fpgaImageAttribute', ], ], ], 'DescribeFpgaImagesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeFpgaImagesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FpgaImageIds' => [ 'shape' => 'FpgaImageIdList', 'locationName' => 'FpgaImageId', ], 'Owners' => [ 'shape' => 'OwnerStringList', 'locationName' => 'Owner', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'DescribeFpgaImagesMaxResults', ], ], ], 'DescribeFpgaImagesResult' => [ 'type' => 'structure', 'members' => [ 'FpgaImages' => [ 'shape' => 'FpgaImageList', 'locationName' => 'fpgaImageSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeFutureCapacityMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeHostReservationOfferingsRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'FilterList', ], 'MaxDuration' => [ 'shape' => 'Integer', ], 'MaxResults' => [ 'shape' => 'DescribeHostReservationsMaxResults', ], 'MinDuration' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'OfferingId' => [ 'shape' => 'OfferingId', ], ], ], 'DescribeHostReservationOfferingsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'OfferingSet' => [ 'shape' => 'HostOfferingSet', 'locationName' => 'offeringSet', ], ], ], 'DescribeHostReservationsMaxResults' => [ 'type' => 'integer', 'max' => 500, 'min' => 5, ], 'DescribeHostReservationsRequest' => [ 'type' => 'structure', 'members' => [ 'Filter' => [ 'shape' => 'FilterList', ], 'HostReservationIdSet' => [ 'shape' => 'HostReservationIdSet', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeHostReservationsResult' => [ 'type' => 'structure', 'members' => [ 'HostReservationSet' => [ 'shape' => 'HostReservationSet', 'locationName' => 'hostReservationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeHostsRequest' => [ 'type' => 'structure', 'members' => [ 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'Filter' => [ 'shape' => 'FilterList', 'locationName' => 'filter', ], ], ], 'DescribeHostsResult' => [ 'type' => 'structure', 'members' => [ 'Hosts' => [ 'shape' => 'HostList', 'locationName' => 'hostSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeIamInstanceProfileAssociationsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeIamInstanceProfileAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'AssociationIds' => [ 'shape' => 'AssociationIdList', 'locationName' => 'AssociationId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeIamInstanceProfileAssociationsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeIamInstanceProfileAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'IamInstanceProfileAssociations' => [ 'shape' => 'IamInstanceProfileAssociationSet', 'locationName' => 'iamInstanceProfileAssociationSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeIdFormatRequest' => [ 'type' => 'structure', 'members' => [ 'Resource' => [ 'shape' => 'String', ], ], ], 'DescribeIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], 'DescribeIdentityIdFormatRequest' => [ 'type' => 'structure', 'required' => [ 'PrincipalArn', ], 'members' => [ 'Resource' => [ 'shape' => 'String', 'locationName' => 'resource', ], 'PrincipalArn' => [ 'shape' => 'String', 'locationName' => 'principalArn', ], ], ], 'DescribeIdentityIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], 'DescribeImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'ImageId', ], 'members' => [ 'Attribute' => [ 'shape' => 'ImageAttributeName', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeImageReferencesImageIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageId', ], 'max' => 10, 'min' => 1, ], 'DescribeImageReferencesMaxResults' => [ 'type' => 'integer', 'min' => 5, ], 'DescribeImageReferencesRequest' => [ 'type' => 'structure', 'required' => [ 'ImageIds', ], 'members' => [ 'ImageIds' => [ 'shape' => 'DescribeImageReferencesImageIdStringList', 'locationName' => 'ImageId', ], 'IncludeAllResourceTypes' => [ 'shape' => 'Boolean', ], 'ResourceTypes' => [ 'shape' => 'ResourceTypeRequestList', 'locationName' => 'ResourceType', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'DescribeImageReferencesMaxResults', ], ], ], 'DescribeImageReferencesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ImageReferences' => [ 'shape' => 'ImageReferenceList', 'locationName' => 'imageReferenceSet', ], ], ], 'DescribeImageUsageReportEntriesMaxResults' => [ 'type' => 'integer', 'min' => 1, ], 'DescribeImageUsageReportEntriesRequest' => [ 'type' => 'structure', 'members' => [ 'ImageIds' => [ 'shape' => 'DescribeImageUsageReportsImageIdStringList', 'locationName' => 'ImageId', ], 'ReportIds' => [ 'shape' => 'ImageUsageReportIdStringList', 'locationName' => 'ReportId', ], 'NextToken' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'DescribeImageUsageReportEntriesMaxResults', ], ], ], 'DescribeImageUsageReportEntriesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ImageUsageReportEntries' => [ 'shape' => 'ImageUsageReportEntryList', 'locationName' => 'imageUsageReportEntrySet', ], ], ], 'DescribeImageUsageReportsImageIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageId', ], 'max' => 200, 'min' => 0, ], 'DescribeImageUsageReportsMaxResults' => [ 'type' => 'integer', 'min' => 1, ], 'DescribeImageUsageReportsRequest' => [ 'type' => 'structure', 'members' => [ 'ImageIds' => [ 'shape' => 'DescribeImageUsageReportsImageIdStringList', 'locationName' => 'ImageId', ], 'ReportIds' => [ 'shape' => 'ImageUsageReportIdStringList', 'locationName' => 'ReportId', ], 'NextToken' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'DescribeImageUsageReportsMaxResults', ], ], ], 'DescribeImageUsageReportsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ImageUsageReports' => [ 'shape' => 'ImageUsageReportList', 'locationName' => 'imageUsageReportSet', ], ], ], 'DescribeImagesRequest' => [ 'type' => 'structure', 'members' => [ 'ExecutableUsers' => [ 'shape' => 'ExecutableByStringList', 'locationName' => 'ExecutableBy', ], 'ImageIds' => [ 'shape' => 'ImageIdStringList', 'locationName' => 'ImageId', ], 'Owners' => [ 'shape' => 'OwnerStringList', 'locationName' => 'Owner', ], 'IncludeDeprecated' => [ 'shape' => 'Boolean', ], 'IncludeDisabled' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeImagesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Images' => [ 'shape' => 'ImageList', 'locationName' => 'imagesSet', ], ], ], 'DescribeImportImageTasksRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', ], 'ImportTaskIds' => [ 'shape' => 'ImportTaskIdList', 'locationName' => 'ImportTaskId', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeImportImageTasksResult' => [ 'type' => 'structure', 'members' => [ 'ImportImageTasks' => [ 'shape' => 'ImportImageTaskList', 'locationName' => 'importImageTaskSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeImportSnapshotTasksRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', ], 'ImportTaskIds' => [ 'shape' => 'ImportSnapshotTaskIdList', 'locationName' => 'ImportTaskId', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeImportSnapshotTasksResult' => [ 'type' => 'structure', 'members' => [ 'ImportSnapshotTasks' => [ 'shape' => 'ImportSnapshotTaskList', 'locationName' => 'importSnapshotTaskSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'Attribute', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'Attribute' => [ 'shape' => 'InstanceAttributeName', 'locationName' => 'attribute', ], ], ], 'DescribeInstanceConnectEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'InstanceConnectEndpointMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'InstanceConnectEndpointIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'InstanceConnectEndpointId', ], ], ], 'DescribeInstanceConnectEndpointsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceConnectEndpoints' => [ 'shape' => 'InstanceConnectEndpointSet', 'locationName' => 'instanceConnectEndpointSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceCreditSpecificationsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeInstanceCreditSpecificationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'MaxResults' => [ 'shape' => 'DescribeInstanceCreditSpecificationsMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeInstanceCreditSpecificationsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceCreditSpecifications' => [ 'shape' => 'InstanceCreditSpecificationList', 'locationName' => 'instanceCreditSpecificationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceEventNotificationAttributesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeInstanceEventNotificationAttributesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceTagAttribute' => [ 'shape' => 'InstanceTagNotificationAttribute', 'locationName' => 'instanceTagAttribute', ], ], ], 'DescribeInstanceEventWindowsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceEventWindowIds' => [ 'shape' => 'InstanceEventWindowIdSet', 'locationName' => 'InstanceEventWindowId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'ResultRange', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeInstanceEventWindowsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceEventWindows' => [ 'shape' => 'InstanceEventWindowSet', 'locationName' => 'instanceEventWindowSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceImageMetadataMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeInstanceImageMetadataRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'MaxResults' => [ 'shape' => 'DescribeInstanceImageMetadataMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeInstanceImageMetadataResult' => [ 'type' => 'structure', 'members' => [ 'InstanceImageMetadata' => [ 'shape' => 'InstanceImageMetadataList', 'locationName' => 'instanceImageMetadataSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceSqlHaHistoryStatesRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', ], 'EndTime' => [ 'shape' => 'MillisecondDateTime', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'DescribeInstanceSqlHaStatesRequestMaxResultsInteger', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeInstanceSqlHaHistoryStatesResult' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'RegisteredInstanceList', 'locationName' => 'instanceSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceSqlHaStatesRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'DescribeInstanceSqlHaStatesRequestMaxResultsInteger', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeInstanceSqlHaStatesRequestMaxResultsInteger' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeInstanceSqlHaStatesResult' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'RegisteredInstanceList', 'locationName' => 'instanceSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceStatusRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'IncludeManagedResources' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'IncludeAllInstances' => [ 'shape' => 'Boolean', 'locationName' => 'includeAllInstances', ], ], ], 'DescribeInstanceStatusResult' => [ 'type' => 'structure', 'members' => [ 'InstanceStatuses' => [ 'shape' => 'InstanceStatusList', 'locationName' => 'instanceStatusSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceTopologyGroupNameSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementGroupName', ], ], 'DescribeInstanceTopologyInstanceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', ], ], 'DescribeInstanceTopologyMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'DescribeInstanceTopologyRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeInstanceTopologyMaxResults', ], 'InstanceIds' => [ 'shape' => 'DescribeInstanceTopologyInstanceIdSet', 'locationName' => 'InstanceId', ], 'GroupNames' => [ 'shape' => 'DescribeInstanceTopologyGroupNameSet', 'locationName' => 'GroupName', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeInstanceTopologyResult' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'InstanceSet', 'locationName' => 'instanceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceTypeOfferingsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'LocationType' => [ 'shape' => 'LocationType', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DITOMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeInstanceTypeOfferingsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceTypeOfferings' => [ 'shape' => 'InstanceTypeOfferingsList', 'locationName' => 'instanceTypeOfferingSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeInstanceTypesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceTypes' => [ 'shape' => 'RequestInstanceTypeList', 'locationName' => 'InstanceType', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DITMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IncludeUnsupportedInRegion' => [ 'shape' => 'IncludeUnsupportedInRegion', ], ], ], 'DescribeInstanceTypesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceTypes' => [ 'shape' => 'InstanceTypeInfoList', 'locationName' => 'instanceTypeSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'IncludeManagedResources' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], ], ], 'DescribeInstancesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Reservations' => [ 'shape' => 'ReservationList', 'locationName' => 'reservationSet', ], ], ], 'DescribeInternetGatewaysMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeInternetGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeInternetGatewaysMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InternetGatewayIds' => [ 'shape' => 'InternetGatewayIdList', 'locationName' => 'internetGatewayId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeInternetGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'InternetGateways' => [ 'shape' => 'InternetGatewayList', 'locationName' => 'internetGatewaySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeIpamByoasnMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'DescribeIpamByoasnRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'DescribeIpamByoasnMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeIpamByoasnResult' => [ 'type' => 'structure', 'members' => [ 'Byoasns' => [ 'shape' => 'ByoasnSet', 'locationName' => 'byoasnSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeIpamExternalResourceVerificationTokensRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'IpamExternalResourceVerificationTokenIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamExternalResourceVerificationTokenId', ], ], ], 'DescribeIpamExternalResourceVerificationTokensResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'IpamExternalResourceVerificationTokens' => [ 'shape' => 'IpamExternalResourceVerificationTokenSet', 'locationName' => 'ipamExternalResourceVerificationTokenSet', ], ], ], 'DescribeIpamPoliciesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IpamPolicyIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamPolicyId', ], ], ], 'DescribeIpamPoliciesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'IpamPolicies' => [ 'shape' => 'IpamPolicySet', 'locationName' => 'ipamPolicySet', ], ], ], 'DescribeIpamPoolAllocationsMaxResults' => [ 'type' => 'integer', 'max' => 100000, 'min' => 1000, ], 'DescribeIpamPoolAllocationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolAllocationIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamPoolAllocationId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeIpamPoolAllocationsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeIpamPoolAllocationsResult' => [ 'type' => 'structure', 'members' => [ 'IpamPoolAllocations' => [ 'shape' => 'IpamPoolAllocationSet', 'locationName' => 'ipamPoolAllocationSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeIpamPoolsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IpamPoolIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamPoolId', ], ], ], 'DescribeIpamPoolsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'IpamPools' => [ 'shape' => 'IpamPoolSet', 'locationName' => 'ipamPoolSet', ], ], ], 'DescribeIpamPrefixListResolverTargetsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IpamPrefixListResolverTargetIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamPrefixListResolverTargetId', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', ], ], ], 'DescribeIpamPrefixListResolverTargetsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'IpamPrefixListResolverTargets' => [ 'shape' => 'IpamPrefixListResolverTargetSet', 'locationName' => 'ipamPrefixListResolverTargetSet', ], ], ], 'DescribeIpamPrefixListResolversRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IpamPrefixListResolverIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamPrefixListResolverId', ], ], ], 'DescribeIpamPrefixListResolversResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'IpamPrefixListResolvers' => [ 'shape' => 'IpamPrefixListResolverSet', 'locationName' => 'ipamPrefixListResolverSet', ], ], ], 'DescribeIpamResourceDiscoveriesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamResourceDiscoveryIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamResourceDiscoveryId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeIpamResourceDiscoveriesResult' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscoveries' => [ 'shape' => 'IpamResourceDiscoverySet', 'locationName' => 'ipamResourceDiscoverySet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeIpamResourceDiscoveryAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamResourceDiscoveryAssociationIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamResourceDiscoveryAssociationId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeIpamResourceDiscoveryAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscoveryAssociations' => [ 'shape' => 'IpamResourceDiscoveryAssociationSet', 'locationName' => 'ipamResourceDiscoveryAssociationSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeIpamScopesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IpamScopeIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamScopeId', ], ], ], 'DescribeIpamScopesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'IpamScopes' => [ 'shape' => 'IpamScopeSet', 'locationName' => 'ipamScopeSet', ], ], ], 'DescribeIpamsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IpamIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'IpamId', ], ], ], 'DescribeIpamsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'Ipams' => [ 'shape' => 'IpamSet', 'locationName' => 'ipamSet', ], ], ], 'DescribeIpv6PoolsRequest' => [ 'type' => 'structure', 'members' => [ 'PoolIds' => [ 'shape' => 'Ipv6PoolIdList', 'locationName' => 'PoolId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'Ipv6PoolMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeIpv6PoolsResult' => [ 'type' => 'structure', 'members' => [ 'Ipv6Pools' => [ 'shape' => 'Ipv6PoolSet', 'locationName' => 'ipv6PoolSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeKeyPairsRequest' => [ 'type' => 'structure', 'members' => [ 'KeyNames' => [ 'shape' => 'KeyNameStringList', 'locationName' => 'KeyName', ], 'KeyPairIds' => [ 'shape' => 'KeyPairIdStringList', 'locationName' => 'KeyPairId', ], 'IncludePublicKey' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeKeyPairsResult' => [ 'type' => 'structure', 'members' => [ 'KeyPairs' => [ 'shape' => 'KeyPairList', 'locationName' => 'keySet', ], ], ], 'DescribeLaunchTemplateVersionsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'Versions' => [ 'shape' => 'VersionStringList', 'locationName' => 'LaunchTemplateVersion', ], 'MinVersion' => [ 'shape' => 'String', ], 'MaxVersion' => [ 'shape' => 'String', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'ResolveAlias' => [ 'shape' => 'Boolean', ], 'IncludeManagedResources' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLaunchTemplateVersionsResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateVersions' => [ 'shape' => 'LaunchTemplateVersionSet', 'locationName' => 'launchTemplateVersionSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLaunchTemplatesMaxResults' => [ 'type' => 'integer', 'max' => 200, 'min' => 1, ], 'DescribeLaunchTemplatesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'LaunchTemplateIds' => [ 'shape' => 'LaunchTemplateIdStringList', 'locationName' => 'LaunchTemplateId', ], 'LaunchTemplateNames' => [ 'shape' => 'LaunchTemplateNameStringList', 'locationName' => 'LaunchTemplateName', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeLaunchTemplatesMaxResults', ], 'IncludeManagedResources' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLaunchTemplatesResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplates' => [ 'shape' => 'LaunchTemplateSet', 'locationName' => 'launchTemplates', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationIds' => [ 'shape' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet', 'locationName' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'LocalGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVirtualInterfaceGroupAssociations' => [ 'shape' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet', 'locationName' => 'localGatewayRouteTableVirtualInterfaceGroupAssociationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLocalGatewayRouteTableVpcAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVpcAssociationIds' => [ 'shape' => 'LocalGatewayRouteTableVpcAssociationIdSet', 'locationName' => 'LocalGatewayRouteTableVpcAssociationId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'LocalGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLocalGatewayRouteTableVpcAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVpcAssociations' => [ 'shape' => 'LocalGatewayRouteTableVpcAssociationSet', 'locationName' => 'localGatewayRouteTableVpcAssociationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLocalGatewayRouteTablesRequest' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableIds' => [ 'shape' => 'LocalGatewayRouteTableIdSet', 'locationName' => 'LocalGatewayRouteTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'LocalGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLocalGatewayRouteTablesResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTables' => [ 'shape' => 'LocalGatewayRouteTableSet', 'locationName' => 'localGatewayRouteTableSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLocalGatewayVirtualInterfaceGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterfaceGroupIds' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupIdSet', 'locationName' => 'LocalGatewayVirtualInterfaceGroupId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'LocalGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLocalGatewayVirtualInterfaceGroupsResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterfaceGroups' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupSet', 'locationName' => 'localGatewayVirtualInterfaceGroupSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLocalGatewayVirtualInterfacesRequest' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterfaceIds' => [ 'shape' => 'LocalGatewayVirtualInterfaceIdSet', 'locationName' => 'LocalGatewayVirtualInterfaceId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'LocalGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLocalGatewayVirtualInterfacesResult' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterfaces' => [ 'shape' => 'LocalGatewayVirtualInterfaceSet', 'locationName' => 'localGatewayVirtualInterfaceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLocalGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayIds' => [ 'shape' => 'LocalGatewayIdSet', 'locationName' => 'LocalGatewayId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'LocalGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLocalGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'LocalGateways' => [ 'shape' => 'LocalGatewaySet', 'locationName' => 'localGatewaySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeLockedSnapshotsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeLockedSnapshotsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeLockedSnapshotsMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'SnapshotIds' => [ 'shape' => 'SnapshotIdStringList', 'locationName' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeLockedSnapshotsResult' => [ 'type' => 'structure', 'members' => [ 'Snapshots' => [ 'shape' => 'LockedSnapshotsInfoList', 'locationName' => 'snapshotSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeMacHostsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'HostId', ], 'MaxResults' => [ 'shape' => 'DescribeMacHostsRequestMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeMacHostsRequestMaxResults' => [ 'type' => 'integer', 'max' => 500, 'min' => 5, ], 'DescribeMacHostsResult' => [ 'type' => 'structure', 'members' => [ 'MacHosts' => [ 'shape' => 'MacHostList', 'locationName' => 'macHostSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeMacModificationTasksMaxResults' => [ 'type' => 'integer', 'max' => 500, 'min' => 1, ], 'DescribeMacModificationTasksRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MacModificationTaskIds' => [ 'shape' => 'MacModificationTaskIdList', 'locationName' => 'MacModificationTaskId', ], 'MaxResults' => [ 'shape' => 'DescribeMacModificationTasksMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeMacModificationTasksResult' => [ 'type' => 'structure', 'members' => [ 'MacModificationTasks' => [ 'shape' => 'MacModificationTaskList', 'locationName' => 'macModificationTaskSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeManagedPrefixListsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'PrefixListMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'PrefixListIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'PrefixListId', ], ], ], 'DescribeManagedPrefixListsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'PrefixLists' => [ 'shape' => 'ManagedPrefixListSet', 'locationName' => 'prefixListSet', ], ], ], 'DescribeMovingAddressesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeMovingAddressesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'PublicIps' => [ 'shape' => 'ValueStringList', 'locationName' => 'publicIp', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'filter', ], 'MaxResults' => [ 'shape' => 'DescribeMovingAddressesMaxResults', 'locationName' => 'maxResults', ], ], ], 'DescribeMovingAddressesResult' => [ 'type' => 'structure', 'members' => [ 'MovingAddressStatuses' => [ 'shape' => 'MovingAddressStatusSet', 'locationName' => 'movingAddressStatusSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNatGatewaysMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeNatGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filter' => [ 'shape' => 'FilterList', ], 'MaxResults' => [ 'shape' => 'DescribeNatGatewaysMaxResults', ], 'NatGatewayIds' => [ 'shape' => 'NatGatewayIdStringList', 'locationName' => 'NatGatewayId', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeNatGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'NatGateways' => [ 'shape' => 'NatGatewayList', 'locationName' => 'natGatewaySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkAclsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeNetworkAclsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeNetworkAclsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkAclIds' => [ 'shape' => 'NetworkAclIdStringList', 'locationName' => 'NetworkAclId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeNetworkAclsResult' => [ 'type' => 'structure', 'members' => [ 'NetworkAcls' => [ 'shape' => 'NetworkAclList', 'locationName' => 'networkAclSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkInsightsAccessScopeAnalysesRequest' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeAnalysisIds' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisIdList', 'locationName' => 'NetworkInsightsAccessScopeAnalysisId', ], 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', ], 'AnalysisStartTimeBegin' => [ 'shape' => 'MillisecondDateTime', ], 'AnalysisStartTimeEnd' => [ 'shape' => 'MillisecondDateTime', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'NetworkInsightsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeNetworkInsightsAccessScopeAnalysesResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeAnalyses' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisList', 'locationName' => 'networkInsightsAccessScopeAnalysisSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkInsightsAccessScopesRequest' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeIds' => [ 'shape' => 'NetworkInsightsAccessScopeIdList', 'locationName' => 'NetworkInsightsAccessScopeId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'NetworkInsightsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeNetworkInsightsAccessScopesResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopes' => [ 'shape' => 'NetworkInsightsAccessScopeList', 'locationName' => 'networkInsightsAccessScopeSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkInsightsAnalysesRequest' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAnalysisIds' => [ 'shape' => 'NetworkInsightsAnalysisIdList', 'locationName' => 'NetworkInsightsAnalysisId', ], 'NetworkInsightsPathId' => [ 'shape' => 'NetworkInsightsPathId', ], 'AnalysisStartTime' => [ 'shape' => 'MillisecondDateTime', ], 'AnalysisEndTime' => [ 'shape' => 'MillisecondDateTime', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'NetworkInsightsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeNetworkInsightsAnalysesResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAnalyses' => [ 'shape' => 'NetworkInsightsAnalysisList', 'locationName' => 'networkInsightsAnalysisSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkInsightsPathsRequest' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsPathIds' => [ 'shape' => 'NetworkInsightsPathIdList', 'locationName' => 'NetworkInsightsPathId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'NetworkInsightsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeNetworkInsightsPathsResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsPaths' => [ 'shape' => 'NetworkInsightsPathList', 'locationName' => 'networkInsightsPathSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkInterfaceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'Attribute' => [ 'shape' => 'NetworkInterfaceAttribute', 'locationName' => 'attribute', ], ], ], 'DescribeNetworkInterfaceAttributeResult' => [ 'type' => 'structure', 'members' => [ 'Attachment' => [ 'shape' => 'NetworkInterfaceAttachment', 'locationName' => 'attachment', ], 'Description' => [ 'shape' => 'AttributeValue', 'locationName' => 'description', ], 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'SourceDestCheck' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'sourceDestCheck', ], 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', 'locationName' => 'associatePublicIpAddress', ], ], ], 'DescribeNetworkInterfacePermissionsMaxResults' => [ 'type' => 'integer', 'max' => 255, 'min' => 5, ], 'DescribeNetworkInterfacePermissionsRequest' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfacePermissionIds' => [ 'shape' => 'NetworkInterfacePermissionIdList', 'locationName' => 'NetworkInterfacePermissionId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeNetworkInterfacePermissionsMaxResults', ], ], ], 'DescribeNetworkInterfacePermissionsResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfacePermissions' => [ 'shape' => 'NetworkInterfacePermissionList', 'locationName' => 'networkInterfacePermissions', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeNetworkInterfacesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeNetworkInterfacesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeNetworkInterfacesMaxResults', ], 'IncludeManagedResources' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceIds' => [ 'shape' => 'NetworkInterfaceIdList', 'locationName' => 'NetworkInterfaceId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'filter', ], ], ], 'DescribeNetworkInterfacesResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaces' => [ 'shape' => 'NetworkInterfaceList', 'locationName' => 'networkInterfaceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeOutpostLagsRequest' => [ 'type' => 'structure', 'members' => [ 'OutpostLagIds' => [ 'shape' => 'OutpostLagIdSet', 'locationName' => 'OutpostLagId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'OutpostLagMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeOutpostLagsResult' => [ 'type' => 'structure', 'members' => [ 'OutpostLags' => [ 'shape' => 'OutpostLagSet', 'locationName' => 'outpostLagSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribePlacementGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'GroupIds' => [ 'shape' => 'PlacementGroupIdStringList', 'locationName' => 'GroupId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'GroupNames' => [ 'shape' => 'PlacementGroupStringList', 'locationName' => 'groupName', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribePlacementGroupsResult' => [ 'type' => 'structure', 'members' => [ 'PlacementGroups' => [ 'shape' => 'PlacementGroupList', 'locationName' => 'placementGroupSet', ], ], ], 'DescribePrefixListsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'PrefixListIds' => [ 'shape' => 'PrefixListResourceIdStringList', 'locationName' => 'PrefixListId', ], ], ], 'DescribePrefixListsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'PrefixLists' => [ 'shape' => 'PrefixListSet', 'locationName' => 'prefixListSet', ], ], ], 'DescribePrincipalIdFormatMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribePrincipalIdFormatRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Resources' => [ 'shape' => 'ResourceList', 'locationName' => 'Resource', ], 'MaxResults' => [ 'shape' => 'DescribePrincipalIdFormatMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribePrincipalIdFormatResult' => [ 'type' => 'structure', 'members' => [ 'Principals' => [ 'shape' => 'PrincipalIdFormatList', 'locationName' => 'principalSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribePublicIpv4PoolsRequest' => [ 'type' => 'structure', 'members' => [ 'PoolIds' => [ 'shape' => 'PublicIpv4PoolIdStringList', 'locationName' => 'PoolId', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'PoolMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribePublicIpv4PoolsResult' => [ 'type' => 'structure', 'members' => [ 'PublicIpv4Pools' => [ 'shape' => 'PublicIpv4PoolSet', 'locationName' => 'publicIpv4PoolSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeRegionsRequest' => [ 'type' => 'structure', 'members' => [ 'RegionNames' => [ 'shape' => 'RegionNameStringList', 'locationName' => 'RegionName', ], 'AllRegions' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeRegionsResult' => [ 'type' => 'structure', 'members' => [ 'Regions' => [ 'shape' => 'RegionList', 'locationName' => 'regionInfo', ], ], ], 'DescribeReplaceRootVolumeTasksMaxResults' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'DescribeReplaceRootVolumeTasksRequest' => [ 'type' => 'structure', 'members' => [ 'ReplaceRootVolumeTaskIds' => [ 'shape' => 'ReplaceRootVolumeTaskIds', 'locationName' => 'ReplaceRootVolumeTaskId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeReplaceRootVolumeTasksMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeReplaceRootVolumeTasksResult' => [ 'type' => 'structure', 'members' => [ 'ReplaceRootVolumeTasks' => [ 'shape' => 'ReplaceRootVolumeTasks', 'locationName' => 'replaceRootVolumeTaskSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeReservedInstancesListingsRequest' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesId' => [ 'shape' => 'ReservationId', 'locationName' => 'reservedInstancesId', ], 'ReservedInstancesListingId' => [ 'shape' => 'ReservedInstancesListingId', 'locationName' => 'reservedInstancesListingId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeReservedInstancesListingsResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesListings' => [ 'shape' => 'ReservedInstancesListingList', 'locationName' => 'reservedInstancesListingsSet', ], ], ], 'DescribeReservedInstancesModificationsRequest' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesModificationIds' => [ 'shape' => 'ReservedInstancesModificationIdStringList', 'locationName' => 'ReservedInstancesModificationId', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeReservedInstancesModificationsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ReservedInstancesModifications' => [ 'shape' => 'ReservedInstancesModificationList', 'locationName' => 'reservedInstancesModificationsSet', ], ], ], 'DescribeReservedInstancesOfferingsRequest' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'IncludeMarketplace' => [ 'shape' => 'Boolean', ], 'InstanceType' => [ 'shape' => 'InstanceType', ], 'MaxDuration' => [ 'shape' => 'Long', ], 'MaxInstanceCount' => [ 'shape' => 'Integer', ], 'MinDuration' => [ 'shape' => 'Long', ], 'OfferingClass' => [ 'shape' => 'OfferingClassType', ], 'ProductDescription' => [ 'shape' => 'RIProductDescription', ], 'ReservedInstancesOfferingIds' => [ 'shape' => 'ReservedInstancesOfferingIdStringList', 'locationName' => 'ReservedInstancesOfferingId', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'InstanceTenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'instanceTenancy', ], 'OfferingType' => [ 'shape' => 'OfferingTypeValues', 'locationName' => 'offeringType', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], ], ], 'DescribeReservedInstancesOfferingsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ReservedInstancesOfferings' => [ 'shape' => 'ReservedInstancesOfferingList', 'locationName' => 'reservedInstancesOfferingsSet', ], ], ], 'DescribeReservedInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'OfferingClass' => [ 'shape' => 'OfferingClassType', ], 'ReservedInstancesIds' => [ 'shape' => 'ReservedInstancesIdStringList', 'locationName' => 'ReservedInstancesId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'OfferingType' => [ 'shape' => 'OfferingTypeValues', 'locationName' => 'offeringType', ], ], ], 'DescribeReservedInstancesResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstances' => [ 'shape' => 'ReservedInstancesList', 'locationName' => 'reservedInstancesSet', ], ], ], 'DescribeRouteServerEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'RouteServerEndpointIds' => [ 'shape' => 'RouteServerEndpointIdsList', 'locationName' => 'RouteServerEndpointId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'RouteServerMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeRouteServerEndpointsResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerEndpoints' => [ 'shape' => 'RouteServerEndpointsList', 'locationName' => 'routeServerEndpointSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeRouteServerPeersRequest' => [ 'type' => 'structure', 'members' => [ 'RouteServerPeerIds' => [ 'shape' => 'RouteServerPeerIdsList', 'locationName' => 'RouteServerPeerId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'RouteServerMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeRouteServerPeersResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerPeers' => [ 'shape' => 'RouteServerPeersList', 'locationName' => 'routeServerPeerSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeRouteServersRequest' => [ 'type' => 'structure', 'members' => [ 'RouteServerIds' => [ 'shape' => 'RouteServerIdsList', 'locationName' => 'RouteServerId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'RouteServerMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeRouteServersResult' => [ 'type' => 'structure', 'members' => [ 'RouteServers' => [ 'shape' => 'RouteServersList', 'locationName' => 'routeServerSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeRouteTablesMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 5, ], 'DescribeRouteTablesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeRouteTablesMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'RouteTableIds' => [ 'shape' => 'RouteTableIdStringList', 'locationName' => 'RouteTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeRouteTablesResult' => [ 'type' => 'structure', 'members' => [ 'RouteTables' => [ 'shape' => 'RouteTableList', 'locationName' => 'routeTableSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeScheduledInstanceAvailabilityMaxResults' => [ 'type' => 'integer', 'max' => 300, 'min' => 5, ], 'DescribeScheduledInstanceAvailabilityRequest' => [ 'type' => 'structure', 'required' => [ 'FirstSlotStartTimeRange', 'Recurrence', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'FirstSlotStartTimeRange' => [ 'shape' => 'SlotDateTimeRangeRequest', ], 'MaxResults' => [ 'shape' => 'DescribeScheduledInstanceAvailabilityMaxResults', ], 'MaxSlotDurationInHours' => [ 'shape' => 'Integer', ], 'MinSlotDurationInHours' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrenceRequest', ], ], ], 'DescribeScheduledInstanceAvailabilityResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ScheduledInstanceAvailabilitySet' => [ 'shape' => 'ScheduledInstanceAvailabilitySet', 'locationName' => 'scheduledInstanceAvailabilitySet', ], ], ], 'DescribeScheduledInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'ScheduledInstanceIds' => [ 'shape' => 'ScheduledInstanceIdRequestSet', 'locationName' => 'ScheduledInstanceId', ], 'SlotStartTimeRange' => [ 'shape' => 'SlotStartTimeRangeRequest', ], ], ], 'DescribeScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'ScheduledInstanceSet' => [ 'shape' => 'ScheduledInstanceSet', 'locationName' => 'scheduledInstanceSet', ], ], ], 'DescribeSecondaryInterfacesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeSecondaryInterfacesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeSecondaryInterfacesMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'SecondaryInterfaceIds' => [ 'shape' => 'SecondaryInterfaceIdList', 'locationName' => 'SecondaryInterfaceId', ], ], ], 'DescribeSecondaryInterfacesResult' => [ 'type' => 'structure', 'members' => [ 'SecondaryInterfaces' => [ 'shape' => 'SecondaryInterfaceList', 'locationName' => 'secondaryInterfaceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSecondaryNetworksMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeSecondaryNetworksRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeSecondaryNetworksMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'SecondaryNetworkIds' => [ 'shape' => 'SecondaryNetworkIdList', 'locationName' => 'SecondaryNetworkId', ], ], ], 'DescribeSecondaryNetworksResult' => [ 'type' => 'structure', 'members' => [ 'SecondaryNetworks' => [ 'shape' => 'SecondaryNetworkList', 'locationName' => 'secondaryNetworkSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSecondarySubnetsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeSecondarySubnetsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'DescribeSecondarySubnetsMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'SecondarySubnetIds' => [ 'shape' => 'SecondarySubnetIdList', 'locationName' => 'SecondarySubnetId', ], ], ], 'DescribeSecondarySubnetsResult' => [ 'type' => 'structure', 'members' => [ 'SecondarySubnets' => [ 'shape' => 'SecondarySubnetList', 'locationName' => 'secondarySubnetSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSecurityGroupReferencesRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'GroupId' => [ 'shape' => 'GroupIds', ], ], ], 'DescribeSecurityGroupReferencesResult' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupReferenceSet' => [ 'shape' => 'SecurityGroupReferences', 'locationName' => 'securityGroupReferenceSet', ], ], ], 'DescribeSecurityGroupRulesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeSecurityGroupRulesRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'SecurityGroupRuleIds' => [ 'shape' => 'SecurityGroupRuleIdList', 'locationName' => 'SecurityGroupRuleId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeSecurityGroupRulesMaxResults', ], ], ], 'DescribeSecurityGroupRulesResult' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupRules' => [ 'shape' => 'SecurityGroupRuleList', 'locationName' => 'securityGroupRuleSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSecurityGroupVpcAssociationsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeSecurityGroupVpcAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeSecurityGroupVpcAssociationsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeSecurityGroupVpcAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupVpcAssociations' => [ 'shape' => 'SecurityGroupVpcAssociationList', 'locationName' => 'securityGroupVpcAssociationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSecurityGroupsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeSecurityGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'GroupIds' => [ 'shape' => 'GroupIdStringList', 'locationName' => 'GroupId', ], 'GroupNames' => [ 'shape' => 'GroupNameStringList', 'locationName' => 'GroupName', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeSecurityGroupsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeSecurityGroupsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SecurityGroups' => [ 'shape' => 'SecurityGroupList', 'locationName' => 'securityGroupInfo', ], ], ], 'DescribeServiceLinkVirtualInterfacesRequest' => [ 'type' => 'structure', 'members' => [ 'ServiceLinkVirtualInterfaceIds' => [ 'shape' => 'ServiceLinkVirtualInterfaceIdSet', 'locationName' => 'ServiceLinkVirtualInterfaceId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'ServiceLinkMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeServiceLinkVirtualInterfacesResult' => [ 'type' => 'structure', 'members' => [ 'ServiceLinkVirtualInterfaces' => [ 'shape' => 'ServiceLinkVirtualInterfaceSet', 'locationName' => 'serviceLinkVirtualInterfaceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSnapshotAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'SnapshotId', ], 'members' => [ 'Attribute' => [ 'shape' => 'SnapshotAttributeName', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeSnapshotAttributeResult' => [ 'type' => 'structure', 'members' => [ 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'CreateVolumePermissions' => [ 'shape' => 'CreateVolumePermissionList', 'locationName' => 'createVolumePermission', ], ], ], 'DescribeSnapshotTierStatusMaxResults' => [ 'type' => 'integer', ], 'DescribeSnapshotTierStatusRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeSnapshotTierStatusMaxResults', ], ], ], 'DescribeSnapshotTierStatusResult' => [ 'type' => 'structure', 'members' => [ 'SnapshotTierStatuses' => [ 'shape' => 'snapshotTierStatusSet', 'locationName' => 'snapshotTierStatusSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSnapshotsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'OwnerIds' => [ 'shape' => 'OwnerStringList', 'locationName' => 'Owner', ], 'RestorableByUserIds' => [ 'shape' => 'RestorableByStringList', 'locationName' => 'RestorableBy', ], 'SnapshotIds' => [ 'shape' => 'SnapshotIdStringList', 'locationName' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeSnapshotsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Snapshots' => [ 'shape' => 'SnapshotList', 'locationName' => 'snapshotSet', ], ], ], 'DescribeSpotDatafeedSubscriptionRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeSpotDatafeedSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'SpotDatafeedSubscription' => [ 'shape' => 'SpotDatafeedSubscription', 'locationName' => 'spotDatafeedSubscription', ], ], ], 'DescribeSpotFleetInstancesMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeSpotFleetInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotFleetRequestId' => [ 'shape' => 'SpotFleetRequestId', 'locationName' => 'spotFleetRequestId', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'DescribeSpotFleetInstancesMaxResults', 'locationName' => 'maxResults', ], ], ], 'DescribeSpotFleetInstancesResponse' => [ 'type' => 'structure', 'members' => [ 'ActiveInstances' => [ 'shape' => 'ActiveInstanceSet', 'locationName' => 'activeInstanceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], ], ], 'DescribeSpotFleetRequestHistoryMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'DescribeSpotFleetRequestHistoryRequest' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestId', 'StartTime', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotFleetRequestId' => [ 'shape' => 'SpotFleetRequestId', 'locationName' => 'spotFleetRequestId', ], 'EventType' => [ 'shape' => 'EventType', 'locationName' => 'eventType', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'DescribeSpotFleetRequestHistoryMaxResults', 'locationName' => 'maxResults', ], ], ], 'DescribeSpotFleetRequestHistoryResponse' => [ 'type' => 'structure', 'members' => [ 'HistoryRecords' => [ 'shape' => 'HistoryRecords', 'locationName' => 'historyRecordSet', ], 'LastEvaluatedTime' => [ 'shape' => 'DateTime', 'locationName' => 'lastEvaluatedTime', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], ], ], 'DescribeSpotFleetRequestsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotFleetRequestIds' => [ 'shape' => 'SpotFleetRequestIdList', 'locationName' => 'spotFleetRequestId', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], ], ], 'DescribeSpotFleetRequestsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SpotFleetRequestConfigs' => [ 'shape' => 'SpotFleetRequestConfigSet', 'locationName' => 'spotFleetRequestConfigSet', ], ], ], 'DescribeSpotInstanceRequestsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotInstanceRequestIds' => [ 'shape' => 'SpotInstanceRequestIdList', 'locationName' => 'SpotInstanceRequestId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeSpotInstanceRequestsResult' => [ 'type' => 'structure', 'members' => [ 'SpotInstanceRequests' => [ 'shape' => 'SpotInstanceRequestList', 'locationName' => 'spotInstanceRequestSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSpotPriceHistoryRequest' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], 'EndTime' => [ 'shape' => 'DateTime', 'locationName' => 'endTime', ], 'InstanceTypes' => [ 'shape' => 'InstanceTypeList', 'locationName' => 'InstanceType', ], 'ProductDescriptions' => [ 'shape' => 'ProductDescriptionList', 'locationName' => 'ProductDescription', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSpotPriceHistoryResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SpotPriceHistory' => [ 'shape' => 'SpotPriceHistoryList', 'locationName' => 'spotPriceHistorySet', ], ], ], 'DescribeStaleSecurityGroupsMaxResults' => [ 'type' => 'integer', 'max' => 255, 'min' => 5, ], 'DescribeStaleSecurityGroupsNextToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'DescribeStaleSecurityGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'DescribeStaleSecurityGroupsMaxResults', ], 'NextToken' => [ 'shape' => 'DescribeStaleSecurityGroupsNextToken', ], 'VpcId' => [ 'shape' => 'VpcId', ], ], ], 'DescribeStaleSecurityGroupsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'StaleSecurityGroupSet' => [ 'shape' => 'StaleSecurityGroupSet', 'locationName' => 'staleSecurityGroupSet', ], ], ], 'DescribeStoreImageTasksRequest' => [ 'type' => 'structure', 'members' => [ 'ImageIds' => [ 'shape' => 'ImageIdList', 'locationName' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeStoreImageTasksRequestMaxResults', ], ], ], 'DescribeStoreImageTasksRequestMaxResults' => [ 'type' => 'integer', 'max' => 200, 'min' => 1, ], 'DescribeStoreImageTasksResult' => [ 'type' => 'structure', 'members' => [ 'StoreImageTaskResults' => [ 'shape' => 'StoreImageTaskResultSet', 'locationName' => 'storeImageTaskResultSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeSubnetsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeSubnetsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'SubnetIds' => [ 'shape' => 'SubnetIdStringList', 'locationName' => 'SubnetId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeSubnetsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeSubnetsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Subnets' => [ 'shape' => 'SubnetList', 'locationName' => 'subnetSet', ], ], ], 'DescribeTagsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTagsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Tags' => [ 'shape' => 'TagDescriptionList', 'locationName' => 'tagSet', ], ], ], 'DescribeTrafficMirrorFilterRulesRequest' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterRuleIds' => [ 'shape' => 'TrafficMirrorFilterRuleIdList', 'locationName' => 'TrafficMirrorFilterRuleId', ], 'TrafficMirrorFilterId' => [ 'shape' => 'TrafficMirrorFilterId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TrafficMirroringMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeTrafficMirrorFilterRulesResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterRules' => [ 'shape' => 'TrafficMirrorFilterRuleSet', 'locationName' => 'trafficMirrorFilterRuleSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTrafficMirrorFiltersRequest' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterIds' => [ 'shape' => 'TrafficMirrorFilterIdList', 'locationName' => 'TrafficMirrorFilterId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TrafficMirroringMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeTrafficMirrorFiltersResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilters' => [ 'shape' => 'TrafficMirrorFilterSet', 'locationName' => 'trafficMirrorFilterSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTrafficMirrorSessionsRequest' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorSessionIds' => [ 'shape' => 'TrafficMirrorSessionIdList', 'locationName' => 'TrafficMirrorSessionId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TrafficMirroringMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeTrafficMirrorSessionsResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorSessions' => [ 'shape' => 'TrafficMirrorSessionSet', 'locationName' => 'trafficMirrorSessionSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTrafficMirrorTargetsRequest' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorTargetIds' => [ 'shape' => 'TrafficMirrorTargetIdList', 'locationName' => 'TrafficMirrorTargetId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TrafficMirroringMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'DescribeTrafficMirrorTargetsResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorTargets' => [ 'shape' => 'TrafficMirrorTargetSet', 'locationName' => 'trafficMirrorTargetSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayAttachmentsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentIds' => [ 'shape' => 'TransitGatewayAttachmentIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayAttachmentsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachments' => [ 'shape' => 'TransitGatewayAttachmentList', 'locationName' => 'transitGatewayAttachments', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayConnectPeersRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayConnectPeerIds' => [ 'shape' => 'TransitGatewayConnectPeerIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayConnectPeersResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayConnectPeers' => [ 'shape' => 'TransitGatewayConnectPeerList', 'locationName' => 'transitGatewayConnectPeerSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayConnectsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentIds' => [ 'shape' => 'TransitGatewayAttachmentIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayConnectsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayConnects' => [ 'shape' => 'TransitGatewayConnectList', 'locationName' => 'transitGatewayConnectSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayMeteringPoliciesRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicyIds' => [ 'shape' => 'TransitGatewayMeteringPolicyIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayMeteringPoliciesResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicies' => [ 'shape' => 'TransitGatewayMeteringPolicyList', 'locationName' => 'transitGatewayMeteringPolicies', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayMulticastDomainsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainIds' => [ 'shape' => 'TransitGatewayMulticastDomainIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayMulticastDomainsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomains' => [ 'shape' => 'TransitGatewayMulticastDomainList', 'locationName' => 'transitGatewayMulticastDomains', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayPeeringAttachmentsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentIds' => [ 'shape' => 'TransitGatewayAttachmentIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayPeeringAttachmentsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPeeringAttachments' => [ 'shape' => 'TransitGatewayPeeringAttachmentList', 'locationName' => 'transitGatewayPeeringAttachments', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayPolicyTablesRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPolicyTableIds' => [ 'shape' => 'TransitGatewayPolicyTableIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayPolicyTablesResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPolicyTables' => [ 'shape' => 'TransitGatewayPolicyTableList', 'locationName' => 'transitGatewayPolicyTables', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayRouteTableAnnouncementsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableAnnouncementIds' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayRouteTableAnnouncementsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableAnnouncements' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementList', 'locationName' => 'transitGatewayRouteTableAnnouncements', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayRouteTablesRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableIds' => [ 'shape' => 'TransitGatewayRouteTableIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayRouteTablesResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTables' => [ 'shape' => 'TransitGatewayRouteTableList', 'locationName' => 'transitGatewayRouteTables', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewayVpcAttachmentsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentIds' => [ 'shape' => 'TransitGatewayAttachmentIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewayVpcAttachmentsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachments' => [ 'shape' => 'TransitGatewayVpcAttachmentList', 'locationName' => 'transitGatewayVpcAttachments', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTransitGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayIds' => [ 'shape' => 'TransitGatewayIdStringList', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeTransitGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'TransitGateways' => [ 'shape' => 'TransitGatewayList', 'locationName' => 'transitGatewaySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeTrunkInterfaceAssociationsMaxResults' => [ 'type' => 'integer', 'max' => 255, 'min' => 5, ], 'DescribeTrunkInterfaceAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'AssociationIds' => [ 'shape' => 'TrunkInterfaceAssociationIdList', 'locationName' => 'AssociationId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeTrunkInterfaceAssociationsMaxResults', ], ], ], 'DescribeTrunkInterfaceAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'InterfaceAssociations' => [ 'shape' => 'TrunkInterfaceAssociationList', 'locationName' => 'interfaceAssociationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVerifiedAccessEndpointsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeVerifiedAccessEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessEndpointIds' => [ 'shape' => 'VerifiedAccessEndpointIdList', 'locationName' => 'VerifiedAccessEndpointId', ], 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'VerifiedAccessGroupId' => [ 'shape' => 'VerifiedAccessGroupId', ], 'MaxResults' => [ 'shape' => 'DescribeVerifiedAccessEndpointsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeVerifiedAccessEndpointsResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessEndpoints' => [ 'shape' => 'VerifiedAccessEndpointList', 'locationName' => 'verifiedAccessEndpointSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVerifiedAccessGroupMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeVerifiedAccessGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessGroupIds' => [ 'shape' => 'VerifiedAccessGroupIdList', 'locationName' => 'VerifiedAccessGroupId', ], 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'MaxResults' => [ 'shape' => 'DescribeVerifiedAccessGroupMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeVerifiedAccessGroupsResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessGroups' => [ 'shape' => 'VerifiedAccessGroupList', 'locationName' => 'verifiedAccessGroupSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVerifiedAccessInstanceLoggingConfigurationsMaxResults' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'DescribeVerifiedAccessInstanceLoggingConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstanceIds' => [ 'shape' => 'VerifiedAccessInstanceIdList', 'locationName' => 'VerifiedAccessInstanceId', ], 'MaxResults' => [ 'shape' => 'DescribeVerifiedAccessInstanceLoggingConfigurationsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeVerifiedAccessInstanceLoggingConfigurationsResult' => [ 'type' => 'structure', 'members' => [ 'LoggingConfigurations' => [ 'shape' => 'VerifiedAccessInstanceLoggingConfigurationList', 'locationName' => 'loggingConfigurationSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVerifiedAccessInstancesMaxResults' => [ 'type' => 'integer', 'max' => 200, 'min' => 5, ], 'DescribeVerifiedAccessInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstanceIds' => [ 'shape' => 'VerifiedAccessInstanceIdList', 'locationName' => 'VerifiedAccessInstanceId', ], 'MaxResults' => [ 'shape' => 'DescribeVerifiedAccessInstancesMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeVerifiedAccessInstancesResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstances' => [ 'shape' => 'VerifiedAccessInstanceList', 'locationName' => 'verifiedAccessInstanceSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVerifiedAccessTrustProvidersMaxResults' => [ 'type' => 'integer', 'max' => 200, 'min' => 5, ], 'DescribeVerifiedAccessTrustProvidersRequest' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProviderIds' => [ 'shape' => 'VerifiedAccessTrustProviderIdList', 'locationName' => 'VerifiedAccessTrustProviderId', ], 'MaxResults' => [ 'shape' => 'DescribeVerifiedAccessTrustProvidersMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeVerifiedAccessTrustProvidersResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProviders' => [ 'shape' => 'VerifiedAccessTrustProviderList', 'locationName' => 'verifiedAccessTrustProviderSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVolumeAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'VolumeId', ], 'members' => [ 'Attribute' => [ 'shape' => 'VolumeAttributeName', ], 'VolumeId' => [ 'shape' => 'VolumeId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeVolumeAttributeResult' => [ 'type' => 'structure', 'members' => [ 'AutoEnableIO' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'autoEnableIO', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], ], ], 'DescribeVolumeStatusRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'VolumeIds' => [ 'shape' => 'VolumeIdStringList', 'locationName' => 'VolumeId', ], 'IncludeManagedResources' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeVolumeStatusResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'VolumeStatuses' => [ 'shape' => 'VolumeStatusList', 'locationName' => 'volumeStatusSet', ], ], ], 'DescribeVolumesModificationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VolumeIds' => [ 'shape' => 'VolumeIdStringList', 'locationName' => 'VolumeId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'IncludeManagedResources' => [ 'shape' => 'Boolean', ], ], ], 'DescribeVolumesModificationsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'VolumesModifications' => [ 'shape' => 'VolumeModificationList', 'locationName' => 'volumeModificationSet', ], ], ], 'DescribeVolumesRequest' => [ 'type' => 'structure', 'members' => [ 'VolumeIds' => [ 'shape' => 'VolumeIdStringList', 'locationName' => 'VolumeId', ], 'IncludeManagedResources' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'Integer', 'locationName' => 'maxResults', ], ], ], 'DescribeVolumesResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Volumes' => [ 'shape' => 'VolumeList', 'locationName' => 'volumeSet', ], ], ], 'DescribeVpcAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'VpcId', ], 'members' => [ 'Attribute' => [ 'shape' => 'VpcAttributeName', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeVpcAttributeResult' => [ 'type' => 'structure', 'members' => [ 'EnableDnsHostnames' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enableDnsHostnames', ], 'EnableDnsSupport' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enableDnsSupport', ], 'EnableNetworkAddressUsageMetrics' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enableNetworkAddressUsageMetrics', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'DescribeVpcBlockPublicAccessExclusionsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeVpcBlockPublicAccessExclusionsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'ExclusionIds' => [ 'shape' => 'VpcBlockPublicAccessExclusionIdList', 'locationName' => 'ExclusionId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeVpcBlockPublicAccessExclusionsMaxResults', ], ], ], 'DescribeVpcBlockPublicAccessExclusionsResult' => [ 'type' => 'structure', 'members' => [ 'VpcBlockPublicAccessExclusions' => [ 'shape' => 'VpcBlockPublicAccessExclusionList', 'locationName' => 'vpcBlockPublicAccessExclusionSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcBlockPublicAccessOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeVpcBlockPublicAccessOptionsResult' => [ 'type' => 'structure', 'members' => [ 'VpcBlockPublicAccessOptions' => [ 'shape' => 'VpcBlockPublicAccessOptions', 'locationName' => 'vpcBlockPublicAccessOptions', ], ], ], 'DescribeVpcClassicLinkDnsSupportMaxResults' => [ 'type' => 'integer', 'max' => 255, 'min' => 5, ], 'DescribeVpcClassicLinkDnsSupportNextToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, ], 'DescribeVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcIds' => [ 'shape' => 'VpcClassicLinkIdList', ], 'MaxResults' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportMaxResults', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportNextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'DescribeVpcClassicLinkDnsSupportNextToken', 'locationName' => 'nextToken', ], 'Vpcs' => [ 'shape' => 'ClassicLinkDnsSupportList', 'locationName' => 'vpcs', ], ], ], 'DescribeVpcClassicLinkRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcIds' => [ 'shape' => 'VpcClassicLinkIdList', 'locationName' => 'VpcId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeVpcClassicLinkResult' => [ 'type' => 'structure', 'members' => [ 'Vpcs' => [ 'shape' => 'VpcClassicLinkList', 'locationName' => 'vpcSet', ], ], ], 'DescribeVpcEncryptionControlsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeVpcEncryptionControlsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'VpcEncryptionControlIds' => [ 'shape' => 'VpcEncryptionControlIdList', 'locationName' => 'VpcEncryptionControlId', ], 'VpcIds' => [ 'shape' => 'VpcIdStringList', 'locationName' => 'VpcId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeVpcEncryptionControlsMaxResults', ], ], ], 'DescribeVpcEncryptionControlsResult' => [ 'type' => 'structure', 'members' => [ 'VpcEncryptionControls' => [ 'shape' => 'VpcEncryptionControlList', 'locationName' => 'vpcEncryptionControlSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcEndpointIds' => [ 'shape' => 'VpcEndpointIdList', 'locationName' => 'VpcEndpointId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'maxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'VpcEndpointAssociations' => [ 'shape' => 'VpcEndpointAssociationSet', 'locationName' => 'vpcEndpointAssociationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointConnectionNotificationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ConnectionNotificationId' => [ 'shape' => 'ConnectionNotificationId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointConnectionNotificationsResult' => [ 'type' => 'structure', 'members' => [ 'ConnectionNotificationSet' => [ 'shape' => 'ConnectionNotificationSet', 'locationName' => 'connectionNotificationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointConnectionsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'VpcEndpointConnections' => [ 'shape' => 'VpcEndpointConnectionSet', 'locationName' => 'vpcEndpointConnectionSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointServiceConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceIds' => [ 'shape' => 'VpcEndpointServiceIdList', 'locationName' => 'ServiceId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointServiceConfigurationsResult' => [ 'type' => 'structure', 'members' => [ 'ServiceConfigurations' => [ 'shape' => 'ServiceConfigurationSet', 'locationName' => 'serviceConfigurationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointServicePermissionsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointServicePermissionsResult' => [ 'type' => 'structure', 'members' => [ 'AllowedPrincipals' => [ 'shape' => 'AllowedPrincipalSet', 'locationName' => 'allowedPrincipals', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointServicesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceNames' => [ 'shape' => 'ValueStringList', 'locationName' => 'ServiceName', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'ServiceRegions' => [ 'shape' => 'ValueStringList', 'locationName' => 'ServiceRegion', ], ], ], 'DescribeVpcEndpointServicesResult' => [ 'type' => 'structure', 'members' => [ 'ServiceNames' => [ 'shape' => 'ValueStringList', 'locationName' => 'serviceNameSet', ], 'ServiceDetails' => [ 'shape' => 'ServiceDetailSet', 'locationName' => 'serviceDetailSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcEndpointsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcEndpointIds' => [ 'shape' => 'VpcEndpointIdList', 'locationName' => 'VpcEndpointId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'DescribeVpcEndpointsResult' => [ 'type' => 'structure', 'members' => [ 'VpcEndpoints' => [ 'shape' => 'VpcEndpointSet', 'locationName' => 'vpcEndpointSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcPeeringConnectionsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeVpcPeeringConnectionsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeVpcPeeringConnectionsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcPeeringConnectionIds' => [ 'shape' => 'VpcPeeringConnectionIdList', 'locationName' => 'VpcPeeringConnectionId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'DescribeVpcPeeringConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'VpcPeeringConnections' => [ 'shape' => 'VpcPeeringConnectionList', 'locationName' => 'vpcPeeringConnectionSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'DescribeVpcsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'DescribeVpcsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'VpcIds' => [ 'shape' => 'VpcIdStringList', 'locationName' => 'VpcId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'DescribeVpcsMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeVpcsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'Vpcs' => [ 'shape' => 'VpcList', 'locationName' => 'vpcSet', ], ], ], 'DescribeVpnConcentratorsRequest' => [ 'type' => 'structure', 'members' => [ 'VpnConcentratorIds' => [ 'shape' => 'VpnConcentratorIdStringList', 'locationName' => 'VpnConcentratorId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'GVCDMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DescribeVpnConcentratorsResult' => [ 'type' => 'structure', 'members' => [ 'VpnConcentrators' => [ 'shape' => 'VpnConcentratorList', 'locationName' => 'vpnConcentratorSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'DescribeVpnConnectionsRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'VpnConnectionIds' => [ 'shape' => 'VpnConnectionIdStringList', 'locationName' => 'VpnConnectionId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeVpnConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnections' => [ 'shape' => 'VpnConnectionList', 'locationName' => 'vpnConnectionSet', ], ], ], 'DescribeVpnGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'VpnGatewayIds' => [ 'shape' => 'VpnGatewayIdStringList', 'locationName' => 'VpnGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DescribeVpnGatewaysResult' => [ 'type' => 'structure', 'members' => [ 'VpnGateways' => [ 'shape' => 'VpnGatewayList', 'locationName' => 'vpnGatewaySet', ], ], ], 'DestinationFileFormat' => [ 'type' => 'string', 'enum' => [ 'plain-text', 'parquet', ], ], 'DestinationOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'FileFormat' => [ 'shape' => 'DestinationFileFormat', ], 'HiveCompatiblePartitions' => [ 'shape' => 'Boolean', ], 'PerHourPartition' => [ 'shape' => 'Boolean', ], ], ], 'DestinationOptionsResponse' => [ 'type' => 'structure', 'members' => [ 'FileFormat' => [ 'shape' => 'DestinationFileFormat', 'locationName' => 'fileFormat', ], 'HiveCompatiblePartitions' => [ 'shape' => 'Boolean', 'locationName' => 'hiveCompatiblePartitions', ], 'PerHourPartition' => [ 'shape' => 'Boolean', 'locationName' => 'perHourPartition', ], ], ], 'DetachClassicLinkVpcRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], ], ], 'DetachClassicLinkVpcResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DetachImageWatermarkRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', 'WatermarkKey', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'WatermarkKey' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DetachImageWatermarkResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DetachInternetGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'InternetGatewayId', 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InternetGatewayId' => [ 'shape' => 'InternetGatewayId', 'locationName' => 'internetGatewayId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], ], ], 'DetachNetworkInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'AttachmentId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'AttachmentId' => [ 'shape' => 'NetworkInterfaceAttachmentId', 'locationName' => 'attachmentId', ], 'Force' => [ 'shape' => 'Boolean', 'locationName' => 'force', ], ], ], 'DetachVerifiedAccessTrustProviderRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessInstanceId', 'VerifiedAccessTrustProviderId', ], 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'VerifiedAccessTrustProviderId' => [ 'shape' => 'VerifiedAccessTrustProviderId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DetachVerifiedAccessTrustProviderResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProvider' => [ 'shape' => 'VerifiedAccessTrustProvider', 'locationName' => 'verifiedAccessTrustProvider', ], 'VerifiedAccessInstance' => [ 'shape' => 'VerifiedAccessInstance', 'locationName' => 'verifiedAccessInstance', ], ], ], 'DetachVolumeRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'Device' => [ 'shape' => 'String', ], 'Force' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'InstanceIdForResolver', ], 'VolumeId' => [ 'shape' => 'VolumeIdWithResolver', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DetachVpnGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', 'VpnGatewayId', ], 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], 'VpnGatewayId' => [ 'shape' => 'VpnGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DeviceOptions' => [ 'type' => 'structure', 'members' => [ 'TenantId' => [ 'shape' => 'String', 'locationName' => 'tenantId', ], 'PublicSigningKeyUrl' => [ 'shape' => 'String', 'locationName' => 'publicSigningKeyUrl', ], ], ], 'DeviceTrustProviderType' => [ 'type' => 'string', 'enum' => [ 'jamf', 'crowdstrike', 'jumpcloud', ], ], 'DeviceTrustProviderTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceTrustProviderType', 'locationName' => 'item', ], ], 'DeviceType' => [ 'type' => 'string', 'enum' => [ 'ebs', 'instance-store', ], ], 'DhcpConfiguration' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'Values' => [ 'shape' => 'DhcpConfigurationValueList', 'locationName' => 'valueSet', ], ], ], 'DhcpConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DhcpConfiguration', 'locationName' => 'item', ], ], 'DhcpConfigurationValueList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttributeValue', 'locationName' => 'item', ], ], 'DhcpOptions' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'DhcpOptionsId' => [ 'shape' => 'String', 'locationName' => 'dhcpOptionsId', ], 'DhcpConfigurations' => [ 'shape' => 'DhcpConfigurationList', 'locationName' => 'dhcpConfigurationSet', ], ], ], 'DhcpOptionsId' => [ 'type' => 'string', ], 'DhcpOptionsIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DhcpOptionsId', 'locationName' => 'DhcpOptionsId', ], ], 'DhcpOptionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DhcpOptions', 'locationName' => 'item', ], ], 'DimensionCondition' => [ 'type' => 'structure', 'members' => [ 'Dimension' => [ 'shape' => 'FilterByDimension', ], 'Comparison' => [ 'shape' => 'Comparison', ], 'Values' => [ 'shape' => 'ConditionValueList', 'locationName' => 'Value', ], ], ], 'DirectoryServiceAuthentication' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'String', 'locationName' => 'directoryId', ], ], ], 'DirectoryServiceAuthenticationRequest' => [ 'type' => 'structure', 'members' => [ 'DirectoryId' => [ 'shape' => 'String', ], ], ], 'DisableAddressTransferRequest' => [ 'type' => 'structure', 'required' => [ 'AllocationId', ], 'members' => [ 'AllocationId' => [ 'shape' => 'AllocationId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableAddressTransferResult' => [ 'type' => 'structure', 'members' => [ 'AddressTransfer' => [ 'shape' => 'AddressTransfer', 'locationName' => 'addressTransfer', ], ], ], 'DisableAllowedImagesSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableAllowedImagesSettingsResult' => [ 'type' => 'structure', 'members' => [ 'AllowedImagesSettingsState' => [ 'shape' => 'AllowedImagesSettingsDisabledState', 'locationName' => 'allowedImagesSettingsState', ], ], ], 'DisableAwsNetworkPerformanceMetricSubscriptionRequest' => [ 'type' => 'structure', 'members' => [ 'Source' => [ 'shape' => 'String', ], 'Destination' => [ 'shape' => 'String', ], 'Metric' => [ 'shape' => 'MetricType', ], 'Statistic' => [ 'shape' => 'StatisticType', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableAwsNetworkPerformanceMetricSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'Output' => [ 'shape' => 'Boolean', 'locationName' => 'output', ], ], ], 'DisableCapacityManagerRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'DisableCapacityManagerResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerStatus' => [ 'shape' => 'CapacityManagerStatus', 'locationName' => 'capacityManagerStatus', ], 'OrganizationsAccess' => [ 'shape' => 'Boolean', 'locationName' => 'organizationsAccess', ], ], ], 'DisableEbsEncryptionByDefaultRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableEbsEncryptionByDefaultResult' => [ 'type' => 'structure', 'members' => [ 'EbsEncryptionByDefault' => [ 'shape' => 'Boolean', 'locationName' => 'ebsEncryptionByDefault', ], ], ], 'DisableFastLaunchRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'Force' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableFastLaunchResult' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'ResourceType' => [ 'shape' => 'FastLaunchResourceType', 'locationName' => 'resourceType', ], 'SnapshotConfiguration' => [ 'shape' => 'FastLaunchSnapshotConfigurationResponse', 'locationName' => 'snapshotConfiguration', ], 'LaunchTemplate' => [ 'shape' => 'FastLaunchLaunchTemplateSpecificationResponse', 'locationName' => 'launchTemplate', ], 'MaxParallelLaunches' => [ 'shape' => 'Integer', 'locationName' => 'maxParallelLaunches', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'State' => [ 'shape' => 'FastLaunchStateCode', 'locationName' => 'state', ], 'StateTransitionReason' => [ 'shape' => 'String', 'locationName' => 'stateTransitionReason', ], 'StateTransitionTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'stateTransitionTime', ], ], ], 'DisableFastSnapshotRestoreErrorItem' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'FastSnapshotRestoreStateErrors' => [ 'shape' => 'DisableFastSnapshotRestoreStateErrorSet', 'locationName' => 'fastSnapshotRestoreStateErrorSet', ], ], ], 'DisableFastSnapshotRestoreErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DisableFastSnapshotRestoreErrorItem', 'locationName' => 'item', ], ], 'DisableFastSnapshotRestoreStateError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'DisableFastSnapshotRestoreStateErrorItem' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'Error' => [ 'shape' => 'DisableFastSnapshotRestoreStateError', 'locationName' => 'error', ], ], ], 'DisableFastSnapshotRestoreStateErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DisableFastSnapshotRestoreStateErrorItem', 'locationName' => 'item', ], ], 'DisableFastSnapshotRestoreSuccessItem' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'State' => [ 'shape' => 'FastSnapshotRestoreStateCode', 'locationName' => 'state', ], 'StateTransitionReason' => [ 'shape' => 'String', 'locationName' => 'stateTransitionReason', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'OwnerAlias' => [ 'shape' => 'String', 'locationName' => 'ownerAlias', ], 'EnablingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'enablingTime', ], 'OptimizingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'optimizingTime', ], 'EnabledTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'enabledTime', ], 'DisablingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'disablingTime', ], 'DisabledTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'disabledTime', ], ], ], 'DisableFastSnapshotRestoreSuccessSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DisableFastSnapshotRestoreSuccessItem', 'locationName' => 'item', ], ], 'DisableFastSnapshotRestoresRequest' => [ 'type' => 'structure', 'required' => [ 'SourceSnapshotIds', ], 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZoneStringList', 'locationName' => 'AvailabilityZone', ], 'AvailabilityZoneIds' => [ 'shape' => 'AvailabilityZoneIdStringList', 'locationName' => 'AvailabilityZoneId', ], 'SourceSnapshotIds' => [ 'shape' => 'SnapshotIdStringList', 'locationName' => 'SourceSnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableFastSnapshotRestoresResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'DisableFastSnapshotRestoreSuccessSet', 'locationName' => 'successful', ], 'Unsuccessful' => [ 'shape' => 'DisableFastSnapshotRestoreErrorSet', 'locationName' => 'unsuccessful', ], ], ], 'DisableImageBlockPublicAccessRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableImageBlockPublicAccessResult' => [ 'type' => 'structure', 'members' => [ 'ImageBlockPublicAccessState' => [ 'shape' => 'ImageBlockPublicAccessDisabledState', 'locationName' => 'imageBlockPublicAccessState', ], ], ], 'DisableImageDeprecationRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableImageDeprecationResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DisableImageDeregistrationProtectionRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableImageDeregistrationProtectionResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'String', 'locationName' => 'return', ], ], ], 'DisableImageRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableImageResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DisableInstanceSqlHaStandbyDetectionsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdUpdateStringList', 'locationName' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableInstanceSqlHaStandbyDetectionsResult' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'RegisteredInstanceList', 'locationName' => 'instanceSet', ], ], ], 'DisableIpamOrganizationAdminAccountRequest' => [ 'type' => 'structure', 'required' => [ 'DelegatedAdminAccountId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'DelegatedAdminAccountId' => [ 'shape' => 'String', ], ], ], 'DisableIpamOrganizationAdminAccountResult' => [ 'type' => 'structure', 'members' => [ 'Success' => [ 'shape' => 'Boolean', 'locationName' => 'success', ], ], ], 'DisableIpamPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPolicyId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', ], 'OrganizationTargetId' => [ 'shape' => 'String', ], ], ], 'DisableIpamPolicyResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DisableRouteServerPropagationRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', 'RouteTableId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableRouteServerPropagationResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerPropagation' => [ 'shape' => 'RouteServerPropagation', 'locationName' => 'routeServerPropagation', ], ], ], 'DisableSerialConsoleAccessRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableSerialConsoleAccessResult' => [ 'type' => 'structure', 'members' => [ 'SerialConsoleAccessEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'serialConsoleAccessEnabled', ], ], ], 'DisableSnapshotBlockPublicAccessRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableSnapshotBlockPublicAccessResult' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'SnapshotBlockPublicAccessState', 'locationName' => 'state', ], ], ], 'DisableTransitGatewayRouteTablePropagationRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TransitGatewayRouteTableAnnouncementId' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementId', ], ], ], 'DisableTransitGatewayRouteTablePropagationResult' => [ 'type' => 'structure', 'members' => [ 'Propagation' => [ 'shape' => 'TransitGatewayPropagation', 'locationName' => 'propagation', ], ], ], 'DisableVgwRoutePropagationRequest' => [ 'type' => 'structure', 'required' => [ 'GatewayId', 'RouteTableId', ], 'members' => [ 'GatewayId' => [ 'shape' => 'VpnGatewayId', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisableVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], ], ], 'DisableVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DisableVpcClassicLinkRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], ], ], 'DisableVpcClassicLinkResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DisassociateAddressRequest' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'ElasticIpAssociationId', ], 'PublicIp' => [ 'shape' => 'EipAllocationPublicIp', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'DisassociateCapacityReservationBillingOwnerRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', 'UnusedReservationBillingOwnerId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'UnusedReservationBillingOwnerId' => [ 'shape' => 'AccountID', ], ], ], 'DisassociateCapacityReservationBillingOwnerResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DisassociateClientVpnTargetNetworkRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'AssociationId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'AssociationId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateClientVpnTargetNetworkResult' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'Status' => [ 'shape' => 'AssociationStatus', 'locationName' => 'status', ], ], ], 'DisassociateEnclaveCertificateIamRoleRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', 'RoleArn', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'CertificateId', ], 'RoleArn' => [ 'shape' => 'RoleId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateEnclaveCertificateIamRoleResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'DisassociateIamInstanceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'IamInstanceProfileAssociationId', ], ], ], 'DisassociateIamInstanceProfileResult' => [ 'type' => 'structure', 'members' => [ 'IamInstanceProfileAssociation' => [ 'shape' => 'IamInstanceProfileAssociation', 'locationName' => 'iamInstanceProfileAssociation', ], ], ], 'DisassociateInstanceEventWindowRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceEventWindowId', 'AssociationTarget', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceEventWindowId' => [ 'shape' => 'InstanceEventWindowId', ], 'AssociationTarget' => [ 'shape' => 'InstanceEventWindowDisassociationRequest', ], ], ], 'DisassociateInstanceEventWindowResult' => [ 'type' => 'structure', 'members' => [ 'InstanceEventWindow' => [ 'shape' => 'InstanceEventWindow', 'locationName' => 'instanceEventWindow', ], ], ], 'DisassociateIpamByoasnRequest' => [ 'type' => 'structure', 'required' => [ 'Asn', 'Cidr', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Asn' => [ 'shape' => 'String', ], 'Cidr' => [ 'shape' => 'String', ], ], ], 'DisassociateIpamByoasnResult' => [ 'type' => 'structure', 'members' => [ 'AsnAssociation' => [ 'shape' => 'AsnAssociation', 'locationName' => 'asnAssociation', ], ], ], 'DisassociateIpamResourceDiscoveryRequest' => [ 'type' => 'structure', 'required' => [ 'IpamResourceDiscoveryAssociationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamResourceDiscoveryAssociationId' => [ 'shape' => 'IpamResourceDiscoveryAssociationId', ], ], ], 'DisassociateIpamResourceDiscoveryResult' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscoveryAssociation' => [ 'shape' => 'IpamResourceDiscoveryAssociation', 'locationName' => 'ipamResourceDiscoveryAssociation', ], ], ], 'DisassociateNatGatewayAddressRequest' => [ 'type' => 'structure', 'required' => [ 'NatGatewayId', 'AssociationIds', ], 'members' => [ 'NatGatewayId' => [ 'shape' => 'NatGatewayId', ], 'AssociationIds' => [ 'shape' => 'EipAssociationIdList', 'locationName' => 'AssociationId', ], 'MaxDrainDurationSeconds' => [ 'shape' => 'DrainSeconds', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateNatGatewayAddressResult' => [ 'type' => 'structure', 'members' => [ 'NatGatewayId' => [ 'shape' => 'NatGatewayId', 'locationName' => 'natGatewayId', ], 'NatGatewayAddresses' => [ 'shape' => 'NatGatewayAddressList', 'locationName' => 'natGatewayAddressSet', ], ], ], 'DisassociateRouteServerRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', 'VpcId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateRouteServerResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerAssociation' => [ 'shape' => 'RouteServerAssociation', 'locationName' => 'routeServerAssociation', ], ], ], 'DisassociateRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'AssociationId' => [ 'shape' => 'RouteTableAssociationId', 'locationName' => 'associationId', ], ], ], 'DisassociateSecurityGroupVpcRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', 'VpcId', ], 'members' => [ 'GroupId' => [ 'shape' => 'DisassociateSecurityGroupVpcSecurityGroupId', ], 'VpcId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateSecurityGroupVpcResult' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'SecurityGroupVpcAssociationState', 'locationName' => 'state', ], ], ], 'DisassociateSecurityGroupVpcSecurityGroupId' => [ 'type' => 'string', ], 'DisassociateSubnetCidrBlockRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'SubnetCidrAssociationId', 'locationName' => 'associationId', ], ], ], 'DisassociateSubnetCidrBlockResult' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrBlockAssociation' => [ 'shape' => 'SubnetIpv6CidrBlockAssociation', 'locationName' => 'ipv6CidrBlockAssociation', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], ], ], 'DisassociateTransitGatewayMulticastDomainRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMulticastDomainId', 'TransitGatewayAttachmentId', 'SubnetIds', ], 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'SubnetIds' => [ 'shape' => 'TransitGatewaySubnetIdList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateTransitGatewayMulticastDomainResult' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'TransitGatewayMulticastDomainAssociations', 'locationName' => 'associations', ], ], ], 'DisassociateTransitGatewayPolicyTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayPolicyTableId', 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayPolicyTableId' => [ 'shape' => 'TransitGatewayPolicyTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateTransitGatewayPolicyTableResult' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'TransitGatewayPolicyTableAssociation', 'locationName' => 'association', ], ], ], 'DisassociateTransitGatewayRouteTableRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateTransitGatewayRouteTableResult' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'TransitGatewayAssociation', 'locationName' => 'association', ], ], ], 'DisassociateTrunkInterfaceRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'TrunkInterfaceAssociationId', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'DisassociateTrunkInterfaceResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], ], ], 'DisassociateVpcCidrBlockRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', ], 'members' => [ 'AssociationId' => [ 'shape' => 'VpcCidrAssociationId', 'locationName' => 'associationId', ], ], ], 'DisassociateVpcCidrBlockResult' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrBlockAssociation' => [ 'shape' => 'VpcIpv6CidrBlockAssociation', 'locationName' => 'ipv6CidrBlockAssociation', ], 'CidrBlockAssociation' => [ 'shape' => 'VpcCidrBlockAssociation', 'locationName' => 'cidrBlockAssociation', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'DiskCount' => [ 'type' => 'integer', ], 'DiskImage' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', ], 'Image' => [ 'shape' => 'DiskImageDetail', ], 'Volume' => [ 'shape' => 'VolumeDetail', ], ], ], 'DiskImageDescription' => [ 'type' => 'structure', 'members' => [ 'Checksum' => [ 'shape' => 'String', 'locationName' => 'checksum', ], 'Format' => [ 'shape' => 'DiskImageFormat', 'locationName' => 'format', ], 'ImportManifestUrl' => [ 'shape' => 'ImportManifestUrl', 'locationName' => 'importManifestUrl', ], 'Size' => [ 'shape' => 'Long', 'locationName' => 'size', ], ], ], 'DiskImageDetail' => [ 'type' => 'structure', 'required' => [ 'Format', 'Bytes', 'ImportManifestUrl', ], 'members' => [ 'Format' => [ 'shape' => 'DiskImageFormat', 'locationName' => 'format', ], 'Bytes' => [ 'shape' => 'Long', 'locationName' => 'bytes', ], 'ImportManifestUrl' => [ 'shape' => 'ImportManifestUrl', 'locationName' => 'importManifestUrl', ], ], ], 'DiskImageFormat' => [ 'type' => 'string', 'enum' => [ 'VMDK', 'RAW', 'VHD', ], ], 'DiskImageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DiskImage', ], ], 'DiskImageVolumeDescription' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', 'locationName' => 'id', ], 'Size' => [ 'shape' => 'Long', 'locationName' => 'size', ], ], ], 'DiskInfo' => [ 'type' => 'structure', 'members' => [ 'SizeInGB' => [ 'shape' => 'DiskSize', 'locationName' => 'sizeInGB', ], 'Count' => [ 'shape' => 'DiskCount', 'locationName' => 'count', ], 'Type' => [ 'shape' => 'DiskType', 'locationName' => 'type', ], ], ], 'DiskInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DiskInfo', 'locationName' => 'item', ], ], 'DiskSize' => [ 'type' => 'long', ], 'DiskType' => [ 'type' => 'string', 'enum' => [ 'hdd', 'ssd', ], ], 'DnsEntry' => [ 'type' => 'structure', 'members' => [ 'DnsName' => [ 'shape' => 'String', 'locationName' => 'dnsName', ], 'HostedZoneId' => [ 'shape' => 'String', 'locationName' => 'hostedZoneId', ], ], ], 'DnsEntrySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DnsEntry', 'locationName' => 'item', ], ], 'DnsNameState' => [ 'type' => 'string', 'enum' => [ 'pendingVerification', 'verified', 'failed', ], ], 'DnsOptions' => [ 'type' => 'structure', 'members' => [ 'DnsRecordIpType' => [ 'shape' => 'DnsRecordIpType', 'locationName' => 'dnsRecordIpType', ], 'PrivateDnsOnlyForInboundResolverEndpoint' => [ 'shape' => 'Boolean', 'locationName' => 'privateDnsOnlyForInboundResolverEndpoint', ], 'PrivateDnsPreference' => [ 'shape' => 'String', 'locationName' => 'privateDnsPreference', ], 'PrivateDnsSpecifiedDomains' => [ 'shape' => 'PrivateDnsSpecifiedDomainSet', 'locationName' => 'privateDnsSpecifiedDomainSet', ], ], ], 'DnsOptionsSpecification' => [ 'type' => 'structure', 'members' => [ 'DnsRecordIpType' => [ 'shape' => 'DnsRecordIpType', ], 'PrivateDnsOnlyForInboundResolverEndpoint' => [ 'shape' => 'Boolean', ], 'PrivateDnsPreference' => [ 'shape' => 'String', ], 'PrivateDnsSpecifiedDomains' => [ 'shape' => 'PrivateDnsSpecifiedDomainSet', 'locationName' => 'PrivateDnsSpecifiedDomain', ], ], ], 'DnsRecordIpType' => [ 'type' => 'string', 'enum' => [ 'ipv4', 'dualstack', 'ipv6', 'service-defined', ], ], 'DnsServersOptionsModifyStructure' => [ 'type' => 'structure', 'members' => [ 'CustomDnsServers' => [ 'shape' => 'ValueStringList', ], 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'DnsSupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'DomainType' => [ 'type' => 'string', 'enum' => [ 'vpc', 'standard', ], ], 'Double' => [ 'type' => 'double', ], 'DoubleWithConstraints' => [ 'type' => 'double', 'max' => 99.999, 'min' => 0.001, ], 'DrainSeconds' => [ 'type' => 'integer', 'max' => 4000, 'min' => 1, ], 'DynamicRoutingValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'EbsBlockDevice' => [ 'type' => 'structure', 'members' => [ 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Iops' => [ 'shape' => 'Integer', 'locationName' => 'iops', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', 'locationName' => 'snapshotId', ], 'VolumeSize' => [ 'shape' => 'Integer', 'locationName' => 'volumeSize', ], 'VolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'volumeType', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], 'Throughput' => [ 'shape' => 'Integer', 'locationName' => 'throughput', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'VolumeInitializationRate' => [ 'shape' => 'Integer', ], 'AvailabilityZoneId' => [ 'shape' => 'String', ], 'EbsCardIndex' => [ 'shape' => 'Integer', ], ], ], 'EbsBlockDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Iops' => [ 'shape' => 'Integer', 'locationName' => 'iops', ], 'Throughput' => [ 'shape' => 'Integer', 'locationName' => 'throughput', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', 'locationName' => 'kmsKeyId', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', 'locationName' => 'snapshotId', ], 'VolumeSize' => [ 'shape' => 'Integer', 'locationName' => 'volumeSize', ], 'VolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'volumeType', ], ], ], 'EbsCardIndex' => [ 'type' => 'integer', ], 'EbsCardInfo' => [ 'type' => 'structure', 'members' => [ 'EbsCardIndex' => [ 'shape' => 'EbsCardIndex', 'locationName' => 'ebsCardIndex', ], 'BaselineBandwidthInMbps' => [ 'shape' => 'BaselineBandwidthInMbps', 'locationName' => 'baselineBandwidthInMbps', ], 'BaselineThroughputInMBps' => [ 'shape' => 'BaselineThroughputInMBps', 'locationName' => 'baselineThroughputInMBps', ], 'BaselineIops' => [ 'shape' => 'BaselineIops', 'locationName' => 'baselineIops', ], 'MaximumBandwidthInMbps' => [ 'shape' => 'MaximumBandwidthInMbps', 'locationName' => 'maximumBandwidthInMbps', ], 'MaximumThroughputInMBps' => [ 'shape' => 'MaximumThroughputInMBps', 'locationName' => 'maximumThroughputInMBps', ], 'MaximumIops' => [ 'shape' => 'MaximumIops', 'locationName' => 'maximumIops', ], ], ], 'EbsCardInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EbsCardInfo', 'locationName' => 'item', ], ], 'EbsEncryptionSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', ], ], 'EbsInfo' => [ 'type' => 'structure', 'members' => [ 'EbsOptimizedSupport' => [ 'shape' => 'EbsOptimizedSupport', 'locationName' => 'ebsOptimizedSupport', ], 'EncryptionSupport' => [ 'shape' => 'EbsEncryptionSupport', 'locationName' => 'encryptionSupport', ], 'EbsOptimizedInfo' => [ 'shape' => 'EbsOptimizedInfo', 'locationName' => 'ebsOptimizedInfo', ], 'NvmeSupport' => [ 'shape' => 'EbsNvmeSupport', 'locationName' => 'nvmeSupport', ], 'MaximumEbsAttachments' => [ 'shape' => 'MaximumEbsAttachments', 'locationName' => 'maximumEbsAttachments', ], 'AttachmentLimitType' => [ 'shape' => 'AttachmentLimitType', 'locationName' => 'attachmentLimitType', ], 'MaximumEbsCards' => [ 'shape' => 'MaximumEbsCards', 'locationName' => 'maximumEbsCards', ], 'EbsCards' => [ 'shape' => 'EbsCardInfoList', 'locationName' => 'ebsCardSet', ], ], ], 'EbsInstanceBlockDevice' => [ 'type' => 'structure', 'members' => [ 'AttachTime' => [ 'shape' => 'DateTime', 'locationName' => 'attachTime', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Status' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'status', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'AssociatedResource' => [ 'shape' => 'String', 'locationName' => 'associatedResource', ], 'VolumeOwnerId' => [ 'shape' => 'String', 'locationName' => 'volumeOwnerId', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], 'EbsCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'ebsCardIndex', ], ], ], 'EbsInstanceBlockDeviceSpecification' => [ 'type' => 'structure', 'members' => [ 'VolumeId' => [ 'shape' => 'VolumeId', 'locationName' => 'volumeId', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], ], ], 'EbsNvmeSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', 'required', ], ], 'EbsOptimizedInfo' => [ 'type' => 'structure', 'members' => [ 'BaselineBandwidthInMbps' => [ 'shape' => 'BaselineBandwidthInMbps', 'locationName' => 'baselineBandwidthInMbps', ], 'BaselineThroughputInMBps' => [ 'shape' => 'BaselineThroughputInMBps', 'locationName' => 'baselineThroughputInMBps', ], 'BaselineIops' => [ 'shape' => 'BaselineIops', 'locationName' => 'baselineIops', ], 'MaximumBandwidthInMbps' => [ 'shape' => 'MaximumBandwidthInMbps', 'locationName' => 'maximumBandwidthInMbps', ], 'MaximumThroughputInMBps' => [ 'shape' => 'MaximumThroughputInMBps', 'locationName' => 'maximumThroughputInMBps', ], 'MaximumIops' => [ 'shape' => 'MaximumIops', 'locationName' => 'maximumIops', ], ], ], 'EbsOptimizedSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', 'default', ], ], 'EbsStatusDetails' => [ 'type' => 'structure', 'members' => [ 'ImpairedSince' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'impairedSince', ], 'Name' => [ 'shape' => 'StatusName', 'locationName' => 'name', ], 'Status' => [ 'shape' => 'StatusType', 'locationName' => 'status', ], ], ], 'EbsStatusDetailsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EbsStatusDetails', 'locationName' => 'item', ], ], 'EbsStatusSummary' => [ 'type' => 'structure', 'members' => [ 'Details' => [ 'shape' => 'EbsStatusDetailsList', 'locationName' => 'details', ], 'Status' => [ 'shape' => 'SummaryStatus', 'locationName' => 'status', ], ], ], 'Ec2InstanceConnectEndpoint' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'InstanceConnectEndpointId' => [ 'shape' => 'InstanceConnectEndpointId', 'locationName' => 'instanceConnectEndpointId', ], 'InstanceConnectEndpointArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'instanceConnectEndpointArn', ], 'State' => [ 'shape' => 'Ec2InstanceConnectEndpointState', 'locationName' => 'state', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], 'DnsName' => [ 'shape' => 'String', 'locationName' => 'dnsName', ], 'FipsDnsName' => [ 'shape' => 'String', 'locationName' => 'fipsDnsName', ], 'NetworkInterfaceIds' => [ 'shape' => 'NetworkInterfaceIdSet', 'locationName' => 'networkInterfaceIdSet', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'CreatedAt' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createdAt', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'PreserveClientIp' => [ 'shape' => 'Boolean', 'locationName' => 'preserveClientIp', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdSet', 'locationName' => 'securityGroupIdSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', 'locationName' => 'ipAddressType', ], 'PublicDnsNames' => [ 'shape' => 'InstanceConnectEndpointPublicDnsNames', 'locationName' => 'publicDnsNames', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], ], ], 'Ec2InstanceConnectEndpointState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', 'update-in-progress', 'update-complete', 'update-failed', ], ], 'EfaInfo' => [ 'type' => 'structure', 'members' => [ 'MaximumEfaInterfaces' => [ 'shape' => 'MaximumEfaInterfaces', 'locationName' => 'maximumEfaInterfaces', ], ], ], 'EfaSupportedFlag' => [ 'type' => 'boolean', ], 'EgressOnlyInternetGateway' => [ 'type' => 'structure', 'members' => [ 'Attachments' => [ 'shape' => 'InternetGatewayAttachmentList', 'locationName' => 'attachmentSet', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'EgressOnlyInternetGatewayId', 'locationName' => 'egressOnlyInternetGatewayId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'EgressOnlyInternetGatewayId' => [ 'type' => 'string', ], 'EgressOnlyInternetGatewayIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EgressOnlyInternetGatewayId', 'locationName' => 'item', ], ], 'EgressOnlyInternetGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EgressOnlyInternetGateway', 'locationName' => 'item', ], ], 'EipAllocationPublicIp' => [ 'type' => 'string', ], 'EipAssociationIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticIpAssociationId', 'locationName' => 'item', ], ], 'EkPubKeyFormat' => [ 'type' => 'string', 'enum' => [ 'der', 'tpmt', ], ], 'EkPubKeyType' => [ 'type' => 'string', 'enum' => [ 'rsa-2048', 'ecc-sec-p384', ], ], 'EkPubKeyValue' => [ 'type' => 'string', 'sensitive' => true, ], 'ElasticGpuAssociation' => [ 'type' => 'structure', 'members' => [ 'ElasticGpuId' => [ 'shape' => 'ElasticGpuId', 'locationName' => 'elasticGpuId', ], 'ElasticGpuAssociationId' => [ 'shape' => 'String', 'locationName' => 'elasticGpuAssociationId', ], 'ElasticGpuAssociationState' => [ 'shape' => 'String', 'locationName' => 'elasticGpuAssociationState', ], 'ElasticGpuAssociationTime' => [ 'shape' => 'String', 'locationName' => 'elasticGpuAssociationTime', ], ], ], 'ElasticGpuAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpuAssociation', 'locationName' => 'item', ], ], 'ElasticGpuHealth' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ElasticGpuStatus', 'locationName' => 'status', ], ], ], 'ElasticGpuId' => [ 'type' => 'string', ], 'ElasticGpuIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpuId', 'locationName' => 'item', ], ], 'ElasticGpuSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpus', 'locationName' => 'item', ], ], 'ElasticGpuSpecification' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'String', ], ], ], 'ElasticGpuSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpuSpecification', 'locationName' => 'ElasticGpuSpecification', ], ], 'ElasticGpuSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], ], ], 'ElasticGpuSpecificationResponseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpuSpecificationResponse', 'locationName' => 'item', ], ], 'ElasticGpuSpecifications' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticGpuSpecification', 'locationName' => 'item', ], ], 'ElasticGpuState' => [ 'type' => 'string', 'enum' => [ 'ATTACHED', ], ], 'ElasticGpuStatus' => [ 'type' => 'string', 'enum' => [ 'OK', 'IMPAIRED', ], ], 'ElasticGpus' => [ 'type' => 'structure', 'members' => [ 'ElasticGpuId' => [ 'shape' => 'String', 'locationName' => 'elasticGpuId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'ElasticGpuType' => [ 'shape' => 'String', 'locationName' => 'elasticGpuType', ], 'ElasticGpuHealth' => [ 'shape' => 'ElasticGpuHealth', 'locationName' => 'elasticGpuHealth', ], 'ElasticGpuState' => [ 'shape' => 'ElasticGpuState', 'locationName' => 'elasticGpuState', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ElasticInferenceAccelerator' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Count' => [ 'shape' => 'ElasticInferenceAcceleratorCount', ], ], ], 'ElasticInferenceAcceleratorAssociation' => [ 'type' => 'structure', 'members' => [ 'ElasticInferenceAcceleratorArn' => [ 'shape' => 'String', 'locationName' => 'elasticInferenceAcceleratorArn', ], 'ElasticInferenceAcceleratorAssociationId' => [ 'shape' => 'String', 'locationName' => 'elasticInferenceAcceleratorAssociationId', ], 'ElasticInferenceAcceleratorAssociationState' => [ 'shape' => 'String', 'locationName' => 'elasticInferenceAcceleratorAssociationState', ], 'ElasticInferenceAcceleratorAssociationTime' => [ 'shape' => 'DateTime', 'locationName' => 'elasticInferenceAcceleratorAssociationTime', ], ], ], 'ElasticInferenceAcceleratorAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticInferenceAcceleratorAssociation', 'locationName' => 'item', ], ], 'ElasticInferenceAcceleratorCount' => [ 'type' => 'integer', 'min' => 1, ], 'ElasticInferenceAccelerators' => [ 'type' => 'list', 'member' => [ 'shape' => 'ElasticInferenceAccelerator', 'locationName' => 'item', ], ], 'ElasticIpAssociationId' => [ 'type' => 'string', ], 'EnaSrdSpecification' => [ 'type' => 'structure', 'members' => [ 'EnaSrdEnabled' => [ 'shape' => 'Boolean', ], 'EnaSrdUdpSpecification' => [ 'shape' => 'EnaSrdUdpSpecification', ], ], ], 'EnaSrdSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'EnaSrdEnabled' => [ 'shape' => 'Boolean', ], 'EnaSrdUdpSpecification' => [ 'shape' => 'EnaSrdUdpSpecificationRequest', ], ], ], 'EnaSrdSupported' => [ 'type' => 'boolean', ], 'EnaSrdUdpSpecification' => [ 'type' => 'structure', 'members' => [ 'EnaSrdUdpEnabled' => [ 'shape' => 'Boolean', ], ], ], 'EnaSrdUdpSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'EnaSrdUdpEnabled' => [ 'shape' => 'Boolean', ], ], ], 'EnaSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', 'required', ], ], 'EnableAddressTransferRequest' => [ 'type' => 'structure', 'required' => [ 'AllocationId', 'TransferAccountId', ], 'members' => [ 'AllocationId' => [ 'shape' => 'AllocationId', ], 'TransferAccountId' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableAddressTransferResult' => [ 'type' => 'structure', 'members' => [ 'AddressTransfer' => [ 'shape' => 'AddressTransfer', 'locationName' => 'addressTransfer', ], ], ], 'EnableAllowedImagesSettingsRequest' => [ 'type' => 'structure', 'required' => [ 'AllowedImagesSettingsState', ], 'members' => [ 'AllowedImagesSettingsState' => [ 'shape' => 'AllowedImagesSettingsEnabledState', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableAllowedImagesSettingsResult' => [ 'type' => 'structure', 'members' => [ 'AllowedImagesSettingsState' => [ 'shape' => 'AllowedImagesSettingsEnabledState', 'locationName' => 'allowedImagesSettingsState', ], ], ], 'EnableAwsNetworkPerformanceMetricSubscriptionRequest' => [ 'type' => 'structure', 'members' => [ 'Source' => [ 'shape' => 'String', ], 'Destination' => [ 'shape' => 'String', ], 'Metric' => [ 'shape' => 'MetricType', ], 'Statistic' => [ 'shape' => 'StatisticType', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableAwsNetworkPerformanceMetricSubscriptionResult' => [ 'type' => 'structure', 'members' => [ 'Output' => [ 'shape' => 'Boolean', 'locationName' => 'output', ], ], ], 'EnableCapacityManagerRequest' => [ 'type' => 'structure', 'members' => [ 'OrganizationsAccess' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'EnableCapacityManagerResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerStatus' => [ 'shape' => 'CapacityManagerStatus', 'locationName' => 'capacityManagerStatus', ], 'OrganizationsAccess' => [ 'shape' => 'Boolean', 'locationName' => 'organizationsAccess', ], ], ], 'EnableEbsEncryptionByDefaultRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableEbsEncryptionByDefaultResult' => [ 'type' => 'structure', 'members' => [ 'EbsEncryptionByDefault' => [ 'shape' => 'Boolean', 'locationName' => 'ebsEncryptionByDefault', ], ], ], 'EnableFastLaunchRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'ResourceType' => [ 'shape' => 'String', ], 'SnapshotConfiguration' => [ 'shape' => 'FastLaunchSnapshotConfigurationRequest', ], 'LaunchTemplate' => [ 'shape' => 'FastLaunchLaunchTemplateSpecificationRequest', ], 'MaxParallelLaunches' => [ 'shape' => 'Integer', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableFastLaunchResult' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'ResourceType' => [ 'shape' => 'FastLaunchResourceType', 'locationName' => 'resourceType', ], 'SnapshotConfiguration' => [ 'shape' => 'FastLaunchSnapshotConfigurationResponse', 'locationName' => 'snapshotConfiguration', ], 'LaunchTemplate' => [ 'shape' => 'FastLaunchLaunchTemplateSpecificationResponse', 'locationName' => 'launchTemplate', ], 'MaxParallelLaunches' => [ 'shape' => 'Integer', 'locationName' => 'maxParallelLaunches', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'State' => [ 'shape' => 'FastLaunchStateCode', 'locationName' => 'state', ], 'StateTransitionReason' => [ 'shape' => 'String', 'locationName' => 'stateTransitionReason', ], 'StateTransitionTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'stateTransitionTime', ], ], ], 'EnableFastSnapshotRestoreErrorItem' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'FastSnapshotRestoreStateErrors' => [ 'shape' => 'EnableFastSnapshotRestoreStateErrorSet', 'locationName' => 'fastSnapshotRestoreStateErrorSet', ], ], ], 'EnableFastSnapshotRestoreErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnableFastSnapshotRestoreErrorItem', 'locationName' => 'item', ], ], 'EnableFastSnapshotRestoreStateError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'EnableFastSnapshotRestoreStateErrorItem' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'Error' => [ 'shape' => 'EnableFastSnapshotRestoreStateError', 'locationName' => 'error', ], ], ], 'EnableFastSnapshotRestoreStateErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnableFastSnapshotRestoreStateErrorItem', 'locationName' => 'item', ], ], 'EnableFastSnapshotRestoreSuccessItem' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'State' => [ 'shape' => 'FastSnapshotRestoreStateCode', 'locationName' => 'state', ], 'StateTransitionReason' => [ 'shape' => 'String', 'locationName' => 'stateTransitionReason', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'OwnerAlias' => [ 'shape' => 'String', 'locationName' => 'ownerAlias', ], 'EnablingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'enablingTime', ], 'OptimizingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'optimizingTime', ], 'EnabledTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'enabledTime', ], 'DisablingTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'disablingTime', ], 'DisabledTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'disabledTime', ], ], ], 'EnableFastSnapshotRestoreSuccessSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnableFastSnapshotRestoreSuccessItem', 'locationName' => 'item', ], ], 'EnableFastSnapshotRestoresRequest' => [ 'type' => 'structure', 'required' => [ 'SourceSnapshotIds', ], 'members' => [ 'AvailabilityZones' => [ 'shape' => 'AvailabilityZoneStringList', 'locationName' => 'AvailabilityZone', ], 'AvailabilityZoneIds' => [ 'shape' => 'AvailabilityZoneIdStringList', 'locationName' => 'AvailabilityZoneId', ], 'SourceSnapshotIds' => [ 'shape' => 'SnapshotIdStringList', 'locationName' => 'SourceSnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableFastSnapshotRestoresResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'EnableFastSnapshotRestoreSuccessSet', 'locationName' => 'successful', ], 'Unsuccessful' => [ 'shape' => 'EnableFastSnapshotRestoreErrorSet', 'locationName' => 'unsuccessful', ], ], ], 'EnableImageBlockPublicAccessRequest' => [ 'type' => 'structure', 'required' => [ 'ImageBlockPublicAccessState', ], 'members' => [ 'ImageBlockPublicAccessState' => [ 'shape' => 'ImageBlockPublicAccessEnabledState', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableImageBlockPublicAccessResult' => [ 'type' => 'structure', 'members' => [ 'ImageBlockPublicAccessState' => [ 'shape' => 'ImageBlockPublicAccessEnabledState', 'locationName' => 'imageBlockPublicAccessState', ], ], ], 'EnableImageDeprecationRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', 'DeprecateAt', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DeprecateAt' => [ 'shape' => 'MillisecondDateTime', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableImageDeprecationResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'EnableImageDeregistrationProtectionRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'WithCooldown' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableImageDeregistrationProtectionResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'String', 'locationName' => 'return', ], ], ], 'EnableImageRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableImageResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'EnableInstanceSqlHaStandbyDetectionsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdUpdateStringList', 'locationName' => 'InstanceId', ], 'SqlServerCredentials' => [ 'shape' => 'SecretArn', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableInstanceSqlHaStandbyDetectionsResult' => [ 'type' => 'structure', 'members' => [ 'Instances' => [ 'shape' => 'RegisteredInstanceList', 'locationName' => 'instanceSet', ], ], ], 'EnableIpamOrganizationAdminAccountRequest' => [ 'type' => 'structure', 'required' => [ 'DelegatedAdminAccountId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'DelegatedAdminAccountId' => [ 'shape' => 'String', ], ], ], 'EnableIpamOrganizationAdminAccountResult' => [ 'type' => 'structure', 'members' => [ 'Success' => [ 'shape' => 'Boolean', 'locationName' => 'success', ], ], ], 'EnableIpamPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPolicyId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', ], 'OrganizationTargetId' => [ 'shape' => 'String', ], ], ], 'EnableIpamPolicyResult' => [ 'type' => 'structure', 'members' => [ 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', 'locationName' => 'ipamPolicyId', ], ], ], 'EnableReachabilityAnalyzerOrganizationSharingRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableReachabilityAnalyzerOrganizationSharingResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'returnValue', ], ], ], 'EnableRouteServerPropagationRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', 'RouteTableId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableRouteServerPropagationResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerPropagation' => [ 'shape' => 'RouteServerPropagation', 'locationName' => 'routeServerPropagation', ], ], ], 'EnableSerialConsoleAccessRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableSerialConsoleAccessResult' => [ 'type' => 'structure', 'members' => [ 'SerialConsoleAccessEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'serialConsoleAccessEnabled', ], ], ], 'EnableSnapshotBlockPublicAccessRequest' => [ 'type' => 'structure', 'required' => [ 'State', ], 'members' => [ 'State' => [ 'shape' => 'SnapshotBlockPublicAccessState', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableSnapshotBlockPublicAccessResult' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'SnapshotBlockPublicAccessState', 'locationName' => 'state', ], ], ], 'EnableTransitGatewayRouteTablePropagationRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TransitGatewayRouteTableAnnouncementId' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementId', ], ], ], 'EnableTransitGatewayRouteTablePropagationResult' => [ 'type' => 'structure', 'members' => [ 'Propagation' => [ 'shape' => 'TransitGatewayPropagation', 'locationName' => 'propagation', ], ], ], 'EnableVgwRoutePropagationRequest' => [ 'type' => 'structure', 'required' => [ 'GatewayId', 'RouteTableId', ], 'members' => [ 'GatewayId' => [ 'shape' => 'VpnGatewayId', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'EnableVolumeIORequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VolumeId' => [ 'shape' => 'VolumeId', 'locationName' => 'volumeId', ], ], ], 'EnableVpcClassicLinkDnsSupportRequest' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], ], ], 'EnableVpcClassicLinkDnsSupportResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'EnableVpcClassicLinkRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], ], ], 'EnableVpcClassicLinkResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'EnclaveOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], ], ], 'EnclaveOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'EncryptionInTransitSupported' => [ 'type' => 'boolean', ], 'EncryptionStateValue' => [ 'type' => 'string', 'enum' => [ 'enabling', 'enabled', 'disabling', 'disabled', ], ], 'EncryptionSupport' => [ 'type' => 'structure', 'members' => [ 'EncryptionState' => [ 'shape' => 'EncryptionStateValue', 'locationName' => 'encryptionState', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], ], ], 'EncryptionSupportOptionValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'EndDateType' => [ 'type' => 'string', 'enum' => [ 'unlimited', 'limited', ], ], 'EndpointIpAddressType' => [ 'type' => 'string', 'enum' => [ 'ipv4', 'ipv6', 'dual-stack', ], ], 'EndpointSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClientVpnEndpoint', 'locationName' => 'item', ], ], 'EphemeralNvmeSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', 'required', ], ], 'ErrorSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValidationError', 'locationName' => 'item', ], ], 'EventCode' => [ 'type' => 'string', 'enum' => [ 'instance-reboot', 'system-reboot', 'system-maintenance', 'instance-retirement', 'instance-stop', ], ], 'EventInformation' => [ 'type' => 'structure', 'members' => [ 'EventDescription' => [ 'shape' => 'String', 'locationName' => 'eventDescription', ], 'EventSubType' => [ 'shape' => 'String', 'locationName' => 'eventSubType', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], ], ], 'EventType' => [ 'type' => 'string', 'enum' => [ 'instanceChange', 'fleetRequestChange', 'error', 'information', ], ], 'ExcessCapacityTerminationPolicy' => [ 'type' => 'string', 'enum' => [ 'noTermination', 'default', ], ], 'ExcludedInstanceType' => [ 'type' => 'string', 'max' => 30, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\.\\*\\-]+', ], 'ExcludedInstanceTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExcludedInstanceType', 'locationName' => 'item', ], 'max' => 400, 'min' => 0, ], 'ExecutableByStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ExecutableBy', ], ], 'Explanation' => [ 'type' => 'structure', 'members' => [ 'Acl' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'acl', ], 'AclRule' => [ 'shape' => 'AnalysisAclRule', 'locationName' => 'aclRule', ], 'Address' => [ 'shape' => 'IpAddress', 'locationName' => 'address', ], 'Addresses' => [ 'shape' => 'IpAddressList', 'locationName' => 'addressSet', ], 'AttachedTo' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'attachedTo', ], 'AvailabilityZones' => [ 'shape' => 'ValueStringList', 'locationName' => 'availabilityZoneSet', ], 'AvailabilityZoneIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'availabilityZoneIdSet', ], 'Cidrs' => [ 'shape' => 'ValueStringList', 'locationName' => 'cidrSet', ], 'Component' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'component', ], 'CustomerGateway' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'customerGateway', ], 'Destination' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'destination', ], 'DestinationVpc' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'destinationVpc', ], 'Direction' => [ 'shape' => 'String', 'locationName' => 'direction', ], 'ExplanationCode' => [ 'shape' => 'String', 'locationName' => 'explanationCode', ], 'IngressRouteTable' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'ingressRouteTable', ], 'InternetGateway' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'internetGateway', ], 'LoadBalancerArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'loadBalancerArn', ], 'ClassicLoadBalancerListener' => [ 'shape' => 'AnalysisLoadBalancerListener', 'locationName' => 'classicLoadBalancerListener', ], 'LoadBalancerListenerPort' => [ 'shape' => 'Port', 'locationName' => 'loadBalancerListenerPort', ], 'LoadBalancerTarget' => [ 'shape' => 'AnalysisLoadBalancerTarget', 'locationName' => 'loadBalancerTarget', ], 'LoadBalancerTargetGroup' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'loadBalancerTargetGroup', ], 'LoadBalancerTargetGroups' => [ 'shape' => 'AnalysisComponentList', 'locationName' => 'loadBalancerTargetGroupSet', ], 'LoadBalancerTargetPort' => [ 'shape' => 'Port', 'locationName' => 'loadBalancerTargetPort', ], 'ElasticLoadBalancerListener' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'elasticLoadBalancerListener', ], 'MissingComponent' => [ 'shape' => 'String', 'locationName' => 'missingComponent', ], 'NatGateway' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'natGateway', ], 'NetworkInterface' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'networkInterface', ], 'PacketField' => [ 'shape' => 'String', 'locationName' => 'packetField', ], 'VpcPeeringConnection' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'vpcPeeringConnection', ], 'Port' => [ 'shape' => 'Port', 'locationName' => 'port', ], 'PortRanges' => [ 'shape' => 'PortRangeList', 'locationName' => 'portRangeSet', ], 'PrefixList' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'prefixList', ], 'Protocols' => [ 'shape' => 'StringList', 'locationName' => 'protocolSet', ], 'RouteTableRoute' => [ 'shape' => 'AnalysisRouteTableRoute', 'locationName' => 'routeTableRoute', ], 'RouteTable' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'routeTable', ], 'SecurityGroup' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'securityGroup', ], 'SecurityGroupRule' => [ 'shape' => 'AnalysisSecurityGroupRule', 'locationName' => 'securityGroupRule', ], 'SecurityGroups' => [ 'shape' => 'AnalysisComponentList', 'locationName' => 'securityGroupSet', ], 'SourceVpc' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'sourceVpc', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'Subnet' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'subnet', ], 'SubnetRouteTable' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'subnetRouteTable', ], 'Vpc' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'vpc', ], 'VpcEndpoint' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'vpcEndpoint', ], 'VpnConnection' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'vpnConnection', ], 'VpnGateway' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'vpnGateway', ], 'TransitGateway' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'transitGateway', ], 'TransitGatewayRouteTable' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'transitGatewayRouteTable', ], 'TransitGatewayRouteTableRoute' => [ 'shape' => 'TransitGatewayRouteTableRoute', 'locationName' => 'transitGatewayRouteTableRoute', ], 'TransitGatewayAttachment' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'transitGatewayAttachment', ], 'ComponentAccount' => [ 'shape' => 'ComponentAccount', 'locationName' => 'componentAccount', ], 'ComponentRegion' => [ 'shape' => 'ComponentRegion', 'locationName' => 'componentRegion', ], 'FirewallStatelessRule' => [ 'shape' => 'FirewallStatelessRule', 'locationName' => 'firewallStatelessRule', ], 'FirewallStatefulRule' => [ 'shape' => 'FirewallStatefulRule', 'locationName' => 'firewallStatefulRule', ], ], ], 'ExplanationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Explanation', 'locationName' => 'item', ], ], 'ExportClientVpnClientCertificateRevocationListRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ExportClientVpnClientCertificateRevocationListResult' => [ 'type' => 'structure', 'members' => [ 'CertificateRevocationList' => [ 'shape' => 'String', 'locationName' => 'certificateRevocationList', ], 'Status' => [ 'shape' => 'ClientCertificateRevocationListStatus', 'locationName' => 'status', ], ], ], 'ExportClientVpnClientConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ExportClientVpnClientConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'ClientConfiguration' => [ 'shape' => 'String', 'locationName' => 'clientConfiguration', ], ], ], 'ExportEnvironment' => [ 'type' => 'string', 'enum' => [ 'citrix', 'vmware', 'microsoft', ], ], 'ExportImageRequest' => [ 'type' => 'structure', 'required' => [ 'DiskImageFormat', 'ImageId', 'S3ExportLocation', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'Description' => [ 'shape' => 'String', ], 'DiskImageFormat' => [ 'shape' => 'DiskImageFormat', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'S3ExportLocation' => [ 'shape' => 'ExportTaskS3LocationRequest', ], 'RoleName' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'ExportImageResult' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DiskImageFormat' => [ 'shape' => 'DiskImageFormat', 'locationName' => 'diskImageFormat', ], 'ExportImageTaskId' => [ 'shape' => 'String', 'locationName' => 'exportImageTaskId', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'RoleName' => [ 'shape' => 'String', 'locationName' => 'roleName', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'S3ExportLocation' => [ 'shape' => 'ExportTaskS3Location', 'locationName' => 's3ExportLocation', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ExportImageTask' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ExportImageTaskId' => [ 'shape' => 'String', 'locationName' => 'exportImageTaskId', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'S3ExportLocation' => [ 'shape' => 'ExportTaskS3Location', 'locationName' => 's3ExportLocation', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ExportImageTaskId' => [ 'type' => 'string', ], 'ExportImageTaskIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExportImageTaskId', 'locationName' => 'ExportImageTaskId', ], ], 'ExportImageTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExportImageTask', 'locationName' => 'item', ], ], 'ExportTask' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ExportTaskId' => [ 'shape' => 'String', 'locationName' => 'exportTaskId', ], 'ExportToS3Task' => [ 'shape' => 'ExportToS3Task', 'locationName' => 'exportToS3', ], 'InstanceExportDetails' => [ 'shape' => 'InstanceExportDetails', 'locationName' => 'instanceExport', ], 'State' => [ 'shape' => 'ExportTaskState', 'locationName' => 'state', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ExportTaskId' => [ 'type' => 'string', ], 'ExportTaskIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExportTaskId', 'locationName' => 'ExportTaskId', ], ], 'ExportTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExportTask', 'locationName' => 'item', ], ], 'ExportTaskS3Location' => [ 'type' => 'structure', 'members' => [ 'S3Bucket' => [ 'shape' => 'String', 'locationName' => 's3Bucket', ], 'S3Prefix' => [ 'shape' => 'String', 'locationName' => 's3Prefix', ], ], ], 'ExportTaskS3LocationRequest' => [ 'type' => 'structure', 'required' => [ 'S3Bucket', ], 'members' => [ 'S3Bucket' => [ 'shape' => 'String', ], 'S3Prefix' => [ 'shape' => 'String', ], ], ], 'ExportTaskState' => [ 'type' => 'string', 'enum' => [ 'active', 'cancelling', 'cancelled', 'completed', ], ], 'ExportToS3Task' => [ 'type' => 'structure', 'members' => [ 'ContainerFormat' => [ 'shape' => 'ContainerFormat', 'locationName' => 'containerFormat', ], 'DiskImageFormat' => [ 'shape' => 'DiskImageFormat', 'locationName' => 'diskImageFormat', ], 'S3Bucket' => [ 'shape' => 'String', 'locationName' => 's3Bucket', ], 'S3Key' => [ 'shape' => 'String', 'locationName' => 's3Key', ], ], ], 'ExportToS3TaskSpecification' => [ 'type' => 'structure', 'members' => [ 'DiskImageFormat' => [ 'shape' => 'DiskImageFormat', 'locationName' => 'diskImageFormat', ], 'ContainerFormat' => [ 'shape' => 'ContainerFormat', 'locationName' => 'containerFormat', ], 'S3Bucket' => [ 'shape' => 'String', 'locationName' => 's3Bucket', ], 'S3Prefix' => [ 'shape' => 'String', 'locationName' => 's3Prefix', ], ], ], 'ExportTransitGatewayRoutesRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'S3Bucket', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'S3Bucket' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ExportTransitGatewayRoutesResult' => [ 'type' => 'structure', 'members' => [ 'S3Location' => [ 'shape' => 'String', 'locationName' => 's3Location', ], ], ], 'ExportVerifiedAccessInstanceClientConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessInstanceId', ], 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ExportVerifiedAccessInstanceClientConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'Version' => [ 'shape' => 'String', 'locationName' => 'version', ], 'VerifiedAccessInstanceId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessInstanceId', ], 'Region' => [ 'shape' => 'String', 'locationName' => 'region', ], 'DeviceTrustProviders' => [ 'shape' => 'DeviceTrustProviderTypeList', 'locationName' => 'deviceTrustProviderSet', ], 'UserTrustProvider' => [ 'shape' => 'VerifiedAccessInstanceUserTrustProviderClientConfiguration', 'locationName' => 'userTrustProvider', ], 'OpenVpnConfigurations' => [ 'shape' => 'VerifiedAccessInstanceOpenVpnClientConfigurationList', 'locationName' => 'openVpnConfigurationSet', ], ], ], 'ExportVmTaskId' => [ 'type' => 'string', ], 'ExternalAuthorityConfiguration' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'IpamScopeExternalAuthorityType', ], 'ExternalResourceIdentifier' => [ 'shape' => 'String', ], ], ], 'FailedCapacityReservationFleetCancellationResult' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationFleetId' => [ 'shape' => 'CapacityReservationFleetId', 'locationName' => 'capacityReservationFleetId', ], 'CancelCapacityReservationFleetError' => [ 'shape' => 'CancelCapacityReservationFleetError', 'locationName' => 'cancelCapacityReservationFleetError', ], ], ], 'FailedCapacityReservationFleetCancellationResultSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'FailedCapacityReservationFleetCancellationResult', 'locationName' => 'item', ], ], 'FailedQueuedPurchaseDeletion' => [ 'type' => 'structure', 'members' => [ 'Error' => [ 'shape' => 'DeleteQueuedReservedInstancesError', 'locationName' => 'error', ], 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], ], ], 'FailedQueuedPurchaseDeletionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'FailedQueuedPurchaseDeletion', 'locationName' => 'item', ], ], 'FastLaunchImageIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageId', 'locationName' => 'ImageId', ], ], 'FastLaunchLaunchTemplateSpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'Version', ], 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'String', ], 'Version' => [ 'shape' => 'String', ], ], ], 'FastLaunchLaunchTemplateSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'String', 'locationName' => 'launchTemplateName', ], 'Version' => [ 'shape' => 'String', 'locationName' => 'version', ], ], ], 'FastLaunchResourceType' => [ 'type' => 'string', 'enum' => [ 'snapshot', ], ], 'FastLaunchSnapshotConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'TargetResourceCount' => [ 'shape' => 'Integer', ], ], ], 'FastLaunchSnapshotConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'TargetResourceCount' => [ 'shape' => 'Integer', 'locationName' => 'targetResourceCount', ], ], ], 'FastLaunchStateCode' => [ 'type' => 'string', 'enum' => [ 'enabling', 'enabling-failed', 'enabled', 'enabled-failed', 'disabling', 'disabling-failed', ], ], 'FastSnapshotRestoreStateCode' => [ 'type' => 'string', 'enum' => [ 'enabling', 'optimizing', 'enabled', 'disabling', 'disabled', ], ], 'FederatedAuthentication' => [ 'type' => 'structure', 'members' => [ 'SamlProviderArn' => [ 'shape' => 'String', 'locationName' => 'samlProviderArn', ], 'SelfServiceSamlProviderArn' => [ 'shape' => 'String', 'locationName' => 'selfServiceSamlProviderArn', ], ], ], 'FederatedAuthenticationRequest' => [ 'type' => 'structure', 'members' => [ 'SAMLProviderArn' => [ 'shape' => 'String', ], 'SelfServiceSAMLProviderArn' => [ 'shape' => 'String', ], ], ], 'Filter' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Values' => [ 'shape' => 'ValueStringList', 'locationName' => 'Value', ], ], ], 'FilterByDimension' => [ 'type' => 'string', 'enum' => [ 'resource-region', 'availability-zone-id', 'account-id', 'account-name', 'instance-family', 'instance-type', 'instance-platform', 'reservation-arn', 'reservation-id', 'reservation-type', 'reservation-create-timestamp', 'reservation-start-timestamp', 'reservation-end-timestamp', 'reservation-end-date-type', 'tenancy', 'reservation-state', 'reservation-instance-match-criteria', 'reservation-unused-financial-owner', ], 'max' => 300, 'min' => 0, ], 'FilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Filter', 'locationName' => 'Filter', ], ], 'FilterPortRange' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'Port', 'locationName' => 'fromPort', ], 'ToPort' => [ 'shape' => 'Port', 'locationName' => 'toPort', ], ], ], 'FindingsFound' => [ 'type' => 'string', 'enum' => [ 'true', 'false', 'unknown', ], ], 'FirewallStatefulRule' => [ 'type' => 'structure', 'members' => [ 'RuleGroupArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ruleGroupArn', ], 'Sources' => [ 'shape' => 'ValueStringList', 'locationName' => 'sourceSet', ], 'Destinations' => [ 'shape' => 'ValueStringList', 'locationName' => 'destinationSet', ], 'SourcePorts' => [ 'shape' => 'PortRangeList', 'locationName' => 'sourcePortSet', ], 'DestinationPorts' => [ 'shape' => 'PortRangeList', 'locationName' => 'destinationPortSet', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'RuleAction' => [ 'shape' => 'String', 'locationName' => 'ruleAction', ], 'Direction' => [ 'shape' => 'String', 'locationName' => 'direction', ], ], ], 'FirewallStatelessRule' => [ 'type' => 'structure', 'members' => [ 'RuleGroupArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ruleGroupArn', ], 'Sources' => [ 'shape' => 'ValueStringList', 'locationName' => 'sourceSet', ], 'Destinations' => [ 'shape' => 'ValueStringList', 'locationName' => 'destinationSet', ], 'SourcePorts' => [ 'shape' => 'PortRangeList', 'locationName' => 'sourcePortSet', ], 'DestinationPorts' => [ 'shape' => 'PortRangeList', 'locationName' => 'destinationPortSet', ], 'Protocols' => [ 'shape' => 'ProtocolIntList', 'locationName' => 'protocolSet', ], 'RuleAction' => [ 'shape' => 'String', 'locationName' => 'ruleAction', ], 'Priority' => [ 'shape' => 'Priority', 'locationName' => 'priority', ], ], ], 'FleetActivityStatus' => [ 'type' => 'string', 'enum' => [ 'error', 'pending_fulfillment', 'pending_termination', 'fulfilled', ], ], 'FleetBlockDeviceMappingRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', ], 'VirtualName' => [ 'shape' => 'String', ], 'Ebs' => [ 'shape' => 'FleetEbsBlockDeviceRequest', ], 'NoDevice' => [ 'shape' => 'String', ], ], ], 'FleetBlockDeviceMappingRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetBlockDeviceMappingRequest', 'locationName' => 'BlockDeviceMapping', ], ], 'FleetCapacityReservation' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', 'locationName' => 'capacityReservationId', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'InstancePlatform' => [ 'shape' => 'CapacityReservationInstancePlatform', 'locationName' => 'instancePlatform', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'TotalInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'totalInstanceCount', ], 'FulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'fulfilledCapacity', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'CreateDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createDate', ], 'Weight' => [ 'shape' => 'DoubleWithConstraints', 'locationName' => 'weight', ], 'Priority' => [ 'shape' => 'IntegerWithConstraints', 'locationName' => 'priority', ], ], ], 'FleetCapacityReservationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetCapacityReservation', 'locationName' => 'item', ], ], 'FleetCapacityReservationTenancy' => [ 'type' => 'string', 'enum' => [ 'default', ], ], 'FleetCapacityReservationUsageStrategy' => [ 'type' => 'string', 'enum' => [ 'use-capacity-reservations-first', ], ], 'FleetData' => [ 'type' => 'structure', 'members' => [ 'ActivityStatus' => [ 'shape' => 'FleetActivityStatus', 'locationName' => 'activityStatus', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'FleetId' => [ 'shape' => 'FleetId', 'locationName' => 'fleetId', ], 'FleetState' => [ 'shape' => 'FleetStateCode', 'locationName' => 'fleetState', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'FleetExcessCapacityTerminationPolicy', 'locationName' => 'excessCapacityTerminationPolicy', ], 'FulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'fulfilledCapacity', ], 'FulfilledOnDemandCapacity' => [ 'shape' => 'Double', 'locationName' => 'fulfilledOnDemandCapacity', ], 'LaunchTemplateConfigs' => [ 'shape' => 'FleetLaunchTemplateConfigList', 'locationName' => 'launchTemplateConfigs', ], 'TargetCapacitySpecification' => [ 'shape' => 'TargetCapacitySpecification', 'locationName' => 'targetCapacitySpecification', ], 'TerminateInstancesWithExpiration' => [ 'shape' => 'Boolean', 'locationName' => 'terminateInstancesWithExpiration', ], 'Type' => [ 'shape' => 'FleetType', 'locationName' => 'type', ], 'ValidFrom' => [ 'shape' => 'DateTime', 'locationName' => 'validFrom', ], 'ValidUntil' => [ 'shape' => 'DateTime', 'locationName' => 'validUntil', ], 'ReplaceUnhealthyInstances' => [ 'shape' => 'Boolean', 'locationName' => 'replaceUnhealthyInstances', ], 'SpotOptions' => [ 'shape' => 'SpotOptions', 'locationName' => 'spotOptions', ], 'OnDemandOptions' => [ 'shape' => 'OnDemandOptions', 'locationName' => 'onDemandOptions', ], 'ReservedCapacityOptions' => [ 'shape' => 'ReservedCapacityOptions', 'locationName' => 'reservedCapacityOptions', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'Errors' => [ 'shape' => 'DescribeFleetsErrorSet', 'locationName' => 'errorSet', ], 'Instances' => [ 'shape' => 'DescribeFleetsInstancesSet', 'locationName' => 'fleetInstanceSet', ], 'Context' => [ 'shape' => 'String', 'locationName' => 'context', ], ], ], 'FleetEbsBlockDeviceRequest' => [ 'type' => 'structure', 'members' => [ 'Encrypted' => [ 'shape' => 'Boolean', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'Iops' => [ 'shape' => 'Integer', ], 'Throughput' => [ 'shape' => 'Integer', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'VolumeSize' => [ 'shape' => 'Integer', ], 'VolumeType' => [ 'shape' => 'VolumeType', ], ], ], 'FleetEventType' => [ 'type' => 'string', 'enum' => [ 'instance-change', 'fleet-change', 'service-error', ], ], 'FleetExcessCapacityTerminationPolicy' => [ 'type' => 'string', 'enum' => [ 'no-termination', 'termination', ], ], 'FleetId' => [ 'type' => 'string', ], 'FleetIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetId', ], ], 'FleetInstanceMatchCriteria' => [ 'type' => 'string', 'enum' => [ 'open', ], ], 'FleetLaunchTemplateConfig' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateSpecification' => [ 'shape' => 'FleetLaunchTemplateSpecification', 'locationName' => 'launchTemplateSpecification', ], 'Overrides' => [ 'shape' => 'FleetLaunchTemplateOverridesList', 'locationName' => 'overrides', ], ], ], 'FleetLaunchTemplateConfigList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetLaunchTemplateConfig', 'locationName' => 'item', ], ], 'FleetLaunchTemplateConfigListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetLaunchTemplateConfigRequest', 'locationName' => 'item', ], 'max' => 50, 'min' => 0, ], 'FleetLaunchTemplateConfigRequest' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateSpecification' => [ 'shape' => 'FleetLaunchTemplateSpecificationRequest', ], 'Overrides' => [ 'shape' => 'FleetLaunchTemplateOverridesListRequest', ], ], ], 'FleetLaunchTemplateOverrides' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'MaxPrice' => [ 'shape' => 'String', 'locationName' => 'maxPrice', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'availabilityZone', ], 'WeightedCapacity' => [ 'shape' => 'Double', 'locationName' => 'weightedCapacity', ], 'Priority' => [ 'shape' => 'Double', 'locationName' => 'priority', ], 'Placement' => [ 'shape' => 'PlacementResponse', 'locationName' => 'placement', ], 'InstanceRequirements' => [ 'shape' => 'InstanceRequirements', 'locationName' => 'instanceRequirements', ], 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingResponseList', 'locationName' => 'blockDeviceMappingSet', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], ], ], 'FleetLaunchTemplateOverridesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetLaunchTemplateOverrides', 'locationName' => 'item', ], ], 'FleetLaunchTemplateOverridesListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetLaunchTemplateOverridesRequest', 'locationName' => 'item', ], ], 'FleetLaunchTemplateOverridesRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', ], 'MaxPrice' => [ 'shape' => 'String', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', ], 'WeightedCapacity' => [ 'shape' => 'Double', ], 'Priority' => [ 'shape' => 'Double', ], 'Placement' => [ 'shape' => 'Placement', ], 'BlockDeviceMappings' => [ 'shape' => 'FleetBlockDeviceMappingRequestList', 'locationName' => 'BlockDeviceMapping', ], 'InstanceRequirements' => [ 'shape' => 'InstanceRequirementsRequest', ], 'ImageId' => [ 'shape' => 'String', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], ], ], 'FleetLaunchTemplateSpecification' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', 'locationName' => 'launchTemplateName', ], 'Version' => [ 'shape' => 'String', 'locationName' => 'version', ], ], ], 'FleetLaunchTemplateSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'Version' => [ 'shape' => 'String', ], ], ], 'FleetOnDemandAllocationStrategy' => [ 'type' => 'string', 'enum' => [ 'lowest-price', 'prioritized', ], ], 'FleetReplacementStrategy' => [ 'type' => 'string', 'enum' => [ 'launch', 'launch-before-terminate', ], ], 'FleetReservationType' => [ 'type' => 'string', 'enum' => [ 'interruptible-capacity-reservation', ], ], 'FleetSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetData', 'locationName' => 'item', ], ], 'FleetSpotCapacityRebalance' => [ 'type' => 'structure', 'members' => [ 'ReplacementStrategy' => [ 'shape' => 'FleetReplacementStrategy', 'locationName' => 'replacementStrategy', ], 'TerminationDelay' => [ 'shape' => 'Integer', 'locationName' => 'terminationDelay', ], ], ], 'FleetSpotCapacityRebalanceRequest' => [ 'type' => 'structure', 'members' => [ 'ReplacementStrategy' => [ 'shape' => 'FleetReplacementStrategy', ], 'TerminationDelay' => [ 'shape' => 'Integer', ], ], ], 'FleetSpotMaintenanceStrategies' => [ 'type' => 'structure', 'members' => [ 'CapacityRebalance' => [ 'shape' => 'FleetSpotCapacityRebalance', 'locationName' => 'capacityRebalance', ], ], ], 'FleetSpotMaintenanceStrategiesRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityRebalance' => [ 'shape' => 'FleetSpotCapacityRebalanceRequest', ], ], ], 'FleetStateCode' => [ 'type' => 'string', 'enum' => [ 'submitted', 'active', 'deleted', 'failed', 'deleted_running', 'deleted_terminating', 'modifying', ], ], 'FleetType' => [ 'type' => 'string', 'enum' => [ 'request', 'maintain', 'instant', ], ], 'FlexibleEnaQueuesSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', ], ], 'Float' => [ 'type' => 'float', ], 'FlowLog' => [ 'type' => 'structure', 'members' => [ 'CreationTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'creationTime', ], 'DeliverLogsErrorMessage' => [ 'shape' => 'String', 'locationName' => 'deliverLogsErrorMessage', ], 'DeliverLogsPermissionArn' => [ 'shape' => 'String', 'locationName' => 'deliverLogsPermissionArn', ], 'DeliverCrossAccountRole' => [ 'shape' => 'String', 'locationName' => 'deliverCrossAccountRole', ], 'DeliverLogsStatus' => [ 'shape' => 'String', 'locationName' => 'deliverLogsStatus', ], 'FlowLogId' => [ 'shape' => 'String', 'locationName' => 'flowLogId', ], 'FlowLogStatus' => [ 'shape' => 'String', 'locationName' => 'flowLogStatus', ], 'LogGroupName' => [ 'shape' => 'String', 'locationName' => 'logGroupName', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'TrafficType' => [ 'shape' => 'TrafficType', 'locationName' => 'trafficType', ], 'LogDestinationType' => [ 'shape' => 'LogDestinationType', 'locationName' => 'logDestinationType', ], 'LogDestination' => [ 'shape' => 'String', 'locationName' => 'logDestination', ], 'LogFormat' => [ 'shape' => 'String', 'locationName' => 'logFormat', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'MaxAggregationInterval' => [ 'shape' => 'Integer', 'locationName' => 'maxAggregationInterval', ], 'DestinationOptions' => [ 'shape' => 'DestinationOptionsResponse', 'locationName' => 'destinationOptions', ], 'TagFieldSpecifications' => [ 'shape' => 'TagFieldSpecificationListResponse', 'locationName' => 'tagFieldSpecificationSet', ], ], ], 'FlowLogIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcFlowLogId', 'locationName' => 'item', ], ], 'FlowLogResourceId' => [ 'type' => 'string', ], 'FlowLogResourceIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'FlowLogResourceId', 'locationName' => 'item', ], ], 'FlowLogSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'FlowLog', 'locationName' => 'item', ], ], 'FlowLogsResourceType' => [ 'type' => 'string', 'enum' => [ 'VPC', 'Subnet', 'NetworkInterface', 'TransitGateway', 'TransitGatewayAttachment', 'RegionalNatGateway', ], ], 'FpgaDeviceCount' => [ 'type' => 'integer', ], 'FpgaDeviceInfo' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'FpgaDeviceName', 'locationName' => 'name', ], 'Manufacturer' => [ 'shape' => 'FpgaDeviceManufacturerName', 'locationName' => 'manufacturer', ], 'Count' => [ 'shape' => 'FpgaDeviceCount', 'locationName' => 'count', ], 'MemoryInfo' => [ 'shape' => 'FpgaDeviceMemoryInfo', 'locationName' => 'memoryInfo', ], ], ], 'FpgaDeviceInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FpgaDeviceInfo', 'locationName' => 'item', ], ], 'FpgaDeviceManufacturerName' => [ 'type' => 'string', ], 'FpgaDeviceMemoryInfo' => [ 'type' => 'structure', 'members' => [ 'SizeInMiB' => [ 'shape' => 'FpgaDeviceMemorySize', 'locationName' => 'sizeInMiB', ], ], ], 'FpgaDeviceMemorySize' => [ 'type' => 'integer', ], 'FpgaDeviceName' => [ 'type' => 'string', ], 'FpgaImage' => [ 'type' => 'structure', 'members' => [ 'FpgaImageId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageId', ], 'FpgaImageGlobalId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageGlobalId', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ShellVersion' => [ 'shape' => 'String', 'locationName' => 'shellVersion', ], 'PciId' => [ 'shape' => 'PciId', 'locationName' => 'pciId', ], 'State' => [ 'shape' => 'FpgaImageState', 'locationName' => 'state', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'UpdateTime' => [ 'shape' => 'DateTime', 'locationName' => 'updateTime', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'OwnerAlias' => [ 'shape' => 'String', 'locationName' => 'ownerAlias', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tags', ], 'Public' => [ 'shape' => 'Boolean', 'locationName' => 'public', ], 'DataRetentionSupport' => [ 'shape' => 'Boolean', 'locationName' => 'dataRetentionSupport', ], 'InstanceTypes' => [ 'shape' => 'InstanceTypesList', 'locationName' => 'instanceTypes', ], ], ], 'FpgaImageAttribute' => [ 'type' => 'structure', 'members' => [ 'FpgaImageId' => [ 'shape' => 'String', 'locationName' => 'fpgaImageId', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'LoadPermissions' => [ 'shape' => 'LoadPermissionList', 'locationName' => 'loadPermissions', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], ], ], 'FpgaImageAttributeName' => [ 'type' => 'string', 'enum' => [ 'description', 'name', 'loadPermission', 'productCodes', ], ], 'FpgaImageId' => [ 'type' => 'string', ], 'FpgaImageIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FpgaImageId', 'locationName' => 'item', ], ], 'FpgaImageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FpgaImage', 'locationName' => 'item', ], ], 'FpgaImageState' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'FpgaImageStateCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'FpgaImageStateCode' => [ 'type' => 'string', 'enum' => [ 'pending', 'failed', 'available', 'unavailable', ], ], 'FpgaInfo' => [ 'type' => 'structure', 'members' => [ 'Fpgas' => [ 'shape' => 'FpgaDeviceInfoList', 'locationName' => 'fpgas', ], 'TotalFpgaMemoryInMiB' => [ 'shape' => 'totalFpgaMemory', 'locationName' => 'totalFpgaMemoryInMiB', ], ], ], 'FreeTierEligibleFlag' => [ 'type' => 'boolean', ], 'GVCDMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 200, ], 'GatewayAssociationState' => [ 'type' => 'string', 'enum' => [ 'associated', 'not-associated', 'associating', 'disassociating', ], ], 'GatewayType' => [ 'type' => 'string', 'enum' => [ 'ipsec.1', ], ], 'GetActiveVpnTunnelStatusRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', 'VpnTunnelOutsideIpAddress', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'VpnTunnelOutsideIpAddress' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetActiveVpnTunnelStatusResult' => [ 'type' => 'structure', 'members' => [ 'ActiveVpnTunnelStatus' => [ 'shape' => 'ActiveVpnTunnelStatus', 'locationName' => 'activeVpnTunnelStatus', ], ], ], 'GetAllowedImagesSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetAllowedImagesSettingsResult' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'ImageCriteria' => [ 'shape' => 'ImageCriterionList', 'locationName' => 'imageCriterionSet', ], 'ManagedBy' => [ 'shape' => 'ManagedBy', 'locationName' => 'managedBy', ], ], ], 'GetAssociatedEnclaveCertificateIamRolesRequest' => [ 'type' => 'structure', 'required' => [ 'CertificateArn', ], 'members' => [ 'CertificateArn' => [ 'shape' => 'CertificateId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetAssociatedEnclaveCertificateIamRolesResult' => [ 'type' => 'structure', 'members' => [ 'AssociatedRoles' => [ 'shape' => 'AssociatedRolesList', 'locationName' => 'associatedRoleSet', ], ], ], 'GetAssociatedIpv6PoolCidrsRequest' => [ 'type' => 'structure', 'required' => [ 'PoolId', ], 'members' => [ 'PoolId' => [ 'shape' => 'Ipv6PoolEc2Id', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'Ipv6PoolMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetAssociatedIpv6PoolCidrsResult' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrAssociations' => [ 'shape' => 'Ipv6CidrAssociationSet', 'locationName' => 'ipv6CidrAssociationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetAwsNetworkPerformanceDataRequest' => [ 'type' => 'structure', 'members' => [ 'DataQueries' => [ 'shape' => 'DataQueries', 'locationName' => 'DataQuery', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', ], 'EndTime' => [ 'shape' => 'MillisecondDateTime', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetAwsNetworkPerformanceDataResult' => [ 'type' => 'structure', 'members' => [ 'DataResponses' => [ 'shape' => 'DataResponses', 'locationName' => 'dataResponseSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetCapacityManagerAttributesRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetCapacityManagerAttributesResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerStatus' => [ 'shape' => 'CapacityManagerStatus', 'locationName' => 'capacityManagerStatus', ], 'OrganizationsAccess' => [ 'shape' => 'Boolean', 'locationName' => 'organizationsAccess', ], 'DataExportCount' => [ 'shape' => 'Integer', 'locationName' => 'dataExportCount', ], 'IngestionStatus' => [ 'shape' => 'IngestionStatus', 'locationName' => 'ingestionStatus', ], 'IngestionStatusMessage' => [ 'shape' => 'String', 'locationName' => 'ingestionStatusMessage', ], 'EarliestDatapointTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'earliestDatapointTimestamp', ], 'LatestDatapointTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'latestDatapointTimestamp', ], ], ], 'GetCapacityManagerMetricDataRequest' => [ 'type' => 'structure', 'required' => [ 'MetricNames', 'StartTime', 'EndTime', 'Period', ], 'members' => [ 'MetricNames' => [ 'shape' => 'MetricSet', 'locationName' => 'MetricName', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', ], 'EndTime' => [ 'shape' => 'MillisecondDateTime', ], 'Period' => [ 'shape' => 'Period', ], 'GroupBy' => [ 'shape' => 'GroupBySet', ], 'FilterBy' => [ 'shape' => 'CapacityManagerConditionSet', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetCapacityManagerMetricDataResult' => [ 'type' => 'structure', 'members' => [ 'MetricDataResults' => [ 'shape' => 'MetricDataResultSet', 'locationName' => 'metricDataResultSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetCapacityManagerMetricDimensionsRequest' => [ 'type' => 'structure', 'required' => [ 'GroupBy', 'StartTime', 'EndTime', 'MetricNames', ], 'members' => [ 'GroupBy' => [ 'shape' => 'GroupBySet', ], 'FilterBy' => [ 'shape' => 'CapacityManagerConditionSet', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', ], 'EndTime' => [ 'shape' => 'MillisecondDateTime', ], 'MetricNames' => [ 'shape' => 'MetricSet', 'locationName' => 'MetricName', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetCapacityManagerMetricDimensionsResult' => [ 'type' => 'structure', 'members' => [ 'MetricDimensionResults' => [ 'shape' => 'MetricDimensionResultSet', 'locationName' => 'metricDimensionResultSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetCapacityManagerMonitoredTagKeysRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'GetCapacityManagerMonitoredTagKeysRequestMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetCapacityManagerMonitoredTagKeysRequestMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'GetCapacityManagerMonitoredTagKeysResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerTagKeys' => [ 'shape' => 'CapacityManagerMonitoredTagKeyList', 'locationName' => 'capacityManagerTagKeySet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetCapacityReservationUsageRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', ], 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'GetCapacityReservationUsageRequestMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetCapacityReservationUsageRequestMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'GetCapacityReservationUsageResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'CapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'TotalInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'totalInstanceCount', ], 'AvailableInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'availableInstanceCount', ], 'State' => [ 'shape' => 'CapacityReservationState', 'locationName' => 'state', ], 'InstanceUsages' => [ 'shape' => 'InstanceUsageSet', 'locationName' => 'instanceUsageSet', ], 'Interruptible' => [ 'shape' => 'BoxedBoolean', 'locationName' => 'interruptible', ], 'InterruptibleCapacityAllocation' => [ 'shape' => 'InterruptibleCapacityAllocation', 'locationName' => 'interruptibleCapacityAllocation', ], 'InterruptionInfo' => [ 'shape' => 'InterruptionInfo', 'locationName' => 'interruptionInfo', ], ], ], 'GetCoipPoolUsageRequest' => [ 'type' => 'structure', 'required' => [ 'PoolId', ], 'members' => [ 'PoolId' => [ 'shape' => 'Ipv4PoolCoipId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'CoipPoolMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetCoipPoolUsageResult' => [ 'type' => 'structure', 'members' => [ 'CoipPoolId' => [ 'shape' => 'String', 'locationName' => 'coipPoolId', ], 'CoipAddressUsages' => [ 'shape' => 'CoipAddressUsageSet', 'locationName' => 'coipAddressUsageSet', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'localGatewayRouteTableId', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetConsoleOutputRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'Latest' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'GetConsoleOutputResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], 'Output' => [ 'shape' => 'String', 'locationName' => 'output', ], ], ], 'GetConsoleScreenshotRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'WakeUp' => [ 'shape' => 'Boolean', ], ], ], 'GetConsoleScreenshotResult' => [ 'type' => 'structure', 'members' => [ 'ImageData' => [ 'shape' => 'String', 'locationName' => 'imageData', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], ], ], 'GetDeclarativePoliciesReportSummaryRequest' => [ 'type' => 'structure', 'required' => [ 'ReportId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ReportId' => [ 'shape' => 'DeclarativePoliciesReportId', ], ], ], 'GetDeclarativePoliciesReportSummaryResult' => [ 'type' => 'structure', 'members' => [ 'ReportId' => [ 'shape' => 'String', 'locationName' => 'reportId', ], 'S3Bucket' => [ 'shape' => 'String', 'locationName' => 's3Bucket', ], 'S3Prefix' => [ 'shape' => 'String', 'locationName' => 's3Prefix', ], 'TargetId' => [ 'shape' => 'String', 'locationName' => 'targetId', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startTime', ], 'EndTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'endTime', ], 'NumberOfAccounts' => [ 'shape' => 'Integer', 'locationName' => 'numberOfAccounts', ], 'NumberOfFailedAccounts' => [ 'shape' => 'Integer', 'locationName' => 'numberOfFailedAccounts', ], 'AttributeSummaries' => [ 'shape' => 'AttributeSummaryList', 'locationName' => 'attributeSummarySet', ], ], ], 'GetDefaultCreditSpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceFamily', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceFamily' => [ 'shape' => 'UnlimitedSupportedInstanceFamily', ], ], ], 'GetDefaultCreditSpecificationResult' => [ 'type' => 'structure', 'members' => [ 'InstanceFamilyCreditSpecification' => [ 'shape' => 'InstanceFamilyCreditSpecification', 'locationName' => 'instanceFamilyCreditSpecification', ], ], ], 'GetEbsDefaultKmsKeyIdRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetEbsDefaultKmsKeyIdResult' => [ 'type' => 'structure', 'members' => [ 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], ], ], 'GetEbsEncryptionByDefaultRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetEbsEncryptionByDefaultResult' => [ 'type' => 'structure', 'members' => [ 'EbsEncryptionByDefault' => [ 'shape' => 'Boolean', 'locationName' => 'ebsEncryptionByDefault', ], 'SseType' => [ 'shape' => 'SSEType', 'locationName' => 'sseType', ], ], ], 'GetEnabledIpamPolicyRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetEnabledIpamPolicyResult' => [ 'type' => 'structure', 'members' => [ 'IpamPolicyEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'ipamPolicyEnabled', ], 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', 'locationName' => 'ipamPolicyId', ], 'ManagedBy' => [ 'shape' => 'IpamPolicyManagedBy', 'locationName' => 'managedBy', ], ], ], 'GetFlowLogsIntegrationTemplateRequest' => [ 'type' => 'structure', 'required' => [ 'FlowLogId', 'ConfigDeliveryS3DestinationArn', 'IntegrateServices', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FlowLogId' => [ 'shape' => 'VpcFlowLogId', ], 'ConfigDeliveryS3DestinationArn' => [ 'shape' => 'String', ], 'IntegrateServices' => [ 'shape' => 'IntegrateServices', 'locationName' => 'IntegrateService', ], ], ], 'GetFlowLogsIntegrationTemplateResult' => [ 'type' => 'structure', 'members' => [ 'Result' => [ 'shape' => 'String', 'locationName' => 'result', ], ], ], 'GetGroupsForCapacityReservationRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', ], 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'GetGroupsForCapacityReservationRequestMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetGroupsForCapacityReservationRequestMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'GetGroupsForCapacityReservationResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'CapacityReservationGroups' => [ 'shape' => 'CapacityReservationGroupSet', 'locationName' => 'capacityReservationGroupSet', ], ], ], 'GetHostReservationPurchasePreviewRequest' => [ 'type' => 'structure', 'required' => [ 'HostIdSet', 'OfferingId', ], 'members' => [ 'HostIdSet' => [ 'shape' => 'RequestHostIdSet', ], 'OfferingId' => [ 'shape' => 'OfferingId', ], ], ], 'GetHostReservationPurchasePreviewResult' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Purchase' => [ 'shape' => 'PurchaseSet', 'locationName' => 'purchase', ], 'TotalHourlyPrice' => [ 'shape' => 'String', 'locationName' => 'totalHourlyPrice', ], 'TotalUpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'totalUpfrontPrice', ], ], ], 'GetImageAncestryRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetImageAncestryResult' => [ 'type' => 'structure', 'members' => [ 'ImageAncestryEntries' => [ 'shape' => 'ImageAncestryEntryList', 'locationName' => 'imageAncestryEntrySet', ], ], ], 'GetImageBlockPublicAccessStateRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetImageBlockPublicAccessStateResult' => [ 'type' => 'structure', 'members' => [ 'ImageBlockPublicAccessState' => [ 'shape' => 'String', 'locationName' => 'imageBlockPublicAccessState', ], 'ManagedBy' => [ 'shape' => 'ManagedBy', 'locationName' => 'managedBy', ], ], ], 'GetInstanceMetadataDefaultsRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetInstanceMetadataDefaultsResult' => [ 'type' => 'structure', 'members' => [ 'AccountLevel' => [ 'shape' => 'InstanceMetadataDefaultsResponse', 'locationName' => 'accountLevel', ], ], ], 'GetInstanceTpmEkPubRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'KeyType', 'KeyFormat', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'KeyType' => [ 'shape' => 'EkPubKeyType', ], 'KeyFormat' => [ 'shape' => 'EkPubKeyFormat', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetInstanceTpmEkPubResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'KeyType' => [ 'shape' => 'EkPubKeyType', 'locationName' => 'keyType', ], 'KeyFormat' => [ 'shape' => 'EkPubKeyFormat', 'locationName' => 'keyFormat', ], 'KeyValue' => [ 'shape' => 'EkPubKeyValue', 'locationName' => 'keyValue', ], ], ], 'GetInstanceTypesFromInstanceRequirementsRequest' => [ 'type' => 'structure', 'required' => [ 'ArchitectureTypes', 'VirtualizationTypes', 'InstanceRequirements', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ArchitectureTypes' => [ 'shape' => 'ArchitectureTypeSet', 'locationName' => 'ArchitectureType', ], 'VirtualizationTypes' => [ 'shape' => 'VirtualizationTypeSet', 'locationName' => 'VirtualizationType', ], 'InstanceRequirements' => [ 'shape' => 'InstanceRequirementsRequest', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], 'Context' => [ 'shape' => 'String', ], ], ], 'GetInstanceTypesFromInstanceRequirementsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceTypes' => [ 'shape' => 'InstanceTypeInfoFromInstanceRequirementsSet', 'locationName' => 'instanceTypeSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetInstanceUefiDataRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetInstanceUefiDataResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'UefiData' => [ 'shape' => 'String', 'locationName' => 'uefiData', ], ], ], 'GetIpamAddressHistoryRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', 'IpamScopeId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Cidr' => [ 'shape' => 'String', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', ], 'VpcId' => [ 'shape' => 'String', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', ], 'EndTime' => [ 'shape' => 'MillisecondDateTime', ], 'MaxResults' => [ 'shape' => 'IpamAddressHistoryMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetIpamAddressHistoryResult' => [ 'type' => 'structure', 'members' => [ 'HistoryRecords' => [ 'shape' => 'IpamAddressHistoryRecordSet', 'locationName' => 'historyRecordSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamDiscoveredAccountsRequest' => [ 'type' => 'structure', 'required' => [ 'IpamResourceDiscoveryId', 'DiscoveryRegion', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', ], 'DiscoveryRegion' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], ], ], 'GetIpamDiscoveredAccountsResult' => [ 'type' => 'structure', 'members' => [ 'IpamDiscoveredAccounts' => [ 'shape' => 'IpamDiscoveredAccountSet', 'locationName' => 'ipamDiscoveredAccountSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamDiscoveredPublicAddressesRequest' => [ 'type' => 'structure', 'required' => [ 'IpamResourceDiscoveryId', 'AddressRegion', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', ], 'AddressRegion' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], ], ], 'GetIpamDiscoveredPublicAddressesResult' => [ 'type' => 'structure', 'members' => [ 'IpamDiscoveredPublicAddresses' => [ 'shape' => 'IpamDiscoveredPublicAddressSet', 'locationName' => 'ipamDiscoveredPublicAddressSet', ], 'OldestSampleTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'oldestSampleTime', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamDiscoveredResourceCidrsRequest' => [ 'type' => 'structure', 'required' => [ 'IpamResourceDiscoveryId', 'ResourceRegion', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', ], 'ResourceRegion' => [ 'shape' => 'String', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], ], ], 'GetIpamDiscoveredResourceCidrsResult' => [ 'type' => 'structure', 'members' => [ 'IpamDiscoveredResourceCidrs' => [ 'shape' => 'IpamDiscoveredResourceCidrSet', 'locationName' => 'ipamDiscoveredResourceCidrSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamPolicyAllocationRulesRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPolicyId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'Locale' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'IpamPolicyResourceType', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetIpamPolicyAllocationRulesResult' => [ 'type' => 'structure', 'members' => [ 'IpamPolicyDocuments' => [ 'shape' => 'IpamPolicyDocumentSet', 'locationName' => 'ipamPolicyDocumentSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamPolicyOrganizationTargetsRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPolicyId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'GetIpamPolicyOrganizationTargetsResult' => [ 'type' => 'structure', 'members' => [ 'OrganizationTargets' => [ 'shape' => 'IpamPolicyOrganizationTargetSet', 'locationName' => 'organizationTargetSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamPoolAllocationsMaxResults' => [ 'type' => 'integer', 'max' => 100000, 'min' => 1000, ], 'GetIpamPoolAllocationsRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'IpamPoolAllocationId' => [ 'shape' => 'IpamPoolAllocationId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'GetIpamPoolAllocationsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetIpamPoolAllocationsResult' => [ 'type' => 'structure', 'members' => [ 'IpamPoolAllocations' => [ 'shape' => 'IpamPoolAllocationSet', 'locationName' => 'ipamPoolAllocationSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamPoolCidrsRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetIpamPoolCidrsResult' => [ 'type' => 'structure', 'members' => [ 'IpamPoolCidrs' => [ 'shape' => 'IpamPoolCidrSet', 'locationName' => 'ipamPoolCidrSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamPrefixListResolverRulesRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPrefixListResolverId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetIpamPrefixListResolverRulesResult' => [ 'type' => 'structure', 'members' => [ 'Rules' => [ 'shape' => 'IpamPrefixListResolverRuleSet', 'locationName' => 'ruleSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamPrefixListResolverVersionEntriesRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPrefixListResolverId', 'IpamPrefixListResolverVersion', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', ], 'IpamPrefixListResolverVersion' => [ 'shape' => 'Long', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetIpamPrefixListResolverVersionEntriesResult' => [ 'type' => 'structure', 'members' => [ 'Entries' => [ 'shape' => 'IpamPrefixListResolverVersionEntrySet', 'locationName' => 'entrySet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamPrefixListResolverVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPrefixListResolverId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', ], 'IpamPrefixListResolverVersions' => [ 'shape' => 'IpamPrefixListResolverVersionNumberSet', 'locationName' => 'IpamPrefixListResolverVersion', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetIpamPrefixListResolverVersionsResult' => [ 'type' => 'structure', 'members' => [ 'IpamPrefixListResolverVersions' => [ 'shape' => 'IpamPrefixListResolverVersionSet', 'locationName' => 'ipamPrefixListResolverVersionSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetIpamResourceCidrsRequest' => [ 'type' => 'structure', 'required' => [ 'IpamScopeId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'IpamMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'ResourceId' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'IpamResourceType', ], 'ResourceTag' => [ 'shape' => 'RequestIpamResourceTag', ], 'ResourceOwner' => [ 'shape' => 'String', ], ], ], 'GetIpamResourceCidrsResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], 'IpamResourceCidrs' => [ 'shape' => 'IpamResourceCidrSet', 'locationName' => 'ipamResourceCidrSet', ], ], ], 'GetLaunchTemplateDataRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], ], ], 'GetLaunchTemplateDataResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateData' => [ 'shape' => 'ResponseLaunchTemplateData', 'locationName' => 'launchTemplateData', ], ], ], 'GetManagedPrefixListAssociationsMaxResults' => [ 'type' => 'integer', 'max' => 255, 'min' => 5, ], 'GetManagedPrefixListAssociationsRequest' => [ 'type' => 'structure', 'required' => [ 'PrefixListId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'MaxResults' => [ 'shape' => 'GetManagedPrefixListAssociationsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetManagedPrefixListAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'PrefixListAssociations' => [ 'shape' => 'PrefixListAssociationSet', 'locationName' => 'prefixListAssociationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetManagedPrefixListEntriesRequest' => [ 'type' => 'structure', 'required' => [ 'PrefixListId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'TargetVersion' => [ 'shape' => 'Long', ], 'MaxResults' => [ 'shape' => 'PrefixListMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], ], 'GetManagedPrefixListEntriesResult' => [ 'type' => 'structure', 'members' => [ 'Entries' => [ 'shape' => 'PrefixListEntrySet', 'locationName' => 'entrySet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetManagedResourceVisibilityRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetManagedResourceVisibilityResult' => [ 'type' => 'structure', 'members' => [ 'Visibility' => [ 'shape' => 'ManagedResourceVisibilitySettings', 'locationName' => 'visibility', ], ], ], 'GetNetworkInsightsAccessScopeAnalysisFindingsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'GetNetworkInsightsAccessScopeAnalysisFindingsRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInsightsAccessScopeAnalysisId', ], 'members' => [ 'NetworkInsightsAccessScopeAnalysisId' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisId', ], 'MaxResults' => [ 'shape' => 'GetNetworkInsightsAccessScopeAnalysisFindingsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetNetworkInsightsAccessScopeAnalysisFindingsResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeAnalysisId' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisId', 'locationName' => 'networkInsightsAccessScopeAnalysisId', ], 'AnalysisStatus' => [ 'shape' => 'AnalysisStatus', 'locationName' => 'analysisStatus', ], 'AnalysisFindings' => [ 'shape' => 'AccessScopeAnalysisFindingList', 'locationName' => 'analysisFindingSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetNetworkInsightsAccessScopeContentRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInsightsAccessScopeId', ], 'members' => [ 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetNetworkInsightsAccessScopeContentResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeContent' => [ 'shape' => 'NetworkInsightsAccessScopeContent', 'locationName' => 'networkInsightsAccessScopeContent', ], ], ], 'GetPasswordDataRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'GetPasswordDataResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], 'PasswordData' => [ 'shape' => 'PasswordData', 'locationName' => 'passwordData', ], ], ], 'GetReservedInstancesExchangeQuoteRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstanceIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ReservedInstanceIds' => [ 'shape' => 'ReservedInstanceIdSet', 'locationName' => 'ReservedInstanceId', ], 'TargetConfigurations' => [ 'shape' => 'TargetConfigurationRequestSet', 'locationName' => 'TargetConfiguration', ], ], ], 'GetReservedInstancesExchangeQuoteResult' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'String', 'locationName' => 'currencyCode', ], 'IsValidExchange' => [ 'shape' => 'Boolean', 'locationName' => 'isValidExchange', ], 'OutputReservedInstancesWillExpireAt' => [ 'shape' => 'DateTime', 'locationName' => 'outputReservedInstancesWillExpireAt', ], 'PaymentDue' => [ 'shape' => 'String', 'locationName' => 'paymentDue', ], 'ReservedInstanceValueRollup' => [ 'shape' => 'ReservationValue', 'locationName' => 'reservedInstanceValueRollup', ], 'ReservedInstanceValueSet' => [ 'shape' => 'ReservedInstanceReservationValueSet', 'locationName' => 'reservedInstanceValueSet', ], 'TargetConfigurationValueRollup' => [ 'shape' => 'ReservationValue', 'locationName' => 'targetConfigurationValueRollup', ], 'TargetConfigurationValueSet' => [ 'shape' => 'TargetReservationValueSet', 'locationName' => 'targetConfigurationValueSet', ], 'ValidationFailureReason' => [ 'shape' => 'String', 'locationName' => 'validationFailureReason', ], ], ], 'GetRouteServerAssociationsRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetRouteServerAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerAssociations' => [ 'shape' => 'RouteServerAssociationsList', 'locationName' => 'routeServerAssociationSet', ], ], ], 'GetRouteServerPropagationsRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetRouteServerPropagationsResult' => [ 'type' => 'structure', 'members' => [ 'RouteServerPropagations' => [ 'shape' => 'RouteServerPropagationsList', 'locationName' => 'routeServerPropagationSet', ], ], ], 'GetRouteServerRoutingDatabaseRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'RouteServerMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], ], ], 'GetRouteServerRoutingDatabaseResult' => [ 'type' => 'structure', 'members' => [ 'AreRoutesPersisted' => [ 'shape' => 'Boolean', 'locationName' => 'areRoutesPersisted', ], 'Routes' => [ 'shape' => 'RouteServerRouteList', 'locationName' => 'routeSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetSecurityGroupsForVpcRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'GetSecurityGroupsForVpcRequestMaxResults', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetSecurityGroupsForVpcRequestMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'GetSecurityGroupsForVpcResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], 'SecurityGroupForVpcs' => [ 'shape' => 'SecurityGroupForVpcList', 'locationName' => 'securityGroupForVpcSet', ], ], ], 'GetSerialConsoleAccessStatusRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetSerialConsoleAccessStatusResult' => [ 'type' => 'structure', 'members' => [ 'SerialConsoleAccessEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'serialConsoleAccessEnabled', ], 'ManagedBy' => [ 'shape' => 'ManagedBy', 'locationName' => 'managedBy', ], ], ], 'GetSnapshotBlockPublicAccessStateRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetSnapshotBlockPublicAccessStateResult' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'SnapshotBlockPublicAccessState', 'locationName' => 'state', ], 'ManagedBy' => [ 'shape' => 'ManagedBy', 'locationName' => 'managedBy', ], ], ], 'GetSpotPlacementScoresRequest' => [ 'type' => 'structure', 'required' => [ 'TargetCapacity', ], 'members' => [ 'InstanceTypes' => [ 'shape' => 'InstanceTypes', 'locationName' => 'InstanceType', ], 'TargetCapacity' => [ 'shape' => 'SpotPlacementScoresTargetCapacity', ], 'TargetCapacityUnitType' => [ 'shape' => 'TargetCapacityUnitType', ], 'SingleAvailabilityZone' => [ 'shape' => 'Boolean', ], 'RegionNames' => [ 'shape' => 'RegionNames', 'locationName' => 'RegionName', ], 'InstanceRequirementsWithMetadata' => [ 'shape' => 'InstanceRequirementsWithMetadataRequest', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'SpotPlacementScoresMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'GetSpotPlacementScoresResult' => [ 'type' => 'structure', 'members' => [ 'SpotPlacementScores' => [ 'shape' => 'SpotPlacementScores', 'locationName' => 'spotPlacementScoreSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetSubnetCidrReservationsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'GetSubnetCidrReservationsRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', ], 'members' => [ 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'GetSubnetCidrReservationsMaxResults', ], ], ], 'GetSubnetCidrReservationsResult' => [ 'type' => 'structure', 'members' => [ 'SubnetIpv4CidrReservations' => [ 'shape' => 'SubnetCidrReservationList', 'locationName' => 'subnetIpv4CidrReservationSet', ], 'SubnetIpv6CidrReservations' => [ 'shape' => 'SubnetCidrReservationList', 'locationName' => 'subnetIpv6CidrReservationSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetTransitGatewayAttachmentPropagationsRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayAttachmentPropagationsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentPropagations' => [ 'shape' => 'TransitGatewayAttachmentPropagationList', 'locationName' => 'transitGatewayAttachmentPropagations', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetTransitGatewayMeteringPolicyEntriesRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMeteringPolicyId', ], 'members' => [ 'TransitGatewayMeteringPolicyId' => [ 'shape' => 'TransitGatewayMeteringPolicyId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayMeteringPolicyEntriesResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicyEntries' => [ 'shape' => 'TransitGatewayMeteringPolicyEntryList', 'locationName' => 'transitGatewayMeteringPolicyEntries', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetTransitGatewayMulticastDomainAssociationsRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMulticastDomainId', ], 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayMulticastDomainAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'MulticastDomainAssociations' => [ 'shape' => 'TransitGatewayMulticastDomainAssociationList', 'locationName' => 'multicastDomainAssociations', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetTransitGatewayPolicyTableAssociationsRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayPolicyTableId', ], 'members' => [ 'TransitGatewayPolicyTableId' => [ 'shape' => 'TransitGatewayPolicyTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayPolicyTableAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'TransitGatewayPolicyTableAssociationList', 'locationName' => 'associations', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetTransitGatewayPolicyTableEntriesRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayPolicyTableId', ], 'members' => [ 'TransitGatewayPolicyTableId' => [ 'shape' => 'TransitGatewayPolicyTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayPolicyTableEntriesResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPolicyTableEntries' => [ 'shape' => 'TransitGatewayPolicyTableEntryList', 'locationName' => 'transitGatewayPolicyTableEntries', ], ], ], 'GetTransitGatewayPrefixListReferencesRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayPrefixListReferencesResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPrefixListReferences' => [ 'shape' => 'TransitGatewayPrefixListReferenceSet', 'locationName' => 'transitGatewayPrefixListReferenceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetTransitGatewayRouteTableAssociationsRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayRouteTableAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'TransitGatewayRouteTableAssociationList', 'locationName' => 'associations', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetTransitGatewayRouteTablePropagationsRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetTransitGatewayRouteTablePropagationsResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTablePropagations' => [ 'shape' => 'TransitGatewayRouteTablePropagationList', 'locationName' => 'transitGatewayRouteTablePropagations', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetVerifiedAccessEndpointPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessEndpointId', ], 'members' => [ 'VerifiedAccessEndpointId' => [ 'shape' => 'VerifiedAccessEndpointId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetVerifiedAccessEndpointPolicyResult' => [ 'type' => 'structure', 'members' => [ 'PolicyEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'policyEnabled', ], 'PolicyDocument' => [ 'shape' => 'String', 'locationName' => 'policyDocument', ], ], ], 'GetVerifiedAccessEndpointTargetsMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'GetVerifiedAccessEndpointTargetsRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessEndpointId', ], 'members' => [ 'VerifiedAccessEndpointId' => [ 'shape' => 'VerifiedAccessEndpointId', ], 'MaxResults' => [ 'shape' => 'GetVerifiedAccessEndpointTargetsMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetVerifiedAccessEndpointTargetsResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessEndpointTargets' => [ 'shape' => 'VerifiedAccessEndpointTargetList', 'locationName' => 'verifiedAccessEndpointTargetSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetVerifiedAccessGroupPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessGroupId', ], 'members' => [ 'VerifiedAccessGroupId' => [ 'shape' => 'VerifiedAccessGroupId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetVerifiedAccessGroupPolicyResult' => [ 'type' => 'structure', 'members' => [ 'PolicyEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'policyEnabled', ], 'PolicyDocument' => [ 'shape' => 'String', 'locationName' => 'policyDocument', ], ], ], 'GetVpcResourcesBlockingEncryptionEnforcementMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'GetVpcResourcesBlockingEncryptionEnforcementRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], 'MaxResults' => [ 'shape' => 'GetVpcResourcesBlockingEncryptionEnforcementMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetVpcResourcesBlockingEncryptionEnforcementResult' => [ 'type' => 'structure', 'members' => [ 'NonCompliantResources' => [ 'shape' => 'VpcEncryptionNonCompliantResourceList', 'locationName' => 'nonCompliantResourceSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'GetVpnConnectionDeviceSampleConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', 'VpnConnectionDeviceTypeId', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'VpnConnectionDeviceTypeId' => [ 'shape' => 'VpnConnectionDeviceTypeId', ], 'InternetKeyExchangeVersion' => [ 'shape' => 'String', ], 'SampleType' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetVpnConnectionDeviceSampleConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnectionDeviceSampleConfiguration' => [ 'shape' => 'VpnConnectionDeviceSampleConfiguration', 'locationName' => 'vpnConnectionDeviceSampleConfiguration', ], ], ], 'GetVpnConnectionDeviceTypesRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'GVCDMaxResults', ], 'NextToken' => [ 'shape' => 'NextToken', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetVpnConnectionDeviceTypesResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnectionDeviceTypes' => [ 'shape' => 'VpnConnectionDeviceTypeList', 'locationName' => 'vpnConnectionDeviceTypeSet', ], 'NextToken' => [ 'shape' => 'NextToken', 'locationName' => 'nextToken', ], ], ], 'GetVpnTunnelReplacementStatusRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', 'VpnTunnelOutsideIpAddress', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'VpnTunnelOutsideIpAddress' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'GetVpnTunnelReplacementStatusResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', 'locationName' => 'vpnConnectionId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'transitGatewayId', ], 'CustomerGatewayId' => [ 'shape' => 'CustomerGatewayId', 'locationName' => 'customerGatewayId', ], 'VpnGatewayId' => [ 'shape' => 'VpnGatewayId', 'locationName' => 'vpnGatewayId', ], 'VpnTunnelOutsideIpAddress' => [ 'shape' => 'String', 'locationName' => 'vpnTunnelOutsideIpAddress', ], 'MaintenanceDetails' => [ 'shape' => 'MaintenanceDetails', 'locationName' => 'maintenanceDetails', ], ], ], 'GpuDeviceCount' => [ 'type' => 'integer', ], 'GpuDeviceInfo' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'GpuDeviceName', 'locationName' => 'name', ], 'Manufacturer' => [ 'shape' => 'GpuDeviceManufacturerName', 'locationName' => 'manufacturer', ], 'Count' => [ 'shape' => 'GpuDeviceCount', 'locationName' => 'count', ], 'LogicalGpuCount' => [ 'shape' => 'LogicalGpuCount', 'locationName' => 'logicalGpuCount', ], 'GpuPartitionSize' => [ 'shape' => 'GpuPartitionSize', 'locationName' => 'gpuPartitionSize', ], 'Workloads' => [ 'shape' => 'WorkloadsList', 'locationName' => 'workloadSet', ], 'MemoryInfo' => [ 'shape' => 'GpuDeviceMemoryInfo', 'locationName' => 'memoryInfo', ], ], ], 'GpuDeviceInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GpuDeviceInfo', 'locationName' => 'item', ], ], 'GpuDeviceManufacturerName' => [ 'type' => 'string', ], 'GpuDeviceMemoryInfo' => [ 'type' => 'structure', 'members' => [ 'SizeInMiB' => [ 'shape' => 'GpuDeviceMemorySize', 'locationName' => 'sizeInMiB', ], ], ], 'GpuDeviceMemorySize' => [ 'type' => 'integer', ], 'GpuDeviceName' => [ 'type' => 'string', ], 'GpuInfo' => [ 'type' => 'structure', 'members' => [ 'Gpus' => [ 'shape' => 'GpuDeviceInfoList', 'locationName' => 'gpus', ], 'TotalGpuMemoryInMiB' => [ 'shape' => 'totalGpuMemory', 'locationName' => 'totalGpuMemoryInMiB', ], ], ], 'GpuPartitionSize' => [ 'type' => 'double', ], 'GroupBy' => [ 'type' => 'string', 'enum' => [ 'resource-region', 'availability-zone-id', 'account-id', 'account-name', 'instance-family', 'instance-type', 'instance-platform', 'reservation-arn', 'reservation-id', 'reservation-type', 'reservation-create-timestamp', 'reservation-start-timestamp', 'reservation-end-timestamp', 'reservation-end-date-type', 'tenancy', 'reservation-state', 'reservation-instance-match-criteria', 'reservation-unused-financial-owner', ], 'max' => 300, 'min' => 0, ], 'GroupBySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupBy', 'locationName' => 'item', ], 'max' => 20, 'min' => 0, ], 'GroupIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'groupId', ], ], 'GroupIdentifier' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], ], ], 'GroupIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupIdentifier', 'locationName' => 'item', ], ], 'GroupIdentifierSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupIdentifier', 'locationName' => 'item', ], ], 'GroupIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'item', ], ], 'GroupNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupName', 'locationName' => 'GroupName', ], ], 'HaStatus' => [ 'type' => 'string', 'enum' => [ 'processing', 'active', 'standby', 'invalid', ], ], 'HibernationFlag' => [ 'type' => 'boolean', ], 'HibernationOptions' => [ 'type' => 'structure', 'members' => [ 'Configured' => [ 'shape' => 'Boolean', 'locationName' => 'configured', ], ], ], 'HibernationOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'Configured' => [ 'shape' => 'Boolean', ], ], ], 'HistoryRecord' => [ 'type' => 'structure', 'members' => [ 'EventInformation' => [ 'shape' => 'EventInformation', 'locationName' => 'eventInformation', ], 'EventType' => [ 'shape' => 'EventType', 'locationName' => 'eventType', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], ], ], 'HistoryRecordEntry' => [ 'type' => 'structure', 'members' => [ 'EventInformation' => [ 'shape' => 'EventInformation', 'locationName' => 'eventInformation', ], 'EventType' => [ 'shape' => 'FleetEventType', 'locationName' => 'eventType', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], ], ], 'HistoryRecordSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'HistoryRecordEntry', 'locationName' => 'item', ], ], 'HistoryRecords' => [ 'type' => 'list', 'member' => [ 'shape' => 'HistoryRecord', 'locationName' => 'item', ], ], 'Host' => [ 'type' => 'structure', 'members' => [ 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailableCapacity' => [ 'shape' => 'AvailableCapacity', 'locationName' => 'availableCapacity', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], 'HostProperties' => [ 'shape' => 'HostProperties', 'locationName' => 'hostProperties', ], 'HostReservationId' => [ 'shape' => 'String', 'locationName' => 'hostReservationId', ], 'Instances' => [ 'shape' => 'HostInstanceList', 'locationName' => 'instances', ], 'State' => [ 'shape' => 'AllocationState', 'locationName' => 'state', ], 'AllocationTime' => [ 'shape' => 'DateTime', 'locationName' => 'allocationTime', ], 'ReleaseTime' => [ 'shape' => 'DateTime', 'locationName' => 'releaseTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'HostRecovery' => [ 'shape' => 'HostRecovery', 'locationName' => 'hostRecovery', ], 'AllowsMultipleInstanceTypes' => [ 'shape' => 'AllowsMultipleInstanceTypes', 'locationName' => 'allowsMultipleInstanceTypes', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'MemberOfServiceLinkedResourceGroup' => [ 'shape' => 'Boolean', 'locationName' => 'memberOfServiceLinkedResourceGroup', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'HostMaintenance' => [ 'shape' => 'HostMaintenance', 'locationName' => 'hostMaintenance', ], 'AssetId' => [ 'shape' => 'AssetId', 'locationName' => 'assetId', ], 'CpuOptions' => [ 'shape' => 'HostCpuOptions', 'locationName' => 'cpuOptions', ], ], ], 'HostCpuOptions' => [ 'type' => 'structure', 'members' => [ 'AmdSevSnp' => [ 'shape' => 'AmdSevSnp', 'locationName' => 'amdSevSnp', ], ], ], 'HostCpuOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AmdSevSnp' => [ 'shape' => 'AmdSevSnp', ], ], ], 'HostInstance' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], ], ], 'HostInstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostInstance', 'locationName' => 'item', ], ], 'HostList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Host', 'locationName' => 'item', ], ], 'HostMaintenance' => [ 'type' => 'string', 'enum' => [ 'on', 'off', ], ], 'HostOffering' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => 'Integer', 'locationName' => 'duration', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'OfferingId' => [ 'shape' => 'OfferingId', 'locationName' => 'offeringId', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', 'locationName' => 'paymentOption', ], 'UpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'upfrontPrice', ], ], ], 'HostOfferingSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostOffering', 'locationName' => 'item', ], ], 'HostProperties' => [ 'type' => 'structure', 'members' => [ 'Cores' => [ 'shape' => 'Integer', 'locationName' => 'cores', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'Sockets' => [ 'shape' => 'Integer', 'locationName' => 'sockets', ], 'TotalVCpus' => [ 'shape' => 'Integer', 'locationName' => 'totalVCpus', ], ], ], 'HostRecovery' => [ 'type' => 'string', 'enum' => [ 'on', 'off', ], ], 'HostReservation' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => 'Integer', 'locationName' => 'count', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => 'Integer', 'locationName' => 'duration', ], 'End' => [ 'shape' => 'DateTime', 'locationName' => 'end', ], 'HostIdSet' => [ 'shape' => 'ResponseHostIdSet', 'locationName' => 'hostIdSet', ], 'HostReservationId' => [ 'shape' => 'HostReservationId', 'locationName' => 'hostReservationId', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'OfferingId' => [ 'shape' => 'OfferingId', 'locationName' => 'offeringId', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', 'locationName' => 'paymentOption', ], 'Start' => [ 'shape' => 'DateTime', 'locationName' => 'start', ], 'State' => [ 'shape' => 'ReservationState', 'locationName' => 'state', ], 'UpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'upfrontPrice', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'HostReservationId' => [ 'type' => 'string', ], 'HostReservationIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostReservationId', 'locationName' => 'item', ], ], 'HostReservationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostReservation', 'locationName' => 'item', ], ], 'HostTenancy' => [ 'type' => 'string', 'enum' => [ 'default', 'dedicated', 'host', ], ], 'HostnameType' => [ 'type' => 'string', 'enum' => [ 'ip-name', 'resource-name', ], ], 'Hour' => [ 'type' => 'integer', 'max' => 23, 'min' => 0, ], 'HttpTokensEnforcedState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', ], ], 'HttpTokensState' => [ 'type' => 'string', 'enum' => [ 'optional', 'required', ], ], 'HypervisorType' => [ 'type' => 'string', 'enum' => [ 'ovm', 'xen', ], ], 'IKEVersionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IKEVersionsListValue', 'locationName' => 'item', ], ], 'IKEVersionsListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'IKEVersionsRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IKEVersionsRequestListValue', 'locationName' => 'item', ], ], 'IKEVersionsRequestListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', ], ], ], 'IamInstanceProfile' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], 'Id' => [ 'shape' => 'String', 'locationName' => 'id', ], ], ], 'IamInstanceProfileAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfile', 'locationName' => 'iamInstanceProfile', ], 'State' => [ 'shape' => 'IamInstanceProfileAssociationState', 'locationName' => 'state', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], ], ], 'IamInstanceProfileAssociationId' => [ 'type' => 'string', ], 'IamInstanceProfileAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IamInstanceProfileAssociation', 'locationName' => 'item', ], ], 'IamInstanceProfileAssociationState' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', 'disassociated', ], ], 'IamInstanceProfileSpecification' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'IcmpTypeCode' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'Integer', 'locationName' => 'code', ], 'Type' => [ 'shape' => 'Integer', 'locationName' => 'type', ], ], ], 'IdFormat' => [ 'type' => 'structure', 'members' => [ 'Deadline' => [ 'shape' => 'DateTime', 'locationName' => 'deadline', ], 'Resource' => [ 'shape' => 'String', 'locationName' => 'resource', ], 'UseLongIds' => [ 'shape' => 'Boolean', 'locationName' => 'useLongIds', ], ], ], 'IdFormatList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IdFormat', 'locationName' => 'item', ], ], 'Igmpv2SupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'Image' => [ 'type' => 'structure', 'members' => [ 'PlatformDetails' => [ 'shape' => 'String', 'locationName' => 'platformDetails', ], 'UsageOperation' => [ 'shape' => 'String', 'locationName' => 'usageOperation', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'EnaSupport' => [ 'shape' => 'Boolean', 'locationName' => 'enaSupport', ], 'Hypervisor' => [ 'shape' => 'HypervisorType', 'locationName' => 'hypervisor', ], 'ImageOwnerAlias' => [ 'shape' => 'String', 'locationName' => 'imageOwnerAlias', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'RootDeviceName' => [ 'shape' => 'String', 'locationName' => 'rootDeviceName', ], 'RootDeviceType' => [ 'shape' => 'DeviceType', 'locationName' => 'rootDeviceType', ], 'SriovNetSupport' => [ 'shape' => 'String', 'locationName' => 'sriovNetSupport', ], 'StateReason' => [ 'shape' => 'StateReason', 'locationName' => 'stateReason', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VirtualizationType' => [ 'shape' => 'VirtualizationType', 'locationName' => 'virtualizationType', ], 'BootMode' => [ 'shape' => 'BootModeValues', 'locationName' => 'bootMode', ], 'TpmSupport' => [ 'shape' => 'TpmSupportValues', 'locationName' => 'tpmSupport', ], 'DeprecationTime' => [ 'shape' => 'String', 'locationName' => 'deprecationTime', ], 'ImdsSupport' => [ 'shape' => 'ImdsSupportValues', 'locationName' => 'imdsSupport', ], 'SourceInstanceId' => [ 'shape' => 'String', 'locationName' => 'sourceInstanceId', ], 'DeregistrationProtection' => [ 'shape' => 'String', 'locationName' => 'deregistrationProtection', ], 'LastLaunchedTime' => [ 'shape' => 'String', 'locationName' => 'lastLaunchedTime', ], 'ImageAllowed' => [ 'shape' => 'Boolean', 'locationName' => 'imageAllowed', ], 'SourceImageId' => [ 'shape' => 'String', 'locationName' => 'sourceImageId', ], 'SourceImageRegion' => [ 'shape' => 'String', 'locationName' => 'sourceImageRegion', ], 'FreeTierEligible' => [ 'shape' => 'Boolean', 'locationName' => 'freeTierEligible', ], 'PublicSsmParameterName' => [ 'shape' => 'String', 'locationName' => 'publicSsmParameterName', ], 'ImageWatermarks' => [ 'shape' => 'ImageWatermarkList', 'locationName' => 'imageWatermarkSet', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'ImageLocation' => [ 'shape' => 'String', 'locationName' => 'imageLocation', ], 'State' => [ 'shape' => 'ImageState', 'locationName' => 'imageState', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'imageOwnerId', ], 'CreationDate' => [ 'shape' => 'String', 'locationName' => 'creationDate', ], 'Public' => [ 'shape' => 'Boolean', 'locationName' => 'isPublic', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'Architecture' => [ 'shape' => 'ArchitectureValues', 'locationName' => 'architecture', ], 'ImageType' => [ 'shape' => 'ImageTypeValues', 'locationName' => 'imageType', ], 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'RamdiskId' => [ 'shape' => 'String', 'locationName' => 'ramdiskId', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], ], ], 'ImageAncestryEntry' => [ 'type' => 'structure', 'members' => [ 'CreationDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'creationDate', ], 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'ImageOwnerAlias' => [ 'shape' => 'String', 'locationName' => 'imageOwnerAlias', ], 'SourceImageId' => [ 'shape' => 'ImageId', 'locationName' => 'sourceImageId', ], 'SourceImageRegion' => [ 'shape' => 'String', 'locationName' => 'sourceImageRegion', ], ], ], 'ImageAncestryEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageAncestryEntry', 'locationName' => 'item', ], ], 'ImageAttribute' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'AttributeValue', 'locationName' => 'description', ], 'KernelId' => [ 'shape' => 'AttributeValue', 'locationName' => 'kernel', ], 'RamdiskId' => [ 'shape' => 'AttributeValue', 'locationName' => 'ramdisk', ], 'SriovNetSupport' => [ 'shape' => 'AttributeValue', 'locationName' => 'sriovNetSupport', ], 'BootMode' => [ 'shape' => 'AttributeValue', 'locationName' => 'bootMode', ], 'TpmSupport' => [ 'shape' => 'AttributeValue', 'locationName' => 'tpmSupport', ], 'UefiData' => [ 'shape' => 'AttributeValue', 'locationName' => 'uefiData', ], 'LastLaunchedTime' => [ 'shape' => 'AttributeValue', 'locationName' => 'lastLaunchedTime', ], 'ImdsSupport' => [ 'shape' => 'AttributeValue', 'locationName' => 'imdsSupport', ], 'DeregistrationProtection' => [ 'shape' => 'AttributeValue', 'locationName' => 'deregistrationProtection', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'LaunchPermissions' => [ 'shape' => 'LaunchPermissionList', 'locationName' => 'launchPermission', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], ], ], 'ImageAttributeName' => [ 'type' => 'string', 'enum' => [ 'description', 'kernel', 'ramdisk', 'launchPermission', 'productCodes', 'blockDeviceMapping', 'sriovNetSupport', 'bootMode', 'tpmSupport', 'uefiData', 'lastLaunchedTime', 'imdsSupport', 'deregistrationProtection', ], ], 'ImageBlockPublicAccessDisabledState' => [ 'type' => 'string', 'enum' => [ 'unblocked', ], ], 'ImageBlockPublicAccessEnabledState' => [ 'type' => 'string', 'enum' => [ 'block-new-sharing', ], ], 'ImageCriterion' => [ 'type' => 'structure', 'members' => [ 'ImageProviders' => [ 'shape' => 'ImageProviderList', 'locationName' => 'imageProviderSet', ], 'MarketplaceProductCodes' => [ 'shape' => 'MarketplaceProductCodeList', 'locationName' => 'marketplaceProductCodeSet', ], 'ImageNames' => [ 'shape' => 'ImageNameList', 'locationName' => 'imageNameSet', ], 'DeprecationTimeCondition' => [ 'shape' => 'DeprecationTimeCondition', 'locationName' => 'deprecationTimeCondition', ], 'CreationDateCondition' => [ 'shape' => 'CreationDateCondition', 'locationName' => 'creationDateCondition', ], 'ImageWatermarks' => [ 'shape' => 'ImageWatermarkFilterResponseList', 'locationName' => 'imageWatermarkSet', ], ], ], 'ImageCriterionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageCriterion', 'locationName' => 'item', ], ], 'ImageCriterionRequest' => [ 'type' => 'structure', 'members' => [ 'ImageProviders' => [ 'shape' => 'ImageProviderRequestList', 'locationName' => 'ImageProvider', ], 'MarketplaceProductCodes' => [ 'shape' => 'MarketplaceProductCodeRequestList', 'locationName' => 'MarketplaceProductCode', ], 'ImageNames' => [ 'shape' => 'ImageNameCriteriaRequestList', 'locationName' => 'ImageName', ], 'DeprecationTimeCondition' => [ 'shape' => 'DeprecationTimeConditionRequest', ], 'CreationDateCondition' => [ 'shape' => 'CreationDateConditionRequest', ], 'ImageWatermarks' => [ 'shape' => 'ImageWatermarkFilterRequestList', 'locationName' => 'ImageWatermark', ], ], ], 'ImageCriterionRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageCriterionRequest', 'locationName' => 'ImageCriterion', ], ], 'ImageDescriptionRequest' => [ 'type' => 'string', 'max' => 255, 'min' => 0, ], 'ImageDiskContainer' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', ], 'DeviceName' => [ 'shape' => 'String', ], 'Format' => [ 'shape' => 'String', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'Url' => [ 'shape' => 'SensitiveUrl', ], 'UserBucket' => [ 'shape' => 'UserBucket', ], ], ], 'ImageDiskContainerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageDiskContainer', 'locationName' => 'item', ], ], 'ImageId' => [ 'type' => 'string', ], 'ImageIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageId', 'locationName' => 'item', ], ], 'ImageIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageId', 'locationName' => 'ImageId', ], ], 'ImageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Image', 'locationName' => 'item', ], ], 'ImageMetadata' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'imageOwnerId', ], 'State' => [ 'shape' => 'ImageState', 'locationName' => 'imageState', ], 'ImageOwnerAlias' => [ 'shape' => 'String', 'locationName' => 'imageOwnerAlias', ], 'CreationDate' => [ 'shape' => 'String', 'locationName' => 'creationDate', ], 'DeprecationTime' => [ 'shape' => 'String', 'locationName' => 'deprecationTime', ], 'ImageAllowed' => [ 'shape' => 'Boolean', 'locationName' => 'imageAllowed', ], 'IsPublic' => [ 'shape' => 'Boolean', 'locationName' => 'isPublic', ], 'ImageWatermarks' => [ 'shape' => 'ImageWatermarkList', 'locationName' => 'imageWatermarkSet', ], ], ], 'ImageName' => [ 'type' => 'string', ], 'ImageNameCriteriaRequest' => [ 'type' => 'string', 'max' => 128, 'min' => 0, ], 'ImageNameCriteriaRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageNameCriteriaRequest', 'locationName' => 'item', ], ], 'ImageNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageName', 'locationName' => 'item', ], ], 'ImageNameRequest' => [ 'type' => 'string', 'max' => 128, 'min' => 3, ], 'ImageProvider' => [ 'type' => 'string', ], 'ImageProviderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageProvider', 'locationName' => 'item', ], ], 'ImageProviderRequest' => [ 'type' => 'string', ], 'ImageProviderRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageProviderRequest', 'locationName' => 'item', ], ], 'ImageRecycleBinInfo' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'RecycleBinEnterTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'recycleBinEnterTime', ], 'RecycleBinExitTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'recycleBinExitTime', ], ], ], 'ImageRecycleBinInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageRecycleBinInfo', 'locationName' => 'item', ], ], 'ImageReference' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'ResourceType' => [ 'shape' => 'ImageReferenceResourceType', 'locationName' => 'resourceType', ], 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], ], ], 'ImageReferenceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageReference', 'locationName' => 'item', ], ], 'ImageReferenceOptionName' => [ 'type' => 'string', 'enum' => [ 'state-name', 'version-depth', ], ], 'ImageReferenceResourceType' => [ 'type' => 'string', 'enum' => [ 'ec2:Instance', 'ec2:LaunchTemplate', 'ssm:Parameter', 'imagebuilder:ImageRecipe', 'imagebuilder:ContainerRecipe', ], ], 'ImageState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'invalid', 'deregistered', 'transient', 'failed', 'error', 'disabled', ], ], 'ImageTypeValues' => [ 'type' => 'string', 'enum' => [ 'machine', 'kernel', 'ramdisk', ], ], 'ImageUefiDataRequest' => [ 'type' => 'string', 'max' => 64000, 'min' => 0, ], 'ImageUsageReport' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'ReportId' => [ 'shape' => 'ImageUsageReportId', 'locationName' => 'reportId', ], 'ResourceTypes' => [ 'shape' => 'ImageUsageResourceTypeList', 'locationName' => 'resourceTypeSet', ], 'AccountIds' => [ 'shape' => 'UserIdList', 'locationName' => 'accountIdSet', ], 'State' => [ 'shape' => 'ImageUsageReportState', 'locationName' => 'state', ], 'StateReason' => [ 'shape' => 'ImageUsageReportStateReason', 'locationName' => 'stateReason', ], 'CreationTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'creationTime', ], 'ExpirationTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'expirationTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ImageUsageReportEntry' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ImageUsageResourceTypeName', 'locationName' => 'resourceType', ], 'ReportId' => [ 'shape' => 'ImageUsageReportId', 'locationName' => 'reportId', ], 'UsageCount' => [ 'shape' => 'Long', 'locationName' => 'usageCount', ], 'AccountId' => [ 'shape' => 'String', 'locationName' => 'accountId', ], 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'ReportCreationTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'reportCreationTime', ], ], ], 'ImageUsageReportEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageUsageReportEntry', 'locationName' => 'item', ], ], 'ImageUsageReportId' => [ 'type' => 'string', ], 'ImageUsageReportIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageUsageReportId', ], 'max' => 200, 'min' => 0, ], 'ImageUsageReportList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageUsageReport', 'locationName' => 'item', ], ], 'ImageUsageReportState' => [ 'type' => 'string', ], 'ImageUsageReportStateReason' => [ 'type' => 'string', ], 'ImageUsageReportUserIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'UserId', ], 'max' => 200, 'min' => 0, ], 'ImageUsageResourceType' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ImageUsageResourceTypeName', 'locationName' => 'resourceType', ], 'ResourceTypeOptions' => [ 'shape' => 'ImageUsageResourceTypeOptionList', 'locationName' => 'resourceTypeOptionSet', ], ], ], 'ImageUsageResourceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageUsageResourceType', 'locationName' => 'item', ], ], 'ImageUsageResourceTypeName' => [ 'type' => 'string', ], 'ImageUsageResourceTypeOption' => [ 'type' => 'structure', 'members' => [ 'OptionName' => [ 'shape' => 'String', 'locationName' => 'optionName', ], 'OptionValues' => [ 'shape' => 'ImageUsageResourceTypeOptionValuesList', 'locationName' => 'optionValueSet', ], ], ], 'ImageUsageResourceTypeOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageUsageResourceTypeOption', 'locationName' => 'item', ], ], 'ImageUsageResourceTypeOptionRequest' => [ 'type' => 'structure', 'members' => [ 'OptionName' => [ 'shape' => 'String', ], 'OptionValues' => [ 'shape' => 'ImageUsageResourceTypeOptionValuesList', 'locationName' => 'OptionValue', ], ], ], 'ImageUsageResourceTypeOptionRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageUsageResourceTypeOptionRequest', ], ], 'ImageUsageResourceTypeOptionValue' => [ 'type' => 'string', ], 'ImageUsageResourceTypeOptionValuesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageUsageResourceTypeOptionValue', 'locationName' => 'item', ], ], 'ImageUsageResourceTypeRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ImageUsageResourceTypeName', ], 'ResourceTypeOptions' => [ 'shape' => 'ImageUsageResourceTypeOptionRequestList', 'locationName' => 'ResourceTypeOption', ], ], ], 'ImageUsageResourceTypeRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageUsageResourceTypeRequest', ], ], 'ImageWatermark' => [ 'type' => 'structure', 'members' => [ 'WatermarkKey' => [ 'shape' => 'String', 'locationName' => 'watermarkKey', ], 'SourceImageRegion' => [ 'shape' => 'String', 'locationName' => 'sourceImageRegion', ], 'SourceImageId' => [ 'shape' => 'String', 'locationName' => 'sourceImageId', ], 'SourceImageCreationTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'sourceImageCreationTime', ], 'WatermarkCreationTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'watermarkCreationTime', ], ], ], 'ImageWatermarkFilterRequest' => [ 'type' => 'structure', 'members' => [ 'WatermarkKey' => [ 'shape' => 'String', ], 'SourceImageRegion' => [ 'shape' => 'String', ], 'MaximumDaysSinceSourceImageCreated' => [ 'shape' => 'Integer', ], 'MaximumDaysSinceWatermarkCreated' => [ 'shape' => 'Integer', ], ], ], 'ImageWatermarkFilterRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageWatermarkFilterRequest', 'locationName' => 'item', ], ], 'ImageWatermarkFilterResponse' => [ 'type' => 'structure', 'members' => [ 'WatermarkKey' => [ 'shape' => 'String', 'locationName' => 'watermarkKey', ], 'SourceImageRegion' => [ 'shape' => 'String', 'locationName' => 'sourceImageRegion', ], 'MaximumDaysSinceSourceImageCreated' => [ 'shape' => 'Integer', 'locationName' => 'maximumDaysSinceSourceImageCreated', ], 'MaximumDaysSinceWatermarkCreated' => [ 'shape' => 'Integer', 'locationName' => 'maximumDaysSinceWatermarkCreated', ], ], ], 'ImageWatermarkFilterResponseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageWatermarkFilterResponse', 'locationName' => 'item', ], ], 'ImageWatermarkList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImageWatermark', 'locationName' => 'item', ], ], 'ImageWatermarkNameRequest' => [ 'type' => 'string', 'max' => 128, 'min' => 3, ], 'ImdsSupportValues' => [ 'type' => 'string', 'enum' => [ 'v2.0', ], ], 'ImportClientVpnClientCertificateRevocationListRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'CertificateRevocationList', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'CertificateRevocationList' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ImportClientVpnClientCertificateRevocationListResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ImportImageLicenseConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', ], ], ], 'ImportImageLicenseConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', 'locationName' => 'licenseConfigurationArn', ], ], ], 'ImportImageLicenseSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportImageLicenseConfigurationRequest', 'locationName' => 'item', ], ], 'ImportImageLicenseSpecificationListResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportImageLicenseConfigurationResponse', 'locationName' => 'item', ], ], 'ImportImageRequest' => [ 'type' => 'structure', 'members' => [ 'Architecture' => [ 'shape' => 'String', ], 'ClientData' => [ 'shape' => 'ClientData', ], 'ClientToken' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'DiskContainers' => [ 'shape' => 'ImageDiskContainerList', 'locationName' => 'DiskContainer', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Encrypted' => [ 'shape' => 'Boolean', ], 'Hypervisor' => [ 'shape' => 'String', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'LicenseType' => [ 'shape' => 'String', ], 'Platform' => [ 'shape' => 'String', ], 'RoleName' => [ 'shape' => 'String', ], 'LicenseSpecifications' => [ 'shape' => 'ImportImageLicenseSpecificationListRequest', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'UsageOperation' => [ 'shape' => 'String', ], 'BootMode' => [ 'shape' => 'BootModeValues', ], ], ], 'ImportImageResult' => [ 'type' => 'structure', 'members' => [ 'Architecture' => [ 'shape' => 'String', 'locationName' => 'architecture', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'Hypervisor' => [ 'shape' => 'String', 'locationName' => 'hypervisor', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'ImportTaskId' => [ 'shape' => 'ImportImageTaskId', 'locationName' => 'importTaskId', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', 'locationName' => 'kmsKeyId', ], 'LicenseType' => [ 'shape' => 'String', 'locationName' => 'licenseType', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'SnapshotDetails' => [ 'shape' => 'SnapshotDetailList', 'locationName' => 'snapshotDetailSet', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'LicenseSpecifications' => [ 'shape' => 'ImportImageLicenseSpecificationListResponse', 'locationName' => 'licenseSpecifications', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'UsageOperation' => [ 'shape' => 'String', 'locationName' => 'usageOperation', ], ], ], 'ImportImageTask' => [ 'type' => 'structure', 'members' => [ 'Architecture' => [ 'shape' => 'String', 'locationName' => 'architecture', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'Hypervisor' => [ 'shape' => 'String', 'locationName' => 'hypervisor', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'ImportTaskId' => [ 'shape' => 'String', 'locationName' => 'importTaskId', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], 'LicenseType' => [ 'shape' => 'String', 'locationName' => 'licenseType', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'SnapshotDetails' => [ 'shape' => 'SnapshotDetailList', 'locationName' => 'snapshotDetailSet', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'LicenseSpecifications' => [ 'shape' => 'ImportImageLicenseSpecificationListResponse', 'locationName' => 'licenseSpecifications', ], 'UsageOperation' => [ 'shape' => 'String', 'locationName' => 'usageOperation', ], 'BootMode' => [ 'shape' => 'BootModeValues', 'locationName' => 'bootMode', ], ], ], 'ImportImageTaskId' => [ 'type' => 'string', ], 'ImportImageTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportImageTask', 'locationName' => 'item', ], ], 'ImportInstanceLaunchSpecification' => [ 'type' => 'structure', 'members' => [ 'Architecture' => [ 'shape' => 'ArchitectureValues', 'locationName' => 'architecture', ], 'GroupNames' => [ 'shape' => 'SecurityGroupStringList', 'locationName' => 'GroupName', ], 'GroupIds' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'GroupId', ], 'AdditionalInfo' => [ 'shape' => 'String', 'locationName' => 'additionalInfo', ], 'UserData' => [ 'shape' => 'UserData', 'locationName' => 'userData', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'Placement' => [ 'shape' => 'Placement', 'locationName' => 'placement', ], 'Monitoring' => [ 'shape' => 'Boolean', 'locationName' => 'monitoring', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'ShutdownBehavior', 'locationName' => 'instanceInitiatedShutdownBehavior', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'ImportInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'Platform', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'LaunchSpecification' => [ 'shape' => 'ImportInstanceLaunchSpecification', 'locationName' => 'launchSpecification', ], 'DiskImages' => [ 'shape' => 'DiskImageList', 'locationName' => 'diskImage', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], ], ], 'ImportInstanceResult' => [ 'type' => 'structure', 'members' => [ 'ConversionTask' => [ 'shape' => 'ConversionTask', 'locationName' => 'conversionTask', ], ], ], 'ImportInstanceTaskDetails' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], 'Volumes' => [ 'shape' => 'ImportInstanceVolumeDetailSet', 'locationName' => 'volumes', ], ], ], 'ImportInstanceVolumeDetailItem' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'BytesConverted' => [ 'shape' => 'Long', 'locationName' => 'bytesConverted', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Image' => [ 'shape' => 'DiskImageDescription', 'locationName' => 'image', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Volume' => [ 'shape' => 'DiskImageVolumeDescription', 'locationName' => 'volume', ], ], ], 'ImportInstanceVolumeDetailSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportInstanceVolumeDetailItem', 'locationName' => 'item', ], ], 'ImportKeyPairRequest' => [ 'type' => 'structure', 'required' => [ 'KeyName', 'PublicKeyMaterial', ], 'members' => [ 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'PublicKeyMaterial' => [ 'shape' => 'Blob', 'locationName' => 'publicKeyMaterial', ], ], ], 'ImportKeyPairResult' => [ 'type' => 'structure', 'members' => [ 'KeyFingerprint' => [ 'shape' => 'String', 'locationName' => 'keyFingerprint', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'KeyPairId' => [ 'shape' => 'String', 'locationName' => 'keyPairId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ImportManifestUrl' => [ 'type' => 'string', 'sensitive' => true, ], 'ImportSnapshotRequest' => [ 'type' => 'structure', 'members' => [ 'ClientData' => [ 'shape' => 'ClientData', ], 'ClientToken' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'DiskContainer' => [ 'shape' => 'SnapshotDiskContainer', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'Encrypted' => [ 'shape' => 'Boolean', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'RoleName' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'ImportSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ImportTaskId' => [ 'shape' => 'String', 'locationName' => 'importTaskId', ], 'SnapshotTaskDetail' => [ 'shape' => 'SnapshotTaskDetail', 'locationName' => 'snapshotTaskDetail', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ImportSnapshotTask' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ImportTaskId' => [ 'shape' => 'String', 'locationName' => 'importTaskId', ], 'SnapshotTaskDetail' => [ 'shape' => 'SnapshotTaskDetail', 'locationName' => 'snapshotTaskDetail', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'ImportSnapshotTaskId' => [ 'type' => 'string', ], 'ImportSnapshotTaskIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportSnapshotTaskId', 'locationName' => 'ImportTaskId', ], ], 'ImportSnapshotTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportSnapshotTask', 'locationName' => 'item', ], ], 'ImportTaskId' => [ 'type' => 'string', ], 'ImportTaskIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportImageTaskId', 'locationName' => 'ImportTaskId', ], ], 'ImportVolumeRequest' => [ 'type' => 'structure', 'required' => [ 'Image', 'Volume', ], 'members' => [ 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Image' => [ 'shape' => 'DiskImageDetail', 'locationName' => 'image', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Volume' => [ 'shape' => 'VolumeDetail', 'locationName' => 'volume', ], ], ], 'ImportVolumeResult' => [ 'type' => 'structure', 'members' => [ 'ConversionTask' => [ 'shape' => 'ConversionTask', 'locationName' => 'conversionTask', ], ], ], 'ImportVolumeTaskDetails' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'BytesConverted' => [ 'shape' => 'Long', 'locationName' => 'bytesConverted', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Image' => [ 'shape' => 'DiskImageDescription', 'locationName' => 'image', ], 'Volume' => [ 'shape' => 'DiskImageVolumeDescription', 'locationName' => 'volume', ], ], ], 'IncludeUnsupportedInRegion' => [ 'type' => 'boolean', ], 'InferenceAcceleratorInfo' => [ 'type' => 'structure', 'members' => [ 'Accelerators' => [ 'shape' => 'InferenceDeviceInfoList', 'locationName' => 'accelerators', ], 'TotalInferenceMemoryInMiB' => [ 'shape' => 'totalInferenceMemory', 'locationName' => 'totalInferenceMemoryInMiB', ], ], ], 'InferenceDeviceCount' => [ 'type' => 'integer', ], 'InferenceDeviceInfo' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => 'InferenceDeviceCount', 'locationName' => 'count', ], 'Name' => [ 'shape' => 'InferenceDeviceName', 'locationName' => 'name', ], 'Manufacturer' => [ 'shape' => 'InferenceDeviceManufacturerName', 'locationName' => 'manufacturer', ], 'MemoryInfo' => [ 'shape' => 'InferenceDeviceMemoryInfo', 'locationName' => 'memoryInfo', ], ], ], 'InferenceDeviceInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InferenceDeviceInfo', ], 'locationName' => 'item', ], 'InferenceDeviceManufacturerName' => [ 'type' => 'string', ], 'InferenceDeviceMemoryInfo' => [ 'type' => 'structure', 'members' => [ 'SizeInMiB' => [ 'shape' => 'InferenceDeviceMemorySize', 'locationName' => 'sizeInMiB', ], ], ], 'InferenceDeviceMemorySize' => [ 'type' => 'integer', ], 'InferenceDeviceName' => [ 'type' => 'string', ], 'IngestionStatus' => [ 'type' => 'string', 'enum' => [ 'initial-ingestion-in-progress', 'ingestion-complete', 'ingestion-failed', ], ], 'InitializationStatusDetails' => [ 'type' => 'structure', 'members' => [ 'InitializationType' => [ 'shape' => 'InitializationType', 'locationName' => 'initializationType', ], 'Progress' => [ 'shape' => 'Long', 'locationName' => 'progress', ], 'EstimatedTimeToCompleteInSeconds' => [ 'shape' => 'Long', 'locationName' => 'estimatedTimeToCompleteInSeconds', ], ], ], 'InitializationType' => [ 'type' => 'string', 'enum' => [ 'default', 'provisioned-rate', 'volume-copy', ], ], 'InsideCidrBlocksStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'Instance' => [ 'type' => 'structure', 'members' => [ 'Architecture' => [ 'shape' => 'ArchitectureValues', 'locationName' => 'architecture', ], 'BlockDeviceMappings' => [ 'shape' => 'InstanceBlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'EnaSupport' => [ 'shape' => 'Boolean', 'locationName' => 'enaSupport', ], 'Hypervisor' => [ 'shape' => 'HypervisorType', 'locationName' => 'hypervisor', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfile', 'locationName' => 'iamInstanceProfile', ], 'InstanceLifecycle' => [ 'shape' => 'InstanceLifecycleType', 'locationName' => 'instanceLifecycle', ], 'ElasticGpuAssociations' => [ 'shape' => 'ElasticGpuAssociationList', 'locationName' => 'elasticGpuAssociationSet', ], 'ElasticInferenceAcceleratorAssociations' => [ 'shape' => 'ElasticInferenceAcceleratorAssociationList', 'locationName' => 'elasticInferenceAcceleratorAssociationSet', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceList', 'locationName' => 'networkInterfaceSet', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'RootDeviceName' => [ 'shape' => 'String', 'locationName' => 'rootDeviceName', ], 'RootDeviceType' => [ 'shape' => 'DeviceType', 'locationName' => 'rootDeviceType', ], 'SecurityGroups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'SourceDestCheck' => [ 'shape' => 'Boolean', 'locationName' => 'sourceDestCheck', ], 'SpotInstanceRequestId' => [ 'shape' => 'String', 'locationName' => 'spotInstanceRequestId', ], 'SriovNetSupport' => [ 'shape' => 'String', 'locationName' => 'sriovNetSupport', ], 'StateReason' => [ 'shape' => 'StateReason', 'locationName' => 'stateReason', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VirtualizationType' => [ 'shape' => 'VirtualizationType', 'locationName' => 'virtualizationType', ], 'CpuOptions' => [ 'shape' => 'CpuOptions', 'locationName' => 'cpuOptions', ], 'CapacityBlockId' => [ 'shape' => 'String', 'locationName' => 'capacityBlockId', ], 'CapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'capacityReservationId', ], 'CapacityReservationSpecification' => [ 'shape' => 'CapacityReservationSpecificationResponse', 'locationName' => 'capacityReservationSpecification', ], 'HibernationOptions' => [ 'shape' => 'HibernationOptions', 'locationName' => 'hibernationOptions', ], 'Licenses' => [ 'shape' => 'LicenseList', 'locationName' => 'licenseSet', ], 'MetadataOptions' => [ 'shape' => 'InstanceMetadataOptionsResponse', 'locationName' => 'metadataOptions', ], 'EnclaveOptions' => [ 'shape' => 'EnclaveOptions', 'locationName' => 'enclaveOptions', ], 'BootMode' => [ 'shape' => 'BootModeValues', 'locationName' => 'bootMode', ], 'PlatformDetails' => [ 'shape' => 'String', 'locationName' => 'platformDetails', ], 'UsageOperation' => [ 'shape' => 'String', 'locationName' => 'usageOperation', ], 'UsageOperationUpdateTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'usageOperationUpdateTime', ], 'PrivateDnsNameOptions' => [ 'shape' => 'PrivateDnsNameOptionsResponse', 'locationName' => 'privateDnsNameOptions', ], 'Ipv6Address' => [ 'shape' => 'String', 'locationName' => 'ipv6Address', ], 'TpmSupport' => [ 'shape' => 'String', 'locationName' => 'tpmSupport', ], 'MaintenanceOptions' => [ 'shape' => 'InstanceMaintenanceOptions', 'locationName' => 'maintenanceOptions', ], 'CurrentInstanceBootMode' => [ 'shape' => 'InstanceBootModeValues', 'locationName' => 'currentInstanceBootMode', ], 'NetworkPerformanceOptions' => [ 'shape' => 'InstanceNetworkPerformanceOptions', 'locationName' => 'networkPerformanceOptions', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], 'SecondaryInterfaces' => [ 'shape' => 'InstanceSecondaryInterfaceList', 'locationName' => 'secondaryInterfaceSet', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'State' => [ 'shape' => 'InstanceState', 'locationName' => 'instanceState', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PublicDnsName' => [ 'shape' => 'String', 'locationName' => 'dnsName', ], 'StateTransitionReason' => [ 'shape' => 'String', 'locationName' => 'reason', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'AmiLaunchIndex' => [ 'shape' => 'Integer', 'locationName' => 'amiLaunchIndex', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'LaunchTime' => [ 'shape' => 'DateTime', 'locationName' => 'launchTime', ], 'Placement' => [ 'shape' => 'Placement', 'locationName' => 'placement', ], 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'RamdiskId' => [ 'shape' => 'String', 'locationName' => 'ramdiskId', ], 'Platform' => [ 'shape' => 'PlatformValues', 'locationName' => 'platform', ], 'Monitoring' => [ 'shape' => 'Monitoring', 'locationName' => 'monitoring', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'PublicIpAddress' => [ 'shape' => 'String', 'locationName' => 'ipAddress', ], ], ], 'InstanceAttachmentEnaSrdSpecification' => [ 'type' => 'structure', 'members' => [ 'EnaSrdEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'enaSrdEnabled', ], 'EnaSrdUdpSpecification' => [ 'shape' => 'InstanceAttachmentEnaSrdUdpSpecification', 'locationName' => 'enaSrdUdpSpecification', ], ], ], 'InstanceAttachmentEnaSrdUdpSpecification' => [ 'type' => 'structure', 'members' => [ 'EnaSrdUdpEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'enaSrdUdpEnabled', ], ], ], 'InstanceAttribute' => [ 'type' => 'structure', 'members' => [ 'BlockDeviceMappings' => [ 'shape' => 'InstanceBlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'DisableApiTermination' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'disableApiTermination', ], 'EnaSupport' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enaSupport', ], 'EnclaveOptions' => [ 'shape' => 'EnclaveOptions', 'locationName' => 'enclaveOptions', ], 'EbsOptimized' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'ebsOptimized', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'AttributeValue', 'locationName' => 'instanceInitiatedShutdownBehavior', ], 'InstanceType' => [ 'shape' => 'AttributeValue', 'locationName' => 'instanceType', ], 'KernelId' => [ 'shape' => 'AttributeValue', 'locationName' => 'kernel', ], 'ProductCodes' => [ 'shape' => 'ProductCodeList', 'locationName' => 'productCodes', ], 'RamdiskId' => [ 'shape' => 'AttributeValue', 'locationName' => 'ramdisk', ], 'RootDeviceName' => [ 'shape' => 'AttributeValue', 'locationName' => 'rootDeviceName', ], 'SourceDestCheck' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'sourceDestCheck', ], 'SriovNetSupport' => [ 'shape' => 'AttributeValue', 'locationName' => 'sriovNetSupport', ], 'UserData' => [ 'shape' => 'AttributeValue', 'locationName' => 'userData', ], 'DisableApiStop' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'disableApiStop', ], 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], ], ], 'InstanceAttributeName' => [ 'type' => 'string', 'enum' => [ 'instanceType', 'kernel', 'ramdisk', 'userData', 'disableApiTermination', 'instanceInitiatedShutdownBehavior', 'rootDeviceName', 'blockDeviceMapping', 'productCodes', 'sourceDestCheck', 'groupSet', 'ebsOptimized', 'sriovNetSupport', 'enaSupport', 'enclaveOptions', 'disableApiStop', ], ], 'InstanceAutoRecoveryState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'default', ], ], 'InstanceBandwidthWeighting' => [ 'type' => 'string', 'enum' => [ 'default', 'vpc-1', 'ebs-1', ], ], 'InstanceBlockDeviceMapping' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'Ebs' => [ 'shape' => 'EbsInstanceBlockDevice', 'locationName' => 'ebs', ], ], ], 'InstanceBlockDeviceMappingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceBlockDeviceMapping', 'locationName' => 'item', ], ], 'InstanceBlockDeviceMappingSpecification' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'Ebs' => [ 'shape' => 'EbsInstanceBlockDeviceSpecification', 'locationName' => 'ebs', ], 'VirtualName' => [ 'shape' => 'String', 'locationName' => 'virtualName', ], 'NoDevice' => [ 'shape' => 'String', 'locationName' => 'noDevice', ], ], ], 'InstanceBlockDeviceMappingSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceBlockDeviceMappingSpecification', 'locationName' => 'item', ], ], 'InstanceBootModeValues' => [ 'type' => 'string', 'enum' => [ 'legacy-bios', 'uefi', ], ], 'InstanceCapacity' => [ 'type' => 'structure', 'members' => [ 'AvailableCapacity' => [ 'shape' => 'Integer', 'locationName' => 'availableCapacity', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'TotalCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalCapacity', ], ], ], 'InstanceConnectEndpointDnsNames' => [ 'type' => 'structure', 'members' => [ 'DnsName' => [ 'shape' => 'String', 'locationName' => 'dnsName', ], 'FipsDnsName' => [ 'shape' => 'String', 'locationName' => 'fipsDnsName', ], ], ], 'InstanceConnectEndpointId' => [ 'type' => 'string', ], 'InstanceConnectEndpointMaxResults' => [ 'type' => 'integer', 'max' => 50, 'min' => 1, ], 'InstanceConnectEndpointPublicDnsNames' => [ 'type' => 'structure', 'members' => [ 'Ipv4' => [ 'shape' => 'InstanceConnectEndpointDnsNames', 'locationName' => 'ipv4', ], 'Dualstack' => [ 'shape' => 'InstanceConnectEndpointDnsNames', 'locationName' => 'dualstack', ], ], ], 'InstanceConnectEndpointSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ec2InstanceConnectEndpoint', 'locationName' => 'item', ], ], 'InstanceCount' => [ 'type' => 'structure', 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'State' => [ 'shape' => 'ListingState', 'locationName' => 'state', ], ], ], 'InstanceCountList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceCount', 'locationName' => 'item', ], ], 'InstanceCreditSpecification' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'CpuCredits' => [ 'shape' => 'String', 'locationName' => 'cpuCredits', ], ], ], 'InstanceCreditSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceCreditSpecification', 'locationName' => 'item', ], ], 'InstanceCreditSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceCreditSpecificationRequest', 'locationName' => 'item', ], ], 'InstanceCreditSpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'CpuCredits' => [ 'shape' => 'String', ], ], ], 'InstanceEventId' => [ 'type' => 'string', ], 'InstanceEventWindow' => [ 'type' => 'structure', 'members' => [ 'InstanceEventWindowId' => [ 'shape' => 'InstanceEventWindowId', 'locationName' => 'instanceEventWindowId', ], 'TimeRanges' => [ 'shape' => 'InstanceEventWindowTimeRangeList', 'locationName' => 'timeRangeSet', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'CronExpression' => [ 'shape' => 'InstanceEventWindowCronExpression', 'locationName' => 'cronExpression', ], 'AssociationTarget' => [ 'shape' => 'InstanceEventWindowAssociationTarget', 'locationName' => 'associationTarget', ], 'State' => [ 'shape' => 'InstanceEventWindowState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'InstanceEventWindowAssociationRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdList', 'locationName' => 'InstanceId', ], 'InstanceTags' => [ 'shape' => 'TagList', 'locationName' => 'InstanceTag', ], 'DedicatedHostIds' => [ 'shape' => 'DedicatedHostIdList', 'locationName' => 'DedicatedHostId', ], ], ], 'InstanceEventWindowAssociationTarget' => [ 'type' => 'structure', 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdList', 'locationName' => 'instanceIdSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'DedicatedHostIds' => [ 'shape' => 'DedicatedHostIdList', 'locationName' => 'dedicatedHostIdSet', ], ], ], 'InstanceEventWindowCronExpression' => [ 'type' => 'string', ], 'InstanceEventWindowDisassociationRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdList', 'locationName' => 'InstanceId', ], 'InstanceTags' => [ 'shape' => 'TagList', 'locationName' => 'InstanceTag', ], 'DedicatedHostIds' => [ 'shape' => 'DedicatedHostIdList', 'locationName' => 'DedicatedHostId', ], ], ], 'InstanceEventWindowId' => [ 'type' => 'string', ], 'InstanceEventWindowIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceEventWindowId', 'locationName' => 'InstanceEventWindowId', ], ], 'InstanceEventWindowSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceEventWindow', 'locationName' => 'item', ], ], 'InstanceEventWindowState' => [ 'type' => 'string', 'enum' => [ 'creating', 'deleting', 'active', 'deleted', ], ], 'InstanceEventWindowStateChange' => [ 'type' => 'structure', 'members' => [ 'InstanceEventWindowId' => [ 'shape' => 'InstanceEventWindowId', 'locationName' => 'instanceEventWindowId', ], 'State' => [ 'shape' => 'InstanceEventWindowState', 'locationName' => 'state', ], ], ], 'InstanceEventWindowTimeRange' => [ 'type' => 'structure', 'members' => [ 'StartWeekDay' => [ 'shape' => 'WeekDay', 'locationName' => 'startWeekDay', ], 'StartHour' => [ 'shape' => 'Hour', 'locationName' => 'startHour', ], 'EndWeekDay' => [ 'shape' => 'WeekDay', 'locationName' => 'endWeekDay', ], 'EndHour' => [ 'shape' => 'Hour', 'locationName' => 'endHour', ], ], ], 'InstanceEventWindowTimeRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceEventWindowTimeRange', 'locationName' => 'item', ], ], 'InstanceEventWindowTimeRangeRequest' => [ 'type' => 'structure', 'members' => [ 'StartWeekDay' => [ 'shape' => 'WeekDay', ], 'StartHour' => [ 'shape' => 'Hour', ], 'EndWeekDay' => [ 'shape' => 'WeekDay', ], 'EndHour' => [ 'shape' => 'Hour', ], ], ], 'InstanceEventWindowTimeRangeRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceEventWindowTimeRangeRequest', ], ], 'InstanceExportDetails' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'TargetEnvironment' => [ 'shape' => 'ExportEnvironment', 'locationName' => 'targetEnvironment', ], ], ], 'InstanceFamilyCreditSpecification' => [ 'type' => 'structure', 'members' => [ 'InstanceFamily' => [ 'shape' => 'UnlimitedSupportedInstanceFamily', 'locationName' => 'instanceFamily', ], 'CpuCredits' => [ 'shape' => 'String', 'locationName' => 'cpuCredits', ], ], ], 'InstanceGeneration' => [ 'type' => 'string', 'enum' => [ 'current', 'previous', ], ], 'InstanceGenerationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceGeneration', 'locationName' => 'item', ], ], 'InstanceHealthStatus' => [ 'type' => 'string', 'enum' => [ 'healthy', 'unhealthy', ], ], 'InstanceId' => [ 'type' => 'string', ], 'InstanceIdForResolver' => [ 'type' => 'string', ], 'InstanceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', 'locationName' => 'item', ], ], 'InstanceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', 'locationName' => 'item', ], ], 'InstanceIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', 'locationName' => 'InstanceId', ], ], 'InstanceIdUpdateStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', 'locationName' => 'item', ], 'max' => 30, 'min' => 1, ], 'InstanceIdWithVolumeResolver' => [ 'type' => 'string', ], 'InstanceIdsSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceId', 'locationName' => 'item', ], ], 'InstanceImageMetadata' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'LaunchTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'launchTime', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'ZoneId' => [ 'shape' => 'String', 'locationName' => 'zoneId', ], 'State' => [ 'shape' => 'InstanceState', 'locationName' => 'instanceState', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'instanceOwnerId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'ImageMetadata' => [ 'shape' => 'ImageMetadata', 'locationName' => 'imageMetadata', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], ], ], 'InstanceImageMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceImageMetadata', 'locationName' => 'item', ], ], 'InstanceInterruptionBehavior' => [ 'type' => 'string', 'enum' => [ 'hibernate', 'stop', 'terminate', ], ], 'InstanceIpv4Prefix' => [ 'type' => 'structure', 'members' => [ 'Ipv4Prefix' => [ 'shape' => 'String', 'locationName' => 'ipv4Prefix', ], ], ], 'InstanceIpv4PrefixList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceIpv4Prefix', 'locationName' => 'item', ], ], 'InstanceIpv6Address' => [ 'type' => 'structure', 'members' => [ 'Ipv6Address' => [ 'shape' => 'String', 'locationName' => 'ipv6Address', ], 'IsPrimaryIpv6' => [ 'shape' => 'Boolean', 'locationName' => 'isPrimaryIpv6', ], ], ], 'InstanceIpv6AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceIpv6Address', 'locationName' => 'item', ], ], 'InstanceIpv6AddressListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceIpv6AddressRequest', 'locationName' => 'InstanceIpv6Address', ], ], 'InstanceIpv6AddressRequest' => [ 'type' => 'structure', 'members' => [ 'Ipv6Address' => [ 'shape' => 'String', ], ], ], 'InstanceIpv6Prefix' => [ 'type' => 'structure', 'members' => [ 'Ipv6Prefix' => [ 'shape' => 'String', 'locationName' => 'ipv6Prefix', ], ], ], 'InstanceIpv6PrefixList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceIpv6Prefix', 'locationName' => 'item', ], ], 'InstanceLifecycle' => [ 'type' => 'string', 'enum' => [ 'spot', 'on-demand', 'interruptible-capacity-reservation', ], ], 'InstanceLifecycleType' => [ 'type' => 'string', 'enum' => [ 'spot', 'scheduled', 'capacity-block', 'interruptible-capacity-reservation', ], ], 'InstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Instance', 'locationName' => 'item', ], ], 'InstanceMaintenanceOptions' => [ 'type' => 'structure', 'members' => [ 'AutoRecovery' => [ 'shape' => 'InstanceAutoRecoveryState', 'locationName' => 'autoRecovery', ], 'RebootMigration' => [ 'shape' => 'InstanceRebootMigrationState', 'locationName' => 'rebootMigration', ], ], ], 'InstanceMaintenanceOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AutoRecovery' => [ 'shape' => 'InstanceAutoRecoveryState', ], ], ], 'InstanceMarketOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'MarketType' => [ 'shape' => 'MarketType', ], 'SpotOptions' => [ 'shape' => 'SpotMarketOptions', ], ], ], 'InstanceMatchCriteria' => [ 'type' => 'string', 'enum' => [ 'open', 'targeted', ], ], 'InstanceMetadataDefaultsResponse' => [ 'type' => 'structure', 'members' => [ 'HttpTokens' => [ 'shape' => 'HttpTokensState', 'locationName' => 'httpTokens', ], 'HttpPutResponseHopLimit' => [ 'shape' => 'BoxedInteger', 'locationName' => 'httpPutResponseHopLimit', ], 'HttpEndpoint' => [ 'shape' => 'InstanceMetadataEndpointState', 'locationName' => 'httpEndpoint', ], 'InstanceMetadataTags' => [ 'shape' => 'InstanceMetadataTagsState', 'locationName' => 'instanceMetadataTags', ], 'ManagedBy' => [ 'shape' => 'ManagedBy', 'locationName' => 'managedBy', ], 'ManagedExceptionMessage' => [ 'shape' => 'String', 'locationName' => 'managedExceptionMessage', ], 'HttpTokensEnforced' => [ 'shape' => 'HttpTokensEnforcedState', 'locationName' => 'httpTokensEnforced', ], ], ], 'InstanceMetadataEndpointState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', ], ], 'InstanceMetadataOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'HttpTokens' => [ 'shape' => 'HttpTokensState', ], 'HttpPutResponseHopLimit' => [ 'shape' => 'Integer', ], 'HttpEndpoint' => [ 'shape' => 'InstanceMetadataEndpointState', ], 'HttpProtocolIpv6' => [ 'shape' => 'InstanceMetadataProtocolState', ], 'InstanceMetadataTags' => [ 'shape' => 'InstanceMetadataTagsState', ], ], ], 'InstanceMetadataOptionsResponse' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'InstanceMetadataOptionsState', 'locationName' => 'state', ], 'HttpTokens' => [ 'shape' => 'HttpTokensState', 'locationName' => 'httpTokens', ], 'HttpPutResponseHopLimit' => [ 'shape' => 'Integer', 'locationName' => 'httpPutResponseHopLimit', ], 'HttpEndpoint' => [ 'shape' => 'InstanceMetadataEndpointState', 'locationName' => 'httpEndpoint', ], 'HttpProtocolIpv6' => [ 'shape' => 'InstanceMetadataProtocolState', 'locationName' => 'httpProtocolIpv6', ], 'InstanceMetadataTags' => [ 'shape' => 'InstanceMetadataTagsState', 'locationName' => 'instanceMetadataTags', ], ], ], 'InstanceMetadataOptionsState' => [ 'type' => 'string', 'enum' => [ 'pending', 'applied', ], ], 'InstanceMetadataProtocolState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', ], ], 'InstanceMetadataTagsState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', ], ], 'InstanceMonitoring' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Monitoring' => [ 'shape' => 'Monitoring', 'locationName' => 'monitoring', ], ], ], 'InstanceMonitoringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceMonitoring', 'locationName' => 'item', ], ], 'InstanceNetworkInterface' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'InstanceNetworkInterfaceAssociation', 'locationName' => 'association', ], 'Attachment' => [ 'shape' => 'InstanceNetworkInterfaceAttachment', 'locationName' => 'attachment', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressList', 'locationName' => 'ipv6AddressesSet', ], 'MacAddress' => [ 'shape' => 'String', 'locationName' => 'macAddress', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'PrivateIpAddresses' => [ 'shape' => 'InstancePrivateIpAddressList', 'locationName' => 'privateIpAddressesSet', ], 'SourceDestCheck' => [ 'shape' => 'Boolean', 'locationName' => 'sourceDestCheck', ], 'Status' => [ 'shape' => 'NetworkInterfaceStatus', 'locationName' => 'status', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'InterfaceType' => [ 'shape' => 'String', 'locationName' => 'interfaceType', ], 'Ipv4Prefixes' => [ 'shape' => 'InstanceIpv4PrefixList', 'locationName' => 'ipv4PrefixSet', ], 'Ipv6Prefixes' => [ 'shape' => 'InstanceIpv6PrefixList', 'locationName' => 'ipv6PrefixSet', ], 'ConnectionTrackingConfiguration' => [ 'shape' => 'ConnectionTrackingSpecificationResponse', 'locationName' => 'connectionTrackingConfiguration', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], ], ], 'InstanceNetworkInterfaceAssociation' => [ 'type' => 'structure', 'members' => [ 'CarrierIp' => [ 'shape' => 'String', 'locationName' => 'carrierIp', ], 'CustomerOwnedIp' => [ 'shape' => 'String', 'locationName' => 'customerOwnedIp', ], 'IpOwnerId' => [ 'shape' => 'String', 'locationName' => 'ipOwnerId', ], 'PublicDnsName' => [ 'shape' => 'String', 'locationName' => 'publicDnsName', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], ], ], 'InstanceNetworkInterfaceAttachment' => [ 'type' => 'structure', 'members' => [ 'AttachTime' => [ 'shape' => 'DateTime', 'locationName' => 'attachTime', ], 'AttachmentId' => [ 'shape' => 'String', 'locationName' => 'attachmentId', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'Status' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'status', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'networkCardIndex', ], 'EnaSrdSpecification' => [ 'shape' => 'InstanceAttachmentEnaSrdSpecification', 'locationName' => 'enaSrdSpecification', ], 'EnaQueueCount' => [ 'shape' => 'Integer', 'locationName' => 'enaQueueCount', ], ], ], 'InstanceNetworkInterfaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceNetworkInterface', 'locationName' => 'item', ], ], 'InstanceNetworkInterfaceSpecification' => [ 'type' => 'structure', 'members' => [ 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', 'locationName' => 'associatePublicIpAddress', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'Groups' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', 'locationName' => 'ipv6AddressCount', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressList', 'locationName' => 'ipv6AddressesSet', 'queryName' => 'Ipv6Addresses', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressSpecificationList', 'locationName' => 'privateIpAddressesSet', 'queryName' => 'PrivateIpAddresses', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'secondaryPrivateIpAddressCount', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'AssociateCarrierIpAddress' => [ 'shape' => 'Boolean', ], 'InterfaceType' => [ 'shape' => 'String', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', ], 'Ipv4Prefixes' => [ 'shape' => 'Ipv4PrefixList', 'locationName' => 'Ipv4Prefix', ], 'Ipv4PrefixCount' => [ 'shape' => 'Integer', ], 'Ipv6Prefixes' => [ 'shape' => 'Ipv6PrefixList', 'locationName' => 'Ipv6Prefix', ], 'Ipv6PrefixCount' => [ 'shape' => 'Integer', ], 'PrimaryIpv6' => [ 'shape' => 'Boolean', ], 'EnaSrdSpecification' => [ 'shape' => 'EnaSrdSpecificationRequest', ], 'ConnectionTrackingSpecification' => [ 'shape' => 'ConnectionTrackingSpecificationRequest', ], 'EnaQueueCount' => [ 'shape' => 'Integer', ], ], ], 'InstanceNetworkInterfaceSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceNetworkInterfaceSpecification', 'locationName' => 'item', ], ], 'InstanceNetworkPerformanceOptions' => [ 'type' => 'structure', 'members' => [ 'BandwidthWeighting' => [ 'shape' => 'InstanceBandwidthWeighting', 'locationName' => 'bandwidthWeighting', ], ], ], 'InstanceNetworkPerformanceOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'BandwidthWeighting' => [ 'shape' => 'InstanceBandwidthWeighting', ], ], ], 'InstancePrivateIpAddress' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'InstanceNetworkInterfaceAssociation', 'locationName' => 'association', ], 'Primary' => [ 'shape' => 'Boolean', 'locationName' => 'primary', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'InstancePrivateIpAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstancePrivateIpAddress', 'locationName' => 'item', ], ], 'InstanceRebootMigrationState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'default', ], ], 'InstanceRequirements' => [ 'type' => 'structure', 'members' => [ 'VCpuCount' => [ 'shape' => 'VCpuCountRange', 'locationName' => 'vCpuCount', ], 'MemoryMiB' => [ 'shape' => 'MemoryMiB', 'locationName' => 'memoryMiB', ], 'CpuManufacturers' => [ 'shape' => 'CpuManufacturerSet', 'locationName' => 'cpuManufacturerSet', ], 'MemoryGiBPerVCpu' => [ 'shape' => 'MemoryGiBPerVCpu', 'locationName' => 'memoryGiBPerVCpu', ], 'ExcludedInstanceTypes' => [ 'shape' => 'ExcludedInstanceTypeSet', 'locationName' => 'excludedInstanceTypeSet', ], 'InstanceGenerations' => [ 'shape' => 'InstanceGenerationSet', 'locationName' => 'instanceGenerationSet', ], 'SpotMaxPricePercentageOverLowestPrice' => [ 'shape' => 'Integer', 'locationName' => 'spotMaxPricePercentageOverLowestPrice', ], 'OnDemandMaxPricePercentageOverLowestPrice' => [ 'shape' => 'Integer', 'locationName' => 'onDemandMaxPricePercentageOverLowestPrice', ], 'BareMetal' => [ 'shape' => 'BareMetal', 'locationName' => 'bareMetal', ], 'BurstablePerformance' => [ 'shape' => 'BurstablePerformance', 'locationName' => 'burstablePerformance', ], 'RequireHibernateSupport' => [ 'shape' => 'Boolean', 'locationName' => 'requireHibernateSupport', ], 'NetworkInterfaceCount' => [ 'shape' => 'NetworkInterfaceCount', 'locationName' => 'networkInterfaceCount', ], 'LocalStorage' => [ 'shape' => 'LocalStorage', 'locationName' => 'localStorage', ], 'LocalStorageTypes' => [ 'shape' => 'LocalStorageTypeSet', 'locationName' => 'localStorageTypeSet', ], 'TotalLocalStorageGB' => [ 'shape' => 'TotalLocalStorageGB', 'locationName' => 'totalLocalStorageGB', ], 'BaselineEbsBandwidthMbps' => [ 'shape' => 'BaselineEbsBandwidthMbps', 'locationName' => 'baselineEbsBandwidthMbps', ], 'AcceleratorTypes' => [ 'shape' => 'AcceleratorTypeSet', 'locationName' => 'acceleratorTypeSet', ], 'AcceleratorCount' => [ 'shape' => 'AcceleratorCount', 'locationName' => 'acceleratorCount', ], 'AcceleratorManufacturers' => [ 'shape' => 'AcceleratorManufacturerSet', 'locationName' => 'acceleratorManufacturerSet', ], 'AcceleratorNames' => [ 'shape' => 'AcceleratorNameSet', 'locationName' => 'acceleratorNameSet', ], 'AcceleratorTotalMemoryMiB' => [ 'shape' => 'AcceleratorTotalMemoryMiB', 'locationName' => 'acceleratorTotalMemoryMiB', ], 'NetworkBandwidthGbps' => [ 'shape' => 'NetworkBandwidthGbps', 'locationName' => 'networkBandwidthGbps', ], 'AllowedInstanceTypes' => [ 'shape' => 'AllowedInstanceTypeSet', 'locationName' => 'allowedInstanceTypeSet', ], 'MaxSpotPriceAsPercentageOfOptimalOnDemandPrice' => [ 'shape' => 'Integer', 'locationName' => 'maxSpotPriceAsPercentageOfOptimalOnDemandPrice', ], 'BaselinePerformanceFactors' => [ 'shape' => 'BaselinePerformanceFactors', 'locationName' => 'baselinePerformanceFactors', ], 'RequireEncryptionInTransit' => [ 'shape' => 'Boolean', 'locationName' => 'requireEncryptionInTransit', ], ], ], 'InstanceRequirementsRequest' => [ 'type' => 'structure', 'required' => [ 'VCpuCount', 'MemoryMiB', ], 'members' => [ 'VCpuCount' => [ 'shape' => 'VCpuCountRangeRequest', ], 'MemoryMiB' => [ 'shape' => 'MemoryMiBRequest', ], 'CpuManufacturers' => [ 'shape' => 'CpuManufacturerSet', 'locationName' => 'CpuManufacturer', ], 'MemoryGiBPerVCpu' => [ 'shape' => 'MemoryGiBPerVCpuRequest', ], 'ExcludedInstanceTypes' => [ 'shape' => 'ExcludedInstanceTypeSet', 'locationName' => 'ExcludedInstanceType', ], 'InstanceGenerations' => [ 'shape' => 'InstanceGenerationSet', 'locationName' => 'InstanceGeneration', ], 'SpotMaxPricePercentageOverLowestPrice' => [ 'shape' => 'Integer', ], 'OnDemandMaxPricePercentageOverLowestPrice' => [ 'shape' => 'Integer', ], 'BareMetal' => [ 'shape' => 'BareMetal', ], 'BurstablePerformance' => [ 'shape' => 'BurstablePerformance', ], 'RequireHibernateSupport' => [ 'shape' => 'Boolean', ], 'NetworkInterfaceCount' => [ 'shape' => 'NetworkInterfaceCountRequest', ], 'LocalStorage' => [ 'shape' => 'LocalStorage', ], 'LocalStorageTypes' => [ 'shape' => 'LocalStorageTypeSet', 'locationName' => 'LocalStorageType', ], 'TotalLocalStorageGB' => [ 'shape' => 'TotalLocalStorageGBRequest', ], 'BaselineEbsBandwidthMbps' => [ 'shape' => 'BaselineEbsBandwidthMbpsRequest', ], 'AcceleratorTypes' => [ 'shape' => 'AcceleratorTypeSet', 'locationName' => 'AcceleratorType', ], 'AcceleratorCount' => [ 'shape' => 'AcceleratorCountRequest', ], 'AcceleratorManufacturers' => [ 'shape' => 'AcceleratorManufacturerSet', 'locationName' => 'AcceleratorManufacturer', ], 'AcceleratorNames' => [ 'shape' => 'AcceleratorNameSet', 'locationName' => 'AcceleratorName', ], 'AcceleratorTotalMemoryMiB' => [ 'shape' => 'AcceleratorTotalMemoryMiBRequest', ], 'NetworkBandwidthGbps' => [ 'shape' => 'NetworkBandwidthGbpsRequest', ], 'AllowedInstanceTypes' => [ 'shape' => 'AllowedInstanceTypeSet', 'locationName' => 'AllowedInstanceType', ], 'MaxSpotPriceAsPercentageOfOptimalOnDemandPrice' => [ 'shape' => 'Integer', ], 'BaselinePerformanceFactors' => [ 'shape' => 'BaselinePerformanceFactorsRequest', ], 'RequireEncryptionInTransit' => [ 'shape' => 'Boolean', ], ], ], 'InstanceRequirementsWithMetadataRequest' => [ 'type' => 'structure', 'members' => [ 'ArchitectureTypes' => [ 'shape' => 'ArchitectureTypeSet', 'locationName' => 'ArchitectureType', ], 'VirtualizationTypes' => [ 'shape' => 'VirtualizationTypeSet', 'locationName' => 'VirtualizationType', ], 'InstanceRequirements' => [ 'shape' => 'InstanceRequirementsRequest', ], ], ], 'InstanceSecondaryInterface' => [ 'type' => 'structure', 'members' => [ 'Attachment' => [ 'shape' => 'InstanceSecondaryInterfaceAttachment', 'locationName' => 'attachment', ], 'MacAddress' => [ 'shape' => 'String', 'locationName' => 'macAddress', ], 'SecondaryInterfaceId' => [ 'shape' => 'SecondaryInterfaceId', 'locationName' => 'secondaryInterfaceId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PrivateIpAddresses' => [ 'shape' => 'InstanceSecondaryInterfacePrivateIpAddressList', 'locationName' => 'privateIpAddressSet', ], 'SourceDestCheck' => [ 'shape' => 'Boolean', 'locationName' => 'sourceDestCheck', ], 'Status' => [ 'shape' => 'SecondaryInterfaceStatus', 'locationName' => 'status', ], 'SecondarySubnetId' => [ 'shape' => 'SecondarySubnetId', 'locationName' => 'secondarySubnetId', ], 'SecondaryNetworkId' => [ 'shape' => 'SecondaryNetworkId', 'locationName' => 'secondaryNetworkId', ], 'InterfaceType' => [ 'shape' => 'SecondaryInterfaceType', 'locationName' => 'interfaceType', ], ], ], 'InstanceSecondaryInterfaceAttachment' => [ 'type' => 'structure', 'members' => [ 'AttachTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'attachTime', ], 'AttachmentId' => [ 'shape' => 'String', 'locationName' => 'attachmentId', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'Status' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'status', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'networkCardIndex', ], ], ], 'InstanceSecondaryInterfaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceSecondaryInterface', 'locationName' => 'item', ], ], 'InstanceSecondaryInterfacePrivateIpAddress' => [ 'type' => 'structure', 'members' => [ 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'InstanceSecondaryInterfacePrivateIpAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceSecondaryInterfacePrivateIpAddress', 'locationName' => 'item', ], ], 'InstanceSecondaryInterfacePrivateIpAddressListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceSecondaryInterfacePrivateIpAddressRequest', 'locationName' => 'item', ], ], 'InstanceSecondaryInterfacePrivateIpAddressRequest' => [ 'type' => 'structure', 'required' => [ 'PrivateIpAddress', ], 'members' => [ 'PrivateIpAddress' => [ 'shape' => 'String', ], ], ], 'InstanceSecondaryInterfaceSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceSecondaryInterfaceSpecificationRequest', 'locationName' => 'item', ], ], 'InstanceSecondaryInterfaceSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'DeviceIndex' => [ 'shape' => 'Integer', ], 'PrivateIpAddresses' => [ 'shape' => 'InstanceSecondaryInterfacePrivateIpAddressListRequest', 'locationName' => 'PrivateIpAddress', ], 'PrivateIpAddressCount' => [ 'shape' => 'Integer', ], 'SecondarySubnetId' => [ 'shape' => 'SecondarySubnetId', ], 'InterfaceType' => [ 'shape' => 'SecondaryInterfaceType', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', ], ], ], 'InstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceTopology', 'locationName' => 'item', ], ], 'InstanceSpecification' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceIdWithVolumeResolver', ], 'ExcludeBootVolume' => [ 'shape' => 'Boolean', ], 'ExcludeDataVolumeIds' => [ 'shape' => 'VolumeIdStringList', 'locationName' => 'ExcludeDataVolumeId', ], ], ], 'InstanceState' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'Integer', 'locationName' => 'code', ], 'Name' => [ 'shape' => 'InstanceStateName', 'locationName' => 'name', ], ], ], 'InstanceStateChange' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'CurrentState' => [ 'shape' => 'InstanceState', 'locationName' => 'currentState', ], 'PreviousState' => [ 'shape' => 'InstanceState', 'locationName' => 'previousState', ], ], ], 'InstanceStateChangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceStateChange', 'locationName' => 'item', ], ], 'InstanceStateName' => [ 'type' => 'string', 'enum' => [ 'pending', 'running', 'shutting-down', 'terminated', 'stopping', 'stopped', ], ], 'InstanceStatus' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], 'Events' => [ 'shape' => 'InstanceStatusEventList', 'locationName' => 'eventsSet', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceState' => [ 'shape' => 'InstanceState', 'locationName' => 'instanceState', ], 'InstanceStatus' => [ 'shape' => 'InstanceStatusSummary', 'locationName' => 'instanceStatus', ], 'SystemStatus' => [ 'shape' => 'InstanceStatusSummary', 'locationName' => 'systemStatus', ], 'AttachedEbsStatus' => [ 'shape' => 'EbsStatusSummary', 'locationName' => 'attachedEbsStatus', ], ], ], 'InstanceStatusDetails' => [ 'type' => 'structure', 'members' => [ 'ImpairedSince' => [ 'shape' => 'DateTime', 'locationName' => 'impairedSince', ], 'Name' => [ 'shape' => 'StatusName', 'locationName' => 'name', ], 'Status' => [ 'shape' => 'StatusType', 'locationName' => 'status', ], ], ], 'InstanceStatusDetailsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceStatusDetails', 'locationName' => 'item', ], ], 'InstanceStatusEvent' => [ 'type' => 'structure', 'members' => [ 'InstanceEventId' => [ 'shape' => 'InstanceEventId', 'locationName' => 'instanceEventId', ], 'Code' => [ 'shape' => 'EventCode', 'locationName' => 'code', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'NotAfter' => [ 'shape' => 'DateTime', 'locationName' => 'notAfter', ], 'NotBefore' => [ 'shape' => 'DateTime', 'locationName' => 'notBefore', ], 'NotBeforeDeadline' => [ 'shape' => 'DateTime', 'locationName' => 'notBeforeDeadline', ], ], ], 'InstanceStatusEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceStatusEvent', 'locationName' => 'item', ], ], 'InstanceStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceStatus', 'locationName' => 'item', ], ], 'InstanceStatusSummary' => [ 'type' => 'structure', 'members' => [ 'Details' => [ 'shape' => 'InstanceStatusDetailsList', 'locationName' => 'details', ], 'Status' => [ 'shape' => 'SummaryStatus', 'locationName' => 'status', ], ], ], 'InstanceStorageEncryptionSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'required', ], ], 'InstanceStorageFlag' => [ 'type' => 'boolean', ], 'InstanceStorageInfo' => [ 'type' => 'structure', 'members' => [ 'TotalSizeInGB' => [ 'shape' => 'DiskSize', 'locationName' => 'totalSizeInGB', ], 'Disks' => [ 'shape' => 'DiskInfoList', 'locationName' => 'disks', ], 'NvmeSupport' => [ 'shape' => 'EphemeralNvmeSupport', 'locationName' => 'nvmeSupport', ], 'EncryptionSupport' => [ 'shape' => 'InstanceStorageEncryptionSupport', 'locationName' => 'encryptionSupport', ], ], ], 'InstanceTagKeySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'InstanceTagNotificationAttribute' => [ 'type' => 'structure', 'members' => [ 'InstanceTagKeys' => [ 'shape' => 'InstanceTagKeySet', 'locationName' => 'instanceTagKeySet', ], 'IncludeAllTagsOfInstance' => [ 'shape' => 'Boolean', 'locationName' => 'includeAllTagsOfInstance', ], ], ], 'InstanceTopology' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'NetworkNodes' => [ 'shape' => 'NetworkNodesList', 'locationName' => 'networkNodeSet', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'ZoneId' => [ 'shape' => 'String', 'locationName' => 'zoneId', ], 'CapacityBlockId' => [ 'shape' => 'String', 'locationName' => 'capacityBlockId', ], ], ], 'InstanceType' => [ 'type' => 'string', 'enum' => [ 'a1.medium', 'a1.large', 'a1.xlarge', 'a1.2xlarge', 'a1.4xlarge', 'a1.metal', 'c1.medium', 'c1.xlarge', 'c3.large', 'c3.xlarge', 'c3.2xlarge', 'c3.4xlarge', 'c3.8xlarge', 'c4.large', 'c4.xlarge', 'c4.2xlarge', 'c4.4xlarge', 'c4.8xlarge', 'c5.large', 'c5.xlarge', 'c5.2xlarge', 'c5.4xlarge', 'c5.9xlarge', 'c5.12xlarge', 'c5.18xlarge', 'c5.24xlarge', 'c5.metal', 'c5a.large', 'c5a.xlarge', 'c5a.2xlarge', 'c5a.4xlarge', 'c5a.8xlarge', 'c5a.12xlarge', 'c5a.16xlarge', 'c5a.24xlarge', 'c5ad.large', 'c5ad.xlarge', 'c5ad.2xlarge', 'c5ad.4xlarge', 'c5ad.8xlarge', 'c5ad.12xlarge', 'c5ad.16xlarge', 'c5ad.24xlarge', 'c5d.large', 'c5d.xlarge', 'c5d.2xlarge', 'c5d.4xlarge', 'c5d.9xlarge', 'c5d.12xlarge', 'c5d.18xlarge', 'c5d.24xlarge', 'c5d.metal', 'c5n.large', 'c5n.xlarge', 'c5n.2xlarge', 'c5n.4xlarge', 'c5n.9xlarge', 'c5n.18xlarge', 'c5n.metal', 'c6g.medium', 'c6g.large', 'c6g.xlarge', 'c6g.2xlarge', 'c6g.4xlarge', 'c6g.8xlarge', 'c6g.12xlarge', 'c6g.16xlarge', 'c6g.metal', 'c6gd.medium', 'c6gd.large', 'c6gd.xlarge', 'c6gd.2xlarge', 'c6gd.4xlarge', 'c6gd.8xlarge', 'c6gd.12xlarge', 'c6gd.16xlarge', 'c6gd.metal', 'c6gn.medium', 'c6gn.large', 'c6gn.xlarge', 'c6gn.2xlarge', 'c6gn.4xlarge', 'c6gn.8xlarge', 'c6gn.12xlarge', 'c6gn.16xlarge', 'c6i.large', 'c6i.xlarge', 'c6i.2xlarge', 'c6i.4xlarge', 'c6i.8xlarge', 'c6i.12xlarge', 'c6i.16xlarge', 'c6i.24xlarge', 'c6i.32xlarge', 'c6i.metal', 'cc1.4xlarge', 'cc2.8xlarge', 'cg1.4xlarge', 'cr1.8xlarge', 'd2.xlarge', 'd2.2xlarge', 'd2.4xlarge', 'd2.8xlarge', 'd3.xlarge', 'd3.2xlarge', 'd3.4xlarge', 'd3.8xlarge', 'd3en.xlarge', 'd3en.2xlarge', 'd3en.4xlarge', 'd3en.6xlarge', 'd3en.8xlarge', 'd3en.12xlarge', 'dl1.24xlarge', 'f1.2xlarge', 'f1.4xlarge', 'f1.16xlarge', 'g2.2xlarge', 'g2.8xlarge', 'g3.4xlarge', 'g3.8xlarge', 'g3.16xlarge', 'g3s.xlarge', 'g4ad.xlarge', 'g4ad.2xlarge', 'g4ad.4xlarge', 'g4ad.8xlarge', 'g4ad.16xlarge', 'g4dn.xlarge', 'g4dn.2xlarge', 'g4dn.4xlarge', 'g4dn.8xlarge', 'g4dn.12xlarge', 'g4dn.16xlarge', 'g4dn.metal', 'g5.xlarge', 'g5.2xlarge', 'g5.4xlarge', 'g5.8xlarge', 'g5.12xlarge', 'g5.16xlarge', 'g5.24xlarge', 'g5.48xlarge', 'g5g.xlarge', 'g5g.2xlarge', 'g5g.4xlarge', 'g5g.8xlarge', 'g5g.16xlarge', 'g5g.metal', 'hi1.4xlarge', 'hpc6a.48xlarge', 'hs1.8xlarge', 'h1.2xlarge', 'h1.4xlarge', 'h1.8xlarge', 'h1.16xlarge', 'i2.xlarge', 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', 'i3.large', 'i3.xlarge', 'i3.2xlarge', 'i3.4xlarge', 'i3.8xlarge', 'i3.16xlarge', 'i3.metal', 'i3en.large', 'i3en.xlarge', 'i3en.2xlarge', 'i3en.3xlarge', 'i3en.6xlarge', 'i3en.12xlarge', 'i3en.24xlarge', 'i3en.metal', 'im4gn.large', 'im4gn.xlarge', 'im4gn.2xlarge', 'im4gn.4xlarge', 'im4gn.8xlarge', 'im4gn.16xlarge', 'inf1.xlarge', 'inf1.2xlarge', 'inf1.6xlarge', 'inf1.24xlarge', 'is4gen.medium', 'is4gen.large', 'is4gen.xlarge', 'is4gen.2xlarge', 'is4gen.4xlarge', 'is4gen.8xlarge', 'm1.small', 'm1.medium', 'm1.large', 'm1.xlarge', 'm2.xlarge', 'm2.2xlarge', 'm2.4xlarge', 'm3.medium', 'm3.large', 'm3.xlarge', 'm3.2xlarge', 'm4.large', 'm4.xlarge', 'm4.2xlarge', 'm4.4xlarge', 'm4.10xlarge', 'm4.16xlarge', 'm5.large', 'm5.xlarge', 'm5.2xlarge', 'm5.4xlarge', 'm5.8xlarge', 'm5.12xlarge', 'm5.16xlarge', 'm5.24xlarge', 'm5.metal', 'm5a.large', 'm5a.xlarge', 'm5a.2xlarge', 'm5a.4xlarge', 'm5a.8xlarge', 'm5a.12xlarge', 'm5a.16xlarge', 'm5a.24xlarge', 'm5ad.large', 'm5ad.xlarge', 'm5ad.2xlarge', 'm5ad.4xlarge', 'm5ad.8xlarge', 'm5ad.12xlarge', 'm5ad.16xlarge', 'm5ad.24xlarge', 'm5d.large', 'm5d.xlarge', 'm5d.2xlarge', 'm5d.4xlarge', 'm5d.8xlarge', 'm5d.12xlarge', 'm5d.16xlarge', 'm5d.24xlarge', 'm5d.metal', 'm5dn.large', 'm5dn.xlarge', 'm5dn.2xlarge', 'm5dn.4xlarge', 'm5dn.8xlarge', 'm5dn.12xlarge', 'm5dn.16xlarge', 'm5dn.24xlarge', 'm5dn.metal', 'm5n.large', 'm5n.xlarge', 'm5n.2xlarge', 'm5n.4xlarge', 'm5n.8xlarge', 'm5n.12xlarge', 'm5n.16xlarge', 'm5n.24xlarge', 'm5n.metal', 'm5zn.large', 'm5zn.xlarge', 'm5zn.2xlarge', 'm5zn.3xlarge', 'm5zn.6xlarge', 'm5zn.12xlarge', 'm5zn.metal', 'm6a.large', 'm6a.xlarge', 'm6a.2xlarge', 'm6a.4xlarge', 'm6a.8xlarge', 'm6a.12xlarge', 'm6a.16xlarge', 'm6a.24xlarge', 'm6a.32xlarge', 'm6a.48xlarge', 'm6g.metal', 'm6g.medium', 'm6g.large', 'm6g.xlarge', 'm6g.2xlarge', 'm6g.4xlarge', 'm6g.8xlarge', 'm6g.12xlarge', 'm6g.16xlarge', 'm6gd.metal', 'm6gd.medium', 'm6gd.large', 'm6gd.xlarge', 'm6gd.2xlarge', 'm6gd.4xlarge', 'm6gd.8xlarge', 'm6gd.12xlarge', 'm6gd.16xlarge', 'm6i.large', 'm6i.xlarge', 'm6i.2xlarge', 'm6i.4xlarge', 'm6i.8xlarge', 'm6i.12xlarge', 'm6i.16xlarge', 'm6i.24xlarge', 'm6i.32xlarge', 'm6i.metal', 'mac1.metal', 'p2.xlarge', 'p2.8xlarge', 'p2.16xlarge', 'p3.2xlarge', 'p3.8xlarge', 'p3.16xlarge', 'p3dn.24xlarge', 'p4d.24xlarge', 'r3.large', 'r3.xlarge', 'r3.2xlarge', 'r3.4xlarge', 'r3.8xlarge', 'r4.large', 'r4.xlarge', 'r4.2xlarge', 'r4.4xlarge', 'r4.8xlarge', 'r4.16xlarge', 'r5.large', 'r5.xlarge', 'r5.2xlarge', 'r5.4xlarge', 'r5.8xlarge', 'r5.12xlarge', 'r5.16xlarge', 'r5.24xlarge', 'r5.metal', 'r5a.large', 'r5a.xlarge', 'r5a.2xlarge', 'r5a.4xlarge', 'r5a.8xlarge', 'r5a.12xlarge', 'r5a.16xlarge', 'r5a.24xlarge', 'r5ad.large', 'r5ad.xlarge', 'r5ad.2xlarge', 'r5ad.4xlarge', 'r5ad.8xlarge', 'r5ad.12xlarge', 'r5ad.16xlarge', 'r5ad.24xlarge', 'r5b.large', 'r5b.xlarge', 'r5b.2xlarge', 'r5b.4xlarge', 'r5b.8xlarge', 'r5b.12xlarge', 'r5b.16xlarge', 'r5b.24xlarge', 'r5b.metal', 'r5d.large', 'r5d.xlarge', 'r5d.2xlarge', 'r5d.4xlarge', 'r5d.8xlarge', 'r5d.12xlarge', 'r5d.16xlarge', 'r5d.24xlarge', 'r5d.metal', 'r5dn.large', 'r5dn.xlarge', 'r5dn.2xlarge', 'r5dn.4xlarge', 'r5dn.8xlarge', 'r5dn.12xlarge', 'r5dn.16xlarge', 'r5dn.24xlarge', 'r5dn.metal', 'r5n.large', 'r5n.xlarge', 'r5n.2xlarge', 'r5n.4xlarge', 'r5n.8xlarge', 'r5n.12xlarge', 'r5n.16xlarge', 'r5n.24xlarge', 'r5n.metal', 'r6g.medium', 'r6g.large', 'r6g.xlarge', 'r6g.2xlarge', 'r6g.4xlarge', 'r6g.8xlarge', 'r6g.12xlarge', 'r6g.16xlarge', 'r6g.metal', 'r6gd.medium', 'r6gd.large', 'r6gd.xlarge', 'r6gd.2xlarge', 'r6gd.4xlarge', 'r6gd.8xlarge', 'r6gd.12xlarge', 'r6gd.16xlarge', 'r6gd.metal', 'r6i.large', 'r6i.xlarge', 'r6i.2xlarge', 'r6i.4xlarge', 'r6i.8xlarge', 'r6i.12xlarge', 'r6i.16xlarge', 'r6i.24xlarge', 'r6i.32xlarge', 'r6i.metal', 't1.micro', 't2.nano', 't2.micro', 't2.small', 't2.medium', 't2.large', 't2.xlarge', 't2.2xlarge', 't3.nano', 't3.micro', 't3.small', 't3.medium', 't3.large', 't3.xlarge', 't3.2xlarge', 't3a.nano', 't3a.micro', 't3a.small', 't3a.medium', 't3a.large', 't3a.xlarge', 't3a.2xlarge', 't4g.nano', 't4g.micro', 't4g.small', 't4g.medium', 't4g.large', 't4g.xlarge', 't4g.2xlarge', 'u-6tb1.56xlarge', 'u-6tb1.112xlarge', 'u-9tb1.112xlarge', 'u-12tb1.112xlarge', 'u-6tb1.metal', 'u-9tb1.metal', 'u-12tb1.metal', 'u-18tb1.metal', 'u-24tb1.metal', 'vt1.3xlarge', 'vt1.6xlarge', 'vt1.24xlarge', 'x1.16xlarge', 'x1.32xlarge', 'x1e.xlarge', 'x1e.2xlarge', 'x1e.4xlarge', 'x1e.8xlarge', 'x1e.16xlarge', 'x1e.32xlarge', 'x2iezn.2xlarge', 'x2iezn.4xlarge', 'x2iezn.6xlarge', 'x2iezn.8xlarge', 'x2iezn.12xlarge', 'x2iezn.metal', 'x2gd.medium', 'x2gd.large', 'x2gd.xlarge', 'x2gd.2xlarge', 'x2gd.4xlarge', 'x2gd.8xlarge', 'x2gd.12xlarge', 'x2gd.16xlarge', 'x2gd.metal', 'z1d.large', 'z1d.xlarge', 'z1d.2xlarge', 'z1d.3xlarge', 'z1d.6xlarge', 'z1d.12xlarge', 'z1d.metal', 'x2idn.16xlarge', 'x2idn.24xlarge', 'x2idn.32xlarge', 'x2iedn.xlarge', 'x2iedn.2xlarge', 'x2iedn.4xlarge', 'x2iedn.8xlarge', 'x2iedn.16xlarge', 'x2iedn.24xlarge', 'x2iedn.32xlarge', 'c6a.large', 'c6a.xlarge', 'c6a.2xlarge', 'c6a.4xlarge', 'c6a.8xlarge', 'c6a.12xlarge', 'c6a.16xlarge', 'c6a.24xlarge', 'c6a.32xlarge', 'c6a.48xlarge', 'c6a.metal', 'm6a.metal', 'i4i.large', 'i4i.xlarge', 'i4i.2xlarge', 'i4i.4xlarge', 'i4i.8xlarge', 'i4i.16xlarge', 'i4i.32xlarge', 'i4i.metal', 'x2idn.metal', 'x2iedn.metal', 'c7g.medium', 'c7g.large', 'c7g.xlarge', 'c7g.2xlarge', 'c7g.4xlarge', 'c7g.8xlarge', 'c7g.12xlarge', 'c7g.16xlarge', 'mac2.metal', 'c6id.large', 'c6id.xlarge', 'c6id.2xlarge', 'c6id.4xlarge', 'c6id.8xlarge', 'c6id.12xlarge', 'c6id.16xlarge', 'c6id.24xlarge', 'c6id.32xlarge', 'c6id.metal', 'm6id.large', 'm6id.xlarge', 'm6id.2xlarge', 'm6id.4xlarge', 'm6id.8xlarge', 'm6id.12xlarge', 'm6id.16xlarge', 'm6id.24xlarge', 'm6id.32xlarge', 'm6id.metal', 'r6id.large', 'r6id.xlarge', 'r6id.2xlarge', 'r6id.4xlarge', 'r6id.8xlarge', 'r6id.12xlarge', 'r6id.16xlarge', 'r6id.24xlarge', 'r6id.32xlarge', 'r6id.metal', 'r6a.large', 'r6a.xlarge', 'r6a.2xlarge', 'r6a.4xlarge', 'r6a.8xlarge', 'r6a.12xlarge', 'r6a.16xlarge', 'r6a.24xlarge', 'r6a.32xlarge', 'r6a.48xlarge', 'r6a.metal', 'p4de.24xlarge', 'u-3tb1.56xlarge', 'u-18tb1.112xlarge', 'u-24tb1.112xlarge', 'trn1.2xlarge', 'trn1.32xlarge', 'hpc6id.32xlarge', 'c6in.large', 'c6in.xlarge', 'c6in.2xlarge', 'c6in.4xlarge', 'c6in.8xlarge', 'c6in.12xlarge', 'c6in.16xlarge', 'c6in.24xlarge', 'c6in.32xlarge', 'm6in.large', 'm6in.xlarge', 'm6in.2xlarge', 'm6in.4xlarge', 'm6in.8xlarge', 'm6in.12xlarge', 'm6in.16xlarge', 'm6in.24xlarge', 'm6in.32xlarge', 'm6idn.large', 'm6idn.xlarge', 'm6idn.2xlarge', 'm6idn.4xlarge', 'm6idn.8xlarge', 'm6idn.12xlarge', 'm6idn.16xlarge', 'm6idn.24xlarge', 'm6idn.32xlarge', 'r6in.large', 'r6in.xlarge', 'r6in.2xlarge', 'r6in.4xlarge', 'r6in.8xlarge', 'r6in.12xlarge', 'r6in.16xlarge', 'r6in.24xlarge', 'r6in.32xlarge', 'r6idn.large', 'r6idn.xlarge', 'r6idn.2xlarge', 'r6idn.4xlarge', 'r6idn.8xlarge', 'r6idn.12xlarge', 'r6idn.16xlarge', 'r6idn.24xlarge', 'r6idn.32xlarge', 'c7g.metal', 'm7g.medium', 'm7g.large', 'm7g.xlarge', 'm7g.2xlarge', 'm7g.4xlarge', 'm7g.8xlarge', 'm7g.12xlarge', 'm7g.16xlarge', 'm7g.metal', 'r7g.medium', 'r7g.large', 'r7g.xlarge', 'r7g.2xlarge', 'r7g.4xlarge', 'r7g.8xlarge', 'r7g.12xlarge', 'r7g.16xlarge', 'r7g.metal', 'c6in.metal', 'm6in.metal', 'm6idn.metal', 'r6in.metal', 'r6idn.metal', 'inf2.xlarge', 'inf2.8xlarge', 'inf2.24xlarge', 'inf2.48xlarge', 'trn1n.32xlarge', 'i4g.large', 'i4g.xlarge', 'i4g.2xlarge', 'i4g.4xlarge', 'i4g.8xlarge', 'i4g.16xlarge', 'hpc7g.4xlarge', 'hpc7g.8xlarge', 'hpc7g.16xlarge', 'c7gn.medium', 'c7gn.large', 'c7gn.xlarge', 'c7gn.2xlarge', 'c7gn.4xlarge', 'c7gn.8xlarge', 'c7gn.12xlarge', 'c7gn.16xlarge', 'p5.48xlarge', 'm7i.large', 'm7i.xlarge', 'm7i.2xlarge', 'm7i.4xlarge', 'm7i.8xlarge', 'm7i.12xlarge', 'm7i.16xlarge', 'm7i.24xlarge', 'm7i.48xlarge', 'm7i-flex.large', 'm7i-flex.xlarge', 'm7i-flex.2xlarge', 'm7i-flex.4xlarge', 'm7i-flex.8xlarge', 'm7a.medium', 'm7a.large', 'm7a.xlarge', 'm7a.2xlarge', 'm7a.4xlarge', 'm7a.8xlarge', 'm7a.12xlarge', 'm7a.16xlarge', 'm7a.24xlarge', 'm7a.32xlarge', 'm7a.48xlarge', 'm7a.metal-48xl', 'hpc7a.12xlarge', 'hpc7a.24xlarge', 'hpc7a.48xlarge', 'hpc7a.96xlarge', 'c7gd.medium', 'c7gd.large', 'c7gd.xlarge', 'c7gd.2xlarge', 'c7gd.4xlarge', 'c7gd.8xlarge', 'c7gd.12xlarge', 'c7gd.16xlarge', 'm7gd.medium', 'm7gd.large', 'm7gd.xlarge', 'm7gd.2xlarge', 'm7gd.4xlarge', 'm7gd.8xlarge', 'm7gd.12xlarge', 'm7gd.16xlarge', 'r7gd.medium', 'r7gd.large', 'r7gd.xlarge', 'r7gd.2xlarge', 'r7gd.4xlarge', 'r7gd.8xlarge', 'r7gd.12xlarge', 'r7gd.16xlarge', 'r7a.medium', 'r7a.large', 'r7a.xlarge', 'r7a.2xlarge', 'r7a.4xlarge', 'r7a.8xlarge', 'r7a.12xlarge', 'r7a.16xlarge', 'r7a.24xlarge', 'r7a.32xlarge', 'r7a.48xlarge', 'c7i.large', 'c7i.xlarge', 'c7i.2xlarge', 'c7i.4xlarge', 'c7i.8xlarge', 'c7i.12xlarge', 'c7i.16xlarge', 'c7i.24xlarge', 'c7i.48xlarge', 'mac2-m2pro.metal', 'r7iz.large', 'r7iz.xlarge', 'r7iz.2xlarge', 'r7iz.4xlarge', 'r7iz.8xlarge', 'r7iz.12xlarge', 'r7iz.16xlarge', 'r7iz.32xlarge', 'c7a.medium', 'c7a.large', 'c7a.xlarge', 'c7a.2xlarge', 'c7a.4xlarge', 'c7a.8xlarge', 'c7a.12xlarge', 'c7a.16xlarge', 'c7a.24xlarge', 'c7a.32xlarge', 'c7a.48xlarge', 'c7a.metal-48xl', 'r7a.metal-48xl', 'r7i.large', 'r7i.xlarge', 'r7i.2xlarge', 'r7i.4xlarge', 'r7i.8xlarge', 'r7i.12xlarge', 'r7i.16xlarge', 'r7i.24xlarge', 'r7i.48xlarge', 'dl2q.24xlarge', 'mac2-m2.metal', 'i4i.12xlarge', 'i4i.24xlarge', 'c7i.metal-24xl', 'c7i.metal-48xl', 'm7i.metal-24xl', 'm7i.metal-48xl', 'r7i.metal-24xl', 'r7i.metal-48xl', 'r7iz.metal-16xl', 'r7iz.metal-32xl', 'c7gd.metal', 'm7gd.metal', 'r7gd.metal', 'g6.xlarge', 'g6.2xlarge', 'g6.4xlarge', 'g6.8xlarge', 'g6.12xlarge', 'g6.16xlarge', 'g6.24xlarge', 'g6.48xlarge', 'gr6.4xlarge', 'gr6.8xlarge', 'c7i-flex.large', 'c7i-flex.xlarge', 'c7i-flex.2xlarge', 'c7i-flex.4xlarge', 'c7i-flex.8xlarge', 'u7i-12tb.224xlarge', 'u7in-16tb.224xlarge', 'u7in-24tb.224xlarge', 'u7in-32tb.224xlarge', 'u7ib-12tb.224xlarge', 'c7gn.metal', 'r8g.medium', 'r8g.large', 'r8g.xlarge', 'r8g.2xlarge', 'r8g.4xlarge', 'r8g.8xlarge', 'r8g.12xlarge', 'r8g.16xlarge', 'r8g.24xlarge', 'r8g.48xlarge', 'r8g.metal-24xl', 'r8g.metal-48xl', 'mac2-m1ultra.metal', 'g6e.xlarge', 'g6e.2xlarge', 'g6e.4xlarge', 'g6e.8xlarge', 'g6e.12xlarge', 'g6e.16xlarge', 'g6e.24xlarge', 'g6e.48xlarge', 'c8g.medium', 'c8g.large', 'c8g.xlarge', 'c8g.2xlarge', 'c8g.4xlarge', 'c8g.8xlarge', 'c8g.12xlarge', 'c8g.16xlarge', 'c8g.24xlarge', 'c8g.48xlarge', 'c8g.metal-24xl', 'c8g.metal-48xl', 'm8g.medium', 'm8g.large', 'm8g.xlarge', 'm8g.2xlarge', 'm8g.4xlarge', 'm8g.8xlarge', 'm8g.12xlarge', 'm8g.16xlarge', 'm8g.24xlarge', 'm8g.48xlarge', 'm8g.metal-24xl', 'm8g.metal-48xl', 'x8g.medium', 'x8g.large', 'x8g.xlarge', 'x8g.2xlarge', 'x8g.4xlarge', 'x8g.8xlarge', 'x8g.12xlarge', 'x8g.16xlarge', 'x8g.24xlarge', 'x8g.48xlarge', 'x8g.metal-24xl', 'x8g.metal-48xl', 'i7ie.large', 'i7ie.xlarge', 'i7ie.2xlarge', 'i7ie.3xlarge', 'i7ie.6xlarge', 'i7ie.12xlarge', 'i7ie.18xlarge', 'i7ie.24xlarge', 'i7ie.48xlarge', 'i8g.large', 'i8g.xlarge', 'i8g.2xlarge', 'i8g.4xlarge', 'i8g.8xlarge', 'i8g.12xlarge', 'i8g.16xlarge', 'i8g.24xlarge', 'i8g.metal-24xl', 'u7i-6tb.112xlarge', 'u7i-8tb.112xlarge', 'u7inh-32tb.480xlarge', 'p5e.48xlarge', 'p5en.48xlarge', 'f2.12xlarge', 'f2.48xlarge', 'trn2.48xlarge', 'c7i-flex.12xlarge', 'c7i-flex.16xlarge', 'm7i-flex.12xlarge', 'm7i-flex.16xlarge', 'i7ie.metal-24xl', 'i7ie.metal-48xl', 'i8g.48xlarge', 'c8gd.medium', 'c8gd.large', 'c8gd.xlarge', 'c8gd.2xlarge', 'c8gd.4xlarge', 'c8gd.8xlarge', 'c8gd.12xlarge', 'c8gd.16xlarge', 'c8gd.24xlarge', 'c8gd.48xlarge', 'c8gd.metal-24xl', 'c8gd.metal-48xl', 'i7i.large', 'i7i.xlarge', 'i7i.2xlarge', 'i7i.4xlarge', 'i7i.8xlarge', 'i7i.12xlarge', 'i7i.16xlarge', 'i7i.24xlarge', 'i7i.48xlarge', 'i7i.metal-24xl', 'i7i.metal-48xl', 'p6-b200.48xlarge', 'm8gd.medium', 'm8gd.large', 'm8gd.xlarge', 'm8gd.2xlarge', 'm8gd.4xlarge', 'm8gd.8xlarge', 'm8gd.12xlarge', 'm8gd.16xlarge', 'm8gd.24xlarge', 'm8gd.48xlarge', 'm8gd.metal-24xl', 'm8gd.metal-48xl', 'r8gd.medium', 'r8gd.large', 'r8gd.xlarge', 'r8gd.2xlarge', 'r8gd.4xlarge', 'r8gd.8xlarge', 'r8gd.12xlarge', 'r8gd.16xlarge', 'r8gd.24xlarge', 'r8gd.48xlarge', 'r8gd.metal-24xl', 'r8gd.metal-48xl', 'c8gn.medium', 'c8gn.large', 'c8gn.xlarge', 'c8gn.2xlarge', 'c8gn.4xlarge', 'c8gn.8xlarge', 'c8gn.12xlarge', 'c8gn.16xlarge', 'c8gn.24xlarge', 'c8gn.48xlarge', 'c8gn.metal-24xl', 'c8gn.metal-48xl', 'f2.6xlarge', 'p6e-gb200.36xlarge', 'g6f.large', 'g6f.xlarge', 'g6f.2xlarge', 'g6f.4xlarge', 'gr6f.4xlarge', 'p5.4xlarge', 'r8i.large', 'r8i.xlarge', 'r8i.2xlarge', 'r8i.4xlarge', 'r8i.8xlarge', 'r8i.12xlarge', 'r8i.16xlarge', 'r8i.24xlarge', 'r8i.32xlarge', 'r8i.48xlarge', 'r8i.96xlarge', 'r8i.metal-48xl', 'r8i.metal-96xl', 'r8i-flex.large', 'r8i-flex.xlarge', 'r8i-flex.2xlarge', 'r8i-flex.4xlarge', 'r8i-flex.8xlarge', 'r8i-flex.12xlarge', 'r8i-flex.16xlarge', 'm8i.large', 'm8i.xlarge', 'm8i.2xlarge', 'm8i.4xlarge', 'm8i.8xlarge', 'm8i.12xlarge', 'm8i.16xlarge', 'm8i.24xlarge', 'm8i.32xlarge', 'm8i.48xlarge', 'm8i.96xlarge', 'm8i.metal-48xl', 'm8i.metal-96xl', 'm8i-flex.large', 'm8i-flex.xlarge', 'm8i-flex.2xlarge', 'm8i-flex.4xlarge', 'm8i-flex.8xlarge', 'm8i-flex.12xlarge', 'm8i-flex.16xlarge', 'i8ge.large', 'i8ge.xlarge', 'i8ge.2xlarge', 'i8ge.3xlarge', 'i8ge.6xlarge', 'i8ge.12xlarge', 'i8ge.18xlarge', 'i8ge.24xlarge', 'i8ge.48xlarge', 'i8ge.metal-24xl', 'i8ge.metal-48xl', 'mac-m4.metal', 'mac-m4pro.metal', 'r8gn.medium', 'r8gn.large', 'r8gn.xlarge', 'r8gn.2xlarge', 'r8gn.4xlarge', 'r8gn.8xlarge', 'r8gn.12xlarge', 'r8gn.16xlarge', 'r8gn.24xlarge', 'r8gn.48xlarge', 'r8gn.metal-24xl', 'r8gn.metal-48xl', 'c8i.large', 'c8i.xlarge', 'c8i.2xlarge', 'c8i.4xlarge', 'c8i.8xlarge', 'c8i.12xlarge', 'c8i.16xlarge', 'c8i.24xlarge', 'c8i.32xlarge', 'c8i.48xlarge', 'c8i.96xlarge', 'c8i.metal-48xl', 'c8i.metal-96xl', 'c8i-flex.large', 'c8i-flex.xlarge', 'c8i-flex.2xlarge', 'c8i-flex.4xlarge', 'c8i-flex.8xlarge', 'c8i-flex.12xlarge', 'c8i-flex.16xlarge', 'r8gb.medium', 'r8gb.large', 'r8gb.xlarge', 'r8gb.2xlarge', 'r8gb.4xlarge', 'r8gb.8xlarge', 'r8gb.12xlarge', 'r8gb.16xlarge', 'r8gb.24xlarge', 'r8gb.metal-24xl', 'm8a.medium', 'm8a.large', 'm8a.xlarge', 'm8a.2xlarge', 'm8a.4xlarge', 'm8a.8xlarge', 'm8a.12xlarge', 'm8a.16xlarge', 'm8a.24xlarge', 'm8a.48xlarge', 'm8a.metal-24xl', 'm8a.metal-48xl', 'trn2.3xlarge', 'r8a.medium', 'r8a.large', 'r8a.xlarge', 'r8a.2xlarge', 'r8a.4xlarge', 'r8a.8xlarge', 'r8a.12xlarge', 'r8a.16xlarge', 'r8a.24xlarge', 'r8a.48xlarge', 'r8a.metal-24xl', 'r8a.metal-48xl', 'p6-b300.48xlarge', 'c8a.medium', 'c8a.large', 'c8a.xlarge', 'c8a.2xlarge', 'c8a.4xlarge', 'c8a.8xlarge', 'c8a.12xlarge', 'c8a.16xlarge', 'c8a.24xlarge', 'c8a.48xlarge', 'c8a.metal-24xl', 'c8a.metal-48xl', 'c8gb.12xlarge', 'c8gb.16xlarge', 'c8gb.24xlarge', 'c8gb.2xlarge', 'c8gb.4xlarge', 'c8gb.8xlarge', 'c8gb.large', 'c8gb.medium', 'c8gb.metal-24xl', 'c8gb.xlarge', 'c8gb.48xlarge', 'c8gb.metal-48xl', 'm8gb.12xlarge', 'm8gb.16xlarge', 'm8gb.24xlarge', 'm8gb.2xlarge', 'm8gb.4xlarge', 'm8gb.8xlarge', 'm8gb.large', 'm8gb.medium', 'm8gb.xlarge', 'm8gb.48xlarge', 'm8gb.metal-24xl', 'm8gb.metal-48xl', 'm8gn.12xlarge', 'm8gn.16xlarge', 'm8gn.24xlarge', 'm8gn.2xlarge', 'm8gn.48xlarge', 'm8gn.4xlarge', 'm8gn.8xlarge', 'm8gn.large', 'm8gn.medium', 'm8gn.xlarge', 'm8gn.metal-24xl', 'm8gn.metal-48xl', 'x8aedz.12xlarge', 'x8aedz.24xlarge', 'x8aedz.3xlarge', 'x8aedz.6xlarge', 'x8aedz.large', 'x8aedz.metal-12xl', 'x8aedz.metal-24xl', 'x8aedz.xlarge', 'm8azn.medium', 'm8azn.large', 'm8azn.xlarge', 'm8azn.3xlarge', 'm8azn.6xlarge', 'm8azn.12xlarge', 'm8azn.24xlarge', 'm8azn.metal-12xl', 'm8azn.metal-24xl', 'x8i.large', 'x8i.xlarge', 'x8i.2xlarge', 'x8i.4xlarge', 'x8i.8xlarge', 'x8i.12xlarge', 'x8i.16xlarge', 'x8i.24xlarge', 'x8i.32xlarge', 'x8i.48xlarge', 'x8i.64xlarge', 'x8i.96xlarge', 'x8i.metal-48xl', 'x8i.metal-96xl', 'mac-m4max.metal', 'g7e.2xlarge', 'g7e.4xlarge', 'g7e.8xlarge', 'g7e.12xlarge', 'g7e.24xlarge', 'g7e.48xlarge', 'r8id.large', 'r8id.xlarge', 'r8id.2xlarge', 'r8id.4xlarge', 'r8id.8xlarge', 'r8id.12xlarge', 'r8id.16xlarge', 'r8id.24xlarge', 'r8id.32xlarge', 'r8id.48xlarge', 'r8id.96xlarge', 'r8id.metal-48xl', 'r8id.metal-96xl', 'c8id.large', 'c8id.xlarge', 'c8id.2xlarge', 'c8id.4xlarge', 'c8id.8xlarge', 'c8id.12xlarge', 'c8id.16xlarge', 'c8id.24xlarge', 'c8id.32xlarge', 'c8id.48xlarge', 'c8id.96xlarge', 'c8id.metal-48xl', 'c8id.metal-96xl', 'm8id.large', 'm8id.xlarge', 'm8id.2xlarge', 'm8id.4xlarge', 'm8id.8xlarge', 'm8id.12xlarge', 'm8id.16xlarge', 'm8id.24xlarge', 'm8id.32xlarge', 'm8id.48xlarge', 'm8id.96xlarge', 'm8id.metal-48xl', 'm8id.metal-96xl', 'hpc8a.96xlarge', ], ], 'InstanceTypeHypervisor' => [ 'type' => 'string', 'enum' => [ 'nitro', 'xen', ], ], 'InstanceTypeInfo' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'CurrentGeneration' => [ 'shape' => 'CurrentGenerationFlag', 'locationName' => 'currentGeneration', ], 'FreeTierEligible' => [ 'shape' => 'FreeTierEligibleFlag', 'locationName' => 'freeTierEligible', ], 'SupportedUsageClasses' => [ 'shape' => 'UsageClassTypeList', 'locationName' => 'supportedUsageClasses', ], 'SupportedRootDeviceTypes' => [ 'shape' => 'RootDeviceTypeList', 'locationName' => 'supportedRootDeviceTypes', ], 'SupportedVirtualizationTypes' => [ 'shape' => 'VirtualizationTypeList', 'locationName' => 'supportedVirtualizationTypes', ], 'BareMetal' => [ 'shape' => 'BareMetalFlag', 'locationName' => 'bareMetal', ], 'Hypervisor' => [ 'shape' => 'InstanceTypeHypervisor', 'locationName' => 'hypervisor', ], 'ProcessorInfo' => [ 'shape' => 'ProcessorInfo', 'locationName' => 'processorInfo', ], 'VCpuInfo' => [ 'shape' => 'VCpuInfo', 'locationName' => 'vCpuInfo', ], 'MemoryInfo' => [ 'shape' => 'MemoryInfo', 'locationName' => 'memoryInfo', ], 'InstanceStorageSupported' => [ 'shape' => 'InstanceStorageFlag', 'locationName' => 'instanceStorageSupported', ], 'InstanceStorageInfo' => [ 'shape' => 'InstanceStorageInfo', 'locationName' => 'instanceStorageInfo', ], 'EbsInfo' => [ 'shape' => 'EbsInfo', 'locationName' => 'ebsInfo', ], 'NetworkInfo' => [ 'shape' => 'NetworkInfo', 'locationName' => 'networkInfo', ], 'GpuInfo' => [ 'shape' => 'GpuInfo', 'locationName' => 'gpuInfo', ], 'FpgaInfo' => [ 'shape' => 'FpgaInfo', 'locationName' => 'fpgaInfo', ], 'PlacementGroupInfo' => [ 'shape' => 'PlacementGroupInfo', 'locationName' => 'placementGroupInfo', ], 'InferenceAcceleratorInfo' => [ 'shape' => 'InferenceAcceleratorInfo', 'locationName' => 'inferenceAcceleratorInfo', ], 'HibernationSupported' => [ 'shape' => 'HibernationFlag', 'locationName' => 'hibernationSupported', ], 'BurstablePerformanceSupported' => [ 'shape' => 'BurstablePerformanceFlag', 'locationName' => 'burstablePerformanceSupported', ], 'DedicatedHostsSupported' => [ 'shape' => 'DedicatedHostFlag', 'locationName' => 'dedicatedHostsSupported', ], 'AutoRecoverySupported' => [ 'shape' => 'AutoRecoveryFlag', 'locationName' => 'autoRecoverySupported', ], 'SupportedBootModes' => [ 'shape' => 'BootModeTypeList', 'locationName' => 'supportedBootModes', ], 'NitroEnclavesSupport' => [ 'shape' => 'NitroEnclavesSupport', 'locationName' => 'nitroEnclavesSupport', ], 'NitroTpmSupport' => [ 'shape' => 'NitroTpmSupport', 'locationName' => 'nitroTpmSupport', ], 'NitroTpmInfo' => [ 'shape' => 'NitroTpmInfo', 'locationName' => 'nitroTpmInfo', ], 'MediaAcceleratorInfo' => [ 'shape' => 'MediaAcceleratorInfo', 'locationName' => 'mediaAcceleratorInfo', ], 'NeuronInfo' => [ 'shape' => 'NeuronInfo', 'locationName' => 'neuronInfo', ], 'PhcSupport' => [ 'shape' => 'PhcSupport', 'locationName' => 'phcSupport', ], 'RebootMigrationSupport' => [ 'shape' => 'RebootMigrationSupport', 'locationName' => 'rebootMigrationSupport', ], 'SupportedInRegion' => [ 'shape' => 'SupportedInRegion', 'locationName' => 'supportedInRegion', ], ], ], 'InstanceTypeInfoFromInstanceRequirements' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], ], ], 'InstanceTypeInfoFromInstanceRequirementsSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceTypeInfoFromInstanceRequirements', 'locationName' => 'item', ], ], 'InstanceTypeInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceTypeInfo', 'locationName' => 'item', ], ], 'InstanceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceType', ], ], 'InstanceTypeOffering' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'LocationType' => [ 'shape' => 'LocationType', 'locationName' => 'locationType', ], 'Location' => [ 'shape' => 'Location', 'locationName' => 'location', ], ], ], 'InstanceTypeOfferingsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceTypeOffering', 'locationName' => 'item', ], ], 'InstanceTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], 'max' => 1000, 'min' => 0, ], 'InstanceTypesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'InstanceUsage' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => 'String', 'locationName' => 'accountId', ], 'UsedInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'usedInstanceCount', ], ], ], 'InstanceUsageSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceUsage', 'locationName' => 'item', ], ], 'Integer' => [ 'type' => 'integer', ], 'IntegerWithConstraints' => [ 'type' => 'integer', 'min' => 0, ], 'IntegrateServices' => [ 'type' => 'structure', 'members' => [ 'AthenaIntegrations' => [ 'shape' => 'AthenaIntegrationsSet', 'locationName' => 'AthenaIntegration', ], ], ], 'InterfacePermissionType' => [ 'type' => 'string', 'enum' => [ 'INSTANCE-ATTACH', 'EIP-ASSOCIATE', ], ], 'InterfaceProtocolType' => [ 'type' => 'string', 'enum' => [ 'VLAN', 'GRE', ], ], 'InternetGateway' => [ 'type' => 'structure', 'members' => [ 'Attachments' => [ 'shape' => 'InternetGatewayAttachmentList', 'locationName' => 'attachmentSet', ], 'InternetGatewayId' => [ 'shape' => 'String', 'locationName' => 'internetGatewayId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'InternetGatewayAttachment' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'state', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'InternetGatewayAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InternetGatewayAttachment', 'locationName' => 'item', ], ], 'InternetGatewayBlockMode' => [ 'type' => 'string', 'enum' => [ 'off', 'block-bidirectional', 'block-ingress', ], ], 'InternetGatewayExclusionMode' => [ 'type' => 'string', 'enum' => [ 'allow-bidirectional', 'allow-egress', ], ], 'InternetGatewayId' => [ 'type' => 'string', ], 'InternetGatewayIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InternetGatewayId', 'locationName' => 'item', ], ], 'InternetGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InternetGateway', 'locationName' => 'item', ], ], 'InterruptibleCapacityAllocation' => [ 'type' => 'structure', 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'TargetInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'targetInstanceCount', ], 'Status' => [ 'shape' => 'InterruptibleCapacityReservationAllocationStatus', 'locationName' => 'status', ], 'InterruptibleCapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'interruptibleCapacityReservationId', ], 'InterruptionType' => [ 'shape' => 'InterruptionType', 'locationName' => 'interruptionType', ], ], ], 'InterruptibleCapacityReservationAllocationStatus' => [ 'type' => 'string', 'enum' => [ 'pending', 'active', 'updating', 'canceling', 'canceled', 'failed', ], ], 'InterruptionInfo' => [ 'type' => 'structure', 'members' => [ 'SourceCapacityReservationId' => [ 'shape' => 'String', 'locationName' => 'sourceCapacityReservationId', ], 'InterruptionType' => [ 'shape' => 'InterruptionType', 'locationName' => 'interruptionType', ], ], ], 'InterruptionType' => [ 'type' => 'string', 'enum' => [ 'adhoc', ], ], 'IpAddress' => [ 'type' => 'string', 'max' => 15, 'min' => 0, 'pattern' => '^([0-9]{1,3}.){3}[0-9]{1,3}$', ], 'IpAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpAddress', 'locationName' => 'item', ], ], 'IpAddressType' => [ 'type' => 'string', 'enum' => [ 'ipv4', 'dualstack', 'ipv6', ], ], 'IpList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'IpPermission' => [ 'type' => 'structure', 'members' => [ 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'UserIdGroupPairs' => [ 'shape' => 'UserIdGroupPairList', 'locationName' => 'groups', ], 'IpRanges' => [ 'shape' => 'IpRangeList', 'locationName' => 'ipRanges', ], 'Ipv6Ranges' => [ 'shape' => 'Ipv6RangeList', 'locationName' => 'ipv6Ranges', ], 'PrefixListIds' => [ 'shape' => 'PrefixListIdList', 'locationName' => 'prefixListIds', ], ], ], 'IpPermissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpPermission', 'locationName' => 'item', ], ], 'IpPrefixList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'IpRange' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'CidrIp' => [ 'shape' => 'String', 'locationName' => 'cidrIp', ], ], ], 'IpRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpRange', 'locationName' => 'item', ], ], 'IpRanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'IpSource' => [ 'type' => 'string', 'enum' => [ 'amazon', 'byoip', 'none', ], ], 'Ipam' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'IpamId' => [ 'shape' => 'IpamId', 'locationName' => 'ipamId', ], 'IpamArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamArn', ], 'IpamRegion' => [ 'shape' => 'String', 'locationName' => 'ipamRegion', ], 'PublicDefaultScopeId' => [ 'shape' => 'IpamScopeId', 'locationName' => 'publicDefaultScopeId', ], 'PrivateDefaultScopeId' => [ 'shape' => 'IpamScopeId', 'locationName' => 'privateDefaultScopeId', ], 'ScopeCount' => [ 'shape' => 'Integer', 'locationName' => 'scopeCount', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'OperatingRegions' => [ 'shape' => 'IpamOperatingRegionSet', 'locationName' => 'operatingRegionSet', ], 'State' => [ 'shape' => 'IpamState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'DefaultResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', 'locationName' => 'defaultResourceDiscoveryId', ], 'DefaultResourceDiscoveryAssociationId' => [ 'shape' => 'IpamResourceDiscoveryAssociationId', 'locationName' => 'defaultResourceDiscoveryAssociationId', ], 'ResourceDiscoveryAssociationCount' => [ 'shape' => 'Integer', 'locationName' => 'resourceDiscoveryAssociationCount', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], 'Tier' => [ 'shape' => 'IpamTier', 'locationName' => 'tier', ], 'EnablePrivateGua' => [ 'shape' => 'Boolean', 'locationName' => 'enablePrivateGua', ], 'MeteredAccount' => [ 'shape' => 'IpamMeteredAccount', 'locationName' => 'meteredAccount', ], ], ], 'IpamAddressHistoryMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'IpamAddressHistoryRecord' => [ 'type' => 'structure', 'members' => [ 'ResourceOwnerId' => [ 'shape' => 'String', 'locationName' => 'resourceOwnerId', ], 'ResourceRegion' => [ 'shape' => 'String', 'locationName' => 'resourceRegion', ], 'ResourceType' => [ 'shape' => 'IpamAddressHistoryResourceType', 'locationName' => 'resourceType', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceCidr' => [ 'shape' => 'String', 'locationName' => 'resourceCidr', ], 'ResourceName' => [ 'shape' => 'String', 'locationName' => 'resourceName', ], 'ResourceComplianceStatus' => [ 'shape' => 'IpamComplianceStatus', 'locationName' => 'resourceComplianceStatus', ], 'ResourceOverlapStatus' => [ 'shape' => 'IpamOverlapStatus', 'locationName' => 'resourceOverlapStatus', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'SampledStartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'sampledStartTime', ], 'SampledEndTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'sampledEndTime', ], ], ], 'IpamAddressHistoryRecordSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamAddressHistoryRecord', 'locationName' => 'item', ], ], 'IpamAddressHistoryResourceType' => [ 'type' => 'string', 'enum' => [ 'eip', 'vpc', 'subnet', 'network-interface', 'instance', ], ], 'IpamAssociatedResourceDiscoveryStatus' => [ 'type' => 'string', 'enum' => [ 'active', 'not-found', ], ], 'IpamCidrAuthorizationContext' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', ], 'Signature' => [ 'shape' => 'String', ], ], ], 'IpamComplianceStatus' => [ 'type' => 'string', 'enum' => [ 'compliant', 'noncompliant', 'unmanaged', 'ignored', ], ], 'IpamDiscoveredAccount' => [ 'type' => 'structure', 'members' => [ 'AccountId' => [ 'shape' => 'String', 'locationName' => 'accountId', ], 'DiscoveryRegion' => [ 'shape' => 'String', 'locationName' => 'discoveryRegion', ], 'FailureReason' => [ 'shape' => 'IpamDiscoveryFailureReason', 'locationName' => 'failureReason', ], 'LastAttemptedDiscoveryTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastAttemptedDiscoveryTime', ], 'LastSuccessfulDiscoveryTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastSuccessfulDiscoveryTime', ], 'OrganizationalUnitId' => [ 'shape' => 'String', 'locationName' => 'organizationalUnitId', ], ], ], 'IpamDiscoveredAccountSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamDiscoveredAccount', 'locationName' => 'item', ], ], 'IpamDiscoveredPublicAddress' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', 'locationName' => 'ipamResourceDiscoveryId', ], 'AddressRegion' => [ 'shape' => 'String', 'locationName' => 'addressRegion', ], 'Address' => [ 'shape' => 'String', 'locationName' => 'address', ], 'AddressOwnerId' => [ 'shape' => 'String', 'locationName' => 'addressOwnerId', ], 'AddressAllocationId' => [ 'shape' => 'String', 'locationName' => 'addressAllocationId', ], 'AssociationStatus' => [ 'shape' => 'IpamPublicAddressAssociationStatus', 'locationName' => 'associationStatus', ], 'AddressType' => [ 'shape' => 'IpamPublicAddressType', 'locationName' => 'addressType', ], 'Service' => [ 'shape' => 'IpamPublicAddressAwsService', 'locationName' => 'service', ], 'ServiceResource' => [ 'shape' => 'String', 'locationName' => 'serviceResource', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'PublicIpv4PoolId' => [ 'shape' => 'String', 'locationName' => 'publicIpv4PoolId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'NetworkInterfaceDescription' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceDescription', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Tags' => [ 'shape' => 'IpamPublicAddressTags', 'locationName' => 'tags', ], 'NetworkBorderGroup' => [ 'shape' => 'String', 'locationName' => 'networkBorderGroup', ], 'SecurityGroups' => [ 'shape' => 'IpamPublicAddressSecurityGroupList', 'locationName' => 'securityGroupSet', ], 'SampleTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'sampleTime', ], ], ], 'IpamDiscoveredPublicAddressSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamDiscoveredPublicAddress', 'locationName' => 'item', ], ], 'IpamDiscoveredResourceCidr' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', 'locationName' => 'ipamResourceDiscoveryId', ], 'ResourceRegion' => [ 'shape' => 'String', 'locationName' => 'resourceRegion', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceOwnerId' => [ 'shape' => 'String', 'locationName' => 'resourceOwnerId', ], 'ResourceCidr' => [ 'shape' => 'String', 'locationName' => 'resourceCidr', ], 'IpSource' => [ 'shape' => 'IpamResourceCidrIpSource', 'locationName' => 'ipSource', ], 'ResourceType' => [ 'shape' => 'IpamResourceType', 'locationName' => 'resourceType', ], 'ResourceTags' => [ 'shape' => 'IpamResourceTagList', 'locationName' => 'resourceTagSet', ], 'IpUsage' => [ 'shape' => 'BoxedDouble', 'locationName' => 'ipUsage', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'NetworkInterfaceAttachmentStatus' => [ 'shape' => 'IpamNetworkInterfaceAttachmentStatus', 'locationName' => 'networkInterfaceAttachmentStatus', ], 'SampleTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'sampleTime', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], ], ], 'IpamDiscoveredResourceCidrSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamDiscoveredResourceCidr', 'locationName' => 'item', ], ], 'IpamDiscoveryFailureCode' => [ 'type' => 'string', 'enum' => [ 'assume-role-failure', 'throttling-failure', 'unauthorized-failure', ], ], 'IpamDiscoveryFailureReason' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'IpamDiscoveryFailureCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'IpamExternalResourceVerificationToken' => [ 'type' => 'structure', 'members' => [ 'IpamExternalResourceVerificationTokenId' => [ 'shape' => 'IpamExternalResourceVerificationTokenId', 'locationName' => 'ipamExternalResourceVerificationTokenId', ], 'IpamExternalResourceVerificationTokenArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamExternalResourceVerificationTokenArn', ], 'IpamId' => [ 'shape' => 'IpamId', 'locationName' => 'ipamId', ], 'IpamArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamArn', ], 'IpamRegion' => [ 'shape' => 'String', 'locationName' => 'ipamRegion', ], 'TokenValue' => [ 'shape' => 'String', 'locationName' => 'tokenValue', ], 'TokenName' => [ 'shape' => 'String', 'locationName' => 'tokenName', ], 'NotAfter' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'notAfter', ], 'Status' => [ 'shape' => 'TokenState', 'locationName' => 'status', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'State' => [ 'shape' => 'IpamExternalResourceVerificationTokenState', 'locationName' => 'state', ], ], ], 'IpamExternalResourceVerificationTokenId' => [ 'type' => 'string', ], 'IpamExternalResourceVerificationTokenSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamExternalResourceVerificationToken', 'locationName' => 'item', ], ], 'IpamExternalResourceVerificationTokenState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', ], ], 'IpamId' => [ 'type' => 'string', ], 'IpamManagementState' => [ 'type' => 'string', 'enum' => [ 'managed', 'unmanaged', 'ignored', ], ], 'IpamMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'IpamMeteredAccount' => [ 'type' => 'string', 'enum' => [ 'ipam-owner', 'resource-owner', ], ], 'IpamNetmaskLength' => [ 'type' => 'integer', 'max' => 128, 'min' => 0, ], 'IpamNetworkInterfaceAttachmentStatus' => [ 'type' => 'string', 'enum' => [ 'available', 'in-use', ], ], 'IpamOperatingRegion' => [ 'type' => 'structure', 'members' => [ 'RegionName' => [ 'shape' => 'String', 'locationName' => 'regionName', ], ], ], 'IpamOperatingRegionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamOperatingRegion', 'locationName' => 'item', ], ], 'IpamOrganizationalUnitExclusion' => [ 'type' => 'structure', 'members' => [ 'OrganizationsEntityPath' => [ 'shape' => 'String', 'locationName' => 'organizationsEntityPath', ], ], ], 'IpamOrganizationalUnitExclusionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamOrganizationalUnitExclusion', 'locationName' => 'item', ], ], 'IpamOverlapStatus' => [ 'type' => 'string', 'enum' => [ 'overlapping', 'nonoverlapping', 'ignored', ], ], 'IpamPolicy' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', 'locationName' => 'ipamPolicyId', ], 'IpamPolicyArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamPolicyArn', ], 'IpamPolicyRegion' => [ 'shape' => 'String', 'locationName' => 'ipamPolicyRegion', ], 'State' => [ 'shape' => 'IpamPolicyState', 'locationName' => 'state', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'IpamId' => [ 'shape' => 'IpamId', 'locationName' => 'ipamId', ], ], ], 'IpamPolicyAllocationRule' => [ 'type' => 'structure', 'members' => [ 'SourceIpamPoolId' => [ 'shape' => 'IpamPoolId', 'locationName' => 'sourceIpamPoolId', ], ], ], 'IpamPolicyAllocationRuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPolicyAllocationRule', 'locationName' => 'item', ], ], 'IpamPolicyAllocationRuleListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPolicyAllocationRuleRequest', 'locationName' => 'item', ], ], 'IpamPolicyAllocationRuleRequest' => [ 'type' => 'structure', 'members' => [ 'SourceIpamPoolId' => [ 'shape' => 'IpamPoolId', ], ], ], 'IpamPolicyDocument' => [ 'type' => 'structure', 'members' => [ 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', 'locationName' => 'ipamPolicyId', ], 'Locale' => [ 'shape' => 'String', 'locationName' => 'locale', ], 'ResourceType' => [ 'shape' => 'IpamPolicyResourceType', 'locationName' => 'resourceType', ], 'AllocationRules' => [ 'shape' => 'IpamPolicyAllocationRuleList', 'locationName' => 'allocationRuleSet', ], ], ], 'IpamPolicyDocumentSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPolicyDocument', 'locationName' => 'item', ], ], 'IpamPolicyId' => [ 'type' => 'string', ], 'IpamPolicyManagedBy' => [ 'type' => 'string', 'enum' => [ 'account', 'delegated-administrator-for-ipam', ], ], 'IpamPolicyOrganizationTarget' => [ 'type' => 'structure', 'members' => [ 'OrganizationTargetId' => [ 'shape' => 'String', 'locationName' => 'organizationTargetId', ], ], ], 'IpamPolicyOrganizationTargetSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPolicyOrganizationTarget', 'locationName' => 'item', ], ], 'IpamPolicyResourceType' => [ 'type' => 'string', 'enum' => [ 'alb', 'eip', 'rds', 'rnat', ], ], 'IpamPolicySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPolicy', 'locationName' => 'item', ], ], 'IpamPolicyState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'modify-in-progress', 'modify-complete', 'modify-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', 'isolate-in-progress', 'isolate-complete', 'restore-in-progress', ], ], 'IpamPool' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', 'locationName' => 'ipamPoolId', ], 'SourceIpamPoolId' => [ 'shape' => 'IpamPoolId', 'locationName' => 'sourceIpamPoolId', ], 'IpamPoolArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamPoolArn', ], 'IpamScopeArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamScopeArn', ], 'IpamScopeType' => [ 'shape' => 'IpamScopeType', 'locationName' => 'ipamScopeType', ], 'IpamArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamArn', ], 'IpamRegion' => [ 'shape' => 'String', 'locationName' => 'ipamRegion', ], 'Locale' => [ 'shape' => 'String', 'locationName' => 'locale', ], 'PoolDepth' => [ 'shape' => 'Integer', 'locationName' => 'poolDepth', ], 'State' => [ 'shape' => 'IpamPoolState', 'locationName' => 'state', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'AutoImport' => [ 'shape' => 'Boolean', 'locationName' => 'autoImport', ], 'PubliclyAdvertisable' => [ 'shape' => 'Boolean', 'locationName' => 'publiclyAdvertisable', ], 'AddressFamily' => [ 'shape' => 'AddressFamily', 'locationName' => 'addressFamily', ], 'AllocationMinNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', 'locationName' => 'allocationMinNetmaskLength', ], 'AllocationMaxNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', 'locationName' => 'allocationMaxNetmaskLength', ], 'AllocationDefaultNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', 'locationName' => 'allocationDefaultNetmaskLength', ], 'AllocationResourceTags' => [ 'shape' => 'IpamResourceTagList', 'locationName' => 'allocationResourceTagSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'AwsService' => [ 'shape' => 'IpamPoolAwsService', 'locationName' => 'awsService', ], 'PublicIpSource' => [ 'shape' => 'IpamPoolPublicIpSource', 'locationName' => 'publicIpSource', ], 'SourceResource' => [ 'shape' => 'IpamPoolSourceResource', 'locationName' => 'sourceResource', ], ], ], 'IpamPoolAllocation' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'IpamPoolAllocationId' => [ 'shape' => 'IpamPoolAllocationId', 'locationName' => 'ipamPoolAllocationId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'IpamPoolAllocationResourceType', 'locationName' => 'resourceType', ], 'ResourceRegion' => [ 'shape' => 'String', 'locationName' => 'resourceRegion', ], 'ResourceOwner' => [ 'shape' => 'String', 'locationName' => 'resourceOwner', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'IpamPoolAllocationAllowedCidrs' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'IpamPoolAllocationDisallowedCidrs' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'IpamPoolAllocationId' => [ 'type' => 'string', ], 'IpamPoolAllocationResourceType' => [ 'type' => 'string', 'enum' => [ 'ipam-pool', 'vpc', 'ec2-public-ipv4-pool', 'custom', 'subnet', 'eip', 'anycast-ip-list', ], ], 'IpamPoolAllocationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPoolAllocation', 'locationName' => 'item', ], ], 'IpamPoolAwsService' => [ 'type' => 'string', 'enum' => [ 'ec2', 'global-services', ], ], 'IpamPoolCidr' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'State' => [ 'shape' => 'IpamPoolCidrState', 'locationName' => 'state', ], 'FailureReason' => [ 'shape' => 'IpamPoolCidrFailureReason', 'locationName' => 'failureReason', ], 'IpamPoolCidrId' => [ 'shape' => 'IpamPoolCidrId', 'locationName' => 'ipamPoolCidrId', ], 'NetmaskLength' => [ 'shape' => 'Integer', 'locationName' => 'netmaskLength', ], ], ], 'IpamPoolCidrFailureCode' => [ 'type' => 'string', 'enum' => [ 'cidr-not-available', 'limit-exceeded', ], ], 'IpamPoolCidrFailureReason' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'IpamPoolCidrFailureCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'IpamPoolCidrId' => [ 'type' => 'string', ], 'IpamPoolCidrSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPoolCidr', 'locationName' => 'item', ], ], 'IpamPoolCidrState' => [ 'type' => 'string', 'enum' => [ 'pending-provision', 'provisioned', 'failed-provision', 'pending-deprovision', 'deprovisioned', 'failed-deprovision', 'pending-import', 'failed-import', ], ], 'IpamPoolId' => [ 'type' => 'string', ], 'IpamPoolPublicIpSource' => [ 'type' => 'string', 'enum' => [ 'amazon', 'byoip', ], ], 'IpamPoolSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPool', 'locationName' => 'item', ], ], 'IpamPoolSourceResource' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'IpamPoolSourceResourceType', 'locationName' => 'resourceType', ], 'ResourceRegion' => [ 'shape' => 'String', 'locationName' => 'resourceRegion', ], 'ResourceOwner' => [ 'shape' => 'String', 'locationName' => 'resourceOwner', ], ], ], 'IpamPoolSourceResourceRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'IpamPoolSourceResourceType', ], 'ResourceRegion' => [ 'shape' => 'String', ], 'ResourceOwner' => [ 'shape' => 'String', ], ], ], 'IpamPoolSourceResourceType' => [ 'type' => 'string', 'enum' => [ 'vpc', ], ], 'IpamPoolState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'modify-in-progress', 'modify-complete', 'modify-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', 'isolate-in-progress', 'isolate-complete', 'restore-in-progress', ], ], 'IpamPrefixListResolver' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', 'locationName' => 'ipamPrefixListResolverId', ], 'IpamPrefixListResolverArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamPrefixListResolverArn', ], 'IpamArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamArn', ], 'IpamRegion' => [ 'shape' => 'String', 'locationName' => 'ipamRegion', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'AddressFamily' => [ 'shape' => 'AddressFamily', 'locationName' => 'addressFamily', ], 'State' => [ 'shape' => 'IpamPrefixListResolverState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'LastVersionCreationStatus' => [ 'shape' => 'IpamPrefixListResolverVersionCreationStatus', 'locationName' => 'lastVersionCreationStatus', ], 'LastVersionCreationStatusMessage' => [ 'shape' => 'String', 'locationName' => 'lastVersionCreationStatusMessage', ], ], ], 'IpamPrefixListResolverId' => [ 'type' => 'string', ], 'IpamPrefixListResolverRule' => [ 'type' => 'structure', 'members' => [ 'RuleType' => [ 'shape' => 'IpamPrefixListResolverRuleType', 'locationName' => 'ruleType', ], 'StaticCidr' => [ 'shape' => 'String', 'locationName' => 'staticCidr', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', 'locationName' => 'ipamScopeId', ], 'ResourceType' => [ 'shape' => 'IpamResourceType', 'locationName' => 'resourceType', ], 'Conditions' => [ 'shape' => 'IpamPrefixListResolverRuleConditionSet', 'locationName' => 'conditionSet', ], ], ], 'IpamPrefixListResolverRuleCondition' => [ 'type' => 'structure', 'members' => [ 'Operation' => [ 'shape' => 'IpamPrefixListResolverRuleConditionOperation', 'locationName' => 'operation', ], 'IpamPoolId' => [ 'shape' => 'String', 'locationName' => 'ipamPoolId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceOwner' => [ 'shape' => 'String', 'locationName' => 'resourceOwner', ], 'ResourceRegion' => [ 'shape' => 'String', 'locationName' => 'resourceRegion', ], 'ResourceTag' => [ 'shape' => 'IpamResourceTag', 'locationName' => 'resourceTag', ], 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], ], ], 'IpamPrefixListResolverRuleConditionOperation' => [ 'type' => 'string', 'enum' => [ 'equals', 'not-equals', 'subnet-of', ], ], 'IpamPrefixListResolverRuleConditionRequest' => [ 'type' => 'structure', 'required' => [ 'Operation', ], 'members' => [ 'Operation' => [ 'shape' => 'IpamPrefixListResolverRuleConditionOperation', ], 'IpamPoolId' => [ 'shape' => 'String', ], 'ResourceId' => [ 'shape' => 'String', ], 'ResourceOwner' => [ 'shape' => 'String', ], 'ResourceRegion' => [ 'shape' => 'String', ], 'ResourceTag' => [ 'shape' => 'RequestIpamResourceTag', ], 'Cidr' => [ 'shape' => 'String', ], ], ], 'IpamPrefixListResolverRuleConditionRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPrefixListResolverRuleConditionRequest', 'locationName' => 'Condition', ], ], 'IpamPrefixListResolverRuleConditionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPrefixListResolverRuleCondition', 'locationName' => 'item', ], ], 'IpamPrefixListResolverRuleRequest' => [ 'type' => 'structure', 'required' => [ 'RuleType', ], 'members' => [ 'RuleType' => [ 'shape' => 'IpamPrefixListResolverRuleType', ], 'StaticCidr' => [ 'shape' => 'String', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', ], 'ResourceType' => [ 'shape' => 'IpamResourceType', ], 'Conditions' => [ 'shape' => 'IpamPrefixListResolverRuleConditionRequestSet', 'locationName' => 'Condition', ], ], ], 'IpamPrefixListResolverRuleRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPrefixListResolverRuleRequest', 'locationName' => 'Rule', ], ], 'IpamPrefixListResolverRuleSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPrefixListResolverRule', 'locationName' => 'item', ], ], 'IpamPrefixListResolverRuleType' => [ 'type' => 'string', 'enum' => [ 'static-cidr', 'ipam-resource-cidr', 'ipam-pool-cidr', ], ], 'IpamPrefixListResolverSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPrefixListResolver', 'locationName' => 'item', ], ], 'IpamPrefixListResolverState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'modify-in-progress', 'modify-complete', 'modify-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', 'isolate-in-progress', 'isolate-complete', 'restore-in-progress', ], ], 'IpamPrefixListResolverTarget' => [ 'type' => 'structure', 'members' => [ 'IpamPrefixListResolverTargetId' => [ 'shape' => 'IpamPrefixListResolverTargetId', 'locationName' => 'ipamPrefixListResolverTargetId', ], 'IpamPrefixListResolverTargetArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamPrefixListResolverTargetArn', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', 'locationName' => 'ipamPrefixListResolverId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', 'locationName' => 'prefixListId', ], 'PrefixListRegion' => [ 'shape' => 'String', 'locationName' => 'prefixListRegion', ], 'DesiredVersion' => [ 'shape' => 'BoxedLong', 'locationName' => 'desiredVersion', ], 'LastSyncedVersion' => [ 'shape' => 'BoxedLong', 'locationName' => 'lastSyncedVersion', ], 'TrackLatestVersion' => [ 'shape' => 'Boolean', 'locationName' => 'trackLatestVersion', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], 'State' => [ 'shape' => 'IpamPrefixListResolverTargetState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'IpamPrefixListResolverTargetId' => [ 'type' => 'string', ], 'IpamPrefixListResolverTargetSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPrefixListResolverTarget', 'locationName' => 'item', ], ], 'IpamPrefixListResolverTargetState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'modify-in-progress', 'modify-complete', 'modify-failed', 'sync-in-progress', 'sync-complete', 'sync-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', 'isolate-in-progress', 'isolate-complete', 'restore-in-progress', ], ], 'IpamPrefixListResolverVersion' => [ 'type' => 'structure', 'members' => [ 'Version' => [ 'shape' => 'Long', 'locationName' => 'version', ], ], ], 'IpamPrefixListResolverVersionCreationStatus' => [ 'type' => 'string', 'enum' => [ 'pending', 'success', 'failure', ], ], 'IpamPrefixListResolverVersionEntry' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], ], ], 'IpamPrefixListResolverVersionEntrySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPrefixListResolverVersionEntry', 'locationName' => 'item', ], ], 'IpamPrefixListResolverVersionNumberSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Long', 'locationName' => 'item', ], ], 'IpamPrefixListResolverVersionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPrefixListResolverVersion', 'locationName' => 'item', ], ], 'IpamPublicAddressAssociationStatus' => [ 'type' => 'string', 'enum' => [ 'associated', 'disassociated', ], ], 'IpamPublicAddressAwsService' => [ 'type' => 'string', 'enum' => [ 'nat-gateway', 'database-migration-service', 'redshift', 'elastic-container-service', 'relational-database-service', 'site-to-site-vpn', 'load-balancer', 'global-accelerator', 'cloudfront', 'other', ], ], 'IpamPublicAddressSecurityGroup' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], ], ], 'IpamPublicAddressSecurityGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPublicAddressSecurityGroup', 'locationName' => 'item', ], ], 'IpamPublicAddressTag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'IpamPublicAddressTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamPublicAddressTag', 'locationName' => 'item', ], ], 'IpamPublicAddressTags' => [ 'type' => 'structure', 'members' => [ 'EipTags' => [ 'shape' => 'IpamPublicAddressTagList', 'locationName' => 'eipTagSet', ], ], ], 'IpamPublicAddressType' => [ 'type' => 'string', 'enum' => [ 'service-managed-ip', 'service-managed-byoip', 'amazon-owned-eip', 'amazon-owned-contig', 'byoip', 'ec2-public-ip', 'anycast-ip-list-ip', ], ], 'IpamResourceCidr' => [ 'type' => 'structure', 'members' => [ 'IpamId' => [ 'shape' => 'IpamId', 'locationName' => 'ipamId', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', 'locationName' => 'ipamScopeId', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', 'locationName' => 'ipamPoolId', ], 'ResourceRegion' => [ 'shape' => 'String', 'locationName' => 'resourceRegion', ], 'ResourceOwnerId' => [ 'shape' => 'String', 'locationName' => 'resourceOwnerId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceName' => [ 'shape' => 'String', 'locationName' => 'resourceName', ], 'ResourceCidr' => [ 'shape' => 'String', 'locationName' => 'resourceCidr', ], 'ResourceType' => [ 'shape' => 'IpamResourceType', 'locationName' => 'resourceType', ], 'ResourceTags' => [ 'shape' => 'IpamResourceTagList', 'locationName' => 'resourceTagSet', ], 'IpUsage' => [ 'shape' => 'BoxedDouble', 'locationName' => 'ipUsage', ], 'ComplianceStatus' => [ 'shape' => 'IpamComplianceStatus', 'locationName' => 'complianceStatus', ], 'ManagementState' => [ 'shape' => 'IpamManagementState', 'locationName' => 'managementState', ], 'OverlapStatus' => [ 'shape' => 'IpamOverlapStatus', 'locationName' => 'overlapStatus', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], ], ], 'IpamResourceCidrIpSource' => [ 'type' => 'string', 'enum' => [ 'amazon', 'byoip', 'none', ], ], 'IpamResourceCidrSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamResourceCidr', 'locationName' => 'item', ], ], 'IpamResourceDiscovery' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', 'locationName' => 'ipamResourceDiscoveryId', ], 'IpamResourceDiscoveryArn' => [ 'shape' => 'String', 'locationName' => 'ipamResourceDiscoveryArn', ], 'IpamResourceDiscoveryRegion' => [ 'shape' => 'String', 'locationName' => 'ipamResourceDiscoveryRegion', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'OperatingRegions' => [ 'shape' => 'IpamOperatingRegionSet', 'locationName' => 'operatingRegionSet', ], 'IsDefault' => [ 'shape' => 'Boolean', 'locationName' => 'isDefault', ], 'State' => [ 'shape' => 'IpamResourceDiscoveryState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'OrganizationalUnitExclusions' => [ 'shape' => 'IpamOrganizationalUnitExclusionSet', 'locationName' => 'organizationalUnitExclusionSet', ], ], ], 'IpamResourceDiscoveryAssociation' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'IpamResourceDiscoveryAssociationId' => [ 'shape' => 'IpamResourceDiscoveryAssociationId', 'locationName' => 'ipamResourceDiscoveryAssociationId', ], 'IpamResourceDiscoveryAssociationArn' => [ 'shape' => 'String', 'locationName' => 'ipamResourceDiscoveryAssociationArn', ], 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', 'locationName' => 'ipamResourceDiscoveryId', ], 'IpamId' => [ 'shape' => 'IpamId', 'locationName' => 'ipamId', ], 'IpamArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamArn', ], 'IpamRegion' => [ 'shape' => 'String', 'locationName' => 'ipamRegion', ], 'IsDefault' => [ 'shape' => 'Boolean', 'locationName' => 'isDefault', ], 'ResourceDiscoveryStatus' => [ 'shape' => 'IpamAssociatedResourceDiscoveryStatus', 'locationName' => 'resourceDiscoveryStatus', ], 'State' => [ 'shape' => 'IpamResourceDiscoveryAssociationState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'IpamResourceDiscoveryAssociationId' => [ 'type' => 'string', ], 'IpamResourceDiscoveryAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamResourceDiscoveryAssociation', 'locationName' => 'item', ], ], 'IpamResourceDiscoveryAssociationState' => [ 'type' => 'string', 'enum' => [ 'associate-in-progress', 'associate-complete', 'associate-failed', 'disassociate-in-progress', 'disassociate-complete', 'disassociate-failed', 'isolate-in-progress', 'isolate-complete', 'restore-in-progress', ], ], 'IpamResourceDiscoveryId' => [ 'type' => 'string', ], 'IpamResourceDiscoverySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamResourceDiscovery', 'locationName' => 'item', ], ], 'IpamResourceDiscoveryState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'modify-in-progress', 'modify-complete', 'modify-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', 'isolate-in-progress', 'isolate-complete', 'restore-in-progress', ], ], 'IpamResourceTag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'IpamResourceTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamResourceTag', 'locationName' => 'item', ], ], 'IpamResourceType' => [ 'type' => 'string', 'enum' => [ 'vpc', 'subnet', 'eip', 'public-ipv4-pool', 'ipv6-pool', 'eni', 'anycast-ip-list', ], ], 'IpamScope' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', 'locationName' => 'ipamScopeId', ], 'IpamScopeArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamScopeArn', ], 'IpamArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ipamArn', ], 'IpamRegion' => [ 'shape' => 'String', 'locationName' => 'ipamRegion', ], 'IpamScopeType' => [ 'shape' => 'IpamScopeType', 'locationName' => 'ipamScopeType', ], 'IsDefault' => [ 'shape' => 'Boolean', 'locationName' => 'isDefault', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'PoolCount' => [ 'shape' => 'Integer', 'locationName' => 'poolCount', ], 'State' => [ 'shape' => 'IpamScopeState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'ExternalAuthorityConfiguration' => [ 'shape' => 'IpamScopeExternalAuthorityConfiguration', 'locationName' => 'externalAuthorityConfiguration', ], ], ], 'IpamScopeExternalAuthorityConfiguration' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'IpamScopeExternalAuthorityType', 'locationName' => 'type', ], 'ExternalResourceIdentifier' => [ 'shape' => 'String', 'locationName' => 'externalResourceIdentifier', ], ], ], 'IpamScopeExternalAuthorityType' => [ 'type' => 'string', 'enum' => [ 'infoblox', ], ], 'IpamScopeId' => [ 'type' => 'string', ], 'IpamScopeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'IpamScope', 'locationName' => 'item', ], ], 'IpamScopeState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'modify-in-progress', 'modify-complete', 'modify-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', 'isolate-in-progress', 'isolate-complete', 'restore-in-progress', ], ], 'IpamScopeType' => [ 'type' => 'string', 'enum' => [ 'public', 'private', ], ], 'IpamSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipam', 'locationName' => 'item', ], ], 'IpamState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'modify-in-progress', 'modify-complete', 'modify-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', 'isolate-in-progress', 'isolate-complete', 'restore-in-progress', ], ], 'IpamTier' => [ 'type' => 'string', 'enum' => [ 'free', 'advanced', ], ], 'Ipv4AddressesPerSecondaryInterface' => [ 'type' => 'integer', ], 'Ipv4PoolCoipId' => [ 'type' => 'string', ], 'Ipv4PoolEc2Id' => [ 'type' => 'string', ], 'Ipv4PrefixList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv4PrefixSpecificationRequest', 'locationName' => 'item', ], ], 'Ipv4PrefixListResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv4PrefixSpecificationResponse', 'locationName' => 'item', ], ], 'Ipv4PrefixSpecification' => [ 'type' => 'structure', 'members' => [ 'Ipv4Prefix' => [ 'shape' => 'String', 'locationName' => 'ipv4Prefix', ], ], ], 'Ipv4PrefixSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'Ipv4Prefix' => [ 'shape' => 'String', ], ], ], 'Ipv4PrefixSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'Ipv4Prefix' => [ 'shape' => 'String', 'locationName' => 'ipv4Prefix', ], ], ], 'Ipv4PrefixesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv4PrefixSpecification', 'locationName' => 'item', ], ], 'Ipv6Address' => [ 'type' => 'string', ], 'Ipv6AddressAttribute' => [ 'type' => 'string', 'enum' => [ 'public', 'private', ], ], 'Ipv6AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'Ipv6CidrAssociation' => [ 'type' => 'structure', 'members' => [ 'Ipv6Cidr' => [ 'shape' => 'String', 'locationName' => 'ipv6Cidr', ], 'AssociatedResource' => [ 'shape' => 'String', 'locationName' => 'associatedResource', ], ], ], 'Ipv6CidrAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6CidrAssociation', 'locationName' => 'item', ], ], 'Ipv6CidrBlock' => [ 'type' => 'structure', 'members' => [ 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], ], ], 'Ipv6CidrBlockSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6CidrBlock', 'locationName' => 'item', ], ], 'Ipv6Flag' => [ 'type' => 'boolean', ], 'Ipv6Pool' => [ 'type' => 'structure', 'members' => [ 'PoolId' => [ 'shape' => 'String', 'locationName' => 'poolId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'PoolCidrBlocks' => [ 'shape' => 'PoolCidrBlocksSet', 'locationName' => 'poolCidrBlockSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'Ipv6PoolEc2Id' => [ 'type' => 'string', ], 'Ipv6PoolIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6PoolEc2Id', 'locationName' => 'item', ], ], 'Ipv6PoolMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'Ipv6PoolSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6Pool', 'locationName' => 'item', ], ], 'Ipv6PrefixList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6PrefixSpecificationRequest', 'locationName' => 'item', ], ], 'Ipv6PrefixListResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6PrefixSpecificationResponse', 'locationName' => 'item', ], ], 'Ipv6PrefixSpecification' => [ 'type' => 'structure', 'members' => [ 'Ipv6Prefix' => [ 'shape' => 'String', 'locationName' => 'ipv6Prefix', ], ], ], 'Ipv6PrefixSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'Ipv6Prefix' => [ 'shape' => 'String', ], ], ], 'Ipv6PrefixSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'Ipv6Prefix' => [ 'shape' => 'String', 'locationName' => 'ipv6Prefix', ], ], ], 'Ipv6PrefixesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6PrefixSpecification', 'locationName' => 'item', ], ], 'Ipv6Range' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'CidrIpv6' => [ 'shape' => 'String', 'locationName' => 'cidrIpv6', ], ], ], 'Ipv6RangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv6Range', 'locationName' => 'item', ], ], 'Ipv6SupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'KernelId' => [ 'type' => 'string', ], 'KeyFormat' => [ 'type' => 'string', 'enum' => [ 'pem', 'ppk', ], ], 'KeyNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyPairName', 'locationName' => 'KeyName', ], ], 'KeyPair' => [ 'type' => 'structure', 'members' => [ 'KeyPairId' => [ 'shape' => 'String', 'locationName' => 'keyPairId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'KeyFingerprint' => [ 'shape' => 'String', 'locationName' => 'keyFingerprint', ], 'KeyMaterial' => [ 'shape' => 'SensitiveUserData', 'locationName' => 'keyMaterial', ], ], ], 'KeyPairId' => [ 'type' => 'string', ], 'KeyPairIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyPairId', 'locationName' => 'KeyPairId', ], ], 'KeyPairInfo' => [ 'type' => 'structure', 'members' => [ 'KeyPairId' => [ 'shape' => 'String', 'locationName' => 'keyPairId', ], 'KeyType' => [ 'shape' => 'KeyType', 'locationName' => 'keyType', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'PublicKey' => [ 'shape' => 'String', 'locationName' => 'publicKey', ], 'CreateTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createTime', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'KeyFingerprint' => [ 'shape' => 'String', 'locationName' => 'keyFingerprint', ], ], ], 'KeyPairList' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyPairInfo', 'locationName' => 'item', ], ], 'KeyPairName' => [ 'type' => 'string', ], 'KeyPairNameWithResolver' => [ 'type' => 'string', ], 'KeyType' => [ 'type' => 'string', 'enum' => [ 'rsa', 'ed25519', ], ], 'KmsKeyArn' => [ 'type' => 'string', ], 'KmsKeyId' => [ 'type' => 'string', ], 'LastError' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], ], ], 'LaunchPermission' => [ 'type' => 'structure', 'members' => [ 'OrganizationArn' => [ 'shape' => 'String', 'locationName' => 'organizationArn', ], 'OrganizationalUnitArn' => [ 'shape' => 'String', 'locationName' => 'organizationalUnitArn', ], 'UserId' => [ 'shape' => 'String', 'locationName' => 'userId', ], 'Group' => [ 'shape' => 'PermissionGroup', 'locationName' => 'group', ], ], ], 'LaunchPermissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchPermission', 'locationName' => 'item', ], ], 'LaunchPermissionModifications' => [ 'type' => 'structure', 'members' => [ 'Add' => [ 'shape' => 'LaunchPermissionList', ], 'Remove' => [ 'shape' => 'LaunchPermissionList', ], ], ], 'LaunchSpecification' => [ 'type' => 'structure', 'members' => [ 'UserData' => [ 'shape' => 'SensitiveUserData', 'locationName' => 'userData', ], 'AddressingType' => [ 'shape' => 'String', 'locationName' => 'addressingType', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceSpecificationList', 'locationName' => 'networkInterfaceSet', ], 'Placement' => [ 'shape' => 'SpotPlacement', 'locationName' => 'placement', ], 'RamdiskId' => [ 'shape' => 'String', 'locationName' => 'ramdiskId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'SecurityGroups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'Monitoring' => [ 'shape' => 'RunInstancesMonitoringEnabled', 'locationName' => 'monitoring', ], ], ], 'LaunchSpecsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotFleetLaunchSpecification', 'locationName' => 'item', ], ], 'LaunchTemplate' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', 'locationName' => 'launchTemplateName', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'CreatedBy' => [ 'shape' => 'String', 'locationName' => 'createdBy', ], 'DefaultVersionNumber' => [ 'shape' => 'Long', 'locationName' => 'defaultVersionNumber', ], 'LatestVersionNumber' => [ 'shape' => 'Long', 'locationName' => 'latestVersionNumber', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], ], ], 'LaunchTemplateAndOverridesResponse' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateSpecification' => [ 'shape' => 'FleetLaunchTemplateSpecification', 'locationName' => 'launchTemplateSpecification', ], 'Overrides' => [ 'shape' => 'FleetLaunchTemplateOverrides', 'locationName' => 'overrides', ], ], ], 'LaunchTemplateAutoRecoveryState' => [ 'type' => 'string', 'enum' => [ 'default', 'disabled', ], ], 'LaunchTemplateBlockDeviceMapping' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'VirtualName' => [ 'shape' => 'String', 'locationName' => 'virtualName', ], 'Ebs' => [ 'shape' => 'LaunchTemplateEbsBlockDevice', 'locationName' => 'ebs', ], 'NoDevice' => [ 'shape' => 'String', 'locationName' => 'noDevice', ], ], ], 'LaunchTemplateBlockDeviceMappingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateBlockDeviceMapping', 'locationName' => 'item', ], ], 'LaunchTemplateBlockDeviceMappingRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', ], 'VirtualName' => [ 'shape' => 'String', ], 'Ebs' => [ 'shape' => 'LaunchTemplateEbsBlockDeviceRequest', ], 'NoDevice' => [ 'shape' => 'String', ], ], ], 'LaunchTemplateBlockDeviceMappingRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateBlockDeviceMappingRequest', 'locationName' => 'BlockDeviceMapping', ], ], 'LaunchTemplateCapacityReservationSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationPreference' => [ 'shape' => 'CapacityReservationPreference', ], 'CapacityReservationTarget' => [ 'shape' => 'CapacityReservationTarget', ], ], ], 'LaunchTemplateCapacityReservationSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'CapacityReservationPreference' => [ 'shape' => 'CapacityReservationPreference', 'locationName' => 'capacityReservationPreference', ], 'CapacityReservationTarget' => [ 'shape' => 'CapacityReservationTargetResponse', 'locationName' => 'capacityReservationTarget', ], ], ], 'LaunchTemplateConfig' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateSpecification' => [ 'shape' => 'FleetLaunchTemplateSpecification', 'locationName' => 'launchTemplateSpecification', ], 'Overrides' => [ 'shape' => 'LaunchTemplateOverridesList', 'locationName' => 'overrides', ], ], ], 'LaunchTemplateConfigList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateConfig', 'locationName' => 'item', ], ], 'LaunchTemplateCpuOptions' => [ 'type' => 'structure', 'members' => [ 'CoreCount' => [ 'shape' => 'Integer', 'locationName' => 'coreCount', ], 'ThreadsPerCore' => [ 'shape' => 'Integer', 'locationName' => 'threadsPerCore', ], 'AmdSevSnp' => [ 'shape' => 'AmdSevSnpSpecification', 'locationName' => 'amdSevSnp', ], 'NestedVirtualization' => [ 'shape' => 'NestedVirtualizationSpecification', 'locationName' => 'nestedVirtualization', ], ], ], 'LaunchTemplateCpuOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'CoreCount' => [ 'shape' => 'Integer', ], 'ThreadsPerCore' => [ 'shape' => 'Integer', ], 'AmdSevSnp' => [ 'shape' => 'AmdSevSnpSpecification', ], 'NestedVirtualization' => [ 'shape' => 'NestedVirtualizationSpecification', ], ], ], 'LaunchTemplateEbsBlockDevice' => [ 'type' => 'structure', 'members' => [ 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Iops' => [ 'shape' => 'Integer', 'locationName' => 'iops', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', 'locationName' => 'kmsKeyId', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', 'locationName' => 'snapshotId', ], 'VolumeSize' => [ 'shape' => 'Integer', 'locationName' => 'volumeSize', ], 'VolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'volumeType', ], 'Throughput' => [ 'shape' => 'Integer', 'locationName' => 'throughput', ], 'VolumeInitializationRate' => [ 'shape' => 'Integer', 'locationName' => 'volumeInitializationRate', ], 'EbsCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'ebsCardIndex', ], ], ], 'LaunchTemplateEbsBlockDeviceRequest' => [ 'type' => 'structure', 'members' => [ 'Encrypted' => [ 'shape' => 'Boolean', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'Iops' => [ 'shape' => 'Integer', ], 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'VolumeSize' => [ 'shape' => 'Integer', ], 'VolumeType' => [ 'shape' => 'VolumeType', ], 'Throughput' => [ 'shape' => 'Integer', ], 'VolumeInitializationRate' => [ 'shape' => 'Integer', ], 'EbsCardIndex' => [ 'shape' => 'Integer', ], ], ], 'LaunchTemplateElasticInferenceAccelerator' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'Type' => [ 'shape' => 'String', ], 'Count' => [ 'shape' => 'LaunchTemplateElasticInferenceAcceleratorCount', ], ], ], 'LaunchTemplateElasticInferenceAcceleratorCount' => [ 'type' => 'integer', 'min' => 1, ], 'LaunchTemplateElasticInferenceAcceleratorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateElasticInferenceAccelerator', 'locationName' => 'item', ], ], 'LaunchTemplateElasticInferenceAcceleratorResponse' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], 'Count' => [ 'shape' => 'Integer', 'locationName' => 'count', ], ], ], 'LaunchTemplateElasticInferenceAcceleratorResponseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateElasticInferenceAcceleratorResponse', 'locationName' => 'item', ], ], 'LaunchTemplateEnaSrdSpecification' => [ 'type' => 'structure', 'members' => [ 'EnaSrdEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'enaSrdEnabled', ], 'EnaSrdUdpSpecification' => [ 'shape' => 'LaunchTemplateEnaSrdUdpSpecification', 'locationName' => 'enaSrdUdpSpecification', ], ], ], 'LaunchTemplateEnaSrdUdpSpecification' => [ 'type' => 'structure', 'members' => [ 'EnaSrdUdpEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'enaSrdUdpEnabled', ], ], ], 'LaunchTemplateEnclaveOptions' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], ], ], 'LaunchTemplateEnclaveOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'LaunchTemplateErrorCode' => [ 'type' => 'string', 'enum' => [ 'launchTemplateIdDoesNotExist', 'launchTemplateIdMalformed', 'launchTemplateNameDoesNotExist', 'launchTemplateNameMalformed', 'launchTemplateVersionDoesNotExist', 'unexpectedError', ], ], 'LaunchTemplateHibernationOptions' => [ 'type' => 'structure', 'members' => [ 'Configured' => [ 'shape' => 'Boolean', 'locationName' => 'configured', ], ], ], 'LaunchTemplateHibernationOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'Configured' => [ 'shape' => 'Boolean', ], ], ], 'LaunchTemplateHttpTokensState' => [ 'type' => 'string', 'enum' => [ 'optional', 'required', ], ], 'LaunchTemplateIamInstanceProfileSpecification' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'LaunchTemplateIamInstanceProfileSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], ], ], 'LaunchTemplateId' => [ 'type' => 'string', ], 'LaunchTemplateIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateId', 'locationName' => 'item', ], ], 'LaunchTemplateInstanceMaintenanceOptions' => [ 'type' => 'structure', 'members' => [ 'AutoRecovery' => [ 'shape' => 'LaunchTemplateAutoRecoveryState', 'locationName' => 'autoRecovery', ], ], ], 'LaunchTemplateInstanceMaintenanceOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AutoRecovery' => [ 'shape' => 'LaunchTemplateAutoRecoveryState', ], ], ], 'LaunchTemplateInstanceMarketOptions' => [ 'type' => 'structure', 'members' => [ 'MarketType' => [ 'shape' => 'MarketType', 'locationName' => 'marketType', ], 'SpotOptions' => [ 'shape' => 'LaunchTemplateSpotMarketOptions', 'locationName' => 'spotOptions', ], ], ], 'LaunchTemplateInstanceMarketOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'MarketType' => [ 'shape' => 'MarketType', ], 'SpotOptions' => [ 'shape' => 'LaunchTemplateSpotMarketOptionsRequest', ], ], ], 'LaunchTemplateInstanceMetadataEndpointState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', ], ], 'LaunchTemplateInstanceMetadataOptions' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'LaunchTemplateInstanceMetadataOptionsState', 'locationName' => 'state', ], 'HttpTokens' => [ 'shape' => 'LaunchTemplateHttpTokensState', 'locationName' => 'httpTokens', ], 'HttpPutResponseHopLimit' => [ 'shape' => 'Integer', 'locationName' => 'httpPutResponseHopLimit', ], 'HttpEndpoint' => [ 'shape' => 'LaunchTemplateInstanceMetadataEndpointState', 'locationName' => 'httpEndpoint', ], 'HttpProtocolIpv6' => [ 'shape' => 'LaunchTemplateInstanceMetadataProtocolIpv6', 'locationName' => 'httpProtocolIpv6', ], 'InstanceMetadataTags' => [ 'shape' => 'LaunchTemplateInstanceMetadataTagsState', 'locationName' => 'instanceMetadataTags', ], ], ], 'LaunchTemplateInstanceMetadataOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'HttpTokens' => [ 'shape' => 'LaunchTemplateHttpTokensState', ], 'HttpPutResponseHopLimit' => [ 'shape' => 'Integer', ], 'HttpEndpoint' => [ 'shape' => 'LaunchTemplateInstanceMetadataEndpointState', ], 'HttpProtocolIpv6' => [ 'shape' => 'LaunchTemplateInstanceMetadataProtocolIpv6', ], 'InstanceMetadataTags' => [ 'shape' => 'LaunchTemplateInstanceMetadataTagsState', ], ], ], 'LaunchTemplateInstanceMetadataOptionsState' => [ 'type' => 'string', 'enum' => [ 'pending', 'applied', ], ], 'LaunchTemplateInstanceMetadataProtocolIpv6' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', ], ], 'LaunchTemplateInstanceMetadataTagsState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'enabled', ], ], 'LaunchTemplateInstanceNetworkInterfaceSpecification' => [ 'type' => 'structure', 'members' => [ 'AssociateCarrierIpAddress' => [ 'shape' => 'Boolean', 'locationName' => 'associateCarrierIpAddress', ], 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', 'locationName' => 'associatePublicIpAddress', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'Groups' => [ 'shape' => 'GroupIdStringList', 'locationName' => 'groupSet', ], 'InterfaceType' => [ 'shape' => 'String', 'locationName' => 'interfaceType', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', 'locationName' => 'ipv6AddressCount', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressList', 'locationName' => 'ipv6AddressesSet', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressSpecificationList', 'locationName' => 'privateIpAddressesSet', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'secondaryPrivateIpAddressCount', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'networkCardIndex', ], 'Ipv4Prefixes' => [ 'shape' => 'Ipv4PrefixListResponse', 'locationName' => 'ipv4PrefixSet', ], 'Ipv4PrefixCount' => [ 'shape' => 'Integer', 'locationName' => 'ipv4PrefixCount', ], 'Ipv6Prefixes' => [ 'shape' => 'Ipv6PrefixListResponse', 'locationName' => 'ipv6PrefixSet', ], 'Ipv6PrefixCount' => [ 'shape' => 'Integer', 'locationName' => 'ipv6PrefixCount', ], 'PrimaryIpv6' => [ 'shape' => 'Boolean', 'locationName' => 'primaryIpv6', ], 'EnaSrdSpecification' => [ 'shape' => 'LaunchTemplateEnaSrdSpecification', 'locationName' => 'enaSrdSpecification', ], 'ConnectionTrackingSpecification' => [ 'shape' => 'ConnectionTrackingSpecification', 'locationName' => 'connectionTrackingSpecification', ], 'EnaQueueCount' => [ 'shape' => 'Integer', 'locationName' => 'enaQueueCount', ], ], ], 'LaunchTemplateInstanceNetworkInterfaceSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateInstanceNetworkInterfaceSpecification', 'locationName' => 'item', ], ], 'LaunchTemplateInstanceNetworkInterfaceSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'AssociateCarrierIpAddress' => [ 'shape' => 'Boolean', ], 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'Description' => [ 'shape' => 'String', ], 'DeviceIndex' => [ 'shape' => 'Integer', ], 'Groups' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'InterfaceType' => [ 'shape' => 'String', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressListRequest', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'PrivateIpAddress' => [ 'shape' => 'String', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressSpecificationList', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', ], 'Ipv4Prefixes' => [ 'shape' => 'Ipv4PrefixList', 'locationName' => 'Ipv4Prefix', ], 'Ipv4PrefixCount' => [ 'shape' => 'Integer', ], 'Ipv6Prefixes' => [ 'shape' => 'Ipv6PrefixList', 'locationName' => 'Ipv6Prefix', ], 'Ipv6PrefixCount' => [ 'shape' => 'Integer', ], 'PrimaryIpv6' => [ 'shape' => 'Boolean', ], 'EnaSrdSpecification' => [ 'shape' => 'EnaSrdSpecificationRequest', ], 'ConnectionTrackingSpecification' => [ 'shape' => 'ConnectionTrackingSpecificationRequest', ], 'EnaQueueCount' => [ 'shape' => 'Integer', ], ], ], 'LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateInstanceNetworkInterfaceSpecificationRequest', 'locationName' => 'InstanceNetworkInterfaceSpecification', ], ], 'LaunchTemplateInstanceSecondaryInterfaceSpecification' => [ 'type' => 'structure', 'members' => [ 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'PrivateIpAddresses' => [ 'shape' => 'SecondaryInterfacePrivateIpAddressSpecificationList', 'locationName' => 'privateIpAddressesSet', ], 'PrivateIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'privateIpAddressCount', ], 'SecondarySubnetId' => [ 'shape' => 'SecondarySubnetId', 'locationName' => 'secondarySubnetId', ], 'InterfaceType' => [ 'shape' => 'SecondaryInterfaceType', 'locationName' => 'interfaceType', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'networkCardIndex', ], ], ], 'LaunchTemplateInstanceSecondaryInterfaceSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateInstanceSecondaryInterfaceSpecification', 'locationName' => 'item', ], ], 'LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'DeviceIndex' => [ 'shape' => 'Integer', ], 'PrivateIpAddresses' => [ 'shape' => 'SecondaryInterfacePrivateIpAddressSpecificationListRequest', 'locationName' => 'PrivateIpAddress', ], 'PrivateIpAddressCount' => [ 'shape' => 'Integer', ], 'SecondarySubnetId' => [ 'shape' => 'SecondarySubnetId', ], 'InterfaceType' => [ 'shape' => 'SecondaryInterfaceType', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', ], ], ], 'LaunchTemplateInstanceSecondaryInterfaceSpecificationRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest', 'locationName' => 'InstanceSecondaryInterfaceSpecification', ], ], 'LaunchTemplateLicenseConfiguration' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', 'locationName' => 'licenseConfigurationArn', ], ], ], 'LaunchTemplateLicenseConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', ], ], ], 'LaunchTemplateLicenseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateLicenseConfiguration', 'locationName' => 'item', ], ], 'LaunchTemplateLicenseSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateLicenseConfigurationRequest', 'locationName' => 'item', ], ], 'LaunchTemplateName' => [ 'type' => 'string', 'max' => 128, 'min' => 3, 'pattern' => '[a-zA-Z0-9\\(\\)\\.\\-/_]+', ], 'LaunchTemplateNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateName', 'locationName' => 'item', ], ], 'LaunchTemplateNetworkPerformanceOptions' => [ 'type' => 'structure', 'members' => [ 'BandwidthWeighting' => [ 'shape' => 'InstanceBandwidthWeighting', 'locationName' => 'bandwidthWeighting', ], ], ], 'LaunchTemplateNetworkPerformanceOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'BandwidthWeighting' => [ 'shape' => 'InstanceBandwidthWeighting', ], ], ], 'LaunchTemplateOverrides' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'WeightedCapacity' => [ 'shape' => 'Double', 'locationName' => 'weightedCapacity', ], 'Priority' => [ 'shape' => 'Double', 'locationName' => 'priority', ], 'InstanceRequirements' => [ 'shape' => 'InstanceRequirements', 'locationName' => 'instanceRequirements', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], ], ], 'LaunchTemplateOverridesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateOverrides', 'locationName' => 'item', ], ], 'LaunchTemplatePlacement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], 'Affinity' => [ 'shape' => 'String', 'locationName' => 'affinity', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], 'Tenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'tenancy', ], 'SpreadDomain' => [ 'shape' => 'String', 'locationName' => 'spreadDomain', ], 'HostResourceGroupArn' => [ 'shape' => 'String', 'locationName' => 'hostResourceGroupArn', ], 'PartitionNumber' => [ 'shape' => 'Integer', 'locationName' => 'partitionNumber', ], 'GroupId' => [ 'shape' => 'PlacementGroupId', 'locationName' => 'groupId', ], ], ], 'LaunchTemplatePlacementRequest' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', ], 'Affinity' => [ 'shape' => 'String', ], 'GroupName' => [ 'shape' => 'PlacementGroupName', ], 'HostId' => [ 'shape' => 'DedicatedHostId', ], 'Tenancy' => [ 'shape' => 'Tenancy', ], 'SpreadDomain' => [ 'shape' => 'String', ], 'HostResourceGroupArn' => [ 'shape' => 'String', ], 'PartitionNumber' => [ 'shape' => 'Integer', ], 'GroupId' => [ 'shape' => 'PlacementGroupId', ], ], ], 'LaunchTemplatePrivateDnsNameOptions' => [ 'type' => 'structure', 'members' => [ 'HostnameType' => [ 'shape' => 'HostnameType', 'locationName' => 'hostnameType', ], 'EnableResourceNameDnsARecord' => [ 'shape' => 'Boolean', 'locationName' => 'enableResourceNameDnsARecord', ], 'EnableResourceNameDnsAAAARecord' => [ 'shape' => 'Boolean', 'locationName' => 'enableResourceNameDnsAAAARecord', ], ], ], 'LaunchTemplatePrivateDnsNameOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'HostnameType' => [ 'shape' => 'HostnameType', ], 'EnableResourceNameDnsARecord' => [ 'shape' => 'Boolean', ], 'EnableResourceNameDnsAAAARecord' => [ 'shape' => 'Boolean', ], ], ], 'LaunchTemplateSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplate', 'locationName' => 'item', ], ], 'LaunchTemplateSpecification' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'String', ], 'Version' => [ 'shape' => 'String', ], ], ], 'LaunchTemplateSpotMarketOptions' => [ 'type' => 'structure', 'members' => [ 'MaxPrice' => [ 'shape' => 'String', 'locationName' => 'maxPrice', ], 'SpotInstanceType' => [ 'shape' => 'SpotInstanceType', 'locationName' => 'spotInstanceType', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'blockDurationMinutes', ], 'ValidUntil' => [ 'shape' => 'DateTime', 'locationName' => 'validUntil', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', 'locationName' => 'instanceInterruptionBehavior', ], ], ], 'LaunchTemplateSpotMarketOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxPrice' => [ 'shape' => 'String', ], 'SpotInstanceType' => [ 'shape' => 'SpotInstanceType', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', ], 'ValidUntil' => [ 'shape' => 'DateTime', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', ], ], ], 'LaunchTemplateTagSpecification' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', 'locationName' => 'resourceType', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'LaunchTemplateTagSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateTagSpecification', 'locationName' => 'item', ], ], 'LaunchTemplateTagSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'Tag', ], ], ], 'LaunchTemplateTagSpecificationRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateTagSpecificationRequest', 'locationName' => 'LaunchTemplateTagSpecificationRequest', ], ], 'LaunchTemplateVersion' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplateId' => [ 'shape' => 'String', 'locationName' => 'launchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', 'locationName' => 'launchTemplateName', ], 'VersionNumber' => [ 'shape' => 'Long', 'locationName' => 'versionNumber', ], 'VersionDescription' => [ 'shape' => 'VersionDescription', 'locationName' => 'versionDescription', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'CreatedBy' => [ 'shape' => 'String', 'locationName' => 'createdBy', ], 'DefaultVersion' => [ 'shape' => 'Boolean', 'locationName' => 'defaultVersion', ], 'LaunchTemplateData' => [ 'shape' => 'ResponseLaunchTemplateData', 'locationName' => 'launchTemplateData', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], ], ], 'LaunchTemplateVersionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LaunchTemplateVersion', 'locationName' => 'item', ], ], 'LaunchTemplatesMonitoring' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], ], ], 'LaunchTemplatesMonitoringRequest' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'LicenseConfiguration' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', 'locationName' => 'licenseConfigurationArn', ], ], ], 'LicenseConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'LicenseConfigurationArn' => [ 'shape' => 'String', ], ], ], 'LicenseList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LicenseConfiguration', 'locationName' => 'item', ], ], 'LicenseSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'LicenseConfigurationRequest', 'locationName' => 'item', ], ], 'ListImagesInRecycleBinMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'ListImagesInRecycleBinRequest' => [ 'type' => 'structure', 'members' => [ 'ImageIds' => [ 'shape' => 'ImageIdStringList', 'locationName' => 'ImageId', ], 'NextToken' => [ 'shape' => 'String', ], 'MaxResults' => [ 'shape' => 'ListImagesInRecycleBinMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ListImagesInRecycleBinResult' => [ 'type' => 'structure', 'members' => [ 'Images' => [ 'shape' => 'ImageRecycleBinInfoList', 'locationName' => 'imageSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'ListSnapshotsInRecycleBinMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'ListSnapshotsInRecycleBinRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'ListSnapshotsInRecycleBinMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'SnapshotIds' => [ 'shape' => 'SnapshotIdStringList', 'locationName' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ListSnapshotsInRecycleBinResult' => [ 'type' => 'structure', 'members' => [ 'Snapshots' => [ 'shape' => 'SnapshotRecycleBinInfoList', 'locationName' => 'snapshotSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'ListVolumesInRecycleBinRequest' => [ 'type' => 'structure', 'members' => [ 'VolumeIds' => [ 'shape' => 'VolumeIdStringList', 'locationName' => 'VolumeId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'MaxResults' => [ 'shape' => 'Integer', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListVolumesInRecycleBinResult' => [ 'type' => 'structure', 'members' => [ 'Volumes' => [ 'shape' => 'VolumeRecycleBinInfoList', 'locationName' => 'volumeSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'ListingState' => [ 'type' => 'string', 'enum' => [ 'available', 'sold', 'cancelled', 'pending', ], ], 'ListingStatus' => [ 'type' => 'string', 'enum' => [ 'active', 'pending', 'cancelled', 'closed', ], ], 'LoadBalancerArn' => [ 'type' => 'string', ], 'LoadBalancersConfig' => [ 'type' => 'structure', 'members' => [ 'ClassicLoadBalancersConfig' => [ 'shape' => 'ClassicLoadBalancersConfig', 'locationName' => 'classicLoadBalancersConfig', ], 'TargetGroupsConfig' => [ 'shape' => 'TargetGroupsConfig', 'locationName' => 'targetGroupsConfig', ], ], ], 'LoadPermission' => [ 'type' => 'structure', 'members' => [ 'UserId' => [ 'shape' => 'String', 'locationName' => 'userId', ], 'Group' => [ 'shape' => 'PermissionGroup', 'locationName' => 'group', ], ], ], 'LoadPermissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadPermission', 'locationName' => 'item', ], ], 'LoadPermissionListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadPermissionRequest', 'locationName' => 'item', ], ], 'LoadPermissionModifications' => [ 'type' => 'structure', 'members' => [ 'Add' => [ 'shape' => 'LoadPermissionListRequest', ], 'Remove' => [ 'shape' => 'LoadPermissionListRequest', ], ], ], 'LoadPermissionRequest' => [ 'type' => 'structure', 'members' => [ 'Group' => [ 'shape' => 'PermissionGroup', ], 'UserId' => [ 'shape' => 'String', ], ], ], 'LocalGateway' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayId' => [ 'shape' => 'LocalGatewayId', 'locationName' => 'localGatewayId', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'LocalGatewayId' => [ 'type' => 'string', ], 'LocalGatewayIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayId', 'locationName' => 'item', ], ], 'LocalGatewayMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'LocalGatewayRoute' => [ 'type' => 'structure', 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', 'locationName' => 'localGatewayVirtualInterfaceGroupId', ], 'Type' => [ 'shape' => 'LocalGatewayRouteType', 'locationName' => 'type', ], 'State' => [ 'shape' => 'LocalGatewayRouteState', 'locationName' => 'state', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', 'locationName' => 'localGatewayRouteTableId', ], 'LocalGatewayRouteTableArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'localGatewayRouteTableArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'CoipPoolId' => [ 'shape' => 'CoipPoolId', 'locationName' => 'coipPoolId', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'DestinationPrefixListId' => [ 'shape' => 'PrefixListResourceId', 'locationName' => 'destinationPrefixListId', ], ], ], 'LocalGatewayRouteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayRoute', 'locationName' => 'item', ], ], 'LocalGatewayRouteState' => [ 'type' => 'string', 'enum' => [ 'pending', 'active', 'blackhole', 'deleting', 'deleted', ], ], 'LocalGatewayRouteTable' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'localGatewayRouteTableId', ], 'LocalGatewayRouteTableArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'localGatewayRouteTableArn', ], 'LocalGatewayId' => [ 'shape' => 'LocalGatewayId', 'locationName' => 'localGatewayId', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'Mode' => [ 'shape' => 'LocalGatewayRouteTableMode', 'locationName' => 'mode', ], 'StateReason' => [ 'shape' => 'StateReason', 'locationName' => 'stateReason', ], ], ], 'LocalGatewayRouteTableIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayRoutetableId', 'locationName' => 'item', ], ], 'LocalGatewayRouteTableMode' => [ 'type' => 'string', 'enum' => [ 'direct-vpc-routing', 'coip', ], ], 'LocalGatewayRouteTableSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayRouteTable', 'locationName' => 'item', ], ], 'LocalGatewayRouteTableVirtualInterfaceGroupAssociation' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId' => [ 'shape' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId', 'locationName' => 'localGatewayRouteTableVirtualInterfaceGroupAssociationId', ], 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', 'locationName' => 'localGatewayVirtualInterfaceGroupId', ], 'LocalGatewayId' => [ 'shape' => 'String', 'locationName' => 'localGatewayId', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayId', 'locationName' => 'localGatewayRouteTableId', ], 'LocalGatewayRouteTableArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'localGatewayRouteTableArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId' => [ 'type' => 'string', ], 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationId', 'locationName' => 'item', ], ], 'LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayRouteTableVirtualInterfaceGroupAssociation', 'locationName' => 'item', ], ], 'LocalGatewayRouteTableVpcAssociation' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayRouteTableVpcAssociationId' => [ 'shape' => 'LocalGatewayRouteTableVpcAssociationId', 'locationName' => 'localGatewayRouteTableVpcAssociationId', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'localGatewayRouteTableId', ], 'LocalGatewayRouteTableArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'localGatewayRouteTableArn', ], 'LocalGatewayId' => [ 'shape' => 'String', 'locationName' => 'localGatewayId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'LocalGatewayRouteTableVpcAssociationId' => [ 'type' => 'string', ], 'LocalGatewayRouteTableVpcAssociationIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayRouteTableVpcAssociationId', 'locationName' => 'item', ], ], 'LocalGatewayRouteTableVpcAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayRouteTableVpcAssociation', 'locationName' => 'item', ], ], 'LocalGatewayRouteType' => [ 'type' => 'string', 'enum' => [ 'static', 'propagated', ], ], 'LocalGatewayRoutetableId' => [ 'type' => 'string', ], 'LocalGatewaySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGateway', 'locationName' => 'item', ], ], 'LocalGatewayVirtualInterface' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterfaceId' => [ 'shape' => 'LocalGatewayVirtualInterfaceId', 'locationName' => 'localGatewayVirtualInterfaceId', ], 'LocalGatewayId' => [ 'shape' => 'String', 'locationName' => 'localGatewayId', ], 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', 'locationName' => 'localGatewayVirtualInterfaceGroupId', ], 'LocalGatewayVirtualInterfaceArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'localGatewayVirtualInterfaceArn', ], 'OutpostLagId' => [ 'shape' => 'String', 'locationName' => 'outpostLagId', ], 'Vlan' => [ 'shape' => 'Integer', 'locationName' => 'vlan', ], 'LocalAddress' => [ 'shape' => 'String', 'locationName' => 'localAddress', ], 'PeerAddress' => [ 'shape' => 'String', 'locationName' => 'peerAddress', ], 'LocalBgpAsn' => [ 'shape' => 'Integer', 'locationName' => 'localBgpAsn', ], 'PeerBgpAsn' => [ 'shape' => 'Integer', 'locationName' => 'peerBgpAsn', ], 'PeerBgpAsnExtended' => [ 'shape' => 'Long', 'locationName' => 'peerBgpAsnExtended', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'ConfigurationState' => [ 'shape' => 'LocalGatewayVirtualInterfaceConfigurationState', 'locationName' => 'configurationState', ], ], ], 'LocalGatewayVirtualInterfaceConfigurationState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'LocalGatewayVirtualInterfaceGroup' => [ 'type' => 'structure', 'members' => [ 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', 'locationName' => 'localGatewayVirtualInterfaceGroupId', ], 'LocalGatewayVirtualInterfaceIds' => [ 'shape' => 'LocalGatewayVirtualInterfaceIdSet', 'locationName' => 'localGatewayVirtualInterfaceIdSet', ], 'LocalGatewayId' => [ 'shape' => 'String', 'locationName' => 'localGatewayId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'LocalBgpAsn' => [ 'shape' => 'Integer', 'locationName' => 'localBgpAsn', ], 'LocalBgpAsnExtended' => [ 'shape' => 'Long', 'locationName' => 'localBgpAsnExtended', ], 'LocalGatewayVirtualInterfaceGroupArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'localGatewayVirtualInterfaceGroupArn', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'ConfigurationState' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupConfigurationState', 'locationName' => 'configurationState', ], ], ], 'LocalGatewayVirtualInterfaceGroupConfigurationState' => [ 'type' => 'string', 'enum' => [ 'pending', 'incomplete', 'available', 'deleting', 'deleted', ], ], 'LocalGatewayVirtualInterfaceGroupId' => [ 'type' => 'string', ], 'LocalGatewayVirtualInterfaceGroupIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', 'locationName' => 'item', ], ], 'LocalGatewayVirtualInterfaceGroupSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroup', 'locationName' => 'item', ], ], 'LocalGatewayVirtualInterfaceId' => [ 'type' => 'string', ], 'LocalGatewayVirtualInterfaceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayVirtualInterfaceId', 'locationName' => 'item', ], ], 'LocalGatewayVirtualInterfaceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalGatewayVirtualInterface', 'locationName' => 'item', ], ], 'LocalStorage' => [ 'type' => 'string', 'enum' => [ 'included', 'required', 'excluded', ], ], 'LocalStorageType' => [ 'type' => 'string', 'enum' => [ 'hdd', 'ssd', ], ], 'LocalStorageTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalStorageType', 'locationName' => 'item', ], ], 'Location' => [ 'type' => 'string', ], 'LocationType' => [ 'type' => 'string', 'enum' => [ 'region', 'availability-zone', 'availability-zone-id', 'outpost', ], ], 'LockMode' => [ 'type' => 'string', 'enum' => [ 'compliance', 'governance', ], ], 'LockSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', 'LockMode', ], 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'LockMode' => [ 'shape' => 'LockMode', ], 'CoolOffPeriod' => [ 'shape' => 'CoolOffPeriodRequestHours', ], 'LockDuration' => [ 'shape' => 'RetentionPeriodRequestDays', ], 'ExpirationDate' => [ 'shape' => 'MillisecondDateTime', ], ], ], 'LockSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'LockState' => [ 'shape' => 'LockState', 'locationName' => 'lockState', ], 'LockDuration' => [ 'shape' => 'RetentionPeriodResponseDays', 'locationName' => 'lockDuration', ], 'CoolOffPeriod' => [ 'shape' => 'CoolOffPeriodResponseHours', 'locationName' => 'coolOffPeriod', ], 'CoolOffPeriodExpiresOn' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'coolOffPeriodExpiresOn', ], 'LockCreatedOn' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lockCreatedOn', ], 'LockExpiresOn' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lockExpiresOn', ], 'LockDurationStartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lockDurationStartTime', ], ], ], 'LockState' => [ 'type' => 'string', 'enum' => [ 'compliance', 'governance', 'compliance-cooloff', 'expired', ], ], 'LockedSnapshotsInfo' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'LockState' => [ 'shape' => 'LockState', 'locationName' => 'lockState', ], 'LockDuration' => [ 'shape' => 'RetentionPeriodResponseDays', 'locationName' => 'lockDuration', ], 'CoolOffPeriod' => [ 'shape' => 'CoolOffPeriodResponseHours', 'locationName' => 'coolOffPeriod', ], 'CoolOffPeriodExpiresOn' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'coolOffPeriodExpiresOn', ], 'LockCreatedOn' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lockCreatedOn', ], 'LockDurationStartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lockDurationStartTime', ], 'LockExpiresOn' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lockExpiresOn', ], ], ], 'LockedSnapshotsInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LockedSnapshotsInfo', 'locationName' => 'item', ], ], 'LogDestinationType' => [ 'type' => 'string', 'enum' => [ 'cloud-watch-logs', 's3', 'kinesis-data-firehose', ], ], 'LogicalGpuCount' => [ 'type' => 'integer', ], 'Long' => [ 'type' => 'long', ], 'MacHost' => [ 'type' => 'structure', 'members' => [ 'HostId' => [ 'shape' => 'DedicatedHostId', 'locationName' => 'hostId', ], 'MacOSLatestSupportedVersions' => [ 'shape' => 'MacOSVersionStringList', 'locationName' => 'macOSLatestSupportedVersionSet', ], ], ], 'MacHostList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MacHost', 'locationName' => 'item', ], ], 'MacModificationTask' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'MacModificationTaskId' => [ 'shape' => 'MacModificationTaskId', 'locationName' => 'macModificationTaskId', ], 'MacSystemIntegrityProtectionConfig' => [ 'shape' => 'MacSystemIntegrityProtectionConfiguration', 'locationName' => 'macSystemIntegrityProtectionConfig', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'TaskState' => [ 'shape' => 'MacModificationTaskState', 'locationName' => 'taskState', ], 'TaskType' => [ 'shape' => 'MacModificationTaskType', 'locationName' => 'taskType', ], ], ], 'MacModificationTaskId' => [ 'type' => 'string', ], 'MacModificationTaskIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MacModificationTaskId', 'locationName' => 'item', ], ], 'MacModificationTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MacModificationTask', 'locationName' => 'item', ], ], 'MacModificationTaskState' => [ 'type' => 'string', 'enum' => [ 'successful', 'failed', 'in-progress', 'pending', ], ], 'MacModificationTaskType' => [ 'type' => 'string', 'enum' => [ 'sip-modification', 'volume-ownership-delegation', ], ], 'MacOSVersionStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'MacSystemIntegrityProtectionConfiguration' => [ 'type' => 'structure', 'members' => [ 'AppleInternal' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', 'locationName' => 'appleInternal', ], 'BaseSystem' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', 'locationName' => 'baseSystem', ], 'DebuggingRestrictions' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', 'locationName' => 'debuggingRestrictions', ], 'DTraceRestrictions' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', 'locationName' => 'dTraceRestrictions', ], 'FilesystemProtections' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', 'locationName' => 'filesystemProtections', ], 'KextSigning' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', 'locationName' => 'kextSigning', ], 'NvramProtections' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', 'locationName' => 'nvramProtections', ], 'Status' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', 'locationName' => 'status', ], ], ], 'MacSystemIntegrityProtectionConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'AppleInternal' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', ], 'BaseSystem' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', ], 'DebuggingRestrictions' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', ], 'DTraceRestrictions' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', ], 'FilesystemProtections' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', ], 'KextSigning' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', ], 'NvramProtections' => [ 'shape' => 'MacSystemIntegrityProtectionSettingStatus', ], ], ], 'MacSystemIntegrityProtectionSettingStatus' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'MaintenanceDetails' => [ 'type' => 'structure', 'members' => [ 'PendingMaintenance' => [ 'shape' => 'String', 'locationName' => 'pendingMaintenance', ], 'MaintenanceAutoAppliedAfter' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'maintenanceAutoAppliedAfter', ], 'LastMaintenanceApplied' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastMaintenanceApplied', ], ], ], 'ManagedBy' => [ 'type' => 'string', 'enum' => [ 'account', 'declarative-policy', ], ], 'ManagedPrefixList' => [ 'type' => 'structure', 'members' => [ 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', 'locationName' => 'prefixListId', ], 'AddressFamily' => [ 'shape' => 'String', 'locationName' => 'addressFamily', ], 'State' => [ 'shape' => 'PrefixListState', 'locationName' => 'state', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], 'PrefixListArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'prefixListArn', ], 'PrefixListName' => [ 'shape' => 'String', 'locationName' => 'prefixListName', ], 'MaxEntries' => [ 'shape' => 'Integer', 'locationName' => 'maxEntries', ], 'Version' => [ 'shape' => 'Long', 'locationName' => 'version', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'IpamPrefixListResolverTargetId' => [ 'shape' => 'String', 'locationName' => 'ipamPrefixListResolverTargetId', ], 'IpamPrefixListResolverSyncEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'ipamPrefixListResolverSyncEnabled', ], ], ], 'ManagedPrefixListSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedPrefixList', 'locationName' => 'item', ], ], 'ManagedResourceDefaultVisibility' => [ 'type' => 'string', 'enum' => [ 'hidden', 'visible', ], ], 'ManagedResourceVisibilitySettings' => [ 'type' => 'structure', 'members' => [ 'DefaultVisibility' => [ 'shape' => 'ManagedResourceDefaultVisibility', 'locationName' => 'defaultVisibility', ], ], ], 'MarketType' => [ 'type' => 'string', 'enum' => [ 'spot', 'capacity-block', 'interruptible-capacity-reservation', ], ], 'MarketplaceProductCode' => [ 'type' => 'string', ], 'MarketplaceProductCodeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MarketplaceProductCode', 'locationName' => 'item', ], ], 'MarketplaceProductCodeRequest' => [ 'type' => 'string', ], 'MarketplaceProductCodeRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MarketplaceProductCodeRequest', 'locationName' => 'item', ], ], 'MaxIpv4AddrPerInterface' => [ 'type' => 'integer', ], 'MaxIpv6AddrPerInterface' => [ 'type' => 'integer', ], 'MaxNetworkInterfaces' => [ 'type' => 'integer', ], 'MaxResults' => [ 'type' => 'integer', ], 'MaxResultsParam' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'MaximumBandwidthInMbps' => [ 'type' => 'integer', ], 'MaximumDaysSinceCreatedValue' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 0, ], 'MaximumDaysSinceDeprecatedValue' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 0, ], 'MaximumEbsAttachments' => [ 'type' => 'integer', ], 'MaximumEbsCards' => [ 'type' => 'integer', ], 'MaximumEfaInterfaces' => [ 'type' => 'integer', ], 'MaximumEnaQueueCount' => [ 'type' => 'integer', ], 'MaximumEnaQueueCountPerInterface' => [ 'type' => 'integer', ], 'MaximumIops' => [ 'type' => 'integer', ], 'MaximumNetworkCards' => [ 'type' => 'integer', ], 'MaximumSecondaryNetworkInterfaces' => [ 'type' => 'integer', ], 'MaximumThroughputInMBps' => [ 'type' => 'double', ], 'MediaAcceleratorInfo' => [ 'type' => 'structure', 'members' => [ 'Accelerators' => [ 'shape' => 'MediaDeviceInfoList', 'locationName' => 'accelerators', ], 'TotalMediaMemoryInMiB' => [ 'shape' => 'TotalMediaMemory', 'locationName' => 'totalMediaMemoryInMiB', ], ], ], 'MediaDeviceCount' => [ 'type' => 'integer', ], 'MediaDeviceInfo' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => 'MediaDeviceCount', 'locationName' => 'count', ], 'Name' => [ 'shape' => 'MediaDeviceName', 'locationName' => 'name', ], 'Manufacturer' => [ 'shape' => 'MediaDeviceManufacturerName', 'locationName' => 'manufacturer', ], 'MemoryInfo' => [ 'shape' => 'MediaDeviceMemoryInfo', 'locationName' => 'memoryInfo', ], ], ], 'MediaDeviceInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MediaDeviceInfo', 'locationName' => 'item', ], ], 'MediaDeviceManufacturerName' => [ 'type' => 'string', ], 'MediaDeviceMemoryInfo' => [ 'type' => 'structure', 'members' => [ 'SizeInMiB' => [ 'shape' => 'MediaDeviceMemorySize', 'locationName' => 'sizeInMiB', ], ], ], 'MediaDeviceMemorySize' => [ 'type' => 'integer', ], 'MediaDeviceName' => [ 'type' => 'string', ], 'MembershipType' => [ 'type' => 'string', 'enum' => [ 'static', 'igmp', ], ], 'MemoryGiBPerVCpu' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Double', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Double', 'locationName' => 'max', ], ], ], 'MemoryGiBPerVCpuRequest' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Double', ], 'Max' => [ 'shape' => 'Double', ], ], ], 'MemoryInfo' => [ 'type' => 'structure', 'members' => [ 'SizeInMiB' => [ 'shape' => 'MemorySize', 'locationName' => 'sizeInMiB', ], ], ], 'MemoryMiB' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Integer', 'locationName' => 'max', ], ], ], 'MemoryMiBRequest' => [ 'type' => 'structure', 'required' => [ 'Min', ], 'members' => [ 'Min' => [ 'shape' => 'Integer', ], 'Max' => [ 'shape' => 'Integer', ], ], ], 'MemorySize' => [ 'type' => 'long', ], 'MetadataDefaultHttpTokensState' => [ 'type' => 'string', 'enum' => [ 'optional', 'required', 'no-preference', ], ], 'Metric' => [ 'type' => 'string', 'enum' => [ 'reservation-total-capacity-hrs-vcpu', 'reservation-total-capacity-hrs-inst', 'reservation-max-size-vcpu', 'reservation-max-size-inst', 'reservation-min-size-vcpu', 'reservation-min-size-inst', 'reservation-unused-total-capacity-hrs-vcpu', 'reservation-unused-total-capacity-hrs-inst', 'reservation-unused-total-estimated-cost', 'reservation-max-unused-size-vcpu', 'reservation-max-unused-size-inst', 'reservation-min-unused-size-vcpu', 'reservation-min-unused-size-inst', 'reservation-max-utilization', 'reservation-min-utilization', 'reservation-avg-utilization-vcpu', 'reservation-avg-utilization-inst', 'reservation-total-count', 'reservation-total-estimated-cost', 'reservation-avg-future-size-vcpu', 'reservation-avg-future-size-inst', 'reservation-min-future-size-vcpu', 'reservation-min-future-size-inst', 'reservation-max-future-size-vcpu', 'reservation-max-future-size-inst', 'reservation-avg-committed-size-vcpu', 'reservation-avg-committed-size-inst', 'reservation-max-committed-size-vcpu', 'reservation-max-committed-size-inst', 'reservation-min-committed-size-vcpu', 'reservation-min-committed-size-inst', 'reserved-total-usage-hrs-vcpu', 'reserved-total-usage-hrs-inst', 'reserved-total-estimated-cost', 'unreserved-total-usage-hrs-vcpu', 'unreserved-total-usage-hrs-inst', 'unreserved-total-estimated-cost', 'spot-total-usage-hrs-vcpu', 'spot-total-usage-hrs-inst', 'spot-total-estimated-cost', 'spot-avg-run-time-before-interruption-inst', 'spot-max-run-time-before-interruption-inst', 'spot-min-run-time-before-interruption-inst', 'spot-total-interruptions-inst', 'spot-total-interruptions-vcpu', 'spot-total-count-inst', 'spot-total-count-vcpu', 'spot-interruption-rate-inst', 'spot-interruption-rate-vcpu', ], ], 'MetricDataResult' => [ 'type' => 'structure', 'members' => [ 'Dimension' => [ 'shape' => 'CapacityManagerDimension', 'locationName' => 'dimension', ], 'Timestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'timestamp', ], 'MetricValues' => [ 'shape' => 'MetricValueSet', 'locationName' => 'metricValueSet', ], ], ], 'MetricDataResultSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricDataResult', 'locationName' => 'item', ], ], 'MetricDimensionResultSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityManagerDimension', 'locationName' => 'item', ], ], 'MetricPoint' => [ 'type' => 'structure', 'members' => [ 'StartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startDate', ], 'EndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'endDate', ], 'Value' => [ 'shape' => 'Float', 'locationName' => 'value', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], ], ], 'MetricPoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricPoint', 'locationName' => 'item', ], ], 'MetricSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Metric', 'locationName' => 'item', ], 'max' => 40, 'min' => 0, ], 'MetricType' => [ 'type' => 'string', 'enum' => [ 'aggregate-latency', ], ], 'MetricValue' => [ 'type' => 'structure', 'members' => [ 'Metric' => [ 'shape' => 'Metric', 'locationName' => 'metric', ], 'Value' => [ 'shape' => 'Double', 'locationName' => 'value', ], ], ], 'MetricValueSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricValue', 'locationName' => 'item', ], ], 'MillisecondDateTime' => [ 'type' => 'timestamp', ], 'ModifyAccountVpcEncryptionControlRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Mode' => [ 'shape' => 'AccountVpcEncryptionControlMode', ], 'InternetGateway' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'EgressOnlyInternetGateway' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'NatGateway' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VirtualPrivateGateway' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VpcPeering' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'Lambda' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VpcLattice' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'ElasticFileSystem' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], ], ], 'ModifyAccountVpcEncryptionControlResult' => [ 'type' => 'structure', 'members' => [ 'AccountVpcEncryptionControl' => [ 'shape' => 'AccountVpcEncryptionControl', 'locationName' => 'accountVpcEncryptionControl', ], ], ], 'ModifyAddressAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'AllocationId', ], 'members' => [ 'AllocationId' => [ 'shape' => 'AllocationId', ], 'DomainName' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyAddressAttributeResult' => [ 'type' => 'structure', 'members' => [ 'Address' => [ 'shape' => 'AddressAttribute', 'locationName' => 'address', ], ], ], 'ModifyAvailabilityZoneGroupRequest' => [ 'type' => 'structure', 'required' => [ 'GroupName', 'OptInStatus', ], 'members' => [ 'GroupName' => [ 'shape' => 'String', ], 'OptInStatus' => [ 'shape' => 'ModifyAvailabilityZoneOptInStatus', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyAvailabilityZoneGroupResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyAvailabilityZoneOptInStatus' => [ 'type' => 'string', 'enum' => [ 'opted-in', 'not-opted-in', ], ], 'ModifyCapacityReservationFleetRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationFleetId', ], 'members' => [ 'CapacityReservationFleetId' => [ 'shape' => 'CapacityReservationFleetId', ], 'TotalTargetCapacity' => [ 'shape' => 'Integer', ], 'EndDate' => [ 'shape' => 'MillisecondDateTime', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'RemoveEndDate' => [ 'shape' => 'Boolean', ], ], ], 'ModifyCapacityReservationFleetResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyCapacityReservationRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', ], 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'EndDate' => [ 'shape' => 'DateTime', ], 'EndDateType' => [ 'shape' => 'EndDateType', ], 'Accept' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'AdditionalInfo' => [ 'shape' => 'String', ], 'InstanceMatchCriteria' => [ 'shape' => 'InstanceMatchCriteria', ], ], ], 'ModifyCapacityReservationResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyClientVpnEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'ServerCertificateArn' => [ 'shape' => 'String', ], 'ConnectionLogOptions' => [ 'shape' => 'ConnectionLogOptions', ], 'DnsServers' => [ 'shape' => 'DnsServersOptionsModifyStructure', ], 'VpnPort' => [ 'shape' => 'Integer', ], 'Description' => [ 'shape' => 'String', ], 'SplitTunnel' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SecurityGroupIds' => [ 'shape' => 'ClientVpnSecurityGroupIdSet', 'locationName' => 'SecurityGroupId', ], 'VpcId' => [ 'shape' => 'VpcId', ], 'SelfServicePortal' => [ 'shape' => 'SelfServicePortal', ], 'ClientConnectOptions' => [ 'shape' => 'ClientConnectOptions', ], 'SessionTimeoutHours' => [ 'shape' => 'Integer', ], 'ClientLoginBannerOptions' => [ 'shape' => 'ClientLoginBannerOptions', ], 'ClientRouteEnforcementOptions' => [ 'shape' => 'ClientRouteEnforcementOptions', ], 'DisconnectOnSessionTimeout' => [ 'shape' => 'Boolean', ], 'TransitGatewayConfiguration' => [ 'shape' => 'TransitGatewayConfigurationInputStructure', ], ], ], 'ModifyClientVpnEndpointResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyDefaultCreditSpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceFamily', 'CpuCredits', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceFamily' => [ 'shape' => 'UnlimitedSupportedInstanceFamily', ], 'CpuCredits' => [ 'shape' => 'String', ], ], ], 'ModifyDefaultCreditSpecificationResult' => [ 'type' => 'structure', 'members' => [ 'InstanceFamilyCreditSpecification' => [ 'shape' => 'InstanceFamilyCreditSpecification', 'locationName' => 'instanceFamilyCreditSpecification', ], ], ], 'ModifyEbsDefaultKmsKeyIdRequest' => [ 'type' => 'structure', 'required' => [ 'KmsKeyId', ], 'members' => [ 'KmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyEbsDefaultKmsKeyIdResult' => [ 'type' => 'structure', 'members' => [ 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], ], ], 'ModifyFleetRequest' => [ 'type' => 'structure', 'required' => [ 'FleetId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'FleetExcessCapacityTerminationPolicy', ], 'LaunchTemplateConfigs' => [ 'shape' => 'FleetLaunchTemplateConfigListRequest', 'locationName' => 'LaunchTemplateConfig', ], 'FleetId' => [ 'shape' => 'FleetId', ], 'TargetCapacitySpecification' => [ 'shape' => 'TargetCapacitySpecificationRequest', ], 'Context' => [ 'shape' => 'String', ], ], ], 'ModifyFleetResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyFpgaImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'FpgaImageId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FpgaImageId' => [ 'shape' => 'FpgaImageId', ], 'Attribute' => [ 'shape' => 'FpgaImageAttributeName', ], 'OperationType' => [ 'shape' => 'OperationType', ], 'UserIds' => [ 'shape' => 'UserIdStringList', 'locationName' => 'UserId', ], 'UserGroups' => [ 'shape' => 'UserGroupStringList', 'locationName' => 'UserGroup', ], 'ProductCodes' => [ 'shape' => 'ProductCodeStringList', 'locationName' => 'ProductCode', ], 'LoadPermission' => [ 'shape' => 'LoadPermissionModifications', ], 'Description' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], ], ], 'ModifyFpgaImageAttributeResult' => [ 'type' => 'structure', 'members' => [ 'FpgaImageAttribute' => [ 'shape' => 'FpgaImageAttribute', 'locationName' => 'fpgaImageAttribute', ], ], ], 'ModifyHostsRequest' => [ 'type' => 'structure', 'required' => [ 'HostIds', ], 'members' => [ 'HostRecovery' => [ 'shape' => 'HostRecovery', ], 'InstanceType' => [ 'shape' => 'String', ], 'InstanceFamily' => [ 'shape' => 'String', ], 'HostMaintenance' => [ 'shape' => 'HostMaintenance', ], 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], 'AutoPlacement' => [ 'shape' => 'AutoPlacement', 'locationName' => 'autoPlacement', ], ], ], 'ModifyHostsResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'successful', ], 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemList', 'locationName' => 'unsuccessful', ], ], ], 'ModifyIdFormatRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'UseLongIds', ], 'members' => [ 'Resource' => [ 'shape' => 'String', ], 'UseLongIds' => [ 'shape' => 'Boolean', ], ], ], 'ModifyIdentityIdFormatRequest' => [ 'type' => 'structure', 'required' => [ 'Resource', 'UseLongIds', 'PrincipalArn', ], 'members' => [ 'Resource' => [ 'shape' => 'String', 'locationName' => 'resource', ], 'UseLongIds' => [ 'shape' => 'Boolean', 'locationName' => 'useLongIds', ], 'PrincipalArn' => [ 'shape' => 'String', 'locationName' => 'principalArn', ], ], ], 'ModifyImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'Attribute' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'AttributeValue', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'LaunchPermission' => [ 'shape' => 'LaunchPermissionModifications', ], 'OperationType' => [ 'shape' => 'OperationType', ], 'ProductCodes' => [ 'shape' => 'ProductCodeStringList', 'locationName' => 'ProductCode', ], 'UserGroups' => [ 'shape' => 'UserGroupStringList', 'locationName' => 'UserGroup', ], 'UserIds' => [ 'shape' => 'UserIdStringList', 'locationName' => 'UserId', ], 'Value' => [ 'shape' => 'String', ], 'OrganizationArns' => [ 'shape' => 'OrganizationArnStringList', 'locationName' => 'OrganizationArn', ], 'OrganizationalUnitArns' => [ 'shape' => 'OrganizationalUnitArnStringList', 'locationName' => 'OrganizationalUnitArn', ], 'ImdsSupport' => [ 'shape' => 'AttributeValue', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ModifyInstanceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'SourceDestCheck' => [ 'shape' => 'AttributeBooleanValue', ], 'EnclaveOptions' => [ 'shape' => 'EnclaveOptionsRequest', ], 'DisableApiStop' => [ 'shape' => 'AttributeBooleanValue', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'Attribute' => [ 'shape' => 'InstanceAttributeName', 'locationName' => 'attribute', ], 'Value' => [ 'shape' => 'ModifyInstanceAttributeValue', 'locationName' => 'value', ], 'BlockDeviceMappings' => [ 'shape' => 'InstanceBlockDeviceMappingSpecificationList', 'locationName' => 'blockDeviceMapping', ], 'DisableApiTermination' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'disableApiTermination', ], 'InstanceType' => [ 'shape' => 'AttributeValue', 'locationName' => 'instanceType', ], 'Kernel' => [ 'shape' => 'AttributeValue', 'locationName' => 'kernel', ], 'Ramdisk' => [ 'shape' => 'AttributeValue', 'locationName' => 'ramdisk', ], 'UserData' => [ 'shape' => 'SecureBlobAttributeValue', 'locationName' => 'userData', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'AttributeValue', 'locationName' => 'instanceInitiatedShutdownBehavior', ], 'Groups' => [ 'shape' => 'GroupIdStringList', 'locationName' => 'GroupId', ], 'EbsOptimized' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'ebsOptimized', ], 'SriovNetSupport' => [ 'shape' => 'AttributeValue', 'locationName' => 'sriovNetSupport', ], 'EnaSupport' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'enaSupport', ], ], ], 'ModifyInstanceAttributeUserDataRequest' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'ModifyInstanceAttributeValue', ], ], ], 'ModifyInstanceAttributeValue' => [ 'type' => 'string', 'sensitive' => true, ], 'ModifyInstanceCapacityReservationAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'CapacityReservationSpecification', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'CapacityReservationSpecification' => [ 'shape' => 'CapacityReservationSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyInstanceCapacityReservationAttributesResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyInstanceConnectEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceConnectEndpointId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceConnectEndpointId' => [ 'shape' => 'InstanceConnectEndpointId', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdStringListRequest', 'locationName' => 'SecurityGroupId', ], 'PreserveClientIp' => [ 'shape' => 'Boolean', ], ], ], 'ModifyInstanceConnectEndpointResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyInstanceCpuOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'CoreCount' => [ 'shape' => 'Integer', ], 'ThreadsPerCore' => [ 'shape' => 'Integer', ], 'NestedVirtualization' => [ 'shape' => 'NestedVirtualizationSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyInstanceCpuOptionsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'CoreCount' => [ 'shape' => 'Integer', 'locationName' => 'coreCount', ], 'ThreadsPerCore' => [ 'shape' => 'Integer', 'locationName' => 'threadsPerCore', ], 'NestedVirtualization' => [ 'shape' => 'NestedVirtualizationSpecification', 'locationName' => 'nestedVirtualization', ], ], ], 'ModifyInstanceCreditSpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceCreditSpecifications', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', ], 'InstanceCreditSpecifications' => [ 'shape' => 'InstanceCreditSpecificationListRequest', 'locationName' => 'InstanceCreditSpecification', ], ], ], 'ModifyInstanceCreditSpecificationResult' => [ 'type' => 'structure', 'members' => [ 'SuccessfulInstanceCreditSpecifications' => [ 'shape' => 'SuccessfulInstanceCreditSpecificationSet', 'locationName' => 'successfulInstanceCreditSpecificationSet', ], 'UnsuccessfulInstanceCreditSpecifications' => [ 'shape' => 'UnsuccessfulInstanceCreditSpecificationSet', 'locationName' => 'unsuccessfulInstanceCreditSpecificationSet', ], ], ], 'ModifyInstanceEventStartTimeRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'InstanceEventId', 'NotBefore', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'InstanceEventId' => [ 'shape' => 'String', ], 'NotBefore' => [ 'shape' => 'DateTime', ], ], ], 'ModifyInstanceEventStartTimeResult' => [ 'type' => 'structure', 'members' => [ 'Event' => [ 'shape' => 'InstanceStatusEvent', 'locationName' => 'event', ], ], ], 'ModifyInstanceEventWindowRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceEventWindowId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Name' => [ 'shape' => 'String', ], 'InstanceEventWindowId' => [ 'shape' => 'InstanceEventWindowId', ], 'TimeRanges' => [ 'shape' => 'InstanceEventWindowTimeRangeRequestSet', 'locationName' => 'TimeRange', ], 'CronExpression' => [ 'shape' => 'InstanceEventWindowCronExpression', ], ], ], 'ModifyInstanceEventWindowResult' => [ 'type' => 'structure', 'members' => [ 'InstanceEventWindow' => [ 'shape' => 'InstanceEventWindow', 'locationName' => 'instanceEventWindow', ], ], ], 'ModifyInstanceMaintenanceOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'AutoRecovery' => [ 'shape' => 'InstanceAutoRecoveryState', ], 'RebootMigration' => [ 'shape' => 'InstanceRebootMigrationState', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyInstanceMaintenanceOptionsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'AutoRecovery' => [ 'shape' => 'InstanceAutoRecoveryState', 'locationName' => 'autoRecovery', ], 'RebootMigration' => [ 'shape' => 'InstanceRebootMigrationState', 'locationName' => 'rebootMigration', ], ], ], 'ModifyInstanceMetadataDefaultsRequest' => [ 'type' => 'structure', 'members' => [ 'HttpTokens' => [ 'shape' => 'MetadataDefaultHttpTokensState', ], 'HttpPutResponseHopLimit' => [ 'shape' => 'BoxedInteger', ], 'HttpEndpoint' => [ 'shape' => 'DefaultInstanceMetadataEndpointState', ], 'InstanceMetadataTags' => [ 'shape' => 'DefaultInstanceMetadataTagsState', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'HttpTokensEnforced' => [ 'shape' => 'DefaultHttpTokensEnforcedState', ], ], ], 'ModifyInstanceMetadataDefaultsResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyInstanceMetadataOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'HttpTokens' => [ 'shape' => 'HttpTokensState', ], 'HttpPutResponseHopLimit' => [ 'shape' => 'Integer', ], 'HttpEndpoint' => [ 'shape' => 'InstanceMetadataEndpointState', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'HttpProtocolIpv6' => [ 'shape' => 'InstanceMetadataProtocolState', ], 'InstanceMetadataTags' => [ 'shape' => 'InstanceMetadataTagsState', ], ], ], 'ModifyInstanceMetadataOptionsResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceMetadataOptions' => [ 'shape' => 'InstanceMetadataOptionsResponse', 'locationName' => 'instanceMetadataOptions', ], ], ], 'ModifyInstanceNetworkPerformanceRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'BandwidthWeighting', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'BandwidthWeighting' => [ 'shape' => 'InstanceBandwidthWeighting', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyInstanceNetworkPerformanceResult' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'BandwidthWeighting' => [ 'shape' => 'InstanceBandwidthWeighting', 'locationName' => 'bandwidthWeighting', ], ], ], 'ModifyInstancePlacementRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'GroupName' => [ 'shape' => 'PlacementGroupName', ], 'PartitionNumber' => [ 'shape' => 'Integer', ], 'HostResourceGroupArn' => [ 'shape' => 'String', ], 'GroupId' => [ 'shape' => 'PlacementGroupId', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'Tenancy' => [ 'shape' => 'HostTenancy', 'locationName' => 'tenancy', ], 'Affinity' => [ 'shape' => 'Affinity', 'locationName' => 'affinity', ], 'HostId' => [ 'shape' => 'DedicatedHostId', 'locationName' => 'hostId', ], ], ], 'ModifyInstancePlacementResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyIpamPolicyAllocationRulesRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPolicyId', 'Locale', 'ResourceType', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPolicyId' => [ 'shape' => 'IpamPolicyId', ], 'Locale' => [ 'shape' => 'String', ], 'ResourceType' => [ 'shape' => 'IpamPolicyResourceType', ], 'AllocationRules' => [ 'shape' => 'IpamPolicyAllocationRuleListRequest', 'locationName' => 'AllocationRule', ], ], ], 'ModifyIpamPolicyAllocationRulesResult' => [ 'type' => 'structure', 'members' => [ 'IpamPolicyDocument' => [ 'shape' => 'IpamPolicyDocument', 'locationName' => 'ipamPolicyDocument', ], ], ], 'ModifyIpamPoolAllocationRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolAllocationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolAllocationId' => [ 'shape' => 'IpamPoolAllocationId', ], 'Description' => [ 'shape' => 'String', ], ], ], 'ModifyIpamPoolAllocationResult' => [ 'type' => 'structure', 'members' => [ 'IpamPoolAllocation' => [ 'shape' => 'IpamPoolAllocation', 'locationName' => 'ipamPoolAllocation', ], ], ], 'ModifyIpamPoolRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Description' => [ 'shape' => 'String', ], 'AutoImport' => [ 'shape' => 'Boolean', ], 'AllocationMinNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', ], 'AllocationMaxNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', ], 'AllocationDefaultNetmaskLength' => [ 'shape' => 'IpamNetmaskLength', ], 'ClearAllocationDefaultNetmaskLength' => [ 'shape' => 'Boolean', ], 'AddAllocationResourceTags' => [ 'shape' => 'RequestIpamResourceTagList', 'locationName' => 'AddAllocationResourceTag', ], 'RemoveAllocationResourceTags' => [ 'shape' => 'RequestIpamResourceTagList', 'locationName' => 'RemoveAllocationResourceTag', ], ], ], 'ModifyIpamPoolResult' => [ 'type' => 'structure', 'members' => [ 'IpamPool' => [ 'shape' => 'IpamPool', 'locationName' => 'ipamPool', ], ], ], 'ModifyIpamPrefixListResolverRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPrefixListResolverId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPrefixListResolverId' => [ 'shape' => 'IpamPrefixListResolverId', ], 'Description' => [ 'shape' => 'String', ], 'Rules' => [ 'shape' => 'IpamPrefixListResolverRuleRequestSet', 'locationName' => 'Rule', ], ], ], 'ModifyIpamPrefixListResolverResult' => [ 'type' => 'structure', 'members' => [ 'IpamPrefixListResolver' => [ 'shape' => 'IpamPrefixListResolver', 'locationName' => 'ipamPrefixListResolver', ], ], ], 'ModifyIpamPrefixListResolverTargetRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPrefixListResolverTargetId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPrefixListResolverTargetId' => [ 'shape' => 'IpamPrefixListResolverTargetId', ], 'DesiredVersion' => [ 'shape' => 'BoxedLong', ], 'TrackLatestVersion' => [ 'shape' => 'BoxedBoolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'ModifyIpamPrefixListResolverTargetResult' => [ 'type' => 'structure', 'members' => [ 'IpamPrefixListResolverTarget' => [ 'shape' => 'IpamPrefixListResolverTarget', 'locationName' => 'ipamPrefixListResolverTarget', ], ], ], 'ModifyIpamRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamId' => [ 'shape' => 'IpamId', ], 'Description' => [ 'shape' => 'String', ], 'AddOperatingRegions' => [ 'shape' => 'AddIpamOperatingRegionSet', 'locationName' => 'AddOperatingRegion', ], 'RemoveOperatingRegions' => [ 'shape' => 'RemoveIpamOperatingRegionSet', 'locationName' => 'RemoveOperatingRegion', ], 'Tier' => [ 'shape' => 'IpamTier', ], 'EnablePrivateGua' => [ 'shape' => 'Boolean', ], 'MeteredAccount' => [ 'shape' => 'IpamMeteredAccount', ], ], ], 'ModifyIpamResourceCidrRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceId', 'ResourceCidr', 'ResourceRegion', 'CurrentIpamScopeId', 'Monitored', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ResourceId' => [ 'shape' => 'String', ], 'ResourceCidr' => [ 'shape' => 'String', ], 'ResourceRegion' => [ 'shape' => 'String', ], 'CurrentIpamScopeId' => [ 'shape' => 'IpamScopeId', ], 'DestinationIpamScopeId' => [ 'shape' => 'IpamScopeId', ], 'Monitored' => [ 'shape' => 'Boolean', ], ], ], 'ModifyIpamResourceCidrResult' => [ 'type' => 'structure', 'members' => [ 'IpamResourceCidr' => [ 'shape' => 'IpamResourceCidr', 'locationName' => 'ipamResourceCidr', ], ], ], 'ModifyIpamResourceDiscoveryRequest' => [ 'type' => 'structure', 'required' => [ 'IpamResourceDiscoveryId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamResourceDiscoveryId' => [ 'shape' => 'IpamResourceDiscoveryId', ], 'Description' => [ 'shape' => 'String', ], 'AddOperatingRegions' => [ 'shape' => 'AddIpamOperatingRegionSet', 'locationName' => 'AddOperatingRegion', ], 'RemoveOperatingRegions' => [ 'shape' => 'RemoveIpamOperatingRegionSet', 'locationName' => 'RemoveOperatingRegion', ], 'AddOrganizationalUnitExclusions' => [ 'shape' => 'AddIpamOrganizationalUnitExclusionSet', 'locationName' => 'AddOrganizationalUnitExclusion', ], 'RemoveOrganizationalUnitExclusions' => [ 'shape' => 'RemoveIpamOrganizationalUnitExclusionSet', 'locationName' => 'RemoveOrganizationalUnitExclusion', ], ], ], 'ModifyIpamResourceDiscoveryResult' => [ 'type' => 'structure', 'members' => [ 'IpamResourceDiscovery' => [ 'shape' => 'IpamResourceDiscovery', 'locationName' => 'ipamResourceDiscovery', ], ], ], 'ModifyIpamResult' => [ 'type' => 'structure', 'members' => [ 'Ipam' => [ 'shape' => 'Ipam', 'locationName' => 'ipam', ], ], ], 'ModifyIpamScopeRequest' => [ 'type' => 'structure', 'required' => [ 'IpamScopeId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamScopeId' => [ 'shape' => 'IpamScopeId', ], 'Description' => [ 'shape' => 'String', ], 'ExternalAuthorityConfiguration' => [ 'shape' => 'ExternalAuthorityConfiguration', ], 'RemoveExternalAuthorityConfiguration' => [ 'shape' => 'Boolean', ], ], ], 'ModifyIpamScopeResult' => [ 'type' => 'structure', 'members' => [ 'IpamScope' => [ 'shape' => 'IpamScope', 'locationName' => 'ipamScope', ], ], ], 'ModifyLaunchTemplateRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'LaunchTemplateId' => [ 'shape' => 'LaunchTemplateId', ], 'LaunchTemplateName' => [ 'shape' => 'LaunchTemplateName', ], 'DefaultVersion' => [ 'shape' => 'String', 'locationName' => 'SetDefaultVersion', ], ], ], 'ModifyLaunchTemplateResult' => [ 'type' => 'structure', 'members' => [ 'LaunchTemplate' => [ 'shape' => 'LaunchTemplate', 'locationName' => 'launchTemplate', ], ], ], 'ModifyLocalGatewayRouteRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', ], 'LocalGatewayVirtualInterfaceGroupId' => [ 'shape' => 'LocalGatewayVirtualInterfaceGroupId', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'DestinationPrefixListId' => [ 'shape' => 'PrefixListResourceId', ], ], ], 'ModifyLocalGatewayRouteResult' => [ 'type' => 'structure', 'members' => [ 'Route' => [ 'shape' => 'LocalGatewayRoute', 'locationName' => 'route', ], ], ], 'ModifyManagedPrefixListRequest' => [ 'type' => 'structure', 'required' => [ 'PrefixListId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'CurrentVersion' => [ 'shape' => 'Long', ], 'PrefixListName' => [ 'shape' => 'String', ], 'AddEntries' => [ 'shape' => 'AddPrefixListEntries', 'locationName' => 'AddEntry', ], 'RemoveEntries' => [ 'shape' => 'RemovePrefixListEntries', 'locationName' => 'RemoveEntry', ], 'MaxEntries' => [ 'shape' => 'Integer', ], 'IpamPrefixListResolverSyncEnabled' => [ 'shape' => 'BoxedBoolean', ], ], ], 'ModifyManagedPrefixListResult' => [ 'type' => 'structure', 'members' => [ 'PrefixList' => [ 'shape' => 'ManagedPrefixList', 'locationName' => 'prefixList', ], ], ], 'ModifyManagedResourceVisibilityRequest' => [ 'type' => 'structure', 'required' => [ 'DefaultVisibility', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'DefaultVisibility' => [ 'shape' => 'ManagedResourceDefaultVisibility', ], ], ], 'ModifyManagedResourceVisibilityResult' => [ 'type' => 'structure', 'members' => [ 'Visibility' => [ 'shape' => 'ManagedResourceVisibilitySettings', 'locationName' => 'visibility', ], ], ], 'ModifyNetworkInterfaceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'EnaSrdSpecification' => [ 'shape' => 'EnaSrdSpecification', ], 'EnablePrimaryIpv6' => [ 'shape' => 'Boolean', ], 'ConnectionTrackingSpecification' => [ 'shape' => 'ConnectionTrackingSpecificationRequest', ], 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', ], 'AssociatedSubnetIds' => [ 'shape' => 'SubnetIdList', 'locationName' => 'AssociatedSubnetId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'Description' => [ 'shape' => 'AttributeValue', 'locationName' => 'description', ], 'SourceDestCheck' => [ 'shape' => 'AttributeBooleanValue', 'locationName' => 'sourceDestCheck', ], 'Groups' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'Attachment' => [ 'shape' => 'NetworkInterfaceAttachmentChanges', 'locationName' => 'attachment', ], ], ], 'ModifyPrivateDnsNameOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceId' => [ 'shape' => 'InstanceId', ], 'PrivateDnsHostnameType' => [ 'shape' => 'HostnameType', ], 'EnableResourceNameDnsARecord' => [ 'shape' => 'Boolean', ], 'EnableResourceNameDnsAAAARecord' => [ 'shape' => 'Boolean', ], ], ], 'ModifyPrivateDnsNameOptionsResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyPublicIpDnsNameOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', 'HostnameType', ], 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'HostnameType' => [ 'shape' => 'PublicIpDnsOption', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyPublicIpDnsNameOptionsResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'Boolean', 'locationName' => 'successful', ], ], ], 'ModifyReservedInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'ReservedInstancesIds', 'TargetConfigurations', ], 'members' => [ 'ReservedInstancesIds' => [ 'shape' => 'ReservedInstancesIdStringList', 'locationName' => 'ReservedInstancesId', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'TargetConfigurations' => [ 'shape' => 'ReservedInstancesConfigurationList', 'locationName' => 'ReservedInstancesConfigurationSetItemType', ], ], ], 'ModifyReservedInstancesResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesModificationId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesModificationId', ], ], ], 'ModifyRouteServerRequest' => [ 'type' => 'structure', 'required' => [ 'RouteServerId', ], 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', ], 'PersistRoutes' => [ 'shape' => 'RouteServerPersistRoutesAction', ], 'PersistRoutesDuration' => [ 'shape' => 'BoxedLong', ], 'SnsNotificationsEnabled' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyRouteServerResult' => [ 'type' => 'structure', 'members' => [ 'RouteServer' => [ 'shape' => 'RouteServer', 'locationName' => 'routeServer', ], ], ], 'ModifySecurityGroupRulesRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', 'SecurityGroupRules', ], 'members' => [ 'GroupId' => [ 'shape' => 'SecurityGroupId', ], 'SecurityGroupRules' => [ 'shape' => 'SecurityGroupRuleUpdateList', 'locationName' => 'SecurityGroupRule', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifySecurityGroupRulesResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifySnapshotAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', ], 'members' => [ 'Attribute' => [ 'shape' => 'SnapshotAttributeName', ], 'CreateVolumePermission' => [ 'shape' => 'CreateVolumePermissionModifications', ], 'GroupNames' => [ 'shape' => 'GroupNameStringList', 'locationName' => 'UserGroup', ], 'OperationType' => [ 'shape' => 'OperationType', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'UserIds' => [ 'shape' => 'UserIdStringList', 'locationName' => 'UserId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ModifySnapshotTierRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', ], 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'StorageTier' => [ 'shape' => 'TargetStorageTier', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifySnapshotTierResult' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'TieringStartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'tieringStartTime', ], ], ], 'ModifySpotFleetRequestRequest' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestId', ], 'members' => [ 'LaunchTemplateConfigs' => [ 'shape' => 'LaunchTemplateConfigList', 'locationName' => 'LaunchTemplateConfig', ], 'OnDemandTargetCapacity' => [ 'shape' => 'Integer', ], 'Context' => [ 'shape' => 'String', ], 'SpotFleetRequestId' => [ 'shape' => 'SpotFleetRequestId', 'locationName' => 'spotFleetRequestId', ], 'TargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'targetCapacity', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'ExcessCapacityTerminationPolicy', 'locationName' => 'excessCapacityTerminationPolicy', ], ], ], 'ModifySpotFleetRequestResponse' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifySubnetAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'SubnetId', ], 'members' => [ 'AssignIpv6AddressOnCreation' => [ 'shape' => 'AttributeBooleanValue', ], 'MapPublicIpOnLaunch' => [ 'shape' => 'AttributeBooleanValue', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'MapCustomerOwnedIpOnLaunch' => [ 'shape' => 'AttributeBooleanValue', ], 'CustomerOwnedIpv4Pool' => [ 'shape' => 'CoipPoolId', ], 'EnableDns64' => [ 'shape' => 'AttributeBooleanValue', ], 'PrivateDnsHostnameTypeOnLaunch' => [ 'shape' => 'HostnameType', ], 'EnableResourceNameDnsARecordOnLaunch' => [ 'shape' => 'AttributeBooleanValue', ], 'EnableResourceNameDnsAAAARecordOnLaunch' => [ 'shape' => 'AttributeBooleanValue', ], 'EnableLniAtDeviceIndex' => [ 'shape' => 'Integer', ], 'DisableLniAtDeviceIndex' => [ 'shape' => 'AttributeBooleanValue', ], ], ], 'ModifyTrafficMirrorFilterNetworkServicesRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficMirrorFilterId', ], 'members' => [ 'TrafficMirrorFilterId' => [ 'shape' => 'TrafficMirrorFilterId', ], 'AddNetworkServices' => [ 'shape' => 'TrafficMirrorNetworkServiceList', 'locationName' => 'AddNetworkService', ], 'RemoveNetworkServices' => [ 'shape' => 'TrafficMirrorNetworkServiceList', 'locationName' => 'RemoveNetworkService', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyTrafficMirrorFilterNetworkServicesResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilter' => [ 'shape' => 'TrafficMirrorFilter', 'locationName' => 'trafficMirrorFilter', ], ], ], 'ModifyTrafficMirrorFilterRuleRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficMirrorFilterRuleId', ], 'members' => [ 'TrafficMirrorFilterRuleId' => [ 'shape' => 'TrafficMirrorFilterRuleIdWithResolver', ], 'TrafficDirection' => [ 'shape' => 'TrafficDirection', ], 'RuleNumber' => [ 'shape' => 'Integer', ], 'RuleAction' => [ 'shape' => 'TrafficMirrorRuleAction', ], 'DestinationPortRange' => [ 'shape' => 'TrafficMirrorPortRangeRequest', ], 'SourcePortRange' => [ 'shape' => 'TrafficMirrorPortRangeRequest', ], 'Protocol' => [ 'shape' => 'Integer', ], 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'SourceCidrBlock' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], 'RemoveFields' => [ 'shape' => 'TrafficMirrorFilterRuleFieldList', 'locationName' => 'RemoveField', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyTrafficMirrorFilterRuleResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterRule' => [ 'shape' => 'TrafficMirrorFilterRule', 'locationName' => 'trafficMirrorFilterRule', ], ], ], 'ModifyTrafficMirrorSessionRequest' => [ 'type' => 'structure', 'required' => [ 'TrafficMirrorSessionId', ], 'members' => [ 'TrafficMirrorSessionId' => [ 'shape' => 'TrafficMirrorSessionId', ], 'TrafficMirrorTargetId' => [ 'shape' => 'TrafficMirrorTargetId', ], 'TrafficMirrorFilterId' => [ 'shape' => 'TrafficMirrorFilterId', ], 'PacketLength' => [ 'shape' => 'Integer', ], 'SessionNumber' => [ 'shape' => 'Integer', ], 'VirtualNetworkId' => [ 'shape' => 'Integer', ], 'Description' => [ 'shape' => 'String', ], 'RemoveFields' => [ 'shape' => 'TrafficMirrorSessionFieldList', 'locationName' => 'RemoveField', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyTrafficMirrorSessionResult' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorSession' => [ 'shape' => 'TrafficMirrorSession', 'locationName' => 'trafficMirrorSession', ], ], ], 'ModifyTransitGatewayMeteringPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMeteringPolicyId', ], 'members' => [ 'TransitGatewayMeteringPolicyId' => [ 'shape' => 'TransitGatewayMeteringPolicyId', ], 'AddMiddleboxAttachmentIds' => [ 'shape' => 'TransitGatewayAttachmentIdStringList', 'locationName' => 'AddMiddleboxAttachmentId', ], 'RemoveMiddleboxAttachmentIds' => [ 'shape' => 'TransitGatewayAttachmentIdStringList', 'locationName' => 'RemoveMiddleboxAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyTransitGatewayMeteringPolicyResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicy' => [ 'shape' => 'TransitGatewayMeteringPolicy', 'locationName' => 'transitGatewayMeteringPolicy', ], ], ], 'ModifyTransitGatewayOptions' => [ 'type' => 'structure', 'members' => [ 'AddTransitGatewayCidrBlocks' => [ 'shape' => 'TransitGatewayCidrBlockStringList', ], 'RemoveTransitGatewayCidrBlocks' => [ 'shape' => 'TransitGatewayCidrBlockStringList', ], 'VpnEcmpSupport' => [ 'shape' => 'VpnEcmpSupportValue', ], 'DnsSupport' => [ 'shape' => 'DnsSupportValue', ], 'SecurityGroupReferencingSupport' => [ 'shape' => 'SecurityGroupReferencingSupportValue', ], 'AutoAcceptSharedAttachments' => [ 'shape' => 'AutoAcceptSharedAttachmentsValue', ], 'DefaultRouteTableAssociation' => [ 'shape' => 'DefaultRouteTableAssociationValue', ], 'AssociationDefaultRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'DefaultRouteTablePropagation' => [ 'shape' => 'DefaultRouteTablePropagationValue', ], 'PropagationDefaultRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'AmazonSideAsn' => [ 'shape' => 'Long', ], 'EncryptionSupport' => [ 'shape' => 'EncryptionSupportOptionValue', ], ], ], 'ModifyTransitGatewayPrefixListReferenceRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'PrefixListId', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'Blackhole' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyTransitGatewayPrefixListReferenceResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPrefixListReference' => [ 'shape' => 'TransitGatewayPrefixListReference', 'locationName' => 'transitGatewayPrefixListReference', ], ], ], 'ModifyTransitGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayId', ], 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'Description' => [ 'shape' => 'String', ], 'Options' => [ 'shape' => 'ModifyTransitGatewayOptions', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyTransitGatewayResult' => [ 'type' => 'structure', 'members' => [ 'TransitGateway' => [ 'shape' => 'TransitGateway', 'locationName' => 'transitGateway', ], ], ], 'ModifyTransitGatewayVpcAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'AddSubnetIds' => [ 'shape' => 'TransitGatewaySubnetIdList', ], 'RemoveSubnetIds' => [ 'shape' => 'TransitGatewaySubnetIdList', ], 'Options' => [ 'shape' => 'ModifyTransitGatewayVpcAttachmentRequestOptions', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyTransitGatewayVpcAttachmentRequestOptions' => [ 'type' => 'structure', 'members' => [ 'DnsSupport' => [ 'shape' => 'DnsSupportValue', ], 'SecurityGroupReferencingSupport' => [ 'shape' => 'SecurityGroupReferencingSupportValue', ], 'Ipv6Support' => [ 'shape' => 'Ipv6SupportValue', ], 'ApplianceModeSupport' => [ 'shape' => 'ApplianceModeSupportValue', ], ], ], 'ModifyTransitGatewayVpcAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachment' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'transitGatewayVpcAttachment', ], ], ], 'ModifyVerifiedAccessEndpointCidrOptions' => [ 'type' => 'structure', 'members' => [ 'PortRanges' => [ 'shape' => 'ModifyVerifiedAccessEndpointPortRangeList', 'locationName' => 'PortRange', ], ], ], 'ModifyVerifiedAccessEndpointEniOptions' => [ 'type' => 'structure', 'members' => [ 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], 'PortRanges' => [ 'shape' => 'ModifyVerifiedAccessEndpointPortRangeList', 'locationName' => 'PortRange', ], ], ], 'ModifyVerifiedAccessEndpointLoadBalancerOptions' => [ 'type' => 'structure', 'members' => [ 'SubnetIds' => [ 'shape' => 'ModifyVerifiedAccessEndpointSubnetIdList', 'locationName' => 'SubnetId', ], 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], 'PortRanges' => [ 'shape' => 'ModifyVerifiedAccessEndpointPortRangeList', 'locationName' => 'PortRange', ], ], ], 'ModifyVerifiedAccessEndpointPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessEndpointId', ], 'members' => [ 'VerifiedAccessEndpointId' => [ 'shape' => 'VerifiedAccessEndpointId', ], 'PolicyEnabled' => [ 'shape' => 'Boolean', ], 'PolicyDocument' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationRequest', ], ], ], 'ModifyVerifiedAccessEndpointPolicyResult' => [ 'type' => 'structure', 'members' => [ 'PolicyEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'policyEnabled', ], 'PolicyDocument' => [ 'shape' => 'String', 'locationName' => 'policyDocument', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationResponse', 'locationName' => 'sseSpecification', ], ], ], 'ModifyVerifiedAccessEndpointPortRange' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], 'ToPort' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], ], ], 'ModifyVerifiedAccessEndpointPortRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ModifyVerifiedAccessEndpointPortRange', 'locationName' => 'item', ], ], 'ModifyVerifiedAccessEndpointRdsOptions' => [ 'type' => 'structure', 'members' => [ 'SubnetIds' => [ 'shape' => 'ModifyVerifiedAccessEndpointSubnetIdList', 'locationName' => 'SubnetId', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', ], 'RdsEndpoint' => [ 'shape' => 'String', ], ], ], 'ModifyVerifiedAccessEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessEndpointId', ], 'members' => [ 'VerifiedAccessEndpointId' => [ 'shape' => 'VerifiedAccessEndpointId', ], 'VerifiedAccessGroupId' => [ 'shape' => 'VerifiedAccessGroupId', ], 'LoadBalancerOptions' => [ 'shape' => 'ModifyVerifiedAccessEndpointLoadBalancerOptions', ], 'NetworkInterfaceOptions' => [ 'shape' => 'ModifyVerifiedAccessEndpointEniOptions', ], 'Description' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'RdsOptions' => [ 'shape' => 'ModifyVerifiedAccessEndpointRdsOptions', ], 'CidrOptions' => [ 'shape' => 'ModifyVerifiedAccessEndpointCidrOptions', ], ], ], 'ModifyVerifiedAccessEndpointResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessEndpoint' => [ 'shape' => 'VerifiedAccessEndpoint', 'locationName' => 'verifiedAccessEndpoint', ], ], ], 'ModifyVerifiedAccessEndpointSubnetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', 'locationName' => 'item', ], ], 'ModifyVerifiedAccessGroupPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessGroupId', ], 'members' => [ 'VerifiedAccessGroupId' => [ 'shape' => 'VerifiedAccessGroupId', ], 'PolicyEnabled' => [ 'shape' => 'Boolean', ], 'PolicyDocument' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationRequest', ], ], ], 'ModifyVerifiedAccessGroupPolicyResult' => [ 'type' => 'structure', 'members' => [ 'PolicyEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'policyEnabled', ], 'PolicyDocument' => [ 'shape' => 'String', 'locationName' => 'policyDocument', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationResponse', 'locationName' => 'sseSpecification', ], ], ], 'ModifyVerifiedAccessGroupRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessGroupId', ], 'members' => [ 'VerifiedAccessGroupId' => [ 'shape' => 'VerifiedAccessGroupId', ], 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'Description' => [ 'shape' => 'String', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyVerifiedAccessGroupResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessGroup' => [ 'shape' => 'VerifiedAccessGroup', 'locationName' => 'verifiedAccessGroup', ], ], ], 'ModifyVerifiedAccessInstanceLoggingConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessInstanceId', 'AccessLogs', ], 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'AccessLogs' => [ 'shape' => 'VerifiedAccessLogOptions', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'ModifyVerifiedAccessInstanceLoggingConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'LoggingConfiguration' => [ 'shape' => 'VerifiedAccessInstanceLoggingConfiguration', 'locationName' => 'loggingConfiguration', ], ], ], 'ModifyVerifiedAccessInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessInstanceId', ], 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'VerifiedAccessInstanceId', ], 'Description' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'CidrEndpointsCustomSubDomain' => [ 'shape' => 'String', ], ], ], 'ModifyVerifiedAccessInstanceResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstance' => [ 'shape' => 'VerifiedAccessInstance', 'locationName' => 'verifiedAccessInstance', ], ], ], 'ModifyVerifiedAccessNativeApplicationOidcOptions' => [ 'type' => 'structure', 'members' => [ 'PublicSigningKeyEndpoint' => [ 'shape' => 'String', ], 'Issuer' => [ 'shape' => 'String', ], 'AuthorizationEndpoint' => [ 'shape' => 'String', ], 'TokenEndpoint' => [ 'shape' => 'String', ], 'UserInfoEndpoint' => [ 'shape' => 'String', ], 'ClientId' => [ 'shape' => 'String', ], 'ClientSecret' => [ 'shape' => 'ClientSecretType', ], 'Scope' => [ 'shape' => 'String', ], ], ], 'ModifyVerifiedAccessTrustProviderDeviceOptions' => [ 'type' => 'structure', 'members' => [ 'PublicSigningKeyUrl' => [ 'shape' => 'String', ], ], ], 'ModifyVerifiedAccessTrustProviderOidcOptions' => [ 'type' => 'structure', 'members' => [ 'Issuer' => [ 'shape' => 'String', ], 'AuthorizationEndpoint' => [ 'shape' => 'String', ], 'TokenEndpoint' => [ 'shape' => 'String', ], 'UserInfoEndpoint' => [ 'shape' => 'String', ], 'ClientId' => [ 'shape' => 'String', ], 'ClientSecret' => [ 'shape' => 'ClientSecretType', ], 'Scope' => [ 'shape' => 'String', ], ], ], 'ModifyVerifiedAccessTrustProviderRequest' => [ 'type' => 'structure', 'required' => [ 'VerifiedAccessTrustProviderId', ], 'members' => [ 'VerifiedAccessTrustProviderId' => [ 'shape' => 'VerifiedAccessTrustProviderId', ], 'OidcOptions' => [ 'shape' => 'ModifyVerifiedAccessTrustProviderOidcOptions', ], 'DeviceOptions' => [ 'shape' => 'ModifyVerifiedAccessTrustProviderDeviceOptions', ], 'Description' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationRequest', ], 'NativeApplicationOidcOptions' => [ 'shape' => 'ModifyVerifiedAccessNativeApplicationOidcOptions', ], ], ], 'ModifyVerifiedAccessTrustProviderResult' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProvider' => [ 'shape' => 'VerifiedAccessTrustProvider', 'locationName' => 'verifiedAccessTrustProvider', ], ], ], 'ModifyVolumeAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'AutoEnableIO' => [ 'shape' => 'AttributeBooleanValue', ], 'VolumeId' => [ 'shape' => 'VolumeId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ModifyVolumeRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VolumeId' => [ 'shape' => 'VolumeId', ], 'Size' => [ 'shape' => 'Integer', ], 'VolumeType' => [ 'shape' => 'VolumeType', ], 'Iops' => [ 'shape' => 'Integer', ], 'Throughput' => [ 'shape' => 'Integer', ], 'MultiAttachEnabled' => [ 'shape' => 'Boolean', ], ], ], 'ModifyVolumeResult' => [ 'type' => 'structure', 'members' => [ 'VolumeModification' => [ 'shape' => 'VolumeModification', 'locationName' => 'volumeModification', ], ], ], 'ModifyVpcAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', ], 'members' => [ 'EnableDnsHostnames' => [ 'shape' => 'AttributeBooleanValue', ], 'EnableDnsSupport' => [ 'shape' => 'AttributeBooleanValue', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'EnableNetworkAddressUsageMetrics' => [ 'shape' => 'AttributeBooleanValue', ], ], ], 'ModifyVpcBlockPublicAccessExclusionRequest' => [ 'type' => 'structure', 'required' => [ 'ExclusionId', 'InternetGatewayExclusionMode', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ExclusionId' => [ 'shape' => 'VpcBlockPublicAccessExclusionId', ], 'InternetGatewayExclusionMode' => [ 'shape' => 'InternetGatewayExclusionMode', ], ], ], 'ModifyVpcBlockPublicAccessExclusionResult' => [ 'type' => 'structure', 'members' => [ 'VpcBlockPublicAccessExclusion' => [ 'shape' => 'VpcBlockPublicAccessExclusion', 'locationName' => 'vpcBlockPublicAccessExclusion', ], ], ], 'ModifyVpcBlockPublicAccessOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'InternetGatewayBlockMode', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InternetGatewayBlockMode' => [ 'shape' => 'InternetGatewayBlockMode', ], ], ], 'ModifyVpcBlockPublicAccessOptionsResult' => [ 'type' => 'structure', 'members' => [ 'VpcBlockPublicAccessOptions' => [ 'shape' => 'VpcBlockPublicAccessOptions', 'locationName' => 'vpcBlockPublicAccessOptions', ], ], ], 'ModifyVpcEncryptionControlRequest' => [ 'type' => 'structure', 'required' => [ 'VpcEncryptionControlId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcEncryptionControlId' => [ 'shape' => 'VpcEncryptionControlId', ], 'Mode' => [ 'shape' => 'VpcEncryptionControlMode', ], 'InternetGatewayExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'EgressOnlyInternetGatewayExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'NatGatewayExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VirtualPrivateGatewayExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VpcPeeringExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'LambdaExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VpcLatticeExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'ElasticFileSystemExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], ], ], 'ModifyVpcEncryptionControlResult' => [ 'type' => 'structure', 'members' => [ 'VpcEncryptionControl' => [ 'shape' => 'VpcEncryptionControl', 'locationName' => 'vpcEncryptionControl', ], ], ], 'ModifyVpcEndpointConnectionNotificationRequest' => [ 'type' => 'structure', 'required' => [ 'ConnectionNotificationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ConnectionNotificationId' => [ 'shape' => 'ConnectionNotificationId', ], 'ConnectionNotificationArn' => [ 'shape' => 'String', ], 'ConnectionEvents' => [ 'shape' => 'ValueStringList', ], ], ], 'ModifyVpcEndpointConnectionNotificationResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyVpcEndpointPayerResponsibilityRequest' => [ 'type' => 'structure', 'required' => [ 'VpcEndpointId', 'PayerResponsibility', 'Scope', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], 'VpcEndpointId' => [ 'shape' => 'VpcEndpointId', ], 'PayerResponsibility' => [ 'shape' => 'PayerResponsibilityType', ], 'Scope' => [ 'shape' => 'PayerResponsibilityScope', ], ], ], 'ModifyVpcEndpointPayerResponsibilityResult' => [ 'type' => 'structure', 'members' => [ 'VpcEndpointId' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointId', ], 'PayerResponsibilities' => [ 'shape' => 'PayerResponsibilitySet', 'locationName' => 'payerResponsibilitySet', ], ], ], 'ModifyVpcEndpointRequest' => [ 'type' => 'structure', 'required' => [ 'VpcEndpointId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'VpcEndpointId' => [ 'shape' => 'VpcEndpointId', ], 'ResetPolicy' => [ 'shape' => 'Boolean', ], 'PolicyDocument' => [ 'shape' => 'String', ], 'AddRouteTableIds' => [ 'shape' => 'VpcEndpointRouteTableIdList', 'locationName' => 'AddRouteTableId', ], 'RemoveRouteTableIds' => [ 'shape' => 'VpcEndpointRouteTableIdList', 'locationName' => 'RemoveRouteTableId', ], 'AddSubnetIds' => [ 'shape' => 'VpcEndpointSubnetIdList', 'locationName' => 'AddSubnetId', ], 'RemoveSubnetIds' => [ 'shape' => 'VpcEndpointSubnetIdList', 'locationName' => 'RemoveSubnetId', ], 'AddSecurityGroupIds' => [ 'shape' => 'VpcEndpointSecurityGroupIdList', 'locationName' => 'AddSecurityGroupId', ], 'RemoveSecurityGroupIds' => [ 'shape' => 'VpcEndpointSecurityGroupIdList', 'locationName' => 'RemoveSecurityGroupId', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', ], 'DnsOptions' => [ 'shape' => 'DnsOptionsSpecification', ], 'PrivateDnsEnabled' => [ 'shape' => 'Boolean', ], 'SubnetConfigurations' => [ 'shape' => 'SubnetConfigurationsList', 'locationName' => 'SubnetConfiguration', ], ], ], 'ModifyVpcEndpointResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyVpcEndpointServiceConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], 'PrivateDnsName' => [ 'shape' => 'String', ], 'RemovePrivateDnsName' => [ 'shape' => 'Boolean', ], 'AcceptanceRequired' => [ 'shape' => 'Boolean', ], 'AddNetworkLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'AddNetworkLoadBalancerArn', ], 'RemoveNetworkLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'RemoveNetworkLoadBalancerArn', ], 'AddGatewayLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'AddGatewayLoadBalancerArn', ], 'RemoveGatewayLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'RemoveGatewayLoadBalancerArn', ], 'AddSupportedIpAddressTypes' => [ 'shape' => 'ValueStringList', 'locationName' => 'AddSupportedIpAddressType', ], 'RemoveSupportedIpAddressTypes' => [ 'shape' => 'ValueStringList', 'locationName' => 'RemoveSupportedIpAddressType', ], 'AddSupportedRegions' => [ 'shape' => 'ValueStringList', 'locationName' => 'AddSupportedRegion', ], 'RemoveSupportedRegions' => [ 'shape' => 'ValueStringList', 'locationName' => 'RemoveSupportedRegion', ], ], ], 'ModifyVpcEndpointServiceConfigurationResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyVpcEndpointServicePayerResponsibilityRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', 'PayerResponsibility', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], 'PayerResponsibility' => [ 'shape' => 'PayerResponsibility', ], ], ], 'ModifyVpcEndpointServicePayerResponsibilityResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyVpcEndpointServicePermissionsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], 'AddAllowedPrincipals' => [ 'shape' => 'ValueStringList', ], 'RemoveAllowedPrincipals' => [ 'shape' => 'ValueStringList', ], ], ], 'ModifyVpcEndpointServicePermissionsResult' => [ 'type' => 'structure', 'members' => [ 'AddedPrincipals' => [ 'shape' => 'AddedPrincipalSet', 'locationName' => 'addedPrincipalSet', ], 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyVpcPeeringConnectionOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'VpcPeeringConnectionId', ], 'members' => [ 'AccepterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptionsRequest', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'RequesterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptionsRequest', ], 'VpcPeeringConnectionId' => [ 'shape' => 'VpcPeeringConnectionId', ], ], ], 'ModifyVpcPeeringConnectionOptionsResult' => [ 'type' => 'structure', 'members' => [ 'AccepterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptions', 'locationName' => 'accepterPeeringConnectionOptions', ], 'RequesterPeeringConnectionOptions' => [ 'shape' => 'PeeringConnectionOptions', 'locationName' => 'requesterPeeringConnectionOptions', ], ], ], 'ModifyVpcTenancyRequest' => [ 'type' => 'structure', 'required' => [ 'VpcId', 'InstanceTenancy', ], 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', ], 'InstanceTenancy' => [ 'shape' => 'VpcTenancy', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyVpcTenancyResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ModifyVpnConnectionOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'LocalIpv4NetworkCidr' => [ 'shape' => 'String', ], 'RemoteIpv4NetworkCidr' => [ 'shape' => 'String', ], 'LocalIpv6NetworkCidr' => [ 'shape' => 'String', ], 'RemoteIpv6NetworkCidr' => [ 'shape' => 'String', ], 'TunnelBandwidth' => [ 'shape' => 'VpnTunnelBandwidth', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyVpnConnectionOptionsResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnection' => [ 'shape' => 'VpnConnection', 'locationName' => 'vpnConnection', ], ], ], 'ModifyVpnConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'CustomerGatewayId' => [ 'shape' => 'CustomerGatewayId', ], 'VpnGatewayId' => [ 'shape' => 'VpnGatewayId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyVpnConnectionResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnection' => [ 'shape' => 'VpnConnection', 'locationName' => 'vpnConnection', ], ], ], 'ModifyVpnTunnelCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', 'VpnTunnelOutsideIpAddress', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'VpnTunnelOutsideIpAddress' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ModifyVpnTunnelCertificateResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnection' => [ 'shape' => 'VpnConnection', 'locationName' => 'vpnConnection', ], ], ], 'ModifyVpnTunnelOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', 'VpnTunnelOutsideIpAddress', 'TunnelOptions', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'VpnTunnelOutsideIpAddress' => [ 'shape' => 'String', ], 'TunnelOptions' => [ 'shape' => 'ModifyVpnTunnelOptionsSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'SkipTunnelReplacement' => [ 'shape' => 'Boolean', ], 'PreSharedKeyStorage' => [ 'shape' => 'String', ], ], ], 'ModifyVpnTunnelOptionsResult' => [ 'type' => 'structure', 'members' => [ 'VpnConnection' => [ 'shape' => 'VpnConnection', 'locationName' => 'vpnConnection', ], ], ], 'ModifyVpnTunnelOptionsSpecification' => [ 'type' => 'structure', 'members' => [ 'TunnelInsideCidr' => [ 'shape' => 'String', ], 'TunnelInsideIpv6Cidr' => [ 'shape' => 'String', ], 'PreSharedKey' => [ 'shape' => 'preSharedKey', ], 'Phase1LifetimeSeconds' => [ 'shape' => 'Integer', ], 'Phase2LifetimeSeconds' => [ 'shape' => 'Integer', ], 'RekeyMarginTimeSeconds' => [ 'shape' => 'Integer', ], 'RekeyFuzzPercentage' => [ 'shape' => 'Integer', ], 'ReplayWindowSize' => [ 'shape' => 'Integer', ], 'DPDTimeoutSeconds' => [ 'shape' => 'Integer', ], 'DPDTimeoutAction' => [ 'shape' => 'String', ], 'Phase1EncryptionAlgorithms' => [ 'shape' => 'Phase1EncryptionAlgorithmsRequestList', 'locationName' => 'Phase1EncryptionAlgorithm', ], 'Phase2EncryptionAlgorithms' => [ 'shape' => 'Phase2EncryptionAlgorithmsRequestList', 'locationName' => 'Phase2EncryptionAlgorithm', ], 'Phase1IntegrityAlgorithms' => [ 'shape' => 'Phase1IntegrityAlgorithmsRequestList', 'locationName' => 'Phase1IntegrityAlgorithm', ], 'Phase2IntegrityAlgorithms' => [ 'shape' => 'Phase2IntegrityAlgorithmsRequestList', 'locationName' => 'Phase2IntegrityAlgorithm', ], 'Phase1DHGroupNumbers' => [ 'shape' => 'Phase1DHGroupNumbersRequestList', 'locationName' => 'Phase1DHGroupNumber', ], 'Phase2DHGroupNumbers' => [ 'shape' => 'Phase2DHGroupNumbersRequestList', 'locationName' => 'Phase2DHGroupNumber', ], 'IKEVersions' => [ 'shape' => 'IKEVersionsRequestList', 'locationName' => 'IKEVersion', ], 'StartupAction' => [ 'shape' => 'String', ], 'LogOptions' => [ 'shape' => 'VpnTunnelLogOptionsSpecification', ], 'EnableTunnelLifecycleControl' => [ 'shape' => 'Boolean', ], ], 'sensitive' => true, ], 'MonitorInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'MonitorInstancesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceMonitorings' => [ 'shape' => 'InstanceMonitoringList', 'locationName' => 'instancesSet', ], ], ], 'Monitoring' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'MonitoringState', 'locationName' => 'state', ], ], ], 'MonitoringState' => [ 'type' => 'string', 'enum' => [ 'disabled', 'disabling', 'enabled', 'pending', ], ], 'MoveAddressToVpcRequest' => [ 'type' => 'structure', 'required' => [ 'PublicIp', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], ], ], 'MoveAddressToVpcResult' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'Status' => [ 'shape' => 'Status', 'locationName' => 'status', ], ], ], 'MoveByoipCidrToIpamRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', 'IpamPoolId', 'IpamPoolOwner', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'Cidr' => [ 'shape' => 'String', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'IpamPoolOwner' => [ 'shape' => 'String', ], ], ], 'MoveByoipCidrToIpamResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidr' => [ 'shape' => 'ByoipCidr', 'locationName' => 'byoipCidr', ], ], ], 'MoveCapacityReservationInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'SourceCapacityReservationId', 'DestinationCapacityReservationId', 'InstanceCount', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'SourceCapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'DestinationCapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'InstanceCount' => [ 'shape' => 'Integer', ], ], ], 'MoveCapacityReservationInstancesResult' => [ 'type' => 'structure', 'members' => [ 'SourceCapacityReservation' => [ 'shape' => 'CapacityReservation', 'locationName' => 'sourceCapacityReservation', ], 'DestinationCapacityReservation' => [ 'shape' => 'CapacityReservation', 'locationName' => 'destinationCapacityReservation', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], ], ], 'MoveStatus' => [ 'type' => 'string', 'enum' => [ 'movingToVpc', 'restoringToClassic', ], ], 'MovingAddressStatus' => [ 'type' => 'structure', 'members' => [ 'MoveStatus' => [ 'shape' => 'MoveStatus', 'locationName' => 'moveStatus', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], ], ], 'MovingAddressStatusSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'MovingAddressStatus', 'locationName' => 'item', ], ], 'MulticastSupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'NatGateway' => [ 'type' => 'structure', 'members' => [ 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'DeleteTime' => [ 'shape' => 'DateTime', 'locationName' => 'deleteTime', ], 'FailureCode' => [ 'shape' => 'String', 'locationName' => 'failureCode', ], 'FailureMessage' => [ 'shape' => 'String', 'locationName' => 'failureMessage', ], 'NatGatewayAddresses' => [ 'shape' => 'NatGatewayAddressList', 'locationName' => 'natGatewayAddressSet', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], 'ProvisionedBandwidth' => [ 'shape' => 'ProvisionedBandwidth', 'locationName' => 'provisionedBandwidth', ], 'State' => [ 'shape' => 'NatGatewayState', 'locationName' => 'state', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'ConnectivityType' => [ 'shape' => 'ConnectivityType', 'locationName' => 'connectivityType', ], 'AvailabilityMode' => [ 'shape' => 'AvailabilityMode', 'locationName' => 'availabilityMode', ], 'AutoScalingIps' => [ 'shape' => 'AutoScalingIpsState', 'locationName' => 'autoScalingIps', ], 'AutoProvisionZones' => [ 'shape' => 'AutoProvisionZonesState', 'locationName' => 'autoProvisionZones', ], 'AttachedAppliances' => [ 'shape' => 'NatGatewayAttachedApplianceList', 'locationName' => 'attachedApplianceSet', ], 'RouteTableId' => [ 'shape' => 'String', 'locationName' => 'routeTableId', ], ], ], 'NatGatewayAddress' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'PrivateIp' => [ 'shape' => 'String', 'locationName' => 'privateIp', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'IsPrimary' => [ 'shape' => 'Boolean', 'locationName' => 'isPrimary', ], 'FailureMessage' => [ 'shape' => 'String', 'locationName' => 'failureMessage', ], 'Status' => [ 'shape' => 'NatGatewayAddressStatus', 'locationName' => 'status', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], ], ], 'NatGatewayAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NatGatewayAddress', 'locationName' => 'item', ], ], 'NatGatewayAddressStatus' => [ 'type' => 'string', 'enum' => [ 'assigning', 'unassigning', 'associating', 'disassociating', 'succeeded', 'failed', ], ], 'NatGatewayApplianceModifyState' => [ 'type' => 'string', 'enum' => [ 'modifying', 'completed', 'failed', ], ], 'NatGatewayApplianceState' => [ 'type' => 'string', 'enum' => [ 'attaching', 'attached', 'detaching', 'detached', 'attach-failed', 'detach-failed', ], ], 'NatGatewayApplianceType' => [ 'type' => 'string', 'enum' => [ 'network-firewall-proxy', ], ], 'NatGatewayAttachedAppliance' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'NatGatewayApplianceType', 'locationName' => 'type', ], 'ApplianceArn' => [ 'shape' => 'String', 'locationName' => 'applianceArn', ], 'VpcEndpointId' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointId', ], 'AttachmentState' => [ 'shape' => 'NatGatewayApplianceState', 'locationName' => 'attachmentState', ], 'ModificationState' => [ 'shape' => 'NatGatewayApplianceModifyState', 'locationName' => 'modificationState', ], 'FailureCode' => [ 'shape' => 'String', 'locationName' => 'failureCode', ], 'FailureMessage' => [ 'shape' => 'String', 'locationName' => 'failureMessage', ], ], ], 'NatGatewayAttachedApplianceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NatGatewayAttachedAppliance', 'locationName' => 'item', ], ], 'NatGatewayId' => [ 'type' => 'string', ], 'NatGatewayIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NatGatewayId', 'locationName' => 'item', ], ], 'NatGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NatGateway', 'locationName' => 'item', ], ], 'NatGatewayState' => [ 'type' => 'string', 'enum' => [ 'pending', 'failed', 'available', 'deleting', 'deleted', ], ], 'NativeApplicationOidcOptions' => [ 'type' => 'structure', 'members' => [ 'PublicSigningKeyEndpoint' => [ 'shape' => 'String', 'locationName' => 'publicSigningKeyEndpoint', ], 'Issuer' => [ 'shape' => 'String', 'locationName' => 'issuer', ], 'AuthorizationEndpoint' => [ 'shape' => 'String', 'locationName' => 'authorizationEndpoint', ], 'TokenEndpoint' => [ 'shape' => 'String', 'locationName' => 'tokenEndpoint', ], 'UserInfoEndpoint' => [ 'shape' => 'String', 'locationName' => 'userInfoEndpoint', ], 'ClientId' => [ 'shape' => 'String', 'locationName' => 'clientId', ], 'Scope' => [ 'shape' => 'String', 'locationName' => 'scope', ], ], ], 'NestedVirtualizationSpecification' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'NetmaskLength' => [ 'type' => 'integer', ], 'NetworkAcl' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'NetworkAclAssociationList', 'locationName' => 'associationSet', ], 'Entries' => [ 'shape' => 'NetworkAclEntryList', 'locationName' => 'entrySet', ], 'IsDefault' => [ 'shape' => 'Boolean', 'locationName' => 'default', ], 'NetworkAclId' => [ 'shape' => 'String', 'locationName' => 'networkAclId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], ], ], 'NetworkAclAssociation' => [ 'type' => 'structure', 'members' => [ 'NetworkAclAssociationId' => [ 'shape' => 'String', 'locationName' => 'networkAclAssociationId', ], 'NetworkAclId' => [ 'shape' => 'String', 'locationName' => 'networkAclId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], ], ], 'NetworkAclAssociationId' => [ 'type' => 'string', ], 'NetworkAclAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkAclAssociation', 'locationName' => 'item', ], ], 'NetworkAclEntry' => [ 'type' => 'structure', 'members' => [ 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'Egress' => [ 'shape' => 'Boolean', 'locationName' => 'egress', ], 'IcmpTypeCode' => [ 'shape' => 'IcmpTypeCode', 'locationName' => 'icmpTypeCode', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], 'PortRange' => [ 'shape' => 'PortRange', 'locationName' => 'portRange', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'RuleAction' => [ 'shape' => 'RuleAction', 'locationName' => 'ruleAction', ], 'RuleNumber' => [ 'shape' => 'Integer', 'locationName' => 'ruleNumber', ], ], ], 'NetworkAclEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkAclEntry', 'locationName' => 'item', ], ], 'NetworkAclId' => [ 'type' => 'string', ], 'NetworkAclIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkAclId', 'locationName' => 'item', ], ], 'NetworkAclList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkAcl', 'locationName' => 'item', ], ], 'NetworkBandwidthGbps' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Double', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Double', 'locationName' => 'max', ], ], ], 'NetworkBandwidthGbpsRequest' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Double', ], 'Max' => [ 'shape' => 'Double', ], ], ], 'NetworkCardIndex' => [ 'type' => 'integer', ], 'NetworkCardInfo' => [ 'type' => 'structure', 'members' => [ 'NetworkCardIndex' => [ 'shape' => 'NetworkCardIndex', 'locationName' => 'networkCardIndex', ], 'NetworkPerformance' => [ 'shape' => 'NetworkPerformance', 'locationName' => 'networkPerformance', ], 'MaximumNetworkInterfaces' => [ 'shape' => 'MaxNetworkInterfaces', 'locationName' => 'maximumNetworkInterfaces', ], 'AdditionalFlexibleNetworkInterfaces' => [ 'shape' => 'AdditionalFlexibleNetworkInterfaces', 'locationName' => 'additionalFlexibleNetworkInterfaces', ], 'BaselineBandwidthInGbps' => [ 'shape' => 'BaselineBandwidthInGbps', 'locationName' => 'baselineBandwidthInGbps', ], 'PeakBandwidthInGbps' => [ 'shape' => 'PeakBandwidthInGbps', 'locationName' => 'peakBandwidthInGbps', ], 'DefaultEnaQueueCountPerInterface' => [ 'shape' => 'DefaultEnaQueueCountPerInterface', 'locationName' => 'defaultEnaQueueCountPerInterface', ], 'MaximumEnaQueueCount' => [ 'shape' => 'MaximumEnaQueueCount', 'locationName' => 'maximumEnaQueueCount', ], 'MaximumEnaQueueCountPerInterface' => [ 'shape' => 'MaximumEnaQueueCountPerInterface', 'locationName' => 'maximumEnaQueueCountPerInterface', ], ], ], 'NetworkCardInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkCardInfo', 'locationName' => 'item', ], ], 'NetworkInfo' => [ 'type' => 'structure', 'members' => [ 'NetworkPerformance' => [ 'shape' => 'NetworkPerformance', 'locationName' => 'networkPerformance', ], 'MaximumNetworkInterfaces' => [ 'shape' => 'MaxNetworkInterfaces', 'locationName' => 'maximumNetworkInterfaces', ], 'MaximumNetworkCards' => [ 'shape' => 'MaximumNetworkCards', 'locationName' => 'maximumNetworkCards', ], 'DefaultNetworkCardIndex' => [ 'shape' => 'DefaultNetworkCardIndex', 'locationName' => 'defaultNetworkCardIndex', ], 'NetworkCards' => [ 'shape' => 'NetworkCardInfoList', 'locationName' => 'networkCards', ], 'Ipv4AddressesPerInterface' => [ 'shape' => 'MaxIpv4AddrPerInterface', 'locationName' => 'ipv4AddressesPerInterface', ], 'Ipv6AddressesPerInterface' => [ 'shape' => 'MaxIpv6AddrPerInterface', 'locationName' => 'ipv6AddressesPerInterface', ], 'Ipv6Supported' => [ 'shape' => 'Ipv6Flag', 'locationName' => 'ipv6Supported', ], 'EnaSupport' => [ 'shape' => 'EnaSupport', 'locationName' => 'enaSupport', ], 'EfaSupported' => [ 'shape' => 'EfaSupportedFlag', 'locationName' => 'efaSupported', ], 'EfaInfo' => [ 'shape' => 'EfaInfo', 'locationName' => 'efaInfo', ], 'EncryptionInTransitSupported' => [ 'shape' => 'EncryptionInTransitSupported', 'locationName' => 'encryptionInTransitSupported', ], 'EnaSrdSupported' => [ 'shape' => 'EnaSrdSupported', 'locationName' => 'enaSrdSupported', ], 'BandwidthWeightings' => [ 'shape' => 'BandwidthWeightingTypeList', 'locationName' => 'bandwidthWeightings', ], 'FlexibleEnaQueuesSupport' => [ 'shape' => 'FlexibleEnaQueuesSupport', 'locationName' => 'flexibleEnaQueuesSupport', ], 'ConnectionTrackingConfiguration' => [ 'shape' => 'DefaultConnectionTrackingConfiguration', 'locationName' => 'connectionTrackingConfiguration', ], 'SecondaryNetworkSupported' => [ 'shape' => 'SecondaryNetworkSupportedFlag', 'locationName' => 'secondaryNetworkSupported', ], 'MaximumSecondaryNetworkInterfaces' => [ 'shape' => 'MaximumSecondaryNetworkInterfaces', 'locationName' => 'maximumSecondaryNetworkInterfaces', ], 'Ipv4AddressesPerSecondaryInterface' => [ 'shape' => 'Ipv4AddressesPerSecondaryInterface', 'locationName' => 'ipv4AddressesPerSecondaryInterface', ], ], ], 'NetworkInsightsAccessScope' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', 'locationName' => 'networkInsightsAccessScopeId', ], 'NetworkInsightsAccessScopeArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'networkInsightsAccessScopeArn', ], 'CreatedDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createdDate', ], 'UpdatedDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'updatedDate', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'NetworkInsightsAccessScopeAnalysis' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeAnalysisId' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisId', 'locationName' => 'networkInsightsAccessScopeAnalysisId', ], 'NetworkInsightsAccessScopeAnalysisArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'networkInsightsAccessScopeAnalysisArn', ], 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', 'locationName' => 'networkInsightsAccessScopeId', ], 'Status' => [ 'shape' => 'AnalysisStatus', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'WarningMessage' => [ 'shape' => 'String', 'locationName' => 'warningMessage', ], 'StartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startDate', ], 'EndDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'endDate', ], 'FindingsFound' => [ 'shape' => 'FindingsFound', 'locationName' => 'findingsFound', ], 'AnalyzedEniCount' => [ 'shape' => 'Integer', 'locationName' => 'analyzedEniCount', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'NetworkInsightsAccessScopeAnalysisId' => [ 'type' => 'string', ], 'NetworkInsightsAccessScopeAnalysisIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysisId', 'locationName' => 'item', ], ], 'NetworkInsightsAccessScopeAnalysisList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysis', 'locationName' => 'item', ], ], 'NetworkInsightsAccessScopeContent' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', 'locationName' => 'networkInsightsAccessScopeId', ], 'MatchPaths' => [ 'shape' => 'AccessScopePathList', 'locationName' => 'matchPathSet', ], 'ExcludePaths' => [ 'shape' => 'AccessScopePathList', 'locationName' => 'excludePathSet', ], ], ], 'NetworkInsightsAccessScopeId' => [ 'type' => 'string', ], 'NetworkInsightsAccessScopeIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInsightsAccessScopeId', 'locationName' => 'item', ], ], 'NetworkInsightsAccessScopeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInsightsAccessScope', 'locationName' => 'item', ], ], 'NetworkInsightsAnalysis' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAnalysisId' => [ 'shape' => 'NetworkInsightsAnalysisId', 'locationName' => 'networkInsightsAnalysisId', ], 'NetworkInsightsAnalysisArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'networkInsightsAnalysisArn', ], 'NetworkInsightsPathId' => [ 'shape' => 'NetworkInsightsPathId', 'locationName' => 'networkInsightsPathId', ], 'AdditionalAccounts' => [ 'shape' => 'ValueStringList', 'locationName' => 'additionalAccountSet', ], 'FilterInArns' => [ 'shape' => 'ArnList', 'locationName' => 'filterInArnSet', ], 'FilterOutArns' => [ 'shape' => 'ArnList', 'locationName' => 'filterOutArnSet', ], 'StartDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startDate', ], 'Status' => [ 'shape' => 'AnalysisStatus', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'WarningMessage' => [ 'shape' => 'String', 'locationName' => 'warningMessage', ], 'NetworkPathFound' => [ 'shape' => 'Boolean', 'locationName' => 'networkPathFound', ], 'ForwardPathComponents' => [ 'shape' => 'PathComponentList', 'locationName' => 'forwardPathComponentSet', ], 'ReturnPathComponents' => [ 'shape' => 'PathComponentList', 'locationName' => 'returnPathComponentSet', ], 'Explanations' => [ 'shape' => 'ExplanationList', 'locationName' => 'explanationSet', ], 'AlternatePathHints' => [ 'shape' => 'AlternatePathHintList', 'locationName' => 'alternatePathHintSet', ], 'SuggestedAccounts' => [ 'shape' => 'ValueStringList', 'locationName' => 'suggestedAccountSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'NetworkInsightsAnalysisId' => [ 'type' => 'string', ], 'NetworkInsightsAnalysisIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInsightsAnalysisId', 'locationName' => 'item', ], ], 'NetworkInsightsAnalysisList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInsightsAnalysis', 'locationName' => 'item', ], ], 'NetworkInsightsMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'NetworkInsightsPath' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsPathId' => [ 'shape' => 'NetworkInsightsPathId', 'locationName' => 'networkInsightsPathId', ], 'NetworkInsightsPathArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'networkInsightsPathArn', ], 'CreatedDate' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createdDate', ], 'Source' => [ 'shape' => 'String', 'locationName' => 'source', ], 'Destination' => [ 'shape' => 'String', 'locationName' => 'destination', ], 'SourceArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'sourceArn', ], 'DestinationArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'destinationArn', ], 'SourceIp' => [ 'shape' => 'IpAddress', 'locationName' => 'sourceIp', ], 'DestinationIp' => [ 'shape' => 'IpAddress', 'locationName' => 'destinationIp', ], 'Protocol' => [ 'shape' => 'Protocol', 'locationName' => 'protocol', ], 'DestinationPort' => [ 'shape' => 'Integer', 'locationName' => 'destinationPort', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'FilterAtSource' => [ 'shape' => 'PathFilter', 'locationName' => 'filterAtSource', ], 'FilterAtDestination' => [ 'shape' => 'PathFilter', 'locationName' => 'filterAtDestination', ], ], ], 'NetworkInsightsPathId' => [ 'type' => 'string', ], 'NetworkInsightsPathIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInsightsPathId', 'locationName' => 'item', ], ], 'NetworkInsightsPathList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInsightsPath', 'locationName' => 'item', ], ], 'NetworkInsightsResourceId' => [ 'type' => 'string', ], 'NetworkInterface' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'NetworkInterfaceAssociation', 'locationName' => 'association', ], 'Attachment' => [ 'shape' => 'NetworkInterfaceAttachment', 'locationName' => 'attachment', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'ConnectionTrackingConfiguration' => [ 'shape' => 'ConnectionTrackingConfiguration', 'locationName' => 'connectionTrackingConfiguration', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'InterfaceType' => [ 'shape' => 'NetworkInterfaceType', 'locationName' => 'interfaceType', ], 'Ipv6Addresses' => [ 'shape' => 'NetworkInterfaceIpv6AddressesList', 'locationName' => 'ipv6AddressesSet', ], 'MacAddress' => [ 'shape' => 'String', 'locationName' => 'macAddress', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PublicDnsName' => [ 'shape' => 'String', 'locationName' => 'publicDnsName', ], 'PublicIpDnsNameOptions' => [ 'shape' => 'PublicIpDnsNameOptions', 'locationName' => 'publicIpDnsNameOptions', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'PrivateIpAddresses' => [ 'shape' => 'NetworkInterfacePrivateIpAddressList', 'locationName' => 'privateIpAddressesSet', ], 'Ipv4Prefixes' => [ 'shape' => 'Ipv4PrefixesList', 'locationName' => 'ipv4PrefixSet', ], 'Ipv6Prefixes' => [ 'shape' => 'Ipv6PrefixesList', 'locationName' => 'ipv6PrefixSet', ], 'RequesterId' => [ 'shape' => 'String', 'locationName' => 'requesterId', ], 'RequesterManaged' => [ 'shape' => 'Boolean', 'locationName' => 'requesterManaged', ], 'SourceDestCheck' => [ 'shape' => 'Boolean', 'locationName' => 'sourceDestCheck', ], 'Status' => [ 'shape' => 'NetworkInterfaceStatus', 'locationName' => 'status', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'TagSet' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'DenyAllIgwTraffic' => [ 'shape' => 'Boolean', 'locationName' => 'denyAllIgwTraffic', ], 'Ipv6Native' => [ 'shape' => 'Boolean', 'locationName' => 'ipv6Native', ], 'Ipv6Address' => [ 'shape' => 'String', 'locationName' => 'ipv6Address', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], 'AssociatedSubnets' => [ 'shape' => 'AssociatedSubnetList', 'locationName' => 'associatedSubnetSet', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], ], ], 'NetworkInterfaceAssociation' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'String', 'locationName' => 'allocationId', ], 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'IpOwnerId' => [ 'shape' => 'String', 'locationName' => 'ipOwnerId', ], 'PublicDnsName' => [ 'shape' => 'String', 'locationName' => 'publicDnsName', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], 'CustomerOwnedIp' => [ 'shape' => 'String', 'locationName' => 'customerOwnedIp', ], 'CarrierIp' => [ 'shape' => 'String', 'locationName' => 'carrierIp', ], ], ], 'NetworkInterfaceAttachment' => [ 'type' => 'structure', 'members' => [ 'AttachTime' => [ 'shape' => 'DateTime', 'locationName' => 'attachTime', ], 'AttachmentId' => [ 'shape' => 'String', 'locationName' => 'attachmentId', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'networkCardIndex', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceOwnerId' => [ 'shape' => 'String', 'locationName' => 'instanceOwnerId', ], 'Status' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'status', ], 'EnaSrdSpecification' => [ 'shape' => 'AttachmentEnaSrdSpecification', 'locationName' => 'enaSrdSpecification', ], 'EnaQueueCount' => [ 'shape' => 'Integer', 'locationName' => 'enaQueueCount', ], ], ], 'NetworkInterfaceAttachmentChanges' => [ 'type' => 'structure', 'members' => [ 'DefaultEnaQueueCount' => [ 'shape' => 'Boolean', ], 'EnaQueueCount' => [ 'shape' => 'Integer', ], 'AttachmentId' => [ 'shape' => 'NetworkInterfaceAttachmentId', 'locationName' => 'attachmentId', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], ], ], 'NetworkInterfaceAttachmentId' => [ 'type' => 'string', ], 'NetworkInterfaceAttribute' => [ 'type' => 'string', 'enum' => [ 'description', 'groupSet', 'sourceDestCheck', 'attachment', 'associatePublicIpAddress', ], ], 'NetworkInterfaceCount' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Integer', 'locationName' => 'max', ], ], ], 'NetworkInterfaceCountRequest' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', ], 'Max' => [ 'shape' => 'Integer', ], ], ], 'NetworkInterfaceCreationType' => [ 'type' => 'string', 'enum' => [ 'efa', 'efa-only', 'branch', 'trunk', ], ], 'NetworkInterfaceId' => [ 'type' => 'string', ], 'NetworkInterfaceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'item', ], ], 'NetworkInterfaceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'NetworkInterfaceIpv6Address' => [ 'type' => 'structure', 'members' => [ 'Ipv6Address' => [ 'shape' => 'String', 'locationName' => 'ipv6Address', ], 'PublicIpv6DnsName' => [ 'shape' => 'String', 'locationName' => 'publicIpv6DnsName', ], 'IsPrimaryIpv6' => [ 'shape' => 'Boolean', 'locationName' => 'isPrimaryIpv6', ], ], ], 'NetworkInterfaceIpv6AddressesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterfaceIpv6Address', 'locationName' => 'item', ], ], 'NetworkInterfaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterface', 'locationName' => 'item', ], ], 'NetworkInterfacePermission' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfacePermissionId' => [ 'shape' => 'String', 'locationName' => 'networkInterfacePermissionId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'AwsAccountId' => [ 'shape' => 'String', 'locationName' => 'awsAccountId', ], 'AwsService' => [ 'shape' => 'String', 'locationName' => 'awsService', ], 'Permission' => [ 'shape' => 'InterfacePermissionType', 'locationName' => 'permission', ], 'PermissionState' => [ 'shape' => 'NetworkInterfacePermissionState', 'locationName' => 'permissionState', ], ], ], 'NetworkInterfacePermissionId' => [ 'type' => 'string', ], 'NetworkInterfacePermissionIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterfacePermissionId', ], ], 'NetworkInterfacePermissionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterfacePermission', 'locationName' => 'item', ], ], 'NetworkInterfacePermissionState' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'NetworkInterfacePermissionStateCode', 'locationName' => 'state', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], ], ], 'NetworkInterfacePermissionStateCode' => [ 'type' => 'string', 'enum' => [ 'pending', 'granted', 'revoking', 'revoked', ], ], 'NetworkInterfacePrivateIpAddress' => [ 'type' => 'structure', 'members' => [ 'Association' => [ 'shape' => 'NetworkInterfaceAssociation', 'locationName' => 'association', ], 'Primary' => [ 'shape' => 'Boolean', 'locationName' => 'primary', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'NetworkInterfacePrivateIpAddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterfacePrivateIpAddress', 'locationName' => 'item', ], ], 'NetworkInterfaceStatus' => [ 'type' => 'string', 'enum' => [ 'available', 'associated', 'attaching', 'in-use', 'detaching', ], ], 'NetworkInterfaceType' => [ 'type' => 'string', 'enum' => [ 'interface', 'natGateway', 'efa', 'efa-only', 'trunk', 'load_balancer', 'network_load_balancer', 'vpc_endpoint', 'branch', 'transit_gateway', 'lambda', 'quicksight', 'global_accelerator_managed', 'api_gateway_managed', 'gateway_load_balancer', 'gateway_load_balancer_endpoint', 'iot_rules_managed', 'aws_codestar_connections_managed', ], ], 'NetworkNodeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'NetworkNodesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'NetworkPerformance' => [ 'type' => 'string', ], 'NeuronDeviceCoreCount' => [ 'type' => 'integer', ], 'NeuronDeviceCoreInfo' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => 'NeuronDeviceCoreCount', 'locationName' => 'count', ], 'Version' => [ 'shape' => 'NeuronDeviceCoreVersion', 'locationName' => 'version', ], ], ], 'NeuronDeviceCoreVersion' => [ 'type' => 'integer', ], 'NeuronDeviceCount' => [ 'type' => 'integer', ], 'NeuronDeviceInfo' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => 'NeuronDeviceCount', 'locationName' => 'count', ], 'Name' => [ 'shape' => 'NeuronDeviceName', 'locationName' => 'name', ], 'CoreInfo' => [ 'shape' => 'NeuronDeviceCoreInfo', 'locationName' => 'coreInfo', ], 'MemoryInfo' => [ 'shape' => 'NeuronDeviceMemoryInfo', 'locationName' => 'memoryInfo', ], ], ], 'NeuronDeviceInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NeuronDeviceInfo', 'locationName' => 'item', ], ], 'NeuronDeviceMemoryInfo' => [ 'type' => 'structure', 'members' => [ 'SizeInMiB' => [ 'shape' => 'NeuronDeviceMemorySize', 'locationName' => 'sizeInMiB', ], ], ], 'NeuronDeviceMemorySize' => [ 'type' => 'integer', ], 'NeuronDeviceName' => [ 'type' => 'string', ], 'NeuronInfo' => [ 'type' => 'structure', 'members' => [ 'NeuronDevices' => [ 'shape' => 'NeuronDeviceInfoList', 'locationName' => 'neuronDevices', ], 'TotalNeuronDeviceMemoryInMiB' => [ 'shape' => 'TotalNeuronMemory', 'locationName' => 'totalNeuronDeviceMemoryInMiB', ], ], ], 'NewDhcpConfiguration' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', ], 'Values' => [ 'shape' => 'ValueStringList', 'locationName' => 'Value', ], ], ], 'NewDhcpConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NewDhcpConfiguration', 'locationName' => 'item', ], ], 'NextToken' => [ 'type' => 'string', ], 'NitroEnclavesSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', ], ], 'NitroTpmInfo' => [ 'type' => 'structure', 'members' => [ 'SupportedVersions' => [ 'shape' => 'NitroTpmSupportedVersionsList', 'locationName' => 'supportedVersions', ], ], ], 'NitroTpmSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', ], ], 'NitroTpmSupportedVersionType' => [ 'type' => 'string', ], 'NitroTpmSupportedVersionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NitroTpmSupportedVersionType', 'locationName' => 'item', ], ], 'OccurrenceDayRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Integer', 'locationName' => 'OccurenceDay', ], ], 'OccurrenceDaySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Integer', 'locationName' => 'item', ], ], 'OdbNetworkArn' => [ 'type' => 'string', ], 'OfferingClassType' => [ 'type' => 'string', 'enum' => [ 'standard', 'convertible', ], ], 'OfferingId' => [ 'type' => 'string', ], 'OfferingTypeValues' => [ 'type' => 'string', 'enum' => [ 'Heavy Utilization', 'Medium Utilization', 'Light Utilization', 'No Upfront', 'Partial Upfront', 'All Upfront', ], ], 'OidcOptions' => [ 'type' => 'structure', 'members' => [ 'Issuer' => [ 'shape' => 'String', 'locationName' => 'issuer', ], 'AuthorizationEndpoint' => [ 'shape' => 'String', 'locationName' => 'authorizationEndpoint', ], 'TokenEndpoint' => [ 'shape' => 'String', 'locationName' => 'tokenEndpoint', ], 'UserInfoEndpoint' => [ 'shape' => 'String', 'locationName' => 'userInfoEndpoint', ], 'ClientId' => [ 'shape' => 'String', 'locationName' => 'clientId', ], 'ClientSecret' => [ 'shape' => 'ClientSecretType', 'locationName' => 'clientSecret', ], 'Scope' => [ 'shape' => 'String', 'locationName' => 'scope', ], ], ], 'OnDemandAllocationStrategy' => [ 'type' => 'string', 'enum' => [ 'lowestPrice', 'prioritized', ], ], 'OnDemandOptions' => [ 'type' => 'structure', 'members' => [ 'AllocationStrategy' => [ 'shape' => 'FleetOnDemandAllocationStrategy', 'locationName' => 'allocationStrategy', ], 'CapacityReservationOptions' => [ 'shape' => 'CapacityReservationOptions', 'locationName' => 'capacityReservationOptions', ], 'SingleInstanceType' => [ 'shape' => 'Boolean', 'locationName' => 'singleInstanceType', ], 'SingleAvailabilityZone' => [ 'shape' => 'Boolean', 'locationName' => 'singleAvailabilityZone', ], 'MinTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'minTargetCapacity', ], 'MaxTotalPrice' => [ 'shape' => 'String', 'locationName' => 'maxTotalPrice', ], ], ], 'OnDemandOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AllocationStrategy' => [ 'shape' => 'FleetOnDemandAllocationStrategy', ], 'CapacityReservationOptions' => [ 'shape' => 'CapacityReservationOptionsRequest', ], 'SingleInstanceType' => [ 'shape' => 'Boolean', ], 'SingleAvailabilityZone' => [ 'shape' => 'Boolean', ], 'MinTargetCapacity' => [ 'shape' => 'Integer', ], 'MaxTotalPrice' => [ 'shape' => 'String', ], ], ], 'OperationType' => [ 'type' => 'string', 'enum' => [ 'add', 'remove', ], ], 'OperatorRequest' => [ 'type' => 'structure', 'members' => [ 'Principal' => [ 'shape' => 'String', ], ], ], 'OperatorResponse' => [ 'type' => 'structure', 'members' => [ 'Managed' => [ 'shape' => 'Boolean', 'locationName' => 'managed', ], 'Principal' => [ 'shape' => 'String', 'locationName' => 'principal', ], 'HiddenByDefault' => [ 'shape' => 'Boolean', 'locationName' => 'hiddenByDefault', ], ], ], 'OrganizationArnStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'OrganizationArn', ], ], 'OrganizationalUnitArnStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'OrganizationalUnitArn', ], ], 'OutpostArn' => [ 'type' => 'string', 'pattern' => '^arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/op-[a-f0-9]{17}$', ], 'OutpostLag' => [ 'type' => 'structure', 'members' => [ 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'OutpostLagId' => [ 'shape' => 'OutpostLagId', 'locationName' => 'outpostLagId', ], 'LocalGatewayVirtualInterfaceIds' => [ 'shape' => 'LocalGatewayVirtualInterfaceIdSet', 'locationName' => 'localGatewayVirtualInterfaceIdSet', ], 'ServiceLinkVirtualInterfaceIds' => [ 'shape' => 'ServiceLinkVirtualInterfaceIdSet', 'locationName' => 'serviceLinkVirtualInterfaceIdSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'OutpostLagId' => [ 'type' => 'string', ], 'OutpostLagIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutpostLagId', 'locationName' => 'item', ], ], 'OutpostLagMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'OutpostLagSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'OutpostLag', 'locationName' => 'item', ], ], 'OutputFormat' => [ 'type' => 'string', 'enum' => [ 'csv', 'parquet', ], ], 'OwnerStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'Owner', ], ], 'PacketHeaderStatement' => [ 'type' => 'structure', 'members' => [ 'SourceAddresses' => [ 'shape' => 'ValueStringList', 'locationName' => 'sourceAddressSet', ], 'DestinationAddresses' => [ 'shape' => 'ValueStringList', 'locationName' => 'destinationAddressSet', ], 'SourcePorts' => [ 'shape' => 'ValueStringList', 'locationName' => 'sourcePortSet', ], 'DestinationPorts' => [ 'shape' => 'ValueStringList', 'locationName' => 'destinationPortSet', ], 'SourcePrefixLists' => [ 'shape' => 'ValueStringList', 'locationName' => 'sourcePrefixListSet', ], 'DestinationPrefixLists' => [ 'shape' => 'ValueStringList', 'locationName' => 'destinationPrefixListSet', ], 'Protocols' => [ 'shape' => 'ProtocolList', 'locationName' => 'protocolSet', ], ], ], 'PacketHeaderStatementRequest' => [ 'type' => 'structure', 'members' => [ 'SourceAddresses' => [ 'shape' => 'ValueStringList', 'locationName' => 'SourceAddress', ], 'DestinationAddresses' => [ 'shape' => 'ValueStringList', 'locationName' => 'DestinationAddress', ], 'SourcePorts' => [ 'shape' => 'ValueStringList', 'locationName' => 'SourcePort', ], 'DestinationPorts' => [ 'shape' => 'ValueStringList', 'locationName' => 'DestinationPort', ], 'SourcePrefixLists' => [ 'shape' => 'ValueStringList', 'locationName' => 'SourcePrefixList', ], 'DestinationPrefixLists' => [ 'shape' => 'ValueStringList', 'locationName' => 'DestinationPrefixList', ], 'Protocols' => [ 'shape' => 'ProtocolList', 'locationName' => 'Protocol', ], ], ], 'PartitionLoadFrequency' => [ 'type' => 'string', 'enum' => [ 'none', 'daily', 'weekly', 'monthly', ], ], 'PasswordData' => [ 'type' => 'string', 'sensitive' => true, ], 'PathComponent' => [ 'type' => 'structure', 'members' => [ 'SequenceNumber' => [ 'shape' => 'Integer', 'locationName' => 'sequenceNumber', ], 'AclRule' => [ 'shape' => 'AnalysisAclRule', 'locationName' => 'aclRule', ], 'AttachedTo' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'attachedTo', ], 'Component' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'component', ], 'DestinationVpc' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'destinationVpc', ], 'OutboundHeader' => [ 'shape' => 'AnalysisPacketHeader', 'locationName' => 'outboundHeader', ], 'InboundHeader' => [ 'shape' => 'AnalysisPacketHeader', 'locationName' => 'inboundHeader', ], 'RouteTableRoute' => [ 'shape' => 'AnalysisRouteTableRoute', 'locationName' => 'routeTableRoute', ], 'SecurityGroupRule' => [ 'shape' => 'AnalysisSecurityGroupRule', 'locationName' => 'securityGroupRule', ], 'SourceVpc' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'sourceVpc', ], 'Subnet' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'subnet', ], 'Vpc' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'vpc', ], 'AdditionalDetails' => [ 'shape' => 'AdditionalDetailList', 'locationName' => 'additionalDetailSet', ], 'TransitGateway' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'transitGateway', ], 'TransitGatewayRouteTableRoute' => [ 'shape' => 'TransitGatewayRouteTableRoute', 'locationName' => 'transitGatewayRouteTableRoute', ], 'Explanations' => [ 'shape' => 'ExplanationList', 'locationName' => 'explanationSet', ], 'ElasticLoadBalancerListener' => [ 'shape' => 'AnalysisComponent', 'locationName' => 'elasticLoadBalancerListener', ], 'FirewallStatelessRule' => [ 'shape' => 'FirewallStatelessRule', 'locationName' => 'firewallStatelessRule', ], 'FirewallStatefulRule' => [ 'shape' => 'FirewallStatefulRule', 'locationName' => 'firewallStatefulRule', ], 'ServiceName' => [ 'shape' => 'String', 'locationName' => 'serviceName', ], ], ], 'PathComponentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PathComponent', 'locationName' => 'item', ], ], 'PathFilter' => [ 'type' => 'structure', 'members' => [ 'SourceAddress' => [ 'shape' => 'IpAddress', 'locationName' => 'sourceAddress', ], 'SourcePortRange' => [ 'shape' => 'FilterPortRange', 'locationName' => 'sourcePortRange', ], 'DestinationAddress' => [ 'shape' => 'IpAddress', 'locationName' => 'destinationAddress', ], 'DestinationPortRange' => [ 'shape' => 'FilterPortRange', 'locationName' => 'destinationPortRange', ], ], ], 'PathRequestFilter' => [ 'type' => 'structure', 'members' => [ 'SourceAddress' => [ 'shape' => 'IpAddress', ], 'SourcePortRange' => [ 'shape' => 'RequestFilterPortRange', ], 'DestinationAddress' => [ 'shape' => 'IpAddress', ], 'DestinationPortRange' => [ 'shape' => 'RequestFilterPortRange', ], ], ], 'PathStatement' => [ 'type' => 'structure', 'members' => [ 'PacketHeaderStatement' => [ 'shape' => 'PacketHeaderStatement', 'locationName' => 'packetHeaderStatement', ], 'ResourceStatement' => [ 'shape' => 'ResourceStatement', 'locationName' => 'resourceStatement', ], ], ], 'PathStatementRequest' => [ 'type' => 'structure', 'members' => [ 'PacketHeaderStatement' => [ 'shape' => 'PacketHeaderStatementRequest', ], 'ResourceStatement' => [ 'shape' => 'ResourceStatementRequest', ], ], ], 'PayerResponsibility' => [ 'type' => 'string', 'enum' => [ 'ServiceOwner', ], ], 'PayerResponsibilityEntry' => [ 'type' => 'structure', 'members' => [ 'Scope' => [ 'shape' => 'PayerResponsibilityScope', 'locationName' => 'scope', ], 'PayerResponsibilityType' => [ 'shape' => 'PayerResponsibilityType', 'locationName' => 'payerResponsibilityType', ], ], ], 'PayerResponsibilityScope' => [ 'type' => 'string', 'enum' => [ 'vpc-endpoint-charges', ], ], 'PayerResponsibilitySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PayerResponsibilityEntry', 'locationName' => 'item', ], ], 'PayerResponsibilityType' => [ 'type' => 'string', 'enum' => [ 'vpc-endpoint-account', 'vpc-endpoint-service-account', ], ], 'PaymentOption' => [ 'type' => 'string', 'enum' => [ 'AllUpfront', 'PartialUpfront', 'NoUpfront', ], ], 'PciId' => [ 'type' => 'structure', 'members' => [ 'DeviceId' => [ 'shape' => 'String', ], 'VendorId' => [ 'shape' => 'String', ], 'SubsystemId' => [ 'shape' => 'String', ], 'SubsystemVendorId' => [ 'shape' => 'String', ], ], ], 'PeakBandwidthInGbps' => [ 'type' => 'double', ], 'PeeringAttachmentStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'PeeringConnectionOptions' => [ 'type' => 'structure', 'members' => [ 'AllowDnsResolutionFromRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowDnsResolutionFromRemoteVpc', ], 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalClassicLinkToRemoteVpc', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalVpcToRemoteClassicLink', ], ], ], 'PeeringConnectionOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AllowDnsResolutionFromRemoteVpc' => [ 'shape' => 'Boolean', ], 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', ], ], ], 'PeeringTgwInfo' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'CoreNetworkId' => [ 'shape' => 'String', 'locationName' => 'coreNetworkId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Region' => [ 'shape' => 'String', 'locationName' => 'region', ], ], ], 'PerformanceFactorReference' => [ 'type' => 'structure', 'members' => [ 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], ], ], 'PerformanceFactorReferenceRequest' => [ 'type' => 'structure', 'members' => [ 'InstanceFamily' => [ 'shape' => 'String', ], ], ], 'PerformanceFactorReferenceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PerformanceFactorReference', 'locationName' => 'item', ], ], 'PerformanceFactorReferenceSetRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'PerformanceFactorReferenceRequest', 'locationName' => 'item', ], ], 'Period' => [ 'type' => 'integer', 'min' => 3600, ], 'PeriodType' => [ 'type' => 'string', 'enum' => [ 'five-minutes', 'fifteen-minutes', 'one-hour', 'three-hours', 'one-day', 'one-week', ], ], 'PermissionGroup' => [ 'type' => 'string', 'enum' => [ 'all', ], ], 'Phase1DHGroupNumbersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase1DHGroupNumbersListValue', 'locationName' => 'item', ], ], 'Phase1DHGroupNumbersListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Integer', 'locationName' => 'value', ], ], ], 'Phase1DHGroupNumbersRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase1DHGroupNumbersRequestListValue', 'locationName' => 'item', ], ], 'Phase1DHGroupNumbersRequestListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Integer', ], ], ], 'Phase1EncryptionAlgorithmsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase1EncryptionAlgorithmsListValue', 'locationName' => 'item', ], ], 'Phase1EncryptionAlgorithmsListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'Phase1EncryptionAlgorithmsRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase1EncryptionAlgorithmsRequestListValue', 'locationName' => 'item', ], ], 'Phase1EncryptionAlgorithmsRequestListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', ], ], ], 'Phase1IntegrityAlgorithmsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase1IntegrityAlgorithmsListValue', 'locationName' => 'item', ], ], 'Phase1IntegrityAlgorithmsListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'Phase1IntegrityAlgorithmsRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase1IntegrityAlgorithmsRequestListValue', 'locationName' => 'item', ], ], 'Phase1IntegrityAlgorithmsRequestListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', ], ], ], 'Phase2DHGroupNumbersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase2DHGroupNumbersListValue', 'locationName' => 'item', ], ], 'Phase2DHGroupNumbersListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Integer', 'locationName' => 'value', ], ], ], 'Phase2DHGroupNumbersRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase2DHGroupNumbersRequestListValue', 'locationName' => 'item', ], ], 'Phase2DHGroupNumbersRequestListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'Integer', ], ], ], 'Phase2EncryptionAlgorithmsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase2EncryptionAlgorithmsListValue', 'locationName' => 'item', ], ], 'Phase2EncryptionAlgorithmsListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'Phase2EncryptionAlgorithmsRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase2EncryptionAlgorithmsRequestListValue', 'locationName' => 'item', ], ], 'Phase2EncryptionAlgorithmsRequestListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', ], ], ], 'Phase2IntegrityAlgorithmsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase2IntegrityAlgorithmsListValue', 'locationName' => 'item', ], ], 'Phase2IntegrityAlgorithmsListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'Phase2IntegrityAlgorithmsRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Phase2IntegrityAlgorithmsRequestListValue', 'locationName' => 'item', ], ], 'Phase2IntegrityAlgorithmsRequestListValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', ], ], ], 'PhcSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', ], ], 'Placement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], 'Affinity' => [ 'shape' => 'String', 'locationName' => 'affinity', ], 'GroupName' => [ 'shape' => 'PlacementGroupName', 'locationName' => 'groupName', ], 'PartitionNumber' => [ 'shape' => 'Integer', 'locationName' => 'partitionNumber', ], 'HostId' => [ 'shape' => 'String', 'locationName' => 'hostId', ], 'Tenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'tenancy', ], 'SpreadDomain' => [ 'shape' => 'String', 'locationName' => 'spreadDomain', ], 'HostResourceGroupArn' => [ 'shape' => 'String', 'locationName' => 'hostResourceGroupArn', ], 'GroupId' => [ 'shape' => 'PlacementGroupId', 'locationName' => 'groupId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], ], ], 'PlacementGroup' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'State' => [ 'shape' => 'PlacementGroupState', 'locationName' => 'state', ], 'Strategy' => [ 'shape' => 'PlacementStrategy', 'locationName' => 'strategy', ], 'PartitionCount' => [ 'shape' => 'Integer', 'locationName' => 'partitionCount', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'GroupArn' => [ 'shape' => 'String', 'locationName' => 'groupArn', ], 'SpreadLevel' => [ 'shape' => 'SpreadLevel', 'locationName' => 'spreadLevel', ], 'LinkedGroupId' => [ 'shape' => 'PlacementGroupId', 'locationName' => 'linkedGroupId', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], 'ParentGroupId' => [ 'shape' => 'PlacementGroupId', 'locationName' => 'parentGroupId', ], ], ], 'PlacementGroupArn' => [ 'type' => 'string', 'pattern' => '^arn:aws([a-z-]+)?:ec2:[a-z\\d-]+:\\d{12}:placement-group/^.{1,255}$', ], 'PlacementGroupId' => [ 'type' => 'string', ], 'PlacementGroupIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementGroupId', 'locationName' => 'GroupId', ], ], 'PlacementGroupInfo' => [ 'type' => 'structure', 'members' => [ 'SupportedStrategies' => [ 'shape' => 'PlacementGroupStrategyList', 'locationName' => 'supportedStrategies', ], ], ], 'PlacementGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementGroup', 'locationName' => 'item', ], ], 'PlacementGroupName' => [ 'type' => 'string', ], 'PlacementGroupNameWithResolver' => [ 'type' => 'string', ], 'PlacementGroupState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'PlacementGroupStrategy' => [ 'type' => 'string', 'enum' => [ 'cluster', 'partition', 'spread', ], ], 'PlacementGroupStrategyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementGroupStrategy', 'locationName' => 'item', ], ], 'PlacementGroupStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementGroupName', ], ], 'PlacementResponse' => [ 'type' => 'structure', 'members' => [ 'GroupName' => [ 'shape' => 'PlacementGroupName', 'locationName' => 'groupName', ], ], ], 'PlacementStrategy' => [ 'type' => 'string', 'enum' => [ 'cluster', 'spread', 'partition', 'precision-time', ], ], 'PlatformValues' => [ 'type' => 'string', 'enum' => [ 'Windows', ], ], 'PoolCidrBlock' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'poolCidrBlock', ], ], ], 'PoolCidrBlocksSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PoolCidrBlock', 'locationName' => 'item', ], ], 'PoolMaxResults' => [ 'type' => 'integer', 'max' => 10, 'min' => 1, ], 'Port' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'PortRange' => [ 'type' => 'structure', 'members' => [ 'From' => [ 'shape' => 'Integer', 'locationName' => 'from', ], 'To' => [ 'shape' => 'Integer', 'locationName' => 'to', ], ], ], 'PortRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PortRange', 'locationName' => 'item', ], ], 'PrefixList' => [ 'type' => 'structure', 'members' => [ 'Cidrs' => [ 'shape' => 'ValueStringList', 'locationName' => 'cidrSet', ], 'PrefixListId' => [ 'shape' => 'String', 'locationName' => 'prefixListId', ], 'PrefixListName' => [ 'shape' => 'String', 'locationName' => 'prefixListName', ], ], ], 'PrefixListAssociation' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceOwner' => [ 'shape' => 'String', 'locationName' => 'resourceOwner', ], ], ], 'PrefixListAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrefixListAssociation', 'locationName' => 'item', ], ], 'PrefixListEntry' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], ], ], 'PrefixListEntrySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrefixListEntry', 'locationName' => 'item', ], ], 'PrefixListId' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'PrefixListId' => [ 'shape' => 'String', 'locationName' => 'prefixListId', ], ], ], 'PrefixListIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrefixListId', 'locationName' => 'item', ], ], 'PrefixListIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'PrefixListMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'PrefixListResourceId' => [ 'type' => 'string', ], 'PrefixListResourceIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrefixListResourceId', 'locationName' => 'item', ], ], 'PrefixListSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrefixList', 'locationName' => 'item', ], ], 'PrefixListState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'modify-in-progress', 'modify-complete', 'modify-failed', 'restore-in-progress', 'restore-complete', 'restore-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', ], ], 'PriceSchedule' => [ 'type' => 'structure', 'members' => [ 'Active' => [ 'shape' => 'Boolean', 'locationName' => 'active', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Price' => [ 'shape' => 'Double', 'locationName' => 'price', ], 'Term' => [ 'shape' => 'Long', 'locationName' => 'term', ], ], ], 'PriceScheduleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PriceSchedule', 'locationName' => 'item', ], ], 'PriceScheduleSpecification' => [ 'type' => 'structure', 'members' => [ 'Term' => [ 'shape' => 'Long', 'locationName' => 'term', ], 'Price' => [ 'shape' => 'Double', 'locationName' => 'price', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], ], ], 'PriceScheduleSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PriceScheduleSpecification', 'locationName' => 'item', ], ], 'PricingDetail' => [ 'type' => 'structure', 'members' => [ 'Count' => [ 'shape' => 'Integer', 'locationName' => 'count', ], 'Price' => [ 'shape' => 'Double', 'locationName' => 'price', ], ], ], 'PricingDetailsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PricingDetail', 'locationName' => 'item', ], ], 'PrincipalIdFormat' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], 'Statuses' => [ 'shape' => 'IdFormatList', 'locationName' => 'statusSet', ], ], ], 'PrincipalIdFormatList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrincipalIdFormat', 'locationName' => 'item', ], ], 'PrincipalType' => [ 'type' => 'string', 'enum' => [ 'All', 'Service', 'OrganizationUnit', 'Account', 'User', 'Role', ], ], 'Priority' => [ 'type' => 'integer', 'max' => 65535, 'min' => -1, ], 'PrivateDnsDetails' => [ 'type' => 'structure', 'members' => [ 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], ], ], 'PrivateDnsDetailsSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrivateDnsDetails', 'locationName' => 'item', ], ], 'PrivateDnsNameConfiguration' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'DnsNameState', 'locationName' => 'state', ], 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'PrivateDnsNameOptionsOnLaunch' => [ 'type' => 'structure', 'members' => [ 'HostnameType' => [ 'shape' => 'HostnameType', 'locationName' => 'hostnameType', ], 'EnableResourceNameDnsARecord' => [ 'shape' => 'Boolean', 'locationName' => 'enableResourceNameDnsARecord', ], 'EnableResourceNameDnsAAAARecord' => [ 'shape' => 'Boolean', 'locationName' => 'enableResourceNameDnsAAAARecord', ], ], ], 'PrivateDnsNameOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'HostnameType' => [ 'shape' => 'HostnameType', ], 'EnableResourceNameDnsARecord' => [ 'shape' => 'Boolean', ], 'EnableResourceNameDnsAAAARecord' => [ 'shape' => 'Boolean', ], ], ], 'PrivateDnsNameOptionsResponse' => [ 'type' => 'structure', 'members' => [ 'HostnameType' => [ 'shape' => 'HostnameType', 'locationName' => 'hostnameType', ], 'EnableResourceNameDnsARecord' => [ 'shape' => 'Boolean', 'locationName' => 'enableResourceNameDnsARecord', ], 'EnableResourceNameDnsAAAARecord' => [ 'shape' => 'Boolean', 'locationName' => 'enableResourceNameDnsAAAARecord', ], ], ], 'PrivateDnsSpecifiedDomainSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], 'max' => 10, 'min' => 0, ], 'PrivateIpAddressConfigSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesPrivateIpAddressConfig', 'locationName' => 'PrivateIpAddressConfigSet', ], ], 'PrivateIpAddressCount' => [ 'type' => 'integer', 'max' => 31, 'min' => 1, ], 'PrivateIpAddressSpecification' => [ 'type' => 'structure', 'members' => [ 'Primary' => [ 'shape' => 'Boolean', 'locationName' => 'primary', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'PrivateIpAddressSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PrivateIpAddressSpecification', 'locationName' => 'item', ], ], 'PrivateIpAddressStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'PrivateIpAddress', ], ], 'ProcessorInfo' => [ 'type' => 'structure', 'members' => [ 'SupportedArchitectures' => [ 'shape' => 'ArchitectureTypeList', 'locationName' => 'supportedArchitectures', ], 'SustainedClockSpeedInGhz' => [ 'shape' => 'ProcessorSustainedClockSpeed', 'locationName' => 'sustainedClockSpeedInGhz', ], 'SupportedFeatures' => [ 'shape' => 'SupportedAdditionalProcessorFeatureList', 'locationName' => 'supportedFeatures', ], 'Manufacturer' => [ 'shape' => 'CpuManufacturerName', 'locationName' => 'manufacturer', ], ], ], 'ProcessorSustainedClockSpeed' => [ 'type' => 'double', ], 'ProductCode' => [ 'type' => 'structure', 'members' => [ 'ProductCodeId' => [ 'shape' => 'String', 'locationName' => 'productCode', ], 'ProductCodeType' => [ 'shape' => 'ProductCodeValues', 'locationName' => 'type', ], ], ], 'ProductCodeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProductCode', 'locationName' => 'item', ], ], 'ProductCodeStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ProductCode', ], ], 'ProductCodeValues' => [ 'type' => 'string', 'enum' => [ 'devpay', 'marketplace', ], ], 'ProductDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'PropagatingVgw' => [ 'type' => 'structure', 'members' => [ 'GatewayId' => [ 'shape' => 'String', 'locationName' => 'gatewayId', ], ], ], 'PropagatingVgwList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PropagatingVgw', 'locationName' => 'item', ], ], 'Protocol' => [ 'type' => 'string', 'enum' => [ 'tcp', 'udp', ], ], 'ProtocolInt' => [ 'type' => 'integer', 'max' => 255, 'min' => 0, ], 'ProtocolIntList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProtocolInt', 'locationName' => 'item', ], ], 'ProtocolList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Protocol', 'locationName' => 'item', ], ], 'ProtocolValue' => [ 'type' => 'string', 'enum' => [ 'gre', ], ], 'ProvisionByoipCidrRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'CidrAuthorizationContext' => [ 'shape' => 'CidrAuthorizationContext', ], 'PubliclyAdvertisable' => [ 'shape' => 'Boolean', ], 'Description' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'PoolTagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'PoolTagSpecification', ], 'MultiRegion' => [ 'shape' => 'Boolean', ], 'NetworkBorderGroup' => [ 'shape' => 'String', ], ], ], 'ProvisionByoipCidrResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidr' => [ 'shape' => 'ByoipCidr', 'locationName' => 'byoipCidr', ], ], ], 'ProvisionIpamByoasnRequest' => [ 'type' => 'structure', 'required' => [ 'IpamId', 'Asn', 'AsnAuthorizationContext', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamId' => [ 'shape' => 'IpamId', ], 'Asn' => [ 'shape' => 'String', ], 'AsnAuthorizationContext' => [ 'shape' => 'AsnAuthorizationContext', ], ], ], 'ProvisionIpamByoasnResult' => [ 'type' => 'structure', 'members' => [ 'Byoasn' => [ 'shape' => 'Byoasn', 'locationName' => 'byoasn', ], ], ], 'ProvisionIpamPoolCidrRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Cidr' => [ 'shape' => 'String', ], 'CidrAuthorizationContext' => [ 'shape' => 'IpamCidrAuthorizationContext', ], 'NetmaskLength' => [ 'shape' => 'Integer', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'VerificationMethod' => [ 'shape' => 'VerificationMethod', ], 'IpamExternalResourceVerificationTokenId' => [ 'shape' => 'IpamExternalResourceVerificationTokenId', ], ], ], 'ProvisionIpamPoolCidrResult' => [ 'type' => 'structure', 'members' => [ 'IpamPoolCidr' => [ 'shape' => 'IpamPoolCidr', 'locationName' => 'ipamPoolCidr', ], ], ], 'ProvisionPublicIpv4PoolCidrRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', 'PoolId', 'NetmaskLength', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'PoolId' => [ 'shape' => 'Ipv4PoolEc2Id', ], 'NetmaskLength' => [ 'shape' => 'Integer', ], 'NetworkBorderGroup' => [ 'shape' => 'String', ], ], ], 'ProvisionPublicIpv4PoolCidrResult' => [ 'type' => 'structure', 'members' => [ 'PoolId' => [ 'shape' => 'Ipv4PoolEc2Id', 'locationName' => 'poolId', ], 'PoolAddressRange' => [ 'shape' => 'PublicIpv4PoolRange', 'locationName' => 'poolAddressRange', ], ], ], 'ProvisionedBandwidth' => [ 'type' => 'structure', 'members' => [ 'ProvisionTime' => [ 'shape' => 'DateTime', 'locationName' => 'provisionTime', ], 'Provisioned' => [ 'shape' => 'String', 'locationName' => 'provisioned', ], 'RequestTime' => [ 'shape' => 'DateTime', 'locationName' => 'requestTime', ], 'Requested' => [ 'shape' => 'String', 'locationName' => 'requested', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], ], ], 'PtrUpdateStatus' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'Reason' => [ 'shape' => 'String', 'locationName' => 'reason', ], ], ], 'PublicIpAddress' => [ 'type' => 'string', ], 'PublicIpDnsNameOptions' => [ 'type' => 'structure', 'members' => [ 'DnsHostnameType' => [ 'shape' => 'String', 'locationName' => 'dnsHostnameType', ], 'PublicIpv4DnsName' => [ 'shape' => 'String', 'locationName' => 'publicIpv4DnsName', ], 'PublicIpv6DnsName' => [ 'shape' => 'String', 'locationName' => 'publicIpv6DnsName', ], 'PublicDualStackDnsName' => [ 'shape' => 'String', 'locationName' => 'publicDualStackDnsName', ], ], ], 'PublicIpDnsOption' => [ 'type' => 'string', 'enum' => [ 'public-dual-stack-dns-name', 'public-ipv4-dns-name', 'public-ipv6-dns-name', ], ], 'PublicIpStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'PublicIp', ], ], 'PublicIpv4Pool' => [ 'type' => 'structure', 'members' => [ 'PoolId' => [ 'shape' => 'String', 'locationName' => 'poolId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'PoolAddressRanges' => [ 'shape' => 'PublicIpv4PoolRangeSet', 'locationName' => 'poolAddressRangeSet', ], 'TotalAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'totalAddressCount', ], 'TotalAvailableAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'totalAvailableAddressCount', ], 'NetworkBorderGroup' => [ 'shape' => 'String', 'locationName' => 'networkBorderGroup', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'PublicIpv4PoolIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ipv4PoolEc2Id', 'locationName' => 'item', ], ], 'PublicIpv4PoolRange' => [ 'type' => 'structure', 'members' => [ 'FirstAddress' => [ 'shape' => 'String', 'locationName' => 'firstAddress', ], 'LastAddress' => [ 'shape' => 'String', 'locationName' => 'lastAddress', ], 'AddressCount' => [ 'shape' => 'Integer', 'locationName' => 'addressCount', ], 'AvailableAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'availableAddressCount', ], ], ], 'PublicIpv4PoolRangeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PublicIpv4PoolRange', 'locationName' => 'item', ], ], 'PublicIpv4PoolSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PublicIpv4Pool', 'locationName' => 'item', ], ], 'Purchase' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Duration' => [ 'shape' => 'Integer', 'locationName' => 'duration', ], 'HostIdSet' => [ 'shape' => 'ResponseHostIdSet', 'locationName' => 'hostIdSet', ], 'HostReservationId' => [ 'shape' => 'HostReservationId', 'locationName' => 'hostReservationId', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'InstanceFamily' => [ 'shape' => 'String', 'locationName' => 'instanceFamily', ], 'PaymentOption' => [ 'shape' => 'PaymentOption', 'locationName' => 'paymentOption', ], 'UpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'upfrontPrice', ], ], ], 'PurchaseCapacityBlockExtensionRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityBlockExtensionOfferingId', 'CapacityReservationId', ], 'members' => [ 'CapacityBlockExtensionOfferingId' => [ 'shape' => 'OfferingId', ], 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'PurchaseCapacityBlockExtensionResult' => [ 'type' => 'structure', 'members' => [ 'CapacityBlockExtensions' => [ 'shape' => 'CapacityBlockExtensionSet', 'locationName' => 'capacityBlockExtensionSet', ], ], ], 'PurchaseCapacityBlockRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityBlockOfferingId', 'InstancePlatform', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'CapacityBlockOfferingId' => [ 'shape' => 'OfferingId', ], 'InstancePlatform' => [ 'shape' => 'CapacityReservationInstancePlatform', ], ], ], 'PurchaseCapacityBlockResult' => [ 'type' => 'structure', 'members' => [ 'CapacityReservation' => [ 'shape' => 'CapacityReservation', 'locationName' => 'capacityReservation', ], 'CapacityBlocks' => [ 'shape' => 'CapacityBlockSet', 'locationName' => 'capacityBlockSet', ], ], ], 'PurchaseHostReservationRequest' => [ 'type' => 'structure', 'required' => [ 'HostIdSet', 'OfferingId', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', ], 'HostIdSet' => [ 'shape' => 'RequestHostIdSet', ], 'LimitPrice' => [ 'shape' => 'String', ], 'OfferingId' => [ 'shape' => 'OfferingId', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'PurchaseHostReservationResult' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'Purchase' => [ 'shape' => 'PurchaseSet', 'locationName' => 'purchase', ], 'TotalHourlyPrice' => [ 'shape' => 'String', 'locationName' => 'totalHourlyPrice', ], 'TotalUpfrontPrice' => [ 'shape' => 'String', 'locationName' => 'totalUpfrontPrice', ], ], ], 'PurchaseRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceCount', 'PurchaseToken', ], 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', ], 'PurchaseToken' => [ 'shape' => 'String', ], ], ], 'PurchaseRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'PurchaseRequest', 'locationName' => 'PurchaseRequest', ], 'min' => 1, ], 'PurchaseReservedInstancesOfferingRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceCount', 'ReservedInstancesOfferingId', ], 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', ], 'ReservedInstancesOfferingId' => [ 'shape' => 'ReservedInstancesOfferingId', ], 'PurchaseTime' => [ 'shape' => 'DateTime', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'LimitPrice' => [ 'shape' => 'ReservedInstanceLimitPrice', 'locationName' => 'limitPrice', ], ], ], 'PurchaseReservedInstancesOfferingResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], ], ], 'PurchaseScheduledInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'PurchaseRequests', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'PurchaseRequests' => [ 'shape' => 'PurchaseRequestSet', 'locationName' => 'PurchaseRequest', ], ], ], 'PurchaseScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'ScheduledInstanceSet' => [ 'shape' => 'PurchasedScheduledInstanceSet', 'locationName' => 'scheduledInstanceSet', ], ], ], 'PurchaseSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Purchase', 'locationName' => 'item', ], ], 'PurchasedScheduledInstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstance', 'locationName' => 'item', ], ], 'RIProductDescription' => [ 'type' => 'string', 'enum' => [ 'Linux/UNIX', 'Linux/UNIX (Amazon VPC)', 'Windows', 'Windows (Amazon VPC)', ], ], 'RamdiskId' => [ 'type' => 'string', ], 'RdsDbClusterArn' => [ 'type' => 'string', ], 'RdsDbInstanceArn' => [ 'type' => 'string', ], 'RdsDbProxyArn' => [ 'type' => 'string', ], 'ReasonCodesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReportInstanceReasonCodes', 'locationName' => 'item', ], ], 'RebootInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'RebootMigrationSupport' => [ 'type' => 'string', 'enum' => [ 'unsupported', 'supported', ], ], 'RecurringCharge' => [ 'type' => 'structure', 'members' => [ 'Amount' => [ 'shape' => 'Double', 'locationName' => 'amount', ], 'Frequency' => [ 'shape' => 'RecurringChargeFrequency', 'locationName' => 'frequency', ], ], ], 'RecurringChargeFrequency' => [ 'type' => 'string', 'enum' => [ 'Hourly', ], ], 'RecurringChargesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RecurringCharge', 'locationName' => 'item', ], ], 'ReferencedSecurityGroup' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'PeeringStatus' => [ 'shape' => 'String', 'locationName' => 'peeringStatus', ], 'UserId' => [ 'shape' => 'String', 'locationName' => 'userId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'Region' => [ 'type' => 'structure', 'members' => [ 'OptInStatus' => [ 'shape' => 'String', 'locationName' => 'optInStatus', ], 'Geography' => [ 'shape' => 'RegionGeographyList', 'locationName' => 'geographySet', ], 'RegionName' => [ 'shape' => 'String', 'locationName' => 'regionName', ], 'Endpoint' => [ 'shape' => 'String', 'locationName' => 'regionEndpoint', ], ], ], 'RegionGeography' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], ], ], 'RegionGeographyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegionGeography', 'locationName' => 'item', ], ], 'RegionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Region', 'locationName' => 'item', ], ], 'RegionNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'RegionName', ], ], 'RegionNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], 'max' => 10, 'min' => 0, ], 'RegionalSummary' => [ 'type' => 'structure', 'members' => [ 'RegionName' => [ 'shape' => 'String', 'locationName' => 'regionName', ], 'NumberOfMatchedAccounts' => [ 'shape' => 'Integer', 'locationName' => 'numberOfMatchedAccounts', ], 'NumberOfUnmatchedAccounts' => [ 'shape' => 'Integer', 'locationName' => 'numberOfUnmatchedAccounts', ], ], ], 'RegionalSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegionalSummary', 'locationName' => 'item', ], ], 'RegisterImageRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'ImageLocation' => [ 'shape' => 'String', ], 'BillingProducts' => [ 'shape' => 'BillingProductList', 'locationName' => 'BillingProduct', ], 'BootMode' => [ 'shape' => 'BootModeValues', ], 'TpmSupport' => [ 'shape' => 'TpmSupportValues', ], 'UefiData' => [ 'shape' => 'ImageUefiDataRequest', ], 'ImdsSupport' => [ 'shape' => 'ImdsSupportValues', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Name' => [ 'shape' => 'ImageNameRequest', 'locationName' => 'name', ], 'Description' => [ 'shape' => 'ImageDescriptionRequest', 'locationName' => 'description', ], 'Architecture' => [ 'shape' => 'ArchitectureValues', 'locationName' => 'architecture', ], 'KernelId' => [ 'shape' => 'KernelId', 'locationName' => 'kernelId', ], 'RamdiskId' => [ 'shape' => 'RamdiskId', 'locationName' => 'ramdiskId', ], 'RootDeviceName' => [ 'shape' => 'String', 'locationName' => 'rootDeviceName', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingRequestList', 'locationName' => 'BlockDeviceMapping', ], 'VirtualizationType' => [ 'shape' => 'String', 'locationName' => 'virtualizationType', ], 'SriovNetSupport' => [ 'shape' => 'String', 'locationName' => 'sriovNetSupport', ], 'EnaSupport' => [ 'shape' => 'Boolean', 'locationName' => 'enaSupport', ], ], ], 'RegisterImageResult' => [ 'type' => 'structure', 'members' => [ 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], ], ], 'RegisterInstanceEventNotificationAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceTagAttribute', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceTagAttribute' => [ 'shape' => 'RegisterInstanceTagAttributeRequest', ], ], ], 'RegisterInstanceEventNotificationAttributesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceTagAttribute' => [ 'shape' => 'InstanceTagNotificationAttribute', 'locationName' => 'instanceTagAttribute', ], ], ], 'RegisterInstanceTagAttributeRequest' => [ 'type' => 'structure', 'members' => [ 'IncludeAllTagsOfInstance' => [ 'shape' => 'Boolean', ], 'InstanceTagKeys' => [ 'shape' => 'InstanceTagKeySet', 'locationName' => 'InstanceTagKey', ], ], ], 'RegisterTransitGatewayMulticastGroupMembersRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMulticastDomainId', 'NetworkInterfaceIds', ], 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'GroupIpAddress' => [ 'shape' => 'String', ], 'NetworkInterfaceIds' => [ 'shape' => 'TransitGatewayNetworkInterfaceIdList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RegisterTransitGatewayMulticastGroupMembersResult' => [ 'type' => 'structure', 'members' => [ 'RegisteredMulticastGroupMembers' => [ 'shape' => 'TransitGatewayMulticastRegisteredGroupMembers', 'locationName' => 'registeredMulticastGroupMembers', ], ], ], 'RegisterTransitGatewayMulticastGroupSourcesRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMulticastDomainId', 'NetworkInterfaceIds', ], 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'GroupIpAddress' => [ 'shape' => 'String', ], 'NetworkInterfaceIds' => [ 'shape' => 'TransitGatewayNetworkInterfaceIdList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RegisterTransitGatewayMulticastGroupSourcesResult' => [ 'type' => 'structure', 'members' => [ 'RegisteredMulticastGroupSources' => [ 'shape' => 'TransitGatewayMulticastRegisteredGroupSources', 'locationName' => 'registeredMulticastGroupSources', ], ], ], 'RegisteredInstance' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'SqlServerLicenseUsage' => [ 'shape' => 'SqlServerLicenseUsage', 'locationName' => 'sqlServerLicenseUsage', ], 'HaStatus' => [ 'shape' => 'HaStatus', 'locationName' => 'haStatus', ], 'ProcessingStatus' => [ 'shape' => 'String', 'locationName' => 'processingStatus', ], 'LastUpdatedTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastUpdatedTime', ], 'SqlServerCredentials' => [ 'shape' => 'String', 'locationName' => 'sqlServerCredentials', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'RegisteredInstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RegisteredInstance', 'locationName' => 'item', ], ], 'RejectCapacityReservationBillingOwnershipRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], ], ], 'RejectCapacityReservationBillingOwnershipResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'RejectTransitGatewayClientVpnAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RejectTransitGatewayClientVpnAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayClientVpnAttachment' => [ 'shape' => 'TransitGatewayClientVpnAttachment', 'locationName' => 'transitGatewayClientVpnAttachment', ], ], ], 'RejectTransitGatewayMulticastDomainAssociationsRequest' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'SubnetIds' => [ 'shape' => 'ValueStringList', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RejectTransitGatewayMulticastDomainAssociationsResult' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'TransitGatewayMulticastDomainAssociations', 'locationName' => 'associations', ], ], ], 'RejectTransitGatewayPeeringAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RejectTransitGatewayPeeringAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPeeringAttachment' => [ 'shape' => 'TransitGatewayPeeringAttachment', 'locationName' => 'transitGatewayPeeringAttachment', ], ], ], 'RejectTransitGatewayVpcAttachmentRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayAttachmentId', ], 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RejectTransitGatewayVpcAttachmentResult' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayVpcAttachment' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'transitGatewayVpcAttachment', ], ], ], 'RejectVpcEndpointConnectionsRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', 'VpcEndpointIds', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], 'VpcEndpointIds' => [ 'shape' => 'VpcEndpointIdList', 'locationName' => 'VpcEndpointId', ], ], ], 'RejectVpcEndpointConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemSet', 'locationName' => 'unsuccessful', ], ], ], 'RejectVpcPeeringConnectionRequest' => [ 'type' => 'structure', 'required' => [ 'VpcPeeringConnectionId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'VpcPeeringConnectionId' => [ 'shape' => 'VpcPeeringConnectionId', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'RejectVpcPeeringConnectionResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ReleaseAddressRequest' => [ 'type' => 'structure', 'members' => [ 'AllocationId' => [ 'shape' => 'AllocationId', ], 'PublicIp' => [ 'shape' => 'String', ], 'NetworkBorderGroup' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ReleaseHostsRequest' => [ 'type' => 'structure', 'required' => [ 'HostIds', ], 'members' => [ 'HostIds' => [ 'shape' => 'RequestHostIdList', 'locationName' => 'hostId', ], ], ], 'ReleaseHostsResult' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'ResponseHostIdList', 'locationName' => 'successful', ], 'Unsuccessful' => [ 'shape' => 'UnsuccessfulItemList', 'locationName' => 'unsuccessful', ], ], ], 'ReleaseIpamPoolAllocationRequest' => [ 'type' => 'structure', 'required' => [ 'IpamPoolId', 'Cidr', 'IpamPoolAllocationId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'IpamPoolId' => [ 'shape' => 'IpamPoolId', ], 'Cidr' => [ 'shape' => 'String', ], 'IpamPoolAllocationId' => [ 'shape' => 'IpamPoolAllocationId', ], ], ], 'ReleaseIpamPoolAllocationResult' => [ 'type' => 'structure', 'members' => [ 'Success' => [ 'shape' => 'Boolean', 'locationName' => 'success', ], ], ], 'RemoveIpamOperatingRegion' => [ 'type' => 'structure', 'members' => [ 'RegionName' => [ 'shape' => 'String', ], ], ], 'RemoveIpamOperatingRegionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'RemoveIpamOperatingRegion', ], 'max' => 50, 'min' => 0, ], 'RemoveIpamOrganizationalUnitExclusion' => [ 'type' => 'structure', 'members' => [ 'OrganizationsEntityPath' => [ 'shape' => 'String', ], ], ], 'RemoveIpamOrganizationalUnitExclusionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'RemoveIpamOrganizationalUnitExclusion', ], 'max' => 10, 'min' => 0, ], 'RemovePrefixListEntries' => [ 'type' => 'list', 'member' => [ 'shape' => 'RemovePrefixListEntry', ], 'max' => 100, 'min' => 0, ], 'RemovePrefixListEntry' => [ 'type' => 'structure', 'required' => [ 'Cidr', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], ], ], 'ReplaceIamInstanceProfileAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'IamInstanceProfile', 'AssociationId', ], 'members' => [ 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', ], 'AssociationId' => [ 'shape' => 'IamInstanceProfileAssociationId', ], ], ], 'ReplaceIamInstanceProfileAssociationResult' => [ 'type' => 'structure', 'members' => [ 'IamInstanceProfileAssociation' => [ 'shape' => 'IamInstanceProfileAssociation', 'locationName' => 'iamInstanceProfileAssociation', ], ], ], 'ReplaceImageCriteriaInAllowedImagesSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'ImageCriteria' => [ 'shape' => 'ImageCriterionRequestList', 'locationName' => 'ImageCriterion', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ReplaceImageCriteriaInAllowedImagesSettingsResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ReplaceNetworkAclAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', 'NetworkAclId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'AssociationId' => [ 'shape' => 'NetworkAclAssociationId', 'locationName' => 'associationId', ], 'NetworkAclId' => [ 'shape' => 'NetworkAclId', 'locationName' => 'networkAclId', ], ], ], 'ReplaceNetworkAclAssociationResult' => [ 'type' => 'structure', 'members' => [ 'NewAssociationId' => [ 'shape' => 'String', 'locationName' => 'newAssociationId', ], ], ], 'ReplaceNetworkAclEntryRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkAclId', 'RuleNumber', 'Protocol', 'RuleAction', 'Egress', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkAclId' => [ 'shape' => 'NetworkAclId', 'locationName' => 'networkAclId', ], 'RuleNumber' => [ 'shape' => 'Integer', 'locationName' => 'ruleNumber', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'RuleAction' => [ 'shape' => 'RuleAction', 'locationName' => 'ruleAction', ], 'Egress' => [ 'shape' => 'Boolean', 'locationName' => 'egress', ], 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], 'IcmpTypeCode' => [ 'shape' => 'IcmpTypeCode', 'locationName' => 'Icmp', ], 'PortRange' => [ 'shape' => 'PortRange', 'locationName' => 'portRange', ], ], ], 'ReplaceRootVolumeTask' => [ 'type' => 'structure', 'members' => [ 'ReplaceRootVolumeTaskId' => [ 'shape' => 'ReplaceRootVolumeTaskId', 'locationName' => 'replaceRootVolumeTaskId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'TaskState' => [ 'shape' => 'ReplaceRootVolumeTaskState', 'locationName' => 'taskState', ], 'StartTime' => [ 'shape' => 'String', 'locationName' => 'startTime', ], 'CompleteTime' => [ 'shape' => 'String', 'locationName' => 'completeTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', 'locationName' => 'snapshotId', ], 'DeleteReplacedRootVolume' => [ 'shape' => 'Boolean', 'locationName' => 'deleteReplacedRootVolume', ], ], ], 'ReplaceRootVolumeTaskId' => [ 'type' => 'string', ], 'ReplaceRootVolumeTaskIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplaceRootVolumeTaskId', 'locationName' => 'ReplaceRootVolumeTaskId', ], ], 'ReplaceRootVolumeTaskState' => [ 'type' => 'string', 'enum' => [ 'pending', 'in-progress', 'failing', 'succeeded', 'failed', 'failed-detached', ], ], 'ReplaceRootVolumeTasks' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplaceRootVolumeTask', 'locationName' => 'item', ], ], 'ReplaceRouteRequest' => [ 'type' => 'structure', 'required' => [ 'RouteTableId', ], 'members' => [ 'DestinationPrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'VpcEndpointId' => [ 'shape' => 'VpcEndpointId', ], 'LocalTarget' => [ 'shape' => 'Boolean', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'LocalGatewayId' => [ 'shape' => 'LocalGatewayId', ], 'CarrierGatewayId' => [ 'shape' => 'CarrierGatewayId', ], 'CoreNetworkArn' => [ 'shape' => 'CoreNetworkArn', ], 'OdbNetworkArn' => [ 'shape' => 'OdbNetworkArn', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', 'locationName' => 'routeTableId', ], 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'GatewayId' => [ 'shape' => 'RouteGatewayId', 'locationName' => 'gatewayId', ], 'DestinationIpv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationIpv6CidrBlock', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'EgressOnlyInternetGatewayId', 'locationName' => 'egressOnlyInternetGatewayId', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'VpcPeeringConnectionId', 'locationName' => 'vpcPeeringConnectionId', ], 'NatGatewayId' => [ 'shape' => 'NatGatewayId', 'locationName' => 'natGatewayId', ], ], ], 'ReplaceRouteTableAssociationRequest' => [ 'type' => 'structure', 'required' => [ 'AssociationId', 'RouteTableId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'AssociationId' => [ 'shape' => 'RouteTableAssociationId', 'locationName' => 'associationId', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', 'locationName' => 'routeTableId', ], ], ], 'ReplaceRouteTableAssociationResult' => [ 'type' => 'structure', 'members' => [ 'NewAssociationId' => [ 'shape' => 'String', 'locationName' => 'newAssociationId', ], 'AssociationState' => [ 'shape' => 'RouteTableAssociationState', 'locationName' => 'associationState', ], ], ], 'ReplaceTransitGatewayRouteRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationCidrBlock', 'TransitGatewayRouteTableId', ], 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', ], 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'Blackhole' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ReplaceTransitGatewayRouteResult' => [ 'type' => 'structure', 'members' => [ 'Route' => [ 'shape' => 'TransitGatewayRoute', 'locationName' => 'route', ], ], ], 'ReplaceVpnTunnelRequest' => [ 'type' => 'structure', 'required' => [ 'VpnConnectionId', 'VpnTunnelOutsideIpAddress', ], 'members' => [ 'VpnConnectionId' => [ 'shape' => 'VpnConnectionId', ], 'VpnTunnelOutsideIpAddress' => [ 'shape' => 'String', ], 'ApplyPendingMaintenance' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ReplaceVpnTunnelResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ReplacementStrategy' => [ 'type' => 'string', 'enum' => [ 'launch', 'launch-before-terminate', ], ], 'ReportInstanceReasonCodes' => [ 'type' => 'string', 'enum' => [ 'instance-stuck-in-state', 'unresponsive', 'not-accepting-credentials', 'password-not-available', 'performance-network', 'performance-instance-store', 'performance-ebs-volume', 'performance-other', 'other', ], ], 'ReportInstanceStatusRequest' => [ 'type' => 'structure', 'required' => [ 'Instances', 'Status', 'ReasonCodes', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Instances' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'instanceId', ], 'Status' => [ 'shape' => 'ReportStatusType', 'locationName' => 'status', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], 'EndTime' => [ 'shape' => 'DateTime', 'locationName' => 'endTime', ], 'ReasonCodes' => [ 'shape' => 'ReasonCodesList', 'locationName' => 'reasonCode', ], 'Description' => [ 'shape' => 'ReportInstanceStatusRequestDescription', 'deprecated' => true, 'deprecatedMessage' => 'This member has been deprecated', 'locationName' => 'description', ], ], ], 'ReportInstanceStatusRequestDescription' => [ 'type' => 'string', 'sensitive' => true, ], 'ReportState' => [ 'type' => 'string', 'enum' => [ 'running', 'cancelled', 'complete', 'error', ], ], 'ReportStatusType' => [ 'type' => 'string', 'enum' => [ 'ok', 'impaired', ], ], 'RequestFilterPortRange' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'Port', ], 'ToPort' => [ 'shape' => 'Port', ], ], ], 'RequestHostIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DedicatedHostId', 'locationName' => 'item', ], ], 'RequestHostIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'DedicatedHostId', 'locationName' => 'item', ], ], 'RequestInstanceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceType', ], 'locationName' => 'InstanceType', 'max' => 100, 'min' => 0, ], 'RequestIpamResourceTag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'RequestIpamResourceTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RequestIpamResourceTag', 'locationName' => 'item', ], ], 'RequestLaunchTemplateData' => [ 'type' => 'structure', 'members' => [ 'KernelId' => [ 'shape' => 'KernelId', ], 'EbsOptimized' => [ 'shape' => 'Boolean', ], 'IamInstanceProfile' => [ 'shape' => 'LaunchTemplateIamInstanceProfileSpecificationRequest', ], 'BlockDeviceMappings' => [ 'shape' => 'LaunchTemplateBlockDeviceMappingRequestList', 'locationName' => 'BlockDeviceMapping', ], 'NetworkInterfaces' => [ 'shape' => 'LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList', 'locationName' => 'NetworkInterface', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'InstanceType' => [ 'shape' => 'InstanceType', ], 'KeyName' => [ 'shape' => 'KeyPairName', ], 'Monitoring' => [ 'shape' => 'LaunchTemplatesMonitoringRequest', ], 'Placement' => [ 'shape' => 'LaunchTemplatePlacementRequest', ], 'RamDiskId' => [ 'shape' => 'RamdiskId', ], 'DisableApiTermination' => [ 'shape' => 'Boolean', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'ShutdownBehavior', ], 'UserData' => [ 'shape' => 'SensitiveUserData', ], 'TagSpecifications' => [ 'shape' => 'LaunchTemplateTagSpecificationRequestList', 'locationName' => 'TagSpecification', ], 'ElasticGpuSpecifications' => [ 'shape' => 'ElasticGpuSpecificationList', 'deprecated' => true, 'deprecatedMessage' => 'Specifying Elastic Graphics accelerators is no longer supported on the RunInstances API.', 'deprecatedSince' => '2024-01-08', 'locationName' => 'ElasticGpuSpecification', ], 'ElasticInferenceAccelerators' => [ 'shape' => 'LaunchTemplateElasticInferenceAcceleratorList', 'deprecated' => true, 'deprecatedMessage' => 'Specifying Elastic Inference accelerators is no longer supported on the RunInstances API.', 'deprecatedSince' => '2024-01-08', 'locationName' => 'ElasticInferenceAccelerator', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'SecurityGroups' => [ 'shape' => 'SecurityGroupStringList', 'locationName' => 'SecurityGroup', ], 'InstanceMarketOptions' => [ 'shape' => 'LaunchTemplateInstanceMarketOptionsRequest', ], 'CreditSpecification' => [ 'shape' => 'CreditSpecificationRequest', ], 'CpuOptions' => [ 'shape' => 'LaunchTemplateCpuOptionsRequest', ], 'CapacityReservationSpecification' => [ 'shape' => 'LaunchTemplateCapacityReservationSpecificationRequest', ], 'LicenseSpecifications' => [ 'shape' => 'LaunchTemplateLicenseSpecificationListRequest', 'locationName' => 'LicenseSpecification', ], 'HibernationOptions' => [ 'shape' => 'LaunchTemplateHibernationOptionsRequest', ], 'MetadataOptions' => [ 'shape' => 'LaunchTemplateInstanceMetadataOptionsRequest', ], 'EnclaveOptions' => [ 'shape' => 'LaunchTemplateEnclaveOptionsRequest', ], 'InstanceRequirements' => [ 'shape' => 'InstanceRequirementsRequest', ], 'PrivateDnsNameOptions' => [ 'shape' => 'LaunchTemplatePrivateDnsNameOptionsRequest', ], 'MaintenanceOptions' => [ 'shape' => 'LaunchTemplateInstanceMaintenanceOptionsRequest', ], 'DisableApiStop' => [ 'shape' => 'Boolean', ], 'Operator' => [ 'shape' => 'OperatorRequest', ], 'NetworkPerformanceOptions' => [ 'shape' => 'LaunchTemplateNetworkPerformanceOptionsRequest', ], 'SecondaryInterfaces' => [ 'shape' => 'LaunchTemplateInstanceSecondaryInterfaceSpecificationRequestList', 'locationName' => 'SecondaryInterface', ], ], ], 'RequestSpotFleetRequest' => [ 'type' => 'structure', 'required' => [ 'SpotFleetRequestConfig', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotFleetRequestConfig' => [ 'shape' => 'SpotFleetRequestConfigData', 'locationName' => 'spotFleetRequestConfig', ], ], ], 'RequestSpotFleetResponse' => [ 'type' => 'structure', 'members' => [ 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], ], ], 'RequestSpotInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'LaunchSpecification' => [ 'shape' => 'RequestSpotLaunchSpecification', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'Type' => [ 'shape' => 'SpotInstanceType', 'locationName' => 'type', ], 'ValidFrom' => [ 'shape' => 'DateTime', 'locationName' => 'validFrom', ], 'ValidUntil' => [ 'shape' => 'DateTime', 'locationName' => 'validUntil', ], 'LaunchGroup' => [ 'shape' => 'String', 'locationName' => 'launchGroup', ], 'AvailabilityZoneGroup' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneGroup', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'blockDurationMinutes', ], ], ], 'RequestSpotInstancesResult' => [ 'type' => 'structure', 'members' => [ 'SpotInstanceRequests' => [ 'shape' => 'SpotInstanceRequestList', 'locationName' => 'spotInstanceRequestSet', ], ], ], 'RequestSpotLaunchSpecification' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupIds' => [ 'shape' => 'RequestSpotLaunchSpecificationSecurityGroupIdList', 'locationName' => 'SecurityGroupId', ], 'SecurityGroups' => [ 'shape' => 'RequestSpotLaunchSpecificationSecurityGroupList', 'locationName' => 'SecurityGroup', ], 'AddressingType' => [ 'shape' => 'String', 'locationName' => 'addressingType', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'KernelId' => [ 'shape' => 'KernelId', 'locationName' => 'kernelId', ], 'KeyName' => [ 'shape' => 'KeyPairNameWithResolver', 'locationName' => 'keyName', ], 'Monitoring' => [ 'shape' => 'RunInstancesMonitoringEnabled', 'locationName' => 'monitoring', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceSpecificationList', 'locationName' => 'NetworkInterface', ], 'Placement' => [ 'shape' => 'SpotPlacement', 'locationName' => 'placement', ], 'RamdiskId' => [ 'shape' => 'RamdiskId', 'locationName' => 'ramdiskId', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'UserData' => [ 'shape' => 'SensitiveUserData', 'locationName' => 'userData', ], ], ], 'RequestSpotLaunchSpecificationSecurityGroupIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'item', ], ], 'RequestSpotLaunchSpecificationSecurityGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'Reservation' => [ 'type' => 'structure', 'members' => [ 'ReservationId' => [ 'shape' => 'String', 'locationName' => 'reservationId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'RequesterId' => [ 'shape' => 'String', 'locationName' => 'requesterId', ], 'Groups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], 'Instances' => [ 'shape' => 'InstanceList', 'locationName' => 'instancesSet', ], ], ], 'ReservationEndDateType' => [ 'type' => 'string', 'enum' => [ 'limited', 'unlimited', ], ], 'ReservationFleetInstanceSpecification' => [ 'type' => 'structure', 'members' => [ 'InstanceType' => [ 'shape' => 'InstanceType', ], 'InstancePlatform' => [ 'shape' => 'CapacityReservationInstancePlatform', ], 'Weight' => [ 'shape' => 'DoubleWithConstraints', ], 'AvailabilityZone' => [ 'shape' => 'String', ], 'AvailabilityZoneId' => [ 'shape' => 'String', ], 'EbsOptimized' => [ 'shape' => 'Boolean', ], 'Priority' => [ 'shape' => 'IntegerWithConstraints', ], ], ], 'ReservationFleetInstanceSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservationFleetInstanceSpecification', ], ], 'ReservationId' => [ 'type' => 'string', ], 'ReservationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Reservation', 'locationName' => 'item', ], ], 'ReservationState' => [ 'type' => 'string', 'enum' => [ 'active', 'expired', 'cancelled', 'scheduled', 'pending', 'failed', 'delayed', 'unsupported', 'payment-pending', 'payment-failed', 'retired', ], ], 'ReservationType' => [ 'type' => 'string', 'enum' => [ 'capacity-block', 'odcr', ], ], 'ReservationTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetReservationType', 'locationName' => 'item', ], ], 'ReservationTypeListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'FleetReservationType', 'locationName' => 'ReservationType', ], ], 'ReservationValue' => [ 'type' => 'structure', 'members' => [ 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'RemainingTotalValue' => [ 'shape' => 'String', 'locationName' => 'remainingTotalValue', ], 'RemainingUpfrontValue' => [ 'shape' => 'String', 'locationName' => 'remainingUpfrontValue', ], ], ], 'ReservedCapacityOptions' => [ 'type' => 'structure', 'members' => [ 'ReservationTypes' => [ 'shape' => 'ReservationTypeList', 'locationName' => 'reservationTypeSet', ], ], ], 'ReservedCapacityOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'ReservationTypes' => [ 'shape' => 'ReservationTypeListRequest', 'locationName' => 'ReservationType', ], ], ], 'ReservedInstanceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservationId', 'locationName' => 'ReservedInstanceId', ], ], 'ReservedInstanceLimitPrice' => [ 'type' => 'structure', 'members' => [ 'Amount' => [ 'shape' => 'Double', 'locationName' => 'amount', ], 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], ], ], 'ReservedInstanceReservationValue' => [ 'type' => 'structure', 'members' => [ 'ReservationValue' => [ 'shape' => 'ReservationValue', 'locationName' => 'reservationValue', ], 'ReservedInstanceId' => [ 'shape' => 'String', 'locationName' => 'reservedInstanceId', ], ], ], 'ReservedInstanceReservationValueSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstanceReservationValue', 'locationName' => 'item', ], ], 'ReservedInstanceState' => [ 'type' => 'string', 'enum' => [ 'payment-pending', 'active', 'payment-failed', 'retired', 'queued', 'queued-deleted', ], ], 'ReservedInstances' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'InstanceTenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'instanceTenancy', ], 'OfferingClass' => [ 'shape' => 'OfferingClassType', 'locationName' => 'offeringClass', ], 'OfferingType' => [ 'shape' => 'OfferingTypeValues', 'locationName' => 'offeringType', ], 'RecurringCharges' => [ 'shape' => 'RecurringChargesList', 'locationName' => 'recurringCharges', ], 'Scope' => [ 'shape' => 'scope', 'locationName' => 'scope', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Start' => [ 'shape' => 'DateTime', 'locationName' => 'start', ], 'End' => [ 'shape' => 'DateTime', 'locationName' => 'end', ], 'Duration' => [ 'shape' => 'Long', 'locationName' => 'duration', ], 'UsagePrice' => [ 'shape' => 'Float', 'locationName' => 'usagePrice', ], 'FixedPrice' => [ 'shape' => 'Float', 'locationName' => 'fixedPrice', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'ProductDescription' => [ 'shape' => 'RIProductDescription', 'locationName' => 'productDescription', ], 'State' => [ 'shape' => 'ReservedInstanceState', 'locationName' => 'state', ], ], ], 'ReservedInstancesConfiguration' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'Scope' => [ 'shape' => 'scope', 'locationName' => 'scope', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], ], ], 'ReservedInstancesConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesConfiguration', 'locationName' => 'item', ], ], 'ReservedInstancesId' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], ], ], 'ReservedInstancesIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservationId', 'locationName' => 'ReservedInstancesId', ], ], 'ReservedInstancesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstances', 'locationName' => 'item', ], ], 'ReservedInstancesListing' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'CreateDate' => [ 'shape' => 'DateTime', 'locationName' => 'createDate', ], 'InstanceCounts' => [ 'shape' => 'InstanceCountList', 'locationName' => 'instanceCounts', ], 'PriceSchedules' => [ 'shape' => 'PriceScheduleList', 'locationName' => 'priceSchedules', ], 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], 'ReservedInstancesListingId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesListingId', ], 'Status' => [ 'shape' => 'ListingStatus', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'UpdateDate' => [ 'shape' => 'DateTime', 'locationName' => 'updateDate', ], ], ], 'ReservedInstancesListingId' => [ 'type' => 'string', ], 'ReservedInstancesListingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesListing', 'locationName' => 'item', ], ], 'ReservedInstancesModification' => [ 'type' => 'structure', 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'CreateDate' => [ 'shape' => 'DateTime', 'locationName' => 'createDate', ], 'EffectiveDate' => [ 'shape' => 'DateTime', 'locationName' => 'effectiveDate', ], 'ModificationResults' => [ 'shape' => 'ReservedInstancesModificationResultList', 'locationName' => 'modificationResultSet', ], 'ReservedInstancesIds' => [ 'shape' => 'ReservedIntancesIds', 'locationName' => 'reservedInstancesSet', ], 'ReservedInstancesModificationId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesModificationId', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'UpdateDate' => [ 'shape' => 'DateTime', 'locationName' => 'updateDate', ], ], ], 'ReservedInstancesModificationId' => [ 'type' => 'string', ], 'ReservedInstancesModificationIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesModificationId', 'locationName' => 'ReservedInstancesModificationId', ], ], 'ReservedInstancesModificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesModification', 'locationName' => 'item', ], ], 'ReservedInstancesModificationResult' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], 'TargetConfiguration' => [ 'shape' => 'ReservedInstancesConfiguration', 'locationName' => 'targetConfiguration', ], ], ], 'ReservedInstancesModificationResultList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesModificationResult', 'locationName' => 'item', ], ], 'ReservedInstancesOffering' => [ 'type' => 'structure', 'members' => [ 'CurrencyCode' => [ 'shape' => 'CurrencyCodeValues', 'locationName' => 'currencyCode', ], 'InstanceTenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'instanceTenancy', ], 'Marketplace' => [ 'shape' => 'Boolean', 'locationName' => 'marketplace', ], 'OfferingClass' => [ 'shape' => 'OfferingClassType', 'locationName' => 'offeringClass', ], 'OfferingType' => [ 'shape' => 'OfferingTypeValues', 'locationName' => 'offeringType', ], 'PricingDetails' => [ 'shape' => 'PricingDetailsList', 'locationName' => 'pricingDetailsSet', ], 'RecurringCharges' => [ 'shape' => 'RecurringChargesList', 'locationName' => 'recurringCharges', ], 'Scope' => [ 'shape' => 'scope', 'locationName' => 'scope', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], 'ReservedInstancesOfferingId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesOfferingId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'Duration' => [ 'shape' => 'Long', 'locationName' => 'duration', ], 'UsagePrice' => [ 'shape' => 'Float', 'locationName' => 'usagePrice', ], 'FixedPrice' => [ 'shape' => 'Float', 'locationName' => 'fixedPrice', ], 'ProductDescription' => [ 'shape' => 'RIProductDescription', 'locationName' => 'productDescription', ], ], ], 'ReservedInstancesOfferingId' => [ 'type' => 'string', ], 'ReservedInstancesOfferingIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesOfferingId', ], ], 'ReservedInstancesOfferingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesOffering', 'locationName' => 'item', ], ], 'ReservedIntancesIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReservedInstancesId', 'locationName' => 'item', ], ], 'ResetAddressAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'AllocationId', 'Attribute', ], 'members' => [ 'AllocationId' => [ 'shape' => 'AllocationId', ], 'Attribute' => [ 'shape' => 'AddressAttributeName', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ResetAddressAttributeResult' => [ 'type' => 'structure', 'members' => [ 'Address' => [ 'shape' => 'AddressAttribute', 'locationName' => 'address', ], ], ], 'ResetEbsDefaultKmsKeyIdRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'ResetEbsDefaultKmsKeyIdResult' => [ 'type' => 'structure', 'members' => [ 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], ], ], 'ResetFpgaImageAttributeName' => [ 'type' => 'string', 'enum' => [ 'loadPermission', ], ], 'ResetFpgaImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'FpgaImageId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'FpgaImageId' => [ 'shape' => 'FpgaImageId', ], 'Attribute' => [ 'shape' => 'ResetFpgaImageAttributeName', ], ], ], 'ResetFpgaImageAttributeResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ResetImageAttributeName' => [ 'type' => 'string', 'enum' => [ 'launchPermission', ], ], 'ResetImageAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'ImageId', ], 'members' => [ 'Attribute' => [ 'shape' => 'ResetImageAttributeName', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ResetInstanceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', 'Attribute', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'Attribute' => [ 'shape' => 'InstanceAttributeName', 'locationName' => 'attribute', ], ], ], 'ResetNetworkInterfaceAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'SourceDestCheck' => [ 'shape' => 'String', 'locationName' => 'sourceDestCheck', ], ], ], 'ResetSnapshotAttributeRequest' => [ 'type' => 'structure', 'required' => [ 'Attribute', 'SnapshotId', ], 'members' => [ 'Attribute' => [ 'shape' => 'SnapshotAttributeName', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'ResourceArn' => [ 'type' => 'string', 'max' => 1283, 'min' => 1, ], 'ResourceConfigurationArn' => [ 'type' => 'string', ], 'ResourceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaggableResourceId', ], ], 'ResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'ResourceStatement' => [ 'type' => 'structure', 'members' => [ 'Resources' => [ 'shape' => 'ValueStringList', 'locationName' => 'resourceSet', ], 'ResourceTypes' => [ 'shape' => 'ValueStringList', 'locationName' => 'resourceTypeSet', ], ], ], 'ResourceStatementRequest' => [ 'type' => 'structure', 'members' => [ 'Resources' => [ 'shape' => 'ValueStringList', 'locationName' => 'Resource', ], 'ResourceTypes' => [ 'shape' => 'ValueStringList', 'locationName' => 'ResourceType', ], ], ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'capacity-reservation', 'client-vpn-endpoint', 'customer-gateway', 'carrier-gateway', 'coip-pool', 'declarative-policies-report', 'dedicated-host', 'dhcp-options', 'egress-only-internet-gateway', 'elastic-ip', 'elastic-gpu', 'export-image-task', 'export-instance-task', 'fleet', 'fpga-image', 'host-reservation', 'image', 'image-usage-report', 'import-image-task', 'import-snapshot-task', 'instance', 'instance-event-window', 'internet-gateway', 'ipam', 'ipam-pool', 'ipam-scope', 'ipv4pool-ec2', 'ipv6pool-ec2', 'key-pair', 'launch-template', 'local-gateway', 'local-gateway-route-table', 'local-gateway-virtual-interface', 'local-gateway-virtual-interface-group', 'local-gateway-route-table-vpc-association', 'local-gateway-route-table-virtual-interface-group-association', 'natgateway', 'network-acl', 'network-interface', 'network-insights-analysis', 'network-insights-path', 'network-insights-access-scope', 'network-insights-access-scope-analysis', 'outpost-lag', 'placement-group', 'prefix-list', 'replace-root-volume-task', 'reserved-instances', 'route-table', 'security-group', 'security-group-rule', 'service-link-virtual-interface', 'snapshot', 'spot-fleet-request', 'spot-instances-request', 'subnet', 'subnet-cidr-reservation', 'traffic-mirror-filter', 'traffic-mirror-session', 'traffic-mirror-target', 'transit-gateway', 'transit-gateway-attachment', 'transit-gateway-connect-peer', 'transit-gateway-multicast-domain', 'transit-gateway-policy-table', 'transit-gateway-metering-policy', 'transit-gateway-route-table', 'transit-gateway-route-table-announcement', 'volume', 'vpc', 'vpc-endpoint', 'vpc-endpoint-connection', 'vpc-endpoint-service', 'vpc-endpoint-service-permission', 'vpc-peering-connection', 'vpn-connection', 'vpn-gateway', 'vpc-flow-log', 'capacity-reservation-fleet', 'traffic-mirror-filter-rule', 'vpc-endpoint-connection-device-type', 'verified-access-instance', 'verified-access-group', 'verified-access-endpoint', 'verified-access-policy', 'verified-access-trust-provider', 'vpn-connection-device-type', 'vpc-block-public-access-exclusion', 'vpc-encryption-control', 'route-server', 'route-server-endpoint', 'route-server-peer', 'ipam-resource-discovery', 'ipam-resource-discovery-association', 'instance-connect-endpoint', 'verified-access-endpoint-target', 'ipam-external-resource-verification-token', 'capacity-block', 'mac-modification-task', 'ipam-prefix-list-resolver', 'ipam-policy', 'ipam-prefix-list-resolver-target', 'secondary-interface', 'secondary-network', 'secondary-subnet', 'capacity-manager-data-export', 'vpn-concentrator', 'ipam-pool-allocation', 'capacity-reservation-cancellation-quote', ], ], 'ResourceTypeOption' => [ 'type' => 'structure', 'members' => [ 'OptionName' => [ 'shape' => 'ImageReferenceOptionName', ], 'OptionValues' => [ 'shape' => 'ResourceTypeOptionValuesList', 'locationName' => 'OptionValue', ], ], ], 'ResourceTypeOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceTypeOption', ], ], 'ResourceTypeOptionValue' => [ 'type' => 'string', ], 'ResourceTypeOptionValuesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceTypeOptionValue', ], ], 'ResourceTypeRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ImageReferenceResourceType', ], 'ResourceTypeOptions' => [ 'shape' => 'ResourceTypeOptionList', 'locationName' => 'ResourceTypeOption', ], ], ], 'ResourceTypeRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceTypeRequest', ], ], 'ResponseError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'LaunchTemplateErrorCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ResponseHostIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'ResponseHostIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'ResponseLaunchTemplateData' => [ 'type' => 'structure', 'members' => [ 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'IamInstanceProfile' => [ 'shape' => 'LaunchTemplateIamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'BlockDeviceMappings' => [ 'shape' => 'LaunchTemplateBlockDeviceMappingList', 'locationName' => 'blockDeviceMappingSet', ], 'NetworkInterfaces' => [ 'shape' => 'LaunchTemplateInstanceNetworkInterfaceSpecificationList', 'locationName' => 'networkInterfaceSet', ], 'ImageId' => [ 'shape' => 'String', 'locationName' => 'imageId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'KeyName' => [ 'shape' => 'String', 'locationName' => 'keyName', ], 'Monitoring' => [ 'shape' => 'LaunchTemplatesMonitoring', 'locationName' => 'monitoring', ], 'Placement' => [ 'shape' => 'LaunchTemplatePlacement', 'locationName' => 'placement', ], 'RamDiskId' => [ 'shape' => 'String', 'locationName' => 'ramDiskId', ], 'DisableApiTermination' => [ 'shape' => 'Boolean', 'locationName' => 'disableApiTermination', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'ShutdownBehavior', 'locationName' => 'instanceInitiatedShutdownBehavior', ], 'UserData' => [ 'shape' => 'SensitiveUserData', 'locationName' => 'userData', ], 'TagSpecifications' => [ 'shape' => 'LaunchTemplateTagSpecificationList', 'locationName' => 'tagSpecificationSet', ], 'ElasticGpuSpecifications' => [ 'shape' => 'ElasticGpuSpecificationResponseList', 'locationName' => 'elasticGpuSpecificationSet', ], 'ElasticInferenceAccelerators' => [ 'shape' => 'LaunchTemplateElasticInferenceAcceleratorResponseList', 'locationName' => 'elasticInferenceAcceleratorSet', ], 'SecurityGroupIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'securityGroupIdSet', ], 'SecurityGroups' => [ 'shape' => 'ValueStringList', 'locationName' => 'securityGroupSet', ], 'InstanceMarketOptions' => [ 'shape' => 'LaunchTemplateInstanceMarketOptions', 'locationName' => 'instanceMarketOptions', ], 'CreditSpecification' => [ 'shape' => 'CreditSpecification', 'locationName' => 'creditSpecification', ], 'CpuOptions' => [ 'shape' => 'LaunchTemplateCpuOptions', 'locationName' => 'cpuOptions', ], 'CapacityReservationSpecification' => [ 'shape' => 'LaunchTemplateCapacityReservationSpecificationResponse', 'locationName' => 'capacityReservationSpecification', ], 'LicenseSpecifications' => [ 'shape' => 'LaunchTemplateLicenseList', 'locationName' => 'licenseSet', ], 'HibernationOptions' => [ 'shape' => 'LaunchTemplateHibernationOptions', 'locationName' => 'hibernationOptions', ], 'MetadataOptions' => [ 'shape' => 'LaunchTemplateInstanceMetadataOptions', 'locationName' => 'metadataOptions', ], 'EnclaveOptions' => [ 'shape' => 'LaunchTemplateEnclaveOptions', 'locationName' => 'enclaveOptions', ], 'InstanceRequirements' => [ 'shape' => 'InstanceRequirements', 'locationName' => 'instanceRequirements', ], 'PrivateDnsNameOptions' => [ 'shape' => 'LaunchTemplatePrivateDnsNameOptions', 'locationName' => 'privateDnsNameOptions', ], 'MaintenanceOptions' => [ 'shape' => 'LaunchTemplateInstanceMaintenanceOptions', 'locationName' => 'maintenanceOptions', ], 'DisableApiStop' => [ 'shape' => 'Boolean', 'locationName' => 'disableApiStop', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], 'NetworkPerformanceOptions' => [ 'shape' => 'LaunchTemplateNetworkPerformanceOptions', 'locationName' => 'networkPerformanceOptions', ], 'SecondaryInterfaces' => [ 'shape' => 'LaunchTemplateInstanceSecondaryInterfaceSpecificationList', 'locationName' => 'secondaryInterfaceSet', ], ], ], 'RestorableByStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'RestoreAddressToClassicRequest' => [ 'type' => 'structure', 'required' => [ 'PublicIp', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], ], ], 'RestoreAddressToClassicResult' => [ 'type' => 'structure', 'members' => [ 'PublicIp' => [ 'shape' => 'String', 'locationName' => 'publicIp', ], 'Status' => [ 'shape' => 'Status', 'locationName' => 'status', ], ], ], 'RestoreImageFromRecycleBinRequest' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'ImageId' => [ 'shape' => 'ImageId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RestoreImageFromRecycleBinResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'RestoreManagedPrefixListVersionRequest' => [ 'type' => 'structure', 'required' => [ 'PrefixListId', 'PreviousVersion', 'CurrentVersion', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'PreviousVersion' => [ 'shape' => 'Long', ], 'CurrentVersion' => [ 'shape' => 'Long', ], ], ], 'RestoreManagedPrefixListVersionResult' => [ 'type' => 'structure', 'members' => [ 'PrefixList' => [ 'shape' => 'ManagedPrefixList', 'locationName' => 'prefixList', ], ], ], 'RestoreSnapshotFromRecycleBinRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', ], 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RestoreSnapshotFromRecycleBinResult' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startTime', ], 'State' => [ 'shape' => 'SnapshotState', 'locationName' => 'status', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'VolumeSize' => [ 'shape' => 'Integer', 'locationName' => 'volumeSize', ], 'SseType' => [ 'shape' => 'SSEType', 'locationName' => 'sseType', ], ], ], 'RestoreSnapshotTierRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', ], 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'TemporaryRestoreDays' => [ 'shape' => 'RestoreSnapshotTierRequestTemporaryRestoreDays', ], 'PermanentRestore' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RestoreSnapshotTierRequestTemporaryRestoreDays' => [ 'type' => 'integer', ], 'RestoreSnapshotTierResult' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'RestoreStartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'restoreStartTime', ], 'RestoreDuration' => [ 'shape' => 'Integer', 'locationName' => 'restoreDuration', ], 'IsPermanentRestore' => [ 'shape' => 'Boolean', 'locationName' => 'isPermanentRestore', ], ], ], 'RestoreVolumeFromRecycleBinRequest' => [ 'type' => 'structure', 'required' => [ 'VolumeId', ], 'members' => [ 'VolumeId' => [ 'shape' => 'VolumeId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RestoreVolumeFromRecycleBinResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'ResultRange' => [ 'type' => 'integer', 'max' => 500, 'min' => 20, ], 'RetentionPeriodRequestDays' => [ 'type' => 'integer', 'max' => 36500, 'min' => 1, ], 'RetentionPeriodResponseDays' => [ 'type' => 'integer', ], 'RevokeClientVpnIngressRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', 'TargetNetworkCidr', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'TargetNetworkCidr' => [ 'shape' => 'String', ], 'AccessGroupId' => [ 'shape' => 'String', ], 'RevokeAllGroups' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'RevokeClientVpnIngressResult' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ClientVpnAuthorizationRuleStatus', 'locationName' => 'status', ], ], ], 'RevokeSecurityGroupEgressRequest' => [ 'type' => 'structure', 'required' => [ 'GroupId', ], 'members' => [ 'SecurityGroupRuleIds' => [ 'shape' => 'SecurityGroupRuleIdList', 'locationName' => 'SecurityGroupRuleId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'groupId', ], 'SourceSecurityGroupName' => [ 'shape' => 'String', 'locationName' => 'sourceSecurityGroupName', ], 'SourceSecurityGroupOwnerId' => [ 'shape' => 'String', 'locationName' => 'sourceSecurityGroupOwnerId', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'CidrIp' => [ 'shape' => 'String', 'locationName' => 'cidrIp', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', 'locationName' => 'ipPermissions', ], ], ], 'RevokeSecurityGroupEgressResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'UnknownIpPermissions' => [ 'shape' => 'IpPermissionList', 'locationName' => 'unknownIpPermissionSet', ], 'RevokedSecurityGroupRules' => [ 'shape' => 'RevokedSecurityGroupRuleList', 'locationName' => 'revokedSecurityGroupRuleSet', ], ], ], 'RevokeSecurityGroupIngressRequest' => [ 'type' => 'structure', 'members' => [ 'CidrIp' => [ 'shape' => 'String', ], 'FromPort' => [ 'shape' => 'Integer', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', ], 'GroupName' => [ 'shape' => 'SecurityGroupName', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', ], 'IpProtocol' => [ 'shape' => 'String', ], 'SourceSecurityGroupName' => [ 'shape' => 'String', ], 'SourceSecurityGroupOwnerId' => [ 'shape' => 'String', ], 'ToPort' => [ 'shape' => 'Integer', ], 'SecurityGroupRuleIds' => [ 'shape' => 'SecurityGroupRuleIdList', 'locationName' => 'SecurityGroupRuleId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'RevokeSecurityGroupIngressResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], 'UnknownIpPermissions' => [ 'shape' => 'IpPermissionList', 'locationName' => 'unknownIpPermissionSet', ], 'RevokedSecurityGroupRules' => [ 'shape' => 'RevokedSecurityGroupRuleList', 'locationName' => 'revokedSecurityGroupRuleSet', ], ], ], 'RevokedSecurityGroupRule' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupRuleId' => [ 'shape' => 'SecurityGroupRuleId', 'locationName' => 'securityGroupRuleId', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'groupId', ], 'IsEgress' => [ 'shape' => 'Boolean', 'locationName' => 'isEgress', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'CidrIpv4' => [ 'shape' => 'String', 'locationName' => 'cidrIpv4', ], 'CidrIpv6' => [ 'shape' => 'String', 'locationName' => 'cidrIpv6', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', 'locationName' => 'prefixListId', ], 'ReferencedGroupId' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'referencedGroupId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], ], ], 'RevokedSecurityGroupRuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RevokedSecurityGroupRule', 'locationName' => 'item', ], ], 'RoleId' => [ 'type' => 'string', ], 'RootDeviceType' => [ 'type' => 'string', 'enum' => [ 'ebs', 'instance-store', ], ], 'RootDeviceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RootDeviceType', 'locationName' => 'item', ], ], 'Route' => [ 'type' => 'structure', 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'DestinationIpv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationIpv6CidrBlock', ], 'DestinationPrefixListId' => [ 'shape' => 'String', 'locationName' => 'destinationPrefixListId', ], 'EgressOnlyInternetGatewayId' => [ 'shape' => 'String', 'locationName' => 'egressOnlyInternetGatewayId', ], 'GatewayId' => [ 'shape' => 'String', 'locationName' => 'gatewayId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceOwnerId' => [ 'shape' => 'String', 'locationName' => 'instanceOwnerId', ], 'NatGatewayId' => [ 'shape' => 'String', 'locationName' => 'natGatewayId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'LocalGatewayId' => [ 'shape' => 'String', 'locationName' => 'localGatewayId', ], 'CarrierGatewayId' => [ 'shape' => 'CarrierGatewayId', 'locationName' => 'carrierGatewayId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'Origin' => [ 'shape' => 'RouteOrigin', 'locationName' => 'origin', ], 'State' => [ 'shape' => 'RouteState', 'locationName' => 'state', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], 'CoreNetworkArn' => [ 'shape' => 'CoreNetworkArn', 'locationName' => 'coreNetworkArn', ], 'OdbNetworkArn' => [ 'shape' => 'OdbNetworkArn', 'locationName' => 'odbNetworkArn', ], 'IpAddress' => [ 'shape' => 'String', 'locationName' => 'ipAddress', ], ], ], 'RouteGatewayId' => [ 'type' => 'string', ], 'RouteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Route', 'locationName' => 'item', ], ], 'RouteOrigin' => [ 'type' => 'string', 'enum' => [ 'CreateRouteTable', 'CreateRoute', 'EnableVgwRoutePropagation', 'Advertisement', ], ], 'RouteServer' => [ 'type' => 'structure', 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', 'locationName' => 'routeServerId', ], 'AmazonSideAsn' => [ 'shape' => 'Long', 'locationName' => 'amazonSideAsn', ], 'State' => [ 'shape' => 'RouteServerState', 'locationName' => 'state', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'PersistRoutesState' => [ 'shape' => 'RouteServerPersistRoutesState', 'locationName' => 'persistRoutesState', ], 'PersistRoutesDuration' => [ 'shape' => 'BoxedLong', 'locationName' => 'persistRoutesDuration', ], 'SnsNotificationsEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'snsNotificationsEnabled', ], 'SnsTopicArn' => [ 'shape' => 'String', 'locationName' => 'snsTopicArn', ], ], ], 'RouteServerAssociation' => [ 'type' => 'structure', 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', 'locationName' => 'routeServerId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'State' => [ 'shape' => 'RouteServerAssociationState', 'locationName' => 'state', ], ], ], 'RouteServerAssociationState' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', ], ], 'RouteServerAssociationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerAssociation', 'locationName' => 'item', ], ], 'RouteServerBfdState' => [ 'type' => 'string', 'enum' => [ 'up', 'down', ], ], 'RouteServerBfdStatus' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'RouteServerBfdState', 'locationName' => 'status', ], ], ], 'RouteServerBgpOptions' => [ 'type' => 'structure', 'members' => [ 'PeerAsn' => [ 'shape' => 'Long', 'locationName' => 'peerAsn', ], 'PeerLivenessDetection' => [ 'shape' => 'RouteServerPeerLivenessMode', 'locationName' => 'peerLivenessDetection', ], ], ], 'RouteServerBgpOptionsRequest' => [ 'type' => 'structure', 'required' => [ 'PeerAsn', ], 'members' => [ 'PeerAsn' => [ 'shape' => 'Long', ], 'PeerLivenessDetection' => [ 'shape' => 'RouteServerPeerLivenessMode', ], ], ], 'RouteServerBgpState' => [ 'type' => 'string', 'enum' => [ 'up', 'down', ], ], 'RouteServerBgpStatus' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'RouteServerBgpState', 'locationName' => 'status', ], ], ], 'RouteServerEndpoint' => [ 'type' => 'structure', 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', 'locationName' => 'routeServerId', ], 'RouteServerEndpointId' => [ 'shape' => 'RouteServerEndpointId', 'locationName' => 'routeServerEndpointId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'EniId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'eniId', ], 'EniAddress' => [ 'shape' => 'String', 'locationName' => 'eniAddress', ], 'State' => [ 'shape' => 'RouteServerEndpointState', 'locationName' => 'state', ], 'FailureReason' => [ 'shape' => 'String', 'locationName' => 'failureReason', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'RouteServerEndpointId' => [ 'type' => 'string', ], 'RouteServerEndpointIdsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerEndpointId', ], ], 'RouteServerEndpointState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', 'failing', 'failed', 'delete-failed', ], ], 'RouteServerEndpointsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerEndpoint', 'locationName' => 'item', ], ], 'RouteServerId' => [ 'type' => 'string', ], 'RouteServerIdsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerId', ], ], 'RouteServerMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'RouteServerPeer' => [ 'type' => 'structure', 'members' => [ 'RouteServerPeerId' => [ 'shape' => 'RouteServerPeerId', 'locationName' => 'routeServerPeerId', ], 'RouteServerEndpointId' => [ 'shape' => 'RouteServerEndpointId', 'locationName' => 'routeServerEndpointId', ], 'RouteServerId' => [ 'shape' => 'RouteServerId', 'locationName' => 'routeServerId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'State' => [ 'shape' => 'RouteServerPeerState', 'locationName' => 'state', ], 'FailureReason' => [ 'shape' => 'String', 'locationName' => 'failureReason', ], 'EndpointEniId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'endpointEniId', ], 'EndpointEniAddress' => [ 'shape' => 'String', 'locationName' => 'endpointEniAddress', ], 'PeerAddress' => [ 'shape' => 'String', 'locationName' => 'peerAddress', ], 'BgpOptions' => [ 'shape' => 'RouteServerBgpOptions', 'locationName' => 'bgpOptions', ], 'BgpStatus' => [ 'shape' => 'RouteServerBgpStatus', 'locationName' => 'bgpStatus', ], 'BfdStatus' => [ 'shape' => 'RouteServerBfdStatus', 'locationName' => 'bfdStatus', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'RouteServerPeerId' => [ 'type' => 'string', ], 'RouteServerPeerIdsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerPeerId', ], ], 'RouteServerPeerLivenessMode' => [ 'type' => 'string', 'enum' => [ 'bfd', 'bgp-keepalive', ], ], 'RouteServerPeerState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', 'failing', 'failed', ], ], 'RouteServerPeersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerPeer', 'locationName' => 'item', ], ], 'RouteServerPersistRoutesAction' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', 'reset', ], ], 'RouteServerPersistRoutesState' => [ 'type' => 'string', 'enum' => [ 'enabling', 'enabled', 'resetting', 'disabling', 'disabled', 'modifying', ], ], 'RouteServerPropagation' => [ 'type' => 'structure', 'members' => [ 'RouteServerId' => [ 'shape' => 'RouteServerId', 'locationName' => 'routeServerId', ], 'RouteTableId' => [ 'shape' => 'RouteTableId', 'locationName' => 'routeTableId', ], 'State' => [ 'shape' => 'RouteServerPropagationState', 'locationName' => 'state', ], ], ], 'RouteServerPropagationState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', ], ], 'RouteServerPropagationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerPropagation', 'locationName' => 'item', ], ], 'RouteServerRoute' => [ 'type' => 'structure', 'members' => [ 'RouteServerEndpointId' => [ 'shape' => 'RouteServerEndpointId', 'locationName' => 'routeServerEndpointId', ], 'RouteServerPeerId' => [ 'shape' => 'RouteServerPeerId', 'locationName' => 'routeServerPeerId', ], 'RouteInstallationDetails' => [ 'shape' => 'RouteServerRouteInstallationDetails', 'locationName' => 'routeInstallationDetailSet', ], 'RouteStatus' => [ 'shape' => 'RouteServerRouteStatus', 'locationName' => 'routeStatus', ], 'Prefix' => [ 'shape' => 'String', 'locationName' => 'prefix', ], 'AsPaths' => [ 'shape' => 'AsPath', 'locationName' => 'asPathSet', ], 'Med' => [ 'shape' => 'Integer', 'locationName' => 'med', ], 'NextHopIp' => [ 'shape' => 'String', 'locationName' => 'nextHopIp', ], ], ], 'RouteServerRouteInstallationDetail' => [ 'type' => 'structure', 'members' => [ 'RouteTableId' => [ 'shape' => 'RouteTableId', 'locationName' => 'routeTableId', ], 'RouteInstallationStatus' => [ 'shape' => 'RouteServerRouteInstallationStatus', 'locationName' => 'routeInstallationStatus', ], 'RouteInstallationStatusReason' => [ 'shape' => 'String', 'locationName' => 'routeInstallationStatusReason', ], ], ], 'RouteServerRouteInstallationDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerRouteInstallationDetail', 'locationName' => 'item', ], ], 'RouteServerRouteInstallationStatus' => [ 'type' => 'string', 'enum' => [ 'installed', 'rejected', ], ], 'RouteServerRouteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServerRoute', 'locationName' => 'item', ], ], 'RouteServerRouteStatus' => [ 'type' => 'string', 'enum' => [ 'in-rib', 'in-fib', ], ], 'RouteServerState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'modifying', 'deleting', 'deleted', ], ], 'RouteServersList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteServer', 'locationName' => 'item', ], ], 'RouteState' => [ 'type' => 'string', 'enum' => [ 'active', 'blackhole', 'filtered', ], ], 'RouteTable' => [ 'type' => 'structure', 'members' => [ 'Associations' => [ 'shape' => 'RouteTableAssociationList', 'locationName' => 'associationSet', ], 'PropagatingVgws' => [ 'shape' => 'PropagatingVgwList', 'locationName' => 'propagatingVgwSet', ], 'RouteTableId' => [ 'shape' => 'String', 'locationName' => 'routeTableId', ], 'Routes' => [ 'shape' => 'RouteList', 'locationName' => 'routeSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], ], ], 'RouteTableAssociation' => [ 'type' => 'structure', 'members' => [ 'Main' => [ 'shape' => 'Boolean', 'locationName' => 'main', ], 'RouteTableAssociationId' => [ 'shape' => 'String', 'locationName' => 'routeTableAssociationId', ], 'RouteTableId' => [ 'shape' => 'String', 'locationName' => 'routeTableId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'GatewayId' => [ 'shape' => 'String', 'locationName' => 'gatewayId', ], 'PublicIpv4Pool' => [ 'shape' => 'String', 'locationName' => 'publicIpv4Pool', ], 'AssociationState' => [ 'shape' => 'RouteTableAssociationState', 'locationName' => 'associationState', ], ], ], 'RouteTableAssociationId' => [ 'type' => 'string', ], 'RouteTableAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteTableAssociation', 'locationName' => 'item', ], ], 'RouteTableAssociationState' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'RouteTableAssociationStateCode', 'locationName' => 'state', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], ], ], 'RouteTableAssociationStateCode' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', 'disassociated', 'failed', ], ], 'RouteTableId' => [ 'type' => 'string', ], 'RouteTableIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteTableId', 'locationName' => 'item', ], ], 'RouteTableList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteTable', 'locationName' => 'item', ], ], 'RuleAction' => [ 'type' => 'string', 'enum' => [ 'allow', 'deny', ], ], 'RuleGroupRuleOptionsPair' => [ 'type' => 'structure', 'members' => [ 'RuleGroupArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ruleGroupArn', ], 'RuleOptions' => [ 'shape' => 'RuleOptionList', 'locationName' => 'ruleOptionSet', ], ], ], 'RuleGroupRuleOptionsPairList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleGroupRuleOptionsPair', 'locationName' => 'item', ], ], 'RuleGroupTypePair' => [ 'type' => 'structure', 'members' => [ 'RuleGroupArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'ruleGroupArn', ], 'RuleGroupType' => [ 'shape' => 'String', 'locationName' => 'ruleGroupType', ], ], ], 'RuleGroupTypePairList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleGroupTypePair', 'locationName' => 'item', ], ], 'RuleOption' => [ 'type' => 'structure', 'members' => [ 'Keyword' => [ 'shape' => 'String', 'locationName' => 'keyword', ], 'Settings' => [ 'shape' => 'StringList', 'locationName' => 'settingSet', ], ], ], 'RuleOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RuleOption', 'locationName' => 'item', ], ], 'RunInstancesMonitoringEnabled' => [ 'type' => 'structure', 'required' => [ 'Enabled', ], 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], ], ], 'RunInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'MaxCount', 'MinCount', ], 'members' => [ 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingRequestList', 'locationName' => 'BlockDeviceMapping', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'InstanceType' => [ 'shape' => 'InstanceType', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', ], 'Ipv6Addresses' => [ 'shape' => 'InstanceIpv6AddressList', 'locationName' => 'Ipv6Address', ], 'KernelId' => [ 'shape' => 'KernelId', ], 'KeyName' => [ 'shape' => 'KeyPairName', ], 'MaxCount' => [ 'shape' => 'Integer', ], 'MinCount' => [ 'shape' => 'Integer', ], 'Monitoring' => [ 'shape' => 'RunInstancesMonitoringEnabled', ], 'Placement' => [ 'shape' => 'Placement', ], 'RamdiskId' => [ 'shape' => 'RamdiskId', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdStringList', 'locationName' => 'SecurityGroupId', ], 'SecurityGroups' => [ 'shape' => 'SecurityGroupStringList', 'locationName' => 'SecurityGroup', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'UserData' => [ 'shape' => 'RunInstancesUserData', ], 'ElasticGpuSpecification' => [ 'shape' => 'ElasticGpuSpecifications', 'deprecated' => true, 'deprecatedMessage' => 'Specifying Elastic Graphics accelerators is no longer supported on the RunInstances API.', 'deprecatedSince' => '2024-01-08', ], 'ElasticInferenceAccelerators' => [ 'shape' => 'ElasticInferenceAccelerators', 'deprecated' => true, 'deprecatedMessage' => 'Specifying Elastic Inference accelerators is no longer supported on the RunInstances API.', 'deprecatedSince' => '2024-01-08', 'locationName' => 'ElasticInferenceAccelerator', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'LaunchTemplate' => [ 'shape' => 'LaunchTemplateSpecification', ], 'InstanceMarketOptions' => [ 'shape' => 'InstanceMarketOptionsRequest', ], 'CreditSpecification' => [ 'shape' => 'CreditSpecificationRequest', ], 'CpuOptions' => [ 'shape' => 'CpuOptionsRequest', ], 'CapacityReservationSpecification' => [ 'shape' => 'CapacityReservationSpecification', ], 'HibernationOptions' => [ 'shape' => 'HibernationOptionsRequest', ], 'LicenseSpecifications' => [ 'shape' => 'LicenseSpecificationListRequest', 'locationName' => 'LicenseSpecification', ], 'MetadataOptions' => [ 'shape' => 'InstanceMetadataOptionsRequest', ], 'EnclaveOptions' => [ 'shape' => 'EnclaveOptionsRequest', ], 'PrivateDnsNameOptions' => [ 'shape' => 'PrivateDnsNameOptionsRequest', ], 'MaintenanceOptions' => [ 'shape' => 'InstanceMaintenanceOptionsRequest', ], 'DisableApiStop' => [ 'shape' => 'Boolean', ], 'EnablePrimaryIpv6' => [ 'shape' => 'Boolean', ], 'NetworkPerformanceOptions' => [ 'shape' => 'InstanceNetworkPerformanceOptionsRequest', ], 'Operator' => [ 'shape' => 'OperatorRequest', ], 'SecondaryInterfaces' => [ 'shape' => 'InstanceSecondaryInterfaceSpecificationListRequest', 'locationName' => 'SecondaryInterface', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'DisableApiTermination' => [ 'shape' => 'Boolean', 'locationName' => 'disableApiTermination', ], 'InstanceInitiatedShutdownBehavior' => [ 'shape' => 'ShutdownBehavior', 'locationName' => 'instanceInitiatedShutdownBehavior', ], 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, 'locationName' => 'clientToken', ], 'AdditionalInfo' => [ 'shape' => 'String', 'locationName' => 'additionalInfo', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceSpecificationList', 'locationName' => 'networkInterface', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], ], ], 'RunInstancesUserData' => [ 'type' => 'string', 'sensitive' => true, ], 'RunScheduledInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'LaunchSpecification', 'ScheduledInstanceId', ], 'members' => [ 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'DryRun' => [ 'shape' => 'Boolean', ], 'InstanceCount' => [ 'shape' => 'Integer', ], 'LaunchSpecification' => [ 'shape' => 'ScheduledInstancesLaunchSpecification', ], 'ScheduledInstanceId' => [ 'shape' => 'ScheduledInstanceId', ], ], ], 'RunScheduledInstancesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceIdSet' => [ 'shape' => 'InstanceIdSet', 'locationName' => 'instanceIdSet', ], ], ], 'S3ObjectTag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', ], 'Value' => [ 'shape' => 'String', ], ], ], 'S3ObjectTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'S3ObjectTag', 'locationName' => 'item', ], ], 'S3Storage' => [ 'type' => 'structure', 'members' => [ 'AWSAccessKeyId' => [ 'shape' => 'String', ], 'Bucket' => [ 'shape' => 'String', 'locationName' => 'bucket', ], 'Prefix' => [ 'shape' => 'String', 'locationName' => 'prefix', ], 'UploadPolicy' => [ 'shape' => 'SecureBlob', 'locationName' => 'uploadPolicy', ], 'UploadPolicySignature' => [ 'shape' => 'S3StorageUploadPolicySignature', 'locationName' => 'uploadPolicySignature', ], ], ], 'S3StorageUploadPolicy' => [ 'type' => 'string', 'sensitive' => true, ], 'S3StorageUploadPolicySignature' => [ 'type' => 'string', 'sensitive' => true, ], 'SSEType' => [ 'type' => 'string', 'enum' => [ 'sse-ebs', 'sse-kms', 'none', ], ], 'Schedule' => [ 'type' => 'string', 'enum' => [ 'hourly', ], ], 'ScheduledInstance' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'CreateDate' => [ 'shape' => 'DateTime', 'locationName' => 'createDate', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'NetworkPlatform' => [ 'shape' => 'String', 'locationName' => 'networkPlatform', ], 'NextSlotStartTime' => [ 'shape' => 'DateTime', 'locationName' => 'nextSlotStartTime', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'PreviousSlotEndTime' => [ 'shape' => 'DateTime', 'locationName' => 'previousSlotEndTime', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrence', 'locationName' => 'recurrence', ], 'ScheduledInstanceId' => [ 'shape' => 'String', 'locationName' => 'scheduledInstanceId', ], 'SlotDurationInHours' => [ 'shape' => 'Integer', 'locationName' => 'slotDurationInHours', ], 'TermEndDate' => [ 'shape' => 'DateTime', 'locationName' => 'termEndDate', ], 'TermStartDate' => [ 'shape' => 'DateTime', 'locationName' => 'termStartDate', ], 'TotalScheduledInstanceHours' => [ 'shape' => 'Integer', 'locationName' => 'totalScheduledInstanceHours', ], ], ], 'ScheduledInstanceAvailability' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailableInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'availableInstanceCount', ], 'FirstSlotStartTime' => [ 'shape' => 'DateTime', 'locationName' => 'firstSlotStartTime', ], 'HourlyPrice' => [ 'shape' => 'String', 'locationName' => 'hourlyPrice', ], 'InstanceType' => [ 'shape' => 'String', 'locationName' => 'instanceType', ], 'MaxTermDurationInDays' => [ 'shape' => 'Integer', 'locationName' => 'maxTermDurationInDays', ], 'MinTermDurationInDays' => [ 'shape' => 'Integer', 'locationName' => 'minTermDurationInDays', ], 'NetworkPlatform' => [ 'shape' => 'String', 'locationName' => 'networkPlatform', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'PurchaseToken' => [ 'shape' => 'String', 'locationName' => 'purchaseToken', ], 'Recurrence' => [ 'shape' => 'ScheduledInstanceRecurrence', 'locationName' => 'recurrence', ], 'SlotDurationInHours' => [ 'shape' => 'Integer', 'locationName' => 'slotDurationInHours', ], 'TotalScheduledInstanceHours' => [ 'shape' => 'Integer', 'locationName' => 'totalScheduledInstanceHours', ], ], ], 'ScheduledInstanceAvailabilitySet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstanceAvailability', 'locationName' => 'item', ], ], 'ScheduledInstanceId' => [ 'type' => 'string', ], 'ScheduledInstanceIdRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstanceId', 'locationName' => 'ScheduledInstanceId', ], ], 'ScheduledInstanceRecurrence' => [ 'type' => 'structure', 'members' => [ 'Frequency' => [ 'shape' => 'String', 'locationName' => 'frequency', ], 'Interval' => [ 'shape' => 'Integer', 'locationName' => 'interval', ], 'OccurrenceDaySet' => [ 'shape' => 'OccurrenceDaySet', 'locationName' => 'occurrenceDaySet', ], 'OccurrenceRelativeToEnd' => [ 'shape' => 'Boolean', 'locationName' => 'occurrenceRelativeToEnd', ], 'OccurrenceUnit' => [ 'shape' => 'String', 'locationName' => 'occurrenceUnit', ], ], ], 'ScheduledInstanceRecurrenceRequest' => [ 'type' => 'structure', 'members' => [ 'Frequency' => [ 'shape' => 'String', ], 'Interval' => [ 'shape' => 'Integer', ], 'OccurrenceDays' => [ 'shape' => 'OccurrenceDayRequestSet', 'locationName' => 'OccurrenceDay', ], 'OccurrenceRelativeToEnd' => [ 'shape' => 'Boolean', ], 'OccurrenceUnit' => [ 'shape' => 'String', ], ], ], 'ScheduledInstanceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstance', 'locationName' => 'item', ], ], 'ScheduledInstancesBlockDeviceMapping' => [ 'type' => 'structure', 'members' => [ 'DeviceName' => [ 'shape' => 'String', ], 'Ebs' => [ 'shape' => 'ScheduledInstancesEbs', ], 'NoDevice' => [ 'shape' => 'String', ], 'VirtualName' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesBlockDeviceMappingSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesBlockDeviceMapping', 'locationName' => 'BlockDeviceMapping', ], ], 'ScheduledInstancesEbs' => [ 'type' => 'structure', 'members' => [ 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'Encrypted' => [ 'shape' => 'Boolean', ], 'Iops' => [ 'shape' => 'Integer', ], 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'VolumeSize' => [ 'shape' => 'Integer', ], 'VolumeType' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesIamInstanceProfile' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', ], 'Name' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesIpv6Address' => [ 'type' => 'structure', 'members' => [ 'Ipv6Address' => [ 'shape' => 'Ipv6Address', ], ], ], 'ScheduledInstancesIpv6AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesIpv6Address', 'locationName' => 'Ipv6Address', ], ], 'ScheduledInstancesLaunchSpecification' => [ 'type' => 'structure', 'required' => [ 'ImageId', ], 'members' => [ 'BlockDeviceMappings' => [ 'shape' => 'ScheduledInstancesBlockDeviceMappingSet', 'locationName' => 'BlockDeviceMapping', ], 'EbsOptimized' => [ 'shape' => 'Boolean', ], 'IamInstanceProfile' => [ 'shape' => 'ScheduledInstancesIamInstanceProfile', ], 'ImageId' => [ 'shape' => 'ImageId', ], 'InstanceType' => [ 'shape' => 'String', ], 'KernelId' => [ 'shape' => 'KernelId', ], 'KeyName' => [ 'shape' => 'KeyPairName', ], 'Monitoring' => [ 'shape' => 'ScheduledInstancesMonitoring', ], 'NetworkInterfaces' => [ 'shape' => 'ScheduledInstancesNetworkInterfaceSet', 'locationName' => 'NetworkInterface', ], 'Placement' => [ 'shape' => 'ScheduledInstancesPlacement', ], 'RamdiskId' => [ 'shape' => 'RamdiskId', ], 'SecurityGroupIds' => [ 'shape' => 'ScheduledInstancesSecurityGroupIdSet', 'locationName' => 'SecurityGroupId', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], 'UserData' => [ 'shape' => 'String', ], ], 'sensitive' => true, ], 'ScheduledInstancesMonitoring' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], ], ], 'ScheduledInstancesNetworkInterface' => [ 'type' => 'structure', 'members' => [ 'AssociatePublicIpAddress' => [ 'shape' => 'Boolean', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', ], 'Description' => [ 'shape' => 'String', ], 'DeviceIndex' => [ 'shape' => 'Integer', ], 'Groups' => [ 'shape' => 'ScheduledInstancesSecurityGroupIdSet', 'locationName' => 'Group', ], 'Ipv6AddressCount' => [ 'shape' => 'Integer', ], 'Ipv6Addresses' => [ 'shape' => 'ScheduledInstancesIpv6AddressList', 'locationName' => 'Ipv6Address', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', ], 'PrivateIpAddress' => [ 'shape' => 'String', ], 'PrivateIpAddressConfigs' => [ 'shape' => 'PrivateIpAddressConfigSet', 'locationName' => 'PrivateIpAddressConfig', ], 'SecondaryPrivateIpAddressCount' => [ 'shape' => 'Integer', ], 'SubnetId' => [ 'shape' => 'SubnetId', ], ], ], 'ScheduledInstancesNetworkInterfaceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ScheduledInstancesNetworkInterface', 'locationName' => 'NetworkInterface', ], ], 'ScheduledInstancesPlacement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', ], 'GroupName' => [ 'shape' => 'PlacementGroupName', ], ], ], 'ScheduledInstancesPrivateIpAddressConfig' => [ 'type' => 'structure', 'members' => [ 'Primary' => [ 'shape' => 'Boolean', ], 'PrivateIpAddress' => [ 'shape' => 'String', ], ], ], 'ScheduledInstancesSecurityGroupIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'SecurityGroupId', ], ], 'SearchLocalGatewayRoutesRequest' => [ 'type' => 'structure', 'required' => [ 'LocalGatewayRouteTableId', ], 'members' => [ 'LocalGatewayRouteTableId' => [ 'shape' => 'LocalGatewayRoutetableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'MaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'SearchLocalGatewayRoutesResult' => [ 'type' => 'structure', 'members' => [ 'Routes' => [ 'shape' => 'LocalGatewayRouteList', 'locationName' => 'routeSet', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'SearchTransitGatewayMulticastGroupsRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayMulticastDomainId', ], 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'TransitGatewayMulticastDomainId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'NextToken' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'SearchTransitGatewayMulticastGroupsResult' => [ 'type' => 'structure', 'members' => [ 'MulticastGroups' => [ 'shape' => 'TransitGatewayMulticastGroupList', 'locationName' => 'multicastGroups', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'SearchTransitGatewayRoutesRequest' => [ 'type' => 'structure', 'required' => [ 'TransitGatewayRouteTableId', 'Filters', ], 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', ], 'Filters' => [ 'shape' => 'FilterList', 'locationName' => 'Filter', ], 'MaxResults' => [ 'shape' => 'TransitGatewayMaxResults', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'SearchTransitGatewayRoutesResult' => [ 'type' => 'structure', 'members' => [ 'Routes' => [ 'shape' => 'TransitGatewayRouteList', 'locationName' => 'routeSet', ], 'AdditionalRoutesAvailable' => [ 'shape' => 'Boolean', 'locationName' => 'additionalRoutesAvailable', ], 'NextToken' => [ 'shape' => 'String', 'locationName' => 'nextToken', ], ], ], 'SecondaryInterface' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], 'Attachment' => [ 'shape' => 'SecondaryInterfaceAttachment', 'locationName' => 'attachment', ], 'MacAddress' => [ 'shape' => 'String', 'locationName' => 'macAddress', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PrivateIpv4Addresses' => [ 'shape' => 'SecondaryInterfaceIpv4AddressList', 'locationName' => 'privateIpv4AddressSet', ], 'SecondaryInterfaceId' => [ 'shape' => 'SecondaryInterfaceId', 'locationName' => 'secondaryInterfaceId', ], 'SecondaryInterfaceArn' => [ 'shape' => 'String', 'locationName' => 'secondaryInterfaceArn', ], 'SecondaryInterfaceType' => [ 'shape' => 'SecondaryInterfaceType', 'locationName' => 'secondaryInterfaceType', ], 'SecondarySubnetId' => [ 'shape' => 'SecondarySubnetId', 'locationName' => 'secondarySubnetId', ], 'SecondaryNetworkId' => [ 'shape' => 'SecondaryNetworkId', 'locationName' => 'secondaryNetworkId', ], 'SecondaryNetworkType' => [ 'shape' => 'SecondaryNetworkType', 'locationName' => 'secondaryNetworkType', ], 'SourceDestCheck' => [ 'shape' => 'Boolean', 'locationName' => 'sourceDestCheck', ], 'Status' => [ 'shape' => 'SecondaryInterfaceStatus', 'locationName' => 'status', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'SecondaryInterfaceAttachment' => [ 'type' => 'structure', 'members' => [ 'AttachmentId' => [ 'shape' => 'String', 'locationName' => 'attachmentId', ], 'AttachTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'attachTime', ], 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'DeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'deviceIndex', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'InstanceOwnerId' => [ 'shape' => 'String', 'locationName' => 'instanceOwnerId', ], 'NetworkCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'networkCardIndex', ], 'Status' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'status', ], ], ], 'SecondaryInterfaceId' => [ 'type' => 'string', ], 'SecondaryInterfaceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryInterfaceId', 'locationName' => 'item', ], ], 'SecondaryInterfaceIpv4Address' => [ 'type' => 'structure', 'members' => [ 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'SecondaryInterfaceIpv4AddressList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryInterfaceIpv4Address', 'locationName' => 'item', ], ], 'SecondaryInterfaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryInterface', 'locationName' => 'item', ], ], 'SecondaryInterfacePrivateIpAddressSpecification' => [ 'type' => 'structure', 'members' => [ 'PrivateIpAddress' => [ 'shape' => 'String', 'locationName' => 'privateIpAddress', ], ], ], 'SecondaryInterfacePrivateIpAddressSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryInterfacePrivateIpAddressSpecification', 'locationName' => 'item', ], ], 'SecondaryInterfacePrivateIpAddressSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryInterfacePrivateIpAddressSpecificationRequest', 'locationName' => 'SecondaryInterfacePrivateIpAddressSpecification', ], ], 'SecondaryInterfacePrivateIpAddressSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'PrivateIpAddress' => [ 'shape' => 'String', ], ], ], 'SecondaryInterfaceStatus' => [ 'type' => 'string', 'enum' => [ 'available', 'in-use', ], ], 'SecondaryInterfaceType' => [ 'type' => 'string', 'enum' => [ 'secondary', ], ], 'SecondaryNetwork' => [ 'type' => 'structure', 'members' => [ 'SecondaryNetworkId' => [ 'shape' => 'SecondaryNetworkId', 'locationName' => 'secondaryNetworkId', ], 'SecondaryNetworkArn' => [ 'shape' => 'String', 'locationName' => 'secondaryNetworkArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Type' => [ 'shape' => 'SecondaryNetworkType', 'locationName' => 'type', ], 'State' => [ 'shape' => 'SecondaryNetworkState', 'locationName' => 'state', ], 'StateReason' => [ 'shape' => 'String', 'locationName' => 'stateReason', ], 'Ipv4CidrBlockAssociations' => [ 'shape' => 'SecondaryNetworkIpv4CidrBlockAssociationList', 'locationName' => 'ipv4CidrBlockAssociationSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'SecondaryNetworkCidrAssociationId' => [ 'type' => 'string', ], 'SecondaryNetworkCidrBlockAssociationState' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'association-failed', 'disassociating', 'disassociated', 'disassociation-failed', ], ], 'SecondaryNetworkId' => [ 'type' => 'string', ], 'SecondaryNetworkIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryNetworkId', 'locationName' => 'item', ], ], 'SecondaryNetworkIpv4CidrBlockAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'SecondaryNetworkCidrAssociationId', 'locationName' => 'associationId', ], 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'State' => [ 'shape' => 'SecondaryNetworkCidrBlockAssociationState', 'locationName' => 'state', ], 'StateReason' => [ 'shape' => 'String', 'locationName' => 'stateReason', ], ], ], 'SecondaryNetworkIpv4CidrBlockAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryNetworkIpv4CidrBlockAssociation', 'locationName' => 'item', ], ], 'SecondaryNetworkList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryNetwork', 'locationName' => 'item', ], ], 'SecondaryNetworkState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', ], ], 'SecondaryNetworkSupportedFlag' => [ 'type' => 'boolean', ], 'SecondaryNetworkType' => [ 'type' => 'string', 'enum' => [ 'rdma', ], ], 'SecondarySubnet' => [ 'type' => 'structure', 'members' => [ 'SecondarySubnetId' => [ 'shape' => 'SecondarySubnetId', 'locationName' => 'secondarySubnetId', ], 'SecondarySubnetArn' => [ 'shape' => 'String', 'locationName' => 'secondarySubnetArn', ], 'SecondaryNetworkId' => [ 'shape' => 'SecondaryNetworkId', 'locationName' => 'secondaryNetworkId', ], 'SecondaryNetworkType' => [ 'shape' => 'SecondaryNetworkType', 'locationName' => 'secondaryNetworkType', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'AvailabilityZoneId' => [ 'shape' => 'AvailabilityZoneId', 'locationName' => 'availabilityZoneId', ], 'AvailabilityZone' => [ 'shape' => 'AvailabilityZoneName', 'locationName' => 'availabilityZone', ], 'Ipv4CidrBlockAssociations' => [ 'shape' => 'SecondarySubnetIpv4CidrBlockAssociationList', 'locationName' => 'ipv4CidrBlockAssociationSet', ], 'State' => [ 'shape' => 'SecondarySubnetState', 'locationName' => 'state', ], 'StateReason' => [ 'shape' => 'String', 'locationName' => 'stateReason', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'SecondarySubnetCidrAssociationId' => [ 'type' => 'string', ], 'SecondarySubnetCidrBlockAssociationState' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'association-failed', 'disassociating', 'disassociated', 'disassociation-failed', ], ], 'SecondarySubnetId' => [ 'type' => 'string', ], 'SecondarySubnetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondarySubnetId', 'locationName' => 'item', ], ], 'SecondarySubnetIpv4CidrBlockAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'SecondarySubnetCidrAssociationId', 'locationName' => 'associationId', ], 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'State' => [ 'shape' => 'SecondarySubnetCidrBlockAssociationState', 'locationName' => 'state', ], 'StateReason' => [ 'shape' => 'String', 'locationName' => 'stateReason', ], ], ], 'SecondarySubnetIpv4CidrBlockAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondarySubnetIpv4CidrBlockAssociation', 'locationName' => 'item', ], ], 'SecondarySubnetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondarySubnet', 'locationName' => 'item', ], ], 'SecondarySubnetState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'delete-in-progress', 'delete-complete', 'delete-failed', ], ], 'SecretArn' => [ 'type' => 'string', 'pattern' => '^(?=.{20,2048}$)arn:aws[a-z-]*:secretsmanager:[a-z0-9-]+:\\d{12}:secret:[a-zA-Z0-9/_+=.@-]+', ], 'SecureBlob' => [ 'type' => 'blob', 'sensitive' => true, ], 'SecureBlobAttributeValue' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'SecureBlob', 'locationName' => 'value', ], ], ], 'SecurityGroup' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'IpPermissionsEgress' => [ 'shape' => 'IpPermissionList', 'locationName' => 'ipPermissionsEgress', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'SecurityGroupArn' => [ 'shape' => 'String', 'locationName' => 'securityGroupArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'groupDescription', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', 'locationName' => 'ipPermissions', ], ], ], 'SecurityGroupForVpc' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'PrimaryVpcId' => [ 'shape' => 'String', 'locationName' => 'primaryVpcId', ], ], ], 'SecurityGroupForVpcList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupForVpc', 'locationName' => 'item', ], ], 'SecurityGroupId' => [ 'type' => 'string', ], 'SecurityGroupIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'item', ], ], 'SecurityGroupIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'item', ], ], 'SecurityGroupIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'SecurityGroupId', ], ], 'SecurityGroupIdStringListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'SecurityGroupId', ], 'max' => 16, 'min' => 0, ], 'SecurityGroupIdentifier' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], ], ], 'SecurityGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroup', 'locationName' => 'item', ], ], 'SecurityGroupName' => [ 'type' => 'string', ], 'SecurityGroupReference' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'ReferencingVpcId' => [ 'shape' => 'String', 'locationName' => 'referencingVpcId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], ], ], 'SecurityGroupReferences' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupReference', 'locationName' => 'item', ], ], 'SecurityGroupReferencingSupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'SecurityGroupRule' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupRuleId' => [ 'shape' => 'SecurityGroupRuleId', 'locationName' => 'securityGroupRuleId', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'groupId', ], 'GroupOwnerId' => [ 'shape' => 'String', 'locationName' => 'groupOwnerId', ], 'IsEgress' => [ 'shape' => 'Boolean', 'locationName' => 'isEgress', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'CidrIpv4' => [ 'shape' => 'String', 'locationName' => 'cidrIpv4', ], 'CidrIpv6' => [ 'shape' => 'String', 'locationName' => 'cidrIpv6', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', 'locationName' => 'prefixListId', ], 'ReferencedGroupInfo' => [ 'shape' => 'ReferencedSecurityGroup', 'locationName' => 'referencedGroupInfo', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SecurityGroupRuleArn' => [ 'shape' => 'String', 'locationName' => 'securityGroupRuleArn', ], ], ], 'SecurityGroupRuleDescription' => [ 'type' => 'structure', 'members' => [ 'SecurityGroupRuleId' => [ 'shape' => 'String', ], 'Description' => [ 'shape' => 'String', ], ], ], 'SecurityGroupRuleDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupRuleDescription', 'locationName' => 'item', ], ], 'SecurityGroupRuleId' => [ 'type' => 'string', ], 'SecurityGroupRuleIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'SecurityGroupRuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupRule', 'locationName' => 'item', ], ], 'SecurityGroupRuleRequest' => [ 'type' => 'structure', 'members' => [ 'IpProtocol' => [ 'shape' => 'String', ], 'FromPort' => [ 'shape' => 'Integer', ], 'ToPort' => [ 'shape' => 'Integer', ], 'CidrIpv4' => [ 'shape' => 'String', ], 'CidrIpv6' => [ 'shape' => 'String', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', ], 'ReferencedGroupId' => [ 'shape' => 'SecurityGroupId', ], 'Description' => [ 'shape' => 'String', ], ], ], 'SecurityGroupRuleUpdate' => [ 'type' => 'structure', 'required' => [ 'SecurityGroupRuleId', ], 'members' => [ 'SecurityGroupRuleId' => [ 'shape' => 'SecurityGroupRuleId', ], 'SecurityGroupRule' => [ 'shape' => 'SecurityGroupRuleRequest', ], ], ], 'SecurityGroupRuleUpdateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupRuleUpdate', 'locationName' => 'item', ], ], 'SecurityGroupStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupName', 'locationName' => 'SecurityGroup', ], ], 'SecurityGroupVpcAssociation' => [ 'type' => 'structure', 'members' => [ 'GroupId' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'groupId', ], 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'VpcOwnerId' => [ 'shape' => 'String', 'locationName' => 'vpcOwnerId', ], 'State' => [ 'shape' => 'SecurityGroupVpcAssociationState', 'locationName' => 'state', ], 'StateReason' => [ 'shape' => 'String', 'locationName' => 'stateReason', ], 'GroupOwnerId' => [ 'shape' => 'String', 'locationName' => 'groupOwnerId', ], ], ], 'SecurityGroupVpcAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupVpcAssociation', 'locationName' => 'item', ], ], 'SecurityGroupVpcAssociationState' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'association-failed', 'disassociating', 'disassociated', 'disassociation-failed', ], ], 'SelfServicePortal' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'SendDiagnosticInterruptRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceId', ], 'members' => [ 'InstanceId' => [ 'shape' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'SensitiveMacCredentials' => [ 'type' => 'string', 'sensitive' => true, ], 'SensitiveUrl' => [ 'type' => 'string', 'sensitive' => true, ], 'SensitiveUserData' => [ 'type' => 'string', 'sensitive' => true, ], 'ServiceConfiguration' => [ 'type' => 'structure', 'members' => [ 'ServiceType' => [ 'shape' => 'ServiceTypeDetailSet', 'locationName' => 'serviceType', ], 'ServiceId' => [ 'shape' => 'String', 'locationName' => 'serviceId', ], 'ServiceName' => [ 'shape' => 'String', 'locationName' => 'serviceName', ], 'ServiceState' => [ 'shape' => 'ServiceState', 'locationName' => 'serviceState', ], 'AvailabilityZoneIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'availabilityZoneIdSet', ], 'AvailabilityZones' => [ 'shape' => 'ValueStringList', 'locationName' => 'availabilityZoneSet', ], 'AcceptanceRequired' => [ 'shape' => 'Boolean', 'locationName' => 'acceptanceRequired', ], 'ManagesVpcEndpoints' => [ 'shape' => 'Boolean', 'locationName' => 'managesVpcEndpoints', ], 'NetworkLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'networkLoadBalancerArnSet', ], 'GatewayLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'gatewayLoadBalancerArnSet', ], 'SupportedIpAddressTypes' => [ 'shape' => 'SupportedIpAddressTypes', 'locationName' => 'supportedIpAddressTypeSet', ], 'BaseEndpointDnsNames' => [ 'shape' => 'ValueStringList', 'locationName' => 'baseEndpointDnsNameSet', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PrivateDnsNameConfiguration' => [ 'shape' => 'PrivateDnsNameConfiguration', 'locationName' => 'privateDnsNameConfiguration', ], 'PayerResponsibility' => [ 'shape' => 'PayerResponsibility', 'locationName' => 'payerResponsibility', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SupportedRegions' => [ 'shape' => 'SupportedRegionSet', 'locationName' => 'supportedRegionSet', ], 'RemoteAccessEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'remoteAccessEnabled', ], ], ], 'ServiceConfigurationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceConfiguration', 'locationName' => 'item', ], ], 'ServiceConnectivityType' => [ 'type' => 'string', 'enum' => [ 'ipv4', 'ipv6', ], ], 'ServiceDetail' => [ 'type' => 'structure', 'members' => [ 'ServiceName' => [ 'shape' => 'String', 'locationName' => 'serviceName', ], 'ServiceId' => [ 'shape' => 'String', 'locationName' => 'serviceId', ], 'ServiceType' => [ 'shape' => 'ServiceTypeDetailSet', 'locationName' => 'serviceType', ], 'ServiceRegion' => [ 'shape' => 'String', 'locationName' => 'serviceRegion', ], 'AvailabilityZoneIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'availabilityZoneIdSet', ], 'AvailabilityZones' => [ 'shape' => 'ValueStringList', 'locationName' => 'availabilityZoneSet', ], 'Owner' => [ 'shape' => 'String', 'locationName' => 'owner', ], 'BaseEndpointDnsNames' => [ 'shape' => 'ValueStringList', 'locationName' => 'baseEndpointDnsNameSet', ], 'PrivateDnsName' => [ 'shape' => 'String', 'locationName' => 'privateDnsName', ], 'PrivateDnsNames' => [ 'shape' => 'PrivateDnsDetailsSet', 'locationName' => 'privateDnsNameSet', ], 'VpcEndpointPolicySupported' => [ 'shape' => 'Boolean', 'locationName' => 'vpcEndpointPolicySupported', ], 'AcceptanceRequired' => [ 'shape' => 'Boolean', 'locationName' => 'acceptanceRequired', ], 'ManagesVpcEndpoints' => [ 'shape' => 'Boolean', 'locationName' => 'managesVpcEndpoints', ], 'PayerResponsibility' => [ 'shape' => 'PayerResponsibility', 'locationName' => 'payerResponsibility', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'PrivateDnsNameVerificationState' => [ 'shape' => 'DnsNameState', 'locationName' => 'privateDnsNameVerificationState', ], 'SupportedIpAddressTypes' => [ 'shape' => 'SupportedIpAddressTypes', 'locationName' => 'supportedIpAddressTypeSet', ], ], ], 'ServiceDetailSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceDetail', 'locationName' => 'item', ], ], 'ServiceLinkMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'ServiceLinkVirtualInterface' => [ 'type' => 'structure', 'members' => [ 'ServiceLinkVirtualInterfaceId' => [ 'shape' => 'ServiceLinkVirtualInterfaceId', 'locationName' => 'serviceLinkVirtualInterfaceId', ], 'ServiceLinkVirtualInterfaceArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'serviceLinkVirtualInterfaceArn', ], 'OutpostId' => [ 'shape' => 'String', 'locationName' => 'outpostId', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'LocalAddress' => [ 'shape' => 'String', 'locationName' => 'localAddress', ], 'PeerAddress' => [ 'shape' => 'String', 'locationName' => 'peerAddress', ], 'PeerBgpAsn' => [ 'shape' => 'Long', 'locationName' => 'peerBgpAsn', ], 'Vlan' => [ 'shape' => 'Integer', 'locationName' => 'vlan', ], 'OutpostLagId' => [ 'shape' => 'OutpostLagId', 'locationName' => 'outpostLagId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'ConfigurationState' => [ 'shape' => 'ServiceLinkVirtualInterfaceConfigurationState', 'locationName' => 'configurationState', ], ], ], 'ServiceLinkVirtualInterfaceConfigurationState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'ServiceLinkVirtualInterfaceId' => [ 'type' => 'string', ], 'ServiceLinkVirtualInterfaceIdSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceLinkVirtualInterfaceId', 'locationName' => 'item', ], ], 'ServiceLinkVirtualInterfaceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceLinkVirtualInterface', 'locationName' => 'item', ], ], 'ServiceManaged' => [ 'type' => 'string', 'enum' => [ 'alb', 'nlb', 'rnat', 'rds', ], ], 'ServiceNetworkArn' => [ 'type' => 'string', ], 'ServiceState' => [ 'type' => 'string', 'enum' => [ 'Pending', 'Available', 'Deleting', 'Deleted', 'Failed', ], ], 'ServiceType' => [ 'type' => 'string', 'enum' => [ 'Interface', 'Gateway', 'GatewayLoadBalancer', ], ], 'ServiceTypeDetail' => [ 'type' => 'structure', 'members' => [ 'ServiceType' => [ 'shape' => 'ServiceType', 'locationName' => 'serviceType', ], ], ], 'ServiceTypeDetailSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceTypeDetail', 'locationName' => 'item', ], ], 'ShutdownBehavior' => [ 'type' => 'string', 'enum' => [ 'stop', 'terminate', ], ], 'SlotDateTimeRangeRequest' => [ 'type' => 'structure', 'required' => [ 'EarliestTime', 'LatestTime', ], 'members' => [ 'EarliestTime' => [ 'shape' => 'DateTime', ], 'LatestTime' => [ 'shape' => 'DateTime', ], ], ], 'SlotStartTimeRangeRequest' => [ 'type' => 'structure', 'members' => [ 'EarliestTime' => [ 'shape' => 'DateTime', ], 'LatestTime' => [ 'shape' => 'DateTime', ], ], ], 'Snapshot' => [ 'type' => 'structure', 'members' => [ 'OwnerAlias' => [ 'shape' => 'String', 'locationName' => 'ownerAlias', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'StorageTier' => [ 'shape' => 'StorageTier', 'locationName' => 'storageTier', ], 'RestoreExpiryTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'restoreExpiryTime', ], 'SseType' => [ 'shape' => 'SSEType', 'locationName' => 'sseType', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'TransferType' => [ 'shape' => 'TransferType', 'locationName' => 'transferType', ], 'CompletionDurationMinutes' => [ 'shape' => 'SnapshotCompletionDurationMinutesResponse', 'locationName' => 'completionDurationMinutes', ], 'CompletionTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'completionTime', ], 'FullSnapshotSizeInBytes' => [ 'shape' => 'Long', 'locationName' => 'fullSnapshotSizeInBytes', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'State' => [ 'shape' => 'SnapshotState', 'locationName' => 'status', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'VolumeSize' => [ 'shape' => 'Integer', 'locationName' => 'volumeSize', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], 'DataEncryptionKeyId' => [ 'shape' => 'String', 'locationName' => 'dataEncryptionKeyId', ], ], ], 'SnapshotAttributeName' => [ 'type' => 'string', 'enum' => [ 'productCodes', 'createVolumePermission', ], ], 'SnapshotBlockPublicAccessState' => [ 'type' => 'string', 'enum' => [ 'block-all-sharing', 'block-new-sharing', 'unblocked', ], ], 'SnapshotCompletionDurationMinutesRequest' => [ 'type' => 'integer', 'max' => 2880, 'min' => 1, ], 'SnapshotCompletionDurationMinutesResponse' => [ 'type' => 'integer', ], 'SnapshotDetail' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DeviceName' => [ 'shape' => 'String', 'locationName' => 'deviceName', ], 'DiskImageSize' => [ 'shape' => 'Double', 'locationName' => 'diskImageSize', ], 'Format' => [ 'shape' => 'String', 'locationName' => 'format', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Url' => [ 'shape' => 'SensitiveUrl', 'locationName' => 'url', ], 'UserBucket' => [ 'shape' => 'UserBucketDetails', 'locationName' => 'userBucket', ], ], ], 'SnapshotDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SnapshotDetail', 'locationName' => 'item', ], ], 'SnapshotDiskContainer' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', ], 'Format' => [ 'shape' => 'String', ], 'Url' => [ 'shape' => 'SensitiveUrl', ], 'UserBucket' => [ 'shape' => 'UserBucket', ], ], ], 'SnapshotId' => [ 'type' => 'string', ], 'SnapshotIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SnapshotId', 'locationName' => 'SnapshotId', ], ], 'SnapshotInfo' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'State' => [ 'shape' => 'SnapshotState', 'locationName' => 'state', ], 'VolumeSize' => [ 'shape' => 'Integer', 'locationName' => 'volumeSize', ], 'StartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'startTime', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'SseType' => [ 'shape' => 'SSEType', 'locationName' => 'sseType', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], ], ], 'SnapshotList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Snapshot', 'locationName' => 'item', ], ], 'SnapshotLocationEnum' => [ 'type' => 'string', 'enum' => [ 'regional', 'local', ], ], 'SnapshotRecycleBinInfo' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'RecycleBinEnterTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'recycleBinEnterTime', ], 'RecycleBinExitTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'recycleBinExitTime', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], ], ], 'SnapshotRecycleBinInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SnapshotRecycleBinInfo', 'locationName' => 'item', ], ], 'SnapshotReturnCodes' => [ 'type' => 'string', 'enum' => [ 'success', 'skipped', 'missing-permissions', 'internal-error', 'client-error', ], ], 'SnapshotSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SnapshotInfo', 'locationName' => 'item', ], ], 'SnapshotState' => [ 'type' => 'string', 'enum' => [ 'pending', 'completed', 'error', 'recoverable', 'recovering', ], ], 'SnapshotTaskDetail' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'DiskImageSize' => [ 'shape' => 'Double', 'locationName' => 'diskImageSize', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'Format' => [ 'shape' => 'String', 'locationName' => 'format', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], 'Progress' => [ 'shape' => 'String', 'locationName' => 'progress', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'Url' => [ 'shape' => 'SensitiveUrl', 'locationName' => 'url', ], 'UserBucket' => [ 'shape' => 'UserBucketDetails', 'locationName' => 'userBucket', ], ], ], 'SnapshotTierStatus' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', 'locationName' => 'snapshotId', ], 'VolumeId' => [ 'shape' => 'VolumeId', 'locationName' => 'volumeId', ], 'Status' => [ 'shape' => 'SnapshotState', 'locationName' => 'status', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'StorageTier' => [ 'shape' => 'StorageTier', 'locationName' => 'storageTier', ], 'LastTieringStartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastTieringStartTime', ], 'LastTieringProgress' => [ 'shape' => 'Integer', 'locationName' => 'lastTieringProgress', ], 'LastTieringOperationStatus' => [ 'shape' => 'TieringOperationStatus', 'locationName' => 'lastTieringOperationStatus', ], 'LastTieringOperationStatusDetail' => [ 'shape' => 'String', 'locationName' => 'lastTieringOperationStatusDetail', ], 'ArchivalCompleteTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'archivalCompleteTime', ], 'RestoreExpiryTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'restoreExpiryTime', ], ], ], 'SpotAllocationStrategy' => [ 'type' => 'string', 'enum' => [ 'lowest-price', 'diversified', 'capacity-optimized', 'capacity-optimized-prioritized', 'price-capacity-optimized', ], ], 'SpotCapacityRebalance' => [ 'type' => 'structure', 'members' => [ 'ReplacementStrategy' => [ 'shape' => 'ReplacementStrategy', 'locationName' => 'replacementStrategy', ], 'TerminationDelay' => [ 'shape' => 'Integer', 'locationName' => 'terminationDelay', ], ], ], 'SpotDatafeedSubscription' => [ 'type' => 'structure', 'members' => [ 'Bucket' => [ 'shape' => 'String', 'locationName' => 'bucket', ], 'Fault' => [ 'shape' => 'SpotInstanceStateFault', 'locationName' => 'fault', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Prefix' => [ 'shape' => 'String', 'locationName' => 'prefix', ], 'State' => [ 'shape' => 'DatafeedSubscriptionState', 'locationName' => 'state', ], ], ], 'SpotFleetLaunchSpecification' => [ 'type' => 'structure', 'members' => [ 'AddressingType' => [ 'shape' => 'String', 'locationName' => 'addressingType', ], 'BlockDeviceMappings' => [ 'shape' => 'BlockDeviceMappingList', 'locationName' => 'blockDeviceMapping', ], 'EbsOptimized' => [ 'shape' => 'Boolean', 'locationName' => 'ebsOptimized', ], 'IamInstanceProfile' => [ 'shape' => 'IamInstanceProfileSpecification', 'locationName' => 'iamInstanceProfile', ], 'ImageId' => [ 'shape' => 'ImageId', 'locationName' => 'imageId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'KernelId' => [ 'shape' => 'String', 'locationName' => 'kernelId', ], 'KeyName' => [ 'shape' => 'KeyPairName', 'locationName' => 'keyName', ], 'Monitoring' => [ 'shape' => 'SpotFleetMonitoring', 'locationName' => 'monitoring', ], 'NetworkInterfaces' => [ 'shape' => 'InstanceNetworkInterfaceSpecificationList', 'locationName' => 'networkInterfaceSet', ], 'Placement' => [ 'shape' => 'SpotPlacement', 'locationName' => 'placement', ], 'RamdiskId' => [ 'shape' => 'String', 'locationName' => 'ramdiskId', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'UserData' => [ 'shape' => 'SensitiveUserData', 'locationName' => 'userData', ], 'WeightedCapacity' => [ 'shape' => 'Double', 'locationName' => 'weightedCapacity', ], 'TagSpecifications' => [ 'shape' => 'SpotFleetTagSpecificationList', 'locationName' => 'tagSpecificationSet', ], 'InstanceRequirements' => [ 'shape' => 'InstanceRequirements', 'locationName' => 'instanceRequirements', ], 'SecurityGroups' => [ 'shape' => 'GroupIdentifierList', 'locationName' => 'groupSet', ], ], ], 'SpotFleetMonitoring' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], ], ], 'SpotFleetRequestConfig' => [ 'type' => 'structure', 'members' => [ 'ActivityStatus' => [ 'shape' => 'ActivityStatus', 'locationName' => 'activityStatus', ], 'CreateTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'createTime', ], 'SpotFleetRequestConfig' => [ 'shape' => 'SpotFleetRequestConfigData', 'locationName' => 'spotFleetRequestConfig', ], 'SpotFleetRequestId' => [ 'shape' => 'String', 'locationName' => 'spotFleetRequestId', ], 'SpotFleetRequestState' => [ 'shape' => 'BatchState', 'locationName' => 'spotFleetRequestState', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'SpotFleetRequestConfigData' => [ 'type' => 'structure', 'required' => [ 'IamFleetRole', 'TargetCapacity', ], 'members' => [ 'AllocationStrategy' => [ 'shape' => 'AllocationStrategy', 'locationName' => 'allocationStrategy', ], 'OnDemandAllocationStrategy' => [ 'shape' => 'OnDemandAllocationStrategy', 'locationName' => 'onDemandAllocationStrategy', ], 'SpotMaintenanceStrategies' => [ 'shape' => 'SpotMaintenanceStrategies', 'locationName' => 'spotMaintenanceStrategies', ], 'ClientToken' => [ 'shape' => 'String', 'locationName' => 'clientToken', ], 'ExcessCapacityTerminationPolicy' => [ 'shape' => 'ExcessCapacityTerminationPolicy', 'locationName' => 'excessCapacityTerminationPolicy', ], 'FulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'fulfilledCapacity', ], 'OnDemandFulfilledCapacity' => [ 'shape' => 'Double', 'locationName' => 'onDemandFulfilledCapacity', ], 'IamFleetRole' => [ 'shape' => 'String', 'locationName' => 'iamFleetRole', ], 'LaunchSpecifications' => [ 'shape' => 'LaunchSpecsList', 'locationName' => 'launchSpecifications', ], 'LaunchTemplateConfigs' => [ 'shape' => 'LaunchTemplateConfigList', 'locationName' => 'launchTemplateConfigs', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'TargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'targetCapacity', ], 'OnDemandTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'onDemandTargetCapacity', ], 'OnDemandMaxTotalPrice' => [ 'shape' => 'String', 'locationName' => 'onDemandMaxTotalPrice', ], 'SpotMaxTotalPrice' => [ 'shape' => 'String', 'locationName' => 'spotMaxTotalPrice', ], 'TerminateInstancesWithExpiration' => [ 'shape' => 'Boolean', 'locationName' => 'terminateInstancesWithExpiration', ], 'Type' => [ 'shape' => 'FleetType', 'locationName' => 'type', ], 'ValidFrom' => [ 'shape' => 'DateTime', 'locationName' => 'validFrom', ], 'ValidUntil' => [ 'shape' => 'DateTime', 'locationName' => 'validUntil', ], 'ReplaceUnhealthyInstances' => [ 'shape' => 'Boolean', 'locationName' => 'replaceUnhealthyInstances', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', 'locationName' => 'instanceInterruptionBehavior', ], 'LoadBalancersConfig' => [ 'shape' => 'LoadBalancersConfig', 'locationName' => 'loadBalancersConfig', ], 'InstancePoolsToUseCount' => [ 'shape' => 'Integer', 'locationName' => 'instancePoolsToUseCount', ], 'Context' => [ 'shape' => 'String', 'locationName' => 'context', ], 'TargetCapacityUnitType' => [ 'shape' => 'TargetCapacityUnitType', 'locationName' => 'targetCapacityUnitType', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'SpotFleetRequestConfigSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotFleetRequestConfig', 'locationName' => 'item', ], ], 'SpotFleetRequestId' => [ 'type' => 'string', ], 'SpotFleetRequestIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotFleetRequestId', 'locationName' => 'item', ], ], 'SpotFleetTagSpecification' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', 'locationName' => 'resourceType', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tag', ], ], ], 'SpotFleetTagSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotFleetTagSpecification', 'locationName' => 'item', ], ], 'SpotInstanceInterruptionBehavior' => [ 'type' => 'string', 'enum' => [ 'hibernate', 'stop', 'terminate', ], ], 'SpotInstanceRequest' => [ 'type' => 'structure', 'members' => [ 'ActualBlockHourlyPrice' => [ 'shape' => 'String', 'locationName' => 'actualBlockHourlyPrice', ], 'AvailabilityZoneGroup' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneGroup', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', 'locationName' => 'blockDurationMinutes', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'Fault' => [ 'shape' => 'SpotInstanceStateFault', 'locationName' => 'fault', ], 'InstanceId' => [ 'shape' => 'InstanceId', 'locationName' => 'instanceId', ], 'LaunchGroup' => [ 'shape' => 'String', 'locationName' => 'launchGroup', ], 'LaunchSpecification' => [ 'shape' => 'LaunchSpecification', 'locationName' => 'launchSpecification', ], 'LaunchedAvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'launchedAvailabilityZone', ], 'LaunchedAvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'launchedAvailabilityZoneId', ], 'ProductDescription' => [ 'shape' => 'RIProductDescription', 'locationName' => 'productDescription', ], 'SpotInstanceRequestId' => [ 'shape' => 'String', 'locationName' => 'spotInstanceRequestId', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'State' => [ 'shape' => 'SpotInstanceState', 'locationName' => 'state', ], 'Status' => [ 'shape' => 'SpotInstanceStatus', 'locationName' => 'status', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'Type' => [ 'shape' => 'SpotInstanceType', 'locationName' => 'type', ], 'ValidFrom' => [ 'shape' => 'DateTime', 'locationName' => 'validFrom', ], 'ValidUntil' => [ 'shape' => 'DateTime', 'locationName' => 'validUntil', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', 'locationName' => 'instanceInterruptionBehavior', ], ], ], 'SpotInstanceRequestId' => [ 'type' => 'string', ], 'SpotInstanceRequestIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotInstanceRequestId', 'locationName' => 'SpotInstanceRequestId', ], ], 'SpotInstanceRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotInstanceRequest', 'locationName' => 'item', ], ], 'SpotInstanceState' => [ 'type' => 'string', 'enum' => [ 'open', 'active', 'closed', 'cancelled', 'failed', 'disabled', ], ], 'SpotInstanceStateFault' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'SpotInstanceStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], 'UpdateTime' => [ 'shape' => 'DateTime', 'locationName' => 'updateTime', ], ], ], 'SpotInstanceType' => [ 'type' => 'string', 'enum' => [ 'one-time', 'persistent', ], ], 'SpotMaintenanceStrategies' => [ 'type' => 'structure', 'members' => [ 'CapacityRebalance' => [ 'shape' => 'SpotCapacityRebalance', 'locationName' => 'capacityRebalance', ], ], ], 'SpotMarketOptions' => [ 'type' => 'structure', 'members' => [ 'MaxPrice' => [ 'shape' => 'String', ], 'SpotInstanceType' => [ 'shape' => 'SpotInstanceType', ], 'BlockDurationMinutes' => [ 'shape' => 'Integer', ], 'ValidUntil' => [ 'shape' => 'DateTime', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'InstanceInterruptionBehavior', ], ], ], 'SpotOptions' => [ 'type' => 'structure', 'members' => [ 'AllocationStrategy' => [ 'shape' => 'SpotAllocationStrategy', 'locationName' => 'allocationStrategy', ], 'MaintenanceStrategies' => [ 'shape' => 'FleetSpotMaintenanceStrategies', 'locationName' => 'maintenanceStrategies', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'SpotInstanceInterruptionBehavior', 'locationName' => 'instanceInterruptionBehavior', ], 'InstancePoolsToUseCount' => [ 'shape' => 'Integer', 'locationName' => 'instancePoolsToUseCount', ], 'SingleInstanceType' => [ 'shape' => 'Boolean', 'locationName' => 'singleInstanceType', ], 'SingleAvailabilityZone' => [ 'shape' => 'Boolean', 'locationName' => 'singleAvailabilityZone', ], 'MinTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'minTargetCapacity', ], 'MaxTotalPrice' => [ 'shape' => 'String', 'locationName' => 'maxTotalPrice', ], ], ], 'SpotOptionsRequest' => [ 'type' => 'structure', 'members' => [ 'AllocationStrategy' => [ 'shape' => 'SpotAllocationStrategy', ], 'MaintenanceStrategies' => [ 'shape' => 'FleetSpotMaintenanceStrategiesRequest', ], 'InstanceInterruptionBehavior' => [ 'shape' => 'SpotInstanceInterruptionBehavior', ], 'InstancePoolsToUseCount' => [ 'shape' => 'Integer', ], 'SingleInstanceType' => [ 'shape' => 'Boolean', ], 'SingleAvailabilityZone' => [ 'shape' => 'Boolean', ], 'MinTargetCapacity' => [ 'shape' => 'Integer', ], 'MaxTotalPrice' => [ 'shape' => 'String', ], ], ], 'SpotPlacement' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'GroupName' => [ 'shape' => 'PlacementGroupName', 'locationName' => 'groupName', ], 'Tenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'tenancy', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], ], ], 'SpotPlacementScore' => [ 'type' => 'structure', 'members' => [ 'Region' => [ 'shape' => 'String', 'locationName' => 'region', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'Score' => [ 'shape' => 'Integer', 'locationName' => 'score', ], ], ], 'SpotPlacementScores' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotPlacementScore', 'locationName' => 'item', ], ], 'SpotPlacementScoresMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 10, ], 'SpotPlacementScoresTargetCapacity' => [ 'type' => 'integer', 'max' => 2000000000, 'min' => 1, ], 'SpotPrice' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'InstanceType' => [ 'shape' => 'InstanceType', 'locationName' => 'instanceType', ], 'ProductDescription' => [ 'shape' => 'RIProductDescription', 'locationName' => 'productDescription', ], 'SpotPrice' => [ 'shape' => 'String', 'locationName' => 'spotPrice', ], 'Timestamp' => [ 'shape' => 'DateTime', 'locationName' => 'timestamp', ], ], ], 'SpotPriceHistoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SpotPrice', 'locationName' => 'item', ], ], 'SpreadLevel' => [ 'type' => 'string', 'enum' => [ 'host', 'rack', ], ], 'SqlServerLicenseUsage' => [ 'type' => 'string', 'enum' => [ 'full', 'waived', ], ], 'StaleIpPermission' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'IpProtocol' => [ 'shape' => 'String', 'locationName' => 'ipProtocol', ], 'IpRanges' => [ 'shape' => 'IpRanges', 'locationName' => 'ipRanges', ], 'PrefixListIds' => [ 'shape' => 'PrefixListIdSet', 'locationName' => 'prefixListIds', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], 'UserIdGroupPairs' => [ 'shape' => 'UserIdGroupPairSet', 'locationName' => 'groups', ], ], ], 'StaleIpPermissionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'StaleIpPermission', 'locationName' => 'item', ], ], 'StaleSecurityGroup' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'StaleIpPermissions' => [ 'shape' => 'StaleIpPermissionSet', 'locationName' => 'staleIpPermissions', ], 'StaleIpPermissionsEgress' => [ 'shape' => 'StaleIpPermissionSet', 'locationName' => 'staleIpPermissionsEgress', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'StaleSecurityGroupSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'StaleSecurityGroup', 'locationName' => 'item', ], ], 'StartDeclarativePoliciesReportRequest' => [ 'type' => 'structure', 'required' => [ 'S3Bucket', 'TargetId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'S3Bucket' => [ 'shape' => 'String', ], 'S3Prefix' => [ 'shape' => 'String', ], 'TargetId' => [ 'shape' => 'String', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], ], ], 'StartDeclarativePoliciesReportResult' => [ 'type' => 'structure', 'members' => [ 'ReportId' => [ 'shape' => 'String', 'locationName' => 'reportId', ], ], ], 'StartInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'AdditionalInfo' => [ 'shape' => 'String', 'locationName' => 'additionalInfo', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'StartInstancesResult' => [ 'type' => 'structure', 'members' => [ 'StartingInstances' => [ 'shape' => 'InstanceStateChangeList', 'locationName' => 'instancesSet', ], ], ], 'StartNetworkInsightsAccessScopeAnalysisRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInsightsAccessScopeId', 'ClientToken', ], 'members' => [ 'NetworkInsightsAccessScopeId' => [ 'shape' => 'NetworkInsightsAccessScopeId', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'StartNetworkInsightsAccessScopeAnalysisResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAccessScopeAnalysis' => [ 'shape' => 'NetworkInsightsAccessScopeAnalysis', 'locationName' => 'networkInsightsAccessScopeAnalysis', ], ], ], 'StartNetworkInsightsAnalysisRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInsightsPathId', 'ClientToken', ], 'members' => [ 'NetworkInsightsPathId' => [ 'shape' => 'NetworkInsightsPathId', ], 'AdditionalAccounts' => [ 'shape' => 'ValueStringList', 'locationName' => 'AdditionalAccount', ], 'FilterInArns' => [ 'shape' => 'ArnList', 'locationName' => 'FilterInArn', ], 'FilterOutArns' => [ 'shape' => 'ArnList', 'locationName' => 'FilterOutArn', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'TagSpecifications' => [ 'shape' => 'TagSpecificationList', 'locationName' => 'TagSpecification', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'StartNetworkInsightsAnalysisResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInsightsAnalysis' => [ 'shape' => 'NetworkInsightsAnalysis', 'locationName' => 'networkInsightsAnalysis', ], ], ], 'StartVpcEndpointServicePrivateDnsVerificationRequest' => [ 'type' => 'structure', 'required' => [ 'ServiceId', ], 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'ServiceId' => [ 'shape' => 'VpcEndpointServiceId', ], ], ], 'StartVpcEndpointServicePrivateDnsVerificationResult' => [ 'type' => 'structure', 'members' => [ 'ReturnValue' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'State' => [ 'type' => 'string', 'enum' => [ 'PendingAcceptance', 'Pending', 'Available', 'Deleting', 'Deleted', 'Rejected', 'Failed', 'Expired', 'Partial', ], ], 'StateReason' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'StaticSourcesSupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'StatisticType' => [ 'type' => 'string', 'enum' => [ 'p50', ], ], 'Status' => [ 'type' => 'string', 'enum' => [ 'MoveInProgress', 'InVpc', 'InClassic', ], ], 'StatusName' => [ 'type' => 'string', 'enum' => [ 'reachability', ], ], 'StatusType' => [ 'type' => 'string', 'enum' => [ 'passed', 'failed', 'insufficient-data', 'initializing', ], ], 'StopInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'Hibernate' => [ 'shape' => 'Boolean', ], 'SkipOsShutdown' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], 'Force' => [ 'shape' => 'Boolean', 'locationName' => 'force', ], ], ], 'StopInstancesResult' => [ 'type' => 'structure', 'members' => [ 'StoppingInstances' => [ 'shape' => 'InstanceStateChangeList', 'locationName' => 'instancesSet', ], ], ], 'Storage' => [ 'type' => 'structure', 'members' => [ 'S3' => [ 'shape' => 'S3Storage', ], ], ], 'StorageLocation' => [ 'type' => 'structure', 'members' => [ 'Bucket' => [ 'shape' => 'String', ], 'Key' => [ 'shape' => 'String', ], ], ], 'StorageTier' => [ 'type' => 'string', 'enum' => [ 'archive', 'standard', ], ], 'StoreImageTaskResult' => [ 'type' => 'structure', 'members' => [ 'AmiId' => [ 'shape' => 'String', 'locationName' => 'amiId', ], 'TaskStartTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'taskStartTime', ], 'Bucket' => [ 'shape' => 'String', 'locationName' => 'bucket', ], 'S3objectKey' => [ 'shape' => 'String', 'locationName' => 's3objectKey', ], 'ProgressPercentage' => [ 'shape' => 'Integer', 'locationName' => 'progressPercentage', ], 'StoreTaskState' => [ 'shape' => 'String', 'locationName' => 'storeTaskState', ], 'StoreTaskFailureReason' => [ 'shape' => 'String', 'locationName' => 'storeTaskFailureReason', ], ], ], 'StoreImageTaskResultSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'StoreImageTaskResult', 'locationName' => 'item', ], ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'Subnet' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'EnableLniAtDeviceIndex' => [ 'shape' => 'Integer', 'locationName' => 'enableLniAtDeviceIndex', ], 'MapCustomerOwnedIpOnLaunch' => [ 'shape' => 'Boolean', 'locationName' => 'mapCustomerOwnedIpOnLaunch', ], 'CustomerOwnedIpv4Pool' => [ 'shape' => 'CoipPoolId', 'locationName' => 'customerOwnedIpv4Pool', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'AssignIpv6AddressOnCreation' => [ 'shape' => 'Boolean', 'locationName' => 'assignIpv6AddressOnCreation', ], 'Ipv6CidrBlockAssociationSet' => [ 'shape' => 'SubnetIpv6CidrBlockAssociationSet', 'locationName' => 'ipv6CidrBlockAssociationSet', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SubnetArn' => [ 'shape' => 'String', 'locationName' => 'subnetArn', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'EnableDns64' => [ 'shape' => 'Boolean', 'locationName' => 'enableDns64', ], 'Ipv6Native' => [ 'shape' => 'Boolean', 'locationName' => 'ipv6Native', ], 'PrivateDnsNameOptionsOnLaunch' => [ 'shape' => 'PrivateDnsNameOptionsOnLaunch', 'locationName' => 'privateDnsNameOptionsOnLaunch', ], 'BlockPublicAccessStates' => [ 'shape' => 'BlockPublicAccessStates', 'locationName' => 'blockPublicAccessStates', ], 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'State' => [ 'shape' => 'SubnetState', 'locationName' => 'state', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'AvailableIpAddressCount' => [ 'shape' => 'Integer', 'locationName' => 'availableIpAddressCount', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'DefaultForAz' => [ 'shape' => 'Boolean', 'locationName' => 'defaultForAz', ], 'MapPublicIpOnLaunch' => [ 'shape' => 'Boolean', 'locationName' => 'mapPublicIpOnLaunch', ], ], ], 'SubnetAssociation' => [ 'type' => 'structure', 'members' => [ 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'State' => [ 'shape' => 'TransitGatewayMulitcastDomainAssociationState', 'locationName' => 'state', ], ], ], 'SubnetAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetAssociation', 'locationName' => 'item', ], ], 'SubnetCidrAssociationId' => [ 'type' => 'string', ], 'SubnetCidrBlockState' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'SubnetCidrBlockStateCode', 'locationName' => 'state', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], ], ], 'SubnetCidrBlockStateCode' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', 'disassociated', 'failing', 'failed', ], ], 'SubnetCidrReservation' => [ 'type' => 'structure', 'members' => [ 'SubnetCidrReservationId' => [ 'shape' => 'SubnetCidrReservationId', 'locationName' => 'subnetCidrReservationId', ], 'SubnetId' => [ 'shape' => 'SubnetId', 'locationName' => 'subnetId', ], 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'ReservationType' => [ 'shape' => 'SubnetCidrReservationType', 'locationName' => 'reservationType', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'SubnetCidrReservationId' => [ 'type' => 'string', ], 'SubnetCidrReservationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetCidrReservation', 'locationName' => 'item', ], ], 'SubnetCidrReservationType' => [ 'type' => 'string', 'enum' => [ 'prefix', 'explicit', ], ], 'SubnetConfiguration' => [ 'type' => 'structure', 'members' => [ 'SubnetId' => [ 'shape' => 'SubnetId', ], 'Ipv4' => [ 'shape' => 'String', ], 'Ipv6' => [ 'shape' => 'String', ], ], ], 'SubnetConfigurationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetConfiguration', 'locationName' => 'item', ], ], 'SubnetId' => [ 'type' => 'string', ], 'SubnetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', 'locationName' => 'AssociatedSubnetId', ], ], 'SubnetIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', 'locationName' => 'SubnetId', ], ], 'SubnetIpPrefixes' => [ 'type' => 'structure', 'members' => [ 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'IpPrefixes' => [ 'shape' => 'ValueStringList', 'locationName' => 'ipPrefixSet', ], ], ], 'SubnetIpPrefixesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetIpPrefixes', 'locationName' => 'item', ], ], 'SubnetIpv6CidrBlockAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'SubnetCidrAssociationId', 'locationName' => 'associationId', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], 'Ipv6CidrBlockState' => [ 'shape' => 'SubnetCidrBlockState', 'locationName' => 'ipv6CidrBlockState', ], 'Ipv6AddressAttribute' => [ 'shape' => 'Ipv6AddressAttribute', 'locationName' => 'ipv6AddressAttribute', ], 'IpSource' => [ 'shape' => 'IpSource', 'locationName' => 'ipSource', ], ], ], 'SubnetIpv6CidrBlockAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetIpv6CidrBlockAssociation', 'locationName' => 'item', ], ], 'SubnetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Subnet', 'locationName' => 'item', ], ], 'SubnetState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'unavailable', 'failed', 'failed-insufficient-capacity', ], ], 'Subscription' => [ 'type' => 'structure', 'members' => [ 'Source' => [ 'shape' => 'String', 'locationName' => 'source', ], 'Destination' => [ 'shape' => 'String', 'locationName' => 'destination', ], 'Metric' => [ 'shape' => 'MetricType', 'locationName' => 'metric', ], 'Statistic' => [ 'shape' => 'StatisticType', 'locationName' => 'statistic', ], 'Period' => [ 'shape' => 'PeriodType', 'locationName' => 'period', ], ], ], 'SubscriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Subscription', 'locationName' => 'item', ], ], 'SuccessfulInstanceCreditSpecificationItem' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], ], ], 'SuccessfulInstanceCreditSpecificationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SuccessfulInstanceCreditSpecificationItem', 'locationName' => 'item', ], ], 'SuccessfulQueuedPurchaseDeletion' => [ 'type' => 'structure', 'members' => [ 'ReservedInstancesId' => [ 'shape' => 'String', 'locationName' => 'reservedInstancesId', ], ], ], 'SuccessfulQueuedPurchaseDeletionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SuccessfulQueuedPurchaseDeletion', 'locationName' => 'item', ], ], 'SummaryStatus' => [ 'type' => 'string', 'enum' => [ 'ok', 'impaired', 'insufficient-data', 'not-applicable', 'initializing', ], ], 'SupportedAdditionalProcessorFeature' => [ 'type' => 'string', 'enum' => [ 'amd-sev-snp', 'nested-virtualization', ], ], 'SupportedAdditionalProcessorFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SupportedAdditionalProcessorFeature', 'locationName' => 'item', ], ], 'SupportedInRegion' => [ 'type' => 'boolean', ], 'SupportedIpAddressTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceConnectivityType', 'locationName' => 'item', ], 'max' => 2, 'min' => 0, ], 'SupportedRegionDetail' => [ 'type' => 'structure', 'members' => [ 'Region' => [ 'shape' => 'String', 'locationName' => 'region', ], 'ServiceState' => [ 'shape' => 'String', 'locationName' => 'serviceState', ], ], ], 'SupportedRegionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SupportedRegionDetail', 'locationName' => 'item', ], ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'TagDescription' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'String', 'locationName' => 'key', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'ResourceType', 'locationName' => 'resourceType', ], 'Value' => [ 'shape' => 'String', 'locationName' => 'value', ], ], ], 'TagDescriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagDescription', 'locationName' => 'item', ], ], 'TagFieldSpecificationListRequest' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagFieldSpecificationRequest', 'locationName' => 'item', ], 'max' => 3, 'min' => 1, ], 'TagFieldSpecificationListResponse' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagFieldSpecificationResponse', 'locationName' => 'item', ], 'max' => 3, 'min' => 1, ], 'TagFieldSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'TaggableResourceType', ], 'TagKeys' => [ 'shape' => 'TagKeyList', 'locationName' => 'TagKey', ], ], ], 'TagFieldSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'TaggableResourceType', 'locationName' => 'resourceType', ], 'TagKeys' => [ 'shape' => 'TagKeyList', 'locationName' => 'tagKeySet', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', 'locationName' => 'item', ], 'max' => 2, 'min' => 1, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', 'locationName' => 'item', ], ], 'TagSpecification' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'ResourceType', 'locationName' => 'resourceType', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'Tag', ], ], ], 'TagSpecificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagSpecification', 'locationName' => 'item', ], ], 'TaggableResourceId' => [ 'type' => 'string', ], 'TaggableResourceType' => [ 'type' => 'string', 'enum' => [ 'network-interface', 'instance', 'auto-scaling-group', ], ], 'TargetCapacitySpecification' => [ 'type' => 'structure', 'members' => [ 'TotalTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'totalTargetCapacity', ], 'OnDemandTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'onDemandTargetCapacity', ], 'SpotTargetCapacity' => [ 'shape' => 'Integer', 'locationName' => 'spotTargetCapacity', ], 'DefaultTargetCapacityType' => [ 'shape' => 'DefaultTargetCapacityType', 'locationName' => 'defaultTargetCapacityType', ], 'TargetCapacityUnitType' => [ 'shape' => 'TargetCapacityUnitType', 'locationName' => 'targetCapacityUnitType', ], ], ], 'TargetCapacitySpecificationRequest' => [ 'type' => 'structure', 'required' => [ 'TotalTargetCapacity', ], 'members' => [ 'TotalTargetCapacity' => [ 'shape' => 'Integer', ], 'OnDemandTargetCapacity' => [ 'shape' => 'Integer', ], 'SpotTargetCapacity' => [ 'shape' => 'Integer', ], 'DefaultTargetCapacityType' => [ 'shape' => 'DefaultTargetCapacityType', ], 'TargetCapacityUnitType' => [ 'shape' => 'TargetCapacityUnitType', ], ], ], 'TargetCapacityUnitType' => [ 'type' => 'string', 'enum' => [ 'vcpu', 'memory-mib', 'units', ], ], 'TargetConfiguration' => [ 'type' => 'structure', 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'OfferingId' => [ 'shape' => 'String', 'locationName' => 'offeringId', ], ], ], 'TargetConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'OfferingId', ], 'members' => [ 'InstanceCount' => [ 'shape' => 'Integer', ], 'OfferingId' => [ 'shape' => 'ReservedInstancesOfferingId', ], ], ], 'TargetConfigurationRequestSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetConfigurationRequest', 'locationName' => 'TargetConfigurationRequest', ], ], 'TargetGroup' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'String', 'locationName' => 'arn', ], ], ], 'TargetGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetGroup', 'locationName' => 'item', ], 'max' => 5, 'min' => 1, ], 'TargetGroupsConfig' => [ 'type' => 'structure', 'members' => [ 'TargetGroups' => [ 'shape' => 'TargetGroups', 'locationName' => 'targetGroups', ], ], ], 'TargetNetwork' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'TargetNetworkId' => [ 'shape' => 'String', 'locationName' => 'targetNetworkId', ], 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Status' => [ 'shape' => 'AssociationStatus', 'locationName' => 'status', ], 'SecurityGroups' => [ 'shape' => 'ValueStringList', 'locationName' => 'securityGroups', ], 'AvailabilityZones' => [ 'shape' => 'ClientVpnAvailabilityZoneSet', 'locationName' => 'availabilityZoneSet', ], 'AvailabilityZoneIds' => [ 'shape' => 'ClientVpnAvailabilityZoneIdSet', 'locationName' => 'availabilityZoneIdSet', ], ], ], 'TargetNetworkSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetNetwork', 'locationName' => 'item', ], ], 'TargetReservationValue' => [ 'type' => 'structure', 'members' => [ 'ReservationValue' => [ 'shape' => 'ReservationValue', 'locationName' => 'reservationValue', ], 'TargetConfiguration' => [ 'shape' => 'TargetConfiguration', 'locationName' => 'targetConfiguration', ], ], ], 'TargetReservationValueSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetReservationValue', 'locationName' => 'item', ], ], 'TargetStorageTier' => [ 'type' => 'string', 'enum' => [ 'archive', ], ], 'TelemetryStatus' => [ 'type' => 'string', 'enum' => [ 'UP', 'DOWN', ], ], 'Tenancy' => [ 'type' => 'string', 'enum' => [ 'default', 'dedicated', 'host', ], ], 'TerminateClientVpnConnectionsRequest' => [ 'type' => 'structure', 'required' => [ 'ClientVpnEndpointId', ], 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', ], 'ConnectionId' => [ 'shape' => 'String', ], 'Username' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'TerminateClientVpnConnectionsResult' => [ 'type' => 'structure', 'members' => [ 'ClientVpnEndpointId' => [ 'shape' => 'String', 'locationName' => 'clientVpnEndpointId', ], 'Username' => [ 'shape' => 'String', 'locationName' => 'username', ], 'ConnectionStatuses' => [ 'shape' => 'TerminateConnectionStatusSet', 'locationName' => 'connectionStatuses', ], ], ], 'TerminateConnectionStatus' => [ 'type' => 'structure', 'members' => [ 'ConnectionId' => [ 'shape' => 'String', 'locationName' => 'connectionId', ], 'PreviousStatus' => [ 'shape' => 'ClientVpnConnectionStatus', 'locationName' => 'previousStatus', ], 'CurrentStatus' => [ 'shape' => 'ClientVpnConnectionStatus', 'locationName' => 'currentStatus', ], ], ], 'TerminateConnectionStatusSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TerminateConnectionStatus', 'locationName' => 'item', ], ], 'TerminateInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'Force' => [ 'shape' => 'Boolean', ], 'SkipOsShutdown' => [ 'shape' => 'Boolean', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'TerminateInstancesResult' => [ 'type' => 'structure', 'members' => [ 'TerminatingInstances' => [ 'shape' => 'InstanceStateChangeList', 'locationName' => 'instancesSet', ], ], ], 'ThreadsPerCore' => [ 'type' => 'integer', ], 'ThreadsPerCoreList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ThreadsPerCore', 'locationName' => 'item', ], ], 'ThroughResourcesStatement' => [ 'type' => 'structure', 'members' => [ 'ResourceStatement' => [ 'shape' => 'ResourceStatement', 'locationName' => 'resourceStatement', ], ], ], 'ThroughResourcesStatementList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ThroughResourcesStatement', 'locationName' => 'item', ], ], 'ThroughResourcesStatementRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceStatement' => [ 'shape' => 'ResourceStatementRequest', ], ], ], 'ThroughResourcesStatementRequestList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ThroughResourcesStatementRequest', 'locationName' => 'item', ], ], 'TieringOperationStatus' => [ 'type' => 'string', 'enum' => [ 'archival-in-progress', 'archival-completed', 'archival-failed', 'temporary-restore-in-progress', 'temporary-restore-completed', 'temporary-restore-failed', 'permanent-restore-in-progress', 'permanent-restore-completed', 'permanent-restore-failed', ], ], 'TokenState' => [ 'type' => 'string', 'enum' => [ 'valid', 'expired', ], ], 'TotalLocalStorageGB' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Double', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Double', 'locationName' => 'max', ], ], ], 'TotalLocalStorageGBRequest' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Double', ], 'Max' => [ 'shape' => 'Double', ], ], ], 'TotalMediaMemory' => [ 'type' => 'integer', ], 'TotalNeuronMemory' => [ 'type' => 'integer', ], 'TpmSupportValues' => [ 'type' => 'string', 'enum' => [ 'v2.0', ], ], 'TrafficDirection' => [ 'type' => 'string', 'enum' => [ 'ingress', 'egress', ], ], 'TrafficIpAddressType' => [ 'type' => 'string', 'enum' => [ 'ipv4', 'ipv6', 'dual-stack', ], ], 'TrafficMirrorFilter' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorFilterId', ], 'IngressFilterRules' => [ 'shape' => 'TrafficMirrorFilterRuleList', 'locationName' => 'ingressFilterRuleSet', ], 'EgressFilterRules' => [ 'shape' => 'TrafficMirrorFilterRuleList', 'locationName' => 'egressFilterRuleSet', ], 'NetworkServices' => [ 'shape' => 'TrafficMirrorNetworkServiceList', 'locationName' => 'networkServiceSet', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TrafficMirrorFilterId' => [ 'type' => 'string', ], 'TrafficMirrorFilterIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorFilterId', 'locationName' => 'item', ], ], 'TrafficMirrorFilterRule' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorFilterRuleId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorFilterRuleId', ], 'TrafficMirrorFilterId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorFilterId', ], 'TrafficDirection' => [ 'shape' => 'TrafficDirection', 'locationName' => 'trafficDirection', ], 'RuleNumber' => [ 'shape' => 'Integer', 'locationName' => 'ruleNumber', ], 'RuleAction' => [ 'shape' => 'TrafficMirrorRuleAction', 'locationName' => 'ruleAction', ], 'Protocol' => [ 'shape' => 'Integer', 'locationName' => 'protocol', ], 'DestinationPortRange' => [ 'shape' => 'TrafficMirrorPortRange', 'locationName' => 'destinationPortRange', ], 'SourcePortRange' => [ 'shape' => 'TrafficMirrorPortRange', 'locationName' => 'sourcePortRange', ], 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'SourceCidrBlock' => [ 'shape' => 'String', 'locationName' => 'sourceCidrBlock', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TrafficMirrorFilterRuleField' => [ 'type' => 'string', 'enum' => [ 'destination-port-range', 'source-port-range', 'protocol', 'description', ], ], 'TrafficMirrorFilterRuleFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorFilterRuleField', ], ], 'TrafficMirrorFilterRuleIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorFilterRuleIdWithResolver', 'locationName' => 'item', ], ], 'TrafficMirrorFilterRuleIdWithResolver' => [ 'type' => 'string', ], 'TrafficMirrorFilterRuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorFilterRule', 'locationName' => 'item', ], ], 'TrafficMirrorFilterRuleSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorFilterRule', 'locationName' => 'item', ], ], 'TrafficMirrorFilterSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorFilter', 'locationName' => 'item', ], ], 'TrafficMirrorNetworkService' => [ 'type' => 'string', 'enum' => [ 'amazon-dns', ], ], 'TrafficMirrorNetworkServiceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorNetworkService', 'locationName' => 'item', ], ], 'TrafficMirrorPortRange' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'Integer', 'locationName' => 'fromPort', ], 'ToPort' => [ 'shape' => 'Integer', 'locationName' => 'toPort', ], ], ], 'TrafficMirrorPortRangeRequest' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'Integer', ], 'ToPort' => [ 'shape' => 'Integer', ], ], ], 'TrafficMirrorRuleAction' => [ 'type' => 'string', 'enum' => [ 'accept', 'reject', ], ], 'TrafficMirrorSession' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorSessionId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorSessionId', ], 'TrafficMirrorTargetId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorTargetId', ], 'TrafficMirrorFilterId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorFilterId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PacketLength' => [ 'shape' => 'Integer', 'locationName' => 'packetLength', ], 'SessionNumber' => [ 'shape' => 'Integer', 'locationName' => 'sessionNumber', ], 'VirtualNetworkId' => [ 'shape' => 'Integer', 'locationName' => 'virtualNetworkId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TrafficMirrorSessionField' => [ 'type' => 'string', 'enum' => [ 'packet-length', 'description', 'virtual-network-id', ], ], 'TrafficMirrorSessionFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorSessionField', ], ], 'TrafficMirrorSessionId' => [ 'type' => 'string', ], 'TrafficMirrorSessionIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorSessionId', 'locationName' => 'item', ], ], 'TrafficMirrorSessionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorSession', 'locationName' => 'item', ], ], 'TrafficMirrorTarget' => [ 'type' => 'structure', 'members' => [ 'TrafficMirrorTargetId' => [ 'shape' => 'String', 'locationName' => 'trafficMirrorTargetId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'NetworkLoadBalancerArn' => [ 'shape' => 'String', 'locationName' => 'networkLoadBalancerArn', ], 'Type' => [ 'shape' => 'TrafficMirrorTargetType', 'locationName' => 'type', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'GatewayLoadBalancerEndpointId' => [ 'shape' => 'String', 'locationName' => 'gatewayLoadBalancerEndpointId', ], ], ], 'TrafficMirrorTargetId' => [ 'type' => 'string', ], 'TrafficMirrorTargetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorTargetId', 'locationName' => 'item', ], ], 'TrafficMirrorTargetSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrafficMirrorTarget', 'locationName' => 'item', ], ], 'TrafficMirrorTargetType' => [ 'type' => 'string', 'enum' => [ 'network-interface', 'network-load-balancer', 'gateway-load-balancer-endpoint', ], ], 'TrafficMirroringMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'TrafficType' => [ 'type' => 'string', 'enum' => [ 'ACCEPT', 'REJECT', 'ALL', ], ], 'TransferType' => [ 'type' => 'string', 'enum' => [ 'time-based', 'standard', ], ], 'TransitAssociationGatewayId' => [ 'type' => 'string', ], 'TransitGateway' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'TransitGatewayArn' => [ 'shape' => 'String', 'locationName' => 'transitGatewayArn', ], 'State' => [ 'shape' => 'TransitGatewayState', 'locationName' => 'state', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Options' => [ 'shape' => 'TransitGatewayOptions', 'locationName' => 'options', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayAssociation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', 'locationName' => 'transitGatewayRouteTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'State' => [ 'shape' => 'TransitGatewayAssociationState', 'locationName' => 'state', ], ], ], 'TransitGatewayAssociationState' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', 'disassociated', ], ], 'TransitGatewayAttachment' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'TransitGatewayOwnerId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayOwnerId', ], 'ResourceOwnerId' => [ 'shape' => 'String', 'locationName' => 'resourceOwnerId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'State' => [ 'shape' => 'TransitGatewayAttachmentState', 'locationName' => 'state', ], 'Association' => [ 'shape' => 'TransitGatewayAttachmentAssociation', 'locationName' => 'association', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayAttachmentAssociation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayRouteTableId', ], 'State' => [ 'shape' => 'TransitGatewayAssociationState', 'locationName' => 'state', ], ], ], 'TransitGatewayAttachmentBgpConfiguration' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAsn' => [ 'shape' => 'Long', 'locationName' => 'transitGatewayAsn', ], 'PeerAsn' => [ 'shape' => 'Long', 'locationName' => 'peerAsn', ], 'TransitGatewayAddress' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAddress', ], 'PeerAddress' => [ 'shape' => 'String', 'locationName' => 'peerAddress', ], 'BgpStatus' => [ 'shape' => 'BgpStatus', 'locationName' => 'bgpStatus', ], ], ], 'TransitGatewayAttachmentBgpConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayAttachmentBgpConfiguration', 'locationName' => 'item', ], ], 'TransitGatewayAttachmentId' => [ 'type' => 'string', ], 'TransitGatewayAttachmentIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayAttachmentId', ], ], 'TransitGatewayAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayAttachment', 'locationName' => 'item', ], ], 'TransitGatewayAttachmentPropagation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayRouteTableId', ], 'State' => [ 'shape' => 'TransitGatewayPropagationState', 'locationName' => 'state', ], ], ], 'TransitGatewayAttachmentPropagationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayAttachmentPropagation', 'locationName' => 'item', ], ], 'TransitGatewayAttachmentResourceType' => [ 'type' => 'string', 'enum' => [ 'vpc', 'vpn', 'vpn-concentrator', 'direct-connect-gateway', 'connect', 'peering', 'tgw-peering', 'network-function', 'client-vpn', ], ], 'TransitGatewayAttachmentState' => [ 'type' => 'string', 'enum' => [ 'initiating', 'initiatingRequest', 'pendingAcceptance', 'rollingBack', 'pending', 'available', 'modifying', 'deleting', 'deleted', 'failed', 'rejected', 'rejecting', 'failing', ], ], 'TransitGatewayAttachmentStatusType' => [ 'type' => 'string', 'enum' => [ 'pending-acceptance', 'pending', 'rejected', 'available', 'deleting', 'deleted', ], ], 'TransitGatewayCidrBlockStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'TransitGatewayClientVpnAttachment' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'transitGatewayId', ], 'ClientVpnEndpointId' => [ 'shape' => 'ClientVpnEndpointId', 'locationName' => 'clientVpnEndpointId', ], 'ClientVpnOwnerId' => [ 'shape' => 'String', 'locationName' => 'clientVpnOwnerId', ], 'State' => [ 'shape' => 'TransitGatewayAttachmentStatusType', 'locationName' => 'state', ], 'CreationTime' => [ 'shape' => 'String', 'locationName' => 'creationTime', ], ], ], 'TransitGatewayConfigurationDescribeEndpointStructure' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'transitGatewayId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], 'AvailabilityZones' => [ 'shape' => 'ClientVpnAvailabilityZoneSet', 'locationName' => 'availabilityZoneSet', ], 'AvailabilityZoneIds' => [ 'shape' => 'ClientVpnAvailabilityZoneIdSet', 'locationName' => 'availabilityZoneIdSet', ], ], ], 'TransitGatewayConfigurationInputStructure' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', ], 'AvailabilityZones' => [ 'shape' => 'ClientVpnAvailabilityZoneSet', 'locationName' => 'AvailabilityZone', ], 'AvailabilityZoneIds' => [ 'shape' => 'ClientVpnAvailabilityZoneIdSet', 'locationName' => 'AvailabilityZoneId', ], ], ], 'TransitGatewayConnect' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], 'TransportTransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transportTransitGatewayAttachmentId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'transitGatewayId', ], 'State' => [ 'shape' => 'TransitGatewayAttachmentState', 'locationName' => 'state', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Options' => [ 'shape' => 'TransitGatewayConnectOptions', 'locationName' => 'options', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayConnectList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayConnect', 'locationName' => 'item', ], ], 'TransitGatewayConnectOptions' => [ 'type' => 'structure', 'members' => [ 'Protocol' => [ 'shape' => 'ProtocolValue', 'locationName' => 'protocol', ], ], ], 'TransitGatewayConnectPeer' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], 'TransitGatewayConnectPeerId' => [ 'shape' => 'TransitGatewayConnectPeerId', 'locationName' => 'transitGatewayConnectPeerId', ], 'State' => [ 'shape' => 'TransitGatewayConnectPeerState', 'locationName' => 'state', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'ConnectPeerConfiguration' => [ 'shape' => 'TransitGatewayConnectPeerConfiguration', 'locationName' => 'connectPeerConfiguration', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayConnectPeerConfiguration' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAddress' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAddress', ], 'PeerAddress' => [ 'shape' => 'String', 'locationName' => 'peerAddress', ], 'InsideCidrBlocks' => [ 'shape' => 'InsideCidrBlocksStringList', 'locationName' => 'insideCidrBlocks', ], 'Protocol' => [ 'shape' => 'ProtocolValue', 'locationName' => 'protocol', ], 'BgpConfigurations' => [ 'shape' => 'TransitGatewayAttachmentBgpConfigurationList', 'locationName' => 'bgpConfigurations', ], ], ], 'TransitGatewayConnectPeerId' => [ 'type' => 'string', ], 'TransitGatewayConnectPeerIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayConnectPeerId', 'locationName' => 'item', ], ], 'TransitGatewayConnectPeerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayConnectPeer', 'locationName' => 'item', ], ], 'TransitGatewayConnectPeerState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'TransitGatewayConnectRequestBgpOptions' => [ 'type' => 'structure', 'members' => [ 'PeerAsn' => [ 'shape' => 'Long', ], ], ], 'TransitGatewayId' => [ 'type' => 'string', ], 'TransitGatewayIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'item', ], ], 'TransitGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGateway', 'locationName' => 'item', ], ], 'TransitGatewayMaxResults' => [ 'type' => 'integer', 'max' => 1000, 'min' => 5, ], 'TransitGatewayMeteringPayerType' => [ 'type' => 'string', 'enum' => [ 'source-attachment-owner', 'destination-attachment-owner', 'transit-gateway-owner', ], ], 'TransitGatewayMeteringPolicy' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMeteringPolicyId' => [ 'shape' => 'TransitGatewayMeteringPolicyId', 'locationName' => 'transitGatewayMeteringPolicyId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'transitGatewayId', ], 'MiddleboxAttachmentIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'middleboxAttachmentIdSet', ], 'State' => [ 'shape' => 'TransitGatewayMeteringPolicyState', 'locationName' => 'state', ], 'UpdateEffectiveAt' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'updateEffectiveAt', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayMeteringPolicyEntry' => [ 'type' => 'structure', 'members' => [ 'PolicyRuleNumber' => [ 'shape' => 'String', 'locationName' => 'policyRuleNumber', ], 'MeteredAccount' => [ 'shape' => 'TransitGatewayMeteringPayerType', 'locationName' => 'meteredAccount', ], 'State' => [ 'shape' => 'TransitGatewayMeteringPolicyEntryState', 'locationName' => 'state', ], 'UpdatedAt' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'updatedAt', ], 'UpdateEffectiveAt' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'updateEffectiveAt', ], 'MeteringPolicyRule' => [ 'shape' => 'TransitGatewayMeteringPolicyRule', 'locationName' => 'meteringPolicyRule', ], ], ], 'TransitGatewayMeteringPolicyEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayMeteringPolicyEntry', 'locationName' => 'item', ], ], 'TransitGatewayMeteringPolicyEntryState' => [ 'type' => 'string', 'enum' => [ 'available', 'deleted', ], ], 'TransitGatewayMeteringPolicyId' => [ 'type' => 'string', ], 'TransitGatewayMeteringPolicyIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayMeteringPolicyId', 'locationName' => 'item', ], ], 'TransitGatewayMeteringPolicyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayMeteringPolicy', 'locationName' => 'item', ], ], 'TransitGatewayMeteringPolicyRule' => [ 'type' => 'structure', 'members' => [ 'SourceTransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'sourceTransitGatewayAttachmentId', ], 'SourceTransitGatewayAttachmentType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'sourceTransitGatewayAttachmentType', ], 'SourceCidrBlock' => [ 'shape' => 'String', 'locationName' => 'sourceCidrBlock', ], 'SourcePortRange' => [ 'shape' => 'String', 'locationName' => 'sourcePortRange', ], 'DestinationTransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'destinationTransitGatewayAttachmentId', ], 'DestinationTransitGatewayAttachmentType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'destinationTransitGatewayAttachmentType', ], 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'DestinationPortRange' => [ 'shape' => 'String', 'locationName' => 'destinationPortRange', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], ], ], 'TransitGatewayMeteringPolicyState' => [ 'type' => 'string', 'enum' => [ 'available', 'deleted', 'pending', 'modifying', 'deleting', ], ], 'TransitGatewayMulitcastDomainAssociationState' => [ 'type' => 'string', 'enum' => [ 'pendingAcceptance', 'associating', 'associated', 'disassociating', 'disassociated', 'rejected', 'failed', ], ], 'TransitGatewayMulticastDeregisteredGroupMembers' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayMulticastDomainId', ], 'DeregisteredNetworkInterfaceIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'deregisteredNetworkInterfaceIds', ], 'GroupIpAddress' => [ 'shape' => 'String', 'locationName' => 'groupIpAddress', ], ], ], 'TransitGatewayMulticastDeregisteredGroupSources' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayMulticastDomainId', ], 'DeregisteredNetworkInterfaceIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'deregisteredNetworkInterfaceIds', ], 'GroupIpAddress' => [ 'shape' => 'String', 'locationName' => 'groupIpAddress', ], ], ], 'TransitGatewayMulticastDomain' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayMulticastDomainId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'TransitGatewayMulticastDomainArn' => [ 'shape' => 'String', 'locationName' => 'transitGatewayMulticastDomainArn', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'Options' => [ 'shape' => 'TransitGatewayMulticastDomainOptions', 'locationName' => 'options', ], 'State' => [ 'shape' => 'TransitGatewayMulticastDomainState', 'locationName' => 'state', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayMulticastDomainAssociation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'ResourceOwnerId' => [ 'shape' => 'String', 'locationName' => 'resourceOwnerId', ], 'Subnet' => [ 'shape' => 'SubnetAssociation', 'locationName' => 'subnet', ], ], ], 'TransitGatewayMulticastDomainAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayMulticastDomainAssociation', 'locationName' => 'item', ], ], 'TransitGatewayMulticastDomainAssociations' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayMulticastDomainId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'ResourceOwnerId' => [ 'shape' => 'String', 'locationName' => 'resourceOwnerId', ], 'Subnets' => [ 'shape' => 'SubnetAssociationList', 'locationName' => 'subnets', ], ], ], 'TransitGatewayMulticastDomainId' => [ 'type' => 'string', ], 'TransitGatewayMulticastDomainIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayMulticastDomainId', 'locationName' => 'item', ], ], 'TransitGatewayMulticastDomainList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayMulticastDomain', 'locationName' => 'item', ], ], 'TransitGatewayMulticastDomainOptions' => [ 'type' => 'structure', 'members' => [ 'Igmpv2Support' => [ 'shape' => 'Igmpv2SupportValue', 'locationName' => 'igmpv2Support', ], 'StaticSourcesSupport' => [ 'shape' => 'StaticSourcesSupportValue', 'locationName' => 'staticSourcesSupport', ], 'AutoAcceptSharedAssociations' => [ 'shape' => 'AutoAcceptSharedAssociationsValue', 'locationName' => 'autoAcceptSharedAssociations', ], ], ], 'TransitGatewayMulticastDomainState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'TransitGatewayMulticastGroup' => [ 'type' => 'structure', 'members' => [ 'GroupIpAddress' => [ 'shape' => 'String', 'locationName' => 'groupIpAddress', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'SubnetId' => [ 'shape' => 'String', 'locationName' => 'subnetId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'ResourceOwnerId' => [ 'shape' => 'String', 'locationName' => 'resourceOwnerId', ], 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'GroupMember' => [ 'shape' => 'Boolean', 'locationName' => 'groupMember', ], 'GroupSource' => [ 'shape' => 'Boolean', 'locationName' => 'groupSource', ], 'MemberType' => [ 'shape' => 'MembershipType', 'locationName' => 'memberType', ], 'SourceType' => [ 'shape' => 'MembershipType', 'locationName' => 'sourceType', ], ], ], 'TransitGatewayMulticastGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayMulticastGroup', 'locationName' => 'item', ], ], 'TransitGatewayMulticastRegisteredGroupMembers' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayMulticastDomainId', ], 'RegisteredNetworkInterfaceIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'registeredNetworkInterfaceIds', ], 'GroupIpAddress' => [ 'shape' => 'String', 'locationName' => 'groupIpAddress', ], ], ], 'TransitGatewayMulticastRegisteredGroupSources' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayMulticastDomainId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayMulticastDomainId', ], 'RegisteredNetworkInterfaceIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'registeredNetworkInterfaceIds', ], 'GroupIpAddress' => [ 'shape' => 'String', 'locationName' => 'groupIpAddress', ], ], ], 'TransitGatewayNetworkInterfaceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'item', ], ], 'TransitGatewayOptions' => [ 'type' => 'structure', 'members' => [ 'AmazonSideAsn' => [ 'shape' => 'Long', 'locationName' => 'amazonSideAsn', ], 'TransitGatewayCidrBlocks' => [ 'shape' => 'ValueStringList', 'locationName' => 'transitGatewayCidrBlocks', ], 'AutoAcceptSharedAttachments' => [ 'shape' => 'AutoAcceptSharedAttachmentsValue', 'locationName' => 'autoAcceptSharedAttachments', ], 'DefaultRouteTableAssociation' => [ 'shape' => 'DefaultRouteTableAssociationValue', 'locationName' => 'defaultRouteTableAssociation', ], 'AssociationDefaultRouteTableId' => [ 'shape' => 'String', 'locationName' => 'associationDefaultRouteTableId', ], 'DefaultRouteTablePropagation' => [ 'shape' => 'DefaultRouteTablePropagationValue', 'locationName' => 'defaultRouteTablePropagation', ], 'PropagationDefaultRouteTableId' => [ 'shape' => 'String', 'locationName' => 'propagationDefaultRouteTableId', ], 'VpnEcmpSupport' => [ 'shape' => 'VpnEcmpSupportValue', 'locationName' => 'vpnEcmpSupport', ], 'DnsSupport' => [ 'shape' => 'DnsSupportValue', 'locationName' => 'dnsSupport', ], 'SecurityGroupReferencingSupport' => [ 'shape' => 'SecurityGroupReferencingSupportValue', 'locationName' => 'securityGroupReferencingSupport', ], 'MulticastSupport' => [ 'shape' => 'MulticastSupportValue', 'locationName' => 'multicastSupport', ], 'EncryptionSupport' => [ 'shape' => 'EncryptionSupport', 'locationName' => 'encryptionSupport', ], ], ], 'TransitGatewayPeeringAttachment' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'AccepterTransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'accepterTransitGatewayAttachmentId', ], 'RequesterTgwInfo' => [ 'shape' => 'PeeringTgwInfo', 'locationName' => 'requesterTgwInfo', ], 'AccepterTgwInfo' => [ 'shape' => 'PeeringTgwInfo', 'locationName' => 'accepterTgwInfo', ], 'Options' => [ 'shape' => 'TransitGatewayPeeringAttachmentOptions', 'locationName' => 'options', ], 'Status' => [ 'shape' => 'PeeringAttachmentStatus', 'locationName' => 'status', ], 'State' => [ 'shape' => 'TransitGatewayAttachmentState', 'locationName' => 'state', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayPeeringAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayPeeringAttachment', 'locationName' => 'item', ], ], 'TransitGatewayPeeringAttachmentOptions' => [ 'type' => 'structure', 'members' => [ 'DynamicRouting' => [ 'shape' => 'DynamicRoutingValue', 'locationName' => 'dynamicRouting', ], ], ], 'TransitGatewayPolicyRule' => [ 'type' => 'structure', 'members' => [ 'SourceCidrBlock' => [ 'shape' => 'String', 'locationName' => 'sourceCidrBlock', ], 'SourcePortRange' => [ 'shape' => 'String', 'locationName' => 'sourcePortRange', ], 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'DestinationPortRange' => [ 'shape' => 'String', 'locationName' => 'destinationPortRange', ], 'Protocol' => [ 'shape' => 'String', 'locationName' => 'protocol', ], 'MetaData' => [ 'shape' => 'TransitGatewayPolicyRuleMetaData', 'locationName' => 'metaData', ], ], ], 'TransitGatewayPolicyRuleMetaData' => [ 'type' => 'structure', 'members' => [ 'MetaDataKey' => [ 'shape' => 'String', 'locationName' => 'metaDataKey', ], 'MetaDataValue' => [ 'shape' => 'String', 'locationName' => 'metaDataValue', ], ], ], 'TransitGatewayPolicyTable' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPolicyTableId' => [ 'shape' => 'TransitGatewayPolicyTableId', 'locationName' => 'transitGatewayPolicyTableId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'transitGatewayId', ], 'State' => [ 'shape' => 'TransitGatewayPolicyTableState', 'locationName' => 'state', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayPolicyTableAssociation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayPolicyTableId' => [ 'shape' => 'TransitGatewayPolicyTableId', 'locationName' => 'transitGatewayPolicyTableId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'State' => [ 'shape' => 'TransitGatewayAssociationState', 'locationName' => 'state', ], ], ], 'TransitGatewayPolicyTableAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayPolicyTableAssociation', 'locationName' => 'item', ], ], 'TransitGatewayPolicyTableEntry' => [ 'type' => 'structure', 'members' => [ 'PolicyRuleNumber' => [ 'shape' => 'String', 'locationName' => 'policyRuleNumber', ], 'PolicyRule' => [ 'shape' => 'TransitGatewayPolicyRule', 'locationName' => 'policyRule', ], 'TargetRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', 'locationName' => 'targetRouteTableId', ], ], ], 'TransitGatewayPolicyTableEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayPolicyTableEntry', 'locationName' => 'item', ], ], 'TransitGatewayPolicyTableId' => [ 'type' => 'string', ], 'TransitGatewayPolicyTableIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayPolicyTableId', 'locationName' => 'item', ], ], 'TransitGatewayPolicyTableList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayPolicyTable', 'locationName' => 'item', ], ], 'TransitGatewayPolicyTableState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'TransitGatewayPrefixListAttachment' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], ], ], 'TransitGatewayPrefixListReference' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', 'locationName' => 'transitGatewayRouteTableId', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', 'locationName' => 'prefixListId', ], 'PrefixListOwnerId' => [ 'shape' => 'String', 'locationName' => 'prefixListOwnerId', ], 'State' => [ 'shape' => 'TransitGatewayPrefixListReferenceState', 'locationName' => 'state', ], 'Blackhole' => [ 'shape' => 'Boolean', 'locationName' => 'blackhole', ], 'TransitGatewayAttachment' => [ 'shape' => 'TransitGatewayPrefixListAttachment', 'locationName' => 'transitGatewayAttachment', ], ], ], 'TransitGatewayPrefixListReferenceSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayPrefixListReference', 'locationName' => 'item', ], ], 'TransitGatewayPrefixListReferenceState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'modifying', 'deleting', ], ], 'TransitGatewayPropagation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'TransitGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayRouteTableId', ], 'State' => [ 'shape' => 'TransitGatewayPropagationState', 'locationName' => 'state', ], 'TransitGatewayRouteTableAnnouncementId' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementId', 'locationName' => 'transitGatewayRouteTableAnnouncementId', ], ], ], 'TransitGatewayPropagationState' => [ 'type' => 'string', 'enum' => [ 'enabling', 'enabled', 'disabling', 'disabled', ], ], 'TransitGatewayRequestOptions' => [ 'type' => 'structure', 'members' => [ 'AmazonSideAsn' => [ 'shape' => 'Long', ], 'AutoAcceptSharedAttachments' => [ 'shape' => 'AutoAcceptSharedAttachmentsValue', ], 'DefaultRouteTableAssociation' => [ 'shape' => 'DefaultRouteTableAssociationValue', ], 'DefaultRouteTablePropagation' => [ 'shape' => 'DefaultRouteTablePropagationValue', ], 'VpnEcmpSupport' => [ 'shape' => 'VpnEcmpSupportValue', ], 'DnsSupport' => [ 'shape' => 'DnsSupportValue', ], 'SecurityGroupReferencingSupport' => [ 'shape' => 'SecurityGroupReferencingSupportValue', ], 'MulticastSupport' => [ 'shape' => 'MulticastSupportValue', ], 'TransitGatewayCidrBlocks' => [ 'shape' => 'TransitGatewayCidrBlockStringList', ], ], ], 'TransitGatewayRoute' => [ 'type' => 'structure', 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'PrefixListId' => [ 'shape' => 'PrefixListResourceId', 'locationName' => 'prefixListId', ], 'TransitGatewayRouteTableAnnouncementId' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementId', 'locationName' => 'transitGatewayRouteTableAnnouncementId', ], 'TransitGatewayAttachments' => [ 'shape' => 'TransitGatewayRouteAttachmentList', 'locationName' => 'transitGatewayAttachments', ], 'Type' => [ 'shape' => 'TransitGatewayRouteType', 'locationName' => 'type', ], 'State' => [ 'shape' => 'TransitGatewayRouteState', 'locationName' => 'state', ], ], ], 'TransitGatewayRouteAttachment' => [ 'type' => 'structure', 'members' => [ 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], ], ], 'TransitGatewayRouteAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteAttachment', 'locationName' => 'item', ], ], 'TransitGatewayRouteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRoute', 'locationName' => 'item', ], ], 'TransitGatewayRouteState' => [ 'type' => 'string', 'enum' => [ 'pending', 'active', 'blackhole', 'deleting', 'deleted', ], ], 'TransitGatewayRouteTable' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayRouteTableId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'State' => [ 'shape' => 'TransitGatewayRouteTableState', 'locationName' => 'state', ], 'DefaultAssociationRouteTable' => [ 'shape' => 'Boolean', 'locationName' => 'defaultAssociationRouteTable', ], 'DefaultPropagationRouteTable' => [ 'shape' => 'Boolean', 'locationName' => 'defaultPropagationRouteTable', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayRouteTableAnnouncement' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayRouteTableAnnouncementId' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementId', 'locationName' => 'transitGatewayRouteTableAnnouncementId', ], 'TransitGatewayId' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'transitGatewayId', ], 'CoreNetworkId' => [ 'shape' => 'String', 'locationName' => 'coreNetworkId', ], 'PeerTransitGatewayId' => [ 'shape' => 'TransitGatewayId', 'locationName' => 'peerTransitGatewayId', ], 'PeerCoreNetworkId' => [ 'shape' => 'String', 'locationName' => 'peerCoreNetworkId', ], 'PeeringAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', 'locationName' => 'peeringAttachmentId', ], 'AnnouncementDirection' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementDirection', 'locationName' => 'announcementDirection', ], 'TransitGatewayRouteTableId' => [ 'shape' => 'TransitGatewayRouteTableId', 'locationName' => 'transitGatewayRouteTableId', ], 'State' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementState', 'locationName' => 'state', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayRouteTableAnnouncementDirection' => [ 'type' => 'string', 'enum' => [ 'outgoing', 'incoming', ], ], 'TransitGatewayRouteTableAnnouncementId' => [ 'type' => 'string', ], 'TransitGatewayRouteTableAnnouncementIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementId', 'locationName' => 'item', ], ], 'TransitGatewayRouteTableAnnouncementList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteTableAnnouncement', 'locationName' => 'item', ], ], 'TransitGatewayRouteTableAnnouncementState' => [ 'type' => 'string', 'enum' => [ 'available', 'pending', 'failing', 'failed', 'deleting', 'deleted', ], ], 'TransitGatewayRouteTableAssociation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'State' => [ 'shape' => 'TransitGatewayAssociationState', 'locationName' => 'state', ], ], ], 'TransitGatewayRouteTableAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteTableAssociation', 'locationName' => 'item', ], ], 'TransitGatewayRouteTableId' => [ 'type' => 'string', ], 'TransitGatewayRouteTableIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteTableId', 'locationName' => 'item', ], ], 'TransitGatewayRouteTableList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteTable', 'locationName' => 'item', ], ], 'TransitGatewayRouteTablePropagation' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'TransitGatewayAttachmentResourceType', 'locationName' => 'resourceType', ], 'State' => [ 'shape' => 'TransitGatewayPropagationState', 'locationName' => 'state', ], 'TransitGatewayRouteTableAnnouncementId' => [ 'shape' => 'TransitGatewayRouteTableAnnouncementId', 'locationName' => 'transitGatewayRouteTableAnnouncementId', ], ], ], 'TransitGatewayRouteTablePropagationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayRouteTablePropagation', 'locationName' => 'item', ], ], 'TransitGatewayRouteTableRoute' => [ 'type' => 'structure', 'members' => [ 'DestinationCidr' => [ 'shape' => 'String', 'locationName' => 'destinationCidr', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'RouteOrigin' => [ 'shape' => 'String', 'locationName' => 'routeOrigin', ], 'PrefixListId' => [ 'shape' => 'String', 'locationName' => 'prefixListId', ], 'AttachmentId' => [ 'shape' => 'String', 'locationName' => 'attachmentId', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], 'ResourceType' => [ 'shape' => 'String', 'locationName' => 'resourceType', ], ], ], 'TransitGatewayRouteTableState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'TransitGatewayRouteType' => [ 'type' => 'string', 'enum' => [ 'static', 'propagated', ], ], 'TransitGatewayState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'modifying', 'deleting', 'deleted', ], ], 'TransitGatewaySubnetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', 'locationName' => 'item', ], ], 'TransitGatewayVpcAttachment' => [ 'type' => 'structure', 'members' => [ 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'VpcOwnerId' => [ 'shape' => 'String', 'locationName' => 'vpcOwnerId', ], 'State' => [ 'shape' => 'TransitGatewayAttachmentState', 'locationName' => 'state', ], 'SubnetIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'subnetIds', ], 'CreationTime' => [ 'shape' => 'DateTime', 'locationName' => 'creationTime', ], 'Options' => [ 'shape' => 'TransitGatewayVpcAttachmentOptions', 'locationName' => 'options', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TransitGatewayVpcAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TransitGatewayVpcAttachment', 'locationName' => 'item', ], ], 'TransitGatewayVpcAttachmentOptions' => [ 'type' => 'structure', 'members' => [ 'DnsSupport' => [ 'shape' => 'DnsSupportValue', 'locationName' => 'dnsSupport', ], 'SecurityGroupReferencingSupport' => [ 'shape' => 'SecurityGroupReferencingSupportValue', 'locationName' => 'securityGroupReferencingSupport', ], 'Ipv6Support' => [ 'shape' => 'Ipv6SupportValue', 'locationName' => 'ipv6Support', ], 'ApplianceModeSupport' => [ 'shape' => 'ApplianceModeSupportValue', 'locationName' => 'applianceModeSupport', ], ], ], 'TransportProtocol' => [ 'type' => 'string', 'enum' => [ 'tcp', 'udp', ], ], 'TrunkInterfaceAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'TrunkInterfaceAssociationId', 'locationName' => 'associationId', ], 'BranchInterfaceId' => [ 'shape' => 'String', 'locationName' => 'branchInterfaceId', ], 'TrunkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'trunkInterfaceId', ], 'InterfaceProtocol' => [ 'shape' => 'InterfaceProtocolType', 'locationName' => 'interfaceProtocol', ], 'VlanId' => [ 'shape' => 'Integer', 'locationName' => 'vlanId', ], 'GreKey' => [ 'shape' => 'Integer', 'locationName' => 'greKey', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'TrunkInterfaceAssociationId' => [ 'type' => 'string', ], 'TrunkInterfaceAssociationIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrunkInterfaceAssociationId', 'locationName' => 'item', ], ], 'TrunkInterfaceAssociationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TrunkInterfaceAssociation', 'locationName' => 'item', ], ], 'TrustProviderType' => [ 'type' => 'string', 'enum' => [ 'user', 'device', ], ], 'TunnelInsideIpVersion' => [ 'type' => 'string', 'enum' => [ 'ipv4', 'ipv6', ], ], 'TunnelOption' => [ 'type' => 'structure', 'members' => [ 'OutsideIpAddress' => [ 'shape' => 'String', 'locationName' => 'outsideIpAddress', ], 'TunnelInsideCidr' => [ 'shape' => 'String', 'locationName' => 'tunnelInsideCidr', ], 'TunnelInsideIpv6Cidr' => [ 'shape' => 'String', 'locationName' => 'tunnelInsideIpv6Cidr', ], 'PreSharedKey' => [ 'shape' => 'preSharedKey', 'locationName' => 'preSharedKey', ], 'Phase1LifetimeSeconds' => [ 'shape' => 'Integer', 'locationName' => 'phase1LifetimeSeconds', ], 'Phase2LifetimeSeconds' => [ 'shape' => 'Integer', 'locationName' => 'phase2LifetimeSeconds', ], 'RekeyMarginTimeSeconds' => [ 'shape' => 'Integer', 'locationName' => 'rekeyMarginTimeSeconds', ], 'RekeyFuzzPercentage' => [ 'shape' => 'Integer', 'locationName' => 'rekeyFuzzPercentage', ], 'ReplayWindowSize' => [ 'shape' => 'Integer', 'locationName' => 'replayWindowSize', ], 'DpdTimeoutSeconds' => [ 'shape' => 'Integer', 'locationName' => 'dpdTimeoutSeconds', ], 'DpdTimeoutAction' => [ 'shape' => 'String', 'locationName' => 'dpdTimeoutAction', ], 'Phase1EncryptionAlgorithms' => [ 'shape' => 'Phase1EncryptionAlgorithmsList', 'locationName' => 'phase1EncryptionAlgorithmSet', ], 'Phase2EncryptionAlgorithms' => [ 'shape' => 'Phase2EncryptionAlgorithmsList', 'locationName' => 'phase2EncryptionAlgorithmSet', ], 'Phase1IntegrityAlgorithms' => [ 'shape' => 'Phase1IntegrityAlgorithmsList', 'locationName' => 'phase1IntegrityAlgorithmSet', ], 'Phase2IntegrityAlgorithms' => [ 'shape' => 'Phase2IntegrityAlgorithmsList', 'locationName' => 'phase2IntegrityAlgorithmSet', ], 'Phase1DHGroupNumbers' => [ 'shape' => 'Phase1DHGroupNumbersList', 'locationName' => 'phase1DHGroupNumberSet', ], 'Phase2DHGroupNumbers' => [ 'shape' => 'Phase2DHGroupNumbersList', 'locationName' => 'phase2DHGroupNumberSet', ], 'IkeVersions' => [ 'shape' => 'IKEVersionsList', 'locationName' => 'ikeVersionSet', ], 'StartupAction' => [ 'shape' => 'String', 'locationName' => 'startupAction', ], 'LogOptions' => [ 'shape' => 'VpnTunnelLogOptions', 'locationName' => 'logOptions', ], 'EnableTunnelLifecycleControl' => [ 'shape' => 'Boolean', 'locationName' => 'enableTunnelLifecycleControl', ], ], ], 'TunnelOptionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TunnelOption', 'locationName' => 'item', ], ], 'UnassignIpv6AddressesRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'Ipv6Prefixes' => [ 'shape' => 'IpPrefixList', 'locationName' => 'Ipv6Prefix', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'Ipv6Addresses' => [ 'shape' => 'Ipv6AddressList', 'locationName' => 'ipv6Addresses', ], ], ], 'UnassignIpv6AddressesResult' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'String', 'locationName' => 'networkInterfaceId', ], 'UnassignedIpv6Addresses' => [ 'shape' => 'Ipv6AddressList', 'locationName' => 'unassignedIpv6Addresses', ], 'UnassignedIpv6Prefixes' => [ 'shape' => 'IpPrefixList', 'locationName' => 'unassignedIpv6PrefixSet', ], ], ], 'UnassignPrivateIpAddressesRequest' => [ 'type' => 'structure', 'required' => [ 'NetworkInterfaceId', ], 'members' => [ 'Ipv4Prefixes' => [ 'shape' => 'IpPrefixList', 'locationName' => 'Ipv4Prefix', ], 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'PrivateIpAddresses' => [ 'shape' => 'PrivateIpAddressStringList', 'locationName' => 'privateIpAddress', ], ], ], 'UnassignPrivateNatGatewayAddressRequest' => [ 'type' => 'structure', 'required' => [ 'NatGatewayId', 'PrivateIpAddresses', ], 'members' => [ 'NatGatewayId' => [ 'shape' => 'NatGatewayId', ], 'PrivateIpAddresses' => [ 'shape' => 'IpList', 'locationName' => 'PrivateIpAddress', ], 'MaxDrainDurationSeconds' => [ 'shape' => 'DrainSeconds', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'UnassignPrivateNatGatewayAddressResult' => [ 'type' => 'structure', 'members' => [ 'NatGatewayId' => [ 'shape' => 'NatGatewayId', 'locationName' => 'natGatewayId', ], 'NatGatewayAddresses' => [ 'shape' => 'NatGatewayAddressList', 'locationName' => 'natGatewayAddressSet', ], ], ], 'UnlimitedSupportedInstanceFamily' => [ 'type' => 'string', 'enum' => [ 't2', 't3', 't3a', 't4g', ], ], 'UnlockSnapshotRequest' => [ 'type' => 'structure', 'required' => [ 'SnapshotId', ], 'members' => [ 'SnapshotId' => [ 'shape' => 'SnapshotId', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'UnlockSnapshotResult' => [ 'type' => 'structure', 'members' => [ 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], ], ], 'UnmonitorInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'InstanceIds', ], 'members' => [ 'InstanceIds' => [ 'shape' => 'InstanceIdStringList', 'locationName' => 'InstanceId', ], 'DryRun' => [ 'shape' => 'Boolean', 'locationName' => 'dryRun', ], ], ], 'UnmonitorInstancesResult' => [ 'type' => 'structure', 'members' => [ 'InstanceMonitorings' => [ 'shape' => 'InstanceMonitoringList', 'locationName' => 'instancesSet', ], ], ], 'UnsuccessfulInstanceCreditSpecificationErrorCode' => [ 'type' => 'string', 'enum' => [ 'InvalidInstanceID.Malformed', 'InvalidInstanceID.NotFound', 'IncorrectInstanceState', 'InstanceCreditSpecification.NotSupported', ], ], 'UnsuccessfulInstanceCreditSpecificationItem' => [ 'type' => 'structure', 'members' => [ 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Error' => [ 'shape' => 'UnsuccessfulInstanceCreditSpecificationItemError', 'locationName' => 'error', ], ], ], 'UnsuccessfulInstanceCreditSpecificationItemError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'UnsuccessfulInstanceCreditSpecificationErrorCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'UnsuccessfulInstanceCreditSpecificationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnsuccessfulInstanceCreditSpecificationItem', 'locationName' => 'item', ], ], 'UnsuccessfulItem' => [ 'type' => 'structure', 'members' => [ 'Error' => [ 'shape' => 'UnsuccessfulItemError', 'locationName' => 'error', ], 'ResourceId' => [ 'shape' => 'String', 'locationName' => 'resourceId', ], ], ], 'UnsuccessfulItemError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'UnsuccessfulItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnsuccessfulItem', 'locationName' => 'item', ], ], 'UnsuccessfulItemSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'UnsuccessfulItem', 'locationName' => 'item', ], ], 'UpdateCapacityManagerMonitoredTagKeysRequest' => [ 'type' => 'structure', 'members' => [ 'ActivateTagKeys' => [ 'shape' => 'ValueStringList', 'locationName' => 'ActivateTagKey', ], 'DeactivateTagKeys' => [ 'shape' => 'ValueStringList', 'locationName' => 'DeactivateTagKey', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'UpdateCapacityManagerMonitoredTagKeysResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerTagKeys' => [ 'shape' => 'CapacityManagerMonitoredTagKeyList', 'locationName' => 'capacityManagerTagKeySet', ], ], ], 'UpdateCapacityManagerOrganizationsAccessRequest' => [ 'type' => 'structure', 'required' => [ 'OrganizationsAccess', ], 'members' => [ 'OrganizationsAccess' => [ 'shape' => 'BoxedBoolean', ], 'DryRun' => [ 'shape' => 'Boolean', ], 'ClientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], ], ], 'UpdateCapacityManagerOrganizationsAccessResult' => [ 'type' => 'structure', 'members' => [ 'CapacityManagerStatus' => [ 'shape' => 'CapacityManagerStatus', 'locationName' => 'capacityManagerStatus', ], 'OrganizationsAccess' => [ 'shape' => 'Boolean', 'locationName' => 'organizationsAccess', ], ], ], 'UpdateInterruptibleCapacityReservationAllocationRequest' => [ 'type' => 'structure', 'required' => [ 'CapacityReservationId', 'TargetInstanceCount', ], 'members' => [ 'CapacityReservationId' => [ 'shape' => 'CapacityReservationId', ], 'TargetInstanceCount' => [ 'shape' => 'Integer', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'UpdateInterruptibleCapacityReservationAllocationResult' => [ 'type' => 'structure', 'members' => [ 'InterruptibleCapacityReservationId' => [ 'shape' => 'CapacityReservationId', 'locationName' => 'interruptibleCapacityReservationId', ], 'SourceCapacityReservationId' => [ 'shape' => 'CapacityReservationId', 'locationName' => 'sourceCapacityReservationId', ], 'InstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'instanceCount', ], 'TargetInstanceCount' => [ 'shape' => 'Integer', 'locationName' => 'targetInstanceCount', ], 'Status' => [ 'shape' => 'InterruptibleCapacityReservationAllocationStatus', 'locationName' => 'status', ], 'InterruptionType' => [ 'shape' => 'InterruptionType', 'locationName' => 'interruptionType', ], ], ], 'UpdateSecurityGroupRuleDescriptionsEgressRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', ], 'GroupName' => [ 'shape' => 'SecurityGroupName', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', ], 'SecurityGroupRuleDescriptions' => [ 'shape' => 'SecurityGroupRuleDescriptionList', 'locationName' => 'SecurityGroupRuleDescription', ], ], ], 'UpdateSecurityGroupRuleDescriptionsEgressResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'UpdateSecurityGroupRuleDescriptionsIngressRequest' => [ 'type' => 'structure', 'members' => [ 'DryRun' => [ 'shape' => 'Boolean', ], 'GroupId' => [ 'shape' => 'SecurityGroupId', ], 'GroupName' => [ 'shape' => 'SecurityGroupName', ], 'IpPermissions' => [ 'shape' => 'IpPermissionList', ], 'SecurityGroupRuleDescriptions' => [ 'shape' => 'SecurityGroupRuleDescriptionList', 'locationName' => 'SecurityGroupRuleDescription', ], ], ], 'UpdateSecurityGroupRuleDescriptionsIngressResult' => [ 'type' => 'structure', 'members' => [ 'Return' => [ 'shape' => 'Boolean', 'locationName' => 'return', ], ], ], 'UsageClassType' => [ 'type' => 'string', 'enum' => [ 'spot', 'on-demand', 'capacity-block', ], ], 'UsageClassTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UsageClassType', 'locationName' => 'item', ], ], 'UserBucket' => [ 'type' => 'structure', 'members' => [ 'S3Bucket' => [ 'shape' => 'String', ], 'S3Key' => [ 'shape' => 'String', ], ], ], 'UserBucketDetails' => [ 'type' => 'structure', 'members' => [ 'S3Bucket' => [ 'shape' => 'String', 'locationName' => 's3Bucket', ], 'S3Key' => [ 'shape' => 'String', 'locationName' => 's3Key', ], ], ], 'UserData' => [ 'type' => 'structure', 'members' => [ 'Data' => [ 'shape' => 'String', 'locationName' => 'data', ], ], 'sensitive' => true, ], 'UserGroupStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'UserGroup', ], ], 'UserIdGroupPair' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'UserId' => [ 'shape' => 'String', 'locationName' => 'userId', ], 'GroupName' => [ 'shape' => 'String', 'locationName' => 'groupName', ], 'GroupId' => [ 'shape' => 'String', 'locationName' => 'groupId', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], 'PeeringStatus' => [ 'shape' => 'String', 'locationName' => 'peeringStatus', ], ], ], 'UserIdGroupPairList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserIdGroupPair', 'locationName' => 'item', ], ], 'UserIdGroupPairSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserIdGroupPair', 'locationName' => 'item', ], ], 'UserIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'UserIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'UserId', ], ], 'UserTrustProviderType' => [ 'type' => 'string', 'enum' => [ 'iam-identity-center', 'oidc', ], ], 'VCpuCount' => [ 'type' => 'integer', ], 'VCpuCountRange' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Integer', 'locationName' => 'min', ], 'Max' => [ 'shape' => 'Integer', 'locationName' => 'max', ], ], ], 'VCpuCountRangeRequest' => [ 'type' => 'structure', 'required' => [ 'Min', ], 'members' => [ 'Min' => [ 'shape' => 'Integer', ], 'Max' => [ 'shape' => 'Integer', ], ], ], 'VCpuInfo' => [ 'type' => 'structure', 'members' => [ 'DefaultVCpus' => [ 'shape' => 'VCpuCount', 'locationName' => 'defaultVCpus', ], 'DefaultCores' => [ 'shape' => 'CoreCount', 'locationName' => 'defaultCores', ], 'DefaultThreadsPerCore' => [ 'shape' => 'ThreadsPerCore', 'locationName' => 'defaultThreadsPerCore', ], 'ValidCores' => [ 'shape' => 'CoreCountList', 'locationName' => 'validCores', ], 'ValidThreadsPerCore' => [ 'shape' => 'ThreadsPerCoreList', 'locationName' => 'validThreadsPerCore', ], ], ], 'ValidationError' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ValidationWarning' => [ 'type' => 'structure', 'members' => [ 'Errors' => [ 'shape' => 'ErrorSet', 'locationName' => 'errorSet', ], ], ], 'ValueStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'VerificationMethod' => [ 'type' => 'string', 'enum' => [ 'remarks-x509', 'dns-token', ], ], 'VerifiedAccessEndpoint' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessInstanceId', ], 'VerifiedAccessGroupId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessGroupId', ], 'VerifiedAccessEndpointId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessEndpointId', ], 'ApplicationDomain' => [ 'shape' => 'String', 'locationName' => 'applicationDomain', ], 'EndpointType' => [ 'shape' => 'VerifiedAccessEndpointType', 'locationName' => 'endpointType', ], 'AttachmentType' => [ 'shape' => 'VerifiedAccessEndpointAttachmentType', 'locationName' => 'attachmentType', ], 'DomainCertificateArn' => [ 'shape' => 'String', 'locationName' => 'domainCertificateArn', ], 'EndpointDomain' => [ 'shape' => 'String', 'locationName' => 'endpointDomain', ], 'DeviceValidationDomain' => [ 'shape' => 'String', 'locationName' => 'deviceValidationDomain', ], 'SecurityGroupIds' => [ 'shape' => 'SecurityGroupIdList', 'locationName' => 'securityGroupIdSet', ], 'LoadBalancerOptions' => [ 'shape' => 'VerifiedAccessEndpointLoadBalancerOptions', 'locationName' => 'loadBalancerOptions', ], 'NetworkInterfaceOptions' => [ 'shape' => 'VerifiedAccessEndpointEniOptions', 'locationName' => 'networkInterfaceOptions', ], 'Status' => [ 'shape' => 'VerifiedAccessEndpointStatus', 'locationName' => 'status', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'CreationTime' => [ 'shape' => 'String', 'locationName' => 'creationTime', ], 'LastUpdatedTime' => [ 'shape' => 'String', 'locationName' => 'lastUpdatedTime', ], 'DeletionTime' => [ 'shape' => 'String', 'locationName' => 'deletionTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationResponse', 'locationName' => 'sseSpecification', ], 'RdsOptions' => [ 'shape' => 'VerifiedAccessEndpointRdsOptions', 'locationName' => 'rdsOptions', ], 'CidrOptions' => [ 'shape' => 'VerifiedAccessEndpointCidrOptions', 'locationName' => 'cidrOptions', ], ], ], 'VerifiedAccessEndpointAttachmentType' => [ 'type' => 'string', 'enum' => [ 'vpc', ], ], 'VerifiedAccessEndpointCidrOptions' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], 'PortRanges' => [ 'shape' => 'VerifiedAccessEndpointPortRangeList', 'locationName' => 'portRangeSet', ], 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', 'locationName' => 'protocol', ], 'SubnetIds' => [ 'shape' => 'VerifiedAccessEndpointSubnetIdList', 'locationName' => 'subnetIdSet', ], ], ], 'VerifiedAccessEndpointEniOptions' => [ 'type' => 'structure', 'members' => [ 'NetworkInterfaceId' => [ 'shape' => 'NetworkInterfaceId', 'locationName' => 'networkInterfaceId', ], 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', 'locationName' => 'protocol', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', 'locationName' => 'port', ], 'PortRanges' => [ 'shape' => 'VerifiedAccessEndpointPortRangeList', 'locationName' => 'portRangeSet', ], ], ], 'VerifiedAccessEndpointId' => [ 'type' => 'string', ], 'VerifiedAccessEndpointIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessEndpointId', 'locationName' => 'item', ], ], 'VerifiedAccessEndpointList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessEndpoint', 'locationName' => 'item', ], ], 'VerifiedAccessEndpointLoadBalancerOptions' => [ 'type' => 'structure', 'members' => [ 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', 'locationName' => 'protocol', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', 'locationName' => 'port', ], 'LoadBalancerArn' => [ 'shape' => 'String', 'locationName' => 'loadBalancerArn', ], 'SubnetIds' => [ 'shape' => 'VerifiedAccessEndpointSubnetIdList', 'locationName' => 'subnetIdSet', ], 'PortRanges' => [ 'shape' => 'VerifiedAccessEndpointPortRangeList', 'locationName' => 'portRangeSet', ], ], ], 'VerifiedAccessEndpointPortNumber' => [ 'type' => 'integer', 'max' => 65535, 'min' => 1, ], 'VerifiedAccessEndpointPortRange' => [ 'type' => 'structure', 'members' => [ 'FromPort' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', 'locationName' => 'fromPort', ], 'ToPort' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', 'locationName' => 'toPort', ], ], ], 'VerifiedAccessEndpointPortRangeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessEndpointPortRange', 'locationName' => 'item', ], ], 'VerifiedAccessEndpointProtocol' => [ 'type' => 'string', 'enum' => [ 'http', 'https', 'tcp', ], ], 'VerifiedAccessEndpointRdsOptions' => [ 'type' => 'structure', 'members' => [ 'Protocol' => [ 'shape' => 'VerifiedAccessEndpointProtocol', 'locationName' => 'protocol', ], 'Port' => [ 'shape' => 'VerifiedAccessEndpointPortNumber', 'locationName' => 'port', ], 'RdsDbInstanceArn' => [ 'shape' => 'String', 'locationName' => 'rdsDbInstanceArn', ], 'RdsDbClusterArn' => [ 'shape' => 'String', 'locationName' => 'rdsDbClusterArn', ], 'RdsDbProxyArn' => [ 'shape' => 'String', 'locationName' => 'rdsDbProxyArn', ], 'RdsEndpoint' => [ 'shape' => 'String', 'locationName' => 'rdsEndpoint', ], 'SubnetIds' => [ 'shape' => 'VerifiedAccessEndpointSubnetIdList', 'locationName' => 'subnetIdSet', ], ], ], 'VerifiedAccessEndpointStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'VerifiedAccessEndpointStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'VerifiedAccessEndpointStatusCode' => [ 'type' => 'string', 'enum' => [ 'pending', 'active', 'updating', 'deleting', 'deleted', ], ], 'VerifiedAccessEndpointSubnetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', 'locationName' => 'item', ], ], 'VerifiedAccessEndpointTarget' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessEndpointId' => [ 'shape' => 'VerifiedAccessEndpointId', 'locationName' => 'verifiedAccessEndpointId', ], 'VerifiedAccessEndpointTargetIpAddress' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessEndpointTargetIpAddress', ], 'VerifiedAccessEndpointTargetDns' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessEndpointTargetDns', ], ], ], 'VerifiedAccessEndpointTargetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessEndpointTarget', 'locationName' => 'item', ], ], 'VerifiedAccessEndpointType' => [ 'type' => 'string', 'enum' => [ 'load-balancer', 'network-interface', 'rds', 'cidr', ], ], 'VerifiedAccessGroup' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessGroupId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessGroupId', ], 'VerifiedAccessInstanceId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessInstanceId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'Owner' => [ 'shape' => 'String', 'locationName' => 'owner', ], 'VerifiedAccessGroupArn' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessGroupArn', ], 'CreationTime' => [ 'shape' => 'String', 'locationName' => 'creationTime', ], 'LastUpdatedTime' => [ 'shape' => 'String', 'locationName' => 'lastUpdatedTime', ], 'DeletionTime' => [ 'shape' => 'String', 'locationName' => 'deletionTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationResponse', 'locationName' => 'sseSpecification', ], ], ], 'VerifiedAccessGroupId' => [ 'type' => 'string', ], 'VerifiedAccessGroupIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessGroupId', 'locationName' => 'item', ], ], 'VerifiedAccessGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessGroup', 'locationName' => 'item', ], ], 'VerifiedAccessInstance' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessInstanceId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'VerifiedAccessTrustProviders' => [ 'shape' => 'VerifiedAccessTrustProviderCondensedList', 'locationName' => 'verifiedAccessTrustProviderSet', ], 'CreationTime' => [ 'shape' => 'String', 'locationName' => 'creationTime', ], 'LastUpdatedTime' => [ 'shape' => 'String', 'locationName' => 'lastUpdatedTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'FipsEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'fipsEnabled', ], 'CidrEndpointsCustomSubDomain' => [ 'shape' => 'VerifiedAccessInstanceCustomSubDomain', 'locationName' => 'cidrEndpointsCustomSubDomain', ], ], ], 'VerifiedAccessInstanceCustomSubDomain' => [ 'type' => 'structure', 'members' => [ 'SubDomain' => [ 'shape' => 'String', 'locationName' => 'subDomain', ], 'Nameservers' => [ 'shape' => 'ValueStringList', 'locationName' => 'nameserverSet', ], ], ], 'VerifiedAccessInstanceId' => [ 'type' => 'string', ], 'VerifiedAccessInstanceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessInstanceId', 'locationName' => 'item', ], ], 'VerifiedAccessInstanceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessInstance', 'locationName' => 'item', ], ], 'VerifiedAccessInstanceLoggingConfiguration' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessInstanceId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessInstanceId', ], 'AccessLogs' => [ 'shape' => 'VerifiedAccessLogs', 'locationName' => 'accessLogs', ], ], ], 'VerifiedAccessInstanceLoggingConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessInstanceLoggingConfiguration', 'locationName' => 'item', ], ], 'VerifiedAccessInstanceOpenVpnClientConfiguration' => [ 'type' => 'structure', 'members' => [ 'Config' => [ 'shape' => 'String', 'locationName' => 'config', ], 'Routes' => [ 'shape' => 'VerifiedAccessInstanceOpenVpnClientConfigurationRouteList', 'locationName' => 'routeSet', ], ], ], 'VerifiedAccessInstanceOpenVpnClientConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessInstanceOpenVpnClientConfiguration', 'locationName' => 'item', ], ], 'VerifiedAccessInstanceOpenVpnClientConfigurationRoute' => [ 'type' => 'structure', 'members' => [ 'Cidr' => [ 'shape' => 'String', 'locationName' => 'cidr', ], ], ], 'VerifiedAccessInstanceOpenVpnClientConfigurationRouteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessInstanceOpenVpnClientConfigurationRoute', 'locationName' => 'item', ], ], 'VerifiedAccessInstanceUserTrustProviderClientConfiguration' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'UserTrustProviderType', 'locationName' => 'type', ], 'Scopes' => [ 'shape' => 'String', 'locationName' => 'scopes', ], 'Issuer' => [ 'shape' => 'String', 'locationName' => 'issuer', ], 'AuthorizationEndpoint' => [ 'shape' => 'String', 'locationName' => 'authorizationEndpoint', ], 'PublicSigningKeyEndpoint' => [ 'shape' => 'String', 'locationName' => 'publicSigningKeyEndpoint', ], 'TokenEndpoint' => [ 'shape' => 'String', 'locationName' => 'tokenEndpoint', ], 'UserInfoEndpoint' => [ 'shape' => 'String', 'locationName' => 'userInfoEndpoint', ], 'ClientId' => [ 'shape' => 'String', 'locationName' => 'clientId', ], 'ClientSecret' => [ 'shape' => 'ClientSecretType', 'locationName' => 'clientSecret', ], 'PkceEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'pkceEnabled', ], ], ], 'VerifiedAccessLogCloudWatchLogsDestination' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], 'DeliveryStatus' => [ 'shape' => 'VerifiedAccessLogDeliveryStatus', 'locationName' => 'deliveryStatus', ], 'LogGroup' => [ 'shape' => 'String', 'locationName' => 'logGroup', ], ], ], 'VerifiedAccessLogCloudWatchLogsDestinationOptions' => [ 'type' => 'structure', 'required' => [ 'Enabled', ], 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'LogGroup' => [ 'shape' => 'String', ], ], ], 'VerifiedAccessLogDeliveryStatus' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'VerifiedAccessLogDeliveryStatusCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'VerifiedAccessLogDeliveryStatusCode' => [ 'type' => 'string', 'enum' => [ 'success', 'failed', ], ], 'VerifiedAccessLogKinesisDataFirehoseDestination' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], 'DeliveryStatus' => [ 'shape' => 'VerifiedAccessLogDeliveryStatus', 'locationName' => 'deliveryStatus', ], 'DeliveryStream' => [ 'shape' => 'String', 'locationName' => 'deliveryStream', ], ], ], 'VerifiedAccessLogKinesisDataFirehoseDestinationOptions' => [ 'type' => 'structure', 'required' => [ 'Enabled', ], 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'DeliveryStream' => [ 'shape' => 'String', ], ], ], 'VerifiedAccessLogOptions' => [ 'type' => 'structure', 'members' => [ 'S3' => [ 'shape' => 'VerifiedAccessLogS3DestinationOptions', ], 'CloudWatchLogs' => [ 'shape' => 'VerifiedAccessLogCloudWatchLogsDestinationOptions', ], 'KinesisDataFirehose' => [ 'shape' => 'VerifiedAccessLogKinesisDataFirehoseDestinationOptions', ], 'LogVersion' => [ 'shape' => 'String', ], 'IncludeTrustContext' => [ 'shape' => 'Boolean', ], ], ], 'VerifiedAccessLogS3Destination' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', 'locationName' => 'enabled', ], 'DeliveryStatus' => [ 'shape' => 'VerifiedAccessLogDeliveryStatus', 'locationName' => 'deliveryStatus', ], 'BucketName' => [ 'shape' => 'String', 'locationName' => 'bucketName', ], 'Prefix' => [ 'shape' => 'String', 'locationName' => 'prefix', ], 'BucketOwner' => [ 'shape' => 'String', 'locationName' => 'bucketOwner', ], ], ], 'VerifiedAccessLogS3DestinationOptions' => [ 'type' => 'structure', 'required' => [ 'Enabled', ], 'members' => [ 'Enabled' => [ 'shape' => 'Boolean', ], 'BucketName' => [ 'shape' => 'String', ], 'Prefix' => [ 'shape' => 'String', ], 'BucketOwner' => [ 'shape' => 'String', ], ], ], 'VerifiedAccessLogs' => [ 'type' => 'structure', 'members' => [ 'S3' => [ 'shape' => 'VerifiedAccessLogS3Destination', 'locationName' => 's3', ], 'CloudWatchLogs' => [ 'shape' => 'VerifiedAccessLogCloudWatchLogsDestination', 'locationName' => 'cloudWatchLogs', ], 'KinesisDataFirehose' => [ 'shape' => 'VerifiedAccessLogKinesisDataFirehoseDestination', 'locationName' => 'kinesisDataFirehose', ], 'LogVersion' => [ 'shape' => 'String', 'locationName' => 'logVersion', ], 'IncludeTrustContext' => [ 'shape' => 'Boolean', 'locationName' => 'includeTrustContext', ], ], ], 'VerifiedAccessSseSpecificationRequest' => [ 'type' => 'structure', 'members' => [ 'CustomerManagedKeyEnabled' => [ 'shape' => 'Boolean', ], 'KmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], 'VerifiedAccessSseSpecificationResponse' => [ 'type' => 'structure', 'members' => [ 'CustomerManagedKeyEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'customerManagedKeyEnabled', ], 'KmsKeyArn' => [ 'shape' => 'KmsKeyArn', 'locationName' => 'kmsKeyArn', ], ], ], 'VerifiedAccessTrustProvider' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProviderId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessTrustProviderId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'TrustProviderType' => [ 'shape' => 'TrustProviderType', 'locationName' => 'trustProviderType', ], 'UserTrustProviderType' => [ 'shape' => 'UserTrustProviderType', 'locationName' => 'userTrustProviderType', ], 'DeviceTrustProviderType' => [ 'shape' => 'DeviceTrustProviderType', 'locationName' => 'deviceTrustProviderType', ], 'OidcOptions' => [ 'shape' => 'OidcOptions', 'locationName' => 'oidcOptions', ], 'DeviceOptions' => [ 'shape' => 'DeviceOptions', 'locationName' => 'deviceOptions', ], 'PolicyReferenceName' => [ 'shape' => 'String', 'locationName' => 'policyReferenceName', ], 'CreationTime' => [ 'shape' => 'String', 'locationName' => 'creationTime', ], 'LastUpdatedTime' => [ 'shape' => 'String', 'locationName' => 'lastUpdatedTime', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'SseSpecification' => [ 'shape' => 'VerifiedAccessSseSpecificationResponse', 'locationName' => 'sseSpecification', ], 'NativeApplicationOidcOptions' => [ 'shape' => 'NativeApplicationOidcOptions', 'locationName' => 'nativeApplicationOidcOptions', ], ], ], 'VerifiedAccessTrustProviderCondensed' => [ 'type' => 'structure', 'members' => [ 'VerifiedAccessTrustProviderId' => [ 'shape' => 'String', 'locationName' => 'verifiedAccessTrustProviderId', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'TrustProviderType' => [ 'shape' => 'TrustProviderType', 'locationName' => 'trustProviderType', ], 'UserTrustProviderType' => [ 'shape' => 'UserTrustProviderType', 'locationName' => 'userTrustProviderType', ], 'DeviceTrustProviderType' => [ 'shape' => 'DeviceTrustProviderType', 'locationName' => 'deviceTrustProviderType', ], ], ], 'VerifiedAccessTrustProviderCondensedList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessTrustProviderCondensed', 'locationName' => 'item', ], ], 'VerifiedAccessTrustProviderId' => [ 'type' => 'string', ], 'VerifiedAccessTrustProviderIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessTrustProviderId', 'locationName' => 'item', ], ], 'VerifiedAccessTrustProviderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VerifiedAccessTrustProvider', 'locationName' => 'item', ], ], 'VersionDescription' => [ 'type' => 'string', 'max' => 255, 'min' => 0, ], 'VersionStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'item', ], ], 'VgwTelemetry' => [ 'type' => 'structure', 'members' => [ 'AcceptedRouteCount' => [ 'shape' => 'Integer', 'locationName' => 'acceptedRouteCount', ], 'LastStatusChange' => [ 'shape' => 'DateTime', 'locationName' => 'lastStatusChange', ], 'OutsideIpAddress' => [ 'shape' => 'String', 'locationName' => 'outsideIpAddress', ], 'Status' => [ 'shape' => 'TelemetryStatus', 'locationName' => 'status', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'CertificateArn' => [ 'shape' => 'String', 'locationName' => 'certificateArn', ], ], ], 'VgwTelemetryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VgwTelemetry', 'locationName' => 'item', ], ], 'VirtualizationType' => [ 'type' => 'string', 'enum' => [ 'hvm', 'paravirtual', ], ], 'VirtualizationTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VirtualizationType', 'locationName' => 'item', ], ], 'VirtualizationTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'VirtualizationType', 'locationName' => 'item', ], 'max' => 2, 'min' => 0, ], 'Volume' => [ 'type' => 'structure', 'members' => [ 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'SourceVolumeId' => [ 'shape' => 'String', 'locationName' => 'sourceVolumeId', ], 'Iops' => [ 'shape' => 'Integer', 'locationName' => 'iops', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'volumeType', ], 'FastRestored' => [ 'shape' => 'Boolean', 'locationName' => 'fastRestored', ], 'MultiAttachEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'multiAttachEnabled', ], 'Throughput' => [ 'shape' => 'Integer', 'locationName' => 'throughput', ], 'SseType' => [ 'shape' => 'SSEType', 'locationName' => 'sseType', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], 'VolumeInitializationRate' => [ 'shape' => 'Integer', 'locationName' => 'volumeInitializationRate', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'Size' => [ 'shape' => 'Integer', 'locationName' => 'size', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'State' => [ 'shape' => 'VolumeState', 'locationName' => 'status', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'Attachments' => [ 'shape' => 'VolumeAttachmentList', 'locationName' => 'attachmentSet', ], 'Encrypted' => [ 'shape' => 'Boolean', 'locationName' => 'encrypted', ], 'KmsKeyId' => [ 'shape' => 'String', 'locationName' => 'kmsKeyId', ], ], ], 'VolumeAttachment' => [ 'type' => 'structure', 'members' => [ 'DeleteOnTermination' => [ 'shape' => 'Boolean', 'locationName' => 'deleteOnTermination', ], 'AssociatedResource' => [ 'shape' => 'String', 'locationName' => 'associatedResource', ], 'InstanceOwningService' => [ 'shape' => 'String', 'locationName' => 'instanceOwningService', ], 'EbsCardIndex' => [ 'shape' => 'Integer', 'locationName' => 'ebsCardIndex', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], 'Device' => [ 'shape' => 'String', 'locationName' => 'device', ], 'State' => [ 'shape' => 'VolumeAttachmentState', 'locationName' => 'status', ], 'AttachTime' => [ 'shape' => 'DateTime', 'locationName' => 'attachTime', ], ], ], 'VolumeAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeAttachment', 'locationName' => 'item', ], ], 'VolumeAttachmentState' => [ 'type' => 'string', 'enum' => [ 'attaching', 'attached', 'detaching', 'detached', 'busy', ], ], 'VolumeAttributeName' => [ 'type' => 'string', 'enum' => [ 'autoEnableIO', 'productCodes', ], ], 'VolumeDetail' => [ 'type' => 'structure', 'required' => [ 'Size', ], 'members' => [ 'Size' => [ 'shape' => 'Long', 'locationName' => 'size', ], ], ], 'VolumeId' => [ 'type' => 'string', ], 'VolumeIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeId', 'locationName' => 'VolumeId', ], ], 'VolumeIdWithResolver' => [ 'type' => 'string', ], 'VolumeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Volume', 'locationName' => 'item', ], ], 'VolumeModification' => [ 'type' => 'structure', 'members' => [ 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'ModificationState' => [ 'shape' => 'VolumeModificationState', 'locationName' => 'modificationState', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], 'TargetSize' => [ 'shape' => 'Integer', 'locationName' => 'targetSize', ], 'TargetIops' => [ 'shape' => 'Integer', 'locationName' => 'targetIops', ], 'TargetVolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'targetVolumeType', ], 'TargetThroughput' => [ 'shape' => 'Integer', 'locationName' => 'targetThroughput', ], 'TargetMultiAttachEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'targetMultiAttachEnabled', ], 'OriginalSize' => [ 'shape' => 'Integer', 'locationName' => 'originalSize', ], 'OriginalIops' => [ 'shape' => 'Integer', 'locationName' => 'originalIops', ], 'OriginalVolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'originalVolumeType', ], 'OriginalThroughput' => [ 'shape' => 'Integer', 'locationName' => 'originalThroughput', ], 'OriginalMultiAttachEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'originalMultiAttachEnabled', ], 'Progress' => [ 'shape' => 'Long', 'locationName' => 'progress', ], 'StartTime' => [ 'shape' => 'DateTime', 'locationName' => 'startTime', ], 'EndTime' => [ 'shape' => 'DateTime', 'locationName' => 'endTime', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], ], ], 'VolumeModificationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeModification', 'locationName' => 'item', ], ], 'VolumeModificationState' => [ 'type' => 'string', 'enum' => [ 'modifying', 'optimizing', 'completed', 'failed', ], ], 'VolumeRecycleBinInfo' => [ 'type' => 'structure', 'members' => [ 'VolumeId' => [ 'shape' => 'VolumeId', 'locationName' => 'volumeId', ], 'VolumeType' => [ 'shape' => 'VolumeType', 'locationName' => 'volumeType', ], 'State' => [ 'shape' => 'VolumeState', 'locationName' => 'state', ], 'Size' => [ 'shape' => 'Integer', 'locationName' => 'size', ], 'Iops' => [ 'shape' => 'Integer', 'locationName' => 'iops', ], 'Throughput' => [ 'shape' => 'Integer', 'locationName' => 'throughput', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'SourceVolumeId' => [ 'shape' => 'String', 'locationName' => 'sourceVolumeId', ], 'SnapshotId' => [ 'shape' => 'String', 'locationName' => 'snapshotId', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], 'CreateTime' => [ 'shape' => 'DateTime', 'locationName' => 'createTime', ], 'RecycleBinEnterTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'recycleBinEnterTime', ], 'RecycleBinExitTime' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'recycleBinExitTime', ], ], ], 'VolumeRecycleBinInfoList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeRecycleBinInfo', 'locationName' => 'item', ], ], 'VolumeState' => [ 'type' => 'string', 'enum' => [ 'creating', 'available', 'in-use', 'deleting', 'deleted', 'error', ], ], 'VolumeStatusAction' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'String', 'locationName' => 'code', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'EventId' => [ 'shape' => 'String', 'locationName' => 'eventId', ], 'EventType' => [ 'shape' => 'String', 'locationName' => 'eventType', ], ], ], 'VolumeStatusActionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeStatusAction', 'locationName' => 'item', ], ], 'VolumeStatusAttachmentStatus' => [ 'type' => 'structure', 'members' => [ 'IoPerformance' => [ 'shape' => 'String', 'locationName' => 'ioPerformance', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], ], ], 'VolumeStatusAttachmentStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeStatusAttachmentStatus', 'locationName' => 'item', ], ], 'VolumeStatusDetails' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'VolumeStatusName', 'locationName' => 'name', ], 'Status' => [ 'shape' => 'String', 'locationName' => 'status', ], ], ], 'VolumeStatusDetailsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeStatusDetails', 'locationName' => 'item', ], ], 'VolumeStatusEvent' => [ 'type' => 'structure', 'members' => [ 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'EventId' => [ 'shape' => 'String', 'locationName' => 'eventId', ], 'EventType' => [ 'shape' => 'String', 'locationName' => 'eventType', ], 'NotAfter' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'notAfter', ], 'NotBefore' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'notBefore', ], 'InstanceId' => [ 'shape' => 'String', 'locationName' => 'instanceId', ], ], ], 'VolumeStatusEventsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeStatusEvent', 'locationName' => 'item', ], ], 'VolumeStatusInfo' => [ 'type' => 'structure', 'members' => [ 'Details' => [ 'shape' => 'VolumeStatusDetailsList', 'locationName' => 'details', ], 'Status' => [ 'shape' => 'VolumeStatusInfoStatus', 'locationName' => 'status', ], ], ], 'VolumeStatusInfoStatus' => [ 'type' => 'string', 'enum' => [ 'ok', 'impaired', 'insufficient-data', 'warning', ], ], 'VolumeStatusItem' => [ 'type' => 'structure', 'members' => [ 'Actions' => [ 'shape' => 'VolumeStatusActionsList', 'locationName' => 'actionsSet', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'OutpostArn' => [ 'shape' => 'String', 'locationName' => 'outpostArn', ], 'Events' => [ 'shape' => 'VolumeStatusEventsList', 'locationName' => 'eventsSet', ], 'VolumeId' => [ 'shape' => 'String', 'locationName' => 'volumeId', ], 'VolumeStatus' => [ 'shape' => 'VolumeStatusInfo', 'locationName' => 'volumeStatus', ], 'AttachmentStatuses' => [ 'shape' => 'VolumeStatusAttachmentStatusList', 'locationName' => 'attachmentStatuses', ], 'InitializationStatusDetails' => [ 'shape' => 'InitializationStatusDetails', 'locationName' => 'initializationStatusDetails', ], 'AvailabilityZoneId' => [ 'shape' => 'String', 'locationName' => 'availabilityZoneId', ], 'Operator' => [ 'shape' => 'OperatorResponse', 'locationName' => 'operator', ], ], ], 'VolumeStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeStatusItem', 'locationName' => 'item', ], ], 'VolumeStatusName' => [ 'type' => 'string', 'enum' => [ 'io-enabled', 'io-performance', 'initialization-state', ], ], 'VolumeType' => [ 'type' => 'string', 'enum' => [ 'standard', 'io1', 'io2', 'gp2', 'sc1', 'st1', 'gp3', ], ], 'Vpc' => [ 'type' => 'structure', 'members' => [ 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'InstanceTenancy' => [ 'shape' => 'Tenancy', 'locationName' => 'instanceTenancy', ], 'Ipv6CidrBlockAssociationSet' => [ 'shape' => 'VpcIpv6CidrBlockAssociationSet', 'locationName' => 'ipv6CidrBlockAssociationSet', ], 'CidrBlockAssociationSet' => [ 'shape' => 'VpcCidrBlockAssociationSet', 'locationName' => 'cidrBlockAssociationSet', ], 'IsDefault' => [ 'shape' => 'Boolean', 'locationName' => 'isDefault', ], 'EncryptionControl' => [ 'shape' => 'VpcEncryptionControl', 'locationName' => 'encryptionControl', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'BlockPublicAccessStates' => [ 'shape' => 'BlockPublicAccessStates', 'locationName' => 'blockPublicAccessStates', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'State' => [ 'shape' => 'VpcState', 'locationName' => 'state', ], 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'DhcpOptionsId' => [ 'shape' => 'String', 'locationName' => 'dhcpOptionsId', ], ], ], 'VpcAttachment' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'State' => [ 'shape' => 'AttachmentStatus', 'locationName' => 'state', ], ], ], 'VpcAttachmentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcAttachment', 'locationName' => 'item', ], ], 'VpcAttributeName' => [ 'type' => 'string', 'enum' => [ 'enableDnsSupport', 'enableDnsHostnames', 'enableNetworkAddressUsageMetrics', ], ], 'VpcBlockPublicAccessExclusion' => [ 'type' => 'structure', 'members' => [ 'ExclusionId' => [ 'shape' => 'VpcBlockPublicAccessExclusionId', 'locationName' => 'exclusionId', ], 'InternetGatewayExclusionMode' => [ 'shape' => 'InternetGatewayExclusionMode', 'locationName' => 'internetGatewayExclusionMode', ], 'ResourceArn' => [ 'shape' => 'ResourceArn', 'locationName' => 'resourceArn', ], 'State' => [ 'shape' => 'VpcBlockPublicAccessExclusionState', 'locationName' => 'state', ], 'Reason' => [ 'shape' => 'String', 'locationName' => 'reason', ], 'CreationTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'creationTimestamp', ], 'LastUpdateTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastUpdateTimestamp', ], 'DeletionTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'deletionTimestamp', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'VpcBlockPublicAccessExclusionId' => [ 'type' => 'string', ], 'VpcBlockPublicAccessExclusionIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcBlockPublicAccessExclusionId', 'locationName' => 'item', ], ], 'VpcBlockPublicAccessExclusionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcBlockPublicAccessExclusion', 'locationName' => 'item', ], ], 'VpcBlockPublicAccessExclusionState' => [ 'type' => 'string', 'enum' => [ 'create-in-progress', 'create-complete', 'create-failed', 'update-in-progress', 'update-complete', 'update-failed', 'delete-in-progress', 'delete-complete', 'disable-in-progress', 'disable-complete', ], ], 'VpcBlockPublicAccessExclusionsAllowed' => [ 'type' => 'string', 'enum' => [ 'allowed', 'not-allowed', ], ], 'VpcBlockPublicAccessOptions' => [ 'type' => 'structure', 'members' => [ 'AwsAccountId' => [ 'shape' => 'String', 'locationName' => 'awsAccountId', ], 'AwsRegion' => [ 'shape' => 'String', 'locationName' => 'awsRegion', ], 'State' => [ 'shape' => 'VpcBlockPublicAccessState', 'locationName' => 'state', ], 'InternetGatewayBlockMode' => [ 'shape' => 'InternetGatewayBlockMode', 'locationName' => 'internetGatewayBlockMode', ], 'Reason' => [ 'shape' => 'String', 'locationName' => 'reason', ], 'LastUpdateTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'lastUpdateTimestamp', ], 'ManagedBy' => [ 'shape' => 'ManagedBy', 'locationName' => 'managedBy', ], 'ExclusionsAllowed' => [ 'shape' => 'VpcBlockPublicAccessExclusionsAllowed', 'locationName' => 'exclusionsAllowed', ], ], ], 'VpcBlockPublicAccessState' => [ 'type' => 'string', 'enum' => [ 'default-state', 'update-in-progress', 'update-complete', ], ], 'VpcCidrAssociationId' => [ 'type' => 'string', ], 'VpcCidrBlockAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'CidrBlockState' => [ 'shape' => 'VpcCidrBlockState', 'locationName' => 'cidrBlockState', ], ], ], 'VpcCidrBlockAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcCidrBlockAssociation', 'locationName' => 'item', ], ], 'VpcCidrBlockState' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'VpcCidrBlockStateCode', 'locationName' => 'state', ], 'StatusMessage' => [ 'shape' => 'String', 'locationName' => 'statusMessage', ], ], ], 'VpcCidrBlockStateCode' => [ 'type' => 'string', 'enum' => [ 'associating', 'associated', 'disassociating', 'disassociated', 'failing', 'failed', ], ], 'VpcClassicLink' => [ 'type' => 'structure', 'members' => [ 'ClassicLinkEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'classicLinkEnabled', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], ], ], 'VpcClassicLinkIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcId', 'locationName' => 'VpcId', ], ], 'VpcClassicLinkList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcClassicLink', 'locationName' => 'item', ], ], 'VpcEncryptionControl' => [ 'type' => 'structure', 'members' => [ 'VpcId' => [ 'shape' => 'VpcId', 'locationName' => 'vpcId', ], 'VpcEncryptionControlId' => [ 'shape' => 'VpcEncryptionControlId', 'locationName' => 'vpcEncryptionControlId', ], 'Mode' => [ 'shape' => 'VpcEncryptionControlMode', 'locationName' => 'mode', ], 'State' => [ 'shape' => 'VpcEncryptionControlState', 'locationName' => 'state', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], 'ResourceExclusions' => [ 'shape' => 'VpcEncryptionControlExclusions', 'locationName' => 'resourceExclusions', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'VpcEncryptionControlConfiguration' => [ 'type' => 'structure', 'required' => [ 'Mode', ], 'members' => [ 'Mode' => [ 'shape' => 'VpcEncryptionControlMode', ], 'InternetGatewayExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'EgressOnlyInternetGatewayExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'NatGatewayExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VirtualPrivateGatewayExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VpcPeeringExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'LambdaExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'VpcLatticeExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], 'ElasticFileSystemExclusion' => [ 'shape' => 'VpcEncryptionControlExclusionStateInput', ], ], ], 'VpcEncryptionControlExclusion' => [ 'type' => 'structure', 'members' => [ 'State' => [ 'shape' => 'VpcEncryptionControlExclusionState', 'locationName' => 'state', ], 'StateMessage' => [ 'shape' => 'String', 'locationName' => 'stateMessage', ], ], ], 'VpcEncryptionControlExclusionState' => [ 'type' => 'string', 'enum' => [ 'enabling', 'enabled', 'disabling', 'disabled', ], ], 'VpcEncryptionControlExclusionStateInput' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'VpcEncryptionControlExclusions' => [ 'type' => 'structure', 'members' => [ 'InternetGateway' => [ 'shape' => 'VpcEncryptionControlExclusion', 'locationName' => 'internetGateway', ], 'EgressOnlyInternetGateway' => [ 'shape' => 'VpcEncryptionControlExclusion', 'locationName' => 'egressOnlyInternetGateway', ], 'NatGateway' => [ 'shape' => 'VpcEncryptionControlExclusion', 'locationName' => 'natGateway', ], 'VirtualPrivateGateway' => [ 'shape' => 'VpcEncryptionControlExclusion', 'locationName' => 'virtualPrivateGateway', ], 'VpcPeering' => [ 'shape' => 'VpcEncryptionControlExclusion', 'locationName' => 'vpcPeering', ], 'Lambda' => [ 'shape' => 'VpcEncryptionControlExclusion', 'locationName' => 'lambda', ], 'VpcLattice' => [ 'shape' => 'VpcEncryptionControlExclusion', 'locationName' => 'vpcLattice', ], 'ElasticFileSystem' => [ 'shape' => 'VpcEncryptionControlExclusion', 'locationName' => 'elasticFileSystem', ], ], ], 'VpcEncryptionControlId' => [ 'type' => 'string', ], 'VpcEncryptionControlIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEncryptionControlId', 'locationName' => 'item', ], ], 'VpcEncryptionControlList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEncryptionControl', 'locationName' => 'item', ], ], 'VpcEncryptionControlMode' => [ 'type' => 'string', 'enum' => [ 'monitor', 'enforce', ], ], 'VpcEncryptionControlState' => [ 'type' => 'string', 'enum' => [ 'enforce-in-progress', 'monitor-in-progress', 'enforce-failed', 'monitor-failed', 'deleting', 'deleted', 'available', 'creating', 'delete-failed', ], ], 'VpcEncryptionNonCompliantResource' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', 'locationName' => 'id', ], 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], 'Description' => [ 'shape' => 'String', 'locationName' => 'description', ], 'IsExcludable' => [ 'shape' => 'Boolean', 'locationName' => 'isExcludable', ], ], ], 'VpcEncryptionNonCompliantResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEncryptionNonCompliantResource', 'locationName' => 'item', ], ], 'VpcEndpoint' => [ 'type' => 'structure', 'members' => [ 'VpcEndpointId' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointId', ], 'VpcEndpointType' => [ 'shape' => 'VpcEndpointType', 'locationName' => 'vpcEndpointType', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'ServiceName' => [ 'shape' => 'String', 'locationName' => 'serviceName', ], 'State' => [ 'shape' => 'State', 'locationName' => 'state', ], 'PolicyDocument' => [ 'shape' => 'String', 'locationName' => 'policyDocument', ], 'RouteTableIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'routeTableIdSet', ], 'SubnetIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'subnetIdSet', ], 'Groups' => [ 'shape' => 'GroupIdentifierSet', 'locationName' => 'groupSet', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', 'locationName' => 'ipAddressType', ], 'DnsOptions' => [ 'shape' => 'DnsOptions', 'locationName' => 'dnsOptions', ], 'PrivateDnsEnabled' => [ 'shape' => 'Boolean', 'locationName' => 'privateDnsEnabled', ], 'RequesterManaged' => [ 'shape' => 'Boolean', 'locationName' => 'requesterManaged', ], 'NetworkInterfaceIds' => [ 'shape' => 'ValueStringList', 'locationName' => 'networkInterfaceIdSet', ], 'DnsEntries' => [ 'shape' => 'DnsEntrySet', 'locationName' => 'dnsEntrySet', ], 'CreationTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'creationTimestamp', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'LastError' => [ 'shape' => 'LastError', 'locationName' => 'lastError', ], 'Ipv4Prefixes' => [ 'shape' => 'SubnetIpPrefixesList', 'locationName' => 'ipv4PrefixSet', ], 'Ipv6Prefixes' => [ 'shape' => 'SubnetIpPrefixesList', 'locationName' => 'ipv6PrefixSet', ], 'FailureReason' => [ 'shape' => 'String', 'locationName' => 'failureReason', ], 'ServiceNetworkArn' => [ 'shape' => 'ServiceNetworkArn', 'locationName' => 'serviceNetworkArn', ], 'ResourceConfigurationArn' => [ 'shape' => 'ResourceConfigurationArn', 'locationName' => 'resourceConfigurationArn', ], 'ServiceRegion' => [ 'shape' => 'String', 'locationName' => 'serviceRegion', ], 'PayerResponsibilities' => [ 'shape' => 'PayerResponsibilitySet', 'locationName' => 'payerResponsibilitySet', ], ], ], 'VpcEndpointAssociation' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', 'locationName' => 'id', ], 'VpcEndpointId' => [ 'shape' => 'VpcEndpointId', 'locationName' => 'vpcEndpointId', ], 'ServiceNetworkArn' => [ 'shape' => 'ServiceNetworkArn', 'locationName' => 'serviceNetworkArn', ], 'ServiceNetworkName' => [ 'shape' => 'String', 'locationName' => 'serviceNetworkName', ], 'AssociatedResourceAccessibility' => [ 'shape' => 'String', 'locationName' => 'associatedResourceAccessibility', ], 'FailureReason' => [ 'shape' => 'String', 'locationName' => 'failureReason', ], 'FailureCode' => [ 'shape' => 'String', 'locationName' => 'failureCode', ], 'DnsEntry' => [ 'shape' => 'DnsEntry', 'locationName' => 'dnsEntry', ], 'PrivateDnsEntry' => [ 'shape' => 'DnsEntry', 'locationName' => 'privateDnsEntry', ], 'AssociatedResourceArn' => [ 'shape' => 'String', 'locationName' => 'associatedResourceArn', ], 'ResourceConfigurationGroupArn' => [ 'shape' => 'String', 'locationName' => 'resourceConfigurationGroupArn', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'VpcEndpointAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEndpointAssociation', 'locationName' => 'item', ], ], 'VpcEndpointConnection' => [ 'type' => 'structure', 'members' => [ 'ServiceId' => [ 'shape' => 'String', 'locationName' => 'serviceId', ], 'VpcEndpointId' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointId', ], 'VpcEndpointOwner' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointOwner', ], 'VpcEndpointState' => [ 'shape' => 'State', 'locationName' => 'vpcEndpointState', ], 'CreationTimestamp' => [ 'shape' => 'MillisecondDateTime', 'locationName' => 'creationTimestamp', ], 'DnsEntries' => [ 'shape' => 'DnsEntrySet', 'locationName' => 'dnsEntrySet', ], 'NetworkLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'networkLoadBalancerArnSet', ], 'GatewayLoadBalancerArns' => [ 'shape' => 'ValueStringList', 'locationName' => 'gatewayLoadBalancerArnSet', ], 'IpAddressType' => [ 'shape' => 'IpAddressType', 'locationName' => 'ipAddressType', ], 'VpcEndpointConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointConnectionId', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcEndpointRegion' => [ 'shape' => 'String', 'locationName' => 'vpcEndpointRegion', ], 'PayerResponsibilities' => [ 'shape' => 'PayerResponsibilitySet', 'locationName' => 'payerResponsibilitySet', ], ], ], 'VpcEndpointConnectionSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEndpointConnection', 'locationName' => 'item', ], ], 'VpcEndpointId' => [ 'type' => 'string', ], 'VpcEndpointIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEndpointId', 'locationName' => 'item', ], ], 'VpcEndpointRouteTableIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RouteTableId', 'locationName' => 'item', ], ], 'VpcEndpointSecurityGroupIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecurityGroupId', 'locationName' => 'item', ], ], 'VpcEndpointServiceId' => [ 'type' => 'string', ], 'VpcEndpointServiceIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEndpointServiceId', 'locationName' => 'item', ], ], 'VpcEndpointSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcEndpoint', 'locationName' => 'item', ], ], 'VpcEndpointSubnetIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubnetId', 'locationName' => 'item', ], ], 'VpcEndpointType' => [ 'type' => 'string', 'enum' => [ 'Interface', 'Gateway', 'GatewayLoadBalancer', 'Resource', 'ServiceNetwork', ], ], 'VpcFlowLogId' => [ 'type' => 'string', ], 'VpcId' => [ 'type' => 'string', ], 'VpcIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcId', 'locationName' => 'VpcId', ], ], 'VpcIpv6CidrBlockAssociation' => [ 'type' => 'structure', 'members' => [ 'AssociationId' => [ 'shape' => 'String', 'locationName' => 'associationId', ], 'Ipv6CidrBlock' => [ 'shape' => 'String', 'locationName' => 'ipv6CidrBlock', ], 'Ipv6CidrBlockState' => [ 'shape' => 'VpcCidrBlockState', 'locationName' => 'ipv6CidrBlockState', ], 'NetworkBorderGroup' => [ 'shape' => 'String', 'locationName' => 'networkBorderGroup', ], 'Ipv6Pool' => [ 'shape' => 'String', 'locationName' => 'ipv6Pool', ], 'Ipv6AddressAttribute' => [ 'shape' => 'Ipv6AddressAttribute', 'locationName' => 'ipv6AddressAttribute', ], 'IpSource' => [ 'shape' => 'IpSource', 'locationName' => 'ipSource', ], ], ], 'VpcIpv6CidrBlockAssociationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcIpv6CidrBlockAssociation', 'locationName' => 'item', ], ], 'VpcList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Vpc', 'locationName' => 'item', ], ], 'VpcPeeringConnection' => [ 'type' => 'structure', 'members' => [ 'AccepterVpcInfo' => [ 'shape' => 'VpcPeeringConnectionVpcInfo', 'locationName' => 'accepterVpcInfo', ], 'ExpirationTime' => [ 'shape' => 'DateTime', 'locationName' => 'expirationTime', ], 'RequesterVpcInfo' => [ 'shape' => 'VpcPeeringConnectionVpcInfo', 'locationName' => 'requesterVpcInfo', ], 'Status' => [ 'shape' => 'VpcPeeringConnectionStateReason', 'locationName' => 'status', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpcPeeringConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpcPeeringConnectionId', ], ], ], 'VpcPeeringConnectionId' => [ 'type' => 'string', ], 'VpcPeeringConnectionIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcPeeringConnectionId', 'locationName' => 'item', ], ], 'VpcPeeringConnectionIdWithResolver' => [ 'type' => 'string', ], 'VpcPeeringConnectionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcPeeringConnection', 'locationName' => 'item', ], ], 'VpcPeeringConnectionOptionsDescription' => [ 'type' => 'structure', 'members' => [ 'AllowDnsResolutionFromRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowDnsResolutionFromRemoteVpc', ], 'AllowEgressFromLocalClassicLinkToRemoteVpc' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalClassicLinkToRemoteVpc', ], 'AllowEgressFromLocalVpcToRemoteClassicLink' => [ 'shape' => 'Boolean', 'locationName' => 'allowEgressFromLocalVpcToRemoteClassicLink', ], ], ], 'VpcPeeringConnectionStateReason' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'VpcPeeringConnectionStateReasonCode', 'locationName' => 'code', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'VpcPeeringConnectionStateReasonCode' => [ 'type' => 'string', 'enum' => [ 'initiating-request', 'pending-acceptance', 'active', 'deleted', 'rejected', 'failed', 'expired', 'provisioning', 'deleting', ], ], 'VpcPeeringConnectionVpcInfo' => [ 'type' => 'structure', 'members' => [ 'CidrBlock' => [ 'shape' => 'String', 'locationName' => 'cidrBlock', ], 'Ipv6CidrBlockSet' => [ 'shape' => 'Ipv6CidrBlockSet', 'locationName' => 'ipv6CidrBlockSet', ], 'CidrBlockSet' => [ 'shape' => 'CidrBlockSet', 'locationName' => 'cidrBlockSet', ], 'OwnerId' => [ 'shape' => 'String', 'locationName' => 'ownerId', ], 'PeeringOptions' => [ 'shape' => 'VpcPeeringConnectionOptionsDescription', 'locationName' => 'peeringOptions', ], 'VpcId' => [ 'shape' => 'String', 'locationName' => 'vpcId', ], 'Region' => [ 'shape' => 'String', 'locationName' => 'region', ], ], ], 'VpcState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', ], ], 'VpcTenancy' => [ 'type' => 'string', 'enum' => [ 'default', ], ], 'VpnConcentrator' => [ 'type' => 'structure', 'members' => [ 'VpnConcentratorId' => [ 'shape' => 'String', 'locationName' => 'vpnConcentratorId', ], 'State' => [ 'shape' => 'String', 'locationName' => 'state', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'TransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayAttachmentId', ], 'Type' => [ 'shape' => 'String', 'locationName' => 'type', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], ], ], 'VpnConcentratorId' => [ 'type' => 'string', ], 'VpnConcentratorIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnConcentratorId', 'locationName' => 'VpnConcentratorId', ], ], 'VpnConcentratorList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnConcentrator', 'locationName' => 'item', ], ], 'VpnConcentratorType' => [ 'type' => 'string', 'enum' => [ 'ipsec.1', ], ], 'VpnConnection' => [ 'type' => 'structure', 'members' => [ 'Category' => [ 'shape' => 'String', 'locationName' => 'category', ], 'TransitGatewayId' => [ 'shape' => 'String', 'locationName' => 'transitGatewayId', ], 'VpnConcentratorId' => [ 'shape' => 'String', 'locationName' => 'vpnConcentratorId', ], 'CoreNetworkArn' => [ 'shape' => 'String', 'locationName' => 'coreNetworkArn', ], 'CoreNetworkAttachmentArn' => [ 'shape' => 'String', 'locationName' => 'coreNetworkAttachmentArn', ], 'GatewayAssociationState' => [ 'shape' => 'GatewayAssociationState', 'locationName' => 'gatewayAssociationState', ], 'Options' => [ 'shape' => 'VpnConnectionOptions', 'locationName' => 'options', ], 'Routes' => [ 'shape' => 'VpnStaticRouteList', 'locationName' => 'routes', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VgwTelemetry' => [ 'shape' => 'VgwTelemetryList', 'locationName' => 'vgwTelemetry', ], 'PreSharedKeyArn' => [ 'shape' => 'String', 'locationName' => 'preSharedKeyArn', ], 'VpnConnectionId' => [ 'shape' => 'String', 'locationName' => 'vpnConnectionId', ], 'State' => [ 'shape' => 'VpnState', 'locationName' => 'state', ], 'CustomerGatewayConfiguration' => [ 'shape' => 'customerGatewayConfiguration', 'locationName' => 'customerGatewayConfiguration', ], 'Type' => [ 'shape' => 'GatewayType', 'locationName' => 'type', ], 'CustomerGatewayId' => [ 'shape' => 'String', 'locationName' => 'customerGatewayId', ], 'VpnGatewayId' => [ 'shape' => 'String', 'locationName' => 'vpnGatewayId', ], ], ], 'VpnConnectionDeviceSampleConfiguration' => [ 'type' => 'string', 'sensitive' => true, ], 'VpnConnectionDeviceType' => [ 'type' => 'structure', 'members' => [ 'VpnConnectionDeviceTypeId' => [ 'shape' => 'String', 'locationName' => 'vpnConnectionDeviceTypeId', ], 'Vendor' => [ 'shape' => 'String', 'locationName' => 'vendor', ], 'Platform' => [ 'shape' => 'String', 'locationName' => 'platform', ], 'Software' => [ 'shape' => 'String', 'locationName' => 'software', ], ], ], 'VpnConnectionDeviceTypeId' => [ 'type' => 'string', ], 'VpnConnectionDeviceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnConnectionDeviceType', 'locationName' => 'item', ], ], 'VpnConnectionId' => [ 'type' => 'string', ], 'VpnConnectionIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnConnectionId', 'locationName' => 'VpnConnectionId', ], ], 'VpnConnectionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnConnection', 'locationName' => 'item', ], ], 'VpnConnectionOptions' => [ 'type' => 'structure', 'members' => [ 'EnableAcceleration' => [ 'shape' => 'Boolean', 'locationName' => 'enableAcceleration', ], 'StaticRoutesOnly' => [ 'shape' => 'Boolean', 'locationName' => 'staticRoutesOnly', ], 'LocalIpv4NetworkCidr' => [ 'shape' => 'String', 'locationName' => 'localIpv4NetworkCidr', ], 'RemoteIpv4NetworkCidr' => [ 'shape' => 'String', 'locationName' => 'remoteIpv4NetworkCidr', ], 'LocalIpv6NetworkCidr' => [ 'shape' => 'String', 'locationName' => 'localIpv6NetworkCidr', ], 'RemoteIpv6NetworkCidr' => [ 'shape' => 'String', 'locationName' => 'remoteIpv6NetworkCidr', ], 'OutsideIpAddressType' => [ 'shape' => 'String', 'locationName' => 'outsideIpAddressType', ], 'TransportTransitGatewayAttachmentId' => [ 'shape' => 'String', 'locationName' => 'transportTransitGatewayAttachmentId', ], 'TunnelInsideIpVersion' => [ 'shape' => 'TunnelInsideIpVersion', 'locationName' => 'tunnelInsideIpVersion', ], 'TunnelOptions' => [ 'shape' => 'TunnelOptionsList', 'locationName' => 'tunnelOptionSet', ], 'TunnelBandwidth' => [ 'shape' => 'VpnTunnelBandwidth', 'locationName' => 'tunnelBandwidth', ], ], ], 'VpnConnectionOptionsSpecification' => [ 'type' => 'structure', 'members' => [ 'EnableAcceleration' => [ 'shape' => 'Boolean', ], 'TunnelInsideIpVersion' => [ 'shape' => 'TunnelInsideIpVersion', ], 'TunnelOptions' => [ 'shape' => 'VpnTunnelOptionsSpecificationsList', ], 'LocalIpv4NetworkCidr' => [ 'shape' => 'String', ], 'RemoteIpv4NetworkCidr' => [ 'shape' => 'String', ], 'LocalIpv6NetworkCidr' => [ 'shape' => 'String', ], 'RemoteIpv6NetworkCidr' => [ 'shape' => 'String', ], 'OutsideIpAddressType' => [ 'shape' => 'String', ], 'TransportTransitGatewayAttachmentId' => [ 'shape' => 'TransitGatewayAttachmentId', ], 'TunnelBandwidth' => [ 'shape' => 'VpnTunnelBandwidth', ], 'StaticRoutesOnly' => [ 'shape' => 'Boolean', 'locationName' => 'staticRoutesOnly', ], ], ], 'VpnEcmpSupportValue' => [ 'type' => 'string', 'enum' => [ 'enable', 'disable', ], ], 'VpnGateway' => [ 'type' => 'structure', 'members' => [ 'AmazonSideAsn' => [ 'shape' => 'Long', 'locationName' => 'amazonSideAsn', ], 'Tags' => [ 'shape' => 'TagList', 'locationName' => 'tagSet', ], 'VpnGatewayId' => [ 'shape' => 'String', 'locationName' => 'vpnGatewayId', ], 'State' => [ 'shape' => 'VpnState', 'locationName' => 'state', ], 'Type' => [ 'shape' => 'GatewayType', 'locationName' => 'type', ], 'AvailabilityZone' => [ 'shape' => 'String', 'locationName' => 'availabilityZone', ], 'VpcAttachments' => [ 'shape' => 'VpcAttachmentList', 'locationName' => 'attachments', ], ], ], 'VpnGatewayId' => [ 'type' => 'string', ], 'VpnGatewayIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnGatewayId', 'locationName' => 'VpnGatewayId', ], ], 'VpnGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnGateway', 'locationName' => 'item', ], ], 'VpnProtocol' => [ 'type' => 'string', 'enum' => [ 'openvpn', ], ], 'VpnState' => [ 'type' => 'string', 'enum' => [ 'pending', 'available', 'deleting', 'deleted', ], ], 'VpnStaticRoute' => [ 'type' => 'structure', 'members' => [ 'DestinationCidrBlock' => [ 'shape' => 'String', 'locationName' => 'destinationCidrBlock', ], 'Source' => [ 'shape' => 'VpnStaticRouteSource', 'locationName' => 'source', ], 'State' => [ 'shape' => 'VpnState', 'locationName' => 'state', ], ], ], 'VpnStaticRouteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnStaticRoute', 'locationName' => 'item', ], ], 'VpnStaticRouteSource' => [ 'type' => 'string', 'enum' => [ 'Static', ], ], 'VpnTunnelBandwidth' => [ 'type' => 'string', 'enum' => [ 'standard', 'large', ], ], 'VpnTunnelLogOptions' => [ 'type' => 'structure', 'members' => [ 'CloudWatchLogOptions' => [ 'shape' => 'CloudWatchLogOptions', 'locationName' => 'cloudWatchLogOptions', ], ], ], 'VpnTunnelLogOptionsSpecification' => [ 'type' => 'structure', 'members' => [ 'CloudWatchLogOptions' => [ 'shape' => 'CloudWatchLogOptionsSpecification', ], ], ], 'VpnTunnelOptionsSpecification' => [ 'type' => 'structure', 'members' => [ 'TunnelInsideCidr' => [ 'shape' => 'String', ], 'TunnelInsideIpv6Cidr' => [ 'shape' => 'String', ], 'PreSharedKey' => [ 'shape' => 'preSharedKey', ], 'Phase1LifetimeSeconds' => [ 'shape' => 'Integer', ], 'Phase2LifetimeSeconds' => [ 'shape' => 'Integer', ], 'RekeyMarginTimeSeconds' => [ 'shape' => 'Integer', ], 'RekeyFuzzPercentage' => [ 'shape' => 'Integer', ], 'ReplayWindowSize' => [ 'shape' => 'Integer', ], 'DPDTimeoutSeconds' => [ 'shape' => 'Integer', ], 'DPDTimeoutAction' => [ 'shape' => 'String', ], 'Phase1EncryptionAlgorithms' => [ 'shape' => 'Phase1EncryptionAlgorithmsRequestList', 'locationName' => 'Phase1EncryptionAlgorithm', ], 'Phase2EncryptionAlgorithms' => [ 'shape' => 'Phase2EncryptionAlgorithmsRequestList', 'locationName' => 'Phase2EncryptionAlgorithm', ], 'Phase1IntegrityAlgorithms' => [ 'shape' => 'Phase1IntegrityAlgorithmsRequestList', 'locationName' => 'Phase1IntegrityAlgorithm', ], 'Phase2IntegrityAlgorithms' => [ 'shape' => 'Phase2IntegrityAlgorithmsRequestList', 'locationName' => 'Phase2IntegrityAlgorithm', ], 'Phase1DHGroupNumbers' => [ 'shape' => 'Phase1DHGroupNumbersRequestList', 'locationName' => 'Phase1DHGroupNumber', ], 'Phase2DHGroupNumbers' => [ 'shape' => 'Phase2DHGroupNumbersRequestList', 'locationName' => 'Phase2DHGroupNumber', ], 'IKEVersions' => [ 'shape' => 'IKEVersionsRequestList', 'locationName' => 'IKEVersion', ], 'StartupAction' => [ 'shape' => 'String', ], 'LogOptions' => [ 'shape' => 'VpnTunnelLogOptionsSpecification', ], 'EnableTunnelLifecycleControl' => [ 'shape' => 'Boolean', ], ], ], 'VpnTunnelOptionsSpecificationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpnTunnelOptionsSpecification', ], ], 'VpnTunnelProvisioningStatus' => [ 'type' => 'string', 'enum' => [ 'available', 'pending', 'failed', ], ], 'WeekDay' => [ 'type' => 'string', 'enum' => [ 'sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', ], ], 'WithdrawByoipCidrRequest' => [ 'type' => 'structure', 'required' => [ 'Cidr', ], 'members' => [ 'Cidr' => [ 'shape' => 'String', ], 'DryRun' => [ 'shape' => 'Boolean', ], ], ], 'WithdrawByoipCidrResult' => [ 'type' => 'structure', 'members' => [ 'ByoipCidr' => [ 'shape' => 'ByoipCidr', 'locationName' => 'byoipCidr', ], ], ], 'Workload' => [ 'type' => 'string', ], 'WorkloadsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Workload', 'locationName' => 'item', ], ], 'ZoneIdStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ZoneId', ], ], 'ZoneNameStringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', 'locationName' => 'ZoneName', ], ], 'customerGatewayConfiguration' => [ 'type' => 'string', 'sensitive' => true, ], 'maxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'preSharedKey' => [ 'type' => 'string', 'sensitive' => true, ], 'scope' => [ 'type' => 'string', 'enum' => [ 'Availability Zone', 'Region', ], ], 'snapshotTierStatusSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'SnapshotTierStatus', 'locationName' => 'item', ], ], 'totalFpgaMemory' => [ 'type' => 'integer', ], 'totalGpuMemory' => [ 'type' => 'integer', ], 'totalInferenceMemory' => [ 'type' => 'integer', ], ],]; diff --git a/vendor/aws/aws-sdk-php/src/data/ecs/2014-11-13/api-2.json.php b/vendor/aws/aws-sdk-php/src/data/ecs/2014-11-13/api-2.json.php index 4772f1a40..1401dc972 100644 --- a/vendor/aws/aws-sdk-php/src/data/ecs/2014-11-13/api-2.json.php +++ b/vendor/aws/aws-sdk-php/src/data/ecs/2014-11-13/api-2.json.php @@ -1,3 +1,3 @@ '2.0', 'metadata' => [ 'apiVersion' => '2014-11-13', 'auth' => [ 'aws.auth#sigv4', ], 'endpointPrefix' => 'ecs', 'jsonVersion' => '1.1', 'protocol' => 'json', 'protocols' => [ 'json', ], 'serviceAbbreviation' => 'Amazon ECS', 'serviceFullName' => 'Amazon EC2 Container Service', 'serviceId' => 'ECS', 'signatureVersion' => 'v4', 'signingName' => 'ecs', 'targetPrefix' => 'AmazonEC2ContainerServiceV20141113', 'uid' => 'ecs-2014-11-13', ], 'operations' => [ 'ContinueServiceDeployment' => [ 'name' => 'ContinueServiceDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ContinueServiceDeploymentRequest', ], 'output' => [ 'shape' => 'ContinueServiceDeploymentResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceDeploymentNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'CreateCapacityProvider' => [ 'name' => 'CreateCapacityProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCapacityProviderRequest', ], 'output' => [ 'shape' => 'CreateCapacityProviderResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'UpdateInProgressException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'idempotent' => true, ], 'CreateCluster' => [ 'name' => 'CreateCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClusterRequest', ], 'output' => [ 'shape' => 'CreateClusterResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NamespaceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'CreateDaemon' => [ 'name' => 'CreateDaemon', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDaemonRequest', ], 'output' => [ 'shape' => 'CreateDaemonResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'CreateExpressGatewayService' => [ 'name' => 'CreateExpressGatewayService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateExpressGatewayServiceRequest', ], 'output' => [ 'shape' => 'CreateExpressGatewayServiceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'PlatformTaskDefinitionIncompatibilityException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'CreateService' => [ 'name' => 'CreateService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateServiceRequest', ], 'output' => [ 'shape' => 'CreateServiceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'NamespaceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'PlatformTaskDefinitionIncompatibilityException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'CreateTaskSet' => [ 'name' => 'CreateTaskSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTaskSetRequest', ], 'output' => [ 'shape' => 'CreateTaskSetResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'NamespaceNotFoundException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'PlatformTaskDefinitionIncompatibilityException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'DeleteAccountSetting' => [ 'name' => 'DeleteAccountSetting', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAccountSettingRequest', ], 'output' => [ 'shape' => 'DeleteAccountSettingResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'DeleteAttributes' => [ 'name' => 'DeleteAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAttributesRequest', ], 'output' => [ 'shape' => 'DeleteAttributesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'TargetNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'DeleteCapacityProvider' => [ 'name' => 'DeleteCapacityProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCapacityProviderRequest', ], 'output' => [ 'shape' => 'DeleteCapacityProviderResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'UpdateInProgressException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'idempotent' => true, ], 'DeleteCluster' => [ 'name' => 'DeleteCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClusterRequest', ], 'output' => [ 'shape' => 'DeleteClusterResponse', ], 'errors' => [ [ 'shape' => 'ClusterContainsContainerInstancesException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ClusterContainsServicesException', ], [ 'shape' => 'ClusterContainsCapacityProviderException', ], [ 'shape' => 'ClusterContainsTasksException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'UpdateInProgressException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'idempotent' => true, ], 'DeleteDaemon' => [ 'name' => 'DeleteDaemon', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDaemonRequest', ], 'output' => [ 'shape' => 'DeleteDaemonResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DaemonNotFoundException', ], [ 'shape' => 'DaemonNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'idempotent' => true, ], 'DeleteDaemonTaskDefinition' => [ 'name' => 'DeleteDaemonTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDaemonTaskDefinitionRequest', ], 'output' => [ 'shape' => 'DeleteDaemonTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'DeleteExpressGatewayService' => [ 'name' => 'DeleteExpressGatewayService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteExpressGatewayServiceRequest', ], 'output' => [ 'shape' => 'DeleteExpressGatewayServiceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'DeleteService' => [ 'name' => 'DeleteService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteServiceRequest', ], 'output' => [ 'shape' => 'DeleteServiceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'idempotent' => true, ], 'DeleteTaskDefinitions' => [ 'name' => 'DeleteTaskDefinitions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTaskDefinitionsRequest', ], 'output' => [ 'shape' => 'DeleteTaskDefinitionsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'DeleteTaskSet' => [ 'name' => 'DeleteTaskSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTaskSetRequest', ], 'output' => [ 'shape' => 'DeleteTaskSetResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TaskSetNotFoundException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'idempotent' => true, ], 'DeregisterContainerInstance' => [ 'name' => 'DeregisterContainerInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterContainerInstanceRequest', ], 'output' => [ 'shape' => 'DeregisterContainerInstanceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'DeregisterTaskDefinition' => [ 'name' => 'DeregisterTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterTaskDefinitionRequest', ], 'output' => [ 'shape' => 'DeregisterTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'DescribeCapacityProviders' => [ 'name' => 'DescribeCapacityProviders', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityProvidersRequest', ], 'output' => [ 'shape' => 'DescribeCapacityProvidersResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'DescribeClusters' => [ 'name' => 'DescribeClusters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClustersRequest', ], 'output' => [ 'shape' => 'DescribeClustersResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'DescribeContainerInstances' => [ 'name' => 'DescribeContainerInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeContainerInstancesRequest', ], 'output' => [ 'shape' => 'DescribeContainerInstancesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'readonly' => true, ], 'DescribeDaemon' => [ 'name' => 'DescribeDaemon', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDaemonRequest', ], 'output' => [ 'shape' => 'DescribeDaemonResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DaemonNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'DescribeDaemonDeployments' => [ 'name' => 'DescribeDaemonDeployments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDaemonDeploymentsRequest', ], 'output' => [ 'shape' => 'DescribeDaemonDeploymentsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'DescribeDaemonRevisions' => [ 'name' => 'DescribeDaemonRevisions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDaemonRevisionsRequest', ], 'output' => [ 'shape' => 'DescribeDaemonRevisionsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'DescribeDaemonTaskDefinition' => [ 'name' => 'DescribeDaemonTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDaemonTaskDefinitionRequest', ], 'output' => [ 'shape' => 'DescribeDaemonTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'DescribeExpressGatewayService' => [ 'name' => 'DescribeExpressGatewayService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeExpressGatewayServiceRequest', ], 'output' => [ 'shape' => 'DescribeExpressGatewayServiceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'DescribeServiceDeployments' => [ 'name' => 'DescribeServiceDeployments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeServiceDeploymentsRequest', ], 'output' => [ 'shape' => 'DescribeServiceDeploymentsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'DescribeServiceRevisions' => [ 'name' => 'DescribeServiceRevisions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeServiceRevisionsRequest', ], 'output' => [ 'shape' => 'DescribeServiceRevisionsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'DescribeServices' => [ 'name' => 'DescribeServices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeServicesRequest', ], 'output' => [ 'shape' => 'DescribeServicesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'readonly' => true, ], 'DescribeTaskDefinition' => [ 'name' => 'DescribeTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTaskDefinitionRequest', ], 'output' => [ 'shape' => 'DescribeTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'DescribeTaskSets' => [ 'name' => 'DescribeTaskSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTaskSetsRequest', ], 'output' => [ 'shape' => 'DescribeTaskSetsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'DescribeTasks' => [ 'name' => 'DescribeTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTasksRequest', ], 'output' => [ 'shape' => 'DescribeTasksResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'readonly' => true, ], 'DiscoverPollEndpoint' => [ 'name' => 'DiscoverPollEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DiscoverPollEndpointRequest', ], 'output' => [ 'shape' => 'DiscoverPollEndpointResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'ExecuteCommand' => [ 'name' => 'ExecuteCommand', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExecuteCommandRequest', ], 'output' => [ 'shape' => 'ExecuteCommandResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'TargetNotConnectedException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'GetTaskProtection' => [ 'name' => 'GetTaskProtection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTaskProtectionRequest', ], 'output' => [ 'shape' => 'GetTaskProtectionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'ListAccountSettings' => [ 'name' => 'ListAccountSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAccountSettingsRequest', ], 'output' => [ 'shape' => 'ListAccountSettingsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'ListAttributes' => [ 'name' => 'ListAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAttributesRequest', ], 'output' => [ 'shape' => 'ListAttributesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'readonly' => true, ], 'ListClusters' => [ 'name' => 'ListClusters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListClustersRequest', ], 'output' => [ 'shape' => 'ListClustersResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'ListContainerInstances' => [ 'name' => 'ListContainerInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListContainerInstancesRequest', ], 'output' => [ 'shape' => 'ListContainerInstancesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'readonly' => true, ], 'ListDaemonDeployments' => [ 'name' => 'ListDaemonDeployments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDaemonDeploymentsRequest', ], 'output' => [ 'shape' => 'ListDaemonDeploymentsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'ListDaemonTaskDefinitions' => [ 'name' => 'ListDaemonTaskDefinitions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDaemonTaskDefinitionsRequest', ], 'output' => [ 'shape' => 'ListDaemonTaskDefinitionsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'ListDaemons' => [ 'name' => 'ListDaemons', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDaemonsRequest', ], 'output' => [ 'shape' => 'ListDaemonsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'ListServiceDeployments' => [ 'name' => 'ListServiceDeployments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListServiceDeploymentsRequest', ], 'output' => [ 'shape' => 'ListServiceDeploymentsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'ListServices' => [ 'name' => 'ListServices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListServicesRequest', ], 'output' => [ 'shape' => 'ListServicesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'readonly' => true, ], 'ListServicesByNamespace' => [ 'name' => 'ListServicesByNamespace', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListServicesByNamespaceRequest', ], 'output' => [ 'shape' => 'ListServicesByNamespaceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NamespaceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'readonly' => true, ], 'ListTaskDefinitionFamilies' => [ 'name' => 'ListTaskDefinitionFamilies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTaskDefinitionFamiliesRequest', ], 'output' => [ 'shape' => 'ListTaskDefinitionFamiliesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'ListTaskDefinitions' => [ 'name' => 'ListTaskDefinitions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTaskDefinitionsRequest', ], 'output' => [ 'shape' => 'ListTaskDefinitionsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'ListTasks' => [ 'name' => 'ListTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTasksRequest', ], 'output' => [ 'shape' => 'ListTasksResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'readonly' => true, ], 'PutAccountSetting' => [ 'name' => 'PutAccountSetting', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutAccountSettingRequest', ], 'output' => [ 'shape' => 'PutAccountSettingResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'PutAccountSettingDefault' => [ 'name' => 'PutAccountSettingDefault', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutAccountSettingDefaultRequest', ], 'output' => [ 'shape' => 'PutAccountSettingDefaultResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'PutAttributes' => [ 'name' => 'PutAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutAttributesRequest', ], 'output' => [ 'shape' => 'PutAttributesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'TargetNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'AttributeLimitExceededException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'PutClusterCapacityProviders' => [ 'name' => 'PutClusterCapacityProviders', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutClusterCapacityProvidersRequest', ], 'output' => [ 'shape' => 'PutClusterCapacityProvidersResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'UpdateInProgressException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'RegisterContainerInstance' => [ 'name' => 'RegisterContainerInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterContainerInstanceRequest', ], 'output' => [ 'shape' => 'RegisterContainerInstanceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'RegisterDaemonTaskDefinition' => [ 'name' => 'RegisterDaemonTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterDaemonTaskDefinitionRequest', ], 'output' => [ 'shape' => 'RegisterDaemonTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'RegisterTaskDefinition' => [ 'name' => 'RegisterTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterTaskDefinitionRequest', ], 'output' => [ 'shape' => 'RegisterTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'RunTask' => [ 'name' => 'RunTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RunTaskRequest', ], 'output' => [ 'shape' => 'RunTaskResponse', ], 'errors' => [ [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'BlockedException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'PlatformTaskDefinitionIncompatibilityException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'StartTask' => [ 'name' => 'StartTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartTaskRequest', ], 'output' => [ 'shape' => 'StartTaskResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NamespaceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'StopServiceDeployment' => [ 'name' => 'StopServiceDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopServiceDeploymentRequest', ], 'output' => [ 'shape' => 'StopServiceDeploymentResponse', ], 'errors' => [ [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceDeploymentNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'StopTask' => [ 'name' => 'StopTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopTaskRequest', ], 'output' => [ 'shape' => 'StopTaskResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'SubmitAttachmentStateChanges' => [ 'name' => 'SubmitAttachmentStateChanges', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SubmitAttachmentStateChangesRequest', ], 'output' => [ 'shape' => 'SubmitAttachmentStateChangesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'SubmitContainerStateChange' => [ 'name' => 'SubmitContainerStateChange', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SubmitContainerStateChangeRequest', ], 'output' => [ 'shape' => 'SubmitContainerStateChangeResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'SubmitTaskStateChange' => [ 'name' => 'SubmitTaskStateChange', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SubmitTaskStateChangeRequest', ], 'output' => [ 'shape' => 'SubmitTaskStateChangeResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'UpdateCapacityProvider' => [ 'name' => 'UpdateCapacityProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateCapacityProviderRequest', ], 'output' => [ 'shape' => 'UpdateCapacityProviderResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'UpdateCluster' => [ 'name' => 'UpdateCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateClusterRequest', ], 'output' => [ 'shape' => 'UpdateClusterResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NamespaceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'UpdateClusterSettings' => [ 'name' => 'UpdateClusterSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateClusterSettingsRequest', ], 'output' => [ 'shape' => 'UpdateClusterSettingsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'UpdateInProgressException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'UpdateContainerAgent' => [ 'name' => 'UpdateContainerAgent', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateContainerAgentRequest', ], 'output' => [ 'shape' => 'UpdateContainerAgentResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoUpdateAvailableException', ], [ 'shape' => 'MissingVersionException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'UpdateInProgressException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'UpdateContainerInstancesState' => [ 'name' => 'UpdateContainerInstancesState', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateContainerInstancesStateRequest', ], 'output' => [ 'shape' => 'UpdateContainerInstancesStateResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'UpdateDaemon' => [ 'name' => 'UpdateDaemon', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDaemonRequest', ], 'output' => [ 'shape' => 'UpdateDaemonResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DaemonNotFoundException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'DaemonNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'UpdateExpressGatewayService' => [ 'name' => 'UpdateExpressGatewayService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateExpressGatewayServiceRequest', ], 'output' => [ 'shape' => 'UpdateExpressGatewayServiceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'UpdateService' => [ 'name' => 'UpdateService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateServiceRequest', ], 'output' => [ 'shape' => 'UpdateServiceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'NamespaceNotFoundException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'PlatformTaskDefinitionIncompatibilityException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'UpdateServicePrimaryTaskSet' => [ 'name' => 'UpdateServicePrimaryTaskSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateServicePrimaryTaskSetRequest', ], 'output' => [ 'shape' => 'UpdateServicePrimaryTaskSetResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TaskSetNotFoundException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'UpdateTaskProtection' => [ 'name' => 'UpdateTaskProtection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTaskProtectionRequest', ], 'output' => [ 'shape' => 'UpdateTaskProtectionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'UpdateTaskSet' => [ 'name' => 'UpdateTaskSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTaskSetRequest', ], 'output' => [ 'shape' => 'UpdateTaskSetResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TaskSetNotFoundException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], ], 'shapes' => [ 'AcceleratorCountRequest' => [ 'type' => 'structure', 'members' => [ 'min' => [ 'shape' => 'BoxedInteger', ], 'max' => [ 'shape' => 'BoxedInteger', ], ], ], 'AcceleratorManufacturer' => [ 'type' => 'string', 'enum' => [ 'amazon-web-services', 'amd', 'nvidia', 'xilinx', 'habana', ], ], 'AcceleratorManufacturerSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AcceleratorManufacturer', ], ], 'AcceleratorName' => [ 'type' => 'string', 'enum' => [ 'a100', 'inferentia', 'k520', 'k80', 'm60', 'radeon-pro-v520', 't4', 'vu9p', 'v100', 'a10g', 'h100', 't4g', ], ], 'AcceleratorNameSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AcceleratorName', ], ], 'AcceleratorTotalMemoryMiBRequest' => [ 'type' => 'structure', 'members' => [ 'min' => [ 'shape' => 'BoxedInteger', ], 'max' => [ 'shape' => 'BoxedInteger', ], ], ], 'AcceleratorType' => [ 'type' => 'string', 'enum' => [ 'gpu', 'fpga', 'inference', ], ], 'AcceleratorTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AcceleratorType', ], ], 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'AccessType' => [ 'type' => 'string', 'enum' => [ 'PUBLIC', 'PRIVATE', ], ], 'AdvancedConfiguration' => [ 'type' => 'structure', 'members' => [ 'alternateTargetGroupArn' => [ 'shape' => 'String', ], 'productionListenerRule' => [ 'shape' => 'String', ], 'testListenerRule' => [ 'shape' => 'String', ], 'roleArn' => [ 'shape' => 'String', ], ], ], 'AgentUpdateStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'STAGING', 'STAGED', 'UPDATING', 'UPDATED', 'FAILED', ], ], 'AllowedInstanceType' => [ 'type' => 'string', 'max' => 30, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\.\\*\\-]+', ], 'AllowedInstanceTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedInstanceType', ], 'max' => 400, 'min' => 0, ], 'ApplicationProtocol' => [ 'type' => 'string', 'enum' => [ 'http', 'http2', 'grpc', ], ], 'AssignPublicIp' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'Attachment' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], 'details' => [ 'shape' => 'AttachmentDetails', ], ], ], 'AttachmentDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyValuePair', ], ], 'AttachmentStateChange' => [ 'type' => 'structure', 'required' => [ 'attachmentArn', 'status', ], 'members' => [ 'attachmentArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], ], ], 'AttachmentStateChanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttachmentStateChange', ], ], 'Attachments' => [ 'type' => 'list', 'member' => [ 'shape' => 'Attachment', ], ], 'Attribute' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], 'targetType' => [ 'shape' => 'TargetType', ], 'targetId' => [ 'shape' => 'String', ], ], ], 'AttributeLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'Attributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'Attribute', ], ], 'AutoRepairActionsStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'AutoRepairConfiguration' => [ 'type' => 'structure', 'members' => [ 'actionsStatus' => [ 'shape' => 'AutoRepairActionsStatus', ], ], ], 'AutoScalingGroupProvider' => [ 'type' => 'structure', 'required' => [ 'autoScalingGroupArn', ], 'members' => [ 'autoScalingGroupArn' => [ 'shape' => 'String', ], 'managedScaling' => [ 'shape' => 'ManagedScaling', ], 'managedTerminationProtection' => [ 'shape' => 'ManagedTerminationProtection', ], 'managedDraining' => [ 'shape' => 'ManagedDraining', ], ], ], 'AutoScalingGroupProviderUpdate' => [ 'type' => 'structure', 'members' => [ 'managedScaling' => [ 'shape' => 'ManagedScaling', ], 'managedTerminationProtection' => [ 'shape' => 'ManagedTerminationProtection', ], 'managedDraining' => [ 'shape' => 'ManagedDraining', ], ], ], 'AvailabilityZoneRebalancing' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'AwsVpcConfiguration' => [ 'type' => 'structure', 'required' => [ 'subnets', ], 'members' => [ 'subnets' => [ 'shape' => 'StringList', ], 'securityGroups' => [ 'shape' => 'StringList', ], 'assignPublicIp' => [ 'shape' => 'AssignPublicIp', ], ], ], 'BareMetal' => [ 'type' => 'string', 'enum' => [ 'included', 'required', 'excluded', ], ], 'BaselineEbsBandwidthMbpsRequest' => [ 'type' => 'structure', 'members' => [ 'min' => [ 'shape' => 'BoxedInteger', ], 'max' => [ 'shape' => 'BoxedInteger', ], ], ], 'BlockedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'Boolean' => [ 'type' => 'boolean', ], 'BoxedBoolean' => [ 'type' => 'boolean', 'box' => true, ], 'BoxedDouble' => [ 'type' => 'double', 'box' => true, ], 'BoxedInteger' => [ 'type' => 'integer', 'box' => true, ], 'BurstablePerformance' => [ 'type' => 'string', 'enum' => [ 'included', 'required', 'excluded', ], ], 'CPUArchitecture' => [ 'type' => 'string', 'enum' => [ 'X86_64', 'ARM64', ], ], 'CanaryConfiguration' => [ 'type' => 'structure', 'members' => [ 'canaryPercent' => [ 'shape' => 'Double', 'box' => true, ], 'canaryBakeTimeInMinutes' => [ 'shape' => 'Integer', 'box' => true, ], ], ], 'CapacityOptionType' => [ 'type' => 'string', 'enum' => [ 'ON_DEMAND', 'SPOT', 'RESERVED', ], ], 'CapacityProvider' => [ 'type' => 'structure', 'members' => [ 'capacityProviderArn' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'CapacityProviderStatus', ], 'autoScalingGroupProvider' => [ 'shape' => 'AutoScalingGroupProvider', ], 'managedInstancesProvider' => [ 'shape' => 'ManagedInstancesProvider', ], 'updateStatus' => [ 'shape' => 'CapacityProviderUpdateStatus', ], 'updateStatusReason' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], 'type' => [ 'shape' => 'CapacityProviderType', ], ], ], 'CapacityProviderField' => [ 'type' => 'string', 'enum' => [ 'TAGS', ], ], 'CapacityProviderFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityProviderField', ], ], 'CapacityProviderStatus' => [ 'type' => 'string', 'enum' => [ 'PROVISIONING', 'ACTIVE', 'DEPROVISIONING', 'INACTIVE', ], ], 'CapacityProviderStrategy' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityProviderStrategyItem', ], ], 'CapacityProviderStrategyItem' => [ 'type' => 'structure', 'required' => [ 'capacityProvider', ], 'members' => [ 'capacityProvider' => [ 'shape' => 'String', ], 'weight' => [ 'shape' => 'CapacityProviderStrategyItemWeight', ], 'base' => [ 'shape' => 'CapacityProviderStrategyItemBase', ], ], ], 'CapacityProviderStrategyItemBase' => [ 'type' => 'integer', 'max' => 100000, 'min' => 0, ], 'CapacityProviderStrategyItemWeight' => [ 'type' => 'integer', 'max' => 1000, 'min' => 0, ], 'CapacityProviderType' => [ 'type' => 'string', 'enum' => [ 'EC2_AUTOSCALING', 'MANAGED_INSTANCES', 'FARGATE', 'FARGATE_SPOT', ], ], 'CapacityProviderUpdateStatus' => [ 'type' => 'string', 'enum' => [ 'CREATE_IN_PROGRESS', 'CREATE_COMPLETE', 'CREATE_FAILED', 'DELETE_IN_PROGRESS', 'DELETE_COMPLETE', 'DELETE_FAILED', 'UPDATE_IN_PROGRESS', 'UPDATE_COMPLETE', 'UPDATE_FAILED', ], ], 'CapacityProviders' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityProvider', ], ], 'CapacityReservationPreference' => [ 'type' => 'string', 'enum' => [ 'RESERVATIONS_ONLY', 'RESERVATIONS_FIRST', 'RESERVATIONS_EXCLUDED', ], ], 'CapacityReservationRequest' => [ 'type' => 'structure', 'members' => [ 'reservationGroupArn' => [ 'shape' => 'String', ], 'reservationPreference' => [ 'shape' => 'CapacityReservationPreference', ], ], ], 'ClientException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'Cluster' => [ 'type' => 'structure', 'members' => [ 'clusterArn' => [ 'shape' => 'String', ], 'clusterName' => [ 'shape' => 'String', ], 'configuration' => [ 'shape' => 'ClusterConfiguration', ], 'status' => [ 'shape' => 'String', ], 'registeredContainerInstancesCount' => [ 'shape' => 'Integer', ], 'runningTasksCount' => [ 'shape' => 'Integer', ], 'pendingTasksCount' => [ 'shape' => 'Integer', ], 'activeServicesCount' => [ 'shape' => 'Integer', ], 'statistics' => [ 'shape' => 'Statistics', ], 'tags' => [ 'shape' => 'Tags', ], 'settings' => [ 'shape' => 'ClusterSettings', ], 'capacityProviders' => [ 'shape' => 'StringList', ], 'defaultCapacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'attachments' => [ 'shape' => 'Attachments', ], 'attachmentsStatus' => [ 'shape' => 'String', ], 'serviceConnectDefaults' => [ 'shape' => 'ClusterServiceConnectDefaults', ], ], ], 'ClusterConfiguration' => [ 'type' => 'structure', 'members' => [ 'executeCommandConfiguration' => [ 'shape' => 'ExecuteCommandConfiguration', ], 'managedStorageConfiguration' => [ 'shape' => 'ManagedStorageConfiguration', ], ], ], 'ClusterContainsCapacityProviderException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ClusterContainsContainerInstancesException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ClusterContainsServicesException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ClusterContainsTasksException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ClusterField' => [ 'type' => 'string', 'enum' => [ 'ATTACHMENTS', 'CONFIGURATIONS', 'SETTINGS', 'STATISTICS', 'TAGS', ], ], 'ClusterFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClusterField', ], ], 'ClusterNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ClusterServiceConnectDefaults' => [ 'type' => 'structure', 'members' => [ 'namespace' => [ 'shape' => 'String', ], ], ], 'ClusterServiceConnectDefaultsRequest' => [ 'type' => 'structure', 'required' => [ 'namespace', ], 'members' => [ 'namespace' => [ 'shape' => 'String', ], ], ], 'ClusterSetting' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ClusterSettingName', ], 'value' => [ 'shape' => 'String', ], ], ], 'ClusterSettingName' => [ 'type' => 'string', 'enum' => [ 'containerInsights', ], ], 'ClusterSettings' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClusterSetting', ], ], 'Clusters' => [ 'type' => 'list', 'member' => [ 'shape' => 'Cluster', ], ], 'Compatibility' => [ 'type' => 'string', 'enum' => [ 'EC2', 'FARGATE', 'EXTERNAL', 'MANAGED_INSTANCES', ], ], 'CompatibilityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Compatibility', ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'resourceIds' => [ 'shape' => 'ResourceIds', ], 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'Connectivity' => [ 'type' => 'string', 'enum' => [ 'CONNECTED', 'DISCONNECTED', ], ], 'Container' => [ 'type' => 'structure', 'members' => [ 'containerArn' => [ 'shape' => 'String', ], 'taskArn' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'String', ], 'image' => [ 'shape' => 'String', ], 'imageDigest' => [ 'shape' => 'String', ], 'runtimeId' => [ 'shape' => 'String', ], 'lastStatus' => [ 'shape' => 'String', ], 'exitCode' => [ 'shape' => 'BoxedInteger', ], 'reason' => [ 'shape' => 'String', ], 'networkBindings' => [ 'shape' => 'NetworkBindings', ], 'networkInterfaces' => [ 'shape' => 'NetworkInterfaces', ], 'healthStatus' => [ 'shape' => 'HealthStatus', ], 'managedAgents' => [ 'shape' => 'ManagedAgents', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'memoryReservation' => [ 'shape' => 'String', ], 'gpuIds' => [ 'shape' => 'GpuIds', ], 'neuronDeviceIds' => [ 'shape' => 'NeuronDeviceIds', ], ], ], 'ContainerCondition' => [ 'type' => 'string', 'enum' => [ 'START', 'COMPLETE', 'SUCCESS', 'HEALTHY', ], ], 'ContainerDefinition' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'image' => [ 'shape' => 'String', ], 'repositoryCredentials' => [ 'shape' => 'RepositoryCredentials', ], 'cpu' => [ 'shape' => 'Integer', ], 'memory' => [ 'shape' => 'BoxedInteger', ], 'memoryReservation' => [ 'shape' => 'BoxedInteger', ], 'links' => [ 'shape' => 'StringList', ], 'portMappings' => [ 'shape' => 'PortMappingList', ], 'essential' => [ 'shape' => 'BoxedBoolean', ], 'restartPolicy' => [ 'shape' => 'ContainerRestartPolicy', ], 'entryPoint' => [ 'shape' => 'StringList', ], 'command' => [ 'shape' => 'StringList', ], 'environment' => [ 'shape' => 'EnvironmentVariables', ], 'environmentFiles' => [ 'shape' => 'EnvironmentFiles', ], 'mountPoints' => [ 'shape' => 'MountPointList', ], 'volumesFrom' => [ 'shape' => 'VolumeFromList', ], 'linuxParameters' => [ 'shape' => 'LinuxParameters', ], 'secrets' => [ 'shape' => 'SecretList', ], 'dependsOn' => [ 'shape' => 'ContainerDependencies', ], 'startTimeout' => [ 'shape' => 'BoxedInteger', ], 'stopTimeout' => [ 'shape' => 'BoxedInteger', ], 'versionConsistency' => [ 'shape' => 'VersionConsistency', ], 'hostname' => [ 'shape' => 'String', ], 'user' => [ 'shape' => 'String', ], 'workingDirectory' => [ 'shape' => 'String', ], 'disableNetworking' => [ 'shape' => 'BoxedBoolean', ], 'privileged' => [ 'shape' => 'BoxedBoolean', ], 'readonlyRootFilesystem' => [ 'shape' => 'BoxedBoolean', ], 'dnsServers' => [ 'shape' => 'StringList', ], 'dnsSearchDomains' => [ 'shape' => 'StringList', ], 'extraHosts' => [ 'shape' => 'HostEntryList', ], 'dockerSecurityOptions' => [ 'shape' => 'StringList', ], 'interactive' => [ 'shape' => 'BoxedBoolean', ], 'pseudoTerminal' => [ 'shape' => 'BoxedBoolean', ], 'dockerLabels' => [ 'shape' => 'DockerLabelsMap', ], 'ulimits' => [ 'shape' => 'UlimitList', ], 'logConfiguration' => [ 'shape' => 'LogConfiguration', ], 'healthCheck' => [ 'shape' => 'HealthCheck', ], 'systemControls' => [ 'shape' => 'SystemControls', ], 'resourceRequirements' => [ 'shape' => 'ResourceRequirements', ], 'firelensConfiguration' => [ 'shape' => 'FirelensConfiguration', ], 'credentialSpecs' => [ 'shape' => 'StringList', ], ], ], 'ContainerDefinitions' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerDefinition', ], ], 'ContainerDependencies' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerDependency', ], ], 'ContainerDependency' => [ 'type' => 'structure', 'required' => [ 'containerName', 'condition', ], 'members' => [ 'containerName' => [ 'shape' => 'String', ], 'condition' => [ 'shape' => 'ContainerCondition', ], ], ], 'ContainerImage' => [ 'type' => 'structure', 'members' => [ 'containerName' => [ 'shape' => 'String', ], 'imageDigest' => [ 'shape' => 'String', ], 'image' => [ 'shape' => 'String', ], ], ], 'ContainerImages' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerImage', ], ], 'ContainerInstance' => [ 'type' => 'structure', 'members' => [ 'containerInstanceArn' => [ 'shape' => 'String', ], 'ec2InstanceId' => [ 'shape' => 'String', ], 'capacityProviderName' => [ 'shape' => 'String', ], 'version' => [ 'shape' => 'Long', ], 'versionInfo' => [ 'shape' => 'VersionInfo', ], 'remainingResources' => [ 'shape' => 'Resources', ], 'registeredResources' => [ 'shape' => 'Resources', ], 'status' => [ 'shape' => 'String', ], 'statusReason' => [ 'shape' => 'String', ], 'agentConnected' => [ 'shape' => 'Boolean', ], 'runningTasksCount' => [ 'shape' => 'Integer', ], 'pendingTasksCount' => [ 'shape' => 'Integer', ], 'agentUpdateStatus' => [ 'shape' => 'AgentUpdateStatus', ], 'attributes' => [ 'shape' => 'Attributes', ], 'registeredAt' => [ 'shape' => 'Timestamp', ], 'attachments' => [ 'shape' => 'Attachments', ], 'tags' => [ 'shape' => 'Tags', ], 'healthStatus' => [ 'shape' => 'ContainerInstanceHealthStatus', ], ], ], 'ContainerInstanceField' => [ 'type' => 'string', 'enum' => [ 'TAGS', 'CONTAINER_INSTANCE_HEALTH', ], ], 'ContainerInstanceFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerInstanceField', ], ], 'ContainerInstanceHealthStatus' => [ 'type' => 'structure', 'members' => [ 'overallStatus' => [ 'shape' => 'InstanceHealthCheckState', ], 'details' => [ 'shape' => 'InstanceHealthCheckResultList', ], ], ], 'ContainerInstanceStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DRAINING', 'REGISTERING', 'DEREGISTERING', 'REGISTRATION_FAILED', ], ], 'ContainerInstances' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerInstance', ], ], 'ContainerOverride' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'command' => [ 'shape' => 'StringList', ], 'environment' => [ 'shape' => 'EnvironmentVariables', ], 'environmentFiles' => [ 'shape' => 'EnvironmentFiles', ], 'cpu' => [ 'shape' => 'BoxedInteger', ], 'memory' => [ 'shape' => 'BoxedInteger', ], 'memoryReservation' => [ 'shape' => 'BoxedInteger', ], 'resourceRequirements' => [ 'shape' => 'ResourceRequirements', ], ], ], 'ContainerOverrides' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerOverride', ], ], 'ContainerRestartPolicy' => [ 'type' => 'structure', 'required' => [ 'enabled', ], 'members' => [ 'enabled' => [ 'shape' => 'BoxedBoolean', ], 'ignoredExitCodes' => [ 'shape' => 'IntegerList', ], 'restartAttemptPeriod' => [ 'shape' => 'BoxedInteger', ], ], ], 'ContainerStateChange' => [ 'type' => 'structure', 'members' => [ 'containerName' => [ 'shape' => 'String', ], 'imageDigest' => [ 'shape' => 'String', ], 'runtimeId' => [ 'shape' => 'String', ], 'exitCode' => [ 'shape' => 'BoxedInteger', ], 'networkBindings' => [ 'shape' => 'NetworkBindings', ], 'reason' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], ], ], 'ContainerStateChanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerStateChange', ], ], 'Containers' => [ 'type' => 'list', 'member' => [ 'shape' => 'Container', ], ], 'ContinueServiceDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'serviceDeploymentArn', 'hookId', ], 'members' => [ 'serviceDeploymentArn' => [ 'shape' => 'String', ], 'hookId' => [ 'shape' => 'String', ], 'action' => [ 'shape' => 'DeploymentLifecycleHookAction', ], ], ], 'ContinueServiceDeploymentResponse' => [ 'type' => 'structure', 'members' => [ 'serviceDeploymentArn' => [ 'shape' => 'String', ], ], ], 'CpuManufacturer' => [ 'type' => 'string', 'enum' => [ 'intel', 'amd', 'amazon-web-services', ], ], 'CpuManufacturerSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CpuManufacturer', ], ], 'CreateCapacityProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], 'autoScalingGroupProvider' => [ 'shape' => 'AutoScalingGroupProvider', ], 'managedInstancesProvider' => [ 'shape' => 'CreateManagedInstancesProviderConfiguration', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'CreateCapacityProviderResponse' => [ 'type' => 'structure', 'members' => [ 'capacityProvider' => [ 'shape' => 'CapacityProvider', ], ], ], 'CreateClusterRequest' => [ 'type' => 'structure', 'members' => [ 'clusterName' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], 'settings' => [ 'shape' => 'ClusterSettings', ], 'configuration' => [ 'shape' => 'ClusterConfiguration', ], 'capacityProviders' => [ 'shape' => 'StringList', ], 'defaultCapacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'serviceConnectDefaults' => [ 'shape' => 'ClusterServiceConnectDefaultsRequest', ], ], ], 'CreateClusterResponse' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'Cluster', ], ], ], 'CreateDaemonRequest' => [ 'type' => 'structure', 'required' => [ 'daemonName', 'daemonTaskDefinitionArn', 'capacityProviderArns', ], 'members' => [ 'daemonName' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'daemonTaskDefinitionArn' => [ 'shape' => 'String', ], 'capacityProviderArns' => [ 'shape' => 'StringList', ], 'deploymentConfiguration' => [ 'shape' => 'DaemonDeploymentConfiguration', ], 'tags' => [ 'shape' => 'Tags', ], 'propagateTags' => [ 'shape' => 'DaemonPropagateTags', ], 'enableECSManagedTags' => [ 'shape' => 'Boolean', ], 'enableExecuteCommand' => [ 'shape' => 'Boolean', ], 'clientToken' => [ 'shape' => 'String', ], ], ], 'CreateDaemonResponse' => [ 'type' => 'structure', 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'deploymentArn' => [ 'shape' => 'String', ], ], ], 'CreateExpressGatewayServiceRequest' => [ 'type' => 'structure', 'required' => [ 'infrastructureRoleArn', ], 'members' => [ 'executionRoleArn' => [ 'shape' => 'String', ], 'infrastructureRoleArn' => [ 'shape' => 'String', ], 'serviceName' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], 'healthCheckPath' => [ 'shape' => 'String', ], 'primaryContainer' => [ 'shape' => 'ExpressGatewayContainer', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'ExpressGatewayServiceNetworkConfiguration', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'scalingTarget' => [ 'shape' => 'ExpressGatewayScalingTarget', ], 'tags' => [ 'shape' => 'Tags', ], 'taskDefinitionArn' => [ 'shape' => 'String', ], ], ], 'CreateExpressGatewayServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'ECSExpressGatewayService', ], ], ], 'CreateManagedInstancesProviderConfiguration' => [ 'type' => 'structure', 'required' => [ 'infrastructureRoleArn', 'instanceLaunchTemplate', ], 'members' => [ 'infrastructureRoleArn' => [ 'shape' => 'String', ], 'instanceLaunchTemplate' => [ 'shape' => 'InstanceLaunchTemplate', ], 'propagateTags' => [ 'shape' => 'PropagateMITags', ], 'infrastructureOptimization' => [ 'shape' => 'InfrastructureOptimization', ], 'autoRepairConfiguration' => [ 'shape' => 'AutoRepairConfiguration', ], ], ], 'CreateServiceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceName', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'serviceName' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'availabilityZoneRebalancing' => [ 'shape' => 'AvailabilityZoneRebalancing', ], 'loadBalancers' => [ 'shape' => 'LoadBalancers', ], 'serviceRegistries' => [ 'shape' => 'ServiceRegistries', ], 'desiredCount' => [ 'shape' => 'BoxedInteger', ], 'clientToken' => [ 'shape' => 'String', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'capacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'platformVersion' => [ 'shape' => 'String', ], 'role' => [ 'shape' => 'String', ], 'deploymentConfiguration' => [ 'shape' => 'DeploymentConfiguration', ], 'placementConstraints' => [ 'shape' => 'PlacementConstraints', ], 'placementStrategy' => [ 'shape' => 'PlacementStrategies', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'healthCheckGracePeriodSeconds' => [ 'shape' => 'BoxedInteger', ], 'schedulingStrategy' => [ 'shape' => 'SchedulingStrategy', ], 'deploymentController' => [ 'shape' => 'DeploymentController', ], 'tags' => [ 'shape' => 'Tags', ], 'enableECSManagedTags' => [ 'shape' => 'Boolean', ], 'propagateTags' => [ 'shape' => 'PropagateTags', ], 'enableExecuteCommand' => [ 'shape' => 'Boolean', ], 'serviceConnectConfiguration' => [ 'shape' => 'ServiceConnectConfiguration', ], 'volumeConfigurations' => [ 'shape' => 'ServiceVolumeConfigurations', ], 'vpcLatticeConfigurations' => [ 'shape' => 'VpcLatticeConfigurations', ], 'monitoring' => [ 'shape' => 'MonitoringConfiguration', ], ], ], 'CreateServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'CreateTaskSetRequest' => [ 'type' => 'structure', 'required' => [ 'service', 'cluster', 'taskDefinition', ], 'members' => [ 'service' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], 'externalId' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'loadBalancers' => [ 'shape' => 'LoadBalancers', ], 'serviceRegistries' => [ 'shape' => 'ServiceRegistries', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'capacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'platformVersion' => [ 'shape' => 'String', ], 'scale' => [ 'shape' => 'Scale', ], 'clientToken' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'CreateTaskSetResponse' => [ 'type' => 'structure', 'members' => [ 'taskSet' => [ 'shape' => 'TaskSet', ], ], ], 'CreatedAt' => [ 'type' => 'structure', 'members' => [ 'before' => [ 'shape' => 'Timestamp', ], 'after' => [ 'shape' => 'Timestamp', ], ], ], 'DaemonAlarmConfiguration' => [ 'type' => 'structure', 'members' => [ 'alarmNames' => [ 'shape' => 'StringList', ], 'enable' => [ 'shape' => 'Boolean', ], ], ], 'DaemonCapacityProvider' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'runningCount' => [ 'shape' => 'Integer', ], ], ], 'DaemonCapacityProviderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonCapacityProvider', ], ], 'DaemonCircuitBreaker' => [ 'type' => 'structure', 'members' => [ 'failureCount' => [ 'shape' => 'Integer', ], 'status' => [ 'shape' => 'DaemonDeploymentRollbackMonitorsStatus', ], 'threshold' => [ 'shape' => 'Integer', ], ], ], 'DaemonContainerDefinition' => [ 'type' => 'structure', 'required' => [ 'image', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'image' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'BoxedInteger', ], 'memoryReservation' => [ 'shape' => 'BoxedInteger', ], 'repositoryCredentials' => [ 'shape' => 'RepositoryCredentials', ], 'healthCheck' => [ 'shape' => 'HealthCheck', ], 'cpu' => [ 'shape' => 'Integer', ], 'essential' => [ 'shape' => 'BoxedBoolean', ], 'entryPoint' => [ 'shape' => 'StringList', ], 'command' => [ 'shape' => 'StringList', ], 'workingDirectory' => [ 'shape' => 'String', ], 'environmentFiles' => [ 'shape' => 'EnvironmentFiles', ], 'environment' => [ 'shape' => 'EnvironmentVariables', ], 'secrets' => [ 'shape' => 'SecretList', ], 'readonlyRootFilesystem' => [ 'shape' => 'BoxedBoolean', ], 'mountPoints' => [ 'shape' => 'MountPointList', ], 'logConfiguration' => [ 'shape' => 'LogConfiguration', ], 'firelensConfiguration' => [ 'shape' => 'FirelensConfiguration', ], 'privileged' => [ 'shape' => 'BoxedBoolean', ], 'user' => [ 'shape' => 'String', ], 'ulimits' => [ 'shape' => 'UlimitList', ], 'linuxParameters' => [ 'shape' => 'DaemonLinuxParameters', ], 'dependsOn' => [ 'shape' => 'ContainerDependencies', ], 'startTimeout' => [ 'shape' => 'BoxedInteger', ], 'stopTimeout' => [ 'shape' => 'BoxedInteger', ], 'systemControls' => [ 'shape' => 'SystemControls', ], 'interactive' => [ 'shape' => 'BoxedBoolean', ], 'pseudoTerminal' => [ 'shape' => 'BoxedBoolean', ], 'restartPolicy' => [ 'shape' => 'ContainerRestartPolicy', ], ], ], 'DaemonContainerDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonContainerDefinition', ], ], 'DaemonContainerImage' => [ 'type' => 'structure', 'members' => [ 'containerName' => [ 'shape' => 'String', ], 'imageDigest' => [ 'shape' => 'String', ], 'image' => [ 'shape' => 'String', ], ], ], 'DaemonContainerImages' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonContainerImage', ], ], 'DaemonDeployment' => [ 'type' => 'structure', 'members' => [ 'daemonDeploymentArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonDeploymentStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'targetDaemonRevision' => [ 'shape' => 'DaemonDeploymentRevisionDetail', ], 'sourceDaemonRevisions' => [ 'shape' => 'DaemonDeploymentRevisionDetailList', ], 'circuitBreaker' => [ 'shape' => 'DaemonCircuitBreaker', ], 'alarms' => [ 'shape' => 'DaemonDeploymentAlarms', ], 'rollback' => [ 'shape' => 'DaemonRollback', ], 'deploymentConfiguration' => [ 'shape' => 'DaemonDeploymentConfiguration', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'stoppedAt' => [ 'shape' => 'Timestamp', ], 'finishedAt' => [ 'shape' => 'Timestamp', ], ], ], 'DaemonDeploymentAlarms' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'DaemonDeploymentRollbackMonitorsStatus', ], 'alarmNames' => [ 'shape' => 'StringList', ], 'triggeredAlarmNames' => [ 'shape' => 'StringList', ], ], ], 'DaemonDeploymentCapacityProvider' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'runningInstanceCount' => [ 'shape' => 'BoxedInteger', ], 'drainingInstanceCount' => [ 'shape' => 'BoxedInteger', ], ], ], 'DaemonDeploymentCapacityProviderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonDeploymentCapacityProvider', ], ], 'DaemonDeploymentConfiguration' => [ 'type' => 'structure', 'members' => [ 'drainPercent' => [ 'shape' => 'DaemonDrainPercent', ], 'alarms' => [ 'shape' => 'DaemonAlarmConfiguration', ], 'bakeTimeInMinutes' => [ 'shape' => 'Integer', ], ], ], 'DaemonDeploymentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonDeployment', ], ], 'DaemonDeploymentRevisionDetail' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'capacityProviders' => [ 'shape' => 'DaemonDeploymentCapacityProviderList', ], 'totalRunningInstanceCount' => [ 'shape' => 'BoxedInteger', ], 'totalDrainingInstanceCount' => [ 'shape' => 'BoxedInteger', ], ], ], 'DaemonDeploymentRevisionDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonDeploymentRevisionDetail', ], ], 'DaemonDeploymentRollbackMonitorsStatus' => [ 'type' => 'string', 'enum' => [ 'TRIGGERED', 'MONITORING', 'MONITORING_COMPLETE', 'DISABLED', ], ], 'DaemonDeploymentStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'SUCCESSFUL', 'STOPPED', 'STOP_REQUESTED', 'IN_PROGRESS', 'ROLLBACK_IN_PROGRESS', 'ROLLBACK_SUCCESSFUL', 'ROLLBACK_FAILED', ], ], 'DaemonDeploymentStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonDeploymentStatus', ], ], 'DaemonDeploymentSummary' => [ 'type' => 'structure', 'members' => [ 'daemonDeploymentArn' => [ 'shape' => 'String', ], 'daemonArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonDeploymentStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'targetDaemonRevisionArn' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'stoppedAt' => [ 'shape' => 'Timestamp', ], 'finishedAt' => [ 'shape' => 'Timestamp', ], ], ], 'DaemonDeploymentSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonDeploymentSummary', ], ], 'DaemonDetail' => [ 'type' => 'structure', 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonStatus', ], 'currentRevisions' => [ 'shape' => 'DaemonRevisionDetailList', ], 'deploymentArn' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'DaemonDrainPercent' => [ 'type' => 'double', 'box' => true, 'max' => 100.0, 'min' => 0.0, ], 'DaemonIpcMode' => [ 'type' => 'string', 'enum' => [ 'none', 'shared', ], ], 'DaemonLinuxParameters' => [ 'type' => 'structure', 'members' => [ 'capabilities' => [ 'shape' => 'KernelCapabilities', ], 'devices' => [ 'shape' => 'DevicesList', ], 'initProcessEnabled' => [ 'shape' => 'BoxedBoolean', ], 'tmpfs' => [ 'shape' => 'TmpfsList', ], ], ], 'DaemonNotActiveException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'DaemonNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'DaemonPidMode' => [ 'type' => 'string', 'enum' => [ 'none', 'shared', ], ], 'DaemonPropagateTags' => [ 'type' => 'string', 'enum' => [ 'DAEMON', 'NONE', ], ], 'DaemonRevision' => [ 'type' => 'structure', 'members' => [ 'daemonRevisionArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'daemonArn' => [ 'shape' => 'String', ], 'daemonTaskDefinitionArn' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'containerImages' => [ 'shape' => 'DaemonContainerImages', ], 'propagateTags' => [ 'shape' => 'DaemonPropagateTags', ], 'enableECSManagedTags' => [ 'shape' => 'BoxedBoolean', ], 'enableExecuteCommand' => [ 'shape' => 'BoxedBoolean', ], ], ], 'DaemonRevisionDetail' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'capacityProviders' => [ 'shape' => 'DaemonCapacityProviderList', ], 'totalRunningCount' => [ 'shape' => 'Integer', ], ], ], 'DaemonRevisionDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonRevisionDetail', ], ], 'DaemonRevisions' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonRevision', ], ], 'DaemonRollback' => [ 'type' => 'structure', 'members' => [ 'reason' => [ 'shape' => 'String', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'rollbackTargetDaemonRevisionArn' => [ 'shape' => 'String', ], 'rollbackCapacityProviders' => [ 'shape' => 'StringList', ], ], ], 'DaemonStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETE_IN_PROGRESS', ], ], 'DaemonSummariesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonSummary', ], ], 'DaemonSummary' => [ 'type' => 'structure', 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'DaemonTaskDefinition' => [ 'type' => 'structure', 'members' => [ 'daemonTaskDefinitionArn' => [ 'shape' => 'String', ], 'family' => [ 'shape' => 'String', ], 'revision' => [ 'shape' => 'Integer', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'executionRoleArn' => [ 'shape' => 'String', ], 'containerDefinitions' => [ 'shape' => 'DaemonContainerDefinitionList', ], 'volumes' => [ 'shape' => 'DaemonVolumeList', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonTaskDefinitionStatus', ], 'registeredAt' => [ 'shape' => 'Timestamp', ], 'deleteRequestedAt' => [ 'shape' => 'Timestamp', ], 'registeredBy' => [ 'shape' => 'String', ], 'pidMode' => [ 'shape' => 'DaemonPidMode', ], 'ipcMode' => [ 'shape' => 'DaemonIpcMode', ], ], ], 'DaemonTaskDefinitionRevisionFilter' => [ 'type' => 'string', 'enum' => [ 'LAST_REGISTERED', ], ], 'DaemonTaskDefinitionStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETE_IN_PROGRESS', 'DELETED', ], ], 'DaemonTaskDefinitionStatusFilter' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETE_IN_PROGRESS', 'ALL', ], ], 'DaemonTaskDefinitionSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonTaskDefinitionSummary', ], ], 'DaemonTaskDefinitionSummary' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'registeredAt' => [ 'shape' => 'Timestamp', ], 'registeredBy' => [ 'shape' => 'String', ], 'deleteRequestedAt' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'DaemonTaskDefinitionStatus', ], ], ], 'DaemonVolume' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'host' => [ 'shape' => 'HostVolumeProperties', ], ], ], 'DaemonVolumeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonVolume', ], ], 'DeleteAccountSettingRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'SettingName', ], 'principalArn' => [ 'shape' => 'String', ], ], ], 'DeleteAccountSettingResponse' => [ 'type' => 'structure', 'members' => [ 'setting' => [ 'shape' => 'Setting', ], ], ], 'DeleteAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'attributes', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'attributes' => [ 'shape' => 'Attributes', ], ], ], 'DeleteAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'attributes' => [ 'shape' => 'Attributes', ], ], ], 'DeleteCapacityProviderRequest' => [ 'type' => 'structure', 'required' => [ 'capacityProvider', ], 'members' => [ 'capacityProvider' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], ], ], 'DeleteCapacityProviderResponse' => [ 'type' => 'structure', 'members' => [ 'capacityProvider' => [ 'shape' => 'CapacityProvider', ], ], ], 'DeleteClusterRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], ], ], 'DeleteClusterResponse' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'Cluster', ], ], ], 'DeleteDaemonRequest' => [ 'type' => 'structure', 'required' => [ 'daemonArn', ], 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], ], ], 'DeleteDaemonResponse' => [ 'type' => 'structure', 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'deploymentArn' => [ 'shape' => 'String', ], ], ], 'DeleteDaemonTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'daemonTaskDefinition', ], 'members' => [ 'daemonTaskDefinition' => [ 'shape' => 'String', ], ], ], 'DeleteDaemonTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'daemonTaskDefinitionArn' => [ 'shape' => 'String', ], ], ], 'DeleteExpressGatewayServiceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'String', ], ], ], 'DeleteExpressGatewayServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'ECSExpressGatewayService', ], ], ], 'DeleteServiceRequest' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'force' => [ 'shape' => 'BoxedBoolean', ], ], ], 'DeleteServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'DeleteTaskDefinitionsRequest' => [ 'type' => 'structure', 'required' => [ 'taskDefinitions', ], 'members' => [ 'taskDefinitions' => [ 'shape' => 'StringList', ], ], ], 'DeleteTaskDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'taskDefinitions' => [ 'shape' => 'TaskDefinitionList', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DeleteTaskSetRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'service', 'taskSet', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'taskSet' => [ 'shape' => 'String', ], 'force' => [ 'shape' => 'BoxedBoolean', ], ], ], 'DeleteTaskSetResponse' => [ 'type' => 'structure', 'members' => [ 'taskSet' => [ 'shape' => 'TaskSet', ], ], ], 'Deployment' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'desiredCount' => [ 'shape' => 'Integer', ], 'pendingCount' => [ 'shape' => 'Integer', ], 'runningCount' => [ 'shape' => 'Integer', ], 'failedTasks' => [ 'shape' => 'Integer', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'capacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'platformVersion' => [ 'shape' => 'String', ], 'platformFamily' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'rolloutState' => [ 'shape' => 'DeploymentRolloutState', ], 'rolloutStateReason' => [ 'shape' => 'String', ], 'serviceConnectConfiguration' => [ 'shape' => 'ServiceConnectConfiguration', ], 'serviceConnectResources' => [ 'shape' => 'ServiceConnectServiceResourceList', ], 'volumeConfigurations' => [ 'shape' => 'ServiceVolumeConfigurations', ], 'fargateEphemeralStorage' => [ 'shape' => 'DeploymentEphemeralStorage', ], 'vpcLatticeConfigurations' => [ 'shape' => 'VpcLatticeConfigurations', ], ], ], 'DeploymentAlarms' => [ 'type' => 'structure', 'required' => [ 'alarmNames', 'rollback', 'enable', ], 'members' => [ 'alarmNames' => [ 'shape' => 'StringList', ], 'rollback' => [ 'shape' => 'Boolean', ], 'enable' => [ 'shape' => 'Boolean', ], ], ], 'DeploymentCircuitBreaker' => [ 'type' => 'structure', 'required' => [ 'enable', 'rollback', ], 'members' => [ 'enable' => [ 'shape' => 'Boolean', ], 'rollback' => [ 'shape' => 'Boolean', ], 'resetOnHealthyTask' => [ 'shape' => 'BoxedBoolean', ], 'thresholdConfiguration' => [ 'shape' => 'ThresholdConfiguration', ], ], ], 'DeploymentConfiguration' => [ 'type' => 'structure', 'members' => [ 'deploymentCircuitBreaker' => [ 'shape' => 'DeploymentCircuitBreaker', ], 'maximumPercent' => [ 'shape' => 'BoxedInteger', ], 'minimumHealthyPercent' => [ 'shape' => 'BoxedInteger', ], 'alarms' => [ 'shape' => 'DeploymentAlarms', ], 'strategy' => [ 'shape' => 'DeploymentStrategy', ], 'bakeTimeInMinutes' => [ 'shape' => 'BoxedInteger', ], 'lifecycleHooks' => [ 'shape' => 'DeploymentLifecycleHookList', ], 'linearConfiguration' => [ 'shape' => 'LinearConfiguration', ], 'canaryConfiguration' => [ 'shape' => 'CanaryConfiguration', ], ], ], 'DeploymentController' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'DeploymentControllerType', ], ], ], 'DeploymentControllerType' => [ 'type' => 'string', 'enum' => [ 'ECS', 'CODE_DEPLOY', 'EXTERNAL', ], ], 'DeploymentEphemeralStorage' => [ 'type' => 'structure', 'members' => [ 'kmsKeyId' => [ 'shape' => 'String', ], ], ], 'DeploymentLifecycleHook' => [ 'type' => 'structure', 'members' => [ 'targetType' => [ 'shape' => 'DeploymentLifecycleHookTargetType', ], 'hookTargetArn' => [ 'shape' => 'String', ], 'roleArn' => [ 'shape' => 'IAMRoleArn', ], 'lifecycleStages' => [ 'shape' => 'DeploymentLifecycleHookStageList', ], 'hookDetails' => [ 'shape' => 'HookDetails', ], 'timeoutConfiguration' => [ 'shape' => 'DeploymentLifecycleHookTimeoutConfiguration', ], ], ], 'DeploymentLifecycleHookAction' => [ 'type' => 'string', 'enum' => [ 'ROLLBACK', 'CONTINUE', ], ], 'DeploymentLifecycleHookDetail' => [ 'type' => 'structure', 'members' => [ 'hookId' => [ 'shape' => 'String', ], 'targetType' => [ 'shape' => 'DeploymentLifecycleHookTargetType', ], 'targetArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DeploymentLifecycleHookStatus', ], 'expiresAt' => [ 'shape' => 'Timestamp', ], 'timeoutAction' => [ 'shape' => 'DeploymentLifecycleHookAction', ], ], ], 'DeploymentLifecycleHookDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentLifecycleHookDetail', ], ], 'DeploymentLifecycleHookDuration' => [ 'type' => 'integer', 'box' => true, 'max' => 20160, 'min' => 1, ], 'DeploymentLifecycleHookList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentLifecycleHook', ], ], 'DeploymentLifecycleHookStage' => [ 'type' => 'string', 'enum' => [ 'RECONCILE_SERVICE', 'PRE_SCALE_UP', 'POST_SCALE_UP', 'TEST_TRAFFIC_SHIFT', 'POST_TEST_TRAFFIC_SHIFT', 'PRE_PRODUCTION_TRAFFIC_SHIFT', 'PRODUCTION_TRAFFIC_SHIFT', 'POST_PRODUCTION_TRAFFIC_SHIFT', ], ], 'DeploymentLifecycleHookStageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentLifecycleHookStage', ], ], 'DeploymentLifecycleHookStatus' => [ 'type' => 'string', 'enum' => [ 'AWAITING_ACTION', 'IN_PROGRESS', 'SUCCEEDED', 'FAILED', 'TIMED_OUT', ], ], 'DeploymentLifecycleHookTargetType' => [ 'type' => 'string', 'enum' => [ 'AWS_LAMBDA', 'PAUSE', ], ], 'DeploymentLifecycleHookTimeoutConfiguration' => [ 'type' => 'structure', 'members' => [ 'timeoutInMinutes' => [ 'shape' => 'DeploymentLifecycleHookDuration', ], 'action' => [ 'shape' => 'DeploymentLifecycleHookAction', ], ], ], 'DeploymentRolloutState' => [ 'type' => 'string', 'enum' => [ 'COMPLETED', 'FAILED', 'IN_PROGRESS', ], ], 'DeploymentStrategy' => [ 'type' => 'string', 'enum' => [ 'ROLLING', 'BLUE_GREEN', 'LINEAR', 'CANARY', ], ], 'Deployments' => [ 'type' => 'list', 'member' => [ 'shape' => 'Deployment', ], ], 'DeregisterContainerInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'containerInstance', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'containerInstance' => [ 'shape' => 'String', ], 'force' => [ 'shape' => 'BoxedBoolean', ], ], ], 'DeregisterContainerInstanceResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstance' => [ 'shape' => 'ContainerInstance', ], ], ], 'DeregisterTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'taskDefinition', ], 'members' => [ 'taskDefinition' => [ 'shape' => 'String', ], ], ], 'DeregisterTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'taskDefinition' => [ 'shape' => 'TaskDefinition', ], ], ], 'DescribeCapacityProvidersRequest' => [ 'type' => 'structure', 'members' => [ 'capacityProviders' => [ 'shape' => 'StringList', ], 'cluster' => [ 'shape' => 'String', ], 'include' => [ 'shape' => 'CapacityProviderFieldList', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'DescribeCapacityProvidersResponse' => [ 'type' => 'structure', 'members' => [ 'capacityProviders' => [ 'shape' => 'CapacityProviders', ], 'failures' => [ 'shape' => 'Failures', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'DescribeClustersRequest' => [ 'type' => 'structure', 'members' => [ 'clusters' => [ 'shape' => 'StringList', ], 'include' => [ 'shape' => 'ClusterFieldList', ], ], ], 'DescribeClustersResponse' => [ 'type' => 'structure', 'members' => [ 'clusters' => [ 'shape' => 'Clusters', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeContainerInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'containerInstances', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'containerInstances' => [ 'shape' => 'StringList', ], 'include' => [ 'shape' => 'ContainerInstanceFieldList', ], ], ], 'DescribeContainerInstancesResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstances' => [ 'shape' => 'ContainerInstances', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeDaemonDeploymentsRequest' => [ 'type' => 'structure', 'required' => [ 'daemonDeploymentArns', ], 'members' => [ 'daemonDeploymentArns' => [ 'shape' => 'StringList', ], ], ], 'DescribeDaemonDeploymentsResponse' => [ 'type' => 'structure', 'members' => [ 'failures' => [ 'shape' => 'Failures', ], 'daemonDeployments' => [ 'shape' => 'DaemonDeploymentList', ], ], ], 'DescribeDaemonRequest' => [ 'type' => 'structure', 'required' => [ 'daemonArn', ], 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], ], ], 'DescribeDaemonResponse' => [ 'type' => 'structure', 'members' => [ 'daemon' => [ 'shape' => 'DaemonDetail', ], ], ], 'DescribeDaemonRevisionsRequest' => [ 'type' => 'structure', 'required' => [ 'daemonRevisionArns', ], 'members' => [ 'daemonRevisionArns' => [ 'shape' => 'StringList', ], ], ], 'DescribeDaemonRevisionsResponse' => [ 'type' => 'structure', 'members' => [ 'daemonRevisions' => [ 'shape' => 'DaemonRevisions', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeDaemonTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'daemonTaskDefinition', ], 'members' => [ 'daemonTaskDefinition' => [ 'shape' => 'String', ], ], ], 'DescribeDaemonTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'daemonTaskDefinition' => [ 'shape' => 'DaemonTaskDefinition', ], ], ], 'DescribeExpressGatewayServiceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'String', ], 'include' => [ 'shape' => 'ExpressGatewayServiceIncludeList', ], ], ], 'DescribeExpressGatewayServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'ECSExpressGatewayService', ], ], ], 'DescribeServiceDeploymentsRequest' => [ 'type' => 'structure', 'required' => [ 'serviceDeploymentArns', ], 'members' => [ 'serviceDeploymentArns' => [ 'shape' => 'StringList', ], ], ], 'DescribeServiceDeploymentsResponse' => [ 'type' => 'structure', 'members' => [ 'serviceDeployments' => [ 'shape' => 'ServiceDeployments', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeServiceRevisionsRequest' => [ 'type' => 'structure', 'required' => [ 'serviceRevisionArns', ], 'members' => [ 'serviceRevisionArns' => [ 'shape' => 'StringList', ], ], ], 'DescribeServiceRevisionsResponse' => [ 'type' => 'structure', 'members' => [ 'serviceRevisions' => [ 'shape' => 'ServiceRevisions', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeServicesRequest' => [ 'type' => 'structure', 'required' => [ 'services', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'services' => [ 'shape' => 'StringList', ], 'include' => [ 'shape' => 'ServiceFieldList', ], ], ], 'DescribeServicesResponse' => [ 'type' => 'structure', 'members' => [ 'services' => [ 'shape' => 'Services', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'taskDefinition', ], 'members' => [ 'taskDefinition' => [ 'shape' => 'String', ], 'include' => [ 'shape' => 'TaskDefinitionFieldList', ], ], ], 'DescribeTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'taskDefinition' => [ 'shape' => 'TaskDefinition', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'DescribeTaskSetsRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'service', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'taskSets' => [ 'shape' => 'StringList', ], 'include' => [ 'shape' => 'TaskSetFieldList', ], ], ], 'DescribeTaskSetsResponse' => [ 'type' => 'structure', 'members' => [ 'taskSets' => [ 'shape' => 'TaskSets', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeTasksRequest' => [ 'type' => 'structure', 'required' => [ 'tasks', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'tasks' => [ 'shape' => 'StringList', ], 'include' => [ 'shape' => 'TaskFieldList', ], ], ], 'DescribeTasksResponse' => [ 'type' => 'structure', 'members' => [ 'tasks' => [ 'shape' => 'Tasks', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DesiredStatus' => [ 'type' => 'string', 'enum' => [ 'RUNNING', 'PENDING', 'STOPPED', ], ], 'Device' => [ 'type' => 'structure', 'required' => [ 'hostPath', ], 'members' => [ 'hostPath' => [ 'shape' => 'String', ], 'containerPath' => [ 'shape' => 'String', ], 'permissions' => [ 'shape' => 'DeviceCgroupPermissions', ], ], ], 'DeviceCgroupPermission' => [ 'type' => 'string', 'enum' => [ 'read', 'write', 'mknod', ], ], 'DeviceCgroupPermissions' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceCgroupPermission', ], ], 'DevicesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Device', ], ], 'DiscoverPollEndpointRequest' => [ 'type' => 'structure', 'members' => [ 'containerInstance' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], ], ], 'DiscoverPollEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'endpoint' => [ 'shape' => 'String', ], 'telemetryEndpoint' => [ 'shape' => 'String', ], 'serviceConnectEndpoint' => [ 'shape' => 'String', ], ], ], 'DockerLabelsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'DockerVolumeConfiguration' => [ 'type' => 'structure', 'members' => [ 'scope' => [ 'shape' => 'Scope', ], 'autoprovision' => [ 'shape' => 'BoxedBoolean', ], 'driver' => [ 'shape' => 'String', ], 'driverOpts' => [ 'shape' => 'StringMap', ], 'labels' => [ 'shape' => 'StringMap', ], ], ], 'Double' => [ 'type' => 'double', ], 'Duration' => [ 'type' => 'integer', 'box' => true, 'max' => 2147483647, 'min' => 0, ], 'EBSKMSKeyId' => [ 'type' => 'string', ], 'EBSResourceType' => [ 'type' => 'string', 'enum' => [ 'volume', ], ], 'EBSSnapshotId' => [ 'type' => 'string', ], 'EBSTagSpecification' => [ 'type' => 'structure', 'required' => [ 'resourceType', ], 'members' => [ 'resourceType' => [ 'shape' => 'EBSResourceType', ], 'tags' => [ 'shape' => 'Tags', ], 'propagateTags' => [ 'shape' => 'PropagateTags', ], ], ], 'EBSTagSpecifications' => [ 'type' => 'list', 'member' => [ 'shape' => 'EBSTagSpecification', ], ], 'EBSVolumeType' => [ 'type' => 'string', ], 'ECSExpressGatewayService' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'serviceName' => [ 'shape' => 'String', ], 'serviceArn' => [ 'shape' => 'String', ], 'infrastructureRoleArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ExpressGatewayServiceStatus', ], 'currentDeployment' => [ 'shape' => 'String', ], 'activeConfigurations' => [ 'shape' => 'ExpressGatewayServiceConfigurations', ], 'tags' => [ 'shape' => 'Tags', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ECSManagedResources' => [ 'type' => 'structure', 'members' => [ 'ingressPaths' => [ 'shape' => 'ManagedIngressPaths', ], 'autoScaling' => [ 'shape' => 'ManagedAutoScaling', ], 'metricAlarms' => [ 'shape' => 'ManagedMetricAlarms', ], 'serviceSecurityGroups' => [ 'shape' => 'ManagedSecurityGroups', ], 'logGroups' => [ 'shape' => 'ManagedLogGroups', ], ], ], 'ECSVolumeName' => [ 'type' => 'string', ], 'EFSAuthorizationConfig' => [ 'type' => 'structure', 'members' => [ 'accessPointId' => [ 'shape' => 'String', ], 'iam' => [ 'shape' => 'EFSAuthorizationConfigIAM', ], ], ], 'EFSAuthorizationConfigIAM' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'EFSTransitEncryption' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'EFSVolumeConfiguration' => [ 'type' => 'structure', 'required' => [ 'fileSystemId', ], 'members' => [ 'fileSystemId' => [ 'shape' => 'String', ], 'rootDirectory' => [ 'shape' => 'String', ], 'transitEncryption' => [ 'shape' => 'EFSTransitEncryption', ], 'transitEncryptionPort' => [ 'shape' => 'BoxedInteger', ], 'authorizationConfig' => [ 'shape' => 'EFSAuthorizationConfig', ], ], ], 'EnvironmentFile' => [ 'type' => 'structure', 'required' => [ 'value', 'type', ], 'members' => [ 'value' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'EnvironmentFileType', ], ], ], 'EnvironmentFileType' => [ 'type' => 'string', 'enum' => [ 's3', ], ], 'EnvironmentFiles' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnvironmentFile', ], ], 'EnvironmentVariables' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyValuePair', ], 'sensitive' => true, ], 'EphemeralStorage' => [ 'type' => 'structure', 'required' => [ 'sizeInGiB', ], 'members' => [ 'sizeInGiB' => [ 'shape' => 'Integer', ], ], ], 'ExcludedInstanceType' => [ 'type' => 'string', 'max' => 30, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\.\\*\\-]+', ], 'ExcludedInstanceTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExcludedInstanceType', ], 'max' => 400, 'min' => 0, ], 'ExecuteCommandConfiguration' => [ 'type' => 'structure', 'members' => [ 'kmsKeyId' => [ 'shape' => 'String', ], 'logging' => [ 'shape' => 'ExecuteCommandLogging', ], 'logConfiguration' => [ 'shape' => 'ExecuteCommandLogConfiguration', ], ], ], 'ExecuteCommandLogConfiguration' => [ 'type' => 'structure', 'members' => [ 'cloudWatchLogGroupName' => [ 'shape' => 'String', ], 'cloudWatchEncryptionEnabled' => [ 'shape' => 'Boolean', ], 's3BucketName' => [ 'shape' => 'String', ], 's3EncryptionEnabled' => [ 'shape' => 'Boolean', ], 's3KeyPrefix' => [ 'shape' => 'String', ], ], ], 'ExecuteCommandLogging' => [ 'type' => 'string', 'enum' => [ 'NONE', 'DEFAULT', 'OVERRIDE', ], ], 'ExecuteCommandRequest' => [ 'type' => 'structure', 'required' => [ 'command', 'interactive', 'task', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'container' => [ 'shape' => 'String', ], 'command' => [ 'shape' => 'String', ], 'interactive' => [ 'shape' => 'Boolean', ], 'task' => [ 'shape' => 'String', ], ], ], 'ExecuteCommandResponse' => [ 'type' => 'structure', 'members' => [ 'clusterArn' => [ 'shape' => 'String', ], 'containerArn' => [ 'shape' => 'String', ], 'containerName' => [ 'shape' => 'String', ], 'interactive' => [ 'shape' => 'Boolean', ], 'session' => [ 'shape' => 'Session', ], 'taskArn' => [ 'shape' => 'String', ], ], ], 'ExpressGatewayContainer' => [ 'type' => 'structure', 'required' => [ 'image', ], 'members' => [ 'image' => [ 'shape' => 'String', ], 'containerPort' => [ 'shape' => 'BoxedInteger', ], 'awsLogsConfiguration' => [ 'shape' => 'ExpressGatewayServiceAwsLogsConfiguration', ], 'repositoryCredentials' => [ 'shape' => 'ExpressGatewayRepositoryCredentials', ], 'command' => [ 'shape' => 'StringList', ], 'environment' => [ 'shape' => 'EnvironmentVariables', ], 'secrets' => [ 'shape' => 'SecretList', ], ], ], 'ExpressGatewayRepositoryCredentials' => [ 'type' => 'structure', 'members' => [ 'credentialsParameter' => [ 'shape' => 'String', ], ], ], 'ExpressGatewayScalingTarget' => [ 'type' => 'structure', 'members' => [ 'minTaskCount' => [ 'shape' => 'BoxedInteger', ], 'maxTaskCount' => [ 'shape' => 'BoxedInteger', ], 'autoScalingMetric' => [ 'shape' => 'ExpressGatewayServiceScalingMetric', ], 'autoScalingTargetValue' => [ 'shape' => 'BoxedInteger', ], ], ], 'ExpressGatewayServiceAwsLogsConfiguration' => [ 'type' => 'structure', 'required' => [ 'logGroup', 'logStreamPrefix', ], 'members' => [ 'logGroup' => [ 'shape' => 'String', ], 'logStreamPrefix' => [ 'shape' => 'String', ], ], ], 'ExpressGatewayServiceConfiguration' => [ 'type' => 'structure', 'members' => [ 'serviceRevisionArn' => [ 'shape' => 'String', ], 'executionRoleArn' => [ 'shape' => 'String', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'taskDefinitionArn' => [ 'shape' => 'String', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'ExpressGatewayServiceNetworkConfiguration', ], 'healthCheckPath' => [ 'shape' => 'String', ], 'primaryContainer' => [ 'shape' => 'ExpressGatewayContainer', ], 'scalingTarget' => [ 'shape' => 'ExpressGatewayScalingTarget', ], 'ingressPaths' => [ 'shape' => 'IngressPathSummaries', ], 'createdAt' => [ 'shape' => 'Timestamp', ], ], ], 'ExpressGatewayServiceConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExpressGatewayServiceConfiguration', ], ], 'ExpressGatewayServiceInclude' => [ 'type' => 'string', 'enum' => [ 'TAGS', ], ], 'ExpressGatewayServiceIncludeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExpressGatewayServiceInclude', ], ], 'ExpressGatewayServiceNetworkConfiguration' => [ 'type' => 'structure', 'members' => [ 'securityGroups' => [ 'shape' => 'StringList', ], 'subnets' => [ 'shape' => 'StringList', ], ], ], 'ExpressGatewayServiceScalingMetric' => [ 'type' => 'string', 'enum' => [ 'AVERAGE_CPU', 'AVERAGE_MEMORY', 'REQUEST_COUNT_PER_TARGET', ], ], 'ExpressGatewayServiceStatus' => [ 'type' => 'structure', 'members' => [ 'statusCode' => [ 'shape' => 'ExpressGatewayServiceStatusCode', ], 'statusReason' => [ 'shape' => 'String', ], ], ], 'ExpressGatewayServiceStatusCode' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DRAINING', 'INACTIVE', ], ], 'FSxWindowsFileServerAuthorizationConfig' => [ 'type' => 'structure', 'required' => [ 'credentialsParameter', 'domain', ], 'members' => [ 'credentialsParameter' => [ 'shape' => 'String', ], 'domain' => [ 'shape' => 'String', ], ], ], 'FSxWindowsFileServerVolumeConfiguration' => [ 'type' => 'structure', 'required' => [ 'fileSystemId', 'rootDirectory', 'authorizationConfig', ], 'members' => [ 'fileSystemId' => [ 'shape' => 'String', ], 'rootDirectory' => [ 'shape' => 'String', ], 'authorizationConfig' => [ 'shape' => 'FSxWindowsFileServerAuthorizationConfig', ], ], ], 'Failure' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'reason' => [ 'shape' => 'String', ], 'detail' => [ 'shape' => 'String', ], ], ], 'Failures' => [ 'type' => 'list', 'member' => [ 'shape' => 'Failure', ], ], 'FirelensConfiguration' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'FirelensConfigurationType', ], 'options' => [ 'shape' => 'FirelensConfigurationOptionsMap', ], ], ], 'FirelensConfigurationOptionsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'FirelensConfigurationType' => [ 'type' => 'string', 'enum' => [ 'fluentd', 'fluentbit', ], ], 'GetTaskProtectionRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'tasks' => [ 'shape' => 'StringList', ], ], ], 'GetTaskProtectionResponse' => [ 'type' => 'structure', 'members' => [ 'protectedTasks' => [ 'shape' => 'ProtectedTasks', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'GpuIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'HealthCheck' => [ 'type' => 'structure', 'required' => [ 'command', ], 'members' => [ 'command' => [ 'shape' => 'StringList', ], 'interval' => [ 'shape' => 'BoxedInteger', ], 'timeout' => [ 'shape' => 'BoxedInteger', ], 'retries' => [ 'shape' => 'BoxedInteger', ], 'startPeriod' => [ 'shape' => 'BoxedInteger', ], ], ], 'HealthStatus' => [ 'type' => 'string', 'enum' => [ 'HEALTHY', 'UNHEALTHY', 'UNKNOWN', ], ], 'HookDetails' => [ 'type' => 'structure', 'members' => [], 'document' => true, ], 'HostEntry' => [ 'type' => 'structure', 'required' => [ 'hostname', 'ipAddress', ], 'members' => [ 'hostname' => [ 'shape' => 'String', ], 'ipAddress' => [ 'shape' => 'String', ], ], ], 'HostEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostEntry', ], ], 'HostVolumeProperties' => [ 'type' => 'structure', 'members' => [ 'sourcePath' => [ 'shape' => 'String', ], ], ], 'IAMRoleArn' => [ 'type' => 'string', ], 'InferenceAccelerator' => [ 'type' => 'structure', 'required' => [ 'deviceName', 'deviceType', ], 'members' => [ 'deviceName' => [ 'shape' => 'String', ], 'deviceType' => [ 'shape' => 'String', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This feature is no longer available.', 'deprecatedSince' => '2023-04-15', ], 'InferenceAcceleratorOverride' => [ 'type' => 'structure', 'members' => [ 'deviceName' => [ 'shape' => 'String', ], 'deviceType' => [ 'shape' => 'String', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This feature is no longer available.', 'deprecatedSince' => '2023-04-15', ], 'InferenceAcceleratorOverrides' => [ 'type' => 'list', 'member' => [ 'shape' => 'InferenceAcceleratorOverride', ], 'deprecated' => true, 'deprecatedMessage' => 'This feature is no longer available.', 'deprecatedSince' => '2023-04-15', ], 'InferenceAccelerators' => [ 'type' => 'list', 'member' => [ 'shape' => 'InferenceAccelerator', ], 'deprecated' => true, 'deprecatedMessage' => 'This feature is no longer available.', 'deprecatedSince' => '2023-04-15', ], 'InfrastructureOptimization' => [ 'type' => 'structure', 'members' => [ 'scaleInAfter' => [ 'shape' => 'BoxedInteger', ], ], ], 'IngressPathSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'IngressPathSummary', ], ], 'IngressPathSummary' => [ 'type' => 'structure', 'required' => [ 'accessType', 'endpoint', ], 'members' => [ 'accessType' => [ 'shape' => 'AccessType', ], 'endpoint' => [ 'shape' => 'String', ], ], ], 'InstanceGeneration' => [ 'type' => 'string', 'enum' => [ 'current', 'previous', ], ], 'InstanceGenerationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceGeneration', ], ], 'InstanceHealthCheckResult' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'InstanceHealthCheckType', ], 'status' => [ 'shape' => 'InstanceHealthCheckState', ], 'statusReason' => [ 'shape' => 'String', ], 'lastUpdated' => [ 'shape' => 'Timestamp', ], 'lastStatusChange' => [ 'shape' => 'Timestamp', ], ], ], 'InstanceHealthCheckResultList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceHealthCheckResult', ], ], 'InstanceHealthCheckState' => [ 'type' => 'string', 'enum' => [ 'OK', 'IMPAIRED', 'INSUFFICIENT_DATA', 'INITIALIZING', ], ], 'InstanceHealthCheckType' => [ 'type' => 'string', 'enum' => [ 'CONTAINER_RUNTIME', 'ACCELERATED_COMPUTE', 'DAEMON', ], ], 'InstanceLaunchTemplate' => [ 'type' => 'structure', 'required' => [ 'ec2InstanceProfileArn', 'networkConfiguration', ], 'members' => [ 'ec2InstanceProfileArn' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'ManagedInstancesNetworkConfiguration', ], 'storageConfiguration' => [ 'shape' => 'ManagedInstancesStorageConfiguration', ], 'localStorageConfiguration' => [ 'shape' => 'ManagedInstancesLocalStorageConfiguration', ], 'monitoring' => [ 'shape' => 'ManagedInstancesMonitoringOptions', ], 'capacityOptionType' => [ 'shape' => 'CapacityOptionType', ], 'instanceMetadataTagsPropagation' => [ 'shape' => 'BoxedBoolean', ], 'instanceRequirements' => [ 'shape' => 'InstanceRequirementsRequest', ], 'fipsEnabled' => [ 'shape' => 'BoxedBoolean', ], 'capacityReservations' => [ 'shape' => 'CapacityReservationRequest', ], ], ], 'InstanceLaunchTemplateUpdate' => [ 'type' => 'structure', 'members' => [ 'ec2InstanceProfileArn' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'ManagedInstancesNetworkConfiguration', ], 'storageConfiguration' => [ 'shape' => 'ManagedInstancesStorageConfiguration', ], 'instanceMetadataTagsPropagation' => [ 'shape' => 'BoxedBoolean', ], 'localStorageConfiguration' => [ 'shape' => 'ManagedInstancesLocalStorageConfiguration', ], 'monitoring' => [ 'shape' => 'ManagedInstancesMonitoringOptions', ], 'instanceRequirements' => [ 'shape' => 'InstanceRequirementsRequest', ], 'capacityReservations' => [ 'shape' => 'CapacityReservationRequest', ], ], ], 'InstanceRequirementsRequest' => [ 'type' => 'structure', 'required' => [ 'vCpuCount', 'memoryMiB', ], 'members' => [ 'vCpuCount' => [ 'shape' => 'VCpuCountRangeRequest', ], 'memoryMiB' => [ 'shape' => 'MemoryMiBRequest', ], 'cpuManufacturers' => [ 'shape' => 'CpuManufacturerSet', ], 'memoryGiBPerVCpu' => [ 'shape' => 'MemoryGiBPerVCpuRequest', ], 'excludedInstanceTypes' => [ 'shape' => 'ExcludedInstanceTypeSet', ], 'instanceGenerations' => [ 'shape' => 'InstanceGenerationSet', ], 'spotMaxPricePercentageOverLowestPrice' => [ 'shape' => 'BoxedInteger', ], 'onDemandMaxPricePercentageOverLowestPrice' => [ 'shape' => 'BoxedInteger', ], 'bareMetal' => [ 'shape' => 'BareMetal', ], 'burstablePerformance' => [ 'shape' => 'BurstablePerformance', ], 'requireHibernateSupport' => [ 'shape' => 'BoxedBoolean', ], 'networkInterfaceCount' => [ 'shape' => 'NetworkInterfaceCountRequest', ], 'localStorage' => [ 'shape' => 'LocalStorage', ], 'localStorageTypes' => [ 'shape' => 'LocalStorageTypeSet', ], 'totalLocalStorageGB' => [ 'shape' => 'TotalLocalStorageGBRequest', ], 'baselineEbsBandwidthMbps' => [ 'shape' => 'BaselineEbsBandwidthMbpsRequest', ], 'acceleratorTypes' => [ 'shape' => 'AcceleratorTypeSet', ], 'acceleratorCount' => [ 'shape' => 'AcceleratorCountRequest', ], 'acceleratorManufacturers' => [ 'shape' => 'AcceleratorManufacturerSet', ], 'acceleratorNames' => [ 'shape' => 'AcceleratorNameSet', ], 'acceleratorTotalMemoryMiB' => [ 'shape' => 'AcceleratorTotalMemoryMiBRequest', ], 'networkBandwidthGbps' => [ 'shape' => 'NetworkBandwidthGbpsRequest', ], 'allowedInstanceTypes' => [ 'shape' => 'AllowedInstanceTypeSet', ], 'maxSpotPriceAsPercentageOfOptimalOnDemandPrice' => [ 'shape' => 'BoxedInteger', ], ], ], 'Integer' => [ 'type' => 'integer', ], 'IntegerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BoxedInteger', ], ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'IpcMode' => [ 'type' => 'string', 'enum' => [ 'host', 'task', 'none', ], ], 'KernelCapabilities' => [ 'type' => 'structure', 'members' => [ 'add' => [ 'shape' => 'StringList', ], 'drop' => [ 'shape' => 'StringList', ], ], ], 'KeyValuePair' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], ], 'LaunchType' => [ 'type' => 'string', 'enum' => [ 'EC2', 'FARGATE', 'EXTERNAL', 'MANAGED_INSTANCES', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'LinearConfiguration' => [ 'type' => 'structure', 'members' => [ 'stepPercent' => [ 'shape' => 'Double', 'box' => true, ], 'stepBakeTimeInMinutes' => [ 'shape' => 'Integer', 'box' => true, ], ], ], 'LinuxParameters' => [ 'type' => 'structure', 'members' => [ 'capabilities' => [ 'shape' => 'KernelCapabilities', ], 'devices' => [ 'shape' => 'DevicesList', ], 'initProcessEnabled' => [ 'shape' => 'BoxedBoolean', ], 'sharedMemorySize' => [ 'shape' => 'BoxedInteger', ], 'tmpfs' => [ 'shape' => 'TmpfsList', ], 'maxSwap' => [ 'shape' => 'BoxedInteger', ], 'swappiness' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListAccountSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'SettingName', ], 'value' => [ 'shape' => 'String', ], 'principalArn' => [ 'shape' => 'String', ], 'effectiveSettings' => [ 'shape' => 'Boolean', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'Integer', ], ], ], 'ListAccountSettingsResponse' => [ 'type' => 'structure', 'members' => [ 'settings' => [ 'shape' => 'Settings', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'targetType', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'targetType' => [ 'shape' => 'TargetType', ], 'attributeName' => [ 'shape' => 'String', ], 'attributeValue' => [ 'shape' => 'String', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'attributes' => [ 'shape' => 'Attributes', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListClustersRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListClustersResponse' => [ 'type' => 'structure', 'members' => [ 'clusterArns' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListContainerInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'filter' => [ 'shape' => 'String', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], 'status' => [ 'shape' => 'ContainerInstanceStatus', ], ], ], 'ListContainerInstancesResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstanceArns' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListDaemonDeploymentsRequest' => [ 'type' => 'structure', 'required' => [ 'daemonArn', ], 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonDeploymentStatusList', ], 'createdAt' => [ 'shape' => 'CreatedAt', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListDaemonDeploymentsResponse' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'daemonDeployments' => [ 'shape' => 'DaemonDeploymentSummaryList', ], ], ], 'ListDaemonTaskDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'familyPrefix' => [ 'shape' => 'String', ], 'family' => [ 'shape' => 'String', ], 'revision' => [ 'shape' => 'DaemonTaskDefinitionRevisionFilter', ], 'status' => [ 'shape' => 'DaemonTaskDefinitionStatusFilter', ], 'sort' => [ 'shape' => 'SortOrder', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListDaemonTaskDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'daemonTaskDefinitions' => [ 'shape' => 'DaemonTaskDefinitionSummaries', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListDaemonsRequest' => [ 'type' => 'structure', 'members' => [ 'clusterArn' => [ 'shape' => 'String', ], 'capacityProviderArns' => [ 'shape' => 'StringList', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListDaemonsResponse' => [ 'type' => 'structure', 'members' => [ 'daemonSummariesList' => [ 'shape' => 'DaemonSummariesList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListServiceDeploymentsRequest' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'service' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ServiceDeploymentStatusList', ], 'createdAt' => [ 'shape' => 'CreatedAt', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListServiceDeploymentsResponse' => [ 'type' => 'structure', 'members' => [ 'serviceDeployments' => [ 'shape' => 'ServiceDeploymentsBrief', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListServicesByNamespaceRequest' => [ 'type' => 'structure', 'required' => [ 'namespace', ], 'members' => [ 'namespace' => [ 'shape' => 'String', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListServicesByNamespaceResponse' => [ 'type' => 'structure', 'members' => [ 'serviceArns' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListServicesRequest' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'schedulingStrategy' => [ 'shape' => 'SchedulingStrategy', ], 'resourceManagementType' => [ 'shape' => 'ResourceManagementType', ], ], ], 'ListServicesResponse' => [ 'type' => 'structure', 'members' => [ 'serviceArns' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'String', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'Tags', ], ], ], 'ListTaskDefinitionFamiliesRequest' => [ 'type' => 'structure', 'members' => [ 'familyPrefix' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'TaskDefinitionFamilyStatus', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListTaskDefinitionFamiliesResponse' => [ 'type' => 'structure', 'members' => [ 'families' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListTaskDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'familyPrefix' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'TaskDefinitionStatus', ], 'sort' => [ 'shape' => 'SortOrder', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListTaskDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'taskDefinitionArns' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListTasksRequest' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'containerInstance' => [ 'shape' => 'String', ], 'family' => [ 'shape' => 'String', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], 'startedBy' => [ 'shape' => 'String', ], 'serviceName' => [ 'shape' => 'String', ], 'desiredStatus' => [ 'shape' => 'DesiredStatus', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'daemonName' => [ 'shape' => 'String', ], ], ], 'ListTasksResponse' => [ 'type' => 'structure', 'members' => [ 'taskArns' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'LoadBalancer' => [ 'type' => 'structure', 'members' => [ 'targetGroupArn' => [ 'shape' => 'String', ], 'loadBalancerName' => [ 'shape' => 'String', ], 'containerName' => [ 'shape' => 'String', ], 'containerPort' => [ 'shape' => 'BoxedInteger', ], 'advancedConfiguration' => [ 'shape' => 'AdvancedConfiguration', ], ], ], 'LoadBalancers' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadBalancer', ], ], 'LocalStorage' => [ 'type' => 'string', 'enum' => [ 'included', 'required', 'excluded', ], ], 'LocalStorageType' => [ 'type' => 'string', 'enum' => [ 'hdd', 'ssd', ], ], 'LocalStorageTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalStorageType', ], ], 'LogConfiguration' => [ 'type' => 'structure', 'required' => [ 'logDriver', ], 'members' => [ 'logDriver' => [ 'shape' => 'LogDriver', ], 'options' => [ 'shape' => 'LogConfigurationOptionsMap', ], 'secretOptions' => [ 'shape' => 'SecretList', ], ], ], 'LogConfigurationOptionsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'LogDriver' => [ 'type' => 'string', 'enum' => [ 'json-file', 'syslog', 'journald', 'gelf', 'fluentd', 'awslogs', 'splunk', 'awsfirelens', ], ], 'Long' => [ 'type' => 'long', ], 'ManagedAgent' => [ 'type' => 'structure', 'members' => [ 'lastStartedAt' => [ 'shape' => 'Timestamp', ], 'name' => [ 'shape' => 'ManagedAgentName', ], 'reason' => [ 'shape' => 'String', ], 'lastStatus' => [ 'shape' => 'String', ], ], ], 'ManagedAgentName' => [ 'type' => 'string', 'enum' => [ 'ExecuteCommandAgent', ], ], 'ManagedAgentStateChange' => [ 'type' => 'structure', 'required' => [ 'containerName', 'managedAgentName', 'status', ], 'members' => [ 'containerName' => [ 'shape' => 'String', ], 'managedAgentName' => [ 'shape' => 'ManagedAgentName', ], 'status' => [ 'shape' => 'String', ], 'reason' => [ 'shape' => 'String', ], ], ], 'ManagedAgentStateChanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedAgentStateChange', ], ], 'ManagedAgents' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedAgent', ], ], 'ManagedApplicationAutoScalingPolicies' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedApplicationAutoScalingPolicy', ], ], 'ManagedApplicationAutoScalingPolicy' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', 'policyType', 'targetValue', 'metric', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'policyType' => [ 'shape' => 'String', ], 'targetValue' => [ 'shape' => 'Double', ], 'metric' => [ 'shape' => 'String', ], ], ], 'ManagedAutoScaling' => [ 'type' => 'structure', 'members' => [ 'scalableTarget' => [ 'shape' => 'ManagedScalableTarget', ], 'applicationAutoScalingPolicies' => [ 'shape' => 'ManagedApplicationAutoScalingPolicies', ], ], ], 'ManagedCertificate' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', 'domainName', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'domainName' => [ 'shape' => 'String', ], ], ], 'ManagedDraining' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'ManagedIngressPath' => [ 'type' => 'structure', 'required' => [ 'accessType', 'endpoint', ], 'members' => [ 'accessType' => [ 'shape' => 'AccessType', ], 'endpoint' => [ 'shape' => 'String', ], 'loadBalancer' => [ 'shape' => 'ManagedLoadBalancer', ], 'loadBalancerSecurityGroups' => [ 'shape' => 'ManagedSecurityGroups', ], 'certificate' => [ 'shape' => 'ManagedCertificate', ], 'listener' => [ 'shape' => 'ManagedListener', ], 'rule' => [ 'shape' => 'ManagedListenerRule', ], 'targetGroups' => [ 'shape' => 'ManagedTargetGroups', ], ], ], 'ManagedIngressPaths' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedIngressPath', ], ], 'ManagedInstancesLocalStorageConfiguration' => [ 'type' => 'structure', 'members' => [ 'useLocalStorage' => [ 'shape' => 'Boolean', ], ], ], 'ManagedInstancesMonitoringOptions' => [ 'type' => 'string', 'enum' => [ 'BASIC', 'DETAILED', ], ], 'ManagedInstancesNetworkConfiguration' => [ 'type' => 'structure', 'members' => [ 'subnets' => [ 'shape' => 'StringList', ], 'securityGroups' => [ 'shape' => 'StringList', ], ], ], 'ManagedInstancesProvider' => [ 'type' => 'structure', 'members' => [ 'infrastructureRoleArn' => [ 'shape' => 'String', ], 'instanceLaunchTemplate' => [ 'shape' => 'InstanceLaunchTemplate', ], 'propagateTags' => [ 'shape' => 'PropagateMITags', ], 'infrastructureOptimization' => [ 'shape' => 'InfrastructureOptimization', ], 'autoRepairConfiguration' => [ 'shape' => 'AutoRepairConfiguration', ], ], ], 'ManagedInstancesStorageConfiguration' => [ 'type' => 'structure', 'members' => [ 'storageSizeGiB' => [ 'shape' => 'TaskVolumeStorageGiB', ], ], ], 'ManagedListener' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ManagedListenerRule' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ManagedLoadBalancer' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', 'scheme', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'scheme' => [ 'shape' => 'String', ], 'subnetIds' => [ 'shape' => 'StringList', ], 'securityGroupIds' => [ 'shape' => 'StringList', ], ], ], 'ManagedLogGroup' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', 'logGroupName', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'logGroupName' => [ 'shape' => 'String', ], ], ], 'ManagedLogGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedLogGroup', ], ], 'ManagedMetricAlarm' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ManagedMetricAlarms' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedMetricAlarm', ], ], 'ManagedResourceStatus' => [ 'type' => 'string', 'enum' => [ 'PROVISIONING', 'ACTIVE', 'DEPROVISIONING', 'DELETED', 'FAILED', ], ], 'ManagedScalableTarget' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', 'minCapacity', 'maxCapacity', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'minCapacity' => [ 'shape' => 'Integer', ], 'maxCapacity' => [ 'shape' => 'Integer', ], ], ], 'ManagedScaling' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'ManagedScalingStatus', ], 'targetCapacity' => [ 'shape' => 'ManagedScalingTargetCapacity', ], 'minimumScalingStepSize' => [ 'shape' => 'ManagedScalingStepSize', ], 'maximumScalingStepSize' => [ 'shape' => 'ManagedScalingStepSize', ], 'instanceWarmupPeriod' => [ 'shape' => 'ManagedScalingInstanceWarmupPeriod', ], ], ], 'ManagedScalingInstanceWarmupPeriod' => [ 'type' => 'integer', 'box' => true, 'max' => 10000, 'min' => 0, ], 'ManagedScalingStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'ManagedScalingStepSize' => [ 'type' => 'integer', 'box' => true, 'max' => 10000, 'min' => 1, ], 'ManagedScalingTargetCapacity' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ManagedSecurityGroup' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ManagedSecurityGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedSecurityGroup', ], ], 'ManagedStorageConfiguration' => [ 'type' => 'structure', 'members' => [ 'kmsKeyId' => [ 'shape' => 'String', ], 'fargateEphemeralStorageKmsKeyId' => [ 'shape' => 'String', ], ], ], 'ManagedTargetGroup' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', 'healthCheckPath', 'healthCheckPort', 'port', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'healthCheckPath' => [ 'shape' => 'String', ], 'healthCheckPort' => [ 'shape' => 'Integer', ], 'port' => [ 'shape' => 'Integer', ], ], ], 'ManagedTargetGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedTargetGroup', ], ], 'ManagedTerminationProtection' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'MemoryGiBPerVCpuRequest' => [ 'type' => 'structure', 'members' => [ 'min' => [ 'shape' => 'BoxedDouble', ], 'max' => [ 'shape' => 'BoxedDouble', ], ], ], 'MemoryMiBRequest' => [ 'type' => 'structure', 'required' => [ 'min', ], 'members' => [ 'min' => [ 'shape' => 'BoxedInteger', ], 'max' => [ 'shape' => 'BoxedInteger', ], ], ], 'MetricConfiguration' => [ 'type' => 'structure', 'required' => [ 'metricNames', 'resolutionSeconds', ], 'members' => [ 'metricNames' => [ 'shape' => 'MetricNamesList', ], 'resolutionSeconds' => [ 'shape' => 'MetricResolutionSeconds', ], ], ], 'MetricConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricConfiguration', ], 'max' => 5, 'min' => 0, ], 'MetricName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'MetricNamesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricName', ], 'max' => 5, 'min' => 1, ], 'MetricResolutionSeconds' => [ 'type' => 'integer', 'box' => true, 'max' => 60, 'min' => 20, ], 'MissingVersionException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'MonitoringConfiguration' => [ 'type' => 'structure', 'members' => [ 'metricConfigurations' => [ 'shape' => 'MetricConfigurationList', ], ], ], 'MountPoint' => [ 'type' => 'structure', 'members' => [ 'sourceVolume' => [ 'shape' => 'String', ], 'containerPath' => [ 'shape' => 'String', ], 'readOnly' => [ 'shape' => 'BoxedBoolean', ], ], ], 'MountPointList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MountPoint', ], ], 'NamespaceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'NetworkBandwidthGbpsRequest' => [ 'type' => 'structure', 'members' => [ 'min' => [ 'shape' => 'BoxedDouble', ], 'max' => [ 'shape' => 'BoxedDouble', ], ], ], 'NetworkBinding' => [ 'type' => 'structure', 'members' => [ 'bindIP' => [ 'shape' => 'String', ], 'containerPort' => [ 'shape' => 'BoxedInteger', ], 'hostPort' => [ 'shape' => 'BoxedInteger', ], 'protocol' => [ 'shape' => 'TransportProtocol', ], 'containerPortRange' => [ 'shape' => 'String', ], 'hostPortRange' => [ 'shape' => 'String', ], ], ], 'NetworkBindings' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkBinding', ], ], 'NetworkConfiguration' => [ 'type' => 'structure', 'members' => [ 'awsvpcConfiguration' => [ 'shape' => 'AwsVpcConfiguration', ], ], ], 'NetworkInterface' => [ 'type' => 'structure', 'members' => [ 'attachmentId' => [ 'shape' => 'String', ], 'privateIpv4Address' => [ 'shape' => 'String', ], 'ipv6Address' => [ 'shape' => 'String', ], ], ], 'NetworkInterfaceCountRequest' => [ 'type' => 'structure', 'members' => [ 'min' => [ 'shape' => 'BoxedInteger', ], 'max' => [ 'shape' => 'BoxedInteger', ], ], ], 'NetworkInterfaces' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterface', ], ], 'NetworkMode' => [ 'type' => 'string', 'enum' => [ 'bridge', 'host', 'awsvpc', 'none', ], ], 'NeuronDeviceIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'NoUpdateAvailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'OSFamily' => [ 'type' => 'string', 'enum' => [ 'WINDOWS_SERVER_2019_FULL', 'WINDOWS_SERVER_2019_CORE', 'WINDOWS_SERVER_2016_FULL', 'WINDOWS_SERVER_2004_CORE', 'WINDOWS_SERVER_2022_CORE', 'WINDOWS_SERVER_2022_FULL', 'WINDOWS_SERVER_2025_CORE', 'WINDOWS_SERVER_2025_FULL', 'WINDOWS_SERVER_20H2_CORE', 'LINUX', ], ], 'PidMode' => [ 'type' => 'string', 'enum' => [ 'host', 'task', ], ], 'PlacementConstraint' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'PlacementConstraintType', ], 'expression' => [ 'shape' => 'String', ], ], ], 'PlacementConstraintType' => [ 'type' => 'string', 'enum' => [ 'distinctInstance', 'memberOf', ], ], 'PlacementConstraints' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementConstraint', ], ], 'PlacementStrategies' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementStrategy', ], ], 'PlacementStrategy' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'PlacementStrategyType', ], 'field' => [ 'shape' => 'String', ], ], ], 'PlacementStrategyType' => [ 'type' => 'string', 'enum' => [ 'random', 'spread', 'binpack', ], ], 'PlatformDevice' => [ 'type' => 'structure', 'required' => [ 'id', 'type', ], 'members' => [ 'id' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'PlatformDeviceType', ], ], ], 'PlatformDeviceType' => [ 'type' => 'string', 'enum' => [ 'GPU', 'NEURON_DEVICE', ], ], 'PlatformDevices' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlatformDevice', ], ], 'PlatformTaskDefinitionIncompatibilityException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'PlatformUnknownException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'PortMapping' => [ 'type' => 'structure', 'members' => [ 'containerPort' => [ 'shape' => 'BoxedInteger', ], 'hostPort' => [ 'shape' => 'BoxedInteger', ], 'protocol' => [ 'shape' => 'TransportProtocol', ], 'name' => [ 'shape' => 'String', ], 'appProtocol' => [ 'shape' => 'ApplicationProtocol', ], 'containerPortRange' => [ 'shape' => 'String', ], ], ], 'PortMappingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PortMapping', ], ], 'PortNumber' => [ 'type' => 'integer', 'box' => true, 'max' => 65535, 'min' => 0, ], 'PropagateMITags' => [ 'type' => 'string', 'enum' => [ 'CAPACITY_PROVIDER', 'NONE', ], ], 'PropagateTags' => [ 'type' => 'string', 'enum' => [ 'TASK_DEFINITION', 'SERVICE', 'NONE', ], ], 'ProtectedTask' => [ 'type' => 'structure', 'members' => [ 'taskArn' => [ 'shape' => 'String', ], 'protectionEnabled' => [ 'shape' => 'Boolean', ], 'expirationDate' => [ 'shape' => 'Timestamp', ], ], ], 'ProtectedTasks' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProtectedTask', ], ], 'ProxyConfiguration' => [ 'type' => 'structure', 'required' => [ 'containerName', ], 'members' => [ 'type' => [ 'shape' => 'ProxyConfigurationType', ], 'containerName' => [ 'shape' => 'String', ], 'properties' => [ 'shape' => 'ProxyConfigurationProperties', ], ], ], 'ProxyConfigurationProperties' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyValuePair', ], ], 'ProxyConfigurationType' => [ 'type' => 'string', 'enum' => [ 'APPMESH', ], ], 'PutAccountSettingDefaultRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'value', ], 'members' => [ 'name' => [ 'shape' => 'SettingName', ], 'value' => [ 'shape' => 'String', ], ], ], 'PutAccountSettingDefaultResponse' => [ 'type' => 'structure', 'members' => [ 'setting' => [ 'shape' => 'Setting', ], ], ], 'PutAccountSettingRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'value', ], 'members' => [ 'name' => [ 'shape' => 'SettingName', ], 'value' => [ 'shape' => 'String', ], 'principalArn' => [ 'shape' => 'String', ], ], ], 'PutAccountSettingResponse' => [ 'type' => 'structure', 'members' => [ 'setting' => [ 'shape' => 'Setting', ], ], ], 'PutAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'attributes', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'attributes' => [ 'shape' => 'Attributes', ], ], ], 'PutAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'attributes' => [ 'shape' => 'Attributes', ], ], ], 'PutClusterCapacityProvidersRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'capacityProviders', 'defaultCapacityProviderStrategy', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'capacityProviders' => [ 'shape' => 'StringList', ], 'defaultCapacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], ], ], 'PutClusterCapacityProvidersResponse' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'Cluster', ], ], ], 'RegisterContainerInstanceRequest' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'instanceIdentityDocument' => [ 'shape' => 'String', ], 'instanceIdentityDocumentSignature' => [ 'shape' => 'String', ], 'totalResources' => [ 'shape' => 'Resources', ], 'versionInfo' => [ 'shape' => 'VersionInfo', ], 'containerInstanceArn' => [ 'shape' => 'String', ], 'attributes' => [ 'shape' => 'Attributes', ], 'platformDevices' => [ 'shape' => 'PlatformDevices', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'RegisterContainerInstanceResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstance' => [ 'shape' => 'ContainerInstance', ], ], ], 'RegisterDaemonTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'family', 'containerDefinitions', ], 'members' => [ 'family' => [ 'shape' => 'String', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'executionRoleArn' => [ 'shape' => 'String', ], 'containerDefinitions' => [ 'shape' => 'DaemonContainerDefinitionList', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'volumes' => [ 'shape' => 'DaemonVolumeList', ], 'tags' => [ 'shape' => 'Tags', ], 'pidMode' => [ 'shape' => 'DaemonPidMode', ], 'ipcMode' => [ 'shape' => 'DaemonIpcMode', ], ], ], 'RegisterDaemonTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'daemonTaskDefinitionArn' => [ 'shape' => 'String', ], ], ], 'RegisterTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'family', 'containerDefinitions', ], 'members' => [ 'family' => [ 'shape' => 'String', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'executionRoleArn' => [ 'shape' => 'String', ], 'networkMode' => [ 'shape' => 'NetworkMode', ], 'containerDefinitions' => [ 'shape' => 'ContainerDefinitions', ], 'volumes' => [ 'shape' => 'VolumeList', ], 'placementConstraints' => [ 'shape' => 'TaskDefinitionPlacementConstraints', ], 'requiresCompatibilities' => [ 'shape' => 'CompatibilityList', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], 'pidMode' => [ 'shape' => 'PidMode', ], 'ipcMode' => [ 'shape' => 'IpcMode', ], 'proxyConfiguration' => [ 'shape' => 'ProxyConfiguration', ], 'inferenceAccelerators' => [ 'shape' => 'InferenceAccelerators', 'deprecated' => true, 'deprecatedMessage' => 'This feature is no longer available.', 'deprecatedSince' => '2023-04-15', ], 'ephemeralStorage' => [ 'shape' => 'EphemeralStorage', ], 'runtimePlatform' => [ 'shape' => 'RuntimePlatform', ], 'enableFaultInjection' => [ 'shape' => 'BoxedBoolean', ], ], ], 'RegisterTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'taskDefinition' => [ 'shape' => 'TaskDefinition', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'RepositoryCredentials' => [ 'type' => 'structure', 'required' => [ 'credentialsParameter', ], 'members' => [ 'credentialsParameter' => [ 'shape' => 'String', ], ], 'sensitive' => true, ], 'RequiresAttributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'Attribute', ], ], 'ResolvedConfiguration' => [ 'type' => 'structure', 'members' => [ 'loadBalancers' => [ 'shape' => 'ServiceRevisionLoadBalancers', ], ], ], 'Resource' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'String', ], 'doubleValue' => [ 'shape' => 'Double', ], 'longValue' => [ 'shape' => 'Long', ], 'integerValue' => [ 'shape' => 'Integer', ], 'stringSetValue' => [ 'shape' => 'StringList', ], ], ], 'ResourceIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceManagementType' => [ 'type' => 'string', 'enum' => [ 'CUSTOMER', 'ECS', ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceRequirement' => [ 'type' => 'structure', 'required' => [ 'value', 'type', ], 'members' => [ 'value' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'ResourceType', ], ], ], 'ResourceRequirements' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceRequirement', ], ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'GPU', 'InferenceAccelerator', 'NeuronDevice', ], ], 'Resources' => [ 'type' => 'list', 'member' => [ 'shape' => 'Resource', ], ], 'Rollback' => [ 'type' => 'structure', 'members' => [ 'reason' => [ 'shape' => 'String', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'serviceRevisionArn' => [ 'shape' => 'String', ], ], ], 'RunTaskRequest' => [ 'type' => 'structure', 'required' => [ 'taskDefinition', ], 'members' => [ 'capacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'cluster' => [ 'shape' => 'String', ], 'count' => [ 'shape' => 'BoxedInteger', ], 'enableECSManagedTags' => [ 'shape' => 'Boolean', ], 'enableExecuteCommand' => [ 'shape' => 'Boolean', ], 'group' => [ 'shape' => 'String', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'overrides' => [ 'shape' => 'TaskOverride', ], 'placementConstraints' => [ 'shape' => 'PlacementConstraints', ], 'placementStrategy' => [ 'shape' => 'PlacementStrategies', ], 'platformVersion' => [ 'shape' => 'String', ], 'propagateTags' => [ 'shape' => 'PropagateTags', ], 'referenceId' => [ 'shape' => 'String', ], 'startedBy' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], 'taskDefinition' => [ 'shape' => 'String', ], 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'volumeConfigurations' => [ 'shape' => 'TaskVolumeConfigurations', ], ], ], 'RunTaskResponse' => [ 'type' => 'structure', 'members' => [ 'tasks' => [ 'shape' => 'Tasks', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'RuntimePlatform' => [ 'type' => 'structure', 'members' => [ 'cpuArchitecture' => [ 'shape' => 'CPUArchitecture', ], 'operatingSystemFamily' => [ 'shape' => 'OSFamily', ], ], ], 'S3FilesVolumeConfiguration' => [ 'type' => 'structure', 'required' => [ 'fileSystemArn', ], 'members' => [ 'fileSystemArn' => [ 'shape' => 'String', ], 'rootDirectory' => [ 'shape' => 'String', ], 'transitEncryptionPort' => [ 'shape' => 'BoxedInteger', ], 'accessPointArn' => [ 'shape' => 'String', ], ], ], 'Scale' => [ 'type' => 'structure', 'members' => [ 'value' => [ 'shape' => 'Double', ], 'unit' => [ 'shape' => 'ScaleUnit', ], ], ], 'ScaleUnit' => [ 'type' => 'string', 'enum' => [ 'PERCENT', ], ], 'SchedulingStrategy' => [ 'type' => 'string', 'enum' => [ 'REPLICA', 'DAEMON', ], ], 'Scope' => [ 'type' => 'string', 'enum' => [ 'task', 'shared', ], ], 'Secret' => [ 'type' => 'structure', 'required' => [ 'name', 'valueFrom', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'valueFrom' => [ 'shape' => 'String', ], ], ], 'SecretList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Secret', ], ], 'SensitiveString' => [ 'type' => 'string', 'sensitive' => true, ], 'ServerException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'fault' => true, ], 'Service' => [ 'type' => 'structure', 'members' => [ 'serviceArn' => [ 'shape' => 'String', ], 'serviceName' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'loadBalancers' => [ 'shape' => 'LoadBalancers', ], 'serviceRegistries' => [ 'shape' => 'ServiceRegistries', ], 'status' => [ 'shape' => 'String', ], 'desiredCount' => [ 'shape' => 'Integer', ], 'runningCount' => [ 'shape' => 'Integer', ], 'pendingCount' => [ 'shape' => 'Integer', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'capacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'platformVersion' => [ 'shape' => 'String', ], 'platformFamily' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'deploymentConfiguration' => [ 'shape' => 'DeploymentConfiguration', ], 'taskSets' => [ 'shape' => 'TaskSets', ], 'deployments' => [ 'shape' => 'Deployments', ], 'roleArn' => [ 'shape' => 'String', ], 'events' => [ 'shape' => 'ServiceEvents', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'currentServiceDeployment' => [ 'shape' => 'String', ], 'currentServiceRevisions' => [ 'shape' => 'ServiceCurrentRevisionSummaryList', ], 'placementConstraints' => [ 'shape' => 'PlacementConstraints', ], 'placementStrategy' => [ 'shape' => 'PlacementStrategies', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'healthCheckGracePeriodSeconds' => [ 'shape' => 'BoxedInteger', ], 'schedulingStrategy' => [ 'shape' => 'SchedulingStrategy', ], 'deploymentController' => [ 'shape' => 'DeploymentController', ], 'tags' => [ 'shape' => 'Tags', ], 'createdBy' => [ 'shape' => 'String', ], 'enableECSManagedTags' => [ 'shape' => 'Boolean', ], 'propagateTags' => [ 'shape' => 'PropagateTags', ], 'enableExecuteCommand' => [ 'shape' => 'Boolean', ], 'availabilityZoneRebalancing' => [ 'shape' => 'AvailabilityZoneRebalancing', ], 'resourceManagementType' => [ 'shape' => 'ResourceManagementType', ], ], ], 'ServiceConnectAccessLogConfiguration' => [ 'type' => 'structure', 'required' => [ 'format', ], 'members' => [ 'format' => [ 'shape' => 'ServiceConnectAccessLoggingFormat', ], 'includeQueryParameters' => [ 'shape' => 'ServiceConnectIncludeQueryParameters', ], ], ], 'ServiceConnectAccessLoggingFormat' => [ 'type' => 'string', 'enum' => [ 'TEXT', 'JSON', ], ], 'ServiceConnectClientAlias' => [ 'type' => 'structure', 'required' => [ 'port', ], 'members' => [ 'port' => [ 'shape' => 'PortNumber', ], 'dnsName' => [ 'shape' => 'String', ], 'testTrafficRules' => [ 'shape' => 'ServiceConnectTestTrafficRules', ], ], ], 'ServiceConnectClientAliasList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceConnectClientAlias', ], ], 'ServiceConnectConfiguration' => [ 'type' => 'structure', 'required' => [ 'enabled', ], 'members' => [ 'enabled' => [ 'shape' => 'Boolean', ], 'namespace' => [ 'shape' => 'String', ], 'services' => [ 'shape' => 'ServiceConnectServiceList', ], 'logConfiguration' => [ 'shape' => 'LogConfiguration', ], 'accessLogConfiguration' => [ 'shape' => 'ServiceConnectAccessLogConfiguration', ], ], ], 'ServiceConnectIncludeQueryParameters' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'ServiceConnectService' => [ 'type' => 'structure', 'required' => [ 'portName', ], 'members' => [ 'portName' => [ 'shape' => 'String', ], 'discoveryName' => [ 'shape' => 'String', ], 'clientAliases' => [ 'shape' => 'ServiceConnectClientAliasList', ], 'ingressPortOverride' => [ 'shape' => 'PortNumber', ], 'timeout' => [ 'shape' => 'TimeoutConfiguration', ], 'tls' => [ 'shape' => 'ServiceConnectTlsConfiguration', ], ], ], 'ServiceConnectServiceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceConnectService', ], ], 'ServiceConnectServiceResource' => [ 'type' => 'structure', 'members' => [ 'discoveryName' => [ 'shape' => 'String', ], 'discoveryArn' => [ 'shape' => 'String', ], ], ], 'ServiceConnectServiceResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceConnectServiceResource', ], ], 'ServiceConnectTestTrafficHeaderMatchRules' => [ 'type' => 'structure', 'required' => [ 'exact', ], 'members' => [ 'exact' => [ 'shape' => 'String', ], ], ], 'ServiceConnectTestTrafficHeaderRules' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'ServiceConnectTestTrafficHeaderMatchRules', ], ], ], 'ServiceConnectTestTrafficRules' => [ 'type' => 'structure', 'required' => [ 'header', ], 'members' => [ 'header' => [ 'shape' => 'ServiceConnectTestTrafficHeaderRules', ], ], ], 'ServiceConnectTlsCertificateAuthority' => [ 'type' => 'structure', 'members' => [ 'awsPcaAuthorityArn' => [ 'shape' => 'String', ], ], ], 'ServiceConnectTlsConfiguration' => [ 'type' => 'structure', 'required' => [ 'issuerCertificateAuthority', ], 'members' => [ 'issuerCertificateAuthority' => [ 'shape' => 'ServiceConnectTlsCertificateAuthority', ], 'kmsKey' => [ 'shape' => 'String', ], 'roleArn' => [ 'shape' => 'String', ], ], ], 'ServiceCurrentRevisionSummary' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'requestedTaskCount' => [ 'shape' => 'Integer', ], 'runningTaskCount' => [ 'shape' => 'Integer', ], 'pendingTaskCount' => [ 'shape' => 'Integer', ], ], ], 'ServiceCurrentRevisionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceCurrentRevisionSummary', ], ], 'ServiceDeployment' => [ 'type' => 'structure', 'members' => [ 'serviceDeploymentArn' => [ 'shape' => 'String', ], 'serviceArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'finishedAt' => [ 'shape' => 'Timestamp', ], 'stoppedAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'sourceServiceRevisions' => [ 'shape' => 'ServiceRevisionsSummaryList', ], 'targetServiceRevision' => [ 'shape' => 'ServiceRevisionSummary', ], 'status' => [ 'shape' => 'ServiceDeploymentStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'lifecycleStage' => [ 'shape' => 'ServiceDeploymentLifecycleStage', ], 'lifecycleHookDetails' => [ 'shape' => 'DeploymentLifecycleHookDetailList', ], 'deploymentConfiguration' => [ 'shape' => 'DeploymentConfiguration', ], 'rollback' => [ 'shape' => 'Rollback', ], 'deploymentCircuitBreaker' => [ 'shape' => 'ServiceDeploymentCircuitBreaker', ], 'alarms' => [ 'shape' => 'ServiceDeploymentAlarms', ], ], ], 'ServiceDeploymentAlarms' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'ServiceDeploymentRollbackMonitorsStatus', ], 'alarmNames' => [ 'shape' => 'StringList', ], 'triggeredAlarmNames' => [ 'shape' => 'StringList', ], ], ], 'ServiceDeploymentBrief' => [ 'type' => 'structure', 'members' => [ 'serviceDeploymentArn' => [ 'shape' => 'String', ], 'serviceArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'finishedAt' => [ 'shape' => 'Timestamp', ], 'targetServiceRevisionArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ServiceDeploymentStatus', ], 'statusReason' => [ 'shape' => 'String', ], ], ], 'ServiceDeploymentCircuitBreaker' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'ServiceDeploymentRollbackMonitorsStatus', ], 'failureCount' => [ 'shape' => 'Integer', ], 'threshold' => [ 'shape' => 'Integer', ], ], ], 'ServiceDeploymentLifecycleStage' => [ 'type' => 'string', 'enum' => [ 'RECONCILE_SERVICE', 'PRE_SCALE_UP', 'SCALE_UP', 'POST_SCALE_UP', 'TEST_TRAFFIC_SHIFT', 'POST_TEST_TRAFFIC_SHIFT', 'PRODUCTION_TRAFFIC_SHIFT', 'POST_PRODUCTION_TRAFFIC_SHIFT', 'BAKE_TIME', 'CLEAN_UP', ], ], 'ServiceDeploymentNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ServiceDeploymentRollbackMonitorsStatus' => [ 'type' => 'string', 'enum' => [ 'TRIGGERED', 'MONITORING', 'MONITORING_COMPLETE', 'DISABLED', ], ], 'ServiceDeploymentStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'SUCCESSFUL', 'STOPPED', 'STOP_REQUESTED', 'IN_PROGRESS', 'ROLLBACK_REQUESTED', 'ROLLBACK_IN_PROGRESS', 'ROLLBACK_SUCCESSFUL', 'ROLLBACK_FAILED', ], ], 'ServiceDeploymentStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceDeploymentStatus', ], ], 'ServiceDeployments' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceDeployment', ], ], 'ServiceDeploymentsBrief' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceDeploymentBrief', ], ], 'ServiceEvent' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'message' => [ 'shape' => 'String', ], ], ], 'ServiceEvents' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceEvent', ], ], 'ServiceField' => [ 'type' => 'string', 'enum' => [ 'TAGS', ], ], 'ServiceFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceField', ], ], 'ServiceManagedEBSVolumeConfiguration' => [ 'type' => 'structure', 'required' => [ 'roleArn', ], 'members' => [ 'encrypted' => [ 'shape' => 'BoxedBoolean', ], 'kmsKeyId' => [ 'shape' => 'EBSKMSKeyId', ], 'volumeType' => [ 'shape' => 'EBSVolumeType', ], 'sizeInGiB' => [ 'shape' => 'BoxedInteger', ], 'snapshotId' => [ 'shape' => 'EBSSnapshotId', ], 'volumeInitializationRate' => [ 'shape' => 'BoxedInteger', ], 'iops' => [ 'shape' => 'BoxedInteger', ], 'throughput' => [ 'shape' => 'BoxedInteger', ], 'tagSpecifications' => [ 'shape' => 'EBSTagSpecifications', ], 'roleArn' => [ 'shape' => 'IAMRoleArn', ], 'filesystemType' => [ 'shape' => 'TaskFilesystemType', ], ], ], 'ServiceNotActiveException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ServiceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ServiceRegistries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceRegistry', ], ], 'ServiceRegistry' => [ 'type' => 'structure', 'members' => [ 'registryArn' => [ 'shape' => 'String', ], 'port' => [ 'shape' => 'BoxedInteger', ], 'containerName' => [ 'shape' => 'String', ], 'containerPort' => [ 'shape' => 'BoxedInteger', ], ], ], 'ServiceRevision' => [ 'type' => 'structure', 'members' => [ 'serviceRevisionArn' => [ 'shape' => 'String', ], 'serviceArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'capacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'platformVersion' => [ 'shape' => 'String', ], 'platformFamily' => [ 'shape' => 'String', ], 'loadBalancers' => [ 'shape' => 'LoadBalancers', ], 'serviceRegistries' => [ 'shape' => 'ServiceRegistries', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'containerImages' => [ 'shape' => 'ContainerImages', ], 'guardDutyEnabled' => [ 'shape' => 'Boolean', ], 'serviceConnectConfiguration' => [ 'shape' => 'ServiceConnectConfiguration', ], 'volumeConfigurations' => [ 'shape' => 'ServiceVolumeConfigurations', ], 'fargateEphemeralStorage' => [ 'shape' => 'DeploymentEphemeralStorage', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'vpcLatticeConfigurations' => [ 'shape' => 'VpcLatticeConfigurations', ], 'resolvedConfiguration' => [ 'shape' => 'ResolvedConfiguration', ], 'ecsManagedResources' => [ 'shape' => 'ECSManagedResources', ], 'monitoring' => [ 'shape' => 'MonitoringConfiguration', ], ], ], 'ServiceRevisionLoadBalancer' => [ 'type' => 'structure', 'members' => [ 'targetGroupArn' => [ 'shape' => 'String', ], 'productionListenerRule' => [ 'shape' => 'String', ], ], ], 'ServiceRevisionLoadBalancers' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceRevisionLoadBalancer', ], ], 'ServiceRevisionSummary' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'requestedTaskCount' => [ 'shape' => 'Integer', ], 'runningTaskCount' => [ 'shape' => 'Integer', ], 'pendingTaskCount' => [ 'shape' => 'Integer', ], 'requestedTestTrafficWeight' => [ 'shape' => 'Double', 'box' => true, ], 'requestedProductionTrafficWeight' => [ 'shape' => 'Double', 'box' => true, ], ], ], 'ServiceRevisions' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceRevision', ], ], 'ServiceRevisionsSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceRevisionSummary', ], ], 'ServiceVolumeConfiguration' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'ECSVolumeName', ], 'managedEBSVolume' => [ 'shape' => 'ServiceManagedEBSVolumeConfiguration', ], ], ], 'ServiceVolumeConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceVolumeConfiguration', ], ], 'Services' => [ 'type' => 'list', 'member' => [ 'shape' => 'Service', ], ], 'Session' => [ 'type' => 'structure', 'members' => [ 'sessionId' => [ 'shape' => 'String', ], 'streamUrl' => [ 'shape' => 'String', ], 'tokenValue' => [ 'shape' => 'SensitiveString', ], ], ], 'Setting' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'SettingName', ], 'value' => [ 'shape' => 'String', ], 'principalArn' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'SettingType', ], ], ], 'SettingName' => [ 'type' => 'string', 'enum' => [ 'serviceLongArnFormat', 'taskLongArnFormat', 'containerInstanceLongArnFormat', 'awsvpcTrunking', 'containerInsights', 'fargateFIPSMode', 'tagResourceAuthorization', 'fargateTaskRetirementWaitPeriod', 'guardDutyActivate', 'defaultLogDriverMode', 'fargateEventWindows', ], ], 'SettingType' => [ 'type' => 'string', 'enum' => [ 'user', 'aws_managed', ], ], 'Settings' => [ 'type' => 'list', 'member' => [ 'shape' => 'Setting', ], ], 'SortOrder' => [ 'type' => 'string', 'enum' => [ 'ASC', 'DESC', ], ], 'StabilityStatus' => [ 'type' => 'string', 'enum' => [ 'STEADY_STATE', 'STABILIZING', ], ], 'StartTaskRequest' => [ 'type' => 'structure', 'required' => [ 'containerInstances', 'taskDefinition', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'containerInstances' => [ 'shape' => 'StringList', ], 'enableECSManagedTags' => [ 'shape' => 'Boolean', ], 'enableExecuteCommand' => [ 'shape' => 'Boolean', ], 'group' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'overrides' => [ 'shape' => 'TaskOverride', ], 'propagateTags' => [ 'shape' => 'PropagateTags', ], 'referenceId' => [ 'shape' => 'String', ], 'startedBy' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], 'taskDefinition' => [ 'shape' => 'String', ], 'volumeConfigurations' => [ 'shape' => 'TaskVolumeConfigurations', ], ], ], 'StartTaskResponse' => [ 'type' => 'structure', 'members' => [ 'tasks' => [ 'shape' => 'Tasks', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'Statistics' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyValuePair', ], ], 'StopServiceDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'serviceDeploymentArn', ], 'members' => [ 'serviceDeploymentArn' => [ 'shape' => 'String', ], 'stopType' => [ 'shape' => 'StopServiceDeploymentStopType', ], ], ], 'StopServiceDeploymentResponse' => [ 'type' => 'structure', 'members' => [ 'serviceDeploymentArn' => [ 'shape' => 'String', ], ], ], 'StopServiceDeploymentStopType' => [ 'type' => 'string', 'enum' => [ 'ABORT', 'ROLLBACK', ], ], 'StopTaskRequest' => [ 'type' => 'structure', 'required' => [ 'task', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'task' => [ 'shape' => 'String', ], 'reason' => [ 'shape' => 'String', ], ], ], 'StopTaskResponse' => [ 'type' => 'structure', 'members' => [ 'task' => [ 'shape' => 'Task', ], ], ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'StringMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'SubmitAttachmentStateChangesRequest' => [ 'type' => 'structure', 'required' => [ 'attachments', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'attachments' => [ 'shape' => 'AttachmentStateChanges', ], ], ], 'SubmitAttachmentStateChangesResponse' => [ 'type' => 'structure', 'members' => [ 'acknowledgment' => [ 'shape' => 'String', ], ], ], 'SubmitContainerStateChangeRequest' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'task' => [ 'shape' => 'String', ], 'containerName' => [ 'shape' => 'String', ], 'runtimeId' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], 'exitCode' => [ 'shape' => 'BoxedInteger', ], 'reason' => [ 'shape' => 'String', ], 'networkBindings' => [ 'shape' => 'NetworkBindings', ], ], ], 'SubmitContainerStateChangeResponse' => [ 'type' => 'structure', 'members' => [ 'acknowledgment' => [ 'shape' => 'String', ], ], ], 'SubmitTaskStateChangeRequest' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'task' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], 'reason' => [ 'shape' => 'String', ], 'containers' => [ 'shape' => 'ContainerStateChanges', ], 'attachments' => [ 'shape' => 'AttachmentStateChanges', ], 'managedAgents' => [ 'shape' => 'ManagedAgentStateChanges', ], 'pullStartedAt' => [ 'shape' => 'Timestamp', ], 'pullStoppedAt' => [ 'shape' => 'Timestamp', ], 'executionStoppedAt' => [ 'shape' => 'Timestamp', ], ], ], 'SubmitTaskStateChangeResponse' => [ 'type' => 'structure', 'members' => [ 'acknowledgment' => [ 'shape' => 'String', ], ], ], 'SystemControl' => [ 'type' => 'structure', 'members' => [ 'namespace' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], ], 'SystemControls' => [ 'type' => 'list', 'member' => [ 'shape' => 'SystemControl', ], ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)', ], 'TagKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)', ], 'Tags' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, 'min' => 0, ], 'TargetNotConnectedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'TargetNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'TargetType' => [ 'type' => 'string', 'enum' => [ 'container-instance', ], ], 'Task' => [ 'type' => 'structure', 'members' => [ 'attachments' => [ 'shape' => 'Attachments', ], 'attributes' => [ 'shape' => 'Attributes', ], 'availabilityZone' => [ 'shape' => 'String', ], 'capacityProviderName' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'connectivity' => [ 'shape' => 'Connectivity', ], 'connectivityAt' => [ 'shape' => 'Timestamp', ], 'containerInstanceArn' => [ 'shape' => 'String', ], 'containers' => [ 'shape' => 'Containers', ], 'cpu' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'desiredStatus' => [ 'shape' => 'String', ], 'enableExecuteCommand' => [ 'shape' => 'Boolean', ], 'executionStoppedAt' => [ 'shape' => 'Timestamp', ], 'group' => [ 'shape' => 'String', ], 'healthStatus' => [ 'shape' => 'HealthStatus', ], 'inferenceAccelerators' => [ 'shape' => 'InferenceAccelerators', ], 'lastStatus' => [ 'shape' => 'String', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'memory' => [ 'shape' => 'String', ], 'overrides' => [ 'shape' => 'TaskOverride', ], 'platformVersion' => [ 'shape' => 'String', ], 'platformFamily' => [ 'shape' => 'String', ], 'pullStartedAt' => [ 'shape' => 'Timestamp', ], 'pullStoppedAt' => [ 'shape' => 'Timestamp', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'startedBy' => [ 'shape' => 'String', ], 'stopCode' => [ 'shape' => 'TaskStopCode', ], 'stoppedAt' => [ 'shape' => 'Timestamp', ], 'stoppedReason' => [ 'shape' => 'String', ], 'stoppingAt' => [ 'shape' => 'Timestamp', ], 'tags' => [ 'shape' => 'Tags', ], 'taskArn' => [ 'shape' => 'String', ], 'taskDefinitionArn' => [ 'shape' => 'String', ], 'version' => [ 'shape' => 'Long', ], 'ephemeralStorage' => [ 'shape' => 'EphemeralStorage', ], 'fargateEphemeralStorage' => [ 'shape' => 'TaskEphemeralStorage', ], ], ], 'TaskDefinition' => [ 'type' => 'structure', 'members' => [ 'taskDefinitionArn' => [ 'shape' => 'String', ], 'containerDefinitions' => [ 'shape' => 'ContainerDefinitions', ], 'family' => [ 'shape' => 'String', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'executionRoleArn' => [ 'shape' => 'String', ], 'networkMode' => [ 'shape' => 'NetworkMode', ], 'revision' => [ 'shape' => 'Integer', ], 'volumes' => [ 'shape' => 'VolumeList', ], 'status' => [ 'shape' => 'TaskDefinitionStatus', ], 'requiresAttributes' => [ 'shape' => 'RequiresAttributes', ], 'placementConstraints' => [ 'shape' => 'TaskDefinitionPlacementConstraints', ], 'compatibilities' => [ 'shape' => 'CompatibilityList', ], 'runtimePlatform' => [ 'shape' => 'RuntimePlatform', ], 'requiresCompatibilities' => [ 'shape' => 'CompatibilityList', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'inferenceAccelerators' => [ 'shape' => 'InferenceAccelerators', ], 'pidMode' => [ 'shape' => 'PidMode', ], 'ipcMode' => [ 'shape' => 'IpcMode', ], 'proxyConfiguration' => [ 'shape' => 'ProxyConfiguration', ], 'registeredAt' => [ 'shape' => 'Timestamp', ], 'deregisteredAt' => [ 'shape' => 'Timestamp', ], 'deleteRequestedAt' => [ 'shape' => 'Timestamp', ], 'registeredBy' => [ 'shape' => 'String', ], 'ephemeralStorage' => [ 'shape' => 'EphemeralStorage', ], 'enableFaultInjection' => [ 'shape' => 'BoxedBoolean', ], ], ], 'TaskDefinitionFamilyStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'INACTIVE', 'ALL', ], ], 'TaskDefinitionField' => [ 'type' => 'string', 'enum' => [ 'TAGS', ], ], 'TaskDefinitionFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskDefinitionField', ], ], 'TaskDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskDefinition', ], ], 'TaskDefinitionPlacementConstraint' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'TaskDefinitionPlacementConstraintType', ], 'expression' => [ 'shape' => 'String', ], ], ], 'TaskDefinitionPlacementConstraintType' => [ 'type' => 'string', 'enum' => [ 'memberOf', ], ], 'TaskDefinitionPlacementConstraints' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskDefinitionPlacementConstraint', ], ], 'TaskDefinitionStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'INACTIVE', 'DELETE_IN_PROGRESS', ], ], 'TaskEphemeralStorage' => [ 'type' => 'structure', 'members' => [ 'sizeInGiB' => [ 'shape' => 'Integer', ], 'kmsKeyId' => [ 'shape' => 'String', ], ], ], 'TaskField' => [ 'type' => 'string', 'enum' => [ 'TAGS', ], ], 'TaskFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskField', ], ], 'TaskFilesystemType' => [ 'type' => 'string', 'enum' => [ 'ext3', 'ext4', 'xfs', 'ntfs', ], ], 'TaskManagedEBSVolumeConfiguration' => [ 'type' => 'structure', 'required' => [ 'roleArn', ], 'members' => [ 'encrypted' => [ 'shape' => 'BoxedBoolean', ], 'kmsKeyId' => [ 'shape' => 'EBSKMSKeyId', ], 'volumeType' => [ 'shape' => 'EBSVolumeType', ], 'sizeInGiB' => [ 'shape' => 'BoxedInteger', ], 'snapshotId' => [ 'shape' => 'EBSSnapshotId', ], 'volumeInitializationRate' => [ 'shape' => 'BoxedInteger', ], 'iops' => [ 'shape' => 'BoxedInteger', ], 'throughput' => [ 'shape' => 'BoxedInteger', ], 'tagSpecifications' => [ 'shape' => 'EBSTagSpecifications', ], 'roleArn' => [ 'shape' => 'IAMRoleArn', ], 'terminationPolicy' => [ 'shape' => 'TaskManagedEBSVolumeTerminationPolicy', ], 'filesystemType' => [ 'shape' => 'TaskFilesystemType', ], ], ], 'TaskManagedEBSVolumeTerminationPolicy' => [ 'type' => 'structure', 'required' => [ 'deleteOnTermination', ], 'members' => [ 'deleteOnTermination' => [ 'shape' => 'BoxedBoolean', ], ], ], 'TaskOverride' => [ 'type' => 'structure', 'members' => [ 'containerOverrides' => [ 'shape' => 'ContainerOverrides', ], 'cpu' => [ 'shape' => 'String', ], 'inferenceAcceleratorOverrides' => [ 'shape' => 'InferenceAcceleratorOverrides', ], 'executionRoleArn' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'ephemeralStorage' => [ 'shape' => 'EphemeralStorage', ], ], ], 'TaskSet' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'taskSetArn' => [ 'shape' => 'String', ], 'serviceArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'startedBy' => [ 'shape' => 'String', ], 'externalId' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'computedDesiredCount' => [ 'shape' => 'Integer', ], 'pendingCount' => [ 'shape' => 'Integer', ], 'runningCount' => [ 'shape' => 'Integer', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'capacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'platformVersion' => [ 'shape' => 'String', ], 'platformFamily' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'loadBalancers' => [ 'shape' => 'LoadBalancers', ], 'serviceRegistries' => [ 'shape' => 'ServiceRegistries', ], 'scale' => [ 'shape' => 'Scale', ], 'stabilityStatus' => [ 'shape' => 'StabilityStatus', ], 'stabilityStatusAt' => [ 'shape' => 'Timestamp', ], 'tags' => [ 'shape' => 'Tags', ], 'fargateEphemeralStorage' => [ 'shape' => 'DeploymentEphemeralStorage', ], ], ], 'TaskSetField' => [ 'type' => 'string', 'enum' => [ 'TAGS', ], ], 'TaskSetFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskSetField', ], ], 'TaskSetNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'TaskSets' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskSet', ], ], 'TaskStopCode' => [ 'type' => 'string', 'enum' => [ 'TaskFailedToStart', 'EssentialContainerExited', 'UserInitiated', 'ServiceSchedulerInitiated', 'SpotInterruption', 'TerminationNotice', ], ], 'TaskVolumeConfiguration' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'ECSVolumeName', ], 'managedEBSVolume' => [ 'shape' => 'TaskManagedEBSVolumeConfiguration', ], ], ], 'TaskVolumeConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskVolumeConfiguration', ], ], 'TaskVolumeStorageGiB' => [ 'type' => 'integer', 'box' => true, 'min' => 1, ], 'Tasks' => [ 'type' => 'list', 'member' => [ 'shape' => 'Task', ], ], 'ThresholdConfiguration' => [ 'type' => 'structure', 'required' => [ 'type', 'value', ], 'members' => [ 'type' => [ 'shape' => 'ThresholdType', ], 'value' => [ 'shape' => 'Integer', ], ], ], 'ThresholdType' => [ 'type' => 'string', 'enum' => [ 'COUNT', 'BOUNDED_PERCENT', 'UNBOUNDED_PERCENT', ], ], 'TimeoutConfiguration' => [ 'type' => 'structure', 'members' => [ 'idleTimeoutSeconds' => [ 'shape' => 'Duration', ], 'perRequestTimeoutSeconds' => [ 'shape' => 'Duration', ], ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'Tmpfs' => [ 'type' => 'structure', 'required' => [ 'containerPath', 'size', ], 'members' => [ 'containerPath' => [ 'shape' => 'String', ], 'size' => [ 'shape' => 'Integer', ], 'mountOptions' => [ 'shape' => 'StringList', ], ], ], 'TmpfsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tmpfs', ], ], 'TotalLocalStorageGBRequest' => [ 'type' => 'structure', 'members' => [ 'min' => [ 'shape' => 'BoxedDouble', ], 'max' => [ 'shape' => 'BoxedDouble', ], ], ], 'TransportProtocol' => [ 'type' => 'string', 'enum' => [ 'tcp', 'udp', ], ], 'Ulimit' => [ 'type' => 'structure', 'required' => [ 'name', 'softLimit', 'hardLimit', ], 'members' => [ 'name' => [ 'shape' => 'UlimitName', ], 'softLimit' => [ 'shape' => 'Integer', ], 'hardLimit' => [ 'shape' => 'Integer', ], ], ], 'UlimitList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ulimit', ], ], 'UlimitName' => [ 'type' => 'string', 'enum' => [ 'core', 'cpu', 'data', 'fsize', 'locks', 'memlock', 'msgqueue', 'nice', 'nofile', 'nproc', 'rss', 'rtprio', 'rttime', 'sigpending', 'stack', ], ], 'UnsupportedFeatureException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'String', ], 'tagKeys' => [ 'shape' => 'TagKeys', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateCapacityProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], 'autoScalingGroupProvider' => [ 'shape' => 'AutoScalingGroupProviderUpdate', ], 'managedInstancesProvider' => [ 'shape' => 'UpdateManagedInstancesProviderConfiguration', ], ], ], 'UpdateCapacityProviderResponse' => [ 'type' => 'structure', 'members' => [ 'capacityProvider' => [ 'shape' => 'CapacityProvider', ], ], ], 'UpdateClusterRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'settings' => [ 'shape' => 'ClusterSettings', ], 'configuration' => [ 'shape' => 'ClusterConfiguration', ], 'serviceConnectDefaults' => [ 'shape' => 'ClusterServiceConnectDefaultsRequest', ], ], ], 'UpdateClusterResponse' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'Cluster', ], ], ], 'UpdateClusterSettingsRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'settings', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'settings' => [ 'shape' => 'ClusterSettings', ], ], ], 'UpdateClusterSettingsResponse' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'Cluster', ], ], ], 'UpdateContainerAgentRequest' => [ 'type' => 'structure', 'required' => [ 'containerInstance', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'containerInstance' => [ 'shape' => 'String', ], ], ], 'UpdateContainerAgentResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstance' => [ 'shape' => 'ContainerInstance', ], ], ], 'UpdateContainerInstancesStateRequest' => [ 'type' => 'structure', 'required' => [ 'containerInstances', 'status', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'containerInstances' => [ 'shape' => 'StringList', ], 'status' => [ 'shape' => 'ContainerInstanceStatus', ], ], ], 'UpdateContainerInstancesStateResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstances' => [ 'shape' => 'ContainerInstances', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'UpdateDaemonRequest' => [ 'type' => 'structure', 'required' => [ 'daemonArn', 'daemonTaskDefinitionArn', 'capacityProviderArns', ], 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], 'daemonTaskDefinitionArn' => [ 'shape' => 'String', ], 'capacityProviderArns' => [ 'shape' => 'StringList', ], 'deploymentConfiguration' => [ 'shape' => 'DaemonDeploymentConfiguration', ], 'propagateTags' => [ 'shape' => 'DaemonPropagateTags', ], 'enableECSManagedTags' => [ 'shape' => 'Boolean', ], 'enableExecuteCommand' => [ 'shape' => 'Boolean', ], ], ], 'UpdateDaemonResponse' => [ 'type' => 'structure', 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'deploymentArn' => [ 'shape' => 'String', ], ], ], 'UpdateExpressGatewayServiceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'String', ], 'executionRoleArn' => [ 'shape' => 'String', ], 'healthCheckPath' => [ 'shape' => 'String', ], 'primaryContainer' => [ 'shape' => 'ExpressGatewayContainer', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'ExpressGatewayServiceNetworkConfiguration', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'scalingTarget' => [ 'shape' => 'ExpressGatewayScalingTarget', ], 'taskDefinitionArn' => [ 'shape' => 'String', ], ], ], 'UpdateExpressGatewayServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'UpdatedExpressGatewayService', ], ], ], 'UpdateInProgressException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'UpdateManagedInstancesProviderConfiguration' => [ 'type' => 'structure', 'required' => [ 'infrastructureRoleArn', 'instanceLaunchTemplate', ], 'members' => [ 'infrastructureRoleArn' => [ 'shape' => 'String', ], 'instanceLaunchTemplate' => [ 'shape' => 'InstanceLaunchTemplateUpdate', ], 'propagateTags' => [ 'shape' => 'PropagateMITags', ], 'infrastructureOptimization' => [ 'shape' => 'InfrastructureOptimization', ], 'autoRepairConfiguration' => [ 'shape' => 'AutoRepairConfiguration', ], ], ], 'UpdateServicePrimaryTaskSetRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'service', 'primaryTaskSet', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'primaryTaskSet' => [ 'shape' => 'String', ], ], ], 'UpdateServicePrimaryTaskSetResponse' => [ 'type' => 'structure', 'members' => [ 'taskSet' => [ 'shape' => 'TaskSet', ], ], ], 'UpdateServiceRequest' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'desiredCount' => [ 'shape' => 'BoxedInteger', ], 'taskDefinition' => [ 'shape' => 'String', ], 'capacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'deploymentConfiguration' => [ 'shape' => 'DeploymentConfiguration', ], 'availabilityZoneRebalancing' => [ 'shape' => 'AvailabilityZoneRebalancing', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'placementConstraints' => [ 'shape' => 'PlacementConstraints', ], 'placementStrategy' => [ 'shape' => 'PlacementStrategies', ], 'platformVersion' => [ 'shape' => 'String', ], 'forceNewDeployment' => [ 'shape' => 'Boolean', ], 'healthCheckGracePeriodSeconds' => [ 'shape' => 'BoxedInteger', ], 'deploymentController' => [ 'shape' => 'DeploymentController', ], 'enableExecuteCommand' => [ 'shape' => 'BoxedBoolean', ], 'enableECSManagedTags' => [ 'shape' => 'BoxedBoolean', ], 'loadBalancers' => [ 'shape' => 'LoadBalancers', ], 'propagateTags' => [ 'shape' => 'PropagateTags', ], 'serviceRegistries' => [ 'shape' => 'ServiceRegistries', ], 'serviceConnectConfiguration' => [ 'shape' => 'ServiceConnectConfiguration', ], 'volumeConfigurations' => [ 'shape' => 'ServiceVolumeConfigurations', ], 'vpcLatticeConfigurations' => [ 'shape' => 'VpcLatticeConfigurations', ], 'monitoring' => [ 'shape' => 'MonitoringConfiguration', ], ], ], 'UpdateServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'UpdateTaskProtectionRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'tasks', 'protectionEnabled', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'tasks' => [ 'shape' => 'StringList', ], 'protectionEnabled' => [ 'shape' => 'Boolean', ], 'expiresInMinutes' => [ 'shape' => 'BoxedInteger', ], ], ], 'UpdateTaskProtectionResponse' => [ 'type' => 'structure', 'members' => [ 'protectedTasks' => [ 'shape' => 'ProtectedTasks', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'UpdateTaskSetRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'service', 'taskSet', 'scale', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'taskSet' => [ 'shape' => 'String', ], 'scale' => [ 'shape' => 'Scale', ], ], ], 'UpdateTaskSetResponse' => [ 'type' => 'structure', 'members' => [ 'taskSet' => [ 'shape' => 'TaskSet', ], ], ], 'UpdatedExpressGatewayService' => [ 'type' => 'structure', 'members' => [ 'serviceArn' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], 'serviceName' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ExpressGatewayServiceStatus', ], 'targetConfiguration' => [ 'shape' => 'ExpressGatewayServiceConfiguration', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'VCpuCountRangeRequest' => [ 'type' => 'structure', 'required' => [ 'min', ], 'members' => [ 'min' => [ 'shape' => 'BoxedInteger', ], 'max' => [ 'shape' => 'BoxedInteger', ], ], ], 'VersionConsistency' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'VersionInfo' => [ 'type' => 'structure', 'members' => [ 'agentVersion' => [ 'shape' => 'String', ], 'agentHash' => [ 'shape' => 'String', ], 'dockerVersion' => [ 'shape' => 'String', ], ], ], 'Volume' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'host' => [ 'shape' => 'HostVolumeProperties', ], 'dockerVolumeConfiguration' => [ 'shape' => 'DockerVolumeConfiguration', ], 'efsVolumeConfiguration' => [ 'shape' => 'EFSVolumeConfiguration', ], 's3filesVolumeConfiguration' => [ 'shape' => 'S3FilesVolumeConfiguration', ], 'fsxWindowsFileServerVolumeConfiguration' => [ 'shape' => 'FSxWindowsFileServerVolumeConfiguration', ], 'configuredAtLaunch' => [ 'shape' => 'BoxedBoolean', ], ], ], 'VolumeFrom' => [ 'type' => 'structure', 'members' => [ 'sourceContainer' => [ 'shape' => 'String', ], 'readOnly' => [ 'shape' => 'BoxedBoolean', ], ], ], 'VolumeFromList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeFrom', ], ], 'VolumeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Volume', ], ], 'VpcLatticeConfiguration' => [ 'type' => 'structure', 'required' => [ 'roleArn', 'targetGroupArn', 'portName', ], 'members' => [ 'roleArn' => [ 'shape' => 'IAMRoleArn', ], 'targetGroupArn' => [ 'shape' => 'String', ], 'portName' => [ 'shape' => 'String', ], ], ], 'VpcLatticeConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcLatticeConfiguration', ], ], ],]; +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2014-11-13', 'auth' => [ 'aws.auth#sigv4', ], 'endpointPrefix' => 'ecs', 'jsonVersion' => '1.1', 'protocol' => 'json', 'protocols' => [ 'json', ], 'serviceAbbreviation' => 'Amazon ECS', 'serviceFullName' => 'Amazon EC2 Container Service', 'serviceId' => 'ECS', 'signatureVersion' => 'v4', 'signingName' => 'ecs', 'targetPrefix' => 'AmazonEC2ContainerServiceV20141113', 'uid' => 'ecs-2014-11-13', ], 'operations' => [ 'ContinueServiceDeployment' => [ 'name' => 'ContinueServiceDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ContinueServiceDeploymentRequest', ], 'output' => [ 'shape' => 'ContinueServiceDeploymentResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceDeploymentNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'CreateCapacityProvider' => [ 'name' => 'CreateCapacityProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCapacityProviderRequest', ], 'output' => [ 'shape' => 'CreateCapacityProviderResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'UpdateInProgressException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'idempotent' => true, ], 'CreateCluster' => [ 'name' => 'CreateCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateClusterRequest', ], 'output' => [ 'shape' => 'CreateClusterResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NamespaceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'CreateDaemon' => [ 'name' => 'CreateDaemon', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDaemonRequest', ], 'output' => [ 'shape' => 'CreateDaemonResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'CreateExpressGatewayService' => [ 'name' => 'CreateExpressGatewayService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateExpressGatewayServiceRequest', ], 'output' => [ 'shape' => 'CreateExpressGatewayServiceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'PlatformTaskDefinitionIncompatibilityException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'CreateService' => [ 'name' => 'CreateService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateServiceRequest', ], 'output' => [ 'shape' => 'CreateServiceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'NamespaceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'PlatformTaskDefinitionIncompatibilityException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'CreateTaskSet' => [ 'name' => 'CreateTaskSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTaskSetRequest', ], 'output' => [ 'shape' => 'CreateTaskSetResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'NamespaceNotFoundException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'PlatformTaskDefinitionIncompatibilityException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'DeleteAccountSetting' => [ 'name' => 'DeleteAccountSetting', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAccountSettingRequest', ], 'output' => [ 'shape' => 'DeleteAccountSettingResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'DeleteAttributes' => [ 'name' => 'DeleteAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAttributesRequest', ], 'output' => [ 'shape' => 'DeleteAttributesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'TargetNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'DeleteCapacityProvider' => [ 'name' => 'DeleteCapacityProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCapacityProviderRequest', ], 'output' => [ 'shape' => 'DeleteCapacityProviderResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'UpdateInProgressException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'idempotent' => true, ], 'DeleteCluster' => [ 'name' => 'DeleteCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteClusterRequest', ], 'output' => [ 'shape' => 'DeleteClusterResponse', ], 'errors' => [ [ 'shape' => 'ClusterContainsContainerInstancesException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ClusterContainsServicesException', ], [ 'shape' => 'ClusterContainsCapacityProviderException', ], [ 'shape' => 'ClusterContainsTasksException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'UpdateInProgressException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'idempotent' => true, ], 'DeleteDaemon' => [ 'name' => 'DeleteDaemon', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDaemonRequest', ], 'output' => [ 'shape' => 'DeleteDaemonResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DaemonNotFoundException', ], [ 'shape' => 'DaemonNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'idempotent' => true, ], 'DeleteDaemonTaskDefinition' => [ 'name' => 'DeleteDaemonTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDaemonTaskDefinitionRequest', ], 'output' => [ 'shape' => 'DeleteDaemonTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'DeleteExpressGatewayService' => [ 'name' => 'DeleteExpressGatewayService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteExpressGatewayServiceRequest', ], 'output' => [ 'shape' => 'DeleteExpressGatewayServiceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'DeleteService' => [ 'name' => 'DeleteService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteServiceRequest', ], 'output' => [ 'shape' => 'DeleteServiceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'idempotent' => true, ], 'DeleteTaskDefinitions' => [ 'name' => 'DeleteTaskDefinitions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTaskDefinitionsRequest', ], 'output' => [ 'shape' => 'DeleteTaskDefinitionsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'DeleteTaskSet' => [ 'name' => 'DeleteTaskSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTaskSetRequest', ], 'output' => [ 'shape' => 'DeleteTaskSetResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TaskSetNotFoundException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'idempotent' => true, ], 'DeregisterContainerInstance' => [ 'name' => 'DeregisterContainerInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterContainerInstanceRequest', ], 'output' => [ 'shape' => 'DeregisterContainerInstanceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'DeregisterTaskDefinition' => [ 'name' => 'DeregisterTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeregisterTaskDefinitionRequest', ], 'output' => [ 'shape' => 'DeregisterTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'DescribeCapacityProviders' => [ 'name' => 'DescribeCapacityProviders', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCapacityProvidersRequest', ], 'output' => [ 'shape' => 'DescribeCapacityProvidersResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'DescribeClusters' => [ 'name' => 'DescribeClusters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeClustersRequest', ], 'output' => [ 'shape' => 'DescribeClustersResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'DescribeContainerInstances' => [ 'name' => 'DescribeContainerInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeContainerInstancesRequest', ], 'output' => [ 'shape' => 'DescribeContainerInstancesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'readonly' => true, ], 'DescribeDaemon' => [ 'name' => 'DescribeDaemon', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDaemonRequest', ], 'output' => [ 'shape' => 'DescribeDaemonResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DaemonNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'DescribeDaemonDeployments' => [ 'name' => 'DescribeDaemonDeployments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDaemonDeploymentsRequest', ], 'output' => [ 'shape' => 'DescribeDaemonDeploymentsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'DescribeDaemonRevisions' => [ 'name' => 'DescribeDaemonRevisions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDaemonRevisionsRequest', ], 'output' => [ 'shape' => 'DescribeDaemonRevisionsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'DescribeDaemonTaskDefinition' => [ 'name' => 'DescribeDaemonTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeDaemonTaskDefinitionRequest', ], 'output' => [ 'shape' => 'DescribeDaemonTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'DescribeExpressGatewayService' => [ 'name' => 'DescribeExpressGatewayService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeExpressGatewayServiceRequest', ], 'output' => [ 'shape' => 'DescribeExpressGatewayServiceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'DescribeServiceDeployments' => [ 'name' => 'DescribeServiceDeployments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeServiceDeploymentsRequest', ], 'output' => [ 'shape' => 'DescribeServiceDeploymentsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'DescribeServiceRevisions' => [ 'name' => 'DescribeServiceRevisions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeServiceRevisionsRequest', ], 'output' => [ 'shape' => 'DescribeServiceRevisionsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'DescribeServices' => [ 'name' => 'DescribeServices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeServicesRequest', ], 'output' => [ 'shape' => 'DescribeServicesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'readonly' => true, ], 'DescribeTaskDefinition' => [ 'name' => 'DescribeTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTaskDefinitionRequest', ], 'output' => [ 'shape' => 'DescribeTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'DescribeTaskSets' => [ 'name' => 'DescribeTaskSets', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTaskSetsRequest', ], 'output' => [ 'shape' => 'DescribeTaskSetsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'DescribeTasks' => [ 'name' => 'DescribeTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeTasksRequest', ], 'output' => [ 'shape' => 'DescribeTasksResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'readonly' => true, ], 'DiscoverPollEndpoint' => [ 'name' => 'DiscoverPollEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DiscoverPollEndpointRequest', ], 'output' => [ 'shape' => 'DiscoverPollEndpointResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'ExecuteCommand' => [ 'name' => 'ExecuteCommand', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ExecuteCommandRequest', ], 'output' => [ 'shape' => 'ExecuteCommandResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'TargetNotConnectedException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'GetTaskProtection' => [ 'name' => 'GetTaskProtection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTaskProtectionRequest', ], 'output' => [ 'shape' => 'GetTaskProtectionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'ListAccountSettings' => [ 'name' => 'ListAccountSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAccountSettingsRequest', ], 'output' => [ 'shape' => 'ListAccountSettingsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'ListAttributes' => [ 'name' => 'ListAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAttributesRequest', ], 'output' => [ 'shape' => 'ListAttributesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'readonly' => true, ], 'ListClusters' => [ 'name' => 'ListClusters', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListClustersRequest', ], 'output' => [ 'shape' => 'ListClustersResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'ListContainerInstances' => [ 'name' => 'ListContainerInstances', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListContainerInstancesRequest', ], 'output' => [ 'shape' => 'ListContainerInstancesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'readonly' => true, ], 'ListDaemonDeployments' => [ 'name' => 'ListDaemonDeployments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDaemonDeploymentsRequest', ], 'output' => [ 'shape' => 'ListDaemonDeploymentsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'ListDaemonTaskDefinitions' => [ 'name' => 'ListDaemonTaskDefinitions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDaemonTaskDefinitionsRequest', ], 'output' => [ 'shape' => 'ListDaemonTaskDefinitionsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'ListDaemons' => [ 'name' => 'ListDaemons', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDaemonsRequest', ], 'output' => [ 'shape' => 'ListDaemonsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'ListServiceDeployments' => [ 'name' => 'ListServiceDeployments', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListServiceDeploymentsRequest', ], 'output' => [ 'shape' => 'ListServiceDeploymentsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], 'readonly' => true, ], 'ListServices' => [ 'name' => 'ListServices', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListServicesRequest', ], 'output' => [ 'shape' => 'ListServicesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'readonly' => true, ], 'ListServicesByNamespace' => [ 'name' => 'ListServicesByNamespace', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListServicesByNamespaceRequest', ], 'output' => [ 'shape' => 'ListServicesByNamespaceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NamespaceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'readonly' => true, ], 'ListTaskDefinitionFamilies' => [ 'name' => 'ListTaskDefinitionFamilies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTaskDefinitionFamiliesRequest', ], 'output' => [ 'shape' => 'ListTaskDefinitionFamiliesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'ListTaskDefinitions' => [ 'name' => 'ListTaskDefinitions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTaskDefinitionsRequest', ], 'output' => [ 'shape' => 'ListTaskDefinitionsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], 'readonly' => true, ], 'ListTasks' => [ 'name' => 'ListTasks', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTasksRequest', ], 'output' => [ 'shape' => 'ListTasksResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], ], 'readonly' => true, ], 'PutAccountSetting' => [ 'name' => 'PutAccountSetting', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutAccountSettingRequest', ], 'output' => [ 'shape' => 'PutAccountSettingResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'PutAccountSettingDefault' => [ 'name' => 'PutAccountSettingDefault', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutAccountSettingDefaultRequest', ], 'output' => [ 'shape' => 'PutAccountSettingDefaultResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'PutAttributes' => [ 'name' => 'PutAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutAttributesRequest', ], 'output' => [ 'shape' => 'PutAttributesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'TargetNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'AttributeLimitExceededException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'PutClusterCapacityProviders' => [ 'name' => 'PutClusterCapacityProviders', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutClusterCapacityProvidersRequest', ], 'output' => [ 'shape' => 'PutClusterCapacityProvidersResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'UpdateInProgressException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceInUseException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'RegisterContainerInstance' => [ 'name' => 'RegisterContainerInstance', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterContainerInstanceRequest', ], 'output' => [ 'shape' => 'RegisterContainerInstanceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'RegisterDaemonTaskDefinition' => [ 'name' => 'RegisterDaemonTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterDaemonTaskDefinitionRequest', ], 'output' => [ 'shape' => 'RegisterDaemonTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'RegisterTaskDefinition' => [ 'name' => 'RegisterTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RegisterTaskDefinitionRequest', ], 'output' => [ 'shape' => 'RegisterTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], ], ], 'RunTask' => [ 'name' => 'RunTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RunTaskRequest', ], 'output' => [ 'shape' => 'RunTaskResponse', ], 'errors' => [ [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'BlockedException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'PlatformTaskDefinitionIncompatibilityException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'StartTask' => [ 'name' => 'StartTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StartTaskRequest', ], 'output' => [ 'shape' => 'StartTaskResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NamespaceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'StopServiceDeployment' => [ 'name' => 'StopServiceDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopServiceDeploymentRequest', ], 'output' => [ 'shape' => 'StopServiceDeploymentResponse', ], 'errors' => [ [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceDeploymentNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'StopTask' => [ 'name' => 'StopTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'StopTaskRequest', ], 'output' => [ 'shape' => 'StopTaskResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'SubmitAttachmentStateChanges' => [ 'name' => 'SubmitAttachmentStateChanges', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SubmitAttachmentStateChangesRequest', ], 'output' => [ 'shape' => 'SubmitAttachmentStateChangesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'SubmitContainerStateChange' => [ 'name' => 'SubmitContainerStateChange', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SubmitContainerStateChangeRequest', ], 'output' => [ 'shape' => 'SubmitContainerStateChangeResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'SubmitTaskStateChange' => [ 'name' => 'SubmitTaskStateChange', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SubmitTaskStateChangeRequest', ], 'output' => [ 'shape' => 'SubmitTaskStateChangeResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'UpdateCapacityProvider' => [ 'name' => 'UpdateCapacityProvider', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateCapacityProviderRequest', ], 'output' => [ 'shape' => 'UpdateCapacityProviderResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'UpdateCluster' => [ 'name' => 'UpdateCluster', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateClusterRequest', ], 'output' => [ 'shape' => 'UpdateClusterResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NamespaceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'UpdateClusterSettings' => [ 'name' => 'UpdateClusterSettings', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateClusterSettingsRequest', ], 'output' => [ 'shape' => 'UpdateClusterSettingsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'UpdateInProgressException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'UpdateContainerAgent' => [ 'name' => 'UpdateContainerAgent', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateContainerAgentRequest', ], 'output' => [ 'shape' => 'UpdateContainerAgentResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'NoUpdateAvailableException', ], [ 'shape' => 'MissingVersionException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'UpdateInProgressException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'UpdateContainerInstancesState' => [ 'name' => 'UpdateContainerInstancesState', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateContainerInstancesStateRequest', ], 'output' => [ 'shape' => 'UpdateContainerInstancesStateResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], ], ], 'UpdateDaemon' => [ 'name' => 'UpdateDaemon', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDaemonRequest', ], 'output' => [ 'shape' => 'UpdateDaemonResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'DaemonNotFoundException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'DaemonNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'UpdateExpressGatewayService' => [ 'name' => 'UpdateExpressGatewayService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateExpressGatewayServiceRequest', ], 'output' => [ 'shape' => 'UpdateExpressGatewayServiceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'UpdateService' => [ 'name' => 'UpdateService', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateServiceRequest', ], 'output' => [ 'shape' => 'UpdateServiceResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'PlatformUnknownException', ], [ 'shape' => 'NamespaceNotFoundException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'PlatformTaskDefinitionIncompatibilityException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'UpdateServicePrimaryTaskSet' => [ 'name' => 'UpdateServicePrimaryTaskSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateServicePrimaryTaskSetRequest', ], 'output' => [ 'shape' => 'UpdateServicePrimaryTaskSetResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TaskSetNotFoundException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'UpdateTaskProtection' => [ 'name' => 'UpdateTaskProtection', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTaskProtectionRequest', ], 'output' => [ 'shape' => 'UpdateTaskProtectionResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], 'UpdateTaskSet' => [ 'name' => 'UpdateTaskSet', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateTaskSetRequest', ], 'output' => [ 'shape' => 'UpdateTaskSetResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ServiceNotActiveException', ], [ 'shape' => 'ServerException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TaskSetNotFoundException', ], [ 'shape' => 'ClientException', ], [ 'shape' => 'ServiceNotFoundException', ], [ 'shape' => 'ClusterNotFoundException', ], [ 'shape' => 'UnsupportedFeatureException', ], ], ], ], 'shapes' => [ 'AcceleratorCountRequest' => [ 'type' => 'structure', 'members' => [ 'min' => [ 'shape' => 'BoxedInteger', ], 'max' => [ 'shape' => 'BoxedInteger', ], ], ], 'AcceleratorManufacturer' => [ 'type' => 'string', 'enum' => [ 'amazon-web-services', 'amd', 'nvidia', 'xilinx', 'habana', ], ], 'AcceleratorManufacturerSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AcceleratorManufacturer', ], ], 'AcceleratorName' => [ 'type' => 'string', 'enum' => [ 'a100', 'inferentia', 'k520', 'k80', 'm60', 'radeon-pro-v520', 't4', 'vu9p', 'v100', 'a10g', 'h100', 't4g', ], ], 'AcceleratorNameSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AcceleratorName', ], ], 'AcceleratorTotalMemoryMiBRequest' => [ 'type' => 'structure', 'members' => [ 'min' => [ 'shape' => 'BoxedInteger', ], 'max' => [ 'shape' => 'BoxedInteger', ], ], ], 'AcceleratorType' => [ 'type' => 'string', 'enum' => [ 'gpu', 'fpga', 'inference', ], ], 'AcceleratorTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AcceleratorType', ], ], 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'AccessType' => [ 'type' => 'string', 'enum' => [ 'PUBLIC', 'PRIVATE', ], ], 'AdvancedConfiguration' => [ 'type' => 'structure', 'members' => [ 'alternateTargetGroupArn' => [ 'shape' => 'String', ], 'productionListenerRule' => [ 'shape' => 'String', ], 'testListenerRule' => [ 'shape' => 'String', ], 'roleArn' => [ 'shape' => 'String', ], ], ], 'AgentUpdateStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'STAGING', 'STAGED', 'UPDATING', 'UPDATED', 'FAILED', ], ], 'AllowedInstanceType' => [ 'type' => 'string', 'max' => 30, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\.\\*\\-]+', ], 'AllowedInstanceTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedInstanceType', ], 'max' => 400, 'min' => 0, ], 'ApplicationProtocol' => [ 'type' => 'string', 'enum' => [ 'http', 'http2', 'grpc', ], ], 'AssignPublicIp' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'Attachment' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], 'details' => [ 'shape' => 'AttachmentDetails', ], ], ], 'AttachmentDetails' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyValuePair', ], ], 'AttachmentStateChange' => [ 'type' => 'structure', 'required' => [ 'attachmentArn', 'status', ], 'members' => [ 'attachmentArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], ], ], 'AttachmentStateChanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'AttachmentStateChange', ], ], 'Attachments' => [ 'type' => 'list', 'member' => [ 'shape' => 'Attachment', ], ], 'Attribute' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], 'targetType' => [ 'shape' => 'TargetType', ], 'targetId' => [ 'shape' => 'String', ], ], ], 'AttributeLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'Attributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'Attribute', ], ], 'AutoRepairActionsStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'AutoRepairConfiguration' => [ 'type' => 'structure', 'members' => [ 'actionsStatus' => [ 'shape' => 'AutoRepairActionsStatus', ], ], ], 'AutoScalingGroupProvider' => [ 'type' => 'structure', 'required' => [ 'autoScalingGroupArn', ], 'members' => [ 'autoScalingGroupArn' => [ 'shape' => 'String', ], 'managedScaling' => [ 'shape' => 'ManagedScaling', ], 'managedTerminationProtection' => [ 'shape' => 'ManagedTerminationProtection', ], 'managedDraining' => [ 'shape' => 'ManagedDraining', ], ], ], 'AutoScalingGroupProviderUpdate' => [ 'type' => 'structure', 'members' => [ 'managedScaling' => [ 'shape' => 'ManagedScaling', ], 'managedTerminationProtection' => [ 'shape' => 'ManagedTerminationProtection', ], 'managedDraining' => [ 'shape' => 'ManagedDraining', ], ], ], 'AvailabilityZoneRebalancing' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'AwsVpcConfiguration' => [ 'type' => 'structure', 'required' => [ 'subnets', ], 'members' => [ 'subnets' => [ 'shape' => 'StringList', ], 'securityGroups' => [ 'shape' => 'StringList', ], 'assignPublicIp' => [ 'shape' => 'AssignPublicIp', ], ], ], 'BareMetal' => [ 'type' => 'string', 'enum' => [ 'included', 'required', 'excluded', ], ], 'BaselineEbsBandwidthMbpsRequest' => [ 'type' => 'structure', 'members' => [ 'min' => [ 'shape' => 'BoxedInteger', ], 'max' => [ 'shape' => 'BoxedInteger', ], ], ], 'BlockedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'Boolean' => [ 'type' => 'boolean', ], 'BoxedBoolean' => [ 'type' => 'boolean', 'box' => true, ], 'BoxedDouble' => [ 'type' => 'double', 'box' => true, ], 'BoxedInteger' => [ 'type' => 'integer', 'box' => true, ], 'BurstablePerformance' => [ 'type' => 'string', 'enum' => [ 'included', 'required', 'excluded', ], ], 'CPUArchitecture' => [ 'type' => 'string', 'enum' => [ 'X86_64', 'ARM64', ], ], 'CanaryConfiguration' => [ 'type' => 'structure', 'members' => [ 'canaryPercent' => [ 'shape' => 'Double', 'box' => true, ], 'canaryBakeTimeInMinutes' => [ 'shape' => 'Integer', 'box' => true, ], ], ], 'CapacityOptionType' => [ 'type' => 'string', 'enum' => [ 'ON_DEMAND', 'SPOT', 'RESERVED', ], ], 'CapacityProvider' => [ 'type' => 'structure', 'members' => [ 'capacityProviderArn' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'CapacityProviderStatus', ], 'autoScalingGroupProvider' => [ 'shape' => 'AutoScalingGroupProvider', ], 'managedInstancesProvider' => [ 'shape' => 'ManagedInstancesProvider', ], 'updateStatus' => [ 'shape' => 'CapacityProviderUpdateStatus', ], 'updateStatusReason' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], 'type' => [ 'shape' => 'CapacityProviderType', ], ], ], 'CapacityProviderField' => [ 'type' => 'string', 'enum' => [ 'TAGS', ], ], 'CapacityProviderFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityProviderField', ], ], 'CapacityProviderStatus' => [ 'type' => 'string', 'enum' => [ 'PROVISIONING', 'ACTIVE', 'DEPROVISIONING', 'INACTIVE', ], ], 'CapacityProviderStrategy' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityProviderStrategyItem', ], ], 'CapacityProviderStrategyItem' => [ 'type' => 'structure', 'required' => [ 'capacityProvider', ], 'members' => [ 'capacityProvider' => [ 'shape' => 'String', ], 'weight' => [ 'shape' => 'CapacityProviderStrategyItemWeight', ], 'base' => [ 'shape' => 'CapacityProviderStrategyItemBase', ], ], ], 'CapacityProviderStrategyItemBase' => [ 'type' => 'integer', 'max' => 100000, 'min' => 0, ], 'CapacityProviderStrategyItemWeight' => [ 'type' => 'integer', 'max' => 1000, 'min' => 0, ], 'CapacityProviderType' => [ 'type' => 'string', 'enum' => [ 'EC2_AUTOSCALING', 'MANAGED_INSTANCES', 'FARGATE', 'FARGATE_SPOT', ], ], 'CapacityProviderUpdateStatus' => [ 'type' => 'string', 'enum' => [ 'CREATE_IN_PROGRESS', 'CREATE_COMPLETE', 'CREATE_FAILED', 'DELETE_IN_PROGRESS', 'DELETE_COMPLETE', 'DELETE_FAILED', 'UPDATE_IN_PROGRESS', 'UPDATE_COMPLETE', 'UPDATE_FAILED', ], ], 'CapacityProviders' => [ 'type' => 'list', 'member' => [ 'shape' => 'CapacityProvider', ], ], 'CapacityReservationPreference' => [ 'type' => 'string', 'enum' => [ 'RESERVATIONS_ONLY', 'RESERVATIONS_FIRST', 'RESERVATIONS_EXCLUDED', ], ], 'CapacityReservationRequest' => [ 'type' => 'structure', 'members' => [ 'reservationGroupArn' => [ 'shape' => 'String', ], 'reservationPreference' => [ 'shape' => 'CapacityReservationPreference', ], ], ], 'ClientException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'Cluster' => [ 'type' => 'structure', 'members' => [ 'clusterArn' => [ 'shape' => 'String', ], 'clusterName' => [ 'shape' => 'String', ], 'configuration' => [ 'shape' => 'ClusterConfiguration', ], 'status' => [ 'shape' => 'String', ], 'registeredContainerInstancesCount' => [ 'shape' => 'Integer', ], 'runningTasksCount' => [ 'shape' => 'Integer', ], 'pendingTasksCount' => [ 'shape' => 'Integer', ], 'activeServicesCount' => [ 'shape' => 'Integer', ], 'statistics' => [ 'shape' => 'Statistics', ], 'tags' => [ 'shape' => 'Tags', ], 'settings' => [ 'shape' => 'ClusterSettings', ], 'capacityProviders' => [ 'shape' => 'StringList', ], 'defaultCapacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'attachments' => [ 'shape' => 'Attachments', ], 'attachmentsStatus' => [ 'shape' => 'String', ], 'serviceConnectDefaults' => [ 'shape' => 'ClusterServiceConnectDefaults', ], ], ], 'ClusterConfiguration' => [ 'type' => 'structure', 'members' => [ 'executeCommandConfiguration' => [ 'shape' => 'ExecuteCommandConfiguration', ], 'managedStorageConfiguration' => [ 'shape' => 'ManagedStorageConfiguration', ], ], ], 'ClusterContainsCapacityProviderException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ClusterContainsContainerInstancesException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ClusterContainsServicesException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ClusterContainsTasksException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ClusterField' => [ 'type' => 'string', 'enum' => [ 'ATTACHMENTS', 'CONFIGURATIONS', 'SETTINGS', 'STATISTICS', 'TAGS', ], ], 'ClusterFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClusterField', ], ], 'ClusterNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ClusterServiceConnectDefaults' => [ 'type' => 'structure', 'members' => [ 'namespace' => [ 'shape' => 'String', ], ], ], 'ClusterServiceConnectDefaultsRequest' => [ 'type' => 'structure', 'required' => [ 'namespace', ], 'members' => [ 'namespace' => [ 'shape' => 'String', ], ], ], 'ClusterSetting' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'ClusterSettingName', ], 'value' => [ 'shape' => 'String', ], ], ], 'ClusterSettingName' => [ 'type' => 'string', 'enum' => [ 'containerInsights', ], ], 'ClusterSettings' => [ 'type' => 'list', 'member' => [ 'shape' => 'ClusterSetting', ], ], 'Clusters' => [ 'type' => 'list', 'member' => [ 'shape' => 'Cluster', ], ], 'Compatibility' => [ 'type' => 'string', 'enum' => [ 'EC2', 'FARGATE', 'EXTERNAL', 'MANAGED_INSTANCES', ], ], 'CompatibilityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Compatibility', ], ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'resourceIds' => [ 'shape' => 'ResourceIds', ], 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'Connectivity' => [ 'type' => 'string', 'enum' => [ 'CONNECTED', 'DISCONNECTED', ], ], 'Container' => [ 'type' => 'structure', 'members' => [ 'containerArn' => [ 'shape' => 'String', ], 'taskArn' => [ 'shape' => 'String', ], 'name' => [ 'shape' => 'String', ], 'image' => [ 'shape' => 'String', ], 'imageDigest' => [ 'shape' => 'String', ], 'runtimeId' => [ 'shape' => 'String', ], 'lastStatus' => [ 'shape' => 'String', ], 'exitCode' => [ 'shape' => 'BoxedInteger', ], 'reason' => [ 'shape' => 'String', ], 'networkBindings' => [ 'shape' => 'NetworkBindings', ], 'networkInterfaces' => [ 'shape' => 'NetworkInterfaces', ], 'healthStatus' => [ 'shape' => 'HealthStatus', ], 'managedAgents' => [ 'shape' => 'ManagedAgents', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'memoryReservation' => [ 'shape' => 'String', ], 'gpuIds' => [ 'shape' => 'GpuIds', ], 'neuronDeviceIds' => [ 'shape' => 'NeuronDeviceIds', ], ], ], 'ContainerCondition' => [ 'type' => 'string', 'enum' => [ 'START', 'COMPLETE', 'SUCCESS', 'HEALTHY', ], ], 'ContainerDefinition' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'image' => [ 'shape' => 'String', ], 'repositoryCredentials' => [ 'shape' => 'RepositoryCredentials', ], 'cpu' => [ 'shape' => 'Integer', ], 'memory' => [ 'shape' => 'BoxedInteger', ], 'memoryReservation' => [ 'shape' => 'BoxedInteger', ], 'links' => [ 'shape' => 'StringList', ], 'portMappings' => [ 'shape' => 'PortMappingList', ], 'essential' => [ 'shape' => 'BoxedBoolean', ], 'restartPolicy' => [ 'shape' => 'ContainerRestartPolicy', ], 'entryPoint' => [ 'shape' => 'StringList', ], 'command' => [ 'shape' => 'StringList', ], 'environment' => [ 'shape' => 'EnvironmentVariables', ], 'environmentFiles' => [ 'shape' => 'EnvironmentFiles', ], 'mountPoints' => [ 'shape' => 'MountPointList', ], 'volumesFrom' => [ 'shape' => 'VolumeFromList', ], 'linuxParameters' => [ 'shape' => 'LinuxParameters', ], 'secrets' => [ 'shape' => 'SecretList', ], 'dependsOn' => [ 'shape' => 'ContainerDependencies', ], 'startTimeout' => [ 'shape' => 'BoxedInteger', ], 'stopTimeout' => [ 'shape' => 'BoxedInteger', ], 'versionConsistency' => [ 'shape' => 'VersionConsistency', ], 'hostname' => [ 'shape' => 'String', ], 'user' => [ 'shape' => 'String', ], 'workingDirectory' => [ 'shape' => 'String', ], 'disableNetworking' => [ 'shape' => 'BoxedBoolean', ], 'privileged' => [ 'shape' => 'BoxedBoolean', ], 'readonlyRootFilesystem' => [ 'shape' => 'BoxedBoolean', ], 'dnsServers' => [ 'shape' => 'StringList', ], 'dnsSearchDomains' => [ 'shape' => 'StringList', ], 'extraHosts' => [ 'shape' => 'HostEntryList', ], 'dockerSecurityOptions' => [ 'shape' => 'StringList', ], 'interactive' => [ 'shape' => 'BoxedBoolean', ], 'pseudoTerminal' => [ 'shape' => 'BoxedBoolean', ], 'dockerLabels' => [ 'shape' => 'DockerLabelsMap', ], 'ulimits' => [ 'shape' => 'UlimitList', ], 'logConfiguration' => [ 'shape' => 'LogConfiguration', ], 'healthCheck' => [ 'shape' => 'HealthCheck', ], 'systemControls' => [ 'shape' => 'SystemControls', ], 'resourceRequirements' => [ 'shape' => 'ResourceRequirements', ], 'firelensConfiguration' => [ 'shape' => 'FirelensConfiguration', ], 'credentialSpecs' => [ 'shape' => 'StringList', ], ], ], 'ContainerDefinitions' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerDefinition', ], ], 'ContainerDependencies' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerDependency', ], ], 'ContainerDependency' => [ 'type' => 'structure', 'required' => [ 'containerName', 'condition', ], 'members' => [ 'containerName' => [ 'shape' => 'String', ], 'condition' => [ 'shape' => 'ContainerCondition', ], ], ], 'ContainerImage' => [ 'type' => 'structure', 'members' => [ 'containerName' => [ 'shape' => 'String', ], 'imageDigest' => [ 'shape' => 'String', ], 'image' => [ 'shape' => 'String', ], ], ], 'ContainerImages' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerImage', ], ], 'ContainerInstance' => [ 'type' => 'structure', 'members' => [ 'containerInstanceArn' => [ 'shape' => 'String', ], 'ec2InstanceId' => [ 'shape' => 'String', ], 'capacityProviderName' => [ 'shape' => 'String', ], 'version' => [ 'shape' => 'Long', ], 'versionInfo' => [ 'shape' => 'VersionInfo', ], 'remainingResources' => [ 'shape' => 'Resources', ], 'registeredResources' => [ 'shape' => 'Resources', ], 'status' => [ 'shape' => 'String', ], 'statusReason' => [ 'shape' => 'String', ], 'agentConnected' => [ 'shape' => 'Boolean', ], 'runningTasksCount' => [ 'shape' => 'Integer', ], 'pendingTasksCount' => [ 'shape' => 'Integer', ], 'agentUpdateStatus' => [ 'shape' => 'AgentUpdateStatus', ], 'attributes' => [ 'shape' => 'Attributes', ], 'registeredAt' => [ 'shape' => 'Timestamp', ], 'attachments' => [ 'shape' => 'Attachments', ], 'tags' => [ 'shape' => 'Tags', ], 'healthStatus' => [ 'shape' => 'ContainerInstanceHealthStatus', ], ], ], 'ContainerInstanceField' => [ 'type' => 'string', 'enum' => [ 'TAGS', 'CONTAINER_INSTANCE_HEALTH', ], ], 'ContainerInstanceFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerInstanceField', ], ], 'ContainerInstanceHealthStatus' => [ 'type' => 'structure', 'members' => [ 'overallStatus' => [ 'shape' => 'InstanceHealthCheckState', ], 'details' => [ 'shape' => 'InstanceHealthCheckResultList', ], ], ], 'ContainerInstanceStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DRAINING', 'REGISTERING', 'DEREGISTERING', 'REGISTRATION_FAILED', ], ], 'ContainerInstances' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerInstance', ], ], 'ContainerOverride' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'command' => [ 'shape' => 'StringList', ], 'environment' => [ 'shape' => 'EnvironmentVariables', ], 'environmentFiles' => [ 'shape' => 'EnvironmentFiles', ], 'cpu' => [ 'shape' => 'BoxedInteger', ], 'memory' => [ 'shape' => 'BoxedInteger', ], 'memoryReservation' => [ 'shape' => 'BoxedInteger', ], 'resourceRequirements' => [ 'shape' => 'ResourceRequirements', ], ], ], 'ContainerOverrides' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerOverride', ], ], 'ContainerRestartPolicy' => [ 'type' => 'structure', 'required' => [ 'enabled', ], 'members' => [ 'enabled' => [ 'shape' => 'BoxedBoolean', ], 'ignoredExitCodes' => [ 'shape' => 'IntegerList', ], 'restartAttemptPeriod' => [ 'shape' => 'BoxedInteger', ], ], ], 'ContainerStateChange' => [ 'type' => 'structure', 'members' => [ 'containerName' => [ 'shape' => 'String', ], 'imageDigest' => [ 'shape' => 'String', ], 'runtimeId' => [ 'shape' => 'String', ], 'exitCode' => [ 'shape' => 'BoxedInteger', ], 'networkBindings' => [ 'shape' => 'NetworkBindings', ], 'reason' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], ], ], 'ContainerStateChanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContainerStateChange', ], ], 'Containers' => [ 'type' => 'list', 'member' => [ 'shape' => 'Container', ], ], 'ContinueServiceDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'serviceDeploymentArn', 'hookId', ], 'members' => [ 'serviceDeploymentArn' => [ 'shape' => 'String', ], 'hookId' => [ 'shape' => 'String', ], 'action' => [ 'shape' => 'DeploymentLifecycleHookAction', ], ], ], 'ContinueServiceDeploymentResponse' => [ 'type' => 'structure', 'members' => [ 'serviceDeploymentArn' => [ 'shape' => 'String', ], ], ], 'CpuManufacturer' => [ 'type' => 'string', 'enum' => [ 'intel', 'amd', 'amazon-web-services', ], ], 'CpuManufacturerSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'CpuManufacturer', ], ], 'CreateCapacityProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], 'autoScalingGroupProvider' => [ 'shape' => 'AutoScalingGroupProvider', ], 'managedInstancesProvider' => [ 'shape' => 'CreateManagedInstancesProviderConfiguration', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'CreateCapacityProviderResponse' => [ 'type' => 'structure', 'members' => [ 'capacityProvider' => [ 'shape' => 'CapacityProvider', ], ], ], 'CreateClusterRequest' => [ 'type' => 'structure', 'members' => [ 'clusterName' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], 'settings' => [ 'shape' => 'ClusterSettings', ], 'configuration' => [ 'shape' => 'ClusterConfiguration', ], 'capacityProviders' => [ 'shape' => 'StringList', ], 'defaultCapacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'serviceConnectDefaults' => [ 'shape' => 'ClusterServiceConnectDefaultsRequest', ], ], ], 'CreateClusterResponse' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'Cluster', ], ], ], 'CreateDaemonRequest' => [ 'type' => 'structure', 'required' => [ 'daemonName', 'daemonTaskDefinitionArn', 'capacityProviderArns', ], 'members' => [ 'daemonName' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'daemonTaskDefinitionArn' => [ 'shape' => 'String', ], 'capacityProviderArns' => [ 'shape' => 'StringList', ], 'deploymentConfiguration' => [ 'shape' => 'DaemonDeploymentConfiguration', ], 'tags' => [ 'shape' => 'Tags', ], 'propagateTags' => [ 'shape' => 'DaemonPropagateTags', ], 'enableECSManagedTags' => [ 'shape' => 'Boolean', ], 'enableExecuteCommand' => [ 'shape' => 'Boolean', ], 'clientToken' => [ 'shape' => 'String', ], ], ], 'CreateDaemonResponse' => [ 'type' => 'structure', 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'deploymentArn' => [ 'shape' => 'String', ], ], ], 'CreateExpressGatewayServiceRequest' => [ 'type' => 'structure', 'required' => [ 'infrastructureRoleArn', ], 'members' => [ 'executionRoleArn' => [ 'shape' => 'String', ], 'infrastructureRoleArn' => [ 'shape' => 'String', ], 'serviceName' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], 'healthCheckPath' => [ 'shape' => 'String', ], 'primaryContainer' => [ 'shape' => 'ExpressGatewayContainer', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'ExpressGatewayServiceNetworkConfiguration', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'scalingTarget' => [ 'shape' => 'ExpressGatewayScalingTarget', ], 'tags' => [ 'shape' => 'Tags', ], 'taskDefinitionArn' => [ 'shape' => 'String', ], ], ], 'CreateExpressGatewayServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'ECSExpressGatewayService', ], ], ], 'CreateManagedInstancesProviderConfiguration' => [ 'type' => 'structure', 'required' => [ 'infrastructureRoleArn', 'instanceLaunchTemplate', ], 'members' => [ 'infrastructureRoleArn' => [ 'shape' => 'String', ], 'instanceLaunchTemplate' => [ 'shape' => 'InstanceLaunchTemplate', ], 'propagateTags' => [ 'shape' => 'PropagateMITags', ], 'infrastructureOptimization' => [ 'shape' => 'InfrastructureOptimization', ], 'autoRepairConfiguration' => [ 'shape' => 'AutoRepairConfiguration', ], ], ], 'CreateServiceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceName', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'serviceName' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'availabilityZoneRebalancing' => [ 'shape' => 'AvailabilityZoneRebalancing', ], 'loadBalancers' => [ 'shape' => 'LoadBalancers', ], 'serviceRegistries' => [ 'shape' => 'ServiceRegistries', ], 'desiredCount' => [ 'shape' => 'BoxedInteger', ], 'clientToken' => [ 'shape' => 'String', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'capacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'platformVersion' => [ 'shape' => 'String', ], 'role' => [ 'shape' => 'String', ], 'deploymentConfiguration' => [ 'shape' => 'DeploymentConfiguration', ], 'placementConstraints' => [ 'shape' => 'PlacementConstraints', ], 'placementStrategy' => [ 'shape' => 'PlacementStrategies', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'healthCheckGracePeriodSeconds' => [ 'shape' => 'BoxedInteger', ], 'schedulingStrategy' => [ 'shape' => 'SchedulingStrategy', ], 'deploymentController' => [ 'shape' => 'DeploymentController', ], 'tags' => [ 'shape' => 'Tags', ], 'enableECSManagedTags' => [ 'shape' => 'Boolean', ], 'propagateTags' => [ 'shape' => 'PropagateTags', ], 'enableExecuteCommand' => [ 'shape' => 'Boolean', ], 'serviceConnectConfiguration' => [ 'shape' => 'ServiceConnectConfiguration', ], 'volumeConfigurations' => [ 'shape' => 'ServiceVolumeConfigurations', ], 'vpcLatticeConfigurations' => [ 'shape' => 'VpcLatticeConfigurations', ], 'monitoring' => [ 'shape' => 'MonitoringConfiguration', ], ], ], 'CreateServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'CreateTaskSetRequest' => [ 'type' => 'structure', 'required' => [ 'service', 'cluster', 'taskDefinition', ], 'members' => [ 'service' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], 'externalId' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'loadBalancers' => [ 'shape' => 'LoadBalancers', ], 'serviceRegistries' => [ 'shape' => 'ServiceRegistries', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'capacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'platformVersion' => [ 'shape' => 'String', ], 'scale' => [ 'shape' => 'Scale', ], 'clientToken' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'CreateTaskSetResponse' => [ 'type' => 'structure', 'members' => [ 'taskSet' => [ 'shape' => 'TaskSet', ], ], ], 'CreatedAt' => [ 'type' => 'structure', 'members' => [ 'before' => [ 'shape' => 'Timestamp', ], 'after' => [ 'shape' => 'Timestamp', ], ], ], 'DaemonAlarmConfiguration' => [ 'type' => 'structure', 'members' => [ 'alarmNames' => [ 'shape' => 'StringList', ], 'enable' => [ 'shape' => 'Boolean', ], ], ], 'DaemonCapacityProvider' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'runningCount' => [ 'shape' => 'Integer', ], ], ], 'DaemonCapacityProviderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonCapacityProvider', ], ], 'DaemonCircuitBreaker' => [ 'type' => 'structure', 'members' => [ 'failureCount' => [ 'shape' => 'Integer', ], 'status' => [ 'shape' => 'DaemonDeploymentRollbackMonitorsStatus', ], 'threshold' => [ 'shape' => 'Integer', ], ], ], 'DaemonContainerDefinition' => [ 'type' => 'structure', 'required' => [ 'image', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'image' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'BoxedInteger', ], 'memoryReservation' => [ 'shape' => 'BoxedInteger', ], 'repositoryCredentials' => [ 'shape' => 'RepositoryCredentials', ], 'healthCheck' => [ 'shape' => 'HealthCheck', ], 'cpu' => [ 'shape' => 'Integer', ], 'essential' => [ 'shape' => 'BoxedBoolean', ], 'entryPoint' => [ 'shape' => 'StringList', ], 'command' => [ 'shape' => 'StringList', ], 'workingDirectory' => [ 'shape' => 'String', ], 'environmentFiles' => [ 'shape' => 'EnvironmentFiles', ], 'environment' => [ 'shape' => 'EnvironmentVariables', ], 'secrets' => [ 'shape' => 'SecretList', ], 'readonlyRootFilesystem' => [ 'shape' => 'BoxedBoolean', ], 'mountPoints' => [ 'shape' => 'MountPointList', ], 'logConfiguration' => [ 'shape' => 'LogConfiguration', ], 'firelensConfiguration' => [ 'shape' => 'FirelensConfiguration', ], 'privileged' => [ 'shape' => 'BoxedBoolean', ], 'user' => [ 'shape' => 'String', ], 'ulimits' => [ 'shape' => 'UlimitList', ], 'linuxParameters' => [ 'shape' => 'DaemonLinuxParameters', ], 'dependsOn' => [ 'shape' => 'ContainerDependencies', ], 'startTimeout' => [ 'shape' => 'BoxedInteger', ], 'stopTimeout' => [ 'shape' => 'BoxedInteger', ], 'systemControls' => [ 'shape' => 'SystemControls', ], 'interactive' => [ 'shape' => 'BoxedBoolean', ], 'pseudoTerminal' => [ 'shape' => 'BoxedBoolean', ], 'restartPolicy' => [ 'shape' => 'ContainerRestartPolicy', ], ], ], 'DaemonContainerDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonContainerDefinition', ], ], 'DaemonContainerImage' => [ 'type' => 'structure', 'members' => [ 'containerName' => [ 'shape' => 'String', ], 'imageDigest' => [ 'shape' => 'String', ], 'image' => [ 'shape' => 'String', ], ], ], 'DaemonContainerImages' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonContainerImage', ], ], 'DaemonDeployment' => [ 'type' => 'structure', 'members' => [ 'daemonDeploymentArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonDeploymentStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'targetDaemonRevision' => [ 'shape' => 'DaemonDeploymentRevisionDetail', ], 'sourceDaemonRevisions' => [ 'shape' => 'DaemonDeploymentRevisionDetailList', ], 'circuitBreaker' => [ 'shape' => 'DaemonCircuitBreaker', ], 'alarms' => [ 'shape' => 'DaemonDeploymentAlarms', ], 'rollback' => [ 'shape' => 'DaemonRollback', ], 'deploymentConfiguration' => [ 'shape' => 'DaemonDeploymentConfiguration', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'stoppedAt' => [ 'shape' => 'Timestamp', ], 'finishedAt' => [ 'shape' => 'Timestamp', ], ], ], 'DaemonDeploymentAlarms' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'DaemonDeploymentRollbackMonitorsStatus', ], 'alarmNames' => [ 'shape' => 'StringList', ], 'triggeredAlarmNames' => [ 'shape' => 'StringList', ], ], ], 'DaemonDeploymentCapacityProvider' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'runningInstanceCount' => [ 'shape' => 'BoxedInteger', ], 'drainingInstanceCount' => [ 'shape' => 'BoxedInteger', ], ], ], 'DaemonDeploymentCapacityProviderList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonDeploymentCapacityProvider', ], ], 'DaemonDeploymentConfiguration' => [ 'type' => 'structure', 'members' => [ 'drainPercent' => [ 'shape' => 'DaemonDrainPercent', ], 'alarms' => [ 'shape' => 'DaemonAlarmConfiguration', ], 'bakeTimeInMinutes' => [ 'shape' => 'Integer', ], ], ], 'DaemonDeploymentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonDeployment', ], ], 'DaemonDeploymentRevisionDetail' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'capacityProviders' => [ 'shape' => 'DaemonDeploymentCapacityProviderList', ], 'totalRunningInstanceCount' => [ 'shape' => 'BoxedInteger', ], 'totalDrainingInstanceCount' => [ 'shape' => 'BoxedInteger', ], ], ], 'DaemonDeploymentRevisionDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonDeploymentRevisionDetail', ], ], 'DaemonDeploymentRollbackMonitorsStatus' => [ 'type' => 'string', 'enum' => [ 'TRIGGERED', 'MONITORING', 'MONITORING_COMPLETE', 'DISABLED', ], ], 'DaemonDeploymentStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'SUCCESSFUL', 'STOPPED', 'STOP_REQUESTED', 'IN_PROGRESS', 'ROLLBACK_IN_PROGRESS', 'ROLLBACK_SUCCESSFUL', 'ROLLBACK_FAILED', ], ], 'DaemonDeploymentStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonDeploymentStatus', ], ], 'DaemonDeploymentSummary' => [ 'type' => 'structure', 'members' => [ 'daemonDeploymentArn' => [ 'shape' => 'String', ], 'daemonArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonDeploymentStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'targetDaemonRevisionArn' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'stoppedAt' => [ 'shape' => 'Timestamp', ], 'finishedAt' => [ 'shape' => 'Timestamp', ], ], ], 'DaemonDeploymentSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonDeploymentSummary', ], ], 'DaemonDetail' => [ 'type' => 'structure', 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonStatus', ], 'currentRevisions' => [ 'shape' => 'DaemonRevisionDetailList', ], 'deploymentArn' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'DaemonDrainPercent' => [ 'type' => 'double', 'box' => true, 'max' => 100.0, 'min' => 0.0, ], 'DaemonIpcMode' => [ 'type' => 'string', 'enum' => [ 'none', 'shared', ], ], 'DaemonLinuxParameters' => [ 'type' => 'structure', 'members' => [ 'capabilities' => [ 'shape' => 'KernelCapabilities', ], 'devices' => [ 'shape' => 'DevicesList', ], 'initProcessEnabled' => [ 'shape' => 'BoxedBoolean', ], 'tmpfs' => [ 'shape' => 'TmpfsList', ], ], ], 'DaemonNotActiveException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'DaemonNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'DaemonPidMode' => [ 'type' => 'string', 'enum' => [ 'none', 'shared', ], ], 'DaemonPropagateTags' => [ 'type' => 'string', 'enum' => [ 'DAEMON', 'NONE', ], ], 'DaemonRevision' => [ 'type' => 'structure', 'members' => [ 'daemonRevisionArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'daemonArn' => [ 'shape' => 'String', ], 'daemonTaskDefinitionArn' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'containerImages' => [ 'shape' => 'DaemonContainerImages', ], 'propagateTags' => [ 'shape' => 'DaemonPropagateTags', ], 'enableECSManagedTags' => [ 'shape' => 'BoxedBoolean', ], 'enableExecuteCommand' => [ 'shape' => 'BoxedBoolean', ], ], ], 'DaemonRevisionDetail' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'capacityProviders' => [ 'shape' => 'DaemonCapacityProviderList', ], 'totalRunningCount' => [ 'shape' => 'Integer', ], ], ], 'DaemonRevisionDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonRevisionDetail', ], ], 'DaemonRevisions' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonRevision', ], ], 'DaemonRollback' => [ 'type' => 'structure', 'members' => [ 'reason' => [ 'shape' => 'String', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'rollbackTargetDaemonRevisionArn' => [ 'shape' => 'String', ], 'rollbackCapacityProviders' => [ 'shape' => 'StringList', ], ], ], 'DaemonStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETE_IN_PROGRESS', ], ], 'DaemonSummariesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonSummary', ], ], 'DaemonSummary' => [ 'type' => 'structure', 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'DaemonTaskDefinition' => [ 'type' => 'structure', 'members' => [ 'daemonTaskDefinitionArn' => [ 'shape' => 'String', ], 'family' => [ 'shape' => 'String', ], 'revision' => [ 'shape' => 'Integer', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'executionRoleArn' => [ 'shape' => 'String', ], 'containerDefinitions' => [ 'shape' => 'DaemonContainerDefinitionList', ], 'volumes' => [ 'shape' => 'DaemonVolumeList', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonTaskDefinitionStatus', ], 'registeredAt' => [ 'shape' => 'Timestamp', ], 'deleteRequestedAt' => [ 'shape' => 'Timestamp', ], 'registeredBy' => [ 'shape' => 'String', ], 'pidMode' => [ 'shape' => 'DaemonPidMode', ], 'ipcMode' => [ 'shape' => 'DaemonIpcMode', ], ], ], 'DaemonTaskDefinitionRevisionFilter' => [ 'type' => 'string', 'enum' => [ 'LAST_REGISTERED', ], ], 'DaemonTaskDefinitionStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETE_IN_PROGRESS', 'DELETED', ], ], 'DaemonTaskDefinitionStatusFilter' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DELETE_IN_PROGRESS', 'ALL', ], ], 'DaemonTaskDefinitionSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonTaskDefinitionSummary', ], ], 'DaemonTaskDefinitionSummary' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'registeredAt' => [ 'shape' => 'Timestamp', ], 'registeredBy' => [ 'shape' => 'String', ], 'deleteRequestedAt' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'DaemonTaskDefinitionStatus', ], ], ], 'DaemonVolume' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'host' => [ 'shape' => 'HostVolumeProperties', ], ], ], 'DaemonVolumeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DaemonVolume', ], ], 'DeleteAccountSettingRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'SettingName', ], 'principalArn' => [ 'shape' => 'String', ], ], ], 'DeleteAccountSettingResponse' => [ 'type' => 'structure', 'members' => [ 'setting' => [ 'shape' => 'Setting', ], ], ], 'DeleteAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'attributes', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'attributes' => [ 'shape' => 'Attributes', ], ], ], 'DeleteAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'attributes' => [ 'shape' => 'Attributes', ], ], ], 'DeleteCapacityProviderRequest' => [ 'type' => 'structure', 'required' => [ 'capacityProvider', ], 'members' => [ 'capacityProvider' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], ], ], 'DeleteCapacityProviderResponse' => [ 'type' => 'structure', 'members' => [ 'capacityProvider' => [ 'shape' => 'CapacityProvider', ], ], ], 'DeleteClusterRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], ], ], 'DeleteClusterResponse' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'Cluster', ], ], ], 'DeleteDaemonRequest' => [ 'type' => 'structure', 'required' => [ 'daemonArn', ], 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], ], ], 'DeleteDaemonResponse' => [ 'type' => 'structure', 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'deploymentArn' => [ 'shape' => 'String', ], ], ], 'DeleteDaemonTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'daemonTaskDefinition', ], 'members' => [ 'daemonTaskDefinition' => [ 'shape' => 'String', ], ], ], 'DeleteDaemonTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'daemonTaskDefinitionArn' => [ 'shape' => 'String', ], ], ], 'DeleteExpressGatewayServiceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'String', ], ], ], 'DeleteExpressGatewayServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'ECSExpressGatewayService', ], ], ], 'DeleteServiceRequest' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'force' => [ 'shape' => 'BoxedBoolean', ], ], ], 'DeleteServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'DeleteTaskDefinitionsRequest' => [ 'type' => 'structure', 'required' => [ 'taskDefinitions', ], 'members' => [ 'taskDefinitions' => [ 'shape' => 'StringList', ], ], ], 'DeleteTaskDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'taskDefinitions' => [ 'shape' => 'TaskDefinitionList', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DeleteTaskSetRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'service', 'taskSet', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'taskSet' => [ 'shape' => 'String', ], 'force' => [ 'shape' => 'BoxedBoolean', ], ], ], 'DeleteTaskSetResponse' => [ 'type' => 'structure', 'members' => [ 'taskSet' => [ 'shape' => 'TaskSet', ], ], ], 'Deployment' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'desiredCount' => [ 'shape' => 'Integer', ], 'pendingCount' => [ 'shape' => 'Integer', ], 'runningCount' => [ 'shape' => 'Integer', ], 'failedTasks' => [ 'shape' => 'Integer', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'capacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'platformVersion' => [ 'shape' => 'String', ], 'platformFamily' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'rolloutState' => [ 'shape' => 'DeploymentRolloutState', ], 'rolloutStateReason' => [ 'shape' => 'String', ], 'serviceConnectConfiguration' => [ 'shape' => 'ServiceConnectConfiguration', ], 'serviceConnectResources' => [ 'shape' => 'ServiceConnectServiceResourceList', ], 'volumeConfigurations' => [ 'shape' => 'ServiceVolumeConfigurations', ], 'fargateEphemeralStorage' => [ 'shape' => 'DeploymentEphemeralStorage', ], 'vpcLatticeConfigurations' => [ 'shape' => 'VpcLatticeConfigurations', ], ], ], 'DeploymentAlarms' => [ 'type' => 'structure', 'required' => [ 'alarmNames', 'rollback', 'enable', ], 'members' => [ 'alarmNames' => [ 'shape' => 'StringList', ], 'rollback' => [ 'shape' => 'Boolean', ], 'enable' => [ 'shape' => 'Boolean', ], ], ], 'DeploymentCircuitBreaker' => [ 'type' => 'structure', 'required' => [ 'enable', 'rollback', ], 'members' => [ 'enable' => [ 'shape' => 'Boolean', ], 'rollback' => [ 'shape' => 'Boolean', ], 'resetOnHealthyTask' => [ 'shape' => 'BoxedBoolean', ], 'thresholdConfiguration' => [ 'shape' => 'ThresholdConfiguration', ], ], ], 'DeploymentConfiguration' => [ 'type' => 'structure', 'members' => [ 'deploymentCircuitBreaker' => [ 'shape' => 'DeploymentCircuitBreaker', ], 'maximumPercent' => [ 'shape' => 'BoxedInteger', ], 'minimumHealthyPercent' => [ 'shape' => 'BoxedInteger', ], 'alarms' => [ 'shape' => 'DeploymentAlarms', ], 'strategy' => [ 'shape' => 'DeploymentStrategy', ], 'bakeTimeInMinutes' => [ 'shape' => 'BoxedInteger', ], 'lifecycleHooks' => [ 'shape' => 'DeploymentLifecycleHookList', ], 'linearConfiguration' => [ 'shape' => 'LinearConfiguration', ], 'canaryConfiguration' => [ 'shape' => 'CanaryConfiguration', ], ], ], 'DeploymentController' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'DeploymentControllerType', ], ], ], 'DeploymentControllerType' => [ 'type' => 'string', 'enum' => [ 'ECS', 'CODE_DEPLOY', 'EXTERNAL', ], ], 'DeploymentEphemeralStorage' => [ 'type' => 'structure', 'members' => [ 'kmsKeyId' => [ 'shape' => 'String', ], ], ], 'DeploymentLifecycleHook' => [ 'type' => 'structure', 'members' => [ 'targetType' => [ 'shape' => 'DeploymentLifecycleHookTargetType', ], 'hookTargetArn' => [ 'shape' => 'String', ], 'roleArn' => [ 'shape' => 'IAMRoleArn', ], 'lifecycleStages' => [ 'shape' => 'DeploymentLifecycleHookStageList', ], 'hookDetails' => [ 'shape' => 'HookDetails', ], 'timeoutConfiguration' => [ 'shape' => 'DeploymentLifecycleHookTimeoutConfiguration', ], ], ], 'DeploymentLifecycleHookAction' => [ 'type' => 'string', 'enum' => [ 'ROLLBACK', 'CONTINUE', ], ], 'DeploymentLifecycleHookDetail' => [ 'type' => 'structure', 'members' => [ 'hookId' => [ 'shape' => 'String', ], 'targetType' => [ 'shape' => 'DeploymentLifecycleHookTargetType', ], 'targetArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DeploymentLifecycleHookStatus', ], 'expiresAt' => [ 'shape' => 'Timestamp', ], 'timeoutAction' => [ 'shape' => 'DeploymentLifecycleHookAction', ], ], ], 'DeploymentLifecycleHookDetailList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentLifecycleHookDetail', ], ], 'DeploymentLifecycleHookDuration' => [ 'type' => 'integer', 'box' => true, 'max' => 20160, 'min' => 1, ], 'DeploymentLifecycleHookList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentLifecycleHook', ], ], 'DeploymentLifecycleHookStage' => [ 'type' => 'string', 'enum' => [ 'RECONCILE_SERVICE', 'PRE_SCALE_UP', 'POST_SCALE_UP', 'TEST_TRAFFIC_SHIFT', 'POST_TEST_TRAFFIC_SHIFT', 'PRE_PRODUCTION_TRAFFIC_SHIFT', 'PRODUCTION_TRAFFIC_SHIFT', 'POST_PRODUCTION_TRAFFIC_SHIFT', ], ], 'DeploymentLifecycleHookStageList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeploymentLifecycleHookStage', ], ], 'DeploymentLifecycleHookStatus' => [ 'type' => 'string', 'enum' => [ 'AWAITING_ACTION', 'IN_PROGRESS', 'SUCCEEDED', 'FAILED', 'TIMED_OUT', ], ], 'DeploymentLifecycleHookTargetType' => [ 'type' => 'string', 'enum' => [ 'AWS_LAMBDA', 'PAUSE', ], ], 'DeploymentLifecycleHookTimeoutConfiguration' => [ 'type' => 'structure', 'members' => [ 'timeoutInMinutes' => [ 'shape' => 'DeploymentLifecycleHookDuration', ], 'action' => [ 'shape' => 'DeploymentLifecycleHookAction', ], ], ], 'DeploymentRolloutState' => [ 'type' => 'string', 'enum' => [ 'COMPLETED', 'FAILED', 'IN_PROGRESS', ], ], 'DeploymentStrategy' => [ 'type' => 'string', 'enum' => [ 'ROLLING', 'BLUE_GREEN', 'LINEAR', 'CANARY', ], ], 'Deployments' => [ 'type' => 'list', 'member' => [ 'shape' => 'Deployment', ], ], 'DeregisterContainerInstanceRequest' => [ 'type' => 'structure', 'required' => [ 'containerInstance', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'containerInstance' => [ 'shape' => 'String', ], 'force' => [ 'shape' => 'BoxedBoolean', ], ], ], 'DeregisterContainerInstanceResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstance' => [ 'shape' => 'ContainerInstance', ], ], ], 'DeregisterTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'taskDefinition', ], 'members' => [ 'taskDefinition' => [ 'shape' => 'String', ], ], ], 'DeregisterTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'taskDefinition' => [ 'shape' => 'TaskDefinition', ], ], ], 'DescribeCapacityProvidersRequest' => [ 'type' => 'structure', 'members' => [ 'capacityProviders' => [ 'shape' => 'StringList', ], 'cluster' => [ 'shape' => 'String', ], 'include' => [ 'shape' => 'CapacityProviderFieldList', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'DescribeCapacityProvidersResponse' => [ 'type' => 'structure', 'members' => [ 'capacityProviders' => [ 'shape' => 'CapacityProviders', ], 'failures' => [ 'shape' => 'Failures', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'DescribeClustersRequest' => [ 'type' => 'structure', 'members' => [ 'clusters' => [ 'shape' => 'StringList', ], 'include' => [ 'shape' => 'ClusterFieldList', ], ], ], 'DescribeClustersResponse' => [ 'type' => 'structure', 'members' => [ 'clusters' => [ 'shape' => 'Clusters', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeContainerInstancesRequest' => [ 'type' => 'structure', 'required' => [ 'containerInstances', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'containerInstances' => [ 'shape' => 'StringList', ], 'include' => [ 'shape' => 'ContainerInstanceFieldList', ], ], ], 'DescribeContainerInstancesResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstances' => [ 'shape' => 'ContainerInstances', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeDaemonDeploymentsRequest' => [ 'type' => 'structure', 'required' => [ 'daemonDeploymentArns', ], 'members' => [ 'daemonDeploymentArns' => [ 'shape' => 'StringList', ], ], ], 'DescribeDaemonDeploymentsResponse' => [ 'type' => 'structure', 'members' => [ 'failures' => [ 'shape' => 'Failures', ], 'daemonDeployments' => [ 'shape' => 'DaemonDeploymentList', ], ], ], 'DescribeDaemonRequest' => [ 'type' => 'structure', 'required' => [ 'daemonArn', ], 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], ], ], 'DescribeDaemonResponse' => [ 'type' => 'structure', 'members' => [ 'daemon' => [ 'shape' => 'DaemonDetail', ], ], ], 'DescribeDaemonRevisionsRequest' => [ 'type' => 'structure', 'required' => [ 'daemonRevisionArns', ], 'members' => [ 'daemonRevisionArns' => [ 'shape' => 'StringList', ], ], ], 'DescribeDaemonRevisionsResponse' => [ 'type' => 'structure', 'members' => [ 'daemonRevisions' => [ 'shape' => 'DaemonRevisions', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeDaemonTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'daemonTaskDefinition', ], 'members' => [ 'daemonTaskDefinition' => [ 'shape' => 'String', ], ], ], 'DescribeDaemonTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'daemonTaskDefinition' => [ 'shape' => 'DaemonTaskDefinition', ], ], ], 'DescribeExpressGatewayServiceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'String', ], 'include' => [ 'shape' => 'ExpressGatewayServiceIncludeList', ], ], ], 'DescribeExpressGatewayServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'ECSExpressGatewayService', ], ], ], 'DescribeServiceDeploymentsRequest' => [ 'type' => 'structure', 'required' => [ 'serviceDeploymentArns', ], 'members' => [ 'serviceDeploymentArns' => [ 'shape' => 'StringList', ], ], ], 'DescribeServiceDeploymentsResponse' => [ 'type' => 'structure', 'members' => [ 'serviceDeployments' => [ 'shape' => 'ServiceDeployments', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeServiceRevisionsRequest' => [ 'type' => 'structure', 'required' => [ 'serviceRevisionArns', ], 'members' => [ 'serviceRevisionArns' => [ 'shape' => 'StringList', ], ], ], 'DescribeServiceRevisionsResponse' => [ 'type' => 'structure', 'members' => [ 'serviceRevisions' => [ 'shape' => 'ServiceRevisions', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeServicesRequest' => [ 'type' => 'structure', 'required' => [ 'services', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'services' => [ 'shape' => 'StringList', ], 'include' => [ 'shape' => 'ServiceFieldList', ], ], ], 'DescribeServicesResponse' => [ 'type' => 'structure', 'members' => [ 'services' => [ 'shape' => 'Services', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'taskDefinition', ], 'members' => [ 'taskDefinition' => [ 'shape' => 'String', ], 'include' => [ 'shape' => 'TaskDefinitionFieldList', ], ], ], 'DescribeTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'taskDefinition' => [ 'shape' => 'TaskDefinition', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'DescribeTaskSetsRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'service', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'taskSets' => [ 'shape' => 'StringList', ], 'include' => [ 'shape' => 'TaskSetFieldList', ], ], ], 'DescribeTaskSetsResponse' => [ 'type' => 'structure', 'members' => [ 'taskSets' => [ 'shape' => 'TaskSets', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DescribeTasksRequest' => [ 'type' => 'structure', 'required' => [ 'tasks', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'tasks' => [ 'shape' => 'StringList', ], 'include' => [ 'shape' => 'TaskFieldList', ], ], ], 'DescribeTasksResponse' => [ 'type' => 'structure', 'members' => [ 'tasks' => [ 'shape' => 'Tasks', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'DesiredStatus' => [ 'type' => 'string', 'enum' => [ 'RUNNING', 'PENDING', 'STOPPED', ], ], 'Device' => [ 'type' => 'structure', 'required' => [ 'hostPath', ], 'members' => [ 'hostPath' => [ 'shape' => 'String', ], 'containerPath' => [ 'shape' => 'String', ], 'permissions' => [ 'shape' => 'DeviceCgroupPermissions', ], ], ], 'DeviceCgroupPermission' => [ 'type' => 'string', 'enum' => [ 'read', 'write', 'mknod', ], ], 'DeviceCgroupPermissions' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceCgroupPermission', ], ], 'DevicesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Device', ], ], 'DiscoverPollEndpointRequest' => [ 'type' => 'structure', 'members' => [ 'containerInstance' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], ], ], 'DiscoverPollEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'endpoint' => [ 'shape' => 'String', ], 'telemetryEndpoint' => [ 'shape' => 'String', ], 'serviceConnectEndpoint' => [ 'shape' => 'String', ], ], ], 'DockerLabelsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'DockerVolumeConfiguration' => [ 'type' => 'structure', 'members' => [ 'scope' => [ 'shape' => 'Scope', ], 'autoprovision' => [ 'shape' => 'BoxedBoolean', ], 'driver' => [ 'shape' => 'String', ], 'driverOpts' => [ 'shape' => 'StringMap', ], 'labels' => [ 'shape' => 'StringMap', ], ], ], 'Double' => [ 'type' => 'double', ], 'Duration' => [ 'type' => 'integer', 'box' => true, 'max' => 2147483647, 'min' => 0, ], 'EBSKMSKeyId' => [ 'type' => 'string', ], 'EBSResourceType' => [ 'type' => 'string', 'enum' => [ 'volume', ], ], 'EBSSnapshotId' => [ 'type' => 'string', ], 'EBSTagSpecification' => [ 'type' => 'structure', 'required' => [ 'resourceType', ], 'members' => [ 'resourceType' => [ 'shape' => 'EBSResourceType', ], 'tags' => [ 'shape' => 'Tags', ], 'propagateTags' => [ 'shape' => 'PropagateTags', ], ], ], 'EBSTagSpecifications' => [ 'type' => 'list', 'member' => [ 'shape' => 'EBSTagSpecification', ], ], 'EBSVolumeType' => [ 'type' => 'string', ], 'ECSExpressGatewayService' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'serviceName' => [ 'shape' => 'String', ], 'serviceArn' => [ 'shape' => 'String', ], 'infrastructureRoleArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ExpressGatewayServiceStatus', ], 'currentDeployment' => [ 'shape' => 'String', ], 'activeConfigurations' => [ 'shape' => 'ExpressGatewayServiceConfigurations', ], 'tags' => [ 'shape' => 'Tags', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ECSManagedResources' => [ 'type' => 'structure', 'members' => [ 'ingressPaths' => [ 'shape' => 'ManagedIngressPaths', ], 'autoScaling' => [ 'shape' => 'ManagedAutoScaling', ], 'metricAlarms' => [ 'shape' => 'ManagedMetricAlarms', ], 'serviceSecurityGroups' => [ 'shape' => 'ManagedSecurityGroups', ], 'logGroups' => [ 'shape' => 'ManagedLogGroups', ], ], ], 'ECSVolumeName' => [ 'type' => 'string', ], 'EFSAuthorizationConfig' => [ 'type' => 'structure', 'members' => [ 'accessPointId' => [ 'shape' => 'String', ], 'iam' => [ 'shape' => 'EFSAuthorizationConfigIAM', ], ], ], 'EFSAuthorizationConfigIAM' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'EFSTransitEncryption' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'EFSVolumeConfiguration' => [ 'type' => 'structure', 'required' => [ 'fileSystemId', ], 'members' => [ 'fileSystemId' => [ 'shape' => 'String', ], 'rootDirectory' => [ 'shape' => 'String', ], 'transitEncryption' => [ 'shape' => 'EFSTransitEncryption', ], 'transitEncryptionPort' => [ 'shape' => 'BoxedInteger', ], 'authorizationConfig' => [ 'shape' => 'EFSAuthorizationConfig', ], ], ], 'EnvironmentFile' => [ 'type' => 'structure', 'required' => [ 'value', 'type', ], 'members' => [ 'value' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'EnvironmentFileType', ], ], ], 'EnvironmentFileType' => [ 'type' => 'string', 'enum' => [ 's3', ], ], 'EnvironmentFiles' => [ 'type' => 'list', 'member' => [ 'shape' => 'EnvironmentFile', ], ], 'EnvironmentVariables' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyValuePair', ], 'sensitive' => true, ], 'EphemeralStorage' => [ 'type' => 'structure', 'required' => [ 'sizeInGiB', ], 'members' => [ 'sizeInGiB' => [ 'shape' => 'Integer', ], ], ], 'ExcludedInstanceType' => [ 'type' => 'string', 'max' => 30, 'min' => 1, 'pattern' => '[a-zA-Z0-9\\.\\*\\-]+', ], 'ExcludedInstanceTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExcludedInstanceType', ], 'max' => 400, 'min' => 0, ], 'ExecuteCommandConfiguration' => [ 'type' => 'structure', 'members' => [ 'kmsKeyId' => [ 'shape' => 'String', ], 'logging' => [ 'shape' => 'ExecuteCommandLogging', ], 'logConfiguration' => [ 'shape' => 'ExecuteCommandLogConfiguration', ], ], ], 'ExecuteCommandLogConfiguration' => [ 'type' => 'structure', 'members' => [ 'cloudWatchLogGroupName' => [ 'shape' => 'String', ], 'cloudWatchEncryptionEnabled' => [ 'shape' => 'Boolean', ], 's3BucketName' => [ 'shape' => 'String', ], 's3EncryptionEnabled' => [ 'shape' => 'Boolean', ], 's3KeyPrefix' => [ 'shape' => 'String', ], ], ], 'ExecuteCommandLogging' => [ 'type' => 'string', 'enum' => [ 'NONE', 'DEFAULT', 'OVERRIDE', ], ], 'ExecuteCommandRequest' => [ 'type' => 'structure', 'required' => [ 'command', 'interactive', 'task', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'container' => [ 'shape' => 'String', ], 'command' => [ 'shape' => 'String', ], 'interactive' => [ 'shape' => 'Boolean', ], 'task' => [ 'shape' => 'String', ], ], ], 'ExecuteCommandResponse' => [ 'type' => 'structure', 'members' => [ 'clusterArn' => [ 'shape' => 'String', ], 'containerArn' => [ 'shape' => 'String', ], 'containerName' => [ 'shape' => 'String', ], 'interactive' => [ 'shape' => 'Boolean', ], 'session' => [ 'shape' => 'Session', ], 'taskArn' => [ 'shape' => 'String', ], ], ], 'ExpressGatewayContainer' => [ 'type' => 'structure', 'required' => [ 'image', ], 'members' => [ 'image' => [ 'shape' => 'String', ], 'containerPort' => [ 'shape' => 'BoxedInteger', ], 'awsLogsConfiguration' => [ 'shape' => 'ExpressGatewayServiceAwsLogsConfiguration', ], 'repositoryCredentials' => [ 'shape' => 'ExpressGatewayRepositoryCredentials', ], 'command' => [ 'shape' => 'StringList', ], 'environment' => [ 'shape' => 'EnvironmentVariables', ], 'secrets' => [ 'shape' => 'SecretList', ], ], ], 'ExpressGatewayRepositoryCredentials' => [ 'type' => 'structure', 'members' => [ 'credentialsParameter' => [ 'shape' => 'String', ], ], ], 'ExpressGatewayScalingTarget' => [ 'type' => 'structure', 'members' => [ 'minTaskCount' => [ 'shape' => 'BoxedInteger', ], 'maxTaskCount' => [ 'shape' => 'BoxedInteger', ], 'autoScalingMetric' => [ 'shape' => 'ExpressGatewayServiceScalingMetric', ], 'autoScalingTargetValue' => [ 'shape' => 'BoxedInteger', ], ], ], 'ExpressGatewayServiceAwsLogsConfiguration' => [ 'type' => 'structure', 'required' => [ 'logGroup', 'logStreamPrefix', ], 'members' => [ 'logGroup' => [ 'shape' => 'String', ], 'logStreamPrefix' => [ 'shape' => 'String', ], ], ], 'ExpressGatewayServiceConfiguration' => [ 'type' => 'structure', 'members' => [ 'serviceRevisionArn' => [ 'shape' => 'String', ], 'executionRoleArn' => [ 'shape' => 'String', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'taskDefinitionArn' => [ 'shape' => 'String', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'ExpressGatewayServiceNetworkConfiguration', ], 'healthCheckPath' => [ 'shape' => 'String', ], 'primaryContainer' => [ 'shape' => 'ExpressGatewayContainer', ], 'scalingTarget' => [ 'shape' => 'ExpressGatewayScalingTarget', ], 'ingressPaths' => [ 'shape' => 'IngressPathSummaries', ], 'createdAt' => [ 'shape' => 'Timestamp', ], ], ], 'ExpressGatewayServiceConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExpressGatewayServiceConfiguration', ], ], 'ExpressGatewayServiceInclude' => [ 'type' => 'string', 'enum' => [ 'TAGS', ], ], 'ExpressGatewayServiceIncludeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExpressGatewayServiceInclude', ], ], 'ExpressGatewayServiceNetworkConfiguration' => [ 'type' => 'structure', 'members' => [ 'securityGroups' => [ 'shape' => 'StringList', ], 'subnets' => [ 'shape' => 'StringList', ], ], ], 'ExpressGatewayServiceScalingMetric' => [ 'type' => 'string', 'enum' => [ 'AVERAGE_CPU', 'AVERAGE_MEMORY', 'REQUEST_COUNT_PER_TARGET', ], ], 'ExpressGatewayServiceStatus' => [ 'type' => 'structure', 'members' => [ 'statusCode' => [ 'shape' => 'ExpressGatewayServiceStatusCode', ], 'statusReason' => [ 'shape' => 'String', ], ], ], 'ExpressGatewayServiceStatusCode' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'DRAINING', 'INACTIVE', ], ], 'FSxWindowsFileServerAuthorizationConfig' => [ 'type' => 'structure', 'required' => [ 'credentialsParameter', 'domain', ], 'members' => [ 'credentialsParameter' => [ 'shape' => 'String', ], 'domain' => [ 'shape' => 'String', ], ], ], 'FSxWindowsFileServerVolumeConfiguration' => [ 'type' => 'structure', 'required' => [ 'fileSystemId', 'rootDirectory', 'authorizationConfig', ], 'members' => [ 'fileSystemId' => [ 'shape' => 'String', ], 'rootDirectory' => [ 'shape' => 'String', ], 'authorizationConfig' => [ 'shape' => 'FSxWindowsFileServerAuthorizationConfig', ], ], ], 'Failure' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'reason' => [ 'shape' => 'String', ], 'detail' => [ 'shape' => 'String', ], ], ], 'Failures' => [ 'type' => 'list', 'member' => [ 'shape' => 'Failure', ], ], 'FirelensConfiguration' => [ 'type' => 'structure', 'required' => [ 'type', ], 'members' => [ 'type' => [ 'shape' => 'FirelensConfigurationType', ], 'options' => [ 'shape' => 'FirelensConfigurationOptionsMap', ], ], ], 'FirelensConfigurationOptionsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'FirelensConfigurationType' => [ 'type' => 'string', 'enum' => [ 'fluentd', 'fluentbit', ], ], 'GetTaskProtectionRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'tasks' => [ 'shape' => 'StringList', ], ], ], 'GetTaskProtectionResponse' => [ 'type' => 'structure', 'members' => [ 'protectedTasks' => [ 'shape' => 'ProtectedTasks', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'GpuIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'HealthCheck' => [ 'type' => 'structure', 'required' => [ 'command', ], 'members' => [ 'command' => [ 'shape' => 'StringList', ], 'interval' => [ 'shape' => 'BoxedInteger', ], 'timeout' => [ 'shape' => 'BoxedInteger', ], 'retries' => [ 'shape' => 'BoxedInteger', ], 'startPeriod' => [ 'shape' => 'BoxedInteger', ], ], ], 'HealthStatus' => [ 'type' => 'string', 'enum' => [ 'HEALTHY', 'UNHEALTHY', 'UNKNOWN', ], ], 'HookDetails' => [ 'type' => 'structure', 'members' => [], 'document' => true, ], 'HostEntry' => [ 'type' => 'structure', 'required' => [ 'hostname', 'ipAddress', ], 'members' => [ 'hostname' => [ 'shape' => 'String', ], 'ipAddress' => [ 'shape' => 'String', ], ], ], 'HostEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HostEntry', ], ], 'HostVolumeProperties' => [ 'type' => 'structure', 'members' => [ 'sourcePath' => [ 'shape' => 'String', ], ], ], 'IAMRoleArn' => [ 'type' => 'string', ], 'InferenceAccelerator' => [ 'type' => 'structure', 'required' => [ 'deviceName', 'deviceType', ], 'members' => [ 'deviceName' => [ 'shape' => 'String', ], 'deviceType' => [ 'shape' => 'String', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This feature is no longer available.', 'deprecatedSince' => '2023-04-15', ], 'InferenceAcceleratorOverride' => [ 'type' => 'structure', 'members' => [ 'deviceName' => [ 'shape' => 'String', ], 'deviceType' => [ 'shape' => 'String', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This feature is no longer available.', 'deprecatedSince' => '2023-04-15', ], 'InferenceAcceleratorOverrides' => [ 'type' => 'list', 'member' => [ 'shape' => 'InferenceAcceleratorOverride', ], 'deprecated' => true, 'deprecatedMessage' => 'This feature is no longer available.', 'deprecatedSince' => '2023-04-15', ], 'InferenceAccelerators' => [ 'type' => 'list', 'member' => [ 'shape' => 'InferenceAccelerator', ], 'deprecated' => true, 'deprecatedMessage' => 'This feature is no longer available.', 'deprecatedSince' => '2023-04-15', ], 'InfrastructureOptimization' => [ 'type' => 'structure', 'members' => [ 'scaleInAfter' => [ 'shape' => 'BoxedInteger', ], ], ], 'IngressPathSummaries' => [ 'type' => 'list', 'member' => [ 'shape' => 'IngressPathSummary', ], ], 'IngressPathSummary' => [ 'type' => 'structure', 'required' => [ 'accessType', 'endpoint', ], 'members' => [ 'accessType' => [ 'shape' => 'AccessType', ], 'endpoint' => [ 'shape' => 'String', ], ], ], 'InstanceGeneration' => [ 'type' => 'string', 'enum' => [ 'current', 'previous', ], ], 'InstanceGenerationSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceGeneration', ], ], 'InstanceHealthCheckResult' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'InstanceHealthCheckType', ], 'status' => [ 'shape' => 'InstanceHealthCheckState', ], 'statusReason' => [ 'shape' => 'String', ], 'lastUpdated' => [ 'shape' => 'Timestamp', ], 'lastStatusChange' => [ 'shape' => 'Timestamp', ], ], ], 'InstanceHealthCheckResultList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstanceHealthCheckResult', ], ], 'InstanceHealthCheckState' => [ 'type' => 'string', 'enum' => [ 'OK', 'IMPAIRED', 'INSUFFICIENT_DATA', 'INITIALIZING', ], ], 'InstanceHealthCheckType' => [ 'type' => 'string', 'enum' => [ 'CONTAINER_RUNTIME', 'ACCELERATED_COMPUTE', 'DAEMON', ], ], 'InstanceLaunchTemplate' => [ 'type' => 'structure', 'required' => [ 'ec2InstanceProfileArn', 'networkConfiguration', ], 'members' => [ 'ec2InstanceProfileArn' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'ManagedInstancesNetworkConfiguration', ], 'storageConfiguration' => [ 'shape' => 'ManagedInstancesStorageConfiguration', ], 'localStorageConfiguration' => [ 'shape' => 'ManagedInstancesLocalStorageConfiguration', ], 'monitoring' => [ 'shape' => 'ManagedInstancesMonitoringOptions', ], 'capacityOptionType' => [ 'shape' => 'CapacityOptionType', ], 'instanceMetadataTagsPropagation' => [ 'shape' => 'BoxedBoolean', ], 'instanceRequirements' => [ 'shape' => 'InstanceRequirementsRequest', ], 'fipsEnabled' => [ 'shape' => 'BoxedBoolean', ], 'capacityReservations' => [ 'shape' => 'CapacityReservationRequest', ], ], ], 'InstanceLaunchTemplateUpdate' => [ 'type' => 'structure', 'members' => [ 'ec2InstanceProfileArn' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'ManagedInstancesNetworkConfiguration', ], 'storageConfiguration' => [ 'shape' => 'ManagedInstancesStorageConfiguration', ], 'instanceMetadataTagsPropagation' => [ 'shape' => 'BoxedBoolean', ], 'localStorageConfiguration' => [ 'shape' => 'ManagedInstancesLocalStorageConfiguration', ], 'monitoring' => [ 'shape' => 'ManagedInstancesMonitoringOptions', ], 'instanceRequirements' => [ 'shape' => 'InstanceRequirementsRequest', ], 'capacityReservations' => [ 'shape' => 'CapacityReservationRequest', ], ], ], 'InstanceRequirementsRequest' => [ 'type' => 'structure', 'required' => [ 'vCpuCount', 'memoryMiB', ], 'members' => [ 'vCpuCount' => [ 'shape' => 'VCpuCountRangeRequest', ], 'memoryMiB' => [ 'shape' => 'MemoryMiBRequest', ], 'cpuManufacturers' => [ 'shape' => 'CpuManufacturerSet', ], 'memoryGiBPerVCpu' => [ 'shape' => 'MemoryGiBPerVCpuRequest', ], 'excludedInstanceTypes' => [ 'shape' => 'ExcludedInstanceTypeSet', ], 'instanceGenerations' => [ 'shape' => 'InstanceGenerationSet', ], 'spotMaxPricePercentageOverLowestPrice' => [ 'shape' => 'BoxedInteger', ], 'onDemandMaxPricePercentageOverLowestPrice' => [ 'shape' => 'BoxedInteger', ], 'bareMetal' => [ 'shape' => 'BareMetal', ], 'burstablePerformance' => [ 'shape' => 'BurstablePerformance', ], 'requireHibernateSupport' => [ 'shape' => 'BoxedBoolean', ], 'networkInterfaceCount' => [ 'shape' => 'NetworkInterfaceCountRequest', ], 'localStorage' => [ 'shape' => 'LocalStorage', ], 'localStorageTypes' => [ 'shape' => 'LocalStorageTypeSet', ], 'totalLocalStorageGB' => [ 'shape' => 'TotalLocalStorageGBRequest', ], 'baselineEbsBandwidthMbps' => [ 'shape' => 'BaselineEbsBandwidthMbpsRequest', ], 'acceleratorTypes' => [ 'shape' => 'AcceleratorTypeSet', ], 'acceleratorCount' => [ 'shape' => 'AcceleratorCountRequest', ], 'acceleratorManufacturers' => [ 'shape' => 'AcceleratorManufacturerSet', ], 'acceleratorNames' => [ 'shape' => 'AcceleratorNameSet', ], 'acceleratorTotalMemoryMiB' => [ 'shape' => 'AcceleratorTotalMemoryMiBRequest', ], 'networkBandwidthGbps' => [ 'shape' => 'NetworkBandwidthGbpsRequest', ], 'allowedInstanceTypes' => [ 'shape' => 'AllowedInstanceTypeSet', ], 'maxSpotPriceAsPercentageOfOptimalOnDemandPrice' => [ 'shape' => 'BoxedInteger', ], ], ], 'Integer' => [ 'type' => 'integer', ], 'IntegerList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BoxedInteger', ], ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'IpcMode' => [ 'type' => 'string', 'enum' => [ 'host', 'task', 'none', ], ], 'KernelCapabilities' => [ 'type' => 'structure', 'members' => [ 'add' => [ 'shape' => 'StringList', ], 'drop' => [ 'shape' => 'StringList', ], ], ], 'KeyValuePair' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], ], 'LaunchType' => [ 'type' => 'string', 'enum' => [ 'EC2', 'FARGATE', 'EXTERNAL', 'MANAGED_INSTANCES', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'LinearConfiguration' => [ 'type' => 'structure', 'members' => [ 'stepPercent' => [ 'shape' => 'Double', 'box' => true, ], 'stepBakeTimeInMinutes' => [ 'shape' => 'Integer', 'box' => true, ], ], ], 'LinuxParameters' => [ 'type' => 'structure', 'members' => [ 'capabilities' => [ 'shape' => 'KernelCapabilities', ], 'devices' => [ 'shape' => 'DevicesList', ], 'initProcessEnabled' => [ 'shape' => 'BoxedBoolean', ], 'sharedMemorySize' => [ 'shape' => 'BoxedInteger', ], 'tmpfs' => [ 'shape' => 'TmpfsList', ], 'maxSwap' => [ 'shape' => 'BoxedInteger', ], 'swappiness' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListAccountSettingsRequest' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'SettingName', ], 'value' => [ 'shape' => 'String', ], 'principalArn' => [ 'shape' => 'String', ], 'effectiveSettings' => [ 'shape' => 'Boolean', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'Integer', ], ], ], 'ListAccountSettingsResponse' => [ 'type' => 'structure', 'members' => [ 'settings' => [ 'shape' => 'Settings', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'targetType', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'targetType' => [ 'shape' => 'TargetType', ], 'attributeName' => [ 'shape' => 'String', ], 'attributeValue' => [ 'shape' => 'String', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'attributes' => [ 'shape' => 'Attributes', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListClustersRequest' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListClustersResponse' => [ 'type' => 'structure', 'members' => [ 'clusterArns' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListContainerInstancesRequest' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'filter' => [ 'shape' => 'String', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], 'status' => [ 'shape' => 'ContainerInstanceStatus', ], ], ], 'ListContainerInstancesResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstanceArns' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListDaemonDeploymentsRequest' => [ 'type' => 'structure', 'required' => [ 'daemonArn', ], 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonDeploymentStatusList', ], 'createdAt' => [ 'shape' => 'CreatedAt', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListDaemonDeploymentsResponse' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'String', ], 'daemonDeployments' => [ 'shape' => 'DaemonDeploymentSummaryList', ], ], ], 'ListDaemonTaskDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'familyPrefix' => [ 'shape' => 'String', ], 'family' => [ 'shape' => 'String', ], 'revision' => [ 'shape' => 'DaemonTaskDefinitionRevisionFilter', ], 'status' => [ 'shape' => 'DaemonTaskDefinitionStatusFilter', ], 'sort' => [ 'shape' => 'SortOrder', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListDaemonTaskDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'daemonTaskDefinitions' => [ 'shape' => 'DaemonTaskDefinitionSummaries', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListDaemonsRequest' => [ 'type' => 'structure', 'members' => [ 'clusterArn' => [ 'shape' => 'String', ], 'capacityProviderArns' => [ 'shape' => 'StringList', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListDaemonsResponse' => [ 'type' => 'structure', 'members' => [ 'daemonSummariesList' => [ 'shape' => 'DaemonSummariesList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListServiceDeploymentsRequest' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'service' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ServiceDeploymentStatusList', ], 'createdAt' => [ 'shape' => 'CreatedAt', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListServiceDeploymentsResponse' => [ 'type' => 'structure', 'members' => [ 'serviceDeployments' => [ 'shape' => 'ServiceDeploymentsBrief', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListServicesByNamespaceRequest' => [ 'type' => 'structure', 'required' => [ 'namespace', ], 'members' => [ 'namespace' => [ 'shape' => 'String', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListServicesByNamespaceResponse' => [ 'type' => 'structure', 'members' => [ 'serviceArns' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListServicesRequest' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'schedulingStrategy' => [ 'shape' => 'SchedulingStrategy', ], 'resourceManagementType' => [ 'shape' => 'ResourceManagementType', ], ], ], 'ListServicesResponse' => [ 'type' => 'structure', 'members' => [ 'serviceArns' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'String', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'Tags', ], ], ], 'ListTaskDefinitionFamiliesRequest' => [ 'type' => 'structure', 'members' => [ 'familyPrefix' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'TaskDefinitionFamilyStatus', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListTaskDefinitionFamiliesResponse' => [ 'type' => 'structure', 'members' => [ 'families' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListTaskDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'familyPrefix' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'TaskDefinitionStatus', ], 'sort' => [ 'shape' => 'SortOrder', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], ], ], 'ListTaskDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'taskDefinitionArns' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'ListTasksRequest' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'containerInstance' => [ 'shape' => 'String', ], 'family' => [ 'shape' => 'String', ], 'nextToken' => [ 'shape' => 'String', ], 'maxResults' => [ 'shape' => 'BoxedInteger', ], 'startedBy' => [ 'shape' => 'String', ], 'serviceName' => [ 'shape' => 'String', ], 'desiredStatus' => [ 'shape' => 'DesiredStatus', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'daemonName' => [ 'shape' => 'String', ], ], ], 'ListTasksResponse' => [ 'type' => 'structure', 'members' => [ 'taskArns' => [ 'shape' => 'StringList', ], 'nextToken' => [ 'shape' => 'String', ], ], ], 'LoadBalancer' => [ 'type' => 'structure', 'members' => [ 'targetGroupArn' => [ 'shape' => 'String', ], 'loadBalancerName' => [ 'shape' => 'String', ], 'containerName' => [ 'shape' => 'String', ], 'containerPort' => [ 'shape' => 'BoxedInteger', ], 'advancedConfiguration' => [ 'shape' => 'AdvancedConfiguration', ], ], ], 'LoadBalancers' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoadBalancer', ], ], 'LocalStorage' => [ 'type' => 'string', 'enum' => [ 'included', 'required', 'excluded', ], ], 'LocalStorageType' => [ 'type' => 'string', 'enum' => [ 'hdd', 'ssd', ], ], 'LocalStorageTypeSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'LocalStorageType', ], ], 'LogConfiguration' => [ 'type' => 'structure', 'required' => [ 'logDriver', ], 'members' => [ 'logDriver' => [ 'shape' => 'LogDriver', ], 'options' => [ 'shape' => 'LogConfigurationOptionsMap', ], 'secretOptions' => [ 'shape' => 'SecretList', ], ], ], 'LogConfigurationOptionsMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'LogDriver' => [ 'type' => 'string', 'enum' => [ 'json-file', 'syslog', 'journald', 'gelf', 'fluentd', 'awslogs', 'splunk', 'awsfirelens', ], ], 'Long' => [ 'type' => 'long', ], 'ManagedAgent' => [ 'type' => 'structure', 'members' => [ 'lastStartedAt' => [ 'shape' => 'Timestamp', ], 'name' => [ 'shape' => 'ManagedAgentName', ], 'reason' => [ 'shape' => 'String', ], 'lastStatus' => [ 'shape' => 'String', ], ], ], 'ManagedAgentName' => [ 'type' => 'string', 'enum' => [ 'ExecuteCommandAgent', ], ], 'ManagedAgentStateChange' => [ 'type' => 'structure', 'required' => [ 'containerName', 'managedAgentName', 'status', ], 'members' => [ 'containerName' => [ 'shape' => 'String', ], 'managedAgentName' => [ 'shape' => 'ManagedAgentName', ], 'status' => [ 'shape' => 'String', ], 'reason' => [ 'shape' => 'String', ], ], ], 'ManagedAgentStateChanges' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedAgentStateChange', ], ], 'ManagedAgents' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedAgent', ], ], 'ManagedApplicationAutoScalingPolicies' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedApplicationAutoScalingPolicy', ], ], 'ManagedApplicationAutoScalingPolicy' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', 'policyType', 'targetValue', 'metric', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'policyType' => [ 'shape' => 'String', ], 'targetValue' => [ 'shape' => 'Double', ], 'metric' => [ 'shape' => 'String', ], ], ], 'ManagedAutoScaling' => [ 'type' => 'structure', 'members' => [ 'scalableTarget' => [ 'shape' => 'ManagedScalableTarget', ], 'applicationAutoScalingPolicies' => [ 'shape' => 'ManagedApplicationAutoScalingPolicies', ], ], ], 'ManagedCertificate' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', 'domainName', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'domainName' => [ 'shape' => 'String', ], ], ], 'ManagedDraining' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'ManagedIngressPath' => [ 'type' => 'structure', 'required' => [ 'accessType', 'endpoint', ], 'members' => [ 'accessType' => [ 'shape' => 'AccessType', ], 'endpoint' => [ 'shape' => 'String', ], 'loadBalancer' => [ 'shape' => 'ManagedLoadBalancer', ], 'loadBalancerSecurityGroups' => [ 'shape' => 'ManagedSecurityGroups', ], 'certificate' => [ 'shape' => 'ManagedCertificate', ], 'listener' => [ 'shape' => 'ManagedListener', ], 'rule' => [ 'shape' => 'ManagedListenerRule', ], 'targetGroups' => [ 'shape' => 'ManagedTargetGroups', ], ], ], 'ManagedIngressPaths' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedIngressPath', ], ], 'ManagedInstancesLocalStorageConfiguration' => [ 'type' => 'structure', 'members' => [ 'useLocalStorage' => [ 'shape' => 'Boolean', ], ], ], 'ManagedInstancesMonitoringOptions' => [ 'type' => 'string', 'enum' => [ 'BASIC', 'DETAILED', ], ], 'ManagedInstancesNetworkConfiguration' => [ 'type' => 'structure', 'members' => [ 'subnets' => [ 'shape' => 'StringList', ], 'securityGroups' => [ 'shape' => 'StringList', ], ], ], 'ManagedInstancesProvider' => [ 'type' => 'structure', 'members' => [ 'infrastructureRoleArn' => [ 'shape' => 'String', ], 'instanceLaunchTemplate' => [ 'shape' => 'InstanceLaunchTemplate', ], 'propagateTags' => [ 'shape' => 'PropagateMITags', ], 'infrastructureOptimization' => [ 'shape' => 'InfrastructureOptimization', ], 'autoRepairConfiguration' => [ 'shape' => 'AutoRepairConfiguration', ], ], ], 'ManagedInstancesStorageConfiguration' => [ 'type' => 'structure', 'members' => [ 'storageSizeGiB' => [ 'shape' => 'TaskVolumeStorageGiB', ], ], ], 'ManagedListener' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ManagedListenerRule' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ManagedLoadBalancer' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', 'scheme', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'scheme' => [ 'shape' => 'String', ], 'subnetIds' => [ 'shape' => 'StringList', ], 'securityGroupIds' => [ 'shape' => 'StringList', ], ], ], 'ManagedLogGroup' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', 'logGroupName', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'logGroupName' => [ 'shape' => 'String', ], ], ], 'ManagedLogGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedLogGroup', ], ], 'ManagedMetricAlarm' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ManagedMetricAlarms' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedMetricAlarm', ], ], 'ManagedResourceStatus' => [ 'type' => 'string', 'enum' => [ 'PROVISIONING', 'ACTIVE', 'DEPROVISIONING', 'DELETED', 'FAILED', ], ], 'ManagedScalableTarget' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', 'minCapacity', 'maxCapacity', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'minCapacity' => [ 'shape' => 'Integer', ], 'maxCapacity' => [ 'shape' => 'Integer', ], ], ], 'ManagedScaling' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'ManagedScalingStatus', ], 'targetCapacity' => [ 'shape' => 'ManagedScalingTargetCapacity', ], 'minimumScalingStepSize' => [ 'shape' => 'ManagedScalingStepSize', ], 'maximumScalingStepSize' => [ 'shape' => 'ManagedScalingStepSize', ], 'instanceWarmupPeriod' => [ 'shape' => 'ManagedScalingInstanceWarmupPeriod', ], ], ], 'ManagedScalingInstanceWarmupPeriod' => [ 'type' => 'integer', 'box' => true, 'max' => 10000, 'min' => 0, ], 'ManagedScalingStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'ManagedScalingStepSize' => [ 'type' => 'integer', 'box' => true, 'max' => 10000, 'min' => 1, ], 'ManagedScalingTargetCapacity' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ManagedSecurityGroup' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ManagedSecurityGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedSecurityGroup', ], ], 'ManagedStorageConfiguration' => [ 'type' => 'structure', 'members' => [ 'kmsKeyId' => [ 'shape' => 'String', ], 'fargateEphemeralStorageKmsKeyId' => [ 'shape' => 'String', ], ], ], 'ManagedTargetGroup' => [ 'type' => 'structure', 'required' => [ 'status', 'updatedAt', 'healthCheckPath', 'healthCheckPort', 'port', ], 'members' => [ 'arn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ManagedResourceStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'healthCheckPath' => [ 'shape' => 'String', ], 'healthCheckPort' => [ 'shape' => 'Integer', ], 'port' => [ 'shape' => 'Integer', ], ], ], 'ManagedTargetGroups' => [ 'type' => 'list', 'member' => [ 'shape' => 'ManagedTargetGroup', ], ], 'ManagedTerminationProtection' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'MemoryGiBPerVCpuRequest' => [ 'type' => 'structure', 'members' => [ 'min' => [ 'shape' => 'BoxedDouble', ], 'max' => [ 'shape' => 'BoxedDouble', ], ], ], 'MemoryMiBRequest' => [ 'type' => 'structure', 'required' => [ 'min', ], 'members' => [ 'min' => [ 'shape' => 'BoxedInteger', ], 'max' => [ 'shape' => 'BoxedInteger', ], ], ], 'MetricConfiguration' => [ 'type' => 'structure', 'required' => [ 'metricNames', 'resolutionSeconds', ], 'members' => [ 'metricNames' => [ 'shape' => 'MetricNamesList', ], 'resolutionSeconds' => [ 'shape' => 'MetricResolutionSeconds', ], ], ], 'MetricConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricConfiguration', ], 'max' => 5, 'min' => 0, ], 'MetricName' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'MetricNamesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricName', ], 'max' => 5, 'min' => 1, ], 'MetricResolutionSeconds' => [ 'type' => 'integer', 'box' => true, 'max' => 60, 'min' => 20, ], 'MissingVersionException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'MonitoringConfiguration' => [ 'type' => 'structure', 'members' => [ 'metricConfigurations' => [ 'shape' => 'MetricConfigurationList', ], ], ], 'MountPoint' => [ 'type' => 'structure', 'members' => [ 'sourceVolume' => [ 'shape' => 'String', ], 'containerPath' => [ 'shape' => 'String', ], 'readOnly' => [ 'shape' => 'BoxedBoolean', ], ], ], 'MountPointList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MountPoint', ], ], 'NamespaceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'NetworkBandwidthGbpsRequest' => [ 'type' => 'structure', 'members' => [ 'min' => [ 'shape' => 'BoxedDouble', ], 'max' => [ 'shape' => 'BoxedDouble', ], ], ], 'NetworkBinding' => [ 'type' => 'structure', 'members' => [ 'bindIP' => [ 'shape' => 'String', ], 'containerPort' => [ 'shape' => 'BoxedInteger', ], 'hostPort' => [ 'shape' => 'BoxedInteger', ], 'protocol' => [ 'shape' => 'TransportProtocol', ], 'containerPortRange' => [ 'shape' => 'String', ], 'hostPortRange' => [ 'shape' => 'String', ], ], ], 'NetworkBindings' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkBinding', ], ], 'NetworkConfiguration' => [ 'type' => 'structure', 'members' => [ 'awsvpcConfiguration' => [ 'shape' => 'AwsVpcConfiguration', ], ], ], 'NetworkInterface' => [ 'type' => 'structure', 'members' => [ 'attachmentId' => [ 'shape' => 'String', ], 'privateIpv4Address' => [ 'shape' => 'String', ], 'ipv6Address' => [ 'shape' => 'String', ], ], ], 'NetworkInterfaceCountRequest' => [ 'type' => 'structure', 'members' => [ 'min' => [ 'shape' => 'BoxedInteger', ], 'max' => [ 'shape' => 'BoxedInteger', ], ], ], 'NetworkInterfaces' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkInterface', ], ], 'NetworkMode' => [ 'type' => 'string', 'enum' => [ 'bridge', 'host', 'awsvpc', 'none', ], ], 'NeuronDeviceIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'NoUpdateAvailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'OSFamily' => [ 'type' => 'string', 'enum' => [ 'WINDOWS_SERVER_2019_FULL', 'WINDOWS_SERVER_2019_CORE', 'WINDOWS_SERVER_2016_FULL', 'WINDOWS_SERVER_2004_CORE', 'WINDOWS_SERVER_2022_CORE', 'WINDOWS_SERVER_2022_FULL', 'WINDOWS_SERVER_2025_CORE', 'WINDOWS_SERVER_2025_FULL', 'WINDOWS_SERVER_20H2_CORE', 'LINUX', ], ], 'PidMode' => [ 'type' => 'string', 'enum' => [ 'host', 'task', ], ], 'PlacementConstraint' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'PlacementConstraintType', ], 'expression' => [ 'shape' => 'String', ], ], ], 'PlacementConstraintType' => [ 'type' => 'string', 'enum' => [ 'distinctInstance', 'memberOf', ], ], 'PlacementConstraints' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementConstraint', ], ], 'PlacementStrategies' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlacementStrategy', ], ], 'PlacementStrategy' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'PlacementStrategyType', ], 'field' => [ 'shape' => 'String', ], ], ], 'PlacementStrategyType' => [ 'type' => 'string', 'enum' => [ 'random', 'spread', 'binpack', ], ], 'PlatformDevice' => [ 'type' => 'structure', 'required' => [ 'id', 'type', ], 'members' => [ 'id' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'PlatformDeviceType', ], ], ], 'PlatformDeviceType' => [ 'type' => 'string', 'enum' => [ 'GPU', 'NEURON_DEVICE', ], ], 'PlatformDevices' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlatformDevice', ], ], 'PlatformTaskDefinitionIncompatibilityException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'PlatformUnknownException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'PortMapping' => [ 'type' => 'structure', 'members' => [ 'containerPort' => [ 'shape' => 'BoxedInteger', ], 'hostPort' => [ 'shape' => 'BoxedInteger', ], 'protocol' => [ 'shape' => 'TransportProtocol', ], 'name' => [ 'shape' => 'String', ], 'appProtocol' => [ 'shape' => 'ApplicationProtocol', ], 'containerPortRange' => [ 'shape' => 'String', ], ], ], 'PortMappingList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PortMapping', ], ], 'PortNumber' => [ 'type' => 'integer', 'box' => true, 'max' => 65535, 'min' => 0, ], 'PropagateMITags' => [ 'type' => 'string', 'enum' => [ 'CAPACITY_PROVIDER', 'NONE', ], ], 'PropagateTags' => [ 'type' => 'string', 'enum' => [ 'TASK_DEFINITION', 'SERVICE', 'NONE', ], ], 'ProtectedTask' => [ 'type' => 'structure', 'members' => [ 'taskArn' => [ 'shape' => 'String', ], 'protectionEnabled' => [ 'shape' => 'Boolean', ], 'expirationDate' => [ 'shape' => 'Timestamp', ], ], ], 'ProtectedTasks' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProtectedTask', ], ], 'ProxyConfiguration' => [ 'type' => 'structure', 'required' => [ 'containerName', ], 'members' => [ 'type' => [ 'shape' => 'ProxyConfigurationType', ], 'containerName' => [ 'shape' => 'String', ], 'properties' => [ 'shape' => 'ProxyConfigurationProperties', ], ], ], 'ProxyConfigurationProperties' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyValuePair', ], ], 'ProxyConfigurationType' => [ 'type' => 'string', 'enum' => [ 'APPMESH', ], ], 'PutAccountSettingDefaultRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'value', ], 'members' => [ 'name' => [ 'shape' => 'SettingName', ], 'value' => [ 'shape' => 'String', ], ], ], 'PutAccountSettingDefaultResponse' => [ 'type' => 'structure', 'members' => [ 'setting' => [ 'shape' => 'Setting', ], ], ], 'PutAccountSettingRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'value', ], 'members' => [ 'name' => [ 'shape' => 'SettingName', ], 'value' => [ 'shape' => 'String', ], 'principalArn' => [ 'shape' => 'String', ], ], ], 'PutAccountSettingResponse' => [ 'type' => 'structure', 'members' => [ 'setting' => [ 'shape' => 'Setting', ], ], ], 'PutAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'attributes', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'attributes' => [ 'shape' => 'Attributes', ], ], ], 'PutAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'attributes' => [ 'shape' => 'Attributes', ], ], ], 'PutClusterCapacityProvidersRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'capacityProviders', 'defaultCapacityProviderStrategy', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'capacityProviders' => [ 'shape' => 'StringList', ], 'defaultCapacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], ], ], 'PutClusterCapacityProvidersResponse' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'Cluster', ], ], ], 'RegisterContainerInstanceRequest' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'instanceIdentityDocument' => [ 'shape' => 'String', ], 'instanceIdentityDocumentSignature' => [ 'shape' => 'String', ], 'totalResources' => [ 'shape' => 'Resources', ], 'versionInfo' => [ 'shape' => 'VersionInfo', ], 'containerInstanceArn' => [ 'shape' => 'String', ], 'attributes' => [ 'shape' => 'Attributes', ], 'platformDevices' => [ 'shape' => 'PlatformDevices', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'RegisterContainerInstanceResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstance' => [ 'shape' => 'ContainerInstance', ], ], ], 'RegisterDaemonTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'family', 'containerDefinitions', ], 'members' => [ 'family' => [ 'shape' => 'String', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'executionRoleArn' => [ 'shape' => 'String', ], 'containerDefinitions' => [ 'shape' => 'DaemonContainerDefinitionList', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'volumes' => [ 'shape' => 'DaemonVolumeList', ], 'tags' => [ 'shape' => 'Tags', ], 'pidMode' => [ 'shape' => 'DaemonPidMode', ], 'ipcMode' => [ 'shape' => 'DaemonIpcMode', ], ], ], 'RegisterDaemonTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'daemonTaskDefinitionArn' => [ 'shape' => 'String', ], ], ], 'RegisterTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'family', 'containerDefinitions', ], 'members' => [ 'family' => [ 'shape' => 'String', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'executionRoleArn' => [ 'shape' => 'String', ], 'networkMode' => [ 'shape' => 'NetworkMode', ], 'containerDefinitions' => [ 'shape' => 'ContainerDefinitions', ], 'volumes' => [ 'shape' => 'VolumeList', ], 'placementConstraints' => [ 'shape' => 'TaskDefinitionPlacementConstraints', ], 'requiresCompatibilities' => [ 'shape' => 'CompatibilityList', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], 'pidMode' => [ 'shape' => 'PidMode', ], 'ipcMode' => [ 'shape' => 'IpcMode', ], 'proxyConfiguration' => [ 'shape' => 'ProxyConfiguration', ], 'inferenceAccelerators' => [ 'shape' => 'InferenceAccelerators', 'deprecated' => true, 'deprecatedMessage' => 'This feature is no longer available.', 'deprecatedSince' => '2023-04-15', ], 'ephemeralStorage' => [ 'shape' => 'EphemeralStorage', ], 'runtimePlatform' => [ 'shape' => 'RuntimePlatform', ], 'enableFaultInjection' => [ 'shape' => 'BoxedBoolean', ], ], ], 'RegisterTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'taskDefinition' => [ 'shape' => 'TaskDefinition', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'RepositoryCredentials' => [ 'type' => 'structure', 'required' => [ 'credentialsParameter', ], 'members' => [ 'credentialsParameter' => [ 'shape' => 'String', ], ], 'sensitive' => true, ], 'RequiresAttributes' => [ 'type' => 'list', 'member' => [ 'shape' => 'Attribute', ], ], 'ResolvedConfiguration' => [ 'type' => 'structure', 'members' => [ 'loadBalancers' => [ 'shape' => 'ServiceRevisionLoadBalancers', ], ], ], 'Resource' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'String', ], 'doubleValue' => [ 'shape' => 'Double', ], 'longValue' => [ 'shape' => 'Long', ], 'integerValue' => [ 'shape' => 'Integer', ], 'stringSetValue' => [ 'shape' => 'StringList', ], ], ], 'ResourceIds' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ResourceInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceManagementType' => [ 'type' => 'string', 'enum' => [ 'CUSTOMER', 'ECS', ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ResourceRequirement' => [ 'type' => 'structure', 'required' => [ 'value', 'type', ], 'members' => [ 'value' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'ResourceType', ], ], ], 'ResourceRequirements' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceRequirement', ], ], 'ResourceType' => [ 'type' => 'string', 'enum' => [ 'GPU', 'InferenceAccelerator', 'NeuronDevice', ], ], 'Resources' => [ 'type' => 'list', 'member' => [ 'shape' => 'Resource', ], ], 'Rollback' => [ 'type' => 'structure', 'members' => [ 'reason' => [ 'shape' => 'String', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'serviceRevisionArn' => [ 'shape' => 'String', ], ], ], 'RunTaskRequest' => [ 'type' => 'structure', 'required' => [ 'taskDefinition', ], 'members' => [ 'capacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'cluster' => [ 'shape' => 'String', ], 'count' => [ 'shape' => 'BoxedInteger', ], 'enableECSManagedTags' => [ 'shape' => 'Boolean', ], 'enableExecuteCommand' => [ 'shape' => 'Boolean', ], 'group' => [ 'shape' => 'String', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'overrides' => [ 'shape' => 'TaskOverride', ], 'placementConstraints' => [ 'shape' => 'PlacementConstraints', ], 'placementStrategy' => [ 'shape' => 'PlacementStrategies', ], 'platformVersion' => [ 'shape' => 'String', ], 'propagateTags' => [ 'shape' => 'PropagateTags', ], 'referenceId' => [ 'shape' => 'String', ], 'startedBy' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], 'taskDefinition' => [ 'shape' => 'String', ], 'clientToken' => [ 'shape' => 'String', 'idempotencyToken' => true, ], 'volumeConfigurations' => [ 'shape' => 'TaskVolumeConfigurations', ], ], ], 'RunTaskResponse' => [ 'type' => 'structure', 'members' => [ 'tasks' => [ 'shape' => 'Tasks', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'RuntimePlatform' => [ 'type' => 'structure', 'members' => [ 'cpuArchitecture' => [ 'shape' => 'CPUArchitecture', ], 'operatingSystemFamily' => [ 'shape' => 'OSFamily', ], ], ], 'RuntimePlatformOverride' => [ 'type' => 'structure', 'members' => [ 'cpuArchitecture' => [ 'shape' => 'String', ], ], ], 'S3FilesVolumeConfiguration' => [ 'type' => 'structure', 'required' => [ 'fileSystemArn', ], 'members' => [ 'fileSystemArn' => [ 'shape' => 'String', ], 'rootDirectory' => [ 'shape' => 'String', ], 'transitEncryptionPort' => [ 'shape' => 'BoxedInteger', ], 'accessPointArn' => [ 'shape' => 'String', ], ], ], 'Scale' => [ 'type' => 'structure', 'members' => [ 'value' => [ 'shape' => 'Double', ], 'unit' => [ 'shape' => 'ScaleUnit', ], ], ], 'ScaleUnit' => [ 'type' => 'string', 'enum' => [ 'PERCENT', ], ], 'SchedulingStrategy' => [ 'type' => 'string', 'enum' => [ 'REPLICA', 'DAEMON', ], ], 'Scope' => [ 'type' => 'string', 'enum' => [ 'task', 'shared', ], ], 'Secret' => [ 'type' => 'structure', 'required' => [ 'name', 'valueFrom', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'valueFrom' => [ 'shape' => 'String', ], ], ], 'SecretList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Secret', ], ], 'SensitiveString' => [ 'type' => 'string', 'sensitive' => true, ], 'ServerException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, 'fault' => true, ], 'Service' => [ 'type' => 'structure', 'members' => [ 'serviceArn' => [ 'shape' => 'String', ], 'serviceName' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'loadBalancers' => [ 'shape' => 'LoadBalancers', ], 'serviceRegistries' => [ 'shape' => 'ServiceRegistries', ], 'status' => [ 'shape' => 'String', ], 'desiredCount' => [ 'shape' => 'Integer', ], 'runningCount' => [ 'shape' => 'Integer', ], 'pendingCount' => [ 'shape' => 'Integer', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'capacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'platformVersion' => [ 'shape' => 'String', ], 'platformFamily' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'deploymentConfiguration' => [ 'shape' => 'DeploymentConfiguration', ], 'taskSets' => [ 'shape' => 'TaskSets', ], 'deployments' => [ 'shape' => 'Deployments', ], 'roleArn' => [ 'shape' => 'String', ], 'events' => [ 'shape' => 'ServiceEvents', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'currentServiceDeployment' => [ 'shape' => 'String', ], 'currentServiceRevisions' => [ 'shape' => 'ServiceCurrentRevisionSummaryList', ], 'placementConstraints' => [ 'shape' => 'PlacementConstraints', ], 'placementStrategy' => [ 'shape' => 'PlacementStrategies', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'healthCheckGracePeriodSeconds' => [ 'shape' => 'BoxedInteger', ], 'schedulingStrategy' => [ 'shape' => 'SchedulingStrategy', ], 'deploymentController' => [ 'shape' => 'DeploymentController', ], 'tags' => [ 'shape' => 'Tags', ], 'createdBy' => [ 'shape' => 'String', ], 'enableECSManagedTags' => [ 'shape' => 'Boolean', ], 'propagateTags' => [ 'shape' => 'PropagateTags', ], 'enableExecuteCommand' => [ 'shape' => 'Boolean', ], 'availabilityZoneRebalancing' => [ 'shape' => 'AvailabilityZoneRebalancing', ], 'resourceManagementType' => [ 'shape' => 'ResourceManagementType', ], ], ], 'ServiceConnectAccessLogConfiguration' => [ 'type' => 'structure', 'required' => [ 'format', ], 'members' => [ 'format' => [ 'shape' => 'ServiceConnectAccessLoggingFormat', ], 'includeQueryParameters' => [ 'shape' => 'ServiceConnectIncludeQueryParameters', ], ], ], 'ServiceConnectAccessLoggingFormat' => [ 'type' => 'string', 'enum' => [ 'TEXT', 'JSON', ], ], 'ServiceConnectClientAlias' => [ 'type' => 'structure', 'required' => [ 'port', ], 'members' => [ 'port' => [ 'shape' => 'PortNumber', ], 'dnsName' => [ 'shape' => 'String', ], 'testTrafficRules' => [ 'shape' => 'ServiceConnectTestTrafficRules', ], ], ], 'ServiceConnectClientAliasList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceConnectClientAlias', ], ], 'ServiceConnectConfiguration' => [ 'type' => 'structure', 'required' => [ 'enabled', ], 'members' => [ 'enabled' => [ 'shape' => 'Boolean', ], 'namespace' => [ 'shape' => 'String', ], 'services' => [ 'shape' => 'ServiceConnectServiceList', ], 'logConfiguration' => [ 'shape' => 'LogConfiguration', ], 'accessLogConfiguration' => [ 'shape' => 'ServiceConnectAccessLogConfiguration', ], ], ], 'ServiceConnectIncludeQueryParameters' => [ 'type' => 'string', 'enum' => [ 'DISABLED', 'ENABLED', ], ], 'ServiceConnectService' => [ 'type' => 'structure', 'required' => [ 'portName', ], 'members' => [ 'portName' => [ 'shape' => 'String', ], 'discoveryName' => [ 'shape' => 'String', ], 'clientAliases' => [ 'shape' => 'ServiceConnectClientAliasList', ], 'ingressPortOverride' => [ 'shape' => 'PortNumber', ], 'timeout' => [ 'shape' => 'TimeoutConfiguration', ], 'tls' => [ 'shape' => 'ServiceConnectTlsConfiguration', ], ], ], 'ServiceConnectServiceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceConnectService', ], ], 'ServiceConnectServiceResource' => [ 'type' => 'structure', 'members' => [ 'discoveryName' => [ 'shape' => 'String', ], 'discoveryArn' => [ 'shape' => 'String', ], ], ], 'ServiceConnectServiceResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceConnectServiceResource', ], ], 'ServiceConnectTestTrafficHeaderMatchRules' => [ 'type' => 'structure', 'required' => [ 'exact', ], 'members' => [ 'exact' => [ 'shape' => 'String', ], ], ], 'ServiceConnectTestTrafficHeaderRules' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'ServiceConnectTestTrafficHeaderMatchRules', ], ], ], 'ServiceConnectTestTrafficRules' => [ 'type' => 'structure', 'required' => [ 'header', ], 'members' => [ 'header' => [ 'shape' => 'ServiceConnectTestTrafficHeaderRules', ], ], ], 'ServiceConnectTlsCertificateAuthority' => [ 'type' => 'structure', 'members' => [ 'awsPcaAuthorityArn' => [ 'shape' => 'String', ], ], ], 'ServiceConnectTlsConfiguration' => [ 'type' => 'structure', 'required' => [ 'issuerCertificateAuthority', ], 'members' => [ 'issuerCertificateAuthority' => [ 'shape' => 'ServiceConnectTlsCertificateAuthority', ], 'kmsKey' => [ 'shape' => 'String', ], 'roleArn' => [ 'shape' => 'String', ], ], ], 'ServiceCurrentRevisionSummary' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'requestedTaskCount' => [ 'shape' => 'Integer', ], 'runningTaskCount' => [ 'shape' => 'Integer', ], 'pendingTaskCount' => [ 'shape' => 'Integer', ], ], ], 'ServiceCurrentRevisionSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceCurrentRevisionSummary', ], ], 'ServiceDeployment' => [ 'type' => 'structure', 'members' => [ 'serviceDeploymentArn' => [ 'shape' => 'String', ], 'serviceArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'finishedAt' => [ 'shape' => 'Timestamp', ], 'stoppedAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'sourceServiceRevisions' => [ 'shape' => 'ServiceRevisionsSummaryList', ], 'targetServiceRevision' => [ 'shape' => 'ServiceRevisionSummary', ], 'status' => [ 'shape' => 'ServiceDeploymentStatus', ], 'statusReason' => [ 'shape' => 'String', ], 'lifecycleStage' => [ 'shape' => 'ServiceDeploymentLifecycleStage', ], 'lifecycleHookDetails' => [ 'shape' => 'DeploymentLifecycleHookDetailList', ], 'deploymentConfiguration' => [ 'shape' => 'DeploymentConfiguration', ], 'rollback' => [ 'shape' => 'Rollback', ], 'deploymentCircuitBreaker' => [ 'shape' => 'ServiceDeploymentCircuitBreaker', ], 'alarms' => [ 'shape' => 'ServiceDeploymentAlarms', ], ], ], 'ServiceDeploymentAlarms' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'ServiceDeploymentRollbackMonitorsStatus', ], 'alarmNames' => [ 'shape' => 'StringList', ], 'triggeredAlarmNames' => [ 'shape' => 'StringList', ], ], ], 'ServiceDeploymentBrief' => [ 'type' => 'structure', 'members' => [ 'serviceDeploymentArn' => [ 'shape' => 'String', ], 'serviceArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'finishedAt' => [ 'shape' => 'Timestamp', ], 'targetServiceRevisionArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ServiceDeploymentStatus', ], 'statusReason' => [ 'shape' => 'String', ], ], ], 'ServiceDeploymentCircuitBreaker' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'ServiceDeploymentRollbackMonitorsStatus', ], 'failureCount' => [ 'shape' => 'Integer', ], 'threshold' => [ 'shape' => 'Integer', ], ], ], 'ServiceDeploymentLifecycleStage' => [ 'type' => 'string', 'enum' => [ 'RECONCILE_SERVICE', 'PRE_SCALE_UP', 'SCALE_UP', 'POST_SCALE_UP', 'TEST_TRAFFIC_SHIFT', 'POST_TEST_TRAFFIC_SHIFT', 'PRODUCTION_TRAFFIC_SHIFT', 'POST_PRODUCTION_TRAFFIC_SHIFT', 'BAKE_TIME', 'CLEAN_UP', ], ], 'ServiceDeploymentNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ServiceDeploymentRollbackMonitorsStatus' => [ 'type' => 'string', 'enum' => [ 'TRIGGERED', 'MONITORING', 'MONITORING_COMPLETE', 'DISABLED', ], ], 'ServiceDeploymentStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'SUCCESSFUL', 'STOPPED', 'STOP_REQUESTED', 'IN_PROGRESS', 'ROLLBACK_REQUESTED', 'ROLLBACK_IN_PROGRESS', 'ROLLBACK_SUCCESSFUL', 'ROLLBACK_FAILED', ], ], 'ServiceDeploymentStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceDeploymentStatus', ], ], 'ServiceDeployments' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceDeployment', ], ], 'ServiceDeploymentsBrief' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceDeploymentBrief', ], ], 'ServiceEvent' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'message' => [ 'shape' => 'String', ], ], ], 'ServiceEvents' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceEvent', ], ], 'ServiceField' => [ 'type' => 'string', 'enum' => [ 'TAGS', ], ], 'ServiceFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceField', ], ], 'ServiceManagedEBSVolumeConfiguration' => [ 'type' => 'structure', 'required' => [ 'roleArn', ], 'members' => [ 'encrypted' => [ 'shape' => 'BoxedBoolean', ], 'kmsKeyId' => [ 'shape' => 'EBSKMSKeyId', ], 'volumeType' => [ 'shape' => 'EBSVolumeType', ], 'sizeInGiB' => [ 'shape' => 'BoxedInteger', ], 'snapshotId' => [ 'shape' => 'EBSSnapshotId', ], 'volumeInitializationRate' => [ 'shape' => 'BoxedInteger', ], 'iops' => [ 'shape' => 'BoxedInteger', ], 'throughput' => [ 'shape' => 'BoxedInteger', ], 'tagSpecifications' => [ 'shape' => 'EBSTagSpecifications', ], 'roleArn' => [ 'shape' => 'IAMRoleArn', ], 'filesystemType' => [ 'shape' => 'TaskFilesystemType', ], ], ], 'ServiceNotActiveException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ServiceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'ServiceRegistries' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceRegistry', ], ], 'ServiceRegistry' => [ 'type' => 'structure', 'members' => [ 'registryArn' => [ 'shape' => 'String', ], 'port' => [ 'shape' => 'BoxedInteger', ], 'containerName' => [ 'shape' => 'String', ], 'containerPort' => [ 'shape' => 'BoxedInteger', ], ], ], 'ServiceRevision' => [ 'type' => 'structure', 'members' => [ 'serviceRevisionArn' => [ 'shape' => 'String', ], 'serviceArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'capacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'platformVersion' => [ 'shape' => 'String', ], 'platformFamily' => [ 'shape' => 'String', ], 'loadBalancers' => [ 'shape' => 'LoadBalancers', ], 'serviceRegistries' => [ 'shape' => 'ServiceRegistries', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'containerImages' => [ 'shape' => 'ContainerImages', ], 'guardDutyEnabled' => [ 'shape' => 'Boolean', ], 'serviceConnectConfiguration' => [ 'shape' => 'ServiceConnectConfiguration', ], 'volumeConfigurations' => [ 'shape' => 'ServiceVolumeConfigurations', ], 'fargateEphemeralStorage' => [ 'shape' => 'DeploymentEphemeralStorage', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'vpcLatticeConfigurations' => [ 'shape' => 'VpcLatticeConfigurations', ], 'resolvedConfiguration' => [ 'shape' => 'ResolvedConfiguration', ], 'ecsManagedResources' => [ 'shape' => 'ECSManagedResources', ], 'overrides' => [ 'shape' => 'ServiceRevisionOverrides', ], 'monitoring' => [ 'shape' => 'MonitoringConfiguration', ], ], ], 'ServiceRevisionLoadBalancer' => [ 'type' => 'structure', 'members' => [ 'targetGroupArn' => [ 'shape' => 'String', ], 'productionListenerRule' => [ 'shape' => 'String', ], ], ], 'ServiceRevisionLoadBalancers' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceRevisionLoadBalancer', ], ], 'ServiceRevisionOverrides' => [ 'type' => 'structure', 'members' => [ 'runtimePlatform' => [ 'shape' => 'RuntimePlatformOverride', ], ], ], 'ServiceRevisionSummary' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'String', ], 'requestedTaskCount' => [ 'shape' => 'Integer', ], 'runningTaskCount' => [ 'shape' => 'Integer', ], 'pendingTaskCount' => [ 'shape' => 'Integer', ], 'requestedTestTrafficWeight' => [ 'shape' => 'Double', 'box' => true, ], 'requestedProductionTrafficWeight' => [ 'shape' => 'Double', 'box' => true, ], ], ], 'ServiceRevisions' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceRevision', ], ], 'ServiceRevisionsSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceRevisionSummary', ], ], 'ServiceVolumeConfiguration' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'ECSVolumeName', ], 'managedEBSVolume' => [ 'shape' => 'ServiceManagedEBSVolumeConfiguration', ], ], ], 'ServiceVolumeConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceVolumeConfiguration', ], ], 'Services' => [ 'type' => 'list', 'member' => [ 'shape' => 'Service', ], ], 'Session' => [ 'type' => 'structure', 'members' => [ 'sessionId' => [ 'shape' => 'String', ], 'streamUrl' => [ 'shape' => 'String', ], 'tokenValue' => [ 'shape' => 'SensitiveString', ], ], ], 'Setting' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'SettingName', ], 'value' => [ 'shape' => 'String', ], 'principalArn' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'SettingType', ], ], ], 'SettingName' => [ 'type' => 'string', 'enum' => [ 'serviceLongArnFormat', 'taskLongArnFormat', 'containerInstanceLongArnFormat', 'awsvpcTrunking', 'containerInsights', 'fargateFIPSMode', 'tagResourceAuthorization', 'fargateTaskRetirementWaitPeriod', 'guardDutyActivate', 'defaultLogDriverMode', 'fargateEventWindows', ], ], 'SettingType' => [ 'type' => 'string', 'enum' => [ 'user', 'aws_managed', ], ], 'Settings' => [ 'type' => 'list', 'member' => [ 'shape' => 'Setting', ], ], 'SortOrder' => [ 'type' => 'string', 'enum' => [ 'ASC', 'DESC', ], ], 'StabilityStatus' => [ 'type' => 'string', 'enum' => [ 'STEADY_STATE', 'STABILIZING', ], ], 'StartTaskRequest' => [ 'type' => 'structure', 'required' => [ 'containerInstances', 'taskDefinition', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'containerInstances' => [ 'shape' => 'StringList', ], 'enableECSManagedTags' => [ 'shape' => 'Boolean', ], 'enableExecuteCommand' => [ 'shape' => 'Boolean', ], 'group' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'overrides' => [ 'shape' => 'TaskOverride', ], 'propagateTags' => [ 'shape' => 'PropagateTags', ], 'referenceId' => [ 'shape' => 'String', ], 'startedBy' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], 'taskDefinition' => [ 'shape' => 'String', ], 'volumeConfigurations' => [ 'shape' => 'TaskVolumeConfigurations', ], ], ], 'StartTaskResponse' => [ 'type' => 'structure', 'members' => [ 'tasks' => [ 'shape' => 'Tasks', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'Statistics' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyValuePair', ], ], 'StopServiceDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'serviceDeploymentArn', ], 'members' => [ 'serviceDeploymentArn' => [ 'shape' => 'String', ], 'stopType' => [ 'shape' => 'StopServiceDeploymentStopType', ], ], ], 'StopServiceDeploymentResponse' => [ 'type' => 'structure', 'members' => [ 'serviceDeploymentArn' => [ 'shape' => 'String', ], ], ], 'StopServiceDeploymentStopType' => [ 'type' => 'string', 'enum' => [ 'ABORT', 'ROLLBACK', ], ], 'StopTaskRequest' => [ 'type' => 'structure', 'required' => [ 'task', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'task' => [ 'shape' => 'String', ], 'reason' => [ 'shape' => 'String', ], ], ], 'StopTaskResponse' => [ 'type' => 'structure', 'members' => [ 'task' => [ 'shape' => 'Task', ], ], ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'StringMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'SubmitAttachmentStateChangesRequest' => [ 'type' => 'structure', 'required' => [ 'attachments', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'attachments' => [ 'shape' => 'AttachmentStateChanges', ], ], ], 'SubmitAttachmentStateChangesResponse' => [ 'type' => 'structure', 'members' => [ 'acknowledgment' => [ 'shape' => 'String', ], ], ], 'SubmitContainerStateChangeRequest' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'task' => [ 'shape' => 'String', ], 'containerName' => [ 'shape' => 'String', ], 'runtimeId' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], 'exitCode' => [ 'shape' => 'BoxedInteger', ], 'reason' => [ 'shape' => 'String', ], 'networkBindings' => [ 'shape' => 'NetworkBindings', ], ], ], 'SubmitContainerStateChangeResponse' => [ 'type' => 'structure', 'members' => [ 'acknowledgment' => [ 'shape' => 'String', ], ], ], 'SubmitTaskStateChangeRequest' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'task' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], 'reason' => [ 'shape' => 'String', ], 'containers' => [ 'shape' => 'ContainerStateChanges', ], 'attachments' => [ 'shape' => 'AttachmentStateChanges', ], 'managedAgents' => [ 'shape' => 'ManagedAgentStateChanges', ], 'pullStartedAt' => [ 'shape' => 'Timestamp', ], 'pullStoppedAt' => [ 'shape' => 'Timestamp', ], 'executionStoppedAt' => [ 'shape' => 'Timestamp', ], ], ], 'SubmitTaskStateChangeResponse' => [ 'type' => 'structure', 'members' => [ 'acknowledgment' => [ 'shape' => 'String', ], ], ], 'SystemControl' => [ 'type' => 'structure', 'members' => [ 'namespace' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], ], 'SystemControls' => [ 'type' => 'list', 'member' => [ 'shape' => 'SystemControl', ], ], 'Tag' => [ 'type' => 'structure', 'members' => [ 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)', ], 'TagKeys' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'String', ], 'tags' => [ 'shape' => 'Tags', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)', ], 'Tags' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, 'min' => 0, ], 'TargetNotConnectedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'TargetNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'TargetType' => [ 'type' => 'string', 'enum' => [ 'container-instance', ], ], 'Task' => [ 'type' => 'structure', 'members' => [ 'attachments' => [ 'shape' => 'Attachments', ], 'attributes' => [ 'shape' => 'Attributes', ], 'availabilityZone' => [ 'shape' => 'String', ], 'capacityProviderName' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'connectivity' => [ 'shape' => 'Connectivity', ], 'connectivityAt' => [ 'shape' => 'Timestamp', ], 'containerInstanceArn' => [ 'shape' => 'String', ], 'containers' => [ 'shape' => 'Containers', ], 'cpu' => [ 'shape' => 'String', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'desiredStatus' => [ 'shape' => 'String', ], 'enableExecuteCommand' => [ 'shape' => 'Boolean', ], 'executionStoppedAt' => [ 'shape' => 'Timestamp', ], 'group' => [ 'shape' => 'String', ], 'healthStatus' => [ 'shape' => 'HealthStatus', ], 'inferenceAccelerators' => [ 'shape' => 'InferenceAccelerators', ], 'lastStatus' => [ 'shape' => 'String', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'memory' => [ 'shape' => 'String', ], 'overrides' => [ 'shape' => 'TaskOverride', ], 'platformVersion' => [ 'shape' => 'String', ], 'platformFamily' => [ 'shape' => 'String', ], 'pullStartedAt' => [ 'shape' => 'Timestamp', ], 'pullStoppedAt' => [ 'shape' => 'Timestamp', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'startedBy' => [ 'shape' => 'String', ], 'stopCode' => [ 'shape' => 'TaskStopCode', ], 'stoppedAt' => [ 'shape' => 'Timestamp', ], 'stoppedReason' => [ 'shape' => 'String', ], 'stoppingAt' => [ 'shape' => 'Timestamp', ], 'tags' => [ 'shape' => 'Tags', ], 'taskArn' => [ 'shape' => 'String', ], 'taskDefinitionArn' => [ 'shape' => 'String', ], 'version' => [ 'shape' => 'Long', ], 'ephemeralStorage' => [ 'shape' => 'EphemeralStorage', ], 'fargateEphemeralStorage' => [ 'shape' => 'TaskEphemeralStorage', ], ], ], 'TaskDefinition' => [ 'type' => 'structure', 'members' => [ 'taskDefinitionArn' => [ 'shape' => 'String', ], 'containerDefinitions' => [ 'shape' => 'ContainerDefinitions', ], 'family' => [ 'shape' => 'String', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'executionRoleArn' => [ 'shape' => 'String', ], 'networkMode' => [ 'shape' => 'NetworkMode', ], 'revision' => [ 'shape' => 'Integer', ], 'volumes' => [ 'shape' => 'VolumeList', ], 'status' => [ 'shape' => 'TaskDefinitionStatus', ], 'requiresAttributes' => [ 'shape' => 'RequiresAttributes', ], 'placementConstraints' => [ 'shape' => 'TaskDefinitionPlacementConstraints', ], 'compatibilities' => [ 'shape' => 'CompatibilityList', ], 'runtimePlatform' => [ 'shape' => 'RuntimePlatform', ], 'requiresCompatibilities' => [ 'shape' => 'CompatibilityList', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'inferenceAccelerators' => [ 'shape' => 'InferenceAccelerators', ], 'pidMode' => [ 'shape' => 'PidMode', ], 'ipcMode' => [ 'shape' => 'IpcMode', ], 'proxyConfiguration' => [ 'shape' => 'ProxyConfiguration', ], 'registeredAt' => [ 'shape' => 'Timestamp', ], 'deregisteredAt' => [ 'shape' => 'Timestamp', ], 'deleteRequestedAt' => [ 'shape' => 'Timestamp', ], 'registeredBy' => [ 'shape' => 'String', ], 'ephemeralStorage' => [ 'shape' => 'EphemeralStorage', ], 'enableFaultInjection' => [ 'shape' => 'BoxedBoolean', ], ], ], 'TaskDefinitionFamilyStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'INACTIVE', 'ALL', ], ], 'TaskDefinitionField' => [ 'type' => 'string', 'enum' => [ 'TAGS', ], ], 'TaskDefinitionFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskDefinitionField', ], ], 'TaskDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskDefinition', ], ], 'TaskDefinitionPlacementConstraint' => [ 'type' => 'structure', 'members' => [ 'type' => [ 'shape' => 'TaskDefinitionPlacementConstraintType', ], 'expression' => [ 'shape' => 'String', ], ], ], 'TaskDefinitionPlacementConstraintType' => [ 'type' => 'string', 'enum' => [ 'memberOf', ], ], 'TaskDefinitionPlacementConstraints' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskDefinitionPlacementConstraint', ], ], 'TaskDefinitionStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'INACTIVE', 'DELETE_IN_PROGRESS', ], ], 'TaskEphemeralStorage' => [ 'type' => 'structure', 'members' => [ 'sizeInGiB' => [ 'shape' => 'Integer', ], 'kmsKeyId' => [ 'shape' => 'String', ], ], ], 'TaskField' => [ 'type' => 'string', 'enum' => [ 'TAGS', ], ], 'TaskFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskField', ], ], 'TaskFilesystemType' => [ 'type' => 'string', 'enum' => [ 'ext3', 'ext4', 'xfs', 'ntfs', ], ], 'TaskManagedEBSVolumeConfiguration' => [ 'type' => 'structure', 'required' => [ 'roleArn', ], 'members' => [ 'encrypted' => [ 'shape' => 'BoxedBoolean', ], 'kmsKeyId' => [ 'shape' => 'EBSKMSKeyId', ], 'volumeType' => [ 'shape' => 'EBSVolumeType', ], 'sizeInGiB' => [ 'shape' => 'BoxedInteger', ], 'snapshotId' => [ 'shape' => 'EBSSnapshotId', ], 'volumeInitializationRate' => [ 'shape' => 'BoxedInteger', ], 'iops' => [ 'shape' => 'BoxedInteger', ], 'throughput' => [ 'shape' => 'BoxedInteger', ], 'tagSpecifications' => [ 'shape' => 'EBSTagSpecifications', ], 'roleArn' => [ 'shape' => 'IAMRoleArn', ], 'terminationPolicy' => [ 'shape' => 'TaskManagedEBSVolumeTerminationPolicy', ], 'filesystemType' => [ 'shape' => 'TaskFilesystemType', ], ], ], 'TaskManagedEBSVolumeTerminationPolicy' => [ 'type' => 'structure', 'required' => [ 'deleteOnTermination', ], 'members' => [ 'deleteOnTermination' => [ 'shape' => 'BoxedBoolean', ], ], ], 'TaskOverride' => [ 'type' => 'structure', 'members' => [ 'containerOverrides' => [ 'shape' => 'ContainerOverrides', ], 'cpu' => [ 'shape' => 'String', ], 'inferenceAcceleratorOverrides' => [ 'shape' => 'InferenceAcceleratorOverrides', ], 'executionRoleArn' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'ephemeralStorage' => [ 'shape' => 'EphemeralStorage', ], ], ], 'TaskSet' => [ 'type' => 'structure', 'members' => [ 'id' => [ 'shape' => 'String', ], 'taskSetArn' => [ 'shape' => 'String', ], 'serviceArn' => [ 'shape' => 'String', ], 'clusterArn' => [ 'shape' => 'String', ], 'startedBy' => [ 'shape' => 'String', ], 'externalId' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'String', ], 'taskDefinition' => [ 'shape' => 'String', ], 'computedDesiredCount' => [ 'shape' => 'Integer', ], 'pendingCount' => [ 'shape' => 'Integer', ], 'runningCount' => [ 'shape' => 'Integer', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'launchType' => [ 'shape' => 'LaunchType', ], 'capacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'platformVersion' => [ 'shape' => 'String', ], 'platformFamily' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'loadBalancers' => [ 'shape' => 'LoadBalancers', ], 'serviceRegistries' => [ 'shape' => 'ServiceRegistries', ], 'scale' => [ 'shape' => 'Scale', ], 'stabilityStatus' => [ 'shape' => 'StabilityStatus', ], 'stabilityStatusAt' => [ 'shape' => 'Timestamp', ], 'tags' => [ 'shape' => 'Tags', ], 'fargateEphemeralStorage' => [ 'shape' => 'DeploymentEphemeralStorage', ], ], ], 'TaskSetField' => [ 'type' => 'string', 'enum' => [ 'TAGS', ], ], 'TaskSetFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskSetField', ], ], 'TaskSetNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'TaskSets' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskSet', ], ], 'TaskStopCode' => [ 'type' => 'string', 'enum' => [ 'TaskFailedToStart', 'EssentialContainerExited', 'UserInitiated', 'ServiceSchedulerInitiated', 'SpotInterruption', 'TerminationNotice', ], ], 'TaskVolumeConfiguration' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'ECSVolumeName', ], 'managedEBSVolume' => [ 'shape' => 'TaskManagedEBSVolumeConfiguration', ], ], ], 'TaskVolumeConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'TaskVolumeConfiguration', ], ], 'TaskVolumeStorageGiB' => [ 'type' => 'integer', 'box' => true, 'min' => 1, ], 'Tasks' => [ 'type' => 'list', 'member' => [ 'shape' => 'Task', ], ], 'ThresholdConfiguration' => [ 'type' => 'structure', 'required' => [ 'type', 'value', ], 'members' => [ 'type' => [ 'shape' => 'ThresholdType', ], 'value' => [ 'shape' => 'Integer', ], ], ], 'ThresholdType' => [ 'type' => 'string', 'enum' => [ 'COUNT', 'BOUNDED_PERCENT', 'UNBOUNDED_PERCENT', ], ], 'TimeoutConfiguration' => [ 'type' => 'structure', 'members' => [ 'idleTimeoutSeconds' => [ 'shape' => 'Duration', ], 'perRequestTimeoutSeconds' => [ 'shape' => 'Duration', ], ], ], 'Timestamp' => [ 'type' => 'timestamp', ], 'Tmpfs' => [ 'type' => 'structure', 'required' => [ 'containerPath', 'size', ], 'members' => [ 'containerPath' => [ 'shape' => 'String', ], 'size' => [ 'shape' => 'Integer', ], 'mountOptions' => [ 'shape' => 'StringList', ], ], ], 'TmpfsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tmpfs', ], ], 'TotalLocalStorageGBRequest' => [ 'type' => 'structure', 'members' => [ 'min' => [ 'shape' => 'BoxedDouble', ], 'max' => [ 'shape' => 'BoxedDouble', ], ], ], 'TransportProtocol' => [ 'type' => 'string', 'enum' => [ 'tcp', 'udp', ], ], 'Ulimit' => [ 'type' => 'structure', 'required' => [ 'name', 'softLimit', 'hardLimit', ], 'members' => [ 'name' => [ 'shape' => 'UlimitName', ], 'softLimit' => [ 'shape' => 'Integer', ], 'hardLimit' => [ 'shape' => 'Integer', ], ], ], 'UlimitList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Ulimit', ], ], 'UlimitName' => [ 'type' => 'string', 'enum' => [ 'core', 'cpu', 'data', 'fsize', 'locks', 'memlock', 'msgqueue', 'nice', 'nofile', 'nproc', 'rss', 'rtprio', 'rttime', 'sigpending', 'stack', ], ], 'UnsupportedFeatureException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'String', ], 'tagKeys' => [ 'shape' => 'TagKeys', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateCapacityProviderRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], 'autoScalingGroupProvider' => [ 'shape' => 'AutoScalingGroupProviderUpdate', ], 'managedInstancesProvider' => [ 'shape' => 'UpdateManagedInstancesProviderConfiguration', ], ], ], 'UpdateCapacityProviderResponse' => [ 'type' => 'structure', 'members' => [ 'capacityProvider' => [ 'shape' => 'CapacityProvider', ], ], ], 'UpdateClusterRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'settings' => [ 'shape' => 'ClusterSettings', ], 'configuration' => [ 'shape' => 'ClusterConfiguration', ], 'serviceConnectDefaults' => [ 'shape' => 'ClusterServiceConnectDefaultsRequest', ], ], ], 'UpdateClusterResponse' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'Cluster', ], ], ], 'UpdateClusterSettingsRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'settings', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'settings' => [ 'shape' => 'ClusterSettings', ], ], ], 'UpdateClusterSettingsResponse' => [ 'type' => 'structure', 'members' => [ 'cluster' => [ 'shape' => 'Cluster', ], ], ], 'UpdateContainerAgentRequest' => [ 'type' => 'structure', 'required' => [ 'containerInstance', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'containerInstance' => [ 'shape' => 'String', ], ], ], 'UpdateContainerAgentResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstance' => [ 'shape' => 'ContainerInstance', ], ], ], 'UpdateContainerInstancesStateRequest' => [ 'type' => 'structure', 'required' => [ 'containerInstances', 'status', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'containerInstances' => [ 'shape' => 'StringList', ], 'status' => [ 'shape' => 'ContainerInstanceStatus', ], ], ], 'UpdateContainerInstancesStateResponse' => [ 'type' => 'structure', 'members' => [ 'containerInstances' => [ 'shape' => 'ContainerInstances', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'UpdateDaemonRequest' => [ 'type' => 'structure', 'required' => [ 'daemonArn', 'daemonTaskDefinitionArn', 'capacityProviderArns', ], 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], 'daemonTaskDefinitionArn' => [ 'shape' => 'String', ], 'capacityProviderArns' => [ 'shape' => 'StringList', ], 'deploymentConfiguration' => [ 'shape' => 'DaemonDeploymentConfiguration', ], 'propagateTags' => [ 'shape' => 'DaemonPropagateTags', ], 'enableECSManagedTags' => [ 'shape' => 'Boolean', ], 'enableExecuteCommand' => [ 'shape' => 'Boolean', ], ], ], 'UpdateDaemonResponse' => [ 'type' => 'structure', 'members' => [ 'daemonArn' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'DaemonStatus', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'deploymentArn' => [ 'shape' => 'String', ], ], ], 'UpdateExpressGatewayServiceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'String', ], 'executionRoleArn' => [ 'shape' => 'String', ], 'healthCheckPath' => [ 'shape' => 'String', ], 'primaryContainer' => [ 'shape' => 'ExpressGatewayContainer', ], 'taskRoleArn' => [ 'shape' => 'String', ], 'networkConfiguration' => [ 'shape' => 'ExpressGatewayServiceNetworkConfiguration', ], 'cpu' => [ 'shape' => 'String', ], 'memory' => [ 'shape' => 'String', ], 'scalingTarget' => [ 'shape' => 'ExpressGatewayScalingTarget', ], 'taskDefinitionArn' => [ 'shape' => 'String', ], ], ], 'UpdateExpressGatewayServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'UpdatedExpressGatewayService', ], ], ], 'UpdateInProgressException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'UpdateManagedInstancesProviderConfiguration' => [ 'type' => 'structure', 'required' => [ 'infrastructureRoleArn', 'instanceLaunchTemplate', ], 'members' => [ 'infrastructureRoleArn' => [ 'shape' => 'String', ], 'instanceLaunchTemplate' => [ 'shape' => 'InstanceLaunchTemplateUpdate', ], 'propagateTags' => [ 'shape' => 'PropagateMITags', ], 'infrastructureOptimization' => [ 'shape' => 'InfrastructureOptimization', ], 'autoRepairConfiguration' => [ 'shape' => 'AutoRepairConfiguration', ], ], ], 'UpdateServicePrimaryTaskSetRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'service', 'primaryTaskSet', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'primaryTaskSet' => [ 'shape' => 'String', ], ], ], 'UpdateServicePrimaryTaskSetResponse' => [ 'type' => 'structure', 'members' => [ 'taskSet' => [ 'shape' => 'TaskSet', ], ], ], 'UpdateServiceRequest' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'desiredCount' => [ 'shape' => 'BoxedInteger', ], 'taskDefinition' => [ 'shape' => 'String', ], 'capacityProviderStrategy' => [ 'shape' => 'CapacityProviderStrategy', ], 'deploymentConfiguration' => [ 'shape' => 'DeploymentConfiguration', ], 'availabilityZoneRebalancing' => [ 'shape' => 'AvailabilityZoneRebalancing', ], 'networkConfiguration' => [ 'shape' => 'NetworkConfiguration', ], 'placementConstraints' => [ 'shape' => 'PlacementConstraints', ], 'placementStrategy' => [ 'shape' => 'PlacementStrategies', ], 'platformVersion' => [ 'shape' => 'String', ], 'forceNewDeployment' => [ 'shape' => 'Boolean', ], 'healthCheckGracePeriodSeconds' => [ 'shape' => 'BoxedInteger', ], 'deploymentController' => [ 'shape' => 'DeploymentController', ], 'enableExecuteCommand' => [ 'shape' => 'BoxedBoolean', ], 'enableECSManagedTags' => [ 'shape' => 'BoxedBoolean', ], 'loadBalancers' => [ 'shape' => 'LoadBalancers', ], 'propagateTags' => [ 'shape' => 'PropagateTags', ], 'serviceRegistries' => [ 'shape' => 'ServiceRegistries', ], 'serviceConnectConfiguration' => [ 'shape' => 'ServiceConnectConfiguration', ], 'volumeConfigurations' => [ 'shape' => 'ServiceVolumeConfigurations', ], 'vpcLatticeConfigurations' => [ 'shape' => 'VpcLatticeConfigurations', ], 'monitoring' => [ 'shape' => 'MonitoringConfiguration', ], ], ], 'UpdateServiceResponse' => [ 'type' => 'structure', 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'UpdateTaskProtectionRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'tasks', 'protectionEnabled', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'tasks' => [ 'shape' => 'StringList', ], 'protectionEnabled' => [ 'shape' => 'Boolean', ], 'expiresInMinutes' => [ 'shape' => 'BoxedInteger', ], ], ], 'UpdateTaskProtectionResponse' => [ 'type' => 'structure', 'members' => [ 'protectedTasks' => [ 'shape' => 'ProtectedTasks', ], 'failures' => [ 'shape' => 'Failures', ], ], ], 'UpdateTaskSetRequest' => [ 'type' => 'structure', 'required' => [ 'cluster', 'service', 'taskSet', 'scale', ], 'members' => [ 'cluster' => [ 'shape' => 'String', ], 'service' => [ 'shape' => 'String', ], 'taskSet' => [ 'shape' => 'String', ], 'scale' => [ 'shape' => 'Scale', ], ], ], 'UpdateTaskSetResponse' => [ 'type' => 'structure', 'members' => [ 'taskSet' => [ 'shape' => 'TaskSet', ], ], ], 'UpdatedExpressGatewayService' => [ 'type' => 'structure', 'members' => [ 'serviceArn' => [ 'shape' => 'String', ], 'cluster' => [ 'shape' => 'String', ], 'serviceName' => [ 'shape' => 'String', ], 'status' => [ 'shape' => 'ExpressGatewayServiceStatus', ], 'targetConfiguration' => [ 'shape' => 'ExpressGatewayServiceConfiguration', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'VCpuCountRangeRequest' => [ 'type' => 'structure', 'required' => [ 'min', ], 'members' => [ 'min' => [ 'shape' => 'BoxedInteger', ], 'max' => [ 'shape' => 'BoxedInteger', ], ], ], 'VersionConsistency' => [ 'type' => 'string', 'enum' => [ 'enabled', 'disabled', ], ], 'VersionInfo' => [ 'type' => 'structure', 'members' => [ 'agentVersion' => [ 'shape' => 'String', ], 'agentHash' => [ 'shape' => 'String', ], 'dockerVersion' => [ 'shape' => 'String', ], ], ], 'Volume' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'String', ], 'host' => [ 'shape' => 'HostVolumeProperties', ], 'dockerVolumeConfiguration' => [ 'shape' => 'DockerVolumeConfiguration', ], 'efsVolumeConfiguration' => [ 'shape' => 'EFSVolumeConfiguration', ], 's3filesVolumeConfiguration' => [ 'shape' => 'S3FilesVolumeConfiguration', ], 'fsxWindowsFileServerVolumeConfiguration' => [ 'shape' => 'FSxWindowsFileServerVolumeConfiguration', ], 'configuredAtLaunch' => [ 'shape' => 'BoxedBoolean', ], ], ], 'VolumeFrom' => [ 'type' => 'structure', 'members' => [ 'sourceContainer' => [ 'shape' => 'String', ], 'readOnly' => [ 'shape' => 'BoxedBoolean', ], ], ], 'VolumeFromList' => [ 'type' => 'list', 'member' => [ 'shape' => 'VolumeFrom', ], ], 'VolumeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Volume', ], ], 'VpcLatticeConfiguration' => [ 'type' => 'structure', 'required' => [ 'roleArn', 'targetGroupArn', 'portName', ], 'members' => [ 'roleArn' => [ 'shape' => 'IAMRoleArn', ], 'targetGroupArn' => [ 'shape' => 'String', ], 'portName' => [ 'shape' => 'String', ], ], ], 'VpcLatticeConfigurations' => [ 'type' => 'list', 'member' => [ 'shape' => 'VpcLatticeConfiguration', ], ], ],]; diff --git a/vendor/aws/aws-sdk-php/src/data/geo-places/2020-11-19/api-2.json.php b/vendor/aws/aws-sdk-php/src/data/geo-places/2020-11-19/api-2.json.php index d0cb7c55f..72c6772ce 100644 --- a/vendor/aws/aws-sdk-php/src/data/geo-places/2020-11-19/api-2.json.php +++ b/vendor/aws/aws-sdk-php/src/data/geo-places/2020-11-19/api-2.json.php @@ -1,3 +1,3 @@ '2.0', 'metadata' => [ 'apiVersion' => '2020-11-19', 'auth' => [ 'aws.auth#sigv4', ], 'endpointPrefix' => 'geo-places', 'protocol' => 'rest-json', 'protocols' => [ 'rest-json', ], 'serviceFullName' => 'Amazon Location Service Places V2', 'serviceId' => 'Geo Places', 'signatureVersion' => 'v4', 'signingName' => 'geo-places', 'uid' => 'geo-places-2020-11-19', ], 'operations' => [ 'Autocomplete' => [ 'name' => 'Autocomplete', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/autocomplete', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AutocompleteRequest', ], 'output' => [ 'shape' => 'AutocompleteResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], ], 'readonly' => true, ], 'Geocode' => [ 'name' => 'Geocode', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/geocode', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GeocodeRequest', ], 'output' => [ 'shape' => 'GeocodeResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], ], 'readonly' => true, ], 'GetPlace' => [ 'name' => 'GetPlace', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/place/{PlaceId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPlaceRequest', ], 'output' => [ 'shape' => 'GetPlaceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], ], 'readonly' => true, ], 'ReverseGeocode' => [ 'name' => 'ReverseGeocode', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/reverse-geocode', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ReverseGeocodeRequest', ], 'output' => [ 'shape' => 'ReverseGeocodeResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], ], 'readonly' => true, ], 'SearchNearby' => [ 'name' => 'SearchNearby', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/search-nearby', 'responseCode' => 200, ], 'input' => [ 'shape' => 'SearchNearbyRequest', ], 'output' => [ 'shape' => 'SearchNearbyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], ], 'readonly' => true, ], 'SearchText' => [ 'name' => 'SearchText', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/search-text', 'responseCode' => 200, ], 'input' => [ 'shape' => 'SearchTextRequest', ], 'output' => [ 'shape' => 'SearchTextResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], ], 'readonly' => true, ], 'Suggest' => [ 'name' => 'Suggest', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/suggest', 'responseCode' => 200, ], 'input' => [ 'shape' => 'SuggestRequest', ], 'output' => [ 'shape' => 'SuggestResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], ], 'readonly' => true, ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'required' => [ 'Message', ], 'members' => [ 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], 'error' => [ 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'AccessPoint' => [ 'type' => 'structure', 'members' => [ 'Position' => [ 'shape' => 'Position', ], ], ], 'AccessPointList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccessPoint', ], 'max' => 100, 'min' => 0, ], 'AccessRestriction' => [ 'type' => 'structure', 'members' => [ 'Restricted' => [ 'shape' => 'SensitiveBoolean', ], 'Categories' => [ 'shape' => 'CategoryList', ], ], ], 'AccessRestrictionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccessRestriction', ], 'max' => 100, 'min' => 1, ], 'Address' => [ 'type' => 'structure', 'members' => [ 'Label' => [ 'shape' => 'AddressLabelString', ], 'Country' => [ 'shape' => 'Country', ], 'Region' => [ 'shape' => 'Region', ], 'SubRegion' => [ 'shape' => 'SubRegion', ], 'Locality' => [ 'shape' => 'AddressLocalityString', ], 'District' => [ 'shape' => 'AddressDistrictString', ], 'SubDistrict' => [ 'shape' => 'AddressSubDistrictString', ], 'PostalCode' => [ 'shape' => 'AddressPostalCodeString', ], 'Block' => [ 'shape' => 'AddressBlockString', ], 'SubBlock' => [ 'shape' => 'AddressSubBlockString', ], 'Intersection' => [ 'shape' => 'IntersectionStreetList', ], 'Street' => [ 'shape' => 'AddressStreetString', ], 'StreetComponents' => [ 'shape' => 'StreetComponentsList', ], 'AddressNumber' => [ 'shape' => 'AddressAddressNumberString', ], 'Building' => [ 'shape' => 'AddressBuildingString', ], 'SecondaryAddressComponents' => [ 'shape' => 'SecondaryAddressComponentList', ], ], ], 'AddressAddressNumberString' => [ 'type' => 'string', 'max' => 10, 'min' => 0, 'sensitive' => true, ], 'AddressBlockString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'AddressBuildingString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'AddressComponentMatchScores' => [ 'type' => 'structure', 'members' => [ 'Country' => [ 'shape' => 'MatchScore', ], 'Region' => [ 'shape' => 'MatchScore', ], 'SubRegion' => [ 'shape' => 'MatchScore', ], 'Locality' => [ 'shape' => 'MatchScore', ], 'District' => [ 'shape' => 'MatchScore', ], 'SubDistrict' => [ 'shape' => 'MatchScore', ], 'PostalCode' => [ 'shape' => 'MatchScore', ], 'Block' => [ 'shape' => 'MatchScore', ], 'SubBlock' => [ 'shape' => 'MatchScore', ], 'Intersection' => [ 'shape' => 'AddressComponentMatchScoresIntersectionList', ], 'AddressNumber' => [ 'shape' => 'MatchScore', ], 'Building' => [ 'shape' => 'MatchScore', ], 'SecondaryAddressComponents' => [ 'shape' => 'SecondaryAddressComponentMatchScoreList', ], ], ], 'AddressComponentMatchScoresIntersectionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MatchScore', ], 'max' => 2, 'min' => 1, ], 'AddressComponentPhonemes' => [ 'type' => 'structure', 'members' => [ 'Country' => [ 'shape' => 'PhonemeTranscriptionList', ], 'Region' => [ 'shape' => 'PhonemeTranscriptionList', ], 'SubRegion' => [ 'shape' => 'PhonemeTranscriptionList', ], 'Locality' => [ 'shape' => 'PhonemeTranscriptionList', ], 'District' => [ 'shape' => 'PhonemeTranscriptionList', ], 'SubDistrict' => [ 'shape' => 'PhonemeTranscriptionList', ], 'Block' => [ 'shape' => 'PhonemeTranscriptionList', ], 'SubBlock' => [ 'shape' => 'PhonemeTranscriptionList', ], 'Street' => [ 'shape' => 'PhonemeTranscriptionList', ], ], ], 'AddressDistrictString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'AddressLabelString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'AddressLocalityString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'AddressPostalCodeString' => [ 'type' => 'string', 'max' => 50, 'min' => 0, 'sensitive' => true, ], 'AddressStreetString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'AddressSubBlockString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'AddressSubDistrictString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'ApiKey' => [ 'type' => 'string', 'max' => 1000, 'min' => 0, 'sensitive' => true, ], 'AutocompleteAdditionalFeature' => [ 'type' => 'string', 'enum' => [ 'Core', ], ], 'AutocompleteAdditionalFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AutocompleteAdditionalFeature', ], 'max' => 1, 'min' => 1, ], 'AutocompleteAddressHighlights' => [ 'type' => 'structure', 'members' => [ 'Label' => [ 'shape' => 'HighlightList', ], 'Country' => [ 'shape' => 'CountryHighlights', ], 'Region' => [ 'shape' => 'RegionHighlights', ], 'SubRegion' => [ 'shape' => 'SubRegionHighlights', ], 'Locality' => [ 'shape' => 'HighlightList', ], 'District' => [ 'shape' => 'HighlightList', ], 'SubDistrict' => [ 'shape' => 'HighlightList', ], 'Street' => [ 'shape' => 'HighlightList', ], 'Block' => [ 'shape' => 'HighlightList', ], 'SubBlock' => [ 'shape' => 'HighlightList', ], 'Intersection' => [ 'shape' => 'IntersectionHighlightsList', ], 'PostalCode' => [ 'shape' => 'HighlightList', ], 'AddressNumber' => [ 'shape' => 'HighlightList', ], 'Building' => [ 'shape' => 'HighlightList', ], ], ], 'AutocompleteFilter' => [ 'type' => 'structure', 'members' => [ 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'Circle' => [ 'shape' => 'FilterCircle', ], 'IncludeCountries' => [ 'shape' => 'CountryCodeList', ], 'IncludePlaceTypes' => [ 'shape' => 'AutocompleteFilterPlaceTypeList', ], ], ], 'AutocompleteFilterPlaceType' => [ 'type' => 'string', 'enum' => [ 'Locality', 'PostalCode', ], ], 'AutocompleteFilterPlaceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AutocompleteFilterPlaceType', ], 'max' => 2, 'min' => 1, ], 'AutocompleteHighlights' => [ 'type' => 'structure', 'members' => [ 'Title' => [ 'shape' => 'HighlightList', ], 'Address' => [ 'shape' => 'AutocompleteAddressHighlights', ], ], ], 'AutocompleteIntendedUse' => [ 'type' => 'string', 'enum' => [ 'SingleUse', ], ], 'AutocompleteRequest' => [ 'type' => 'structure', 'required' => [ 'QueryText', ], 'members' => [ 'QueryText' => [ 'shape' => 'AutocompleteRequestQueryTextString', ], 'MaxResults' => [ 'shape' => 'AutocompleteRequestMaxResultsInteger', ], 'BiasPosition' => [ 'shape' => 'Position', ], 'Filter' => [ 'shape' => 'AutocompleteFilter', ], 'PostalCodeMode' => [ 'shape' => 'PostalCodeMode', ], 'AdditionalFeatures' => [ 'shape' => 'AutocompleteAdditionalFeatureList', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'PoliticalView' => [ 'shape' => 'CountryCode', ], 'IntendedUse' => [ 'shape' => 'AutocompleteIntendedUse', ], 'Key' => [ 'shape' => 'ApiKey', 'location' => 'querystring', 'locationName' => 'key', ], ], ], 'AutocompleteRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 20, 'min' => 1, ], 'AutocompleteRequestQueryTextString' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'sensitive' => true, ], 'AutocompleteResponse' => [ 'type' => 'structure', 'required' => [ 'PricingBucket', ], 'members' => [ 'PricingBucket' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-geo-pricing-bucket', ], 'ResultItems' => [ 'shape' => 'AutocompleteResultItemList', ], ], ], 'AutocompleteResultItem' => [ 'type' => 'structure', 'required' => [ 'PlaceId', 'PlaceType', 'Title', ], 'members' => [ 'PlaceId' => [ 'shape' => 'AutocompleteResultItemPlaceIdString', ], 'PlaceType' => [ 'shape' => 'PlaceType', ], 'Title' => [ 'shape' => 'AutocompleteResultItemTitleString', ], 'Address' => [ 'shape' => 'Address', ], 'Distance' => [ 'shape' => 'DistanceMeters', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'PoliticalView' => [ 'shape' => 'CountryCode3', ], 'Highlights' => [ 'shape' => 'AutocompleteHighlights', ], ], ], 'AutocompleteResultItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AutocompleteResultItem', ], 'max' => 20, 'min' => 0, ], 'AutocompleteResultItemPlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'AutocompleteResultItemTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'BoundingBox' => [ 'type' => 'list', 'member' => [ 'shape' => 'Double', ], 'max' => 4, 'min' => 4, 'sensitive' => true, ], 'BusinessChain' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'BusinessChainNameString', ], 'Id' => [ 'shape' => 'BusinessChainIdString', ], ], ], 'BusinessChainIdString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'BusinessChainList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BusinessChain', ], 'max' => 100, 'min' => 1, ], 'BusinessChainNameString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'Category' => [ 'type' => 'structure', 'required' => [ 'Id', 'Name', ], 'members' => [ 'Id' => [ 'shape' => 'CategoryIdString', ], 'Name' => [ 'shape' => 'CategoryNameString', ], 'LocalizedName' => [ 'shape' => 'CategoryLocalizedNameString', ], 'Primary' => [ 'shape' => 'SensitiveBoolean', ], ], ], 'CategoryIdString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'CategoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Category', ], 'max' => 100, 'min' => 1, ], 'CategoryLocalizedNameString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'CategoryNameString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'ComponentMatchScores' => [ 'type' => 'structure', 'members' => [ 'Title' => [ 'shape' => 'MatchScore', ], 'Address' => [ 'shape' => 'AddressComponentMatchScores', ], ], ], 'ContactDetails' => [ 'type' => 'structure', 'members' => [ 'Label' => [ 'shape' => 'ContactDetailsLabelString', ], 'Value' => [ 'shape' => 'ContactDetailsValueString', ], 'Categories' => [ 'shape' => 'CategoryList', ], ], ], 'ContactDetailsLabelString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'ContactDetailsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContactDetails', ], 'max' => 100, 'min' => 1, ], 'ContactDetailsValueString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'Contacts' => [ 'type' => 'structure', 'members' => [ 'Phones' => [ 'shape' => 'ContactDetailsList', ], 'Faxes' => [ 'shape' => 'ContactDetailsList', ], 'Websites' => [ 'shape' => 'ContactDetailsList', ], 'Emails' => [ 'shape' => 'ContactDetailsList', ], ], ], 'Country' => [ 'type' => 'structure', 'members' => [ 'Code2' => [ 'shape' => 'CountryCode2', ], 'Code3' => [ 'shape' => 'CountryCode3', ], 'Name' => [ 'shape' => 'CountryNameString', ], ], ], 'CountryCode' => [ 'type' => 'string', 'max' => 3, 'min' => 2, 'pattern' => '([A-Z]{2}|[A-Z]{3})', 'sensitive' => true, ], 'CountryCode2' => [ 'type' => 'string', 'max' => 2, 'min' => 2, 'pattern' => '[A-Z]{2}', 'sensitive' => true, ], 'CountryCode3' => [ 'type' => 'string', 'max' => 3, 'min' => 3, 'pattern' => '[A-Z]{3}', 'sensitive' => true, ], 'CountryCodeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CountryCode', ], 'max' => 100, 'min' => 1, ], 'CountryHighlights' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'HighlightList', ], 'Name' => [ 'shape' => 'HighlightList', ], ], ], 'CountryNameString' => [ 'type' => 'string', 'max' => 100, 'min' => 0, 'sensitive' => true, ], 'DistanceMeters' => [ 'type' => 'long', 'max' => 4294967295, 'min' => 0, 'sensitive' => true, ], 'Double' => [ 'type' => 'double', 'box' => true, ], 'FilterBusinessChainList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterBusinessChainListMemberString', ], 'max' => 10, 'min' => 1, ], 'FilterBusinessChainListMemberString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'FilterCategoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterCategoryListMemberString', ], 'max' => 10, 'min' => 1, ], 'FilterCategoryListMemberString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'FilterCircle' => [ 'type' => 'structure', 'required' => [ 'Center', 'Radius', ], 'members' => [ 'Center' => [ 'shape' => 'Position', ], 'Radius' => [ 'shape' => 'FilterCircleRadiusLong', 'box' => true, ], ], 'sensitive' => true, ], 'FilterCircleRadiusLong' => [ 'type' => 'long', 'max' => 21000000, 'min' => 1, 'sensitive' => true, ], 'FilterFoodTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterFoodTypeListMemberString', ], 'max' => 10, 'min' => 1, ], 'FilterFoodTypeListMemberString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'FoodType' => [ 'type' => 'structure', 'required' => [ 'LocalizedName', ], 'members' => [ 'LocalizedName' => [ 'shape' => 'FoodTypeLocalizedNameString', ], 'Id' => [ 'shape' => 'FoodTypeIdString', ], 'Primary' => [ 'shape' => 'SensitiveBoolean', ], ], ], 'FoodTypeIdString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'FoodTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FoodType', ], 'max' => 100, 'min' => 1, ], 'FoodTypeLocalizedNameString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'GeocodeAdditionalFeature' => [ 'type' => 'string', 'enum' => [ 'TimeZone', 'Access', 'SecondaryAddresses', 'Intersections', ], ], 'GeocodeAdditionalFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GeocodeAdditionalFeature', ], 'max' => 4, 'min' => 1, ], 'GeocodeFilter' => [ 'type' => 'structure', 'members' => [ 'IncludeCountries' => [ 'shape' => 'CountryCodeList', ], 'IncludePlaceTypes' => [ 'shape' => 'GeocodeFilterPlaceTypeList', ], ], ], 'GeocodeFilterPlaceType' => [ 'type' => 'string', 'enum' => [ 'Locality', 'PostalCode', 'Intersection', 'Street', 'PointAddress', 'InterpolatedAddress', ], 'sensitive' => true, ], 'GeocodeFilterPlaceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GeocodeFilterPlaceType', ], 'max' => 6, 'min' => 1, ], 'GeocodeIntendedUse' => [ 'type' => 'string', 'enum' => [ 'SingleUse', 'Storage', ], ], 'GeocodeParsedQuery' => [ 'type' => 'structure', 'members' => [ 'Title' => [ 'shape' => 'ParsedQueryComponentList', ], 'Address' => [ 'shape' => 'GeocodeParsedQueryAddressComponents', ], ], ], 'GeocodeParsedQueryAddressComponents' => [ 'type' => 'structure', 'members' => [ 'Country' => [ 'shape' => 'ParsedQueryComponentList', ], 'Region' => [ 'shape' => 'ParsedQueryComponentList', ], 'SubRegion' => [ 'shape' => 'ParsedQueryComponentList', ], 'Locality' => [ 'shape' => 'ParsedQueryComponentList', ], 'District' => [ 'shape' => 'ParsedQueryComponentList', ], 'SubDistrict' => [ 'shape' => 'ParsedQueryComponentList', ], 'PostalCode' => [ 'shape' => 'ParsedQueryComponentList', ], 'Block' => [ 'shape' => 'ParsedQueryComponentList', ], 'SubBlock' => [ 'shape' => 'ParsedQueryComponentList', ], 'Street' => [ 'shape' => 'ParsedQueryComponentList', ], 'AddressNumber' => [ 'shape' => 'ParsedQueryComponentList', ], 'Building' => [ 'shape' => 'ParsedQueryComponentList', ], 'SecondaryAddressComponents' => [ 'shape' => 'ParsedQuerySecondaryAddressComponentList', ], ], ], 'GeocodeQueryComponents' => [ 'type' => 'structure', 'members' => [ 'Country' => [ 'shape' => 'GeocodeQueryComponentsCountryString', ], 'Region' => [ 'shape' => 'GeocodeQueryComponentsRegionString', ], 'SubRegion' => [ 'shape' => 'GeocodeQueryComponentsSubRegionString', ], 'Locality' => [ 'shape' => 'GeocodeQueryComponentsLocalityString', ], 'District' => [ 'shape' => 'GeocodeQueryComponentsDistrictString', ], 'Street' => [ 'shape' => 'GeocodeQueryComponentsStreetString', ], 'AddressNumber' => [ 'shape' => 'GeocodeQueryComponentsAddressNumberString', ], 'PostalCode' => [ 'shape' => 'GeocodeQueryComponentsPostalCodeString', ], ], ], 'GeocodeQueryComponentsAddressNumberString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^;]+', 'sensitive' => true, ], 'GeocodeQueryComponentsCountryString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^;]+', 'sensitive' => true, ], 'GeocodeQueryComponentsDistrictString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^;]+', 'sensitive' => true, ], 'GeocodeQueryComponentsLocalityString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^;]+', 'sensitive' => true, ], 'GeocodeQueryComponentsPostalCodeString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^;]+', 'sensitive' => true, ], 'GeocodeQueryComponentsRegionString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^;]+', 'sensitive' => true, ], 'GeocodeQueryComponentsStreetString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^;]+', 'sensitive' => true, ], 'GeocodeQueryComponentsSubRegionString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^;]+', 'sensitive' => true, ], 'GeocodeRequest' => [ 'type' => 'structure', 'members' => [ 'QueryText' => [ 'shape' => 'GeocodeRequestQueryTextString', ], 'QueryComponents' => [ 'shape' => 'GeocodeQueryComponents', ], 'MaxResults' => [ 'shape' => 'GeocodeRequestMaxResultsInteger', ], 'BiasPosition' => [ 'shape' => 'Position', ], 'Filter' => [ 'shape' => 'GeocodeFilter', ], 'AdditionalFeatures' => [ 'shape' => 'GeocodeAdditionalFeatureList', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'PoliticalView' => [ 'shape' => 'CountryCode', ], 'IntendedUse' => [ 'shape' => 'GeocodeIntendedUse', ], 'Key' => [ 'shape' => 'ApiKey', 'location' => 'querystring', 'locationName' => 'key', ], ], ], 'GeocodeRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'GeocodeRequestQueryTextString' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'sensitive' => true, ], 'GeocodeResponse' => [ 'type' => 'structure', 'required' => [ 'PricingBucket', ], 'members' => [ 'PricingBucket' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-geo-pricing-bucket', ], 'ResultItems' => [ 'shape' => 'GeocodeResultItemList', ], ], ], 'GeocodeResultItem' => [ 'type' => 'structure', 'required' => [ 'PlaceId', 'PlaceType', 'Title', ], 'members' => [ 'PlaceId' => [ 'shape' => 'GeocodeResultItemPlaceIdString', ], 'PlaceType' => [ 'shape' => 'PlaceType', ], 'Title' => [ 'shape' => 'GeocodeResultItemTitleString', ], 'Address' => [ 'shape' => 'Address', ], 'AddressNumberCorrected' => [ 'shape' => 'SensitiveBoolean', ], 'PostalCodeDetails' => [ 'shape' => 'PostalCodeDetailsList', ], 'Position' => [ 'shape' => 'Position', ], 'Distance' => [ 'shape' => 'DistanceMeters', ], 'MapView' => [ 'shape' => 'BoundingBox', ], 'Categories' => [ 'shape' => 'CategoryList', ], 'FoodTypes' => [ 'shape' => 'FoodTypeList', ], 'AccessPoints' => [ 'shape' => 'AccessPointList', ], 'TimeZone' => [ 'shape' => 'TimeZone', ], 'PoliticalView' => [ 'shape' => 'CountryCode3', ], 'MatchScores' => [ 'shape' => 'MatchScoreDetails', ], 'ParsedQuery' => [ 'shape' => 'GeocodeParsedQuery', ], 'Intersections' => [ 'shape' => 'IntersectionList', ], 'MainAddress' => [ 'shape' => 'RelatedPlace', ], 'SecondaryAddresses' => [ 'shape' => 'RelatedPlaceList', ], ], ], 'GeocodeResultItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GeocodeResultItem', ], 'max' => 100, 'min' => 0, ], 'GeocodeResultItemPlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'GeocodeResultItemTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'GetPlaceAdditionalFeature' => [ 'type' => 'string', 'enum' => [ 'TimeZone', 'Phonemes', 'Access', 'Contact', 'SecondaryAddresses', ], ], 'GetPlaceAdditionalFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GetPlaceAdditionalFeature', ], 'max' => 5, 'min' => 1, ], 'GetPlaceIntendedUse' => [ 'type' => 'string', 'enum' => [ 'SingleUse', 'Storage', ], ], 'GetPlaceRequest' => [ 'type' => 'structure', 'required' => [ 'PlaceId', ], 'members' => [ 'PlaceId' => [ 'shape' => 'GetPlaceRequestPlaceIdString', 'location' => 'uri', 'locationName' => 'PlaceId', ], 'AdditionalFeatures' => [ 'shape' => 'GetPlaceAdditionalFeatureList', 'location' => 'querystring', 'locationName' => 'additional-features', ], 'Language' => [ 'shape' => 'LanguageTag', 'location' => 'querystring', 'locationName' => 'language', ], 'PoliticalView' => [ 'shape' => 'CountryCode', 'location' => 'querystring', 'locationName' => 'political-view', ], 'IntendedUse' => [ 'shape' => 'GetPlaceIntendedUse', 'location' => 'querystring', 'locationName' => 'intended-use', ], 'Key' => [ 'shape' => 'ApiKey', 'location' => 'querystring', 'locationName' => 'key', ], ], ], 'GetPlaceRequestPlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'GetPlaceResponse' => [ 'type' => 'structure', 'required' => [ 'PlaceId', 'PlaceType', 'Title', 'PricingBucket', ], 'members' => [ 'PlaceId' => [ 'shape' => 'GetPlaceResponsePlaceIdString', ], 'PlaceType' => [ 'shape' => 'PlaceType', ], 'Title' => [ 'shape' => 'GetPlaceResponseTitleString', ], 'PricingBucket' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-geo-pricing-bucket', ], 'Address' => [ 'shape' => 'Address', ], 'AddressNumberCorrected' => [ 'shape' => 'SensitiveBoolean', ], 'PostalCodeDetails' => [ 'shape' => 'PostalCodeDetailsList', ], 'Position' => [ 'shape' => 'Position', ], 'MapView' => [ 'shape' => 'BoundingBox', ], 'Categories' => [ 'shape' => 'CategoryList', ], 'FoodTypes' => [ 'shape' => 'FoodTypeList', ], 'BusinessChains' => [ 'shape' => 'BusinessChainList', ], 'Contacts' => [ 'shape' => 'Contacts', ], 'OpeningHours' => [ 'shape' => 'OpeningHoursList', ], 'AccessPoints' => [ 'shape' => 'AccessPointList', ], 'AccessRestrictions' => [ 'shape' => 'AccessRestrictionList', ], 'TimeZone' => [ 'shape' => 'TimeZone', ], 'PoliticalView' => [ 'shape' => 'CountryCode3', ], 'Phonemes' => [ 'shape' => 'PhonemeDetails', ], 'MainAddress' => [ 'shape' => 'RelatedPlace', ], 'SecondaryAddresses' => [ 'shape' => 'RelatedPlaceList', ], ], ], 'GetPlaceResponsePlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'GetPlaceResponseTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'Heading' => [ 'type' => 'double', 'max' => 360.0, 'min' => 0.0, 'sensitive' => true, ], 'Highlight' => [ 'type' => 'structure', 'members' => [ 'StartIndex' => [ 'shape' => 'HighlightStartIndexInteger', ], 'EndIndex' => [ 'shape' => 'HighlightEndIndexInteger', ], 'Value' => [ 'shape' => 'HighlightValueString', ], ], ], 'HighlightEndIndexInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'HighlightList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Highlight', ], 'max' => 200, 'min' => 0, ], 'HighlightStartIndexInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'HighlightValueString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'InternalServerException' => [ 'type' => 'structure', 'required' => [ 'Message', ], 'members' => [ 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, 'retryable' => [ 'throttling' => false, ], ], 'Intersection' => [ 'type' => 'structure', 'required' => [ 'PlaceId', 'Title', ], 'members' => [ 'PlaceId' => [ 'shape' => 'IntersectionPlaceIdString', ], 'Title' => [ 'shape' => 'IntersectionTitleString', ], 'Address' => [ 'shape' => 'Address', ], 'Position' => [ 'shape' => 'Position', ], 'Distance' => [ 'shape' => 'DistanceMeters', 'box' => true, ], 'RouteDistance' => [ 'shape' => 'DistanceMeters', 'box' => true, ], 'MapView' => [ 'shape' => 'BoundingBox', ], 'AccessPoints' => [ 'shape' => 'AccessPointList', ], ], ], 'IntersectionHighlightsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HighlightList', ], 'max' => 100, 'min' => 1, ], 'IntersectionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Intersection', ], 'min' => 1, ], 'IntersectionPlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'IntersectionStreet' => [ 'type' => 'string', 'max' => 200, 'min' => 0, ], 'IntersectionStreetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IntersectionStreet', ], 'max' => 100, 'min' => 1, ], 'IntersectionTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'LanguageTag' => [ 'type' => 'string', 'max' => 35, 'min' => 2, ], 'MatchScore' => [ 'type' => 'double', 'max' => 1, 'min' => 0, ], 'MatchScoreDetails' => [ 'type' => 'structure', 'members' => [ 'Overall' => [ 'shape' => 'MatchScore', ], 'Components' => [ 'shape' => 'ComponentMatchScores', ], ], ], 'OpeningHours' => [ 'type' => 'structure', 'members' => [ 'Display' => [ 'shape' => 'OpeningHoursDisplayList', ], 'OpenNow' => [ 'shape' => 'SensitiveBoolean', ], 'Components' => [ 'shape' => 'OpeningHoursComponentsList', ], 'Categories' => [ 'shape' => 'CategoryList', ], ], ], 'OpeningHoursComponents' => [ 'type' => 'structure', 'members' => [ 'OpenTime' => [ 'shape' => 'OpeningHoursComponentsOpenTimeString', ], 'OpenDuration' => [ 'shape' => 'OpeningHoursComponentsOpenDurationString', ], 'Recurrence' => [ 'shape' => 'OpeningHoursComponentsRecurrenceString', ], ], ], 'OpeningHoursComponentsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OpeningHoursComponents', ], 'max' => 100, 'min' => 1, ], 'OpeningHoursComponentsOpenDurationString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'OpeningHoursComponentsOpenTimeString' => [ 'type' => 'string', 'max' => 21, 'min' => 0, 'sensitive' => true, ], 'OpeningHoursComponentsRecurrenceString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'OpeningHoursDisplay' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'OpeningHoursDisplayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OpeningHoursDisplay', ], 'max' => 100, 'min' => 1, ], 'OpeningHoursList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OpeningHours', ], 'max' => 100, 'min' => 1, ], 'ParsedQueryComponent' => [ 'type' => 'structure', 'members' => [ 'StartIndex' => [ 'shape' => 'ParsedQueryComponentStartIndexInteger', ], 'EndIndex' => [ 'shape' => 'ParsedQueryComponentEndIndexInteger', ], 'Value' => [ 'shape' => 'ParsedQueryComponentValueString', ], 'QueryComponent' => [ 'shape' => 'ParsedQueryComponentQueryComponentString', ], ], ], 'ParsedQueryComponentEndIndexInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'ParsedQueryComponentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParsedQueryComponent', ], 'max' => 200, 'min' => 0, ], 'ParsedQueryComponentQueryComponentString' => [ 'type' => 'string', 'max' => 11, 'min' => 0, 'sensitive' => true, ], 'ParsedQueryComponentStartIndexInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'ParsedQueryComponentValueString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'ParsedQuerySecondaryAddressComponent' => [ 'type' => 'structure', 'required' => [ 'StartIndex', 'EndIndex', 'Value', 'Number', 'Designator', ], 'members' => [ 'StartIndex' => [ 'shape' => 'ParsedQuerySecondaryAddressComponentStartIndexInteger', ], 'EndIndex' => [ 'shape' => 'ParsedQuerySecondaryAddressComponentEndIndexInteger', ], 'Value' => [ 'shape' => 'ParsedQuerySecondaryAddressComponentValueString', ], 'Number' => [ 'shape' => 'ParsedQuerySecondaryAddressComponentNumberString', ], 'Designator' => [ 'shape' => 'ParsedQuerySecondaryAddressComponentDesignatorString', ], ], ], 'ParsedQuerySecondaryAddressComponentDesignatorString' => [ 'type' => 'string', 'max' => 4, 'min' => 0, 'sensitive' => true, ], 'ParsedQuerySecondaryAddressComponentEndIndexInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'ParsedQuerySecondaryAddressComponentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParsedQuerySecondaryAddressComponent', ], 'max' => 200, 'min' => 0, ], 'ParsedQuerySecondaryAddressComponentNumberString' => [ 'type' => 'string', 'max' => 10, 'min' => 0, 'sensitive' => true, ], 'ParsedQuerySecondaryAddressComponentStartIndexInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'ParsedQuerySecondaryAddressComponentValueString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'PhonemeDetails' => [ 'type' => 'structure', 'members' => [ 'Title' => [ 'shape' => 'PhonemeTranscriptionList', ], 'Address' => [ 'shape' => 'AddressComponentPhonemes', ], ], ], 'PhonemeTranscription' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'PhonemeTranscriptionValueString', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'Preferred' => [ 'shape' => 'SensitiveBoolean', ], ], ], 'PhonemeTranscriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PhonemeTranscription', ], 'max' => 100, 'min' => 0, ], 'PhonemeTranscriptionValueString' => [ 'type' => 'string', 'max' => 50, 'min' => 0, 'sensitive' => true, ], 'PlaceType' => [ 'type' => 'string', 'enum' => [ 'Country', 'Region', 'SubRegion', 'Locality', 'District', 'SubDistrict', 'PostalCode', 'Block', 'SubBlock', 'Intersection', 'Street', 'PointOfInterest', 'PointAddress', 'InterpolatedAddress', 'SecondaryAddress', 'InferredSecondaryAddress', ], 'sensitive' => true, ], 'Position' => [ 'type' => 'list', 'member' => [ 'shape' => 'Double', ], 'max' => 2, 'min' => 2, 'sensitive' => true, ], 'PostalAuthority' => [ 'type' => 'string', 'enum' => [ 'Usps', ], 'sensitive' => true, ], 'PostalCodeDetails' => [ 'type' => 'structure', 'members' => [ 'PostalCode' => [ 'shape' => 'PostalCodeDetailsPostalCodeString', ], 'PostalAuthority' => [ 'shape' => 'PostalAuthority', ], 'PostalCodeType' => [ 'shape' => 'PostalCodeType', ], 'UspsZip' => [ 'shape' => 'UspsZip', ], 'UspsZipPlus4' => [ 'shape' => 'UspsZipPlus4', ], ], ], 'PostalCodeDetailsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PostalCodeDetails', ], 'max' => 100, 'min' => 0, ], 'PostalCodeDetailsPostalCodeString' => [ 'type' => 'string', 'max' => 50, 'min' => 0, 'sensitive' => true, ], 'PostalCodeMode' => [ 'type' => 'string', 'enum' => [ 'MergeAllSpannedLocalities', 'EnumerateSpannedLocalities', ], ], 'PostalCodeType' => [ 'type' => 'string', 'enum' => [ 'UspsZip', 'UspsZipPlus4', ], 'sensitive' => true, ], 'QueryRefinement' => [ 'type' => 'structure', 'required' => [ 'RefinedTerm', 'OriginalTerm', 'StartIndex', 'EndIndex', ], 'members' => [ 'RefinedTerm' => [ 'shape' => 'QueryRefinementRefinedTermString', ], 'OriginalTerm' => [ 'shape' => 'QueryRefinementOriginalTermString', ], 'StartIndex' => [ 'shape' => 'QueryRefinementStartIndexInteger', ], 'EndIndex' => [ 'shape' => 'QueryRefinementEndIndexInteger', ], ], ], 'QueryRefinementEndIndexInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'QueryRefinementList' => [ 'type' => 'list', 'member' => [ 'shape' => 'QueryRefinement', ], 'max' => 10, 'min' => 0, ], 'QueryRefinementOriginalTermString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'QueryRefinementRefinedTermString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'QueryRefinementStartIndexInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'QueryType' => [ 'type' => 'string', 'enum' => [ 'Category', 'BusinessChain', ], ], 'RecordTypeCode' => [ 'type' => 'string', 'enum' => [ 'Firm', 'General', 'HighRise', 'PostOfficeBox', 'Rural', 'Street', ], 'sensitive' => true, ], 'Region' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'RegionCodeString', ], 'Name' => [ 'shape' => 'RegionNameString', ], ], ], 'RegionCodeString' => [ 'type' => 'string', 'max' => 3, 'min' => 0, 'sensitive' => true, ], 'RegionHighlights' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'HighlightList', ], 'Name' => [ 'shape' => 'HighlightList', ], ], ], 'RegionNameString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'RelatedPlace' => [ 'type' => 'structure', 'required' => [ 'PlaceId', 'PlaceType', 'Title', ], 'members' => [ 'PlaceId' => [ 'shape' => 'RelatedPlacePlaceIdString', ], 'PlaceType' => [ 'shape' => 'PlaceType', ], 'Title' => [ 'shape' => 'RelatedPlaceTitleString', ], 'Address' => [ 'shape' => 'Address', ], 'Position' => [ 'shape' => 'Position', ], 'AccessPoints' => [ 'shape' => 'AccessPointList', ], ], ], 'RelatedPlaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RelatedPlace', ], 'min' => 1, ], 'RelatedPlacePlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'RelatedPlaceTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'ReverseGeocodeAdditionalFeature' => [ 'type' => 'string', 'enum' => [ 'TimeZone', 'Access', 'Intersections', ], ], 'ReverseGeocodeAdditionalFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReverseGeocodeAdditionalFeature', ], 'max' => 3, 'min' => 1, ], 'ReverseGeocodeFilter' => [ 'type' => 'structure', 'members' => [ 'IncludePlaceTypes' => [ 'shape' => 'ReverseGeocodeFilterPlaceTypeList', ], ], ], 'ReverseGeocodeFilterPlaceType' => [ 'type' => 'string', 'enum' => [ 'Locality', 'Intersection', 'Street', 'PointAddress', 'InterpolatedAddress', ], ], 'ReverseGeocodeFilterPlaceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReverseGeocodeFilterPlaceType', ], 'max' => 5, 'min' => 1, ], 'ReverseGeocodeIntendedUse' => [ 'type' => 'string', 'enum' => [ 'SingleUse', 'Storage', ], ], 'ReverseGeocodeRequest' => [ 'type' => 'structure', 'required' => [ 'QueryPosition', ], 'members' => [ 'QueryPosition' => [ 'shape' => 'Position', ], 'QueryRadius' => [ 'shape' => 'ReverseGeocodeRequestQueryRadiusLong', 'box' => true, ], 'MaxResults' => [ 'shape' => 'ReverseGeocodeRequestMaxResultsInteger', ], 'Filter' => [ 'shape' => 'ReverseGeocodeFilter', ], 'AdditionalFeatures' => [ 'shape' => 'ReverseGeocodeAdditionalFeatureList', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'PoliticalView' => [ 'shape' => 'CountryCode', ], 'IntendedUse' => [ 'shape' => 'ReverseGeocodeIntendedUse', ], 'Key' => [ 'shape' => 'ApiKey', 'location' => 'querystring', 'locationName' => 'key', ], 'Heading' => [ 'shape' => 'Heading', ], ], ], 'ReverseGeocodeRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ReverseGeocodeRequestQueryRadiusLong' => [ 'type' => 'long', 'max' => 21000000, 'min' => 1, 'sensitive' => true, ], 'ReverseGeocodeResponse' => [ 'type' => 'structure', 'required' => [ 'PricingBucket', ], 'members' => [ 'PricingBucket' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-geo-pricing-bucket', ], 'ResultItems' => [ 'shape' => 'ReverseGeocodeResultItemList', ], ], ], 'ReverseGeocodeResultItem' => [ 'type' => 'structure', 'required' => [ 'PlaceId', 'PlaceType', 'Title', ], 'members' => [ 'PlaceId' => [ 'shape' => 'ReverseGeocodeResultItemPlaceIdString', ], 'PlaceType' => [ 'shape' => 'PlaceType', ], 'Title' => [ 'shape' => 'ReverseGeocodeResultItemTitleString', ], 'Address' => [ 'shape' => 'Address', ], 'AddressNumberCorrected' => [ 'shape' => 'SensitiveBoolean', ], 'PostalCodeDetails' => [ 'shape' => 'PostalCodeDetailsList', ], 'Position' => [ 'shape' => 'Position', ], 'Distance' => [ 'shape' => 'DistanceMeters', ], 'MapView' => [ 'shape' => 'BoundingBox', ], 'Categories' => [ 'shape' => 'CategoryList', ], 'FoodTypes' => [ 'shape' => 'FoodTypeList', ], 'AccessPoints' => [ 'shape' => 'AccessPointList', ], 'TimeZone' => [ 'shape' => 'TimeZone', ], 'PoliticalView' => [ 'shape' => 'CountryCode3', ], 'Intersections' => [ 'shape' => 'IntersectionList', ], ], ], 'ReverseGeocodeResultItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReverseGeocodeResultItem', ], 'max' => 100, 'min' => 0, ], 'ReverseGeocodeResultItemPlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'ReverseGeocodeResultItemTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'SearchNearbyAdditionalFeature' => [ 'type' => 'string', 'enum' => [ 'TimeZone', 'Phonemes', 'Access', 'Contact', ], ], 'SearchNearbyAdditionalFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SearchNearbyAdditionalFeature', ], 'max' => 4, 'min' => 1, ], 'SearchNearbyFilter' => [ 'type' => 'structure', 'members' => [ 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'IncludeCountries' => [ 'shape' => 'CountryCodeList', ], 'IncludeCategories' => [ 'shape' => 'FilterCategoryList', ], 'ExcludeCategories' => [ 'shape' => 'FilterCategoryList', ], 'IncludeBusinessChains' => [ 'shape' => 'FilterBusinessChainList', ], 'ExcludeBusinessChains' => [ 'shape' => 'FilterBusinessChainList', ], 'IncludeFoodTypes' => [ 'shape' => 'FilterFoodTypeList', ], 'ExcludeFoodTypes' => [ 'shape' => 'FilterFoodTypeList', ], ], ], 'SearchNearbyIntendedUse' => [ 'type' => 'string', 'enum' => [ 'SingleUse', 'Storage', ], ], 'SearchNearbyRequest' => [ 'type' => 'structure', 'required' => [ 'QueryPosition', ], 'members' => [ 'QueryPosition' => [ 'shape' => 'Position', ], 'QueryRadius' => [ 'shape' => 'SearchNearbyRequestQueryRadiusLong', 'box' => true, ], 'MaxResults' => [ 'shape' => 'SearchNearbyRequestMaxResultsInteger', ], 'Filter' => [ 'shape' => 'SearchNearbyFilter', ], 'AdditionalFeatures' => [ 'shape' => 'SearchNearbyAdditionalFeatureList', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'PoliticalView' => [ 'shape' => 'CountryCode', ], 'IntendedUse' => [ 'shape' => 'SearchNearbyIntendedUse', ], 'NextToken' => [ 'shape' => 'Token', ], 'Key' => [ 'shape' => 'ApiKey', 'location' => 'querystring', 'locationName' => 'key', ], ], ], 'SearchNearbyRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'SearchNearbyRequestQueryRadiusLong' => [ 'type' => 'long', 'max' => 21000000, 'min' => 1, 'sensitive' => true, ], 'SearchNearbyResponse' => [ 'type' => 'structure', 'required' => [ 'PricingBucket', ], 'members' => [ 'PricingBucket' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-geo-pricing-bucket', ], 'ResultItems' => [ 'shape' => 'SearchNearbyResultItemList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'SearchNearbyResultItem' => [ 'type' => 'structure', 'required' => [ 'PlaceId', 'PlaceType', 'Title', ], 'members' => [ 'PlaceId' => [ 'shape' => 'SearchNearbyResultItemPlaceIdString', ], 'PlaceType' => [ 'shape' => 'PlaceType', ], 'Title' => [ 'shape' => 'SearchNearbyResultItemTitleString', ], 'Address' => [ 'shape' => 'Address', ], 'AddressNumberCorrected' => [ 'shape' => 'SensitiveBoolean', ], 'Position' => [ 'shape' => 'Position', ], 'Distance' => [ 'shape' => 'DistanceMeters', ], 'MapView' => [ 'shape' => 'BoundingBox', ], 'Categories' => [ 'shape' => 'CategoryList', ], 'FoodTypes' => [ 'shape' => 'FoodTypeList', ], 'BusinessChains' => [ 'shape' => 'BusinessChainList', ], 'Contacts' => [ 'shape' => 'Contacts', ], 'OpeningHours' => [ 'shape' => 'OpeningHoursList', ], 'AccessPoints' => [ 'shape' => 'AccessPointList', ], 'AccessRestrictions' => [ 'shape' => 'AccessRestrictionList', ], 'TimeZone' => [ 'shape' => 'TimeZone', ], 'PoliticalView' => [ 'shape' => 'CountryCode3', ], 'Phonemes' => [ 'shape' => 'PhonemeDetails', ], ], ], 'SearchNearbyResultItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SearchNearbyResultItem', ], 'max' => 100, 'min' => 0, ], 'SearchNearbyResultItemPlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'SearchNearbyResultItemTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'SearchTextAdditionalFeature' => [ 'type' => 'string', 'enum' => [ 'TimeZone', 'Phonemes', 'Access', 'Contact', ], ], 'SearchTextAdditionalFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SearchTextAdditionalFeature', ], 'max' => 4, 'min' => 1, ], 'SearchTextFilter' => [ 'type' => 'structure', 'members' => [ 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'Circle' => [ 'shape' => 'FilterCircle', ], 'IncludeCountries' => [ 'shape' => 'CountryCodeList', ], ], ], 'SearchTextIntendedUse' => [ 'type' => 'string', 'enum' => [ 'SingleUse', 'Storage', ], ], 'SearchTextRequest' => [ 'type' => 'structure', 'members' => [ 'QueryText' => [ 'shape' => 'SearchTextRequestQueryTextString', ], 'QueryId' => [ 'shape' => 'SearchTextRequestQueryIdString', ], 'MaxResults' => [ 'shape' => 'SearchTextRequestMaxResultsInteger', ], 'BiasPosition' => [ 'shape' => 'Position', ], 'Filter' => [ 'shape' => 'SearchTextFilter', ], 'AdditionalFeatures' => [ 'shape' => 'SearchTextAdditionalFeatureList', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'PoliticalView' => [ 'shape' => 'CountryCode', ], 'IntendedUse' => [ 'shape' => 'SearchTextIntendedUse', ], 'NextToken' => [ 'shape' => 'Token', ], 'Key' => [ 'shape' => 'ApiKey', 'location' => 'querystring', 'locationName' => 'key', ], ], ], 'SearchTextRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'SearchTextRequestQueryIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 1, 'sensitive' => true, ], 'SearchTextRequestQueryTextString' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'sensitive' => true, ], 'SearchTextResponse' => [ 'type' => 'structure', 'required' => [ 'PricingBucket', ], 'members' => [ 'PricingBucket' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-geo-pricing-bucket', ], 'ResultItems' => [ 'shape' => 'SearchTextResultItemList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'SearchTextResultItem' => [ 'type' => 'structure', 'required' => [ 'PlaceId', 'PlaceType', 'Title', ], 'members' => [ 'PlaceId' => [ 'shape' => 'SearchTextResultItemPlaceIdString', ], 'PlaceType' => [ 'shape' => 'PlaceType', ], 'Title' => [ 'shape' => 'SearchTextResultItemTitleString', ], 'Address' => [ 'shape' => 'Address', ], 'AddressNumberCorrected' => [ 'shape' => 'SensitiveBoolean', ], 'Position' => [ 'shape' => 'Position', ], 'Distance' => [ 'shape' => 'DistanceMeters', ], 'MapView' => [ 'shape' => 'BoundingBox', ], 'Categories' => [ 'shape' => 'CategoryList', ], 'FoodTypes' => [ 'shape' => 'FoodTypeList', ], 'BusinessChains' => [ 'shape' => 'BusinessChainList', ], 'Contacts' => [ 'shape' => 'Contacts', ], 'OpeningHours' => [ 'shape' => 'OpeningHoursList', ], 'AccessPoints' => [ 'shape' => 'AccessPointList', ], 'AccessRestrictions' => [ 'shape' => 'AccessRestrictionList', ], 'TimeZone' => [ 'shape' => 'TimeZone', ], 'PoliticalView' => [ 'shape' => 'CountryCode3', ], 'Phonemes' => [ 'shape' => 'PhonemeDetails', ], ], ], 'SearchTextResultItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SearchTextResultItem', ], 'max' => 100, 'min' => 0, ], 'SearchTextResultItemPlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'SearchTextResultItemTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'SecondaryAddressComponent' => [ 'type' => 'structure', 'required' => [ 'Number', ], 'members' => [ 'Number' => [ 'shape' => 'SecondaryAddressComponentNumberString', ], 'Designator' => [ 'shape' => 'SecondaryAddressComponentDesignatorString', ], ], ], 'SecondaryAddressComponentDesignatorString' => [ 'type' => 'string', 'max' => 20, 'min' => 0, 'sensitive' => true, ], 'SecondaryAddressComponentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryAddressComponent', ], 'max' => 3, 'min' => 0, ], 'SecondaryAddressComponentMatchScore' => [ 'type' => 'structure', 'members' => [ 'Number' => [ 'shape' => 'MatchScore', ], ], ], 'SecondaryAddressComponentMatchScoreList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryAddressComponentMatchScore', ], ], 'SecondaryAddressComponentNumberString' => [ 'type' => 'string', 'max' => 10, 'min' => 0, 'sensitive' => true, ], 'SensitiveBoolean' => [ 'type' => 'boolean', 'box' => true, 'sensitive' => true, ], 'StreetComponents' => [ 'type' => 'structure', 'members' => [ 'BaseName' => [ 'shape' => 'StreetComponentsBaseNameString', ], 'Type' => [ 'shape' => 'StreetComponentsTypeString', ], 'TypePlacement' => [ 'shape' => 'TypePlacement', ], 'TypeSeparator' => [ 'shape' => 'TypeSeparator', ], 'Prefix' => [ 'shape' => 'StreetComponentsPrefixString', ], 'Suffix' => [ 'shape' => 'StreetComponentsSuffixString', ], 'Direction' => [ 'shape' => 'StreetComponentsDirectionString', ], 'Language' => [ 'shape' => 'LanguageTag', ], ], ], 'StreetComponentsBaseNameString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'StreetComponentsDirectionString' => [ 'type' => 'string', 'max' => 50, 'min' => 0, 'sensitive' => true, ], 'StreetComponentsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StreetComponents', ], 'max' => 100, 'min' => 0, ], 'StreetComponentsPrefixString' => [ 'type' => 'string', 'max' => 50, 'min' => 0, 'sensitive' => true, ], 'StreetComponentsSuffixString' => [ 'type' => 'string', 'max' => 50, 'min' => 0, 'sensitive' => true, ], 'StreetComponentsTypeString' => [ 'type' => 'string', 'max' => 50, 'min' => 0, 'sensitive' => true, ], 'String' => [ 'type' => 'string', ], 'SubRegion' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'SubRegionCodeString', ], 'Name' => [ 'shape' => 'SubRegionNameString', ], ], ], 'SubRegionCodeString' => [ 'type' => 'string', 'max' => 3, 'min' => 0, 'sensitive' => true, ], 'SubRegionHighlights' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'HighlightList', ], 'Name' => [ 'shape' => 'HighlightList', ], ], ], 'SubRegionNameString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'SuggestAdditionalFeature' => [ 'type' => 'string', 'enum' => [ 'Core', 'TimeZone', 'Phonemes', 'Access', ], ], 'SuggestAdditionalFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SuggestAdditionalFeature', ], 'max' => 4, 'min' => 1, ], 'SuggestAddressHighlights' => [ 'type' => 'structure', 'members' => [ 'Label' => [ 'shape' => 'HighlightList', ], ], ], 'SuggestFilter' => [ 'type' => 'structure', 'members' => [ 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'Circle' => [ 'shape' => 'FilterCircle', ], 'IncludeCountries' => [ 'shape' => 'CountryCodeList', ], ], ], 'SuggestHighlights' => [ 'type' => 'structure', 'members' => [ 'Title' => [ 'shape' => 'HighlightList', ], 'Address' => [ 'shape' => 'SuggestAddressHighlights', ], ], ], 'SuggestIntendedUse' => [ 'type' => 'string', 'enum' => [ 'SingleUse', ], ], 'SuggestPlaceResult' => [ 'type' => 'structure', 'members' => [ 'PlaceId' => [ 'shape' => 'SuggestPlaceResultPlaceIdString', ], 'PlaceType' => [ 'shape' => 'PlaceType', ], 'Address' => [ 'shape' => 'Address', ], 'Position' => [ 'shape' => 'Position', ], 'Distance' => [ 'shape' => 'DistanceMeters', ], 'MapView' => [ 'shape' => 'BoundingBox', ], 'Categories' => [ 'shape' => 'CategoryList', ], 'FoodTypes' => [ 'shape' => 'FoodTypeList', ], 'BusinessChains' => [ 'shape' => 'BusinessChainList', ], 'AccessPoints' => [ 'shape' => 'AccessPointList', ], 'AccessRestrictions' => [ 'shape' => 'AccessRestrictionList', ], 'TimeZone' => [ 'shape' => 'TimeZone', ], 'PoliticalView' => [ 'shape' => 'CountryCode3', ], 'Phonemes' => [ 'shape' => 'PhonemeDetails', ], ], ], 'SuggestPlaceResultPlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 1, 'sensitive' => true, ], 'SuggestQueryResult' => [ 'type' => 'structure', 'members' => [ 'QueryId' => [ 'shape' => 'SuggestQueryResultQueryIdString', ], 'QueryType' => [ 'shape' => 'QueryType', ], ], ], 'SuggestQueryResultQueryIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'SuggestRequest' => [ 'type' => 'structure', 'required' => [ 'QueryText', ], 'members' => [ 'QueryText' => [ 'shape' => 'SuggestRequestQueryTextString', ], 'MaxResults' => [ 'shape' => 'SuggestRequestMaxResultsInteger', ], 'MaxQueryRefinements' => [ 'shape' => 'SuggestRequestMaxQueryRefinementsInteger', ], 'BiasPosition' => [ 'shape' => 'Position', ], 'Filter' => [ 'shape' => 'SuggestFilter', ], 'AdditionalFeatures' => [ 'shape' => 'SuggestAdditionalFeatureList', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'PoliticalView' => [ 'shape' => 'CountryCode', ], 'IntendedUse' => [ 'shape' => 'SuggestIntendedUse', ], 'Key' => [ 'shape' => 'ApiKey', 'location' => 'querystring', 'locationName' => 'key', ], ], ], 'SuggestRequestMaxQueryRefinementsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 10, 'min' => 1, ], 'SuggestRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'SuggestRequestQueryTextString' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'sensitive' => true, ], 'SuggestResponse' => [ 'type' => 'structure', 'required' => [ 'PricingBucket', ], 'members' => [ 'PricingBucket' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-geo-pricing-bucket', ], 'ResultItems' => [ 'shape' => 'SuggestResultItemList', ], 'QueryRefinements' => [ 'shape' => 'QueryRefinementList', ], ], ], 'SuggestResultItem' => [ 'type' => 'structure', 'required' => [ 'Title', 'SuggestResultItemType', ], 'members' => [ 'Title' => [ 'shape' => 'SuggestResultItemTitleString', ], 'SuggestResultItemType' => [ 'shape' => 'SuggestResultItemType', ], 'Place' => [ 'shape' => 'SuggestPlaceResult', ], 'Query' => [ 'shape' => 'SuggestQueryResult', ], 'Highlights' => [ 'shape' => 'SuggestHighlights', ], ], ], 'SuggestResultItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SuggestResultItem', ], 'max' => 100, 'min' => 0, ], 'SuggestResultItemTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'SuggestResultItemType' => [ 'type' => 'string', 'enum' => [ 'Place', 'Query', ], ], 'ThrottlingException' => [ 'type' => 'structure', 'required' => [ 'Message', ], 'members' => [ 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], 'error' => [ 'httpStatusCode' => 429, 'senderFault' => true, ], 'exception' => true, 'retryable' => [ 'throttling' => false, ], ], 'TimeZone' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'TimeZoneNameString', ], 'Offset' => [ 'shape' => 'TimeZoneOffsetString', ], 'OffsetSeconds' => [ 'shape' => 'TimeZoneOffsetSecondsLong', ], ], ], 'TimeZoneNameString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'TimeZoneOffsetSecondsLong' => [ 'type' => 'long', 'min' => 0, 'sensitive' => true, ], 'TimeZoneOffsetString' => [ 'type' => 'string', 'max' => 6, 'min' => 0, 'sensitive' => true, ], 'Token' => [ 'type' => 'string', 'max' => 2000, 'min' => 1, ], 'TypePlacement' => [ 'type' => 'string', 'enum' => [ 'BeforeBaseName', 'AfterBaseName', ], ], 'TypeSeparator' => [ 'type' => 'string', 'max' => 1, 'min' => 0, 'pattern' => '$|^ ', ], 'UspsZip' => [ 'type' => 'structure', 'members' => [ 'ZipClassificationCode' => [ 'shape' => 'ZipClassificationCode', ], ], ], 'UspsZipPlus4' => [ 'type' => 'structure', 'members' => [ 'RecordTypeCode' => [ 'shape' => 'RecordTypeCode', ], ], ], 'ValidationException' => [ 'type' => 'structure', 'required' => [ 'Message', 'Reason', 'FieldList', ], 'members' => [ 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], 'Reason' => [ 'shape' => 'ValidationExceptionReason', 'locationName' => 'reason', ], 'FieldList' => [ 'shape' => 'ValidationExceptionFieldList', 'locationName' => 'fieldList', ], ], 'error' => [ 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ValidationExceptionField' => [ 'type' => 'structure', 'required' => [ 'Name', 'Message', ], 'members' => [ 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ValidationExceptionFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValidationExceptionField', ], ], 'ValidationExceptionReason' => [ 'type' => 'string', 'enum' => [ 'UnknownOperation', 'Missing', 'CannotParse', 'FieldValidationFailed', 'Other', 'UnknownField', ], ], 'ZipClassificationCode' => [ 'type' => 'string', 'enum' => [ 'Military', 'PostOfficeBoxes', 'Unique', ], 'sensitive' => true, ], ],]; +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2020-11-19', 'auth' => [ 'aws.auth#sigv4', ], 'endpointPrefix' => 'geo-places', 'protocol' => 'rest-json', 'protocols' => [ 'rest-json', ], 'serviceFullName' => 'Amazon Location Service Places V2', 'serviceId' => 'Geo Places', 'signatureVersion' => 'v4', 'signingName' => 'geo-places', 'uid' => 'geo-places-2020-11-19', ], 'operations' => [ 'Autocomplete' => [ 'name' => 'Autocomplete', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/autocomplete', 'responseCode' => 200, ], 'input' => [ 'shape' => 'AutocompleteRequest', ], 'output' => [ 'shape' => 'AutocompleteResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], ], 'readonly' => true, ], 'Geocode' => [ 'name' => 'Geocode', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/geocode', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GeocodeRequest', ], 'output' => [ 'shape' => 'GeocodeResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], ], 'readonly' => true, ], 'GetPlace' => [ 'name' => 'GetPlace', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/place/{PlaceId}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPlaceRequest', ], 'output' => [ 'shape' => 'GetPlaceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], ], 'readonly' => true, ], 'ReverseGeocode' => [ 'name' => 'ReverseGeocode', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/reverse-geocode', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ReverseGeocodeRequest', ], 'output' => [ 'shape' => 'ReverseGeocodeResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], ], 'readonly' => true, ], 'SearchNearby' => [ 'name' => 'SearchNearby', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/search-nearby', 'responseCode' => 200, ], 'input' => [ 'shape' => 'SearchNearbyRequest', ], 'output' => [ 'shape' => 'SearchNearbyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], ], 'readonly' => true, ], 'SearchText' => [ 'name' => 'SearchText', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/search-text', 'responseCode' => 200, ], 'input' => [ 'shape' => 'SearchTextRequest', ], 'output' => [ 'shape' => 'SearchTextResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], ], 'readonly' => true, ], 'Suggest' => [ 'name' => 'Suggest', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/suggest', 'responseCode' => 200, ], 'input' => [ 'shape' => 'SuggestRequest', ], 'output' => [ 'shape' => 'SuggestResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], ], 'readonly' => true, ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'required' => [ 'Message', ], 'members' => [ 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], 'error' => [ 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'AccessPoint' => [ 'type' => 'structure', 'members' => [ 'Position' => [ 'shape' => 'Position', ], 'Type' => [ 'shape' => 'AccessPointType', ], 'Primary' => [ 'shape' => 'SensitiveBoolean', ], 'Label' => [ 'shape' => 'SensitiveString', ], ], ], 'AccessPointList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccessPoint', ], 'max' => 100, 'min' => 0, ], 'AccessPointType' => [ 'type' => 'string', 'enum' => [ 'Delivery', 'Emergency', 'Entrance', 'Loading', 'Other', 'Parking', 'Taxi', ], ], 'AccessRestriction' => [ 'type' => 'structure', 'members' => [ 'Restricted' => [ 'shape' => 'SensitiveBoolean', ], 'Categories' => [ 'shape' => 'CategoryList', ], ], ], 'AccessRestrictionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccessRestriction', ], 'max' => 100, 'min' => 1, ], 'Address' => [ 'type' => 'structure', 'members' => [ 'Label' => [ 'shape' => 'AddressLabelString', ], 'Country' => [ 'shape' => 'Country', ], 'Region' => [ 'shape' => 'Region', ], 'SubRegion' => [ 'shape' => 'SubRegion', ], 'Locality' => [ 'shape' => 'AddressLocalityString', ], 'District' => [ 'shape' => 'AddressDistrictString', ], 'SubDistrict' => [ 'shape' => 'AddressSubDistrictString', ], 'PostalCode' => [ 'shape' => 'AddressPostalCodeString', ], 'Block' => [ 'shape' => 'AddressBlockString', ], 'SubBlock' => [ 'shape' => 'AddressSubBlockString', ], 'Intersection' => [ 'shape' => 'IntersectionStreetList', ], 'Street' => [ 'shape' => 'AddressStreetString', ], 'StreetComponents' => [ 'shape' => 'StreetComponentsList', ], 'AddressNumber' => [ 'shape' => 'AddressAddressNumberString', ], 'Building' => [ 'shape' => 'AddressBuildingString', ], 'SecondaryAddressComponents' => [ 'shape' => 'SecondaryAddressComponentList', ], ], ], 'AddressAddressNumberString' => [ 'type' => 'string', 'max' => 10, 'min' => 0, 'sensitive' => true, ], 'AddressBlockString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'AddressBuildingString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'AddressComponentMatchScores' => [ 'type' => 'structure', 'members' => [ 'Country' => [ 'shape' => 'MatchScore', ], 'Region' => [ 'shape' => 'MatchScore', ], 'SubRegion' => [ 'shape' => 'MatchScore', ], 'Locality' => [ 'shape' => 'MatchScore', ], 'District' => [ 'shape' => 'MatchScore', ], 'SubDistrict' => [ 'shape' => 'MatchScore', ], 'PostalCode' => [ 'shape' => 'MatchScore', ], 'Block' => [ 'shape' => 'MatchScore', ], 'SubBlock' => [ 'shape' => 'MatchScore', ], 'Intersection' => [ 'shape' => 'AddressComponentMatchScoresIntersectionList', ], 'AddressNumber' => [ 'shape' => 'MatchScore', ], 'Building' => [ 'shape' => 'MatchScore', ], 'SecondaryAddressComponents' => [ 'shape' => 'SecondaryAddressComponentMatchScoreList', ], ], ], 'AddressComponentMatchScoresIntersectionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MatchScore', ], 'max' => 2, 'min' => 1, ], 'AddressComponentPhonemes' => [ 'type' => 'structure', 'members' => [ 'Country' => [ 'shape' => 'PhonemeTranscriptionList', ], 'Region' => [ 'shape' => 'PhonemeTranscriptionList', ], 'SubRegion' => [ 'shape' => 'PhonemeTranscriptionList', ], 'Locality' => [ 'shape' => 'PhonemeTranscriptionList', ], 'District' => [ 'shape' => 'PhonemeTranscriptionList', ], 'SubDistrict' => [ 'shape' => 'PhonemeTranscriptionList', ], 'Block' => [ 'shape' => 'PhonemeTranscriptionList', ], 'SubBlock' => [ 'shape' => 'PhonemeTranscriptionList', ], 'Street' => [ 'shape' => 'PhonemeTranscriptionList', ], ], ], 'AddressDistrictString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'AddressLabelString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'AddressLocalityString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'AddressPostalCodeString' => [ 'type' => 'string', 'max' => 50, 'min' => 0, 'sensitive' => true, ], 'AddressStreetString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'AddressSubBlockString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'AddressSubDistrictString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'AddressTranslationComponent' => [ 'type' => 'string', 'enum' => [ 'District', 'Locality', 'Region', 'SubRegion', ], ], 'AddressTranslationComponentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AddressTranslationComponent', ], 'max' => 4, 'min' => 1, ], 'AdminNames' => [ 'type' => 'structure', 'required' => [ 'Names', ], 'members' => [ 'Names' => [ 'shape' => 'TranslationNameList', ], 'Preference' => [ 'shape' => 'AdminNamesPreference', ], ], ], 'AdminNamesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AdminNames', ], 'max' => 2, 'min' => 1, ], 'AdminNamesPreference' => [ 'type' => 'string', 'enum' => [ 'Alternative', 'Primary', ], ], 'ApiKey' => [ 'type' => 'string', 'max' => 1000, 'min' => 0, 'sensitive' => true, ], 'AutocompleteAdditionalFeature' => [ 'type' => 'string', 'enum' => [ 'Core', ], ], 'AutocompleteAdditionalFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AutocompleteAdditionalFeature', ], 'max' => 1, 'min' => 1, ], 'AutocompleteAddressHighlights' => [ 'type' => 'structure', 'members' => [ 'Label' => [ 'shape' => 'HighlightList', ], 'Country' => [ 'shape' => 'CountryHighlights', ], 'Region' => [ 'shape' => 'RegionHighlights', ], 'SubRegion' => [ 'shape' => 'SubRegionHighlights', ], 'Locality' => [ 'shape' => 'HighlightList', ], 'District' => [ 'shape' => 'HighlightList', ], 'SubDistrict' => [ 'shape' => 'HighlightList', ], 'Street' => [ 'shape' => 'HighlightList', ], 'Block' => [ 'shape' => 'HighlightList', ], 'SubBlock' => [ 'shape' => 'HighlightList', ], 'Intersection' => [ 'shape' => 'IntersectionHighlightsList', ], 'PostalCode' => [ 'shape' => 'HighlightList', ], 'AddressNumber' => [ 'shape' => 'HighlightList', ], 'Building' => [ 'shape' => 'HighlightList', ], ], ], 'AutocompleteFilter' => [ 'type' => 'structure', 'members' => [ 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'Circle' => [ 'shape' => 'FilterCircle', ], 'IncludeCountries' => [ 'shape' => 'CountryCodeList', ], 'IncludePlaceTypes' => [ 'shape' => 'AutocompleteFilterPlaceTypeList', ], ], ], 'AutocompleteFilterPlaceType' => [ 'type' => 'string', 'enum' => [ 'Locality', 'PostalCode', 'Street', 'Intersection', 'PointAddress', 'InterpolatedAddress', 'Country', 'Region', ], ], 'AutocompleteFilterPlaceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AutocompleteFilterPlaceType', ], 'max' => 8, 'min' => 1, ], 'AutocompleteHighlights' => [ 'type' => 'structure', 'members' => [ 'Title' => [ 'shape' => 'HighlightList', ], 'Address' => [ 'shape' => 'AutocompleteAddressHighlights', ], ], ], 'AutocompleteIntendedUse' => [ 'type' => 'string', 'enum' => [ 'SingleUse', ], ], 'AutocompleteRequest' => [ 'type' => 'structure', 'required' => [ 'QueryText', ], 'members' => [ 'QueryText' => [ 'shape' => 'AutocompleteRequestQueryTextString', ], 'MaxResults' => [ 'shape' => 'AutocompleteRequestMaxResultsInteger', ], 'BiasPosition' => [ 'shape' => 'Position', ], 'Filter' => [ 'shape' => 'AutocompleteFilter', ], 'PostalCodeMode' => [ 'shape' => 'PostalCodeMode', ], 'AdditionalFeatures' => [ 'shape' => 'AutocompleteAdditionalFeatureList', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'PoliticalView' => [ 'shape' => 'CountryCode', ], 'IntendedUse' => [ 'shape' => 'AutocompleteIntendedUse', ], 'Key' => [ 'shape' => 'ApiKey', 'location' => 'querystring', 'locationName' => 'key', ], ], ], 'AutocompleteRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 20, 'min' => 1, ], 'AutocompleteRequestQueryTextString' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'sensitive' => true, ], 'AutocompleteResponse' => [ 'type' => 'structure', 'required' => [ 'PricingBucket', ], 'members' => [ 'PricingBucket' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-geo-pricing-bucket', ], 'ResultItems' => [ 'shape' => 'AutocompleteResultItemList', ], ], ], 'AutocompleteResultItem' => [ 'type' => 'structure', 'required' => [ 'PlaceId', 'PlaceType', 'Title', ], 'members' => [ 'PlaceId' => [ 'shape' => 'AutocompleteResultItemPlaceIdString', ], 'PlaceType' => [ 'shape' => 'PlaceType', ], 'Title' => [ 'shape' => 'AutocompleteResultItemTitleString', ], 'Address' => [ 'shape' => 'Address', ], 'Distance' => [ 'shape' => 'DistanceMeters', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'PoliticalView' => [ 'shape' => 'CountryCode3', ], 'Highlights' => [ 'shape' => 'AutocompleteHighlights', ], 'EstimatedPointAddress' => [ 'shape' => 'SensitiveBoolean', ], ], ], 'AutocompleteResultItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AutocompleteResultItem', ], 'max' => 20, 'min' => 0, ], 'AutocompleteResultItemPlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'AutocompleteResultItemTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'BoundingBox' => [ 'type' => 'list', 'member' => [ 'shape' => 'Double', ], 'max' => 4, 'min' => 4, 'sensitive' => true, ], 'BusinessChain' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'BusinessChainNameString', ], 'Id' => [ 'shape' => 'BusinessChainIdString', ], ], ], 'BusinessChainIdString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'BusinessChainList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BusinessChain', ], 'max' => 100, 'min' => 1, ], 'BusinessChainNameString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'Category' => [ 'type' => 'structure', 'required' => [ 'Id', 'Name', ], 'members' => [ 'Id' => [ 'shape' => 'CategoryIdString', ], 'Name' => [ 'shape' => 'CategoryNameString', ], 'LocalizedName' => [ 'shape' => 'CategoryLocalizedNameString', ], 'Primary' => [ 'shape' => 'SensitiveBoolean', ], ], ], 'CategoryIdString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'CategoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Category', ], 'max' => 100, 'min' => 1, ], 'CategoryLocalizedNameString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'CategoryNameString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'ComponentMatchScores' => [ 'type' => 'structure', 'members' => [ 'Title' => [ 'shape' => 'MatchScore', ], 'Address' => [ 'shape' => 'AddressComponentMatchScores', ], ], ], 'ContactDetails' => [ 'type' => 'structure', 'members' => [ 'Label' => [ 'shape' => 'ContactDetailsLabelString', ], 'Value' => [ 'shape' => 'ContactDetailsValueString', ], 'Categories' => [ 'shape' => 'CategoryList', ], ], ], 'ContactDetailsLabelString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'ContactDetailsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ContactDetails', ], 'max' => 100, 'min' => 1, ], 'ContactDetailsValueString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'Contacts' => [ 'type' => 'structure', 'members' => [ 'Phones' => [ 'shape' => 'ContactDetailsList', ], 'Faxes' => [ 'shape' => 'ContactDetailsList', ], 'Websites' => [ 'shape' => 'ContactDetailsList', ], 'Emails' => [ 'shape' => 'ContactDetailsList', ], ], ], 'Country' => [ 'type' => 'structure', 'members' => [ 'Code2' => [ 'shape' => 'CountryCode2', ], 'Code3' => [ 'shape' => 'CountryCode3', ], 'Name' => [ 'shape' => 'CountryNameString', ], ], ], 'CountryCode' => [ 'type' => 'string', 'max' => 3, 'min' => 2, 'pattern' => '([A-Z]{2}|[A-Z]{3})', 'sensitive' => true, ], 'CountryCode2' => [ 'type' => 'string', 'max' => 2, 'min' => 2, 'pattern' => '[A-Z]{2}', 'sensitive' => true, ], 'CountryCode3' => [ 'type' => 'string', 'max' => 3, 'min' => 3, 'pattern' => '[A-Z]{3}', 'sensitive' => true, ], 'CountryCodeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CountryCode', ], 'max' => 100, 'min' => 1, ], 'CountryHighlights' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'HighlightList', ], 'Name' => [ 'shape' => 'HighlightList', ], ], ], 'CountryNameString' => [ 'type' => 'string', 'max' => 100, 'min' => 0, 'sensitive' => true, ], 'CrossReference' => [ 'type' => 'structure', 'required' => [ 'Source', 'SourcePlaceId', ], 'members' => [ 'Source' => [ 'shape' => 'CrossReferenceSourceString', ], 'SourcePlaceId' => [ 'shape' => 'CrossReferenceSourcePlaceIdString', ], 'SourceCategories' => [ 'shape' => 'CategoryList', ], ], ], 'CrossReferenceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CrossReference', ], 'max' => 100, 'min' => 0, ], 'CrossReferenceSourcePlaceIdString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'CrossReferenceSourceString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'DistanceMeters' => [ 'type' => 'long', 'max' => 4294967295, 'min' => 0, 'sensitive' => true, ], 'Double' => [ 'type' => 'double', 'box' => true, ], 'FilterBusinessChainList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterBusinessChainListMemberString', ], 'max' => 10, 'min' => 1, ], 'FilterBusinessChainListMemberString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'FilterCategoryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterCategoryListMemberString', ], 'max' => 10, 'min' => 1, ], 'FilterCategoryListMemberString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'FilterCircle' => [ 'type' => 'structure', 'required' => [ 'Center', 'Radius', ], 'members' => [ 'Center' => [ 'shape' => 'Position', ], 'Radius' => [ 'shape' => 'FilterCircleRadiusLong', 'box' => true, ], ], 'sensitive' => true, ], 'FilterCircleRadiusLong' => [ 'type' => 'long', 'max' => 21000000, 'min' => 1, 'sensitive' => true, ], 'FilterFoodTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterFoodTypeListMemberString', ], 'max' => 10, 'min' => 1, ], 'FilterFoodTypeListMemberString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'FoodType' => [ 'type' => 'structure', 'required' => [ 'LocalizedName', ], 'members' => [ 'LocalizedName' => [ 'shape' => 'FoodTypeLocalizedNameString', ], 'Id' => [ 'shape' => 'FoodTypeIdString', ], 'Primary' => [ 'shape' => 'SensitiveBoolean', ], ], ], 'FoodTypeIdString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'FoodTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FoodType', ], 'max' => 100, 'min' => 1, ], 'FoodTypeLocalizedNameString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'sensitive' => true, ], 'GeocodeAdditionalFeature' => [ 'type' => 'string', 'enum' => [ 'TimeZone', 'Access', 'SecondaryAddresses', 'Intersections', ], ], 'GeocodeAdditionalFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GeocodeAdditionalFeature', ], 'max' => 4, 'min' => 1, ], 'GeocodeAddressNamesMode' => [ 'type' => 'string', 'enum' => [ 'Matched', 'Administrative', ], ], 'GeocodeFilter' => [ 'type' => 'structure', 'members' => [ 'IncludeCountries' => [ 'shape' => 'CountryCodeList', ], 'IncludePlaceTypes' => [ 'shape' => 'GeocodeFilterPlaceTypeList', ], ], ], 'GeocodeFilterPlaceType' => [ 'type' => 'string', 'enum' => [ 'Locality', 'PostalCode', 'Intersection', 'Street', 'PointAddress', 'InterpolatedAddress', 'SecondaryAddress', 'PointOfInterest', 'Country', 'Region', ], 'sensitive' => true, ], 'GeocodeFilterPlaceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GeocodeFilterPlaceType', ], 'max' => 10, 'min' => 1, ], 'GeocodeIntendedUse' => [ 'type' => 'string', 'enum' => [ 'SingleUse', 'Storage', ], ], 'GeocodeParsedQuery' => [ 'type' => 'structure', 'members' => [ 'Title' => [ 'shape' => 'ParsedQueryComponentList', ], 'Address' => [ 'shape' => 'GeocodeParsedQueryAddressComponents', ], ], ], 'GeocodeParsedQueryAddressComponents' => [ 'type' => 'structure', 'members' => [ 'Country' => [ 'shape' => 'ParsedQueryComponentList', ], 'Region' => [ 'shape' => 'ParsedQueryComponentList', ], 'SubRegion' => [ 'shape' => 'ParsedQueryComponentList', ], 'Locality' => [ 'shape' => 'ParsedQueryComponentList', ], 'District' => [ 'shape' => 'ParsedQueryComponentList', ], 'SubDistrict' => [ 'shape' => 'ParsedQueryComponentList', ], 'PostalCode' => [ 'shape' => 'ParsedQueryComponentList', ], 'Block' => [ 'shape' => 'ParsedQueryComponentList', ], 'SubBlock' => [ 'shape' => 'ParsedQueryComponentList', ], 'Street' => [ 'shape' => 'ParsedQueryComponentList', ], 'AddressNumber' => [ 'shape' => 'ParsedQueryComponentList', ], 'Building' => [ 'shape' => 'ParsedQueryComponentList', ], 'SecondaryAddressComponents' => [ 'shape' => 'ParsedQuerySecondaryAddressComponentList', ], 'OtherComponents' => [ 'shape' => 'ParsedQueryComponentList', ], ], ], 'GeocodeQueryComponents' => [ 'type' => 'structure', 'members' => [ 'Country' => [ 'shape' => 'GeocodeQueryComponentsCountryString', ], 'Region' => [ 'shape' => 'GeocodeQueryComponentsRegionString', ], 'SubRegion' => [ 'shape' => 'GeocodeQueryComponentsSubRegionString', ], 'Locality' => [ 'shape' => 'GeocodeQueryComponentsLocalityString', ], 'District' => [ 'shape' => 'GeocodeQueryComponentsDistrictString', ], 'Street' => [ 'shape' => 'GeocodeQueryComponentsStreetString', ], 'AddressNumber' => [ 'shape' => 'GeocodeQueryComponentsAddressNumberString', ], 'PostalCode' => [ 'shape' => 'GeocodeQueryComponentsPostalCodeString', ], ], ], 'GeocodeQueryComponentsAddressNumberString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^;]+', 'sensitive' => true, ], 'GeocodeQueryComponentsCountryString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^;]+', 'sensitive' => true, ], 'GeocodeQueryComponentsDistrictString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^;]+', 'sensitive' => true, ], 'GeocodeQueryComponentsLocalityString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^;]+', 'sensitive' => true, ], 'GeocodeQueryComponentsPostalCodeString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^;]+', 'sensitive' => true, ], 'GeocodeQueryComponentsRegionString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^;]+', 'sensitive' => true, ], 'GeocodeQueryComponentsStreetString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^;]+', 'sensitive' => true, ], 'GeocodeQueryComponentsSubRegionString' => [ 'type' => 'string', 'max' => 100, 'min' => 1, 'pattern' => '[^;]+', 'sensitive' => true, ], 'GeocodeRequest' => [ 'type' => 'structure', 'members' => [ 'QueryText' => [ 'shape' => 'GeocodeRequestQueryTextString', ], 'QueryComponents' => [ 'shape' => 'GeocodeQueryComponents', ], 'MaxResults' => [ 'shape' => 'GeocodeRequestMaxResultsInteger', ], 'BiasPosition' => [ 'shape' => 'Position', ], 'Filter' => [ 'shape' => 'GeocodeFilter', ], 'AdditionalFeatures' => [ 'shape' => 'GeocodeAdditionalFeatureList', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'PoliticalView' => [ 'shape' => 'CountryCode', ], 'IntendedUse' => [ 'shape' => 'GeocodeIntendedUse', ], 'Key' => [ 'shape' => 'ApiKey', 'location' => 'querystring', 'locationName' => 'key', ], 'PostalCodeMode' => [ 'shape' => 'PostalCodeMode', ], 'AddressTranslations' => [ 'shape' => 'AddressTranslationComponentList', ], 'AddressNamesMode' => [ 'shape' => 'GeocodeAddressNamesMode', ], ], ], 'GeocodeRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'GeocodeRequestQueryTextString' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'sensitive' => true, ], 'GeocodeResponse' => [ 'type' => 'structure', 'required' => [ 'PricingBucket', ], 'members' => [ 'PricingBucket' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-geo-pricing-bucket', ], 'ResultItems' => [ 'shape' => 'GeocodeResultItemList', ], ], ], 'GeocodeResultItem' => [ 'type' => 'structure', 'required' => [ 'PlaceId', 'PlaceType', 'Title', ], 'members' => [ 'PlaceId' => [ 'shape' => 'GeocodeResultItemPlaceIdString', ], 'PlaceType' => [ 'shape' => 'PlaceType', ], 'Title' => [ 'shape' => 'GeocodeResultItemTitleString', ], 'Address' => [ 'shape' => 'Address', ], 'AddressNumberCorrected' => [ 'shape' => 'SensitiveBoolean', ], 'PostalCodeDetails' => [ 'shape' => 'PostalCodeDetailsList', ], 'Position' => [ 'shape' => 'Position', ], 'Distance' => [ 'shape' => 'DistanceMeters', ], 'MapView' => [ 'shape' => 'BoundingBox', ], 'Categories' => [ 'shape' => 'CategoryList', ], 'FoodTypes' => [ 'shape' => 'FoodTypeList', ], 'AccessPoints' => [ 'shape' => 'AccessPointList', ], 'TimeZone' => [ 'shape' => 'TimeZone', ], 'PoliticalView' => [ 'shape' => 'CountryCode3', ], 'MatchScores' => [ 'shape' => 'MatchScoreDetails', ], 'ParsedQuery' => [ 'shape' => 'GeocodeParsedQuery', ], 'Intersections' => [ 'shape' => 'IntersectionList', ], 'MainAddress' => [ 'shape' => 'RelatedPlace', ], 'SecondaryAddresses' => [ 'shape' => 'RelatedPlaceList', ], 'Translations' => [ 'shape' => 'TranslationDetails', ], 'EstimatedPointAddress' => [ 'shape' => 'SensitiveBoolean', ], ], ], 'GeocodeResultItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GeocodeResultItem', ], 'max' => 100, 'min' => 0, ], 'GeocodeResultItemPlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'GeocodeResultItemTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'GetPlaceAdditionalFeature' => [ 'type' => 'string', 'enum' => [ 'TimeZone', 'Phonemes', 'Access', 'Contact', 'SecondaryAddresses', 'CrossReferences', ], ], 'GetPlaceAdditionalFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GetPlaceAdditionalFeature', ], 'max' => 6, 'min' => 1, ], 'GetPlaceAddressNamesMode' => [ 'type' => 'string', 'enum' => [ 'Administrative', ], ], 'GetPlaceIntendedUse' => [ 'type' => 'string', 'enum' => [ 'SingleUse', 'Storage', ], ], 'GetPlaceRequest' => [ 'type' => 'structure', 'required' => [ 'PlaceId', ], 'members' => [ 'PlaceId' => [ 'shape' => 'GetPlaceRequestPlaceIdString', 'location' => 'uri', 'locationName' => 'PlaceId', ], 'AdditionalFeatures' => [ 'shape' => 'GetPlaceAdditionalFeatureList', 'location' => 'querystring', 'locationName' => 'additional-features', ], 'Language' => [ 'shape' => 'LanguageTag', 'location' => 'querystring', 'locationName' => 'language', ], 'PoliticalView' => [ 'shape' => 'CountryCode', 'location' => 'querystring', 'locationName' => 'political-view', ], 'IntendedUse' => [ 'shape' => 'GetPlaceIntendedUse', 'location' => 'querystring', 'locationName' => 'intended-use', ], 'Key' => [ 'shape' => 'ApiKey', 'location' => 'querystring', 'locationName' => 'key', ], 'AddressNamesMode' => [ 'shape' => 'GetPlaceAddressNamesMode', 'location' => 'querystring', 'locationName' => 'address-names-mode', ], ], ], 'GetPlaceRequestPlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'GetPlaceResponse' => [ 'type' => 'structure', 'required' => [ 'PlaceId', 'PlaceType', 'Title', 'PricingBucket', ], 'members' => [ 'PlaceId' => [ 'shape' => 'GetPlaceResponsePlaceIdString', ], 'PlaceType' => [ 'shape' => 'PlaceType', ], 'Title' => [ 'shape' => 'GetPlaceResponseTitleString', ], 'PricingBucket' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-geo-pricing-bucket', ], 'Address' => [ 'shape' => 'Address', ], 'AddressNumberCorrected' => [ 'shape' => 'SensitiveBoolean', ], 'PostalCodeDetails' => [ 'shape' => 'PostalCodeDetailsList', ], 'Position' => [ 'shape' => 'Position', ], 'MapView' => [ 'shape' => 'BoundingBox', ], 'Categories' => [ 'shape' => 'CategoryList', ], 'FoodTypes' => [ 'shape' => 'FoodTypeList', ], 'BusinessChains' => [ 'shape' => 'BusinessChainList', ], 'Contacts' => [ 'shape' => 'Contacts', ], 'OpeningHours' => [ 'shape' => 'OpeningHoursList', ], 'AccessPoints' => [ 'shape' => 'AccessPointList', ], 'AccessRestrictions' => [ 'shape' => 'AccessRestrictionList', ], 'TimeZone' => [ 'shape' => 'TimeZone', ], 'PoliticalView' => [ 'shape' => 'CountryCode3', ], 'Phonemes' => [ 'shape' => 'PhonemeDetails', ], 'MainAddress' => [ 'shape' => 'RelatedPlace', ], 'SecondaryAddresses' => [ 'shape' => 'RelatedPlaceList', ], 'PlaceAttributes' => [ 'shape' => 'PlaceAttributeList', ], 'EstimatedPointAddress' => [ 'shape' => 'SensitiveBoolean', ], 'CrossReferences' => [ 'shape' => 'CrossReferenceList', ], ], ], 'GetPlaceResponsePlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'GetPlaceResponseTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'Heading' => [ 'type' => 'double', 'max' => 360.0, 'min' => 0.0, 'sensitive' => true, ], 'Highlight' => [ 'type' => 'structure', 'members' => [ 'StartIndex' => [ 'shape' => 'HighlightStartIndexInteger', ], 'EndIndex' => [ 'shape' => 'HighlightEndIndexInteger', ], 'Value' => [ 'shape' => 'HighlightValueString', ], ], ], 'HighlightEndIndexInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'HighlightList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Highlight', ], 'max' => 200, 'min' => 0, ], 'HighlightStartIndexInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'HighlightValueString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'InternalServerException' => [ 'type' => 'structure', 'required' => [ 'Message', ], 'members' => [ 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, 'retryable' => [ 'throttling' => false, ], ], 'Intersection' => [ 'type' => 'structure', 'required' => [ 'PlaceId', 'Title', ], 'members' => [ 'PlaceId' => [ 'shape' => 'IntersectionPlaceIdString', ], 'Title' => [ 'shape' => 'IntersectionTitleString', ], 'Address' => [ 'shape' => 'Address', ], 'Position' => [ 'shape' => 'Position', ], 'Distance' => [ 'shape' => 'DistanceMeters', 'box' => true, ], 'RouteDistance' => [ 'shape' => 'DistanceMeters', 'box' => true, ], 'MapView' => [ 'shape' => 'BoundingBox', ], 'AccessPoints' => [ 'shape' => 'AccessPointList', ], ], ], 'IntersectionHighlightsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'HighlightList', ], 'max' => 100, 'min' => 1, ], 'IntersectionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Intersection', ], 'min' => 1, ], 'IntersectionPlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'IntersectionStreet' => [ 'type' => 'string', 'max' => 200, 'min' => 0, ], 'IntersectionStreetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IntersectionStreet', ], 'max' => 100, 'min' => 1, ], 'IntersectionTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'LanguageTag' => [ 'type' => 'string', 'max' => 35, 'min' => 2, ], 'MatchScore' => [ 'type' => 'double', 'max' => 1, 'min' => 0, ], 'MatchScoreDetails' => [ 'type' => 'structure', 'members' => [ 'Overall' => [ 'shape' => 'MatchScore', ], 'Components' => [ 'shape' => 'ComponentMatchScores', ], ], ], 'OpeningHours' => [ 'type' => 'structure', 'members' => [ 'Display' => [ 'shape' => 'OpeningHoursDisplayList', ], 'OpenNow' => [ 'shape' => 'SensitiveBoolean', ], 'Components' => [ 'shape' => 'OpeningHoursComponentsList', ], 'Categories' => [ 'shape' => 'CategoryList', ], ], ], 'OpeningHoursComponents' => [ 'type' => 'structure', 'members' => [ 'OpenTime' => [ 'shape' => 'OpeningHoursComponentsOpenTimeString', ], 'OpenDuration' => [ 'shape' => 'OpeningHoursComponentsOpenDurationString', ], 'Recurrence' => [ 'shape' => 'OpeningHoursComponentsRecurrenceString', ], ], ], 'OpeningHoursComponentsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OpeningHoursComponents', ], 'max' => 100, 'min' => 1, ], 'OpeningHoursComponentsOpenDurationString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'OpeningHoursComponentsOpenTimeString' => [ 'type' => 'string', 'max' => 21, 'min' => 0, 'sensitive' => true, ], 'OpeningHoursComponentsRecurrenceString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'OpeningHoursDisplay' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'OpeningHoursDisplayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OpeningHoursDisplay', ], 'max' => 100, 'min' => 1, ], 'OpeningHoursList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OpeningHours', ], 'max' => 100, 'min' => 1, ], 'ParsedQueryComponent' => [ 'type' => 'structure', 'members' => [ 'StartIndex' => [ 'shape' => 'ParsedQueryComponentStartIndexInteger', ], 'EndIndex' => [ 'shape' => 'ParsedQueryComponentEndIndexInteger', ], 'Value' => [ 'shape' => 'ParsedQueryComponentValueString', ], 'QueryComponent' => [ 'shape' => 'ParsedQueryComponentQueryComponentString', ], ], ], 'ParsedQueryComponentEndIndexInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'ParsedQueryComponentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParsedQueryComponent', ], 'max' => 200, 'min' => 0, ], 'ParsedQueryComponentQueryComponentString' => [ 'type' => 'string', 'max' => 11, 'min' => 0, 'sensitive' => true, ], 'ParsedQueryComponentStartIndexInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'ParsedQueryComponentValueString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'ParsedQuerySecondaryAddressComponent' => [ 'type' => 'structure', 'required' => [ 'StartIndex', 'EndIndex', 'Value', 'Number', 'Designator', ], 'members' => [ 'StartIndex' => [ 'shape' => 'ParsedQuerySecondaryAddressComponentStartIndexInteger', ], 'EndIndex' => [ 'shape' => 'ParsedQuerySecondaryAddressComponentEndIndexInteger', ], 'Value' => [ 'shape' => 'ParsedQuerySecondaryAddressComponentValueString', ], 'Number' => [ 'shape' => 'ParsedQuerySecondaryAddressComponentNumberString', ], 'Designator' => [ 'shape' => 'ParsedQuerySecondaryAddressComponentDesignatorString', ], ], ], 'ParsedQuerySecondaryAddressComponentDesignatorString' => [ 'type' => 'string', 'max' => 4, 'min' => 0, 'sensitive' => true, ], 'ParsedQuerySecondaryAddressComponentEndIndexInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'ParsedQuerySecondaryAddressComponentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ParsedQuerySecondaryAddressComponent', ], 'max' => 200, 'min' => 0, ], 'ParsedQuerySecondaryAddressComponentNumberString' => [ 'type' => 'string', 'max' => 10, 'min' => 0, 'sensitive' => true, ], 'ParsedQuerySecondaryAddressComponentStartIndexInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'ParsedQuerySecondaryAddressComponentValueString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'PhonemeDetails' => [ 'type' => 'structure', 'members' => [ 'Title' => [ 'shape' => 'PhonemeTranscriptionList', ], 'Address' => [ 'shape' => 'AddressComponentPhonemes', ], ], ], 'PhonemeTranscription' => [ 'type' => 'structure', 'members' => [ 'Value' => [ 'shape' => 'PhonemeTranscriptionValueString', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'Preferred' => [ 'shape' => 'SensitiveBoolean', ], ], ], 'PhonemeTranscriptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PhonemeTranscription', ], 'max' => 100, 'min' => 0, ], 'PhonemeTranscriptionValueString' => [ 'type' => 'string', 'max' => 50, 'min' => 0, 'sensitive' => true, ], 'PlaceAttribute' => [ 'type' => 'string', 'enum' => [ 'DriveThrough', ], 'sensitive' => true, ], 'PlaceAttributeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlaceAttribute', ], 'max' => 1, 'min' => 0, ], 'PlaceType' => [ 'type' => 'string', 'enum' => [ 'Country', 'Region', 'SubRegion', 'Locality', 'District', 'SubDistrict', 'PostalCode', 'Block', 'SubBlock', 'Intersection', 'Street', 'PointOfInterest', 'PointAddress', 'InterpolatedAddress', 'SecondaryAddress', 'InferredSecondaryAddress', ], 'sensitive' => true, ], 'Position' => [ 'type' => 'list', 'member' => [ 'shape' => 'Double', ], 'max' => 2, 'min' => 2, 'sensitive' => true, ], 'PostalAuthority' => [ 'type' => 'string', 'enum' => [ 'Usps', ], 'sensitive' => true, ], 'PostalCodeDetails' => [ 'type' => 'structure', 'members' => [ 'PostalCode' => [ 'shape' => 'PostalCodeDetailsPostalCodeString', ], 'PostalAuthority' => [ 'shape' => 'PostalAuthority', ], 'PostalCodeType' => [ 'shape' => 'PostalCodeType', ], 'UspsZip' => [ 'shape' => 'UspsZip', ], 'UspsZipPlus4' => [ 'shape' => 'UspsZipPlus4', ], ], ], 'PostalCodeDetailsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PostalCodeDetails', ], 'max' => 100, 'min' => 0, ], 'PostalCodeDetailsPostalCodeString' => [ 'type' => 'string', 'max' => 50, 'min' => 0, 'sensitive' => true, ], 'PostalCodeMode' => [ 'type' => 'string', 'enum' => [ 'MergeAllSpannedLocalities', 'EnumerateSpannedLocalities', 'EnumerateSpannedDistricts', ], ], 'PostalCodeType' => [ 'type' => 'string', 'enum' => [ 'UspsZip', 'UspsZipPlus4', ], 'sensitive' => true, ], 'QueryRefinement' => [ 'type' => 'structure', 'required' => [ 'RefinedTerm', 'OriginalTerm', 'StartIndex', 'EndIndex', ], 'members' => [ 'RefinedTerm' => [ 'shape' => 'QueryRefinementRefinedTermString', ], 'OriginalTerm' => [ 'shape' => 'QueryRefinementOriginalTermString', ], 'StartIndex' => [ 'shape' => 'QueryRefinementStartIndexInteger', ], 'EndIndex' => [ 'shape' => 'QueryRefinementEndIndexInteger', ], ], ], 'QueryRefinementEndIndexInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'QueryRefinementList' => [ 'type' => 'list', 'member' => [ 'shape' => 'QueryRefinement', ], 'max' => 10, 'min' => 0, ], 'QueryRefinementOriginalTermString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'QueryRefinementRefinedTermString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'QueryRefinementStartIndexInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'QueryType' => [ 'type' => 'string', 'enum' => [ 'Category', 'BusinessChain', ], ], 'RecordTypeCode' => [ 'type' => 'string', 'enum' => [ 'Firm', 'General', 'HighRise', 'PostOfficeBox', 'Rural', 'Street', ], 'sensitive' => true, ], 'Region' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'RegionCodeString', ], 'Name' => [ 'shape' => 'RegionNameString', ], ], ], 'RegionCodeString' => [ 'type' => 'string', 'max' => 3, 'min' => 0, 'sensitive' => true, ], 'RegionHighlights' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'HighlightList', ], 'Name' => [ 'shape' => 'HighlightList', ], ], ], 'RegionNameString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'RelatedPlace' => [ 'type' => 'structure', 'required' => [ 'PlaceId', 'PlaceType', 'Title', ], 'members' => [ 'PlaceId' => [ 'shape' => 'RelatedPlacePlaceIdString', ], 'PlaceType' => [ 'shape' => 'PlaceType', ], 'Title' => [ 'shape' => 'RelatedPlaceTitleString', ], 'Address' => [ 'shape' => 'Address', ], 'Position' => [ 'shape' => 'Position', ], 'AccessPoints' => [ 'shape' => 'AccessPointList', ], ], ], 'RelatedPlaceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RelatedPlace', ], 'min' => 1, ], 'RelatedPlacePlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'RelatedPlaceTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'ReverseGeocodeAdditionalFeature' => [ 'type' => 'string', 'enum' => [ 'TimeZone', 'Access', 'Intersections', ], ], 'ReverseGeocodeAdditionalFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReverseGeocodeAdditionalFeature', ], 'max' => 3, 'min' => 1, ], 'ReverseGeocodeAddressNamesMode' => [ 'type' => 'string', 'enum' => [ 'Administrative', ], ], 'ReverseGeocodeFilter' => [ 'type' => 'structure', 'members' => [ 'IncludePlaceTypes' => [ 'shape' => 'ReverseGeocodeFilterPlaceTypeList', ], ], ], 'ReverseGeocodeFilterPlaceType' => [ 'type' => 'string', 'enum' => [ 'Locality', 'Intersection', 'Street', 'PointAddress', 'InterpolatedAddress', 'SecondaryAddress', 'PointOfInterest', ], ], 'ReverseGeocodeFilterPlaceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReverseGeocodeFilterPlaceType', ], 'max' => 7, 'min' => 1, ], 'ReverseGeocodeIntendedUse' => [ 'type' => 'string', 'enum' => [ 'SingleUse', 'Storage', ], ], 'ReverseGeocodeRequest' => [ 'type' => 'structure', 'required' => [ 'QueryPosition', ], 'members' => [ 'QueryPosition' => [ 'shape' => 'Position', ], 'QueryRadius' => [ 'shape' => 'ReverseGeocodeRequestQueryRadiusLong', 'box' => true, ], 'MaxResults' => [ 'shape' => 'ReverseGeocodeRequestMaxResultsInteger', ], 'Filter' => [ 'shape' => 'ReverseGeocodeFilter', ], 'AdditionalFeatures' => [ 'shape' => 'ReverseGeocodeAdditionalFeatureList', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'PoliticalView' => [ 'shape' => 'CountryCode', ], 'IntendedUse' => [ 'shape' => 'ReverseGeocodeIntendedUse', ], 'Key' => [ 'shape' => 'ApiKey', 'location' => 'querystring', 'locationName' => 'key', ], 'Heading' => [ 'shape' => 'Heading', ], 'AddressNamesMode' => [ 'shape' => 'ReverseGeocodeAddressNamesMode', ], ], ], 'ReverseGeocodeRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'ReverseGeocodeRequestQueryRadiusLong' => [ 'type' => 'long', 'max' => 21000000, 'min' => 1, 'sensitive' => true, ], 'ReverseGeocodeResponse' => [ 'type' => 'structure', 'required' => [ 'PricingBucket', ], 'members' => [ 'PricingBucket' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-geo-pricing-bucket', ], 'ResultItems' => [ 'shape' => 'ReverseGeocodeResultItemList', ], ], ], 'ReverseGeocodeResultItem' => [ 'type' => 'structure', 'required' => [ 'PlaceId', 'PlaceType', 'Title', ], 'members' => [ 'PlaceId' => [ 'shape' => 'ReverseGeocodeResultItemPlaceIdString', ], 'PlaceType' => [ 'shape' => 'PlaceType', ], 'Title' => [ 'shape' => 'ReverseGeocodeResultItemTitleString', ], 'Address' => [ 'shape' => 'Address', ], 'AddressNumberCorrected' => [ 'shape' => 'SensitiveBoolean', ], 'PostalCodeDetails' => [ 'shape' => 'PostalCodeDetailsList', ], 'Position' => [ 'shape' => 'Position', ], 'Distance' => [ 'shape' => 'DistanceMeters', ], 'MapView' => [ 'shape' => 'BoundingBox', ], 'Categories' => [ 'shape' => 'CategoryList', ], 'FoodTypes' => [ 'shape' => 'FoodTypeList', ], 'AccessPoints' => [ 'shape' => 'AccessPointList', ], 'TimeZone' => [ 'shape' => 'TimeZone', ], 'PoliticalView' => [ 'shape' => 'CountryCode3', ], 'Intersections' => [ 'shape' => 'IntersectionList', ], 'MainAddress' => [ 'shape' => 'RelatedPlace', ], 'EstimatedPointAddress' => [ 'shape' => 'SensitiveBoolean', ], ], ], 'ReverseGeocodeResultItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReverseGeocodeResultItem', ], 'max' => 100, 'min' => 0, ], 'ReverseGeocodeResultItemPlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'ReverseGeocodeResultItemTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'SearchNearbyAdditionalFeature' => [ 'type' => 'string', 'enum' => [ 'TimeZone', 'Phonemes', 'Access', 'Contact', 'CrossReferences', ], ], 'SearchNearbyAdditionalFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SearchNearbyAdditionalFeature', ], 'max' => 5, 'min' => 1, ], 'SearchNearbyFilter' => [ 'type' => 'structure', 'members' => [ 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'IncludeCountries' => [ 'shape' => 'CountryCodeList', ], 'IncludeCategories' => [ 'shape' => 'FilterCategoryList', ], 'ExcludeCategories' => [ 'shape' => 'FilterCategoryList', ], 'IncludeBusinessChains' => [ 'shape' => 'FilterBusinessChainList', ], 'ExcludeBusinessChains' => [ 'shape' => 'FilterBusinessChainList', ], 'IncludeFoodTypes' => [ 'shape' => 'FilterFoodTypeList', ], 'ExcludeFoodTypes' => [ 'shape' => 'FilterFoodTypeList', ], ], ], 'SearchNearbyIntendedUse' => [ 'type' => 'string', 'enum' => [ 'SingleUse', 'Storage', ], ], 'SearchNearbyRequest' => [ 'type' => 'structure', 'required' => [ 'QueryPosition', ], 'members' => [ 'QueryPosition' => [ 'shape' => 'Position', ], 'QueryRadius' => [ 'shape' => 'SearchNearbyRequestQueryRadiusLong', 'box' => true, ], 'MaxResults' => [ 'shape' => 'SearchNearbyRequestMaxResultsInteger', ], 'Filter' => [ 'shape' => 'SearchNearbyFilter', ], 'AdditionalFeatures' => [ 'shape' => 'SearchNearbyAdditionalFeatureList', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'PoliticalView' => [ 'shape' => 'CountryCode', ], 'IntendedUse' => [ 'shape' => 'SearchNearbyIntendedUse', ], 'NextToken' => [ 'shape' => 'Token', ], 'Key' => [ 'shape' => 'ApiKey', 'location' => 'querystring', 'locationName' => 'key', ], ], ], 'SearchNearbyRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'SearchNearbyRequestQueryRadiusLong' => [ 'type' => 'long', 'max' => 21000000, 'min' => 1, 'sensitive' => true, ], 'SearchNearbyResponse' => [ 'type' => 'structure', 'required' => [ 'PricingBucket', ], 'members' => [ 'PricingBucket' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-geo-pricing-bucket', ], 'ResultItems' => [ 'shape' => 'SearchNearbyResultItemList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'SearchNearbyResultItem' => [ 'type' => 'structure', 'required' => [ 'PlaceId', 'PlaceType', 'Title', ], 'members' => [ 'PlaceId' => [ 'shape' => 'SearchNearbyResultItemPlaceIdString', ], 'PlaceType' => [ 'shape' => 'PlaceType', ], 'Title' => [ 'shape' => 'SearchNearbyResultItemTitleString', ], 'Address' => [ 'shape' => 'Address', ], 'AddressNumberCorrected' => [ 'shape' => 'SensitiveBoolean', ], 'Position' => [ 'shape' => 'Position', ], 'Distance' => [ 'shape' => 'DistanceMeters', ], 'MapView' => [ 'shape' => 'BoundingBox', ], 'Categories' => [ 'shape' => 'CategoryList', ], 'FoodTypes' => [ 'shape' => 'FoodTypeList', ], 'BusinessChains' => [ 'shape' => 'BusinessChainList', ], 'Contacts' => [ 'shape' => 'Contacts', ], 'OpeningHours' => [ 'shape' => 'OpeningHoursList', ], 'AccessPoints' => [ 'shape' => 'AccessPointList', ], 'AccessRestrictions' => [ 'shape' => 'AccessRestrictionList', ], 'TimeZone' => [ 'shape' => 'TimeZone', ], 'PoliticalView' => [ 'shape' => 'CountryCode3', ], 'Phonemes' => [ 'shape' => 'PhonemeDetails', ], 'PlaceAttributes' => [ 'shape' => 'PlaceAttributeList', ], 'CrossReferences' => [ 'shape' => 'CrossReferenceList', ], ], ], 'SearchNearbyResultItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SearchNearbyResultItem', ], 'max' => 100, 'min' => 0, ], 'SearchNearbyResultItemPlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'SearchNearbyResultItemTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'SearchTextAdditionalFeature' => [ 'type' => 'string', 'enum' => [ 'TimeZone', 'Phonemes', 'Access', 'Contact', 'CrossReferences', ], ], 'SearchTextAdditionalFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SearchTextAdditionalFeature', ], 'max' => 5, 'min' => 1, ], 'SearchTextFilter' => [ 'type' => 'structure', 'members' => [ 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'Circle' => [ 'shape' => 'FilterCircle', ], 'IncludeCountries' => [ 'shape' => 'CountryCodeList', ], ], ], 'SearchTextIntendedUse' => [ 'type' => 'string', 'enum' => [ 'SingleUse', 'Storage', ], ], 'SearchTextRequest' => [ 'type' => 'structure', 'members' => [ 'QueryText' => [ 'shape' => 'SearchTextRequestQueryTextString', ], 'QueryId' => [ 'shape' => 'SearchTextRequestQueryIdString', ], 'MaxResults' => [ 'shape' => 'SearchTextRequestMaxResultsInteger', ], 'BiasPosition' => [ 'shape' => 'Position', ], 'Filter' => [ 'shape' => 'SearchTextFilter', ], 'AdditionalFeatures' => [ 'shape' => 'SearchTextAdditionalFeatureList', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'PoliticalView' => [ 'shape' => 'CountryCode', ], 'IntendedUse' => [ 'shape' => 'SearchTextIntendedUse', ], 'NextToken' => [ 'shape' => 'Token', ], 'TravelMode' => [ 'shape' => 'SearchTextTravelMode', ], 'Key' => [ 'shape' => 'ApiKey', 'location' => 'querystring', 'locationName' => 'key', ], ], ], 'SearchTextRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'SearchTextRequestQueryIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 1, 'sensitive' => true, ], 'SearchTextRequestQueryTextString' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'sensitive' => true, ], 'SearchTextResponse' => [ 'type' => 'structure', 'required' => [ 'PricingBucket', ], 'members' => [ 'PricingBucket' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-geo-pricing-bucket', ], 'ResultItems' => [ 'shape' => 'SearchTextResultItemList', ], 'NextToken' => [ 'shape' => 'Token', ], ], ], 'SearchTextResultItem' => [ 'type' => 'structure', 'required' => [ 'PlaceId', 'PlaceType', 'Title', ], 'members' => [ 'PlaceId' => [ 'shape' => 'SearchTextResultItemPlaceIdString', ], 'PlaceType' => [ 'shape' => 'PlaceType', ], 'Title' => [ 'shape' => 'SearchTextResultItemTitleString', ], 'Address' => [ 'shape' => 'Address', ], 'AddressNumberCorrected' => [ 'shape' => 'SensitiveBoolean', ], 'Position' => [ 'shape' => 'Position', ], 'Distance' => [ 'shape' => 'DistanceMeters', ], 'MapView' => [ 'shape' => 'BoundingBox', ], 'Categories' => [ 'shape' => 'CategoryList', ], 'FoodTypes' => [ 'shape' => 'FoodTypeList', ], 'BusinessChains' => [ 'shape' => 'BusinessChainList', ], 'Contacts' => [ 'shape' => 'Contacts', ], 'OpeningHours' => [ 'shape' => 'OpeningHoursList', ], 'AccessPoints' => [ 'shape' => 'AccessPointList', ], 'AccessRestrictions' => [ 'shape' => 'AccessRestrictionList', ], 'TimeZone' => [ 'shape' => 'TimeZone', ], 'PoliticalView' => [ 'shape' => 'CountryCode3', ], 'Phonemes' => [ 'shape' => 'PhonemeDetails', ], 'PlaceAttributes' => [ 'shape' => 'PlaceAttributeList', ], 'CrossReferences' => [ 'shape' => 'CrossReferenceList', ], ], ], 'SearchTextResultItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SearchTextResultItem', ], 'max' => 100, 'min' => 0, ], 'SearchTextResultItemPlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'SearchTextResultItemTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'SearchTextTravelMode' => [ 'type' => 'string', 'enum' => [ 'Car', 'Scooter', 'Truck', ], ], 'SecondaryAddressComponent' => [ 'type' => 'structure', 'required' => [ 'Number', ], 'members' => [ 'Number' => [ 'shape' => 'SecondaryAddressComponentNumberString', ], 'Designator' => [ 'shape' => 'SecondaryAddressComponentDesignatorString', ], ], ], 'SecondaryAddressComponentDesignatorString' => [ 'type' => 'string', 'max' => 20, 'min' => 0, 'sensitive' => true, ], 'SecondaryAddressComponentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryAddressComponent', ], 'max' => 3, 'min' => 0, ], 'SecondaryAddressComponentMatchScore' => [ 'type' => 'structure', 'members' => [ 'Number' => [ 'shape' => 'MatchScore', ], ], ], 'SecondaryAddressComponentMatchScoreList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SecondaryAddressComponentMatchScore', ], ], 'SecondaryAddressComponentNumberString' => [ 'type' => 'string', 'max' => 10, 'min' => 0, 'sensitive' => true, ], 'SensitiveBoolean' => [ 'type' => 'boolean', 'box' => true, 'sensitive' => true, ], 'SensitiveString' => [ 'type' => 'string', 'sensitive' => true, ], 'StreetComponents' => [ 'type' => 'structure', 'members' => [ 'BaseName' => [ 'shape' => 'StreetComponentsBaseNameString', ], 'Type' => [ 'shape' => 'StreetComponentsTypeString', ], 'TypePlacement' => [ 'shape' => 'TypePlacement', ], 'TypeSeparator' => [ 'shape' => 'TypeSeparator', ], 'Prefix' => [ 'shape' => 'StreetComponentsPrefixString', ], 'Suffix' => [ 'shape' => 'StreetComponentsSuffixString', ], 'Direction' => [ 'shape' => 'StreetComponentsDirectionString', ], 'Language' => [ 'shape' => 'LanguageTag', ], ], ], 'StreetComponentsBaseNameString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'StreetComponentsDirectionString' => [ 'type' => 'string', 'max' => 50, 'min' => 0, 'sensitive' => true, ], 'StreetComponentsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'StreetComponents', ], 'max' => 100, 'min' => 0, ], 'StreetComponentsPrefixString' => [ 'type' => 'string', 'max' => 50, 'min' => 0, 'sensitive' => true, ], 'StreetComponentsSuffixString' => [ 'type' => 'string', 'max' => 50, 'min' => 0, 'sensitive' => true, ], 'StreetComponentsTypeString' => [ 'type' => 'string', 'max' => 50, 'min' => 0, 'sensitive' => true, ], 'String' => [ 'type' => 'string', ], 'SubRegion' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'SubRegionCodeString', ], 'Name' => [ 'shape' => 'SubRegionNameString', ], ], ], 'SubRegionCodeString' => [ 'type' => 'string', 'max' => 3, 'min' => 0, 'sensitive' => true, ], 'SubRegionHighlights' => [ 'type' => 'structure', 'members' => [ 'Code' => [ 'shape' => 'HighlightList', ], 'Name' => [ 'shape' => 'HighlightList', ], ], ], 'SubRegionNameString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'SuggestAdditionalFeature' => [ 'type' => 'string', 'enum' => [ 'Core', 'TimeZone', 'Phonemes', 'Access', 'CrossReferences', ], ], 'SuggestAdditionalFeatureList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SuggestAdditionalFeature', ], 'max' => 5, 'min' => 1, ], 'SuggestAddressHighlights' => [ 'type' => 'structure', 'members' => [ 'Label' => [ 'shape' => 'HighlightList', ], ], ], 'SuggestFilter' => [ 'type' => 'structure', 'members' => [ 'BoundingBox' => [ 'shape' => 'BoundingBox', ], 'Circle' => [ 'shape' => 'FilterCircle', ], 'IncludeCountries' => [ 'shape' => 'CountryCodeList', ], ], ], 'SuggestHighlights' => [ 'type' => 'structure', 'members' => [ 'Title' => [ 'shape' => 'HighlightList', ], 'Address' => [ 'shape' => 'SuggestAddressHighlights', ], ], ], 'SuggestIntendedUse' => [ 'type' => 'string', 'enum' => [ 'SingleUse', ], ], 'SuggestPlaceResult' => [ 'type' => 'structure', 'members' => [ 'PlaceId' => [ 'shape' => 'SuggestPlaceResultPlaceIdString', ], 'PlaceType' => [ 'shape' => 'PlaceType', ], 'Address' => [ 'shape' => 'Address', ], 'Position' => [ 'shape' => 'Position', ], 'Distance' => [ 'shape' => 'DistanceMeters', ], 'MapView' => [ 'shape' => 'BoundingBox', ], 'Categories' => [ 'shape' => 'CategoryList', ], 'FoodTypes' => [ 'shape' => 'FoodTypeList', ], 'BusinessChains' => [ 'shape' => 'BusinessChainList', ], 'AccessPoints' => [ 'shape' => 'AccessPointList', ], 'AccessRestrictions' => [ 'shape' => 'AccessRestrictionList', ], 'TimeZone' => [ 'shape' => 'TimeZone', ], 'PoliticalView' => [ 'shape' => 'CountryCode3', ], 'Phonemes' => [ 'shape' => 'PhonemeDetails', ], 'PlaceAttributes' => [ 'shape' => 'PlaceAttributeList', ], 'CrossReferences' => [ 'shape' => 'CrossReferenceList', ], ], ], 'SuggestPlaceResultPlaceIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 1, 'sensitive' => true, ], 'SuggestQueryResult' => [ 'type' => 'structure', 'members' => [ 'QueryId' => [ 'shape' => 'SuggestQueryResultQueryIdString', ], 'QueryType' => [ 'shape' => 'QueryType', ], ], ], 'SuggestQueryResultQueryIdString' => [ 'type' => 'string', 'max' => 500, 'min' => 0, 'sensitive' => true, ], 'SuggestRequest' => [ 'type' => 'structure', 'required' => [ 'QueryText', ], 'members' => [ 'QueryText' => [ 'shape' => 'SuggestRequestQueryTextString', ], 'MaxResults' => [ 'shape' => 'SuggestRequestMaxResultsInteger', ], 'MaxQueryRefinements' => [ 'shape' => 'SuggestRequestMaxQueryRefinementsInteger', ], 'BiasPosition' => [ 'shape' => 'Position', ], 'Filter' => [ 'shape' => 'SuggestFilter', ], 'AdditionalFeatures' => [ 'shape' => 'SuggestAdditionalFeatureList', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'PoliticalView' => [ 'shape' => 'CountryCode', ], 'IntendedUse' => [ 'shape' => 'SuggestIntendedUse', ], 'TravelMode' => [ 'shape' => 'SuggestTravelMode', ], 'Key' => [ 'shape' => 'ApiKey', 'location' => 'querystring', 'locationName' => 'key', ], ], ], 'SuggestRequestMaxQueryRefinementsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 10, 'min' => 1, ], 'SuggestRequestMaxResultsInteger' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'SuggestRequestQueryTextString' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'sensitive' => true, ], 'SuggestResponse' => [ 'type' => 'structure', 'required' => [ 'PricingBucket', ], 'members' => [ 'PricingBucket' => [ 'shape' => 'String', 'location' => 'header', 'locationName' => 'x-amz-geo-pricing-bucket', ], 'ResultItems' => [ 'shape' => 'SuggestResultItemList', ], 'QueryRefinements' => [ 'shape' => 'QueryRefinementList', ], ], ], 'SuggestResultItem' => [ 'type' => 'structure', 'required' => [ 'Title', 'SuggestResultItemType', ], 'members' => [ 'Title' => [ 'shape' => 'SuggestResultItemTitleString', ], 'SuggestResultItemType' => [ 'shape' => 'SuggestResultItemType', ], 'Place' => [ 'shape' => 'SuggestPlaceResult', ], 'Query' => [ 'shape' => 'SuggestQueryResult', ], 'Highlights' => [ 'shape' => 'SuggestHighlights', ], ], ], 'SuggestResultItemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SuggestResultItem', ], 'max' => 100, 'min' => 0, ], 'SuggestResultItemTitleString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'SuggestResultItemType' => [ 'type' => 'string', 'enum' => [ 'Place', 'Query', ], ], 'SuggestTravelMode' => [ 'type' => 'string', 'enum' => [ 'Car', 'Scooter', 'Truck', ], ], 'ThrottlingException' => [ 'type' => 'structure', 'required' => [ 'Message', ], 'members' => [ 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], 'error' => [ 'httpStatusCode' => 429, 'senderFault' => true, ], 'exception' => true, 'retryable' => [ 'throttling' => false, ], ], 'TimeZone' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'TimeZoneNameString', ], 'Offset' => [ 'shape' => 'TimeZoneOffsetString', ], 'OffsetSeconds' => [ 'shape' => 'TimeZoneOffsetSecondsLong', ], ], ], 'TimeZoneNameString' => [ 'type' => 'string', 'max' => 200, 'min' => 0, 'sensitive' => true, ], 'TimeZoneOffsetSecondsLong' => [ 'type' => 'long', 'min' => 0, 'sensitive' => true, ], 'TimeZoneOffsetString' => [ 'type' => 'string', 'max' => 6, 'min' => 0, 'sensitive' => true, ], 'Token' => [ 'type' => 'string', 'max' => 2000, 'min' => 1, ], 'TranslationDetails' => [ 'type' => 'structure', 'members' => [ 'Locality' => [ 'shape' => 'AdminNamesList', ], 'Region' => [ 'shape' => 'AdminNamesList', ], 'District' => [ 'shape' => 'AdminNamesList', ], 'SubRegion' => [ 'shape' => 'AdminNamesList', ], ], ], 'TranslationName' => [ 'type' => 'structure', 'required' => [ 'Value', 'Type', ], 'members' => [ 'Value' => [ 'shape' => 'TranslationNameValueString', ], 'Language' => [ 'shape' => 'LanguageTag', ], 'Type' => [ 'shape' => 'TranslationNameType', ], 'Primary' => [ 'shape' => 'SensitiveBoolean', ], 'Transliterated' => [ 'shape' => 'SensitiveBoolean', ], ], ], 'TranslationNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TranslationName', ], 'min' => 1, ], 'TranslationNameType' => [ 'type' => 'string', 'enum' => [ 'Abbreviation', 'AreaCode', 'BaseName', 'Exonym', 'Shortened', 'Synonym', ], ], 'TranslationNameValueString' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'sensitive' => true, ], 'TypePlacement' => [ 'type' => 'string', 'enum' => [ 'BeforeBaseName', 'AfterBaseName', ], ], 'TypeSeparator' => [ 'type' => 'string', 'max' => 1, 'min' => 0, 'pattern' => '$|^ ', ], 'UspsZip' => [ 'type' => 'structure', 'members' => [ 'ZipClassificationCode' => [ 'shape' => 'ZipClassificationCode', ], ], ], 'UspsZipPlus4' => [ 'type' => 'structure', 'members' => [ 'RecordTypeCode' => [ 'shape' => 'RecordTypeCode', ], ], ], 'ValidationException' => [ 'type' => 'structure', 'required' => [ 'Message', 'Reason', 'FieldList', ], 'members' => [ 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], 'Reason' => [ 'shape' => 'ValidationExceptionReason', 'locationName' => 'reason', ], 'FieldList' => [ 'shape' => 'ValidationExceptionFieldList', 'locationName' => 'fieldList', ], ], 'error' => [ 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ValidationExceptionField' => [ 'type' => 'structure', 'required' => [ 'Name', 'Message', ], 'members' => [ 'Name' => [ 'shape' => 'String', 'locationName' => 'name', ], 'Message' => [ 'shape' => 'String', 'locationName' => 'message', ], ], ], 'ValidationExceptionFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValidationExceptionField', ], ], 'ValidationExceptionReason' => [ 'type' => 'string', 'enum' => [ 'UnknownOperation', 'Missing', 'CannotParse', 'FieldValidationFailed', 'Other', 'UnknownField', ], ], 'ZipClassificationCode' => [ 'type' => 'string', 'enum' => [ 'Military', 'PostOfficeBoxes', 'Unique', ], 'sensitive' => true, ], ],]; diff --git a/vendor/aws/aws-sdk-php/src/data/iotwireless/2020-11-22/api-2.json.php b/vendor/aws/aws-sdk-php/src/data/iotwireless/2020-11-22/api-2.json.php index c62820ffb..15b2f375f 100644 --- a/vendor/aws/aws-sdk-php/src/data/iotwireless/2020-11-22/api-2.json.php +++ b/vendor/aws/aws-sdk-php/src/data/iotwireless/2020-11-22/api-2.json.php @@ -1,3 +1,3 @@ '2.0', 'metadata' => [ 'apiVersion' => '2020-11-22', 'endpointPrefix' => 'api.iotwireless', 'protocol' => 'rest-json', 'protocols' => [ 'rest-json', ], 'serviceFullName' => 'AWS IoT Wireless', 'serviceId' => 'IoT Wireless', 'signatureVersion' => 'v4', 'signingName' => 'iotwireless', 'uid' => 'iotwireless-2020-11-22', 'auth' => [ 'aws.auth#sigv4', ], ], 'operations' => [ 'AssociateAwsAccountWithPartnerAccount' => [ 'name' => 'AssociateAwsAccountWithPartnerAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/partner-accounts', ], 'input' => [ 'shape' => 'AssociateAwsAccountWithPartnerAccountRequest', ], 'output' => [ 'shape' => 'AssociateAwsAccountWithPartnerAccountResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'AssociateMulticastGroupWithFuotaTask' => [ 'name' => 'AssociateMulticastGroupWithFuotaTask', 'http' => [ 'method' => 'PUT', 'requestUri' => '/fuota-tasks/{Id}/multicast-group', 'responseCode' => 204, ], 'input' => [ 'shape' => 'AssociateMulticastGroupWithFuotaTaskRequest', ], 'output' => [ 'shape' => 'AssociateMulticastGroupWithFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'AssociateWirelessDeviceWithFuotaTask' => [ 'name' => 'AssociateWirelessDeviceWithFuotaTask', 'http' => [ 'method' => 'PUT', 'requestUri' => '/fuota-tasks/{Id}/wireless-device', 'responseCode' => 204, ], 'input' => [ 'shape' => 'AssociateWirelessDeviceWithFuotaTaskRequest', ], 'output' => [ 'shape' => 'AssociateWirelessDeviceWithFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'AssociateWirelessDeviceWithMulticastGroup' => [ 'name' => 'AssociateWirelessDeviceWithMulticastGroup', 'http' => [ 'method' => 'PUT', 'requestUri' => '/multicast-groups/{Id}/wireless-device', 'responseCode' => 204, ], 'input' => [ 'shape' => 'AssociateWirelessDeviceWithMulticastGroupRequest', ], 'output' => [ 'shape' => 'AssociateWirelessDeviceWithMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'AssociateWirelessDeviceWithThing' => [ 'name' => 'AssociateWirelessDeviceWithThing', 'http' => [ 'method' => 'PUT', 'requestUri' => '/wireless-devices/{Id}/thing', 'responseCode' => 204, ], 'input' => [ 'shape' => 'AssociateWirelessDeviceWithThingRequest', ], 'output' => [ 'shape' => 'AssociateWirelessDeviceWithThingResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'AssociateWirelessGatewayWithCertificate' => [ 'name' => 'AssociateWirelessGatewayWithCertificate', 'http' => [ 'method' => 'PUT', 'requestUri' => '/wireless-gateways/{Id}/certificate', ], 'input' => [ 'shape' => 'AssociateWirelessGatewayWithCertificateRequest', ], 'output' => [ 'shape' => 'AssociateWirelessGatewayWithCertificateResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'AssociateWirelessGatewayWithThing' => [ 'name' => 'AssociateWirelessGatewayWithThing', 'http' => [ 'method' => 'PUT', 'requestUri' => '/wireless-gateways/{Id}/thing', 'responseCode' => 204, ], 'input' => [ 'shape' => 'AssociateWirelessGatewayWithThingRequest', ], 'output' => [ 'shape' => 'AssociateWirelessGatewayWithThingResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CancelMulticastGroupSession' => [ 'name' => 'CancelMulticastGroupSession', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/multicast-groups/{Id}/session', 'responseCode' => 204, ], 'input' => [ 'shape' => 'CancelMulticastGroupSessionRequest', ], 'output' => [ 'shape' => 'CancelMulticastGroupSessionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateDestination' => [ 'name' => 'CreateDestination', 'http' => [ 'method' => 'POST', 'requestUri' => '/destinations', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDestinationRequest', ], 'output' => [ 'shape' => 'CreateDestinationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateDeviceProfile' => [ 'name' => 'CreateDeviceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/device-profiles', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDeviceProfileRequest', ], 'output' => [ 'shape' => 'CreateDeviceProfileResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateFuotaTask' => [ 'name' => 'CreateFuotaTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/fuota-tasks', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateFuotaTaskRequest', ], 'output' => [ 'shape' => 'CreateFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateMulticastGroup' => [ 'name' => 'CreateMulticastGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/multicast-groups', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateMulticastGroupRequest', ], 'output' => [ 'shape' => 'CreateMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateNetworkAnalyzerConfiguration' => [ 'name' => 'CreateNetworkAnalyzerConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/network-analyzer-configurations', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateNetworkAnalyzerConfigurationRequest', ], 'output' => [ 'shape' => 'CreateNetworkAnalyzerConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateServiceProfile' => [ 'name' => 'CreateServiceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/service-profiles', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateServiceProfileRequest', ], 'output' => [ 'shape' => 'CreateServiceProfileResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateWirelessDevice' => [ 'name' => 'CreateWirelessDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/wireless-devices', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateWirelessDeviceRequest', ], 'output' => [ 'shape' => 'CreateWirelessDeviceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateWirelessGateway' => [ 'name' => 'CreateWirelessGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/wireless-gateways', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateWirelessGatewayRequest', ], 'output' => [ 'shape' => 'CreateWirelessGatewayResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateWirelessGatewayTask' => [ 'name' => 'CreateWirelessGatewayTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/wireless-gateways/{Id}/tasks', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateWirelessGatewayTaskRequest', ], 'output' => [ 'shape' => 'CreateWirelessGatewayTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateWirelessGatewayTaskDefinition' => [ 'name' => 'CreateWirelessGatewayTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/wireless-gateway-task-definitions', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateWirelessGatewayTaskDefinitionRequest', ], 'output' => [ 'shape' => 'CreateWirelessGatewayTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteDestination' => [ 'name' => 'DeleteDestination', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/destinations/{Name}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDestinationRequest', ], 'output' => [ 'shape' => 'DeleteDestinationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteDeviceProfile' => [ 'name' => 'DeleteDeviceProfile', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/device-profiles/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDeviceProfileRequest', ], 'output' => [ 'shape' => 'DeleteDeviceProfileResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteFuotaTask' => [ 'name' => 'DeleteFuotaTask', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/fuota-tasks/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteFuotaTaskRequest', ], 'output' => [ 'shape' => 'DeleteFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteMulticastGroup' => [ 'name' => 'DeleteMulticastGroup', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/multicast-groups/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteMulticastGroupRequest', ], 'output' => [ 'shape' => 'DeleteMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteNetworkAnalyzerConfiguration' => [ 'name' => 'DeleteNetworkAnalyzerConfiguration', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/network-analyzer-configurations/{ConfigurationName}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteNetworkAnalyzerConfigurationRequest', ], 'output' => [ 'shape' => 'DeleteNetworkAnalyzerConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteQueuedMessages' => [ 'name' => 'DeleteQueuedMessages', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless-devices/{Id}/data', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteQueuedMessagesRequest', ], 'output' => [ 'shape' => 'DeleteQueuedMessagesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteServiceProfile' => [ 'name' => 'DeleteServiceProfile', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/service-profiles/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteServiceProfileRequest', ], 'output' => [ 'shape' => 'DeleteServiceProfileResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteWirelessDevice' => [ 'name' => 'DeleteWirelessDevice', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless-devices/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteWirelessDeviceRequest', ], 'output' => [ 'shape' => 'DeleteWirelessDeviceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteWirelessDeviceImportTask' => [ 'name' => 'DeleteWirelessDeviceImportTask', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless_device_import_task/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteWirelessDeviceImportTaskRequest', ], 'output' => [ 'shape' => 'DeleteWirelessDeviceImportTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteWirelessGateway' => [ 'name' => 'DeleteWirelessGateway', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless-gateways/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteWirelessGatewayRequest', ], 'output' => [ 'shape' => 'DeleteWirelessGatewayResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteWirelessGatewayTask' => [ 'name' => 'DeleteWirelessGatewayTask', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless-gateways/{Id}/tasks', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteWirelessGatewayTaskRequest', ], 'output' => [ 'shape' => 'DeleteWirelessGatewayTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteWirelessGatewayTaskDefinition' => [ 'name' => 'DeleteWirelessGatewayTaskDefinition', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless-gateway-task-definitions/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteWirelessGatewayTaskDefinitionRequest', ], 'output' => [ 'shape' => 'DeleteWirelessGatewayTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeregisterWirelessDevice' => [ 'name' => 'DeregisterWirelessDevice', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/wireless-devices/{Identifier}/deregister', ], 'input' => [ 'shape' => 'DeregisterWirelessDeviceRequest', ], 'output' => [ 'shape' => 'DeregisterWirelessDeviceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DisassociateAwsAccountFromPartnerAccount' => [ 'name' => 'DisassociateAwsAccountFromPartnerAccount', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/partner-accounts/{PartnerAccountId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DisassociateAwsAccountFromPartnerAccountRequest', ], 'output' => [ 'shape' => 'DisassociateAwsAccountFromPartnerAccountResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DisassociateMulticastGroupFromFuotaTask' => [ 'name' => 'DisassociateMulticastGroupFromFuotaTask', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/fuota-tasks/{Id}/multicast-groups/{MulticastGroupId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DisassociateMulticastGroupFromFuotaTaskRequest', ], 'output' => [ 'shape' => 'DisassociateMulticastGroupFromFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DisassociateWirelessDeviceFromFuotaTask' => [ 'name' => 'DisassociateWirelessDeviceFromFuotaTask', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/fuota-tasks/{Id}/wireless-devices/{WirelessDeviceId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DisassociateWirelessDeviceFromFuotaTaskRequest', ], 'output' => [ 'shape' => 'DisassociateWirelessDeviceFromFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DisassociateWirelessDeviceFromMulticastGroup' => [ 'name' => 'DisassociateWirelessDeviceFromMulticastGroup', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/multicast-groups/{Id}/wireless-devices/{WirelessDeviceId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DisassociateWirelessDeviceFromMulticastGroupRequest', ], 'output' => [ 'shape' => 'DisassociateWirelessDeviceFromMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DisassociateWirelessDeviceFromThing' => [ 'name' => 'DisassociateWirelessDeviceFromThing', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless-devices/{Id}/thing', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DisassociateWirelessDeviceFromThingRequest', ], 'output' => [ 'shape' => 'DisassociateWirelessDeviceFromThingResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DisassociateWirelessGatewayFromCertificate' => [ 'name' => 'DisassociateWirelessGatewayFromCertificate', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless-gateways/{Id}/certificate', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DisassociateWirelessGatewayFromCertificateRequest', ], 'output' => [ 'shape' => 'DisassociateWirelessGatewayFromCertificateResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DisassociateWirelessGatewayFromThing' => [ 'name' => 'DisassociateWirelessGatewayFromThing', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless-gateways/{Id}/thing', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DisassociateWirelessGatewayFromThingRequest', ], 'output' => [ 'shape' => 'DisassociateWirelessGatewayFromThingResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetDestination' => [ 'name' => 'GetDestination', 'http' => [ 'method' => 'GET', 'requestUri' => '/destinations/{Name}', ], 'input' => [ 'shape' => 'GetDestinationRequest', ], 'output' => [ 'shape' => 'GetDestinationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetDeviceProfile' => [ 'name' => 'GetDeviceProfile', 'http' => [ 'method' => 'GET', 'requestUri' => '/device-profiles/{Id}', ], 'input' => [ 'shape' => 'GetDeviceProfileRequest', ], 'output' => [ 'shape' => 'GetDeviceProfileResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetEventConfigurationByResourceTypes' => [ 'name' => 'GetEventConfigurationByResourceTypes', 'http' => [ 'method' => 'GET', 'requestUri' => '/event-configurations-resource-types', ], 'input' => [ 'shape' => 'GetEventConfigurationByResourceTypesRequest', ], 'output' => [ 'shape' => 'GetEventConfigurationByResourceTypesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetFuotaTask' => [ 'name' => 'GetFuotaTask', 'http' => [ 'method' => 'GET', 'requestUri' => '/fuota-tasks/{Id}', ], 'input' => [ 'shape' => 'GetFuotaTaskRequest', ], 'output' => [ 'shape' => 'GetFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetLogLevelsByResourceTypes' => [ 'name' => 'GetLogLevelsByResourceTypes', 'http' => [ 'method' => 'GET', 'requestUri' => '/log-levels', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetLogLevelsByResourceTypesRequest', ], 'output' => [ 'shape' => 'GetLogLevelsByResourceTypesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ValidationException', ], ], ], 'GetMetricConfiguration' => [ 'name' => 'GetMetricConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/metric-configuration', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetMetricConfigurationRequest', ], 'output' => [ 'shape' => 'GetMetricConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetMetrics' => [ 'name' => 'GetMetrics', 'http' => [ 'method' => 'POST', 'requestUri' => '/metrics', ], 'input' => [ 'shape' => 'GetMetricsRequest', ], 'output' => [ 'shape' => 'GetMetricsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetMulticastGroup' => [ 'name' => 'GetMulticastGroup', 'http' => [ 'method' => 'GET', 'requestUri' => '/multicast-groups/{Id}', ], 'input' => [ 'shape' => 'GetMulticastGroupRequest', ], 'output' => [ 'shape' => 'GetMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetMulticastGroupSession' => [ 'name' => 'GetMulticastGroupSession', 'http' => [ 'method' => 'GET', 'requestUri' => '/multicast-groups/{Id}/session', ], 'input' => [ 'shape' => 'GetMulticastGroupSessionRequest', ], 'output' => [ 'shape' => 'GetMulticastGroupSessionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetNetworkAnalyzerConfiguration' => [ 'name' => 'GetNetworkAnalyzerConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/network-analyzer-configurations/{ConfigurationName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetNetworkAnalyzerConfigurationRequest', ], 'output' => [ 'shape' => 'GetNetworkAnalyzerConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetPartnerAccount' => [ 'name' => 'GetPartnerAccount', 'http' => [ 'method' => 'GET', 'requestUri' => '/partner-accounts/{PartnerAccountId}', ], 'input' => [ 'shape' => 'GetPartnerAccountRequest', ], 'output' => [ 'shape' => 'GetPartnerAccountResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetPosition' => [ 'name' => 'GetPosition', 'http' => [ 'method' => 'GET', 'requestUri' => '/positions/{ResourceIdentifier}', ], 'input' => [ 'shape' => 'GetPositionRequest', ], 'output' => [ 'shape' => 'GetPositionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'GetPositionConfiguration' => [ 'name' => 'GetPositionConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/position-configurations/{ResourceIdentifier}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPositionConfigurationRequest', ], 'output' => [ 'shape' => 'GetPositionConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'GetPositionEstimate' => [ 'name' => 'GetPositionEstimate', 'http' => [ 'method' => 'POST', 'requestUri' => '/position-estimate', ], 'input' => [ 'shape' => 'GetPositionEstimateRequest', ], 'output' => [ 'shape' => 'GetPositionEstimateResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetResourceEventConfiguration' => [ 'name' => 'GetResourceEventConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/event-configurations/{Identifier}', ], 'input' => [ 'shape' => 'GetResourceEventConfigurationRequest', ], 'output' => [ 'shape' => 'GetResourceEventConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetResourceLogLevel' => [ 'name' => 'GetResourceLogLevel', 'http' => [ 'method' => 'GET', 'requestUri' => '/log-levels/{ResourceIdentifier}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetResourceLogLevelRequest', ], 'output' => [ 'shape' => 'GetResourceLogLevelResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ValidationException', ], ], ], 'GetResourcePosition' => [ 'name' => 'GetResourcePosition', 'http' => [ 'method' => 'GET', 'requestUri' => '/resource-positions/{ResourceIdentifier}', ], 'input' => [ 'shape' => 'GetResourcePositionRequest', ], 'output' => [ 'shape' => 'GetResourcePositionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetServiceEndpoint' => [ 'name' => 'GetServiceEndpoint', 'http' => [ 'method' => 'GET', 'requestUri' => '/service-endpoint', ], 'input' => [ 'shape' => 'GetServiceEndpointRequest', ], 'output' => [ 'shape' => 'GetServiceEndpointResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetServiceProfile' => [ 'name' => 'GetServiceProfile', 'http' => [ 'method' => 'GET', 'requestUri' => '/service-profiles/{Id}', ], 'input' => [ 'shape' => 'GetServiceProfileRequest', ], 'output' => [ 'shape' => 'GetServiceProfileResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessDevice' => [ 'name' => 'GetWirelessDevice', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-devices/{Identifier}', ], 'input' => [ 'shape' => 'GetWirelessDeviceRequest', ], 'output' => [ 'shape' => 'GetWirelessDeviceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessDeviceImportTask' => [ 'name' => 'GetWirelessDeviceImportTask', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless_device_import_task/{Id}', ], 'input' => [ 'shape' => 'GetWirelessDeviceImportTaskRequest', ], 'output' => [ 'shape' => 'GetWirelessDeviceImportTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessDeviceStatistics' => [ 'name' => 'GetWirelessDeviceStatistics', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-devices/{Id}/statistics', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetWirelessDeviceStatisticsRequest', ], 'output' => [ 'shape' => 'GetWirelessDeviceStatisticsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessGateway' => [ 'name' => 'GetWirelessGateway', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-gateways/{Identifier}', ], 'input' => [ 'shape' => 'GetWirelessGatewayRequest', ], 'output' => [ 'shape' => 'GetWirelessGatewayResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessGatewayCertificate' => [ 'name' => 'GetWirelessGatewayCertificate', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-gateways/{Id}/certificate', ], 'input' => [ 'shape' => 'GetWirelessGatewayCertificateRequest', ], 'output' => [ 'shape' => 'GetWirelessGatewayCertificateResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessGatewayFirmwareInformation' => [ 'name' => 'GetWirelessGatewayFirmwareInformation', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-gateways/{Id}/firmware-information', ], 'input' => [ 'shape' => 'GetWirelessGatewayFirmwareInformationRequest', ], 'output' => [ 'shape' => 'GetWirelessGatewayFirmwareInformationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessGatewayStatistics' => [ 'name' => 'GetWirelessGatewayStatistics', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-gateways/{Id}/statistics', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetWirelessGatewayStatisticsRequest', ], 'output' => [ 'shape' => 'GetWirelessGatewayStatisticsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessGatewayTask' => [ 'name' => 'GetWirelessGatewayTask', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-gateways/{Id}/tasks', ], 'input' => [ 'shape' => 'GetWirelessGatewayTaskRequest', ], 'output' => [ 'shape' => 'GetWirelessGatewayTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessGatewayTaskDefinition' => [ 'name' => 'GetWirelessGatewayTaskDefinition', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-gateway-task-definitions/{Id}', ], 'input' => [ 'shape' => 'GetWirelessGatewayTaskDefinitionRequest', ], 'output' => [ 'shape' => 'GetWirelessGatewayTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListDestinations' => [ 'name' => 'ListDestinations', 'http' => [ 'method' => 'GET', 'requestUri' => '/destinations', ], 'input' => [ 'shape' => 'ListDestinationsRequest', ], 'output' => [ 'shape' => 'ListDestinationsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListDeviceProfiles' => [ 'name' => 'ListDeviceProfiles', 'http' => [ 'method' => 'GET', 'requestUri' => '/device-profiles', ], 'input' => [ 'shape' => 'ListDeviceProfilesRequest', ], 'output' => [ 'shape' => 'ListDeviceProfilesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListDevicesForWirelessDeviceImportTask' => [ 'name' => 'ListDevicesForWirelessDeviceImportTask', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless_device_import_task', ], 'input' => [ 'shape' => 'ListDevicesForWirelessDeviceImportTaskRequest', ], 'output' => [ 'shape' => 'ListDevicesForWirelessDeviceImportTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListEventConfigurations' => [ 'name' => 'ListEventConfigurations', 'http' => [ 'method' => 'GET', 'requestUri' => '/event-configurations', ], 'input' => [ 'shape' => 'ListEventConfigurationsRequest', ], 'output' => [ 'shape' => 'ListEventConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListFuotaTasks' => [ 'name' => 'ListFuotaTasks', 'http' => [ 'method' => 'GET', 'requestUri' => '/fuota-tasks', ], 'input' => [ 'shape' => 'ListFuotaTasksRequest', ], 'output' => [ 'shape' => 'ListFuotaTasksResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListMulticastGroups' => [ 'name' => 'ListMulticastGroups', 'http' => [ 'method' => 'GET', 'requestUri' => '/multicast-groups', ], 'input' => [ 'shape' => 'ListMulticastGroupsRequest', ], 'output' => [ 'shape' => 'ListMulticastGroupsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListMulticastGroupsByFuotaTask' => [ 'name' => 'ListMulticastGroupsByFuotaTask', 'http' => [ 'method' => 'GET', 'requestUri' => '/fuota-tasks/{Id}/multicast-groups', ], 'input' => [ 'shape' => 'ListMulticastGroupsByFuotaTaskRequest', ], 'output' => [ 'shape' => 'ListMulticastGroupsByFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListNetworkAnalyzerConfigurations' => [ 'name' => 'ListNetworkAnalyzerConfigurations', 'http' => [ 'method' => 'GET', 'requestUri' => '/network-analyzer-configurations', ], 'input' => [ 'shape' => 'ListNetworkAnalyzerConfigurationsRequest', ], 'output' => [ 'shape' => 'ListNetworkAnalyzerConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListPartnerAccounts' => [ 'name' => 'ListPartnerAccounts', 'http' => [ 'method' => 'GET', 'requestUri' => '/partner-accounts', ], 'input' => [ 'shape' => 'ListPartnerAccountsRequest', ], 'output' => [ 'shape' => 'ListPartnerAccountsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListPositionConfigurations' => [ 'name' => 'ListPositionConfigurations', 'http' => [ 'method' => 'GET', 'requestUri' => '/position-configurations', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPositionConfigurationsRequest', ], 'output' => [ 'shape' => 'ListPositionConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'ListQueuedMessages' => [ 'name' => 'ListQueuedMessages', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-devices/{Id}/data', ], 'input' => [ 'shape' => 'ListQueuedMessagesRequest', ], 'output' => [ 'shape' => 'ListQueuedMessagesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'ListServiceProfiles' => [ 'name' => 'ListServiceProfiles', 'http' => [ 'method' => 'GET', 'requestUri' => '/service-profiles', ], 'input' => [ 'shape' => 'ListServiceProfilesRequest', ], 'output' => [ 'shape' => 'ListServiceProfilesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListWirelessDeviceImportTasks' => [ 'name' => 'ListWirelessDeviceImportTasks', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless_device_import_tasks', ], 'input' => [ 'shape' => 'ListWirelessDeviceImportTasksRequest', ], 'output' => [ 'shape' => 'ListWirelessDeviceImportTasksResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListWirelessDevices' => [ 'name' => 'ListWirelessDevices', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-devices', ], 'input' => [ 'shape' => 'ListWirelessDevicesRequest', ], 'output' => [ 'shape' => 'ListWirelessDevicesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'ListWirelessGatewayTaskDefinitions' => [ 'name' => 'ListWirelessGatewayTaskDefinitions', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-gateway-task-definitions', ], 'input' => [ 'shape' => 'ListWirelessGatewayTaskDefinitionsRequest', ], 'output' => [ 'shape' => 'ListWirelessGatewayTaskDefinitionsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListWirelessGateways' => [ 'name' => 'ListWirelessGateways', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-gateways', ], 'input' => [ 'shape' => 'ListWirelessGatewaysRequest', ], 'output' => [ 'shape' => 'ListWirelessGatewaysResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'PutPositionConfiguration' => [ 'name' => 'PutPositionConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/position-configurations/{ResourceIdentifier}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutPositionConfigurationRequest', ], 'output' => [ 'shape' => 'PutPositionConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'PutResourceLogLevel' => [ 'name' => 'PutResourceLogLevel', 'http' => [ 'method' => 'PUT', 'requestUri' => '/log-levels/{ResourceIdentifier}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutResourceLogLevelRequest', ], 'output' => [ 'shape' => 'PutResourceLogLevelResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ValidationException', ], ], ], 'ResetAllResourceLogLevels' => [ 'name' => 'ResetAllResourceLogLevels', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/log-levels', 'responseCode' => 204, ], 'input' => [ 'shape' => 'ResetAllResourceLogLevelsRequest', ], 'output' => [ 'shape' => 'ResetAllResourceLogLevelsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ValidationException', ], ], ], 'ResetResourceLogLevel' => [ 'name' => 'ResetResourceLogLevel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/log-levels/{ResourceIdentifier}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'ResetResourceLogLevelRequest', ], 'output' => [ 'shape' => 'ResetResourceLogLevelResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ValidationException', ], ], ], 'SendDataToMulticastGroup' => [ 'name' => 'SendDataToMulticastGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/multicast-groups/{Id}/data', 'responseCode' => 201, ], 'input' => [ 'shape' => 'SendDataToMulticastGroupRequest', ], 'output' => [ 'shape' => 'SendDataToMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'SendDataToWirelessDevice' => [ 'name' => 'SendDataToWirelessDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/wireless-devices/{Id}/data', 'responseCode' => 202, ], 'input' => [ 'shape' => 'SendDataToWirelessDeviceRequest', ], 'output' => [ 'shape' => 'SendDataToWirelessDeviceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StartBulkAssociateWirelessDeviceWithMulticastGroup' => [ 'name' => 'StartBulkAssociateWirelessDeviceWithMulticastGroup', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/multicast-groups/{Id}/bulk', 'responseCode' => 204, ], 'input' => [ 'shape' => 'StartBulkAssociateWirelessDeviceWithMulticastGroupRequest', ], 'output' => [ 'shape' => 'StartBulkAssociateWirelessDeviceWithMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'StartBulkDisassociateWirelessDeviceFromMulticastGroup' => [ 'name' => 'StartBulkDisassociateWirelessDeviceFromMulticastGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/multicast-groups/{Id}/bulk', 'responseCode' => 204, ], 'input' => [ 'shape' => 'StartBulkDisassociateWirelessDeviceFromMulticastGroupRequest', ], 'output' => [ 'shape' => 'StartBulkDisassociateWirelessDeviceFromMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'StartFuotaTask' => [ 'name' => 'StartFuotaTask', 'http' => [ 'method' => 'PUT', 'requestUri' => '/fuota-tasks/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'StartFuotaTaskRequest', ], 'output' => [ 'shape' => 'StartFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StartMulticastGroupSession' => [ 'name' => 'StartMulticastGroupSession', 'http' => [ 'method' => 'PUT', 'requestUri' => '/multicast-groups/{Id}/session', 'responseCode' => 204, ], 'input' => [ 'shape' => 'StartMulticastGroupSessionRequest', ], 'output' => [ 'shape' => 'StartMulticastGroupSessionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'StartSingleWirelessDeviceImportTask' => [ 'name' => 'StartSingleWirelessDeviceImportTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/wireless_single_device_import_task', 'responseCode' => 201, ], 'input' => [ 'shape' => 'StartSingleWirelessDeviceImportTaskRequest', ], 'output' => [ 'shape' => 'StartSingleWirelessDeviceImportTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'StartWirelessDeviceImportTask' => [ 'name' => 'StartWirelessDeviceImportTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/wireless_device_import_task', 'responseCode' => 201, ], 'input' => [ 'shape' => 'StartWirelessDeviceImportTaskRequest', ], 'output' => [ 'shape' => 'StartWirelessDeviceImportTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tags', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'TooManyTagsException', ], ], ], 'TestWirelessDevice' => [ 'name' => 'TestWirelessDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/wireless-devices/{Id}/test', 'responseCode' => 200, ], 'input' => [ 'shape' => 'TestWirelessDeviceRequest', ], 'output' => [ 'shape' => 'TestWirelessDeviceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/tags', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateDestination' => [ 'name' => 'UpdateDestination', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/destinations/{Name}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateDestinationRequest', ], 'output' => [ 'shape' => 'UpdateDestinationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateEventConfigurationByResourceTypes' => [ 'name' => 'UpdateEventConfigurationByResourceTypes', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/event-configurations-resource-types', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateEventConfigurationByResourceTypesRequest', ], 'output' => [ 'shape' => 'UpdateEventConfigurationByResourceTypesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateFuotaTask' => [ 'name' => 'UpdateFuotaTask', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/fuota-tasks/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateFuotaTaskRequest', ], 'output' => [ 'shape' => 'UpdateFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateLogLevelsByResourceTypes' => [ 'name' => 'UpdateLogLevelsByResourceTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/log-levels', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateLogLevelsByResourceTypesRequest', ], 'output' => [ 'shape' => 'UpdateLogLevelsByResourceTypesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ValidationException', ], ], ], 'UpdateMetricConfiguration' => [ 'name' => 'UpdateMetricConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/metric-configuration', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateMetricConfigurationRequest', ], 'output' => [ 'shape' => 'UpdateMetricConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], 'idempotent' => true, ], 'UpdateMulticastGroup' => [ 'name' => 'UpdateMulticastGroup', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/multicast-groups/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateMulticastGroupRequest', ], 'output' => [ 'shape' => 'UpdateMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateNetworkAnalyzerConfiguration' => [ 'name' => 'UpdateNetworkAnalyzerConfiguration', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/network-analyzer-configurations/{ConfigurationName}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateNetworkAnalyzerConfigurationRequest', ], 'output' => [ 'shape' => 'UpdateNetworkAnalyzerConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdatePartnerAccount' => [ 'name' => 'UpdatePartnerAccount', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/partner-accounts/{PartnerAccountId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdatePartnerAccountRequest', ], 'output' => [ 'shape' => 'UpdatePartnerAccountResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdatePosition' => [ 'name' => 'UpdatePosition', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/positions/{ResourceIdentifier}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdatePositionRequest', ], 'output' => [ 'shape' => 'UpdatePositionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'UpdateResourceEventConfiguration' => [ 'name' => 'UpdateResourceEventConfiguration', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/event-configurations/{Identifier}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateResourceEventConfigurationRequest', ], 'output' => [ 'shape' => 'UpdateResourceEventConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateResourcePosition' => [ 'name' => 'UpdateResourcePosition', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/resource-positions/{ResourceIdentifier}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateResourcePositionRequest', ], 'output' => [ 'shape' => 'UpdateResourcePositionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateWirelessDevice' => [ 'name' => 'UpdateWirelessDevice', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/wireless-devices/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateWirelessDeviceRequest', ], 'output' => [ 'shape' => 'UpdateWirelessDeviceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateWirelessDeviceImportTask' => [ 'name' => 'UpdateWirelessDeviceImportTask', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/wireless_device_import_task/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateWirelessDeviceImportTaskRequest', ], 'output' => [ 'shape' => 'UpdateWirelessDeviceImportTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateWirelessGateway' => [ 'name' => 'UpdateWirelessGateway', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/wireless-gateways/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateWirelessGatewayRequest', ], 'output' => [ 'shape' => 'UpdateWirelessGatewayResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], ], 'shapes' => [ 'AbpV1_0_x' => [ 'type' => 'structure', 'members' => [ 'DevAddr' => [ 'shape' => 'DevAddr', ], 'SessionKeys' => [ 'shape' => 'SessionKeysAbpV1_0_x', ], 'FCntStart' => [ 'shape' => 'FCntStart', ], ], ], 'AbpV1_1' => [ 'type' => 'structure', 'members' => [ 'DevAddr' => [ 'shape' => 'DevAddr', ], 'SessionKeys' => [ 'shape' => 'SessionKeysAbpV1_1', ], 'FCntStart' => [ 'shape' => 'FCntStart', ], ], ], 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'AccountLinked' => [ 'type' => 'boolean', ], 'Accuracy' => [ 'type' => 'structure', 'members' => [ 'HorizontalAccuracy' => [ 'shape' => 'HorizontalAccuracy', ], 'VerticalAccuracy' => [ 'shape' => 'VerticalAccuracy', ], ], ], 'AckModeRetryDurationSecs' => [ 'type' => 'integer', 'max' => 604800, 'min' => 0, ], 'AddGwMetadata' => [ 'type' => 'boolean', ], 'AdvancedConfiguration' => [ 'type' => 'structure', 'members' => [ 'WiFiCellular' => [ 'shape' => 'WiFiCellular', ], ], ], 'AggregationPeriod' => [ 'type' => 'string', 'enum' => [ 'OneHour', 'OneDay', 'OneWeek', ], ], 'AmazonId' => [ 'type' => 'string', 'max' => 2048, ], 'AmazonResourceName' => [ 'type' => 'string', 'max' => 1011, 'min' => 1, ], 'ApId' => [ 'type' => 'string', 'max' => 256, ], 'AppEui' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{16}', ], 'AppKey' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{32}', ], 'AppSKey' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{32}', ], 'AppServerPrivateKey' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, 'pattern' => '[a-fA-F0-9]{64}', 'sensitive' => true, ], 'ApplicationConfig' => [ 'type' => 'structure', 'members' => [ 'FPort' => [ 'shape' => 'FPort', ], 'Type' => [ 'shape' => 'ApplicationConfigType', ], 'DestinationName' => [ 'shape' => 'DestinationName', ], ], ], 'ApplicationConfigType' => [ 'type' => 'string', 'enum' => [ 'SemtechGeolocation', ], ], 'ApplicationServerPublicKey' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, 'pattern' => '[a-fA-F0-9]{64}', 'sensitive' => true, ], 'Applications' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApplicationConfig', ], ], 'AssistPosition' => [ 'type' => 'list', 'member' => [ 'shape' => 'Coordinate', ], 'max' => 2, 'min' => 2, ], 'AssociateAwsAccountWithPartnerAccountRequest' => [ 'type' => 'structure', 'required' => [ 'Sidewalk', ], 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkAccountInfo', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'AssociateAwsAccountWithPartnerAccountResponse' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkAccountInfo', ], 'Arn' => [ 'shape' => 'PartnerAccountArn', ], ], ], 'AssociateMulticastGroupWithFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'MulticastGroupId', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], 'MulticastGroupId' => [ 'shape' => 'MulticastGroupId', ], ], ], 'AssociateMulticastGroupWithFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'AssociateWirelessDeviceWithFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'WirelessDeviceId', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], 'WirelessDeviceId' => [ 'shape' => 'WirelessDeviceId', ], ], ], 'AssociateWirelessDeviceWithFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'AssociateWirelessDeviceWithMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'WirelessDeviceId', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], 'WirelessDeviceId' => [ 'shape' => 'WirelessDeviceId', ], ], ], 'AssociateWirelessDeviceWithMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'AssociateWirelessDeviceWithThingRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'ThingArn', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], 'ThingArn' => [ 'shape' => 'ThingArn', ], ], ], 'AssociateWirelessDeviceWithThingResponse' => [ 'type' => 'structure', 'members' => [], ], 'AssociateWirelessGatewayWithCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'IotCertificateId', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], 'IotCertificateId' => [ 'shape' => 'IotCertificateId', ], ], ], 'AssociateWirelessGatewayWithCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'IotCertificateId' => [ 'shape' => 'IotCertificateId', ], ], ], 'AssociateWirelessGatewayWithThingRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'ThingArn', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], 'ThingArn' => [ 'shape' => 'ThingArn', ], ], ], 'AssociateWirelessGatewayWithThingResponse' => [ 'type' => 'structure', 'members' => [], ], 'AutoCreateTasks' => [ 'type' => 'boolean', ], 'Avg' => [ 'type' => 'double', ], 'BCCH' => [ 'type' => 'integer', 'max' => 1023, 'min' => 0, ], 'BSIC' => [ 'type' => 'integer', 'max' => 63, 'min' => 0, ], 'BaseLat' => [ 'type' => 'float', 'max' => 90, 'min' => -90, ], 'BaseLng' => [ 'type' => 'float', 'max' => 180, 'min' => -180, ], 'BaseStationId' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'BatteryLevel' => [ 'type' => 'string', 'enum' => [ 'normal', 'low', 'critical', ], ], 'Beaconing' => [ 'type' => 'structure', 'members' => [ 'DataRate' => [ 'shape' => 'BeaconingDataRate', ], 'Frequencies' => [ 'shape' => 'BeaconingFrequencies', ], ], ], 'BeaconingDataRate' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'BeaconingFrequencies' => [ 'type' => 'list', 'member' => [ 'shape' => 'BeaconingFrequency', ], 'max' => 10, 'min' => 0, ], 'BeaconingFrequency' => [ 'type' => 'integer', 'max' => 1000000000, 'min' => 100000000, ], 'CancelMulticastGroupSessionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'CancelMulticastGroupSessionResponse' => [ 'type' => 'structure', 'members' => [], ], 'CaptureTimeAccuracy' => [ 'type' => 'float', ], 'CdmaChannel' => [ 'type' => 'integer', 'max' => 4095, 'min' => 0, ], 'CdmaList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CdmaObj', ], 'max' => 16, 'min' => 1, ], 'CdmaLocalId' => [ 'type' => 'structure', 'required' => [ 'PnOffset', 'CdmaChannel', ], 'members' => [ 'PnOffset' => [ 'shape' => 'PnOffset', ], 'CdmaChannel' => [ 'shape' => 'CdmaChannel', ], ], ], 'CdmaNmrList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CdmaNmrObj', ], 'max' => 32, 'min' => 1, ], 'CdmaNmrObj' => [ 'type' => 'structure', 'required' => [ 'PnOffset', 'CdmaChannel', ], 'members' => [ 'PnOffset' => [ 'shape' => 'PnOffset', ], 'CdmaChannel' => [ 'shape' => 'CdmaChannel', ], 'PilotPower' => [ 'shape' => 'PilotPower', ], 'BaseStationId' => [ 'shape' => 'BaseStationId', ], ], ], 'CdmaObj' => [ 'type' => 'structure', 'required' => [ 'SystemId', 'NetworkId', 'BaseStationId', ], 'members' => [ 'SystemId' => [ 'shape' => 'SystemId', ], 'NetworkId' => [ 'shape' => 'NetworkId', ], 'BaseStationId' => [ 'shape' => 'BaseStationId', ], 'RegistrationZone' => [ 'shape' => 'RegistrationZone', ], 'CdmaLocalId' => [ 'shape' => 'CdmaLocalId', ], 'PilotPower' => [ 'shape' => 'PilotPower', ], 'BaseLat' => [ 'shape' => 'BaseLat', ], 'BaseLng' => [ 'shape' => 'BaseLng', ], 'CdmaNmr' => [ 'shape' => 'CdmaNmrList', ], ], ], 'CellParams' => [ 'type' => 'integer', 'max' => 127, 'min' => 0, ], 'CellTowers' => [ 'type' => 'structure', 'members' => [ 'Gsm' => [ 'shape' => 'GsmList', ], 'Wcdma' => [ 'shape' => 'WcdmaList', ], 'Tdscdma' => [ 'shape' => 'TdscdmaList', ], 'Lte' => [ 'shape' => 'LteList', ], 'Cdma' => [ 'shape' => 'CdmaList', ], ], ], 'CertificateList' => [ 'type' => 'structure', 'required' => [ 'SigningAlg', 'Value', ], 'members' => [ 'SigningAlg' => [ 'shape' => 'SigningAlg', ], 'Value' => [ 'shape' => 'CertificateValue', ], ], ], 'CertificatePEM' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, 'pattern' => '[^-A-Za-z0-9+/=]|=[^=]|={3,}${1,4096}', ], 'CertificateValue' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'ChannelMask' => [ 'type' => 'string', 'max' => 2048, ], 'ClassBTimeout' => [ 'type' => 'integer', 'max' => 1000, 'min' => 0, ], 'ClassCTimeout' => [ 'type' => 'integer', 'max' => 1000, 'min' => 0, ], 'ClientRequestToken' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[a-zA-Z0-9-_]+$', ], 'ConfidencePercent' => [ 'type' => 'integer', 'max' => 99, 'min' => 50, ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], 'ResourceId' => [ 'shape' => 'ResourceId', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ConnectionStatus' => [ 'type' => 'string', 'enum' => [ 'Connected', 'Disconnected', ], ], 'ConnectionStatusEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'LoRaWAN' => [ 'shape' => 'LoRaWANConnectionStatusEventNotificationConfigurations', ], 'WirelessGatewayIdEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'ConnectionStatusResourceTypeEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'LoRaWAN' => [ 'shape' => 'LoRaWANConnectionStatusResourceTypeEventConfiguration', ], ], ], 'Coordinate' => [ 'type' => 'float', ], 'Crc' => [ 'type' => 'long', 'max' => 4294967295, 'min' => 1, ], 'CreateDestinationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ExpressionType', 'Expression', 'RoleArn', ], 'members' => [ 'Name' => [ 'shape' => 'DestinationName', ], 'ExpressionType' => [ 'shape' => 'ExpressionType', ], 'Expression' => [ 'shape' => 'Expression', ], 'Description' => [ 'shape' => 'Description', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'Tags' => [ 'shape' => 'TagList', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'CreateDestinationResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'DestinationArn', ], 'Name' => [ 'shape' => 'DestinationName', ], ], ], 'CreateDeviceProfileRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'DeviceProfileName', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANDeviceProfile', ], 'Tags' => [ 'shape' => 'TagList', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'Sidewalk' => [ 'shape' => 'SidewalkCreateDeviceProfile', ], ], ], 'CreateDeviceProfileResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'DeviceProfileArn', ], 'Id' => [ 'shape' => 'DeviceProfileId', ], ], ], 'CreateFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'FirmwareUpdateImage', 'FirmwareUpdateRole', ], 'members' => [ 'Name' => [ 'shape' => 'FuotaTaskName', ], 'Description' => [ 'shape' => 'Description', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'LoRaWAN' => [ 'shape' => 'LoRaWANFuotaTask', ], 'FirmwareUpdateImage' => [ 'shape' => 'FirmwareUpdateImage', ], 'FirmwareUpdateRole' => [ 'shape' => 'FirmwareUpdateRole', ], 'Tags' => [ 'shape' => 'TagList', ], 'RedundancyPercent' => [ 'shape' => 'RedundancyPercent', ], 'FragmentSizeBytes' => [ 'shape' => 'FragmentSizeBytes', ], 'FragmentIntervalMS' => [ 'shape' => 'FragmentIntervalMS', ], 'Descriptor' => [ 'shape' => 'FileDescriptor', ], ], ], 'CreateFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'FuotaTaskArn', ], 'Id' => [ 'shape' => 'FuotaTaskId', ], ], ], 'CreateMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'LoRaWAN', ], 'members' => [ 'Name' => [ 'shape' => 'MulticastGroupName', ], 'Description' => [ 'shape' => 'Description', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'LoRaWAN' => [ 'shape' => 'LoRaWANMulticast', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'MulticastGroupArn', ], 'Id' => [ 'shape' => 'MulticastGroupId', ], ], ], 'CreateNetworkAnalyzerConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NetworkAnalyzerConfigurationName', ], 'TraceContent' => [ 'shape' => 'TraceContent', ], 'WirelessDevices' => [ 'shape' => 'WirelessDeviceList', ], 'WirelessGateways' => [ 'shape' => 'WirelessGatewayList', ], 'Description' => [ 'shape' => 'Description', ], 'Tags' => [ 'shape' => 'TagList', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'MulticastGroups' => [ 'shape' => 'NetworkAnalyzerMulticastGroupList', ], ], ], 'CreateNetworkAnalyzerConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'NetworkAnalyzerConfigurationArn', ], 'Name' => [ 'shape' => 'NetworkAnalyzerConfigurationName', ], ], ], 'CreateServiceProfileRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'ServiceProfileName', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANServiceProfile', ], 'Tags' => [ 'shape' => 'TagList', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'CreateServiceProfileResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'ServiceProfileArn', ], 'Id' => [ 'shape' => 'ServiceProfileId', ], ], ], 'CreateWirelessDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'Type', 'DestinationName', ], 'members' => [ 'Type' => [ 'shape' => 'WirelessDeviceType', ], 'Name' => [ 'shape' => 'WirelessDeviceName', ], 'Description' => [ 'shape' => 'Description', ], 'DestinationName' => [ 'shape' => 'DestinationName', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'LoRaWAN' => [ 'shape' => 'LoRaWANDevice', ], 'Tags' => [ 'shape' => 'TagList', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], 'Sidewalk' => [ 'shape' => 'SidewalkCreateWirelessDevice', ], ], ], 'CreateWirelessDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'WirelessDeviceArn', ], 'Id' => [ 'shape' => 'WirelessDeviceId', ], ], ], 'CreateWirelessGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'LoRaWAN', ], 'members' => [ 'Name' => [ 'shape' => 'WirelessGatewayName', ], 'Description' => [ 'shape' => 'Description', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANGateway', ], 'Tags' => [ 'shape' => 'TagList', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'CreateWirelessGatewayResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'WirelessGatewayArn', ], 'Id' => [ 'shape' => 'WirelessDeviceId', ], ], ], 'CreateWirelessGatewayTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'AutoCreateTasks', ], 'members' => [ 'AutoCreateTasks' => [ 'shape' => 'AutoCreateTasks', ], 'Name' => [ 'shape' => 'WirelessGatewayTaskName', ], 'Update' => [ 'shape' => 'UpdateWirelessGatewayTaskCreate', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateWirelessGatewayTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayTaskDefinitionId', ], 'Arn' => [ 'shape' => 'WirelessGatewayTaskDefinitionArn', ], ], ], 'CreateWirelessGatewayTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'WirelessGatewayTaskDefinitionId', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], 'WirelessGatewayTaskDefinitionId' => [ 'shape' => 'WirelessGatewayTaskDefinitionId', ], ], ], 'CreateWirelessGatewayTaskResponse' => [ 'type' => 'structure', 'members' => [ 'WirelessGatewayTaskDefinitionId' => [ 'shape' => 'WirelessGatewayTaskDefinitionId', ], 'Status' => [ 'shape' => 'WirelessGatewayTaskStatus', ], ], ], 'CreatedAt' => [ 'type' => 'timestamp', ], 'CreationDate' => [ 'type' => 'timestamp', ], 'CreationTime' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'DakCertificateId' => [ 'type' => 'string', 'max' => 256, ], 'DakCertificateMetadata' => [ 'type' => 'structure', 'required' => [ 'CertificateId', ], 'members' => [ 'CertificateId' => [ 'shape' => 'DakCertificateId', ], 'MaxAllowedSignature' => [ 'shape' => 'MaxAllowedSignature', ], 'FactorySupport' => [ 'shape' => 'FactorySupport', ], 'ApId' => [ 'shape' => 'ApId', ], 'DeviceTypeId' => [ 'shape' => 'DeviceTypeId', ], ], ], 'DakCertificateMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DakCertificateMetadata', ], ], 'DeleteDestinationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'DestinationName', 'location' => 'uri', 'locationName' => 'Name', ], ], ], 'DeleteDestinationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteDeviceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'DeviceProfileId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteDeviceProfileResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteNetworkAnalyzerConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationName', ], 'members' => [ 'ConfigurationName' => [ 'shape' => 'NetworkAnalyzerConfigurationName', 'location' => 'uri', 'locationName' => 'ConfigurationName', ], ], ], 'DeleteNetworkAnalyzerConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteQueuedMessagesRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'MessageId', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], 'MessageId' => [ 'shape' => 'MessageId', 'location' => 'querystring', 'locationName' => 'messageId', ], 'WirelessDeviceType' => [ 'shape' => 'WirelessDeviceType', 'location' => 'querystring', 'locationName' => 'WirelessDeviceType', ], ], ], 'DeleteQueuedMessagesResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteServiceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ServiceProfileId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteServiceProfileResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteWirelessDeviceImportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ImportTaskId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteWirelessDeviceImportTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteWirelessDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteWirelessDeviceResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteWirelessGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteWirelessGatewayResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteWirelessGatewayTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayTaskDefinitionId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteWirelessGatewayTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteWirelessGatewayTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteWirelessGatewayTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeregisterWirelessDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'Identifier', ], 'members' => [ 'Identifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'Identifier', ], 'WirelessDeviceType' => [ 'shape' => 'WirelessDeviceType', 'location' => 'querystring', 'locationName' => 'WirelessDeviceType', ], ], ], 'DeregisterWirelessDeviceResponse' => [ 'type' => 'structure', 'members' => [], ], 'Description' => [ 'type' => 'string', 'max' => 2048, ], 'DestinationArn' => [ 'type' => 'string', ], 'DestinationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Destinations', ], ], 'DestinationName' => [ 'type' => 'string', 'max' => 128, 'pattern' => '[a-zA-Z0-9-_]+', ], 'Destinations' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'DestinationArn', ], 'Name' => [ 'shape' => 'DestinationName', ], 'ExpressionType' => [ 'shape' => 'ExpressionType', ], 'Expression' => [ 'shape' => 'Expression', ], 'Description' => [ 'shape' => 'Description', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], ], ], 'DevAddr' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{8}', ], 'DevEui' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{16}', ], 'DevStatusReqFreq' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 0, ], 'DeviceCertificateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CertificateList', ], ], 'DeviceCreationFile' => [ 'type' => 'string', 'max' => 1024, ], 'DeviceCreationFileList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceCreationFile', ], ], 'DeviceName' => [ 'type' => 'string', ], 'DeviceProfile' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'DeviceProfileArn', ], 'Name' => [ 'shape' => 'DeviceProfileName', ], 'Id' => [ 'shape' => 'DeviceProfileId', ], ], ], 'DeviceProfileArn' => [ 'type' => 'string', ], 'DeviceProfileId' => [ 'type' => 'string', 'max' => 256, ], 'DeviceProfileList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceProfile', ], ], 'DeviceProfileName' => [ 'type' => 'string', 'max' => 256, ], 'DeviceProfileType' => [ 'type' => 'string', 'enum' => [ 'Sidewalk', 'LoRaWAN', ], ], 'DeviceRegistrationStateEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkEventNotificationConfigurations', ], 'WirelessDeviceIdEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'DeviceRegistrationStateResourceTypeEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkResourceTypeEventConfiguration', ], ], ], 'DeviceState' => [ 'type' => 'string', 'enum' => [ 'Provisioned', 'RegisteredNotSeen', 'RegisteredReachable', 'RegisteredUnreachable', ], ], 'DeviceTypeId' => [ 'type' => 'string', 'max' => 2048, ], 'Dimension' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'DimensionName', ], 'value' => [ 'shape' => 'DimensionValue', ], ], ], 'DimensionName' => [ 'type' => 'string', 'enum' => [ 'DeviceId', 'GatewayId', ], 'max' => 256, ], 'DimensionValue' => [ 'type' => 'string', 'max' => 256, ], 'Dimensions' => [ 'type' => 'list', 'member' => [ 'shape' => 'Dimension', ], ], 'DisassociateAwsAccountFromPartnerAccountRequest' => [ 'type' => 'structure', 'required' => [ 'PartnerAccountId', 'PartnerType', ], 'members' => [ 'PartnerAccountId' => [ 'shape' => 'PartnerAccountId', 'location' => 'uri', 'locationName' => 'PartnerAccountId', ], 'PartnerType' => [ 'shape' => 'PartnerType', 'location' => 'querystring', 'locationName' => 'partnerType', ], ], ], 'DisassociateAwsAccountFromPartnerAccountResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateMulticastGroupFromFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'MulticastGroupId', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], 'MulticastGroupId' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'MulticastGroupId', ], ], ], 'DisassociateMulticastGroupFromFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateWirelessDeviceFromFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'WirelessDeviceId', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], 'WirelessDeviceId' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'WirelessDeviceId', ], ], ], 'DisassociateWirelessDeviceFromFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateWirelessDeviceFromMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'WirelessDeviceId', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], 'WirelessDeviceId' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'WirelessDeviceId', ], ], ], 'DisassociateWirelessDeviceFromMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateWirelessDeviceFromThingRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DisassociateWirelessDeviceFromThingResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateWirelessGatewayFromCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DisassociateWirelessGatewayFromCertificateResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateWirelessGatewayFromThingRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DisassociateWirelessGatewayFromThingResponse' => [ 'type' => 'structure', 'members' => [], ], 'DlAllowed' => [ 'type' => 'boolean', ], 'DlBucketSize' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 0, ], 'DlClass' => [ 'type' => 'string', 'enum' => [ 'ClassB', 'ClassC', ], 'max' => 256, ], 'DlDr' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'DlFreq' => [ 'type' => 'integer', 'max' => 1000000000, 'min' => 100000000, ], 'DlRate' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 0, ], 'DlRatePolicy' => [ 'type' => 'string', 'max' => 256, ], 'Double' => [ 'type' => 'double', ], 'DownlinkFrequency' => [ 'type' => 'integer', 'max' => 1000000000, 'min' => 100000000, ], 'DownlinkMode' => [ 'type' => 'string', 'enum' => [ 'SEQUENTIAL', 'CONCURRENT', 'USING_UPLINK_GATEWAY', ], ], 'DownlinkQueueMessage' => [ 'type' => 'structure', 'members' => [ 'MessageId' => [ 'shape' => 'MessageId', ], 'TransmitMode' => [ 'shape' => 'TransmitMode', ], 'ReceivedAt' => [ 'shape' => 'ISODateTimeString', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANSendDataToDevice', ], ], ], 'DownlinkQueueMessagesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DownlinkQueueMessage', ], ], 'DrMax' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'DrMaxBox' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'DrMin' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'DrMinBox' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'EARFCN' => [ 'type' => 'integer', 'max' => 262143, 'min' => 0, ], 'EndPoint' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'EutranCid' => [ 'type' => 'integer', 'max' => 268435455, 'min' => 0, ], 'Event' => [ 'type' => 'string', 'enum' => [ 'discovered', 'lost', 'ack', 'nack', 'passthrough', ], ], 'EventConfigurationItem' => [ 'type' => 'structure', 'members' => [ 'Identifier' => [ 'shape' => 'Identifier', ], 'IdentifierType' => [ 'shape' => 'IdentifierType', ], 'PartnerType' => [ 'shape' => 'EventNotificationPartnerType', ], 'Events' => [ 'shape' => 'EventNotificationItemConfigurations', ], ], ], 'EventConfigurationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventConfigurationItem', ], ], 'EventNotificationItemConfigurations' => [ 'type' => 'structure', 'members' => [ 'DeviceRegistrationState' => [ 'shape' => 'DeviceRegistrationStateEventConfiguration', ], 'Proximity' => [ 'shape' => 'ProximityEventConfiguration', ], 'Join' => [ 'shape' => 'JoinEventConfiguration', ], 'ConnectionStatus' => [ 'shape' => 'ConnectionStatusEventConfiguration', ], 'MessageDeliveryStatus' => [ 'shape' => 'MessageDeliveryStatusEventConfiguration', ], ], ], 'EventNotificationPartnerType' => [ 'type' => 'string', 'enum' => [ 'Sidewalk', ], ], 'EventNotificationResourceType' => [ 'type' => 'string', 'enum' => [ 'SidewalkAccount', 'WirelessDevice', 'WirelessGateway', ], ], 'EventNotificationTopicStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'Expression' => [ 'type' => 'string', 'max' => 2048, ], 'ExpressionType' => [ 'type' => 'string', 'enum' => [ 'RuleName', 'MqttTopic', ], ], 'FCntStart' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'FNwkSIntKey' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{32}', ], 'FPort' => [ 'type' => 'integer', 'max' => 223, 'min' => 1, ], 'FPorts' => [ 'type' => 'structure', 'members' => [ 'Fuota' => [ 'shape' => 'FPort', ], 'Multicast' => [ 'shape' => 'FPort', ], 'ClockSync' => [ 'shape' => 'FPort', ], 'Positioning' => [ 'shape' => 'Positioning', ], 'Applications' => [ 'shape' => 'Applications', ], ], ], 'FactoryPresetFreqsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PresetFreq', ], 'max' => 20, 'min' => 0, ], 'FactorySupport' => [ 'type' => 'boolean', ], 'FileDescriptor' => [ 'type' => 'string', 'max' => 332, 'pattern' => '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$', ], 'Fingerprint' => [ 'type' => 'string', 'max' => 64, 'min' => 64, 'pattern' => '[a-fA-F0-9]{64}', 'sensitive' => true, ], 'FirmwareUpdateImage' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'FirmwareUpdateRole' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'FragmentIntervalMS' => [ 'type' => 'integer', 'min' => 1, ], 'FragmentSizeBytes' => [ 'type' => 'integer', 'min' => 1, ], 'FuotaDeviceStatus' => [ 'type' => 'string', 'enum' => [ 'Initial', 'Package_Not_Supported', 'FragAlgo_unsupported', 'Not_enough_memory', 'FragIndex_unsupported', 'Wrong_descriptor', 'SessionCnt_replay', 'MissingFrag', 'MemoryError', 'MICError', 'Successful', 'Device_exist_in_conflict_fuota_task', ], ], 'FuotaTask' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', ], 'Arn' => [ 'shape' => 'FuotaTaskArn', ], 'Name' => [ 'shape' => 'FuotaTaskName', ], ], ], 'FuotaTaskArn' => [ 'type' => 'string', 'max' => 128, ], 'FuotaTaskEvent' => [ 'type' => 'string', 'enum' => [ 'Fuota', ], ], 'FuotaTaskEventLogOption' => [ 'type' => 'structure', 'required' => [ 'Event', 'LogLevel', ], 'members' => [ 'Event' => [ 'shape' => 'FuotaTaskEvent', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], ], ], 'FuotaTaskEventLogOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FuotaTaskEventLogOption', ], ], 'FuotaTaskId' => [ 'type' => 'string', 'max' => 256, ], 'FuotaTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FuotaTask', ], ], 'FuotaTaskLogOption' => [ 'type' => 'structure', 'required' => [ 'Type', 'LogLevel', ], 'members' => [ 'Type' => [ 'shape' => 'FuotaTaskType', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], 'Events' => [ 'shape' => 'FuotaTaskEventLogOptionList', ], ], ], 'FuotaTaskLogOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FuotaTaskLogOption', ], ], 'FuotaTaskName' => [ 'type' => 'string', 'max' => 256, ], 'FuotaTaskStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'FuotaSession_Waiting', 'In_FuotaSession', 'FuotaDone', 'Delete_Waiting', ], ], 'FuotaTaskType' => [ 'type' => 'string', 'enum' => [ 'LoRaWAN', ], ], 'GPST' => [ 'type' => 'float', ], 'GatewayEui' => [ 'type' => 'string', 'pattern' => '^(([0-9A-Fa-f]{2}-){7}|([0-9A-Fa-f]{2}:){7}|([0-9A-Fa-f]{2}\\s){7}|([0-9A-Fa-f]{2}){7})([0-9A-Fa-f]{2})$', ], 'GatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GatewayListItem', ], ], 'GatewayListItem' => [ 'type' => 'structure', 'required' => [ 'GatewayId', 'DownlinkFrequency', ], 'members' => [ 'GatewayId' => [ 'shape' => 'WirelessGatewayId', ], 'DownlinkFrequency' => [ 'shape' => 'DownlinkFrequency', ], ], ], 'GatewayListMulticast' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessGatewayId', ], 'max' => 20, ], 'GatewayMaxEirp' => [ 'type' => 'float', 'max' => 30, 'min' => 0, ], 'GenAppKey' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{32}', ], 'GeoJsonPayload' => [ 'type' => 'blob', ], 'GeranCid' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'GetDestinationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'DestinationName', 'location' => 'uri', 'locationName' => 'Name', ], ], ], 'GetDestinationResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'DestinationArn', ], 'Name' => [ 'shape' => 'DestinationName', ], 'Expression' => [ 'shape' => 'Expression', ], 'ExpressionType' => [ 'shape' => 'ExpressionType', ], 'Description' => [ 'shape' => 'Description', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], ], ], 'GetDeviceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'DeviceProfileId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetDeviceProfileResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'DeviceProfileArn', ], 'Name' => [ 'shape' => 'DeviceProfileName', ], 'Id' => [ 'shape' => 'DeviceProfileId', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANDeviceProfile', ], 'Sidewalk' => [ 'shape' => 'SidewalkGetDeviceProfile', ], ], ], 'GetEventConfigurationByResourceTypesRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetEventConfigurationByResourceTypesResponse' => [ 'type' => 'structure', 'members' => [ 'DeviceRegistrationState' => [ 'shape' => 'DeviceRegistrationStateResourceTypeEventConfiguration', ], 'Proximity' => [ 'shape' => 'ProximityResourceTypeEventConfiguration', ], 'Join' => [ 'shape' => 'JoinResourceTypeEventConfiguration', ], 'ConnectionStatus' => [ 'shape' => 'ConnectionStatusResourceTypeEventConfiguration', ], 'MessageDeliveryStatus' => [ 'shape' => 'MessageDeliveryStatusResourceTypeEventConfiguration', ], ], ], 'GetFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'FuotaTaskArn', ], 'Id' => [ 'shape' => 'FuotaTaskId', ], 'Status' => [ 'shape' => 'FuotaTaskStatus', ], 'Name' => [ 'shape' => 'FuotaTaskName', ], 'Description' => [ 'shape' => 'Description', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANFuotaTaskGetInfo', ], 'FirmwareUpdateImage' => [ 'shape' => 'FirmwareUpdateImage', ], 'FirmwareUpdateRole' => [ 'shape' => 'FirmwareUpdateRole', ], 'CreatedAt' => [ 'shape' => 'CreatedAt', ], 'RedundancyPercent' => [ 'shape' => 'RedundancyPercent', ], 'FragmentSizeBytes' => [ 'shape' => 'FragmentSizeBytes', ], 'FragmentIntervalMS' => [ 'shape' => 'FragmentIntervalMS', ], 'Descriptor' => [ 'shape' => 'FileDescriptor', ], ], ], 'GetLogLevelsByResourceTypesRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetLogLevelsByResourceTypesResponse' => [ 'type' => 'structure', 'members' => [ 'DefaultLogLevel' => [ 'shape' => 'LogLevel', ], 'WirelessGatewayLogOptions' => [ 'shape' => 'WirelessGatewayLogOptionList', ], 'WirelessDeviceLogOptions' => [ 'shape' => 'WirelessDeviceLogOptionList', ], 'FuotaTaskLogOptions' => [ 'shape' => 'FuotaTaskLogOptionList', ], ], ], 'GetMetricConfigurationRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetMetricConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'SummaryMetric' => [ 'shape' => 'SummaryMetricConfiguration', ], ], ], 'GetMetricsRequest' => [ 'type' => 'structure', 'members' => [ 'SummaryMetricQueries' => [ 'shape' => 'SummaryMetricQueries', ], ], ], 'GetMetricsResponse' => [ 'type' => 'structure', 'members' => [ 'SummaryMetricQueryResults' => [ 'shape' => 'SummaryMetricQueryResults', ], ], ], 'GetMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'MulticastGroupArn', ], 'Id' => [ 'shape' => 'MulticastGroupId', ], 'Name' => [ 'shape' => 'MulticastGroupName', ], 'Description' => [ 'shape' => 'Description', ], 'Status' => [ 'shape' => 'MulticastGroupStatus', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANMulticastGet', ], 'CreatedAt' => [ 'shape' => 'CreatedAt', ], ], ], 'GetMulticastGroupSessionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetMulticastGroupSessionResponse' => [ 'type' => 'structure', 'members' => [ 'LoRaWAN' => [ 'shape' => 'LoRaWANMulticastSession', ], ], ], 'GetNetworkAnalyzerConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationName', ], 'members' => [ 'ConfigurationName' => [ 'shape' => 'NetworkAnalyzerConfigurationName', 'location' => 'uri', 'locationName' => 'ConfigurationName', ], ], ], 'GetNetworkAnalyzerConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'TraceContent' => [ 'shape' => 'TraceContent', ], 'WirelessDevices' => [ 'shape' => 'WirelessDeviceList', ], 'WirelessGateways' => [ 'shape' => 'WirelessGatewayList', ], 'Description' => [ 'shape' => 'Description', ], 'Arn' => [ 'shape' => 'NetworkAnalyzerConfigurationArn', ], 'Name' => [ 'shape' => 'NetworkAnalyzerConfigurationName', ], 'MulticastGroups' => [ 'shape' => 'NetworkAnalyzerMulticastGroupList', ], ], ], 'GetPartnerAccountRequest' => [ 'type' => 'structure', 'required' => [ 'PartnerAccountId', 'PartnerType', ], 'members' => [ 'PartnerAccountId' => [ 'shape' => 'PartnerAccountId', 'location' => 'uri', 'locationName' => 'PartnerAccountId', ], 'PartnerType' => [ 'shape' => 'PartnerType', 'location' => 'querystring', 'locationName' => 'partnerType', ], ], ], 'GetPartnerAccountResponse' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkAccountInfoWithFingerprint', ], 'AccountLinked' => [ 'shape' => 'AccountLinked', ], ], ], 'GetPositionConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'PositionResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'PositionResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'GetPositionConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'Solvers' => [ 'shape' => 'PositionSolverDetails', ], 'Destination' => [ 'shape' => 'DestinationName', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'GetPositionEstimateRequest' => [ 'type' => 'structure', 'members' => [ 'WiFiAccessPoints' => [ 'shape' => 'WiFiAccessPoints', ], 'CellTowers' => [ 'shape' => 'CellTowers', ], 'Ip' => [ 'shape' => 'Ip', ], 'Gnss' => [ 'shape' => 'Gnss', ], 'Timestamp' => [ 'shape' => 'CreationDate', ], 'AdvancedConfiguration' => [ 'shape' => 'AdvancedConfiguration', ], ], ], 'GetPositionEstimateResponse' => [ 'type' => 'structure', 'members' => [ 'GeoJsonPayload' => [ 'shape' => 'GeoJsonPayload', ], ], 'payload' => 'GeoJsonPayload', ], 'GetPositionRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'PositionResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'PositionResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'GetPositionResponse' => [ 'type' => 'structure', 'members' => [ 'Position' => [ 'shape' => 'PositionCoordinate', ], 'Accuracy' => [ 'shape' => 'Accuracy', ], 'SolverType' => [ 'shape' => 'PositionSolverType', ], 'SolverProvider' => [ 'shape' => 'PositionSolverProvider', ], 'SolverVersion' => [ 'shape' => 'PositionSolverVersion', ], 'Timestamp' => [ 'shape' => 'ISODateTimeString', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'GetResourceEventConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Identifier', 'IdentifierType', ], 'members' => [ 'Identifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'Identifier', ], 'IdentifierType' => [ 'shape' => 'IdentifierType', 'location' => 'querystring', 'locationName' => 'identifierType', ], 'PartnerType' => [ 'shape' => 'EventNotificationPartnerType', 'location' => 'querystring', 'locationName' => 'partnerType', ], ], ], 'GetResourceEventConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'DeviceRegistrationState' => [ 'shape' => 'DeviceRegistrationStateEventConfiguration', ], 'Proximity' => [ 'shape' => 'ProximityEventConfiguration', ], 'Join' => [ 'shape' => 'JoinEventConfiguration', ], 'ConnectionStatus' => [ 'shape' => 'ConnectionStatusEventConfiguration', ], 'MessageDeliveryStatus' => [ 'shape' => 'MessageDeliveryStatusEventConfiguration', ], ], ], 'GetResourceLogLevelRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'ResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'ResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], ], ], 'GetResourceLogLevelResponse' => [ 'type' => 'structure', 'members' => [ 'LogLevel' => [ 'shape' => 'LogLevel', ], ], ], 'GetResourcePositionRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'PositionResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'PositionResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], ], ], 'GetResourcePositionResponse' => [ 'type' => 'structure', 'members' => [ 'GeoJsonPayload' => [ 'shape' => 'GeoJsonPayload', ], ], 'payload' => 'GeoJsonPayload', ], 'GetServiceEndpointRequest' => [ 'type' => 'structure', 'members' => [ 'ServiceType' => [ 'shape' => 'WirelessGatewayServiceType', 'location' => 'querystring', 'locationName' => 'serviceType', ], ], ], 'GetServiceEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'ServiceType' => [ 'shape' => 'WirelessGatewayServiceType', ], 'ServiceEndpoint' => [ 'shape' => 'EndPoint', ], 'ServerTrust' => [ 'shape' => 'CertificatePEM', ], ], ], 'GetServiceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ServiceProfileId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetServiceProfileResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'ServiceProfileArn', ], 'Name' => [ 'shape' => 'ServiceProfileName', ], 'Id' => [ 'shape' => 'ServiceProfileId', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANGetServiceProfileInfo', ], ], ], 'GetWirelessDeviceImportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ImportTaskId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetWirelessDeviceImportTaskResponse' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ImportTaskId', ], 'Arn' => [ 'shape' => 'ImportTaskArn', ], 'DestinationName' => [ 'shape' => 'DestinationName', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], 'Sidewalk' => [ 'shape' => 'SidewalkGetStartImportInfo', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'Status' => [ 'shape' => 'ImportTaskStatus', ], 'StatusReason' => [ 'shape' => 'StatusReason', ], 'InitializedImportedDeviceCount' => [ 'shape' => 'ImportedWirelessDeviceCount', ], 'PendingImportedDeviceCount' => [ 'shape' => 'ImportedWirelessDeviceCount', ], 'OnboardedImportedDeviceCount' => [ 'shape' => 'ImportedWirelessDeviceCount', ], 'FailedImportedDeviceCount' => [ 'shape' => 'ImportedWirelessDeviceCount', ], ], ], 'GetWirelessDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'Identifier', 'IdentifierType', ], 'members' => [ 'Identifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'Identifier', ], 'IdentifierType' => [ 'shape' => 'WirelessDeviceIdType', 'location' => 'querystring', 'locationName' => 'identifierType', ], ], ], 'GetWirelessDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'WirelessDeviceType', ], 'Name' => [ 'shape' => 'WirelessDeviceName', ], 'Description' => [ 'shape' => 'Description', ], 'DestinationName' => [ 'shape' => 'DestinationName', ], 'Id' => [ 'shape' => 'WirelessDeviceId', ], 'Arn' => [ 'shape' => 'WirelessDeviceArn', ], 'ThingName' => [ 'shape' => 'ThingName', ], 'ThingArn' => [ 'shape' => 'ThingArn', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANDevice', ], 'Sidewalk' => [ 'shape' => 'SidewalkDevice', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], ], ], 'GetWirelessDeviceStatisticsRequest' => [ 'type' => 'structure', 'required' => [ 'WirelessDeviceId', ], 'members' => [ 'WirelessDeviceId' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetWirelessDeviceStatisticsResponse' => [ 'type' => 'structure', 'members' => [ 'WirelessDeviceId' => [ 'shape' => 'WirelessDeviceId', ], 'LastUplinkReceivedAt' => [ 'shape' => 'ISODateTimeString', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANDeviceMetadata', ], 'Sidewalk' => [ 'shape' => 'SidewalkDeviceMetadata', ], ], ], 'GetWirelessGatewayCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetWirelessGatewayCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'IotCertificateId' => [ 'shape' => 'IotCertificateId', ], 'LoRaWANNetworkServerCertificateId' => [ 'shape' => 'IotCertificateId', ], ], ], 'GetWirelessGatewayFirmwareInformationRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetWirelessGatewayFirmwareInformationResponse' => [ 'type' => 'structure', 'members' => [ 'LoRaWAN' => [ 'shape' => 'LoRaWANGatewayCurrentVersion', ], ], ], 'GetWirelessGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'Identifier', 'IdentifierType', ], 'members' => [ 'Identifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'Identifier', ], 'IdentifierType' => [ 'shape' => 'WirelessGatewayIdType', 'location' => 'querystring', 'locationName' => 'identifierType', ], ], ], 'GetWirelessGatewayResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'WirelessGatewayName', ], 'Id' => [ 'shape' => 'WirelessGatewayId', ], 'Description' => [ 'shape' => 'Description', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANGateway', ], 'Arn' => [ 'shape' => 'WirelessGatewayArn', ], 'ThingName' => [ 'shape' => 'ThingName', ], 'ThingArn' => [ 'shape' => 'ThingArn', ], ], ], 'GetWirelessGatewayStatisticsRequest' => [ 'type' => 'structure', 'required' => [ 'WirelessGatewayId', ], 'members' => [ 'WirelessGatewayId' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetWirelessGatewayStatisticsResponse' => [ 'type' => 'structure', 'members' => [ 'WirelessGatewayId' => [ 'shape' => 'WirelessGatewayId', ], 'LastUplinkReceivedAt' => [ 'shape' => 'ISODateTimeString', ], 'ConnectionStatus' => [ 'shape' => 'ConnectionStatus', ], ], ], 'GetWirelessGatewayTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayTaskDefinitionId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetWirelessGatewayTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'AutoCreateTasks' => [ 'shape' => 'AutoCreateTasks', ], 'Name' => [ 'shape' => 'WirelessGatewayTaskName', ], 'Update' => [ 'shape' => 'UpdateWirelessGatewayTaskCreate', ], 'Arn' => [ 'shape' => 'WirelessGatewayTaskDefinitionArn', ], ], ], 'GetWirelessGatewayTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetWirelessGatewayTaskResponse' => [ 'type' => 'structure', 'members' => [ 'WirelessGatewayId' => [ 'shape' => 'WirelessGatewayId', ], 'WirelessGatewayTaskDefinitionId' => [ 'shape' => 'WirelessGatewayTaskDefinitionId', ], 'LastUplinkReceivedAt' => [ 'shape' => 'ISODateTimeString', ], 'TaskCreatedAt' => [ 'shape' => 'ISODateTimeString', ], 'Status' => [ 'shape' => 'WirelessGatewayTaskStatus', ], ], ], 'GlobalIdentity' => [ 'type' => 'structure', 'required' => [ 'Lac', 'GeranCid', ], 'members' => [ 'Lac' => [ 'shape' => 'LAC', ], 'GeranCid' => [ 'shape' => 'GeranCid', ], ], ], 'Gnss' => [ 'type' => 'structure', 'required' => [ 'Payload', ], 'members' => [ 'Payload' => [ 'shape' => 'GnssNav', ], 'CaptureTime' => [ 'shape' => 'GPST', ], 'CaptureTimeAccuracy' => [ 'shape' => 'CaptureTimeAccuracy', ], 'AssistPosition' => [ 'shape' => 'AssistPosition', ], 'AssistAltitude' => [ 'shape' => 'Coordinate', ], 'Use2DSolver' => [ 'shape' => 'Use2DSolver', ], ], ], 'GnssNav' => [ 'type' => 'string', 'max' => 2048, ], 'GsmList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GsmObj', ], 'max' => 16, 'min' => 1, ], 'GsmLocalId' => [ 'type' => 'structure', 'required' => [ 'Bsic', 'Bcch', ], 'members' => [ 'Bsic' => [ 'shape' => 'BSIC', ], 'Bcch' => [ 'shape' => 'BCCH', ], ], ], 'GsmNmrList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GsmNmrObj', ], 'max' => 32, 'min' => 1, ], 'GsmNmrObj' => [ 'type' => 'structure', 'required' => [ 'Bsic', 'Bcch', ], 'members' => [ 'Bsic' => [ 'shape' => 'BSIC', ], 'Bcch' => [ 'shape' => 'BCCH', ], 'RxLevel' => [ 'shape' => 'RxLevel', ], 'GlobalIdentity' => [ 'shape' => 'GlobalIdentity', ], ], ], 'GsmObj' => [ 'type' => 'structure', 'required' => [ 'Mcc', 'Mnc', 'Lac', 'GeranCid', ], 'members' => [ 'Mcc' => [ 'shape' => 'MCC', ], 'Mnc' => [ 'shape' => 'MNC', ], 'Lac' => [ 'shape' => 'LAC', ], 'GeranCid' => [ 'shape' => 'GeranCid', ], 'GsmLocalId' => [ 'shape' => 'GsmLocalId', ], 'GsmTimingAdvance' => [ 'shape' => 'GsmTimingAdvance', ], 'RxLevel' => [ 'shape' => 'RxLevel', ], 'GsmNmr' => [ 'shape' => 'GsmNmrList', ], ], ], 'GsmTimingAdvance' => [ 'type' => 'integer', 'max' => 63, 'min' => 0, ], 'HorizontalAccuracy' => [ 'type' => 'float', 'min' => 0, ], 'HrAllowed' => [ 'type' => 'boolean', ], 'IPAddress' => [ 'type' => 'string', ], 'ISODateTimeString' => [ 'type' => 'string', 'pattern' => '^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$', ], 'Id' => [ 'type' => 'string', 'max' => 256, ], 'Identifier' => [ 'type' => 'string', 'max' => 256, ], 'IdentifierType' => [ 'type' => 'string', 'enum' => [ 'PartnerAccountId', 'DevEui', 'GatewayEui', 'WirelessDeviceId', 'WirelessGatewayId', ], ], 'ImportTaskArn' => [ 'type' => 'string', 'max' => 128, ], 'ImportTaskId' => [ 'type' => 'string', 'max' => 256, ], 'ImportTaskStatus' => [ 'type' => 'string', 'enum' => [ 'INITIALIZING', 'INITIALIZED', 'PENDING', 'COMPLETE', 'FAILED', 'DELETING', ], ], 'ImportedSidewalkDevice' => [ 'type' => 'structure', 'members' => [ 'SidewalkManufacturingSn' => [ 'shape' => 'SidewalkManufacturingSn', ], 'OnboardingStatus' => [ 'shape' => 'OnboardStatus', ], 'OnboardingStatusReason' => [ 'shape' => 'OnboardStatusReason', ], 'LastUpdateTime' => [ 'shape' => 'LastUpdateTime', ], ], ], 'ImportedWirelessDevice' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'ImportedSidewalkDevice', ], ], ], 'ImportedWirelessDeviceCount' => [ 'type' => 'long', ], 'ImportedWirelessDeviceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportedWirelessDevice', ], ], 'Integer' => [ 'type' => 'integer', ], 'InternalServerException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'IotCertificateId' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'Ip' => [ 'type' => 'structure', 'required' => [ 'IpAddress', ], 'members' => [ 'IpAddress' => [ 'shape' => 'IPAddress', ], ], ], 'JoinEui' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{16}', ], 'JoinEuiFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'JoinEuiRange', ], 'max' => 3, 'min' => 0, ], 'JoinEuiRange' => [ 'type' => 'list', 'member' => [ 'shape' => 'JoinEui', ], 'max' => 2, 'min' => 2, ], 'JoinEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'LoRaWAN' => [ 'shape' => 'LoRaWANJoinEventNotificationConfigurations', ], 'WirelessDeviceIdEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'JoinResourceTypeEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'LoRaWAN' => [ 'shape' => 'LoRaWANJoinResourceTypeEventConfiguration', ], ], ], 'LAC' => [ 'type' => 'integer', 'max' => 65535, 'min' => 1, ], 'LastUpdateTime' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'ListDestinationsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListDestinationsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'DestinationList' => [ 'shape' => 'DestinationList', ], ], ], 'ListDeviceProfilesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'DeviceProfileType' => [ 'shape' => 'DeviceProfileType', 'location' => 'querystring', 'locationName' => 'deviceProfileType', ], ], ], 'ListDeviceProfilesResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'DeviceProfileList' => [ 'shape' => 'DeviceProfileList', ], ], ], 'ListDevicesForWirelessDeviceImportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ImportTaskId', 'location' => 'querystring', 'locationName' => 'id', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'Status' => [ 'shape' => 'OnboardStatus', 'location' => 'querystring', 'locationName' => 'status', ], ], ], 'ListDevicesForWirelessDeviceImportTaskResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'DestinationName' => [ 'shape' => 'DestinationName', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], 'Sidewalk' => [ 'shape' => 'SidewalkListDevicesForImportInfo', ], 'ImportedWirelessDeviceList' => [ 'shape' => 'ImportedWirelessDeviceList', ], ], ], 'ListEventConfigurationsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceType', ], 'members' => [ 'ResourceType' => [ 'shape' => 'EventNotificationResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListEventConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'EventConfigurationsList' => [ 'shape' => 'EventConfigurationsList', ], ], ], 'ListFuotaTasksRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListFuotaTasksResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'FuotaTaskList' => [ 'shape' => 'FuotaTaskList', ], ], ], 'ListMulticastGroupsByFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListMulticastGroupsByFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MulticastGroupList' => [ 'shape' => 'MulticastGroupListByFuotaTask', ], ], ], 'ListMulticastGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListMulticastGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MulticastGroupList' => [ 'shape' => 'MulticastGroupList', ], ], ], 'ListNetworkAnalyzerConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListNetworkAnalyzerConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'NetworkAnalyzerConfigurationList' => [ 'shape' => 'NetworkAnalyzerConfigurationList', ], ], ], 'ListPartnerAccountsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListPartnerAccountsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'Sidewalk' => [ 'shape' => 'SidewalkAccountList', ], ], ], 'ListPositionConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'PositionResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'ListPositionConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'PositionConfigurationList' => [ 'shape' => 'PositionConfigurationList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'ListQueuedMessagesRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'WirelessDeviceType' => [ 'shape' => 'WirelessDeviceType', 'location' => 'querystring', 'locationName' => 'WirelessDeviceType', ], ], ], 'ListQueuedMessagesResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'DownlinkQueueMessagesList' => [ 'shape' => 'DownlinkQueueMessagesList', ], ], ], 'ListServiceProfilesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListServiceProfilesResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'ServiceProfileList' => [ 'shape' => 'ServiceProfileList', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'AmazonResourceName', 'location' => 'querystring', 'locationName' => 'resourceArn', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], ], ], 'ListWirelessDeviceImportTasksRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListWirelessDeviceImportTasksResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'WirelessDeviceImportTaskList' => [ 'shape' => 'WirelessDeviceImportTaskList', ], ], ], 'ListWirelessDevicesRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'DestinationName' => [ 'shape' => 'DestinationName', 'location' => 'querystring', 'locationName' => 'destinationName', ], 'DeviceProfileId' => [ 'shape' => 'DeviceProfileId', 'location' => 'querystring', 'locationName' => 'deviceProfileId', ], 'ServiceProfileId' => [ 'shape' => 'ServiceProfileId', 'location' => 'querystring', 'locationName' => 'serviceProfileId', ], 'WirelessDeviceType' => [ 'shape' => 'WirelessDeviceType', 'location' => 'querystring', 'locationName' => 'wirelessDeviceType', ], 'FuotaTaskId' => [ 'shape' => 'FuotaTaskId', 'location' => 'querystring', 'locationName' => 'fuotaTaskId', ], 'MulticastGroupId' => [ 'shape' => 'MulticastGroupId', 'location' => 'querystring', 'locationName' => 'multicastGroupId', ], ], ], 'ListWirelessDevicesResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'WirelessDeviceList' => [ 'shape' => 'WirelessDeviceStatisticsList', ], ], ], 'ListWirelessGatewayTaskDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'TaskDefinitionType' => [ 'shape' => 'WirelessGatewayTaskDefinitionType', 'location' => 'querystring', 'locationName' => 'taskDefinitionType', ], ], ], 'ListWirelessGatewayTaskDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'TaskDefinitions' => [ 'shape' => 'WirelessGatewayTaskDefinitionList', ], ], ], 'ListWirelessGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListWirelessGatewaysResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'WirelessGatewayList' => [ 'shape' => 'WirelessGatewayStatisticsList', ], ], ], 'LoRaWANConnectionStatusEventNotificationConfigurations' => [ 'type' => 'structure', 'members' => [ 'GatewayEuiEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'LoRaWANConnectionStatusResourceTypeEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'WirelessGatewayEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'LoRaWANDevice' => [ 'type' => 'structure', 'members' => [ 'DevEui' => [ 'shape' => 'DevEui', ], 'DeviceProfileId' => [ 'shape' => 'DeviceProfileId', ], 'ServiceProfileId' => [ 'shape' => 'ServiceProfileId', ], 'OtaaV1_1' => [ 'shape' => 'OtaaV1_1', ], 'OtaaV1_0_x' => [ 'shape' => 'OtaaV1_0_x', ], 'AbpV1_1' => [ 'shape' => 'AbpV1_1', ], 'AbpV1_0_x' => [ 'shape' => 'AbpV1_0_x', ], 'FPorts' => [ 'shape' => 'FPorts', ], ], ], 'LoRaWANDeviceMetadata' => [ 'type' => 'structure', 'members' => [ 'DevEui' => [ 'shape' => 'DevEui', ], 'FPort' => [ 'shape' => 'Integer', ], 'DataRate' => [ 'shape' => 'Integer', ], 'Frequency' => [ 'shape' => 'Integer', ], 'Timestamp' => [ 'shape' => 'ISODateTimeString', ], 'Gateways' => [ 'shape' => 'LoRaWANGatewayMetadataList', ], 'PublicGateways' => [ 'shape' => 'LoRaWANPublicGatewayMetadataList', ], ], ], 'LoRaWANDeviceProfile' => [ 'type' => 'structure', 'members' => [ 'SupportsClassB' => [ 'shape' => 'SupportsClassB', ], 'ClassBTimeout' => [ 'shape' => 'ClassBTimeout', ], 'PingSlotPeriod' => [ 'shape' => 'PingSlotPeriod', ], 'PingSlotDr' => [ 'shape' => 'PingSlotDr', ], 'PingSlotFreq' => [ 'shape' => 'PingSlotFreq', ], 'SupportsClassC' => [ 'shape' => 'SupportsClassC', ], 'ClassCTimeout' => [ 'shape' => 'ClassCTimeout', ], 'MacVersion' => [ 'shape' => 'MacVersion', ], 'RegParamsRevision' => [ 'shape' => 'RegParamsRevision', ], 'RxDelay1' => [ 'shape' => 'RxDelay1', ], 'RxDrOffset1' => [ 'shape' => 'RxDrOffset1', ], 'RxDataRate2' => [ 'shape' => 'RxDataRate2', ], 'RxFreq2' => [ 'shape' => 'RxFreq2', ], 'FactoryPresetFreqsList' => [ 'shape' => 'FactoryPresetFreqsList', ], 'MaxEirp' => [ 'shape' => 'MaxEirp', ], 'MaxDutyCycle' => [ 'shape' => 'MaxDutyCycle', ], 'RfRegion' => [ 'shape' => 'RfRegion', ], 'SupportsJoin' => [ 'shape' => 'SupportsJoin', ], 'Supports32BitFCnt' => [ 'shape' => 'Supports32BitFCnt', ], ], ], 'LoRaWANFuotaTask' => [ 'type' => 'structure', 'members' => [ 'RfRegion' => [ 'shape' => 'SupportedRfRegion', ], ], ], 'LoRaWANFuotaTaskGetInfo' => [ 'type' => 'structure', 'members' => [ 'RfRegion' => [ 'shape' => 'RfRegion', ], 'StartTime' => [ 'shape' => 'StartTime', ], ], ], 'LoRaWANGateway' => [ 'type' => 'structure', 'members' => [ 'GatewayEui' => [ 'shape' => 'GatewayEui', ], 'RfRegion' => [ 'shape' => 'RfRegion', ], 'JoinEuiFilters' => [ 'shape' => 'JoinEuiFilters', ], 'NetIdFilters' => [ 'shape' => 'NetIdFilters', ], 'SubBands' => [ 'shape' => 'SubBands', ], 'Beaconing' => [ 'shape' => 'Beaconing', ], 'MaxEirp' => [ 'shape' => 'GatewayMaxEirp', ], ], ], 'LoRaWANGatewayCurrentVersion' => [ 'type' => 'structure', 'members' => [ 'CurrentVersion' => [ 'shape' => 'LoRaWANGatewayVersion', ], ], ], 'LoRaWANGatewayMetadata' => [ 'type' => 'structure', 'members' => [ 'GatewayEui' => [ 'shape' => 'GatewayEui', ], 'Snr' => [ 'shape' => 'Double', ], 'Rssi' => [ 'shape' => 'Double', ], ], ], 'LoRaWANGatewayMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoRaWANGatewayMetadata', ], ], 'LoRaWANGatewayVersion' => [ 'type' => 'structure', 'members' => [ 'PackageVersion' => [ 'shape' => 'PackageVersion', ], 'Model' => [ 'shape' => 'Model', ], 'Station' => [ 'shape' => 'Station', ], ], ], 'LoRaWANGetServiceProfileInfo' => [ 'type' => 'structure', 'members' => [ 'UlRate' => [ 'shape' => 'UlRate', ], 'UlBucketSize' => [ 'shape' => 'UlBucketSize', ], 'UlRatePolicy' => [ 'shape' => 'UlRatePolicy', ], 'DlRate' => [ 'shape' => 'DlRate', ], 'DlBucketSize' => [ 'shape' => 'DlBucketSize', ], 'DlRatePolicy' => [ 'shape' => 'DlRatePolicy', ], 'AddGwMetadata' => [ 'shape' => 'AddGwMetadata', ], 'DevStatusReqFreq' => [ 'shape' => 'DevStatusReqFreq', ], 'ReportDevStatusBattery' => [ 'shape' => 'ReportDevStatusBattery', ], 'ReportDevStatusMargin' => [ 'shape' => 'ReportDevStatusMargin', ], 'DrMin' => [ 'shape' => 'DrMin', ], 'DrMax' => [ 'shape' => 'DrMax', ], 'ChannelMask' => [ 'shape' => 'ChannelMask', ], 'PrAllowed' => [ 'shape' => 'PrAllowed', ], 'HrAllowed' => [ 'shape' => 'HrAllowed', ], 'RaAllowed' => [ 'shape' => 'RaAllowed', ], 'NwkGeoLoc' => [ 'shape' => 'NwkGeoLoc', ], 'TargetPer' => [ 'shape' => 'TargetPer', ], 'MinGwDiversity' => [ 'shape' => 'MinGwDiversity', ], 'TxPowerIndexMin' => [ 'shape' => 'TxPowerIndexMin', ], 'TxPowerIndexMax' => [ 'shape' => 'TxPowerIndexMax', ], 'NbTransMin' => [ 'shape' => 'NbTransMin', ], 'NbTransMax' => [ 'shape' => 'NbTransMax', ], ], ], 'LoRaWANJoinEventNotificationConfigurations' => [ 'type' => 'structure', 'members' => [ 'DevEuiEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'LoRaWANJoinResourceTypeEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'WirelessDeviceEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'LoRaWANListDevice' => [ 'type' => 'structure', 'members' => [ 'DevEui' => [ 'shape' => 'DevEui', ], ], ], 'LoRaWANMulticast' => [ 'type' => 'structure', 'members' => [ 'RfRegion' => [ 'shape' => 'SupportedRfRegion', ], 'DlClass' => [ 'shape' => 'DlClass', ], 'ParticipatingGateways' => [ 'shape' => 'ParticipatingGatewaysMulticast', ], ], ], 'LoRaWANMulticastGet' => [ 'type' => 'structure', 'members' => [ 'RfRegion' => [ 'shape' => 'SupportedRfRegion', ], 'DlClass' => [ 'shape' => 'DlClass', ], 'NumberOfDevicesRequested' => [ 'shape' => 'NumberOfDevicesRequested', ], 'NumberOfDevicesInGroup' => [ 'shape' => 'NumberOfDevicesInGroup', ], 'ParticipatingGateways' => [ 'shape' => 'ParticipatingGatewaysMulticast', ], ], ], 'LoRaWANMulticastMetadata' => [ 'type' => 'structure', 'members' => [ 'FPort' => [ 'shape' => 'FPort', ], ], ], 'LoRaWANMulticastSession' => [ 'type' => 'structure', 'members' => [ 'DlDr' => [ 'shape' => 'DlDr', ], 'DlFreq' => [ 'shape' => 'DlFreq', ], 'SessionStartTime' => [ 'shape' => 'SessionStartTimeTimestamp', ], 'SessionTimeout' => [ 'shape' => 'SessionTimeout', ], 'PingSlotPeriod' => [ 'shape' => 'PingSlotPeriod', ], ], ], 'LoRaWANPublicGatewayMetadata' => [ 'type' => 'structure', 'members' => [ 'ProviderNetId' => [ 'shape' => 'ProviderNetId', ], 'Id' => [ 'shape' => 'Id', ], 'Rssi' => [ 'shape' => 'Double', ], 'Snr' => [ 'shape' => 'Double', ], 'RfRegion' => [ 'shape' => 'RfRegion', ], 'DlAllowed' => [ 'shape' => 'DlAllowed', ], ], ], 'LoRaWANPublicGatewayMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoRaWANPublicGatewayMetadata', ], ], 'LoRaWANSendDataToDevice' => [ 'type' => 'structure', 'members' => [ 'FPort' => [ 'shape' => 'FPort', ], 'ParticipatingGateways' => [ 'shape' => 'ParticipatingGateways', ], ], ], 'LoRaWANServiceProfile' => [ 'type' => 'structure', 'members' => [ 'AddGwMetadata' => [ 'shape' => 'AddGwMetadata', ], 'DrMin' => [ 'shape' => 'DrMinBox', ], 'DrMax' => [ 'shape' => 'DrMaxBox', ], 'PrAllowed' => [ 'shape' => 'PrAllowed', ], 'RaAllowed' => [ 'shape' => 'RaAllowed', ], 'TxPowerIndexMin' => [ 'shape' => 'TxPowerIndexMin', ], 'TxPowerIndexMax' => [ 'shape' => 'TxPowerIndexMax', ], 'NbTransMin' => [ 'shape' => 'NbTransMin', ], 'NbTransMax' => [ 'shape' => 'NbTransMax', ], ], ], 'LoRaWANStartFuotaTask' => [ 'type' => 'structure', 'members' => [ 'StartTime' => [ 'shape' => 'StartTime', ], ], ], 'LoRaWANUpdateDevice' => [ 'type' => 'structure', 'members' => [ 'DeviceProfileId' => [ 'shape' => 'DeviceProfileId', ], 'ServiceProfileId' => [ 'shape' => 'ServiceProfileId', ], 'AbpV1_1' => [ 'shape' => 'UpdateAbpV1_1', ], 'AbpV1_0_x' => [ 'shape' => 'UpdateAbpV1_0_x', ], 'FPorts' => [ 'shape' => 'UpdateFPorts', ], ], ], 'LoRaWANUpdateGatewayTaskCreate' => [ 'type' => 'structure', 'members' => [ 'UpdateSignature' => [ 'shape' => 'UpdateSignature', ], 'SigKeyCrc' => [ 'shape' => 'Crc', ], 'CurrentVersion' => [ 'shape' => 'LoRaWANGatewayVersion', ], 'UpdateVersion' => [ 'shape' => 'LoRaWANGatewayVersion', ], ], ], 'LoRaWANUpdateGatewayTaskEntry' => [ 'type' => 'structure', 'members' => [ 'CurrentVersion' => [ 'shape' => 'LoRaWANGatewayVersion', ], 'UpdateVersion' => [ 'shape' => 'LoRaWANGatewayVersion', ], ], ], 'LogLevel' => [ 'type' => 'string', 'enum' => [ 'INFO', 'ERROR', 'DISABLED', ], ], 'LteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LteObj', ], 'max' => 16, 'min' => 1, ], 'LteLocalId' => [ 'type' => 'structure', 'required' => [ 'Pci', 'Earfcn', ], 'members' => [ 'Pci' => [ 'shape' => 'PCI', ], 'Earfcn' => [ 'shape' => 'EARFCN', ], ], ], 'LteNmrList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LteNmrObj', ], 'max' => 32, 'min' => 1, ], 'LteNmrObj' => [ 'type' => 'structure', 'required' => [ 'Pci', 'Earfcn', ], 'members' => [ 'Pci' => [ 'shape' => 'PCI', ], 'Earfcn' => [ 'shape' => 'EARFCN', ], 'EutranCid' => [ 'shape' => 'EutranCid', ], 'Rsrp' => [ 'shape' => 'RSRP', ], 'Rsrq' => [ 'shape' => 'RSRQ', ], ], ], 'LteObj' => [ 'type' => 'structure', 'required' => [ 'Mcc', 'Mnc', 'EutranCid', ], 'members' => [ 'Mcc' => [ 'shape' => 'MCC', ], 'Mnc' => [ 'shape' => 'MNC', ], 'EutranCid' => [ 'shape' => 'EutranCid', ], 'Tac' => [ 'shape' => 'TAC', ], 'LteLocalId' => [ 'shape' => 'LteLocalId', ], 'LteTimingAdvance' => [ 'shape' => 'LteTimingAdvance', ], 'Rsrp' => [ 'shape' => 'RSRP', ], 'Rsrq' => [ 'shape' => 'RSRQ', ], 'NrCapable' => [ 'shape' => 'NRCapable', ], 'LteNmr' => [ 'shape' => 'LteNmrList', ], ], ], 'LteTimingAdvance' => [ 'type' => 'integer', 'max' => 1282, 'min' => 0, ], 'MCC' => [ 'type' => 'integer', 'max' => 999, 'min' => 200, ], 'MNC' => [ 'type' => 'integer', 'max' => 999, 'min' => 0, ], 'MacAddress' => [ 'type' => 'string', 'max' => 17, 'min' => 12, 'pattern' => '^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$', ], 'MacVersion' => [ 'type' => 'string', 'max' => 64, ], 'Max' => [ 'type' => 'double', ], 'MaxAllowedSignature' => [ 'type' => 'integer', ], 'MaxDutyCycle' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'MaxEirp' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'MaxResults' => [ 'type' => 'integer', 'max' => 250, 'min' => 0, ], 'McGroupId' => [ 'type' => 'integer', 'max' => 256, 'min' => 1, ], 'Message' => [ 'type' => 'string', 'max' => 2048, ], 'MessageDeliveryStatusEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkEventNotificationConfigurations', ], 'WirelessDeviceIdEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'MessageDeliveryStatusResourceTypeEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkResourceTypeEventConfiguration', ], ], ], 'MessageId' => [ 'type' => 'string', ], 'MessageType' => [ 'type' => 'string', 'enum' => [ 'CUSTOM_COMMAND_ID_NOTIFY', 'CUSTOM_COMMAND_ID_GET', 'CUSTOM_COMMAND_ID_SET', 'CUSTOM_COMMAND_ID_RESP', ], ], 'MetricName' => [ 'type' => 'string', 'enum' => [ 'DeviceRSSI', 'DeviceSNR', 'DeviceRoamingRSSI', 'DeviceRoamingSNR', 'DeviceUplinkCount', 'DeviceDownlinkCount', 'DeviceUplinkLostCount', 'DeviceUplinkLostRate', 'DeviceJoinRequestCount', 'DeviceJoinAcceptCount', 'DeviceRoamingUplinkCount', 'DeviceRoamingDownlinkCount', 'GatewayUpTime', 'GatewayDownTime', 'GatewayRSSI', 'GatewaySNR', 'GatewayUplinkCount', 'GatewayDownlinkCount', 'GatewayJoinRequestCount', 'GatewayJoinAcceptCount', 'AwsAccountUplinkCount', 'AwsAccountDownlinkCount', 'AwsAccountUplinkLostCount', 'AwsAccountUplinkLostRate', 'AwsAccountJoinRequestCount', 'AwsAccountJoinAcceptCount', 'AwsAccountRoamingUplinkCount', 'AwsAccountRoamingDownlinkCount', 'AwsAccountDeviceCount', 'AwsAccountGatewayCount', 'AwsAccountActiveDeviceCount', 'AwsAccountActiveGatewayCount', ], 'max' => 256, ], 'MetricQueryEndTimestamp' => [ 'type' => 'timestamp', ], 'MetricQueryError' => [ 'type' => 'string', 'max' => 256, ], 'MetricQueryId' => [ 'type' => 'string', 'max' => 256, ], 'MetricQueryStartTimestamp' => [ 'type' => 'timestamp', ], 'MetricQueryStatus' => [ 'type' => 'string', 'enum' => [ 'Succeeded', 'Failed', ], ], 'MetricQueryTimestamp' => [ 'type' => 'timestamp', ], 'MetricQueryTimestamps' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricQueryTimestamp', ], ], 'MetricQueryValue' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Min', ], 'Max' => [ 'shape' => 'Max', ], 'Sum' => [ 'shape' => 'Sum', ], 'Avg' => [ 'shape' => 'Avg', ], 'Std' => [ 'shape' => 'Std', ], 'P90' => [ 'shape' => 'P90', ], ], ], 'MetricQueryValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricQueryValue', ], ], 'MetricUnit' => [ 'type' => 'string', 'max' => 256, ], 'Min' => [ 'type' => 'double', ], 'MinGwDiversity' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'Model' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'MulticastDeviceStatus' => [ 'type' => 'string', 'max' => 256, ], 'MulticastFrameInfo' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'MulticastGroup' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', ], 'Arn' => [ 'shape' => 'MulticastGroupArn', ], 'Name' => [ 'shape' => 'MulticastGroupName', ], ], ], 'MulticastGroupArn' => [ 'type' => 'string', 'max' => 128, ], 'MulticastGroupByFuotaTask' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', ], ], ], 'MulticastGroupId' => [ 'type' => 'string', 'max' => 256, ], 'MulticastGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MulticastGroup', ], ], 'MulticastGroupListByFuotaTask' => [ 'type' => 'list', 'member' => [ 'shape' => 'MulticastGroupByFuotaTask', ], ], 'MulticastGroupMessageId' => [ 'type' => 'string', 'max' => 256, ], 'MulticastGroupName' => [ 'type' => 'string', 'max' => 256, ], 'MulticastGroupStatus' => [ 'type' => 'string', 'max' => 256, ], 'MulticastWirelessMetadata' => [ 'type' => 'structure', 'members' => [ 'LoRaWAN' => [ 'shape' => 'LoRaWANMulticastMetadata', ], ], ], 'NRCapable' => [ 'type' => 'boolean', ], 'NbTransMax' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'NbTransMin' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'NetId' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{6}', ], 'NetIdFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetId', ], 'max' => 10, 'min' => 0, ], 'NetworkAnalyzerConfigurationArn' => [ 'type' => 'string', 'max' => 1124, ], 'NetworkAnalyzerConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkAnalyzerConfigurations', ], ], 'NetworkAnalyzerConfigurationName' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[a-zA-Z0-9-_]+', ], 'NetworkAnalyzerConfigurations' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'NetworkAnalyzerConfigurationArn', ], 'Name' => [ 'shape' => 'NetworkAnalyzerConfigurationName', ], ], ], 'NetworkAnalyzerMulticastGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MulticastGroupId', ], 'max' => 10, 'min' => 0, ], 'NetworkId' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'NextToken' => [ 'type' => 'string', 'max' => 4096, ], 'NumberOfDevicesInGroup' => [ 'type' => 'integer', ], 'NumberOfDevicesRequested' => [ 'type' => 'integer', ], 'NwkGeoLoc' => [ 'type' => 'boolean', ], 'NwkKey' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{32}', ], 'NwkSEncKey' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{32}', ], 'NwkSKey' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{32}', ], 'OnboardStatus' => [ 'type' => 'string', 'enum' => [ 'INITIALIZED', 'PENDING', 'ONBOARDED', 'FAILED', ], ], 'OnboardStatusReason' => [ 'type' => 'string', ], 'OtaaV1_0_x' => [ 'type' => 'structure', 'members' => [ 'AppKey' => [ 'shape' => 'AppKey', ], 'AppEui' => [ 'shape' => 'AppEui', ], 'JoinEui' => [ 'shape' => 'JoinEui', ], 'GenAppKey' => [ 'shape' => 'GenAppKey', ], ], ], 'OtaaV1_1' => [ 'type' => 'structure', 'members' => [ 'AppKey' => [ 'shape' => 'AppKey', ], 'NwkKey' => [ 'shape' => 'NwkKey', ], 'JoinEui' => [ 'shape' => 'JoinEui', ], ], ], 'P90' => [ 'type' => 'double', ], 'PCI' => [ 'type' => 'integer', 'max' => 503, 'min' => 0, ], 'PSC' => [ 'type' => 'integer', 'max' => 511, 'min' => 0, ], 'PackageVersion' => [ 'type' => 'string', 'max' => 32, 'min' => 1, ], 'ParticipatingGateways' => [ 'type' => 'structure', 'required' => [ 'DownlinkMode', 'GatewayList', 'TransmissionInterval', ], 'members' => [ 'DownlinkMode' => [ 'shape' => 'DownlinkMode', ], 'GatewayList' => [ 'shape' => 'GatewayList', ], 'TransmissionInterval' => [ 'shape' => 'TransmissionInterval', ], ], ], 'ParticipatingGatewaysMulticast' => [ 'type' => 'structure', 'members' => [ 'GatewayList' => [ 'shape' => 'GatewayListMulticast', ], 'TransmissionInterval' => [ 'shape' => 'TransmissionIntervalMulticast', ], ], ], 'PartnerAccountArn' => [ 'type' => 'string', ], 'PartnerAccountId' => [ 'type' => 'string', 'max' => 256, ], 'PartnerType' => [ 'type' => 'string', 'enum' => [ 'Sidewalk', ], ], 'PathLoss' => [ 'type' => 'integer', 'max' => 158, 'min' => 46, ], 'PayloadData' => [ 'type' => 'string', 'max' => 2048, 'pattern' => '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$', ], 'PilotPower' => [ 'type' => 'integer', 'max' => -49, 'min' => -142, ], 'PingSlotDr' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'PingSlotFreq' => [ 'type' => 'integer', 'max' => 16700000, 'min' => 1000000, ], 'PingSlotPeriod' => [ 'type' => 'integer', 'max' => 4096, 'min' => 32, ], 'PnOffset' => [ 'type' => 'integer', 'max' => 511, 'min' => 0, ], 'PositionConfigurationFec' => [ 'type' => 'string', 'enum' => [ 'ROSE', 'NONE', ], ], 'PositionConfigurationItem' => [ 'type' => 'structure', 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'PositionResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'PositionResourceType', ], 'Solvers' => [ 'shape' => 'PositionSolverDetails', ], 'Destination' => [ 'shape' => 'DestinationName', ], ], ], 'PositionConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PositionConfigurationItem', ], ], 'PositionConfigurationStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'PositionCoordinate' => [ 'type' => 'list', 'member' => [ 'shape' => 'PositionCoordinateValue', ], ], 'PositionCoordinateValue' => [ 'type' => 'float', ], 'PositionResourceIdentifier' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}', ], 'PositionResourceType' => [ 'type' => 'string', 'enum' => [ 'WirelessDevice', 'WirelessGateway', ], ], 'PositionSolverConfigurations' => [ 'type' => 'structure', 'members' => [ 'SemtechGnss' => [ 'shape' => 'SemtechGnssConfiguration', ], ], ], 'PositionSolverDetails' => [ 'type' => 'structure', 'members' => [ 'SemtechGnss' => [ 'shape' => 'SemtechGnssDetail', ], ], ], 'PositionSolverProvider' => [ 'type' => 'string', 'enum' => [ 'Semtech', ], ], 'PositionSolverType' => [ 'type' => 'string', 'enum' => [ 'GNSS', ], ], 'PositionSolverVersion' => [ 'type' => 'string', 'max' => 50, 'min' => 0, ], 'Positioning' => [ 'type' => 'structure', 'members' => [ 'ClockSync' => [ 'shape' => 'FPort', ], 'Stream' => [ 'shape' => 'FPort', ], 'Gnss' => [ 'shape' => 'FPort', ], ], ], 'PositioningConfigStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'PrAllowed' => [ 'type' => 'boolean', ], 'PresetFreq' => [ 'type' => 'integer', 'max' => 16700000, 'min' => 1000000, ], 'PrivateKeysList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CertificateList', ], ], 'ProviderNetId' => [ 'type' => 'string', 'max' => 256, ], 'ProximityEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkEventNotificationConfigurations', ], 'WirelessDeviceIdEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'ProximityResourceTypeEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkResourceTypeEventConfiguration', ], ], ], 'PutPositionConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'PositionResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'PositionResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], 'Solvers' => [ 'shape' => 'PositionSolverConfigurations', ], 'Destination' => [ 'shape' => 'DestinationName', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'PutPositionConfigurationResponse' => [ 'type' => 'structure', 'members' => [], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'PutResourceLogLevelRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', 'LogLevel', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'ResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'ResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], ], ], 'PutResourceLogLevelResponse' => [ 'type' => 'structure', 'members' => [], ], 'QualificationStatus' => [ 'type' => 'boolean', ], 'QueryString' => [ 'type' => 'string', 'max' => 4096, ], 'RSCP' => [ 'type' => 'integer', 'max' => -25, 'min' => -120, ], 'RSRP' => [ 'type' => 'integer', 'max' => -44, 'min' => -140, ], 'RSRQ' => [ 'type' => 'float', 'max' => -3, 'min' => -19.5, ], 'RSS' => [ 'type' => 'integer', 'max' => 0, 'min' => -128, ], 'RaAllowed' => [ 'type' => 'boolean', ], 'RedundancyPercent' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'RegParamsRevision' => [ 'type' => 'string', 'max' => 64, ], 'RegistrationZone' => [ 'type' => 'integer', 'max' => 4095, 'min' => 0, ], 'ReportDevStatusBattery' => [ 'type' => 'boolean', ], 'ReportDevStatusMargin' => [ 'type' => 'boolean', ], 'ResetAllResourceLogLevelsRequest' => [ 'type' => 'structure', 'members' => [], ], 'ResetAllResourceLogLevelsResponse' => [ 'type' => 'structure', 'members' => [], ], 'ResetResourceLogLevelRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'ResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'ResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], ], ], 'ResetResourceLogLevelResponse' => [ 'type' => 'structure', 'members' => [], ], 'ResourceId' => [ 'type' => 'string', ], 'ResourceIdentifier' => [ 'type' => 'string', 'max' => 256, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], 'ResourceId' => [ 'shape' => 'ResourceId', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'ResourceType' => [ 'type' => 'string', ], 'Result' => [ 'type' => 'string', 'max' => 2048, ], 'RfRegion' => [ 'type' => 'string', 'max' => 64, ], 'Role' => [ 'type' => 'string', 'max' => 2048, ], 'RoleArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, ], 'RxDataRate2' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'RxDelay1' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'RxDrOffset1' => [ 'type' => 'integer', 'max' => 7, 'min' => 0, ], 'RxFreq2' => [ 'type' => 'integer', 'max' => 16700000, 'min' => 1000000, ], 'RxLevel' => [ 'type' => 'integer', 'max' => -25, 'min' => -110, ], 'SNwkSIntKey' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{32}', ], 'SemtechGnssConfiguration' => [ 'type' => 'structure', 'required' => [ 'Status', 'Fec', ], 'members' => [ 'Status' => [ 'shape' => 'PositionConfigurationStatus', ], 'Fec' => [ 'shape' => 'PositionConfigurationFec', ], ], ], 'SemtechGnssDetail' => [ 'type' => 'structure', 'members' => [ 'Provider' => [ 'shape' => 'PositionSolverProvider', ], 'Type' => [ 'shape' => 'PositionSolverType', ], 'Status' => [ 'shape' => 'PositionConfigurationStatus', ], 'Fec' => [ 'shape' => 'PositionConfigurationFec', ], ], ], 'SendDataToMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'PayloadData', 'WirelessMetadata', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], 'PayloadData' => [ 'shape' => 'PayloadData', ], 'WirelessMetadata' => [ 'shape' => 'MulticastWirelessMetadata', ], ], ], 'SendDataToMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [ 'MessageId' => [ 'shape' => 'MulticastGroupMessageId', ], ], ], 'SendDataToWirelessDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'TransmitMode', 'PayloadData', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], 'TransmitMode' => [ 'shape' => 'TransmitMode', ], 'PayloadData' => [ 'shape' => 'PayloadData', ], 'WirelessMetadata' => [ 'shape' => 'WirelessMetadata', ], ], ], 'SendDataToWirelessDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'MessageId' => [ 'shape' => 'MessageId', ], ], ], 'Seq' => [ 'type' => 'integer', 'max' => 16383, 'min' => 0, ], 'ServiceProfile' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'ServiceProfileArn', ], 'Name' => [ 'shape' => 'ServiceProfileName', ], 'Id' => [ 'shape' => 'ServiceProfileId', ], ], ], 'ServiceProfileArn' => [ 'type' => 'string', ], 'ServiceProfileId' => [ 'type' => 'string', 'max' => 256, ], 'ServiceProfileList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceProfile', ], ], 'ServiceProfileName' => [ 'type' => 'string', 'max' => 256, ], 'SessionKeysAbpV1_0_x' => [ 'type' => 'structure', 'members' => [ 'NwkSKey' => [ 'shape' => 'NwkSKey', ], 'AppSKey' => [ 'shape' => 'AppSKey', ], ], ], 'SessionKeysAbpV1_1' => [ 'type' => 'structure', 'members' => [ 'FNwkSIntKey' => [ 'shape' => 'FNwkSIntKey', ], 'SNwkSIntKey' => [ 'shape' => 'SNwkSIntKey', ], 'NwkSEncKey' => [ 'shape' => 'NwkSEncKey', ], 'AppSKey' => [ 'shape' => 'AppSKey', ], ], ], 'SessionStartTimeTimestamp' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'SessionTimeout' => [ 'type' => 'integer', 'max' => 172800, 'min' => 60, ], 'SidewalkAccountInfo' => [ 'type' => 'structure', 'members' => [ 'AmazonId' => [ 'shape' => 'AmazonId', ], 'AppServerPrivateKey' => [ 'shape' => 'AppServerPrivateKey', ], ], ], 'SidewalkAccountInfoWithFingerprint' => [ 'type' => 'structure', 'members' => [ 'AmazonId' => [ 'shape' => 'AmazonId', ], 'Fingerprint' => [ 'shape' => 'Fingerprint', ], 'Arn' => [ 'shape' => 'PartnerAccountArn', ], ], ], 'SidewalkAccountList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SidewalkAccountInfoWithFingerprint', ], ], 'SidewalkCreateDeviceProfile' => [ 'type' => 'structure', 'members' => [], ], 'SidewalkCreateWirelessDevice' => [ 'type' => 'structure', 'members' => [ 'DeviceProfileId' => [ 'shape' => 'DeviceProfileId', ], 'Positioning' => [ 'shape' => 'SidewalkPositioning', ], 'SidewalkManufacturingSn' => [ 'shape' => 'SidewalkManufacturingSn', ], ], ], 'SidewalkDevice' => [ 'type' => 'structure', 'members' => [ 'AmazonId' => [ 'shape' => 'AmazonId', ], 'SidewalkId' => [ 'shape' => 'SidewalkId', ], 'SidewalkManufacturingSn' => [ 'shape' => 'SidewalkManufacturingSn', ], 'DeviceCertificates' => [ 'shape' => 'DeviceCertificateList', ], 'PrivateKeys' => [ 'shape' => 'PrivateKeysList', ], 'DeviceProfileId' => [ 'shape' => 'DeviceProfileId', ], 'CertificateId' => [ 'shape' => 'DakCertificateId', ], 'Status' => [ 'shape' => 'WirelessDeviceSidewalkStatus', ], 'Positioning' => [ 'shape' => 'SidewalkPositioning', ], ], ], 'SidewalkDeviceMetadata' => [ 'type' => 'structure', 'members' => [ 'Rssi' => [ 'shape' => 'Integer', ], 'BatteryLevel' => [ 'shape' => 'BatteryLevel', ], 'Event' => [ 'shape' => 'Event', ], 'DeviceState' => [ 'shape' => 'DeviceState', ], ], ], 'SidewalkEventNotificationConfigurations' => [ 'type' => 'structure', 'members' => [ 'AmazonIdEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'SidewalkGetDeviceProfile' => [ 'type' => 'structure', 'members' => [ 'ApplicationServerPublicKey' => [ 'shape' => 'ApplicationServerPublicKey', ], 'QualificationStatus' => [ 'shape' => 'QualificationStatus', ], 'DakCertificateMetadata' => [ 'shape' => 'DakCertificateMetadataList', ], ], ], 'SidewalkGetStartImportInfo' => [ 'type' => 'structure', 'members' => [ 'DeviceCreationFileList' => [ 'shape' => 'DeviceCreationFileList', ], 'Role' => [ 'shape' => 'Role', ], 'Positioning' => [ 'shape' => 'SidewalkPositioning', ], ], ], 'SidewalkId' => [ 'type' => 'string', 'max' => 256, ], 'SidewalkListDevice' => [ 'type' => 'structure', 'members' => [ 'AmazonId' => [ 'shape' => 'AmazonId', ], 'SidewalkId' => [ 'shape' => 'SidewalkId', ], 'SidewalkManufacturingSn' => [ 'shape' => 'SidewalkManufacturingSn', ], 'DeviceCertificates' => [ 'shape' => 'DeviceCertificateList', ], 'DeviceProfileId' => [ 'shape' => 'DeviceProfileId', ], 'Status' => [ 'shape' => 'WirelessDeviceSidewalkStatus', ], 'Positioning' => [ 'shape' => 'SidewalkPositioning', ], ], ], 'SidewalkListDevicesForImportInfo' => [ 'type' => 'structure', 'members' => [ 'Positioning' => [ 'shape' => 'SidewalkPositioning', ], ], ], 'SidewalkManufacturingSn' => [ 'type' => 'string', 'max' => 64, ], 'SidewalkPositioning' => [ 'type' => 'structure', 'members' => [ 'DestinationName' => [ 'shape' => 'DestinationName', ], ], ], 'SidewalkResourceTypeEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'WirelessDeviceEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'SidewalkSendDataToDevice' => [ 'type' => 'structure', 'members' => [ 'Seq' => [ 'shape' => 'Seq', ], 'MessageType' => [ 'shape' => 'MessageType', ], 'AckModeRetryDurationSecs' => [ 'shape' => 'AckModeRetryDurationSecs', ], ], ], 'SidewalkSingleStartImportInfo' => [ 'type' => 'structure', 'members' => [ 'SidewalkManufacturingSn' => [ 'shape' => 'SidewalkManufacturingSn', ], 'Positioning' => [ 'shape' => 'SidewalkPositioning', ], ], ], 'SidewalkStartImportInfo' => [ 'type' => 'structure', 'members' => [ 'DeviceCreationFile' => [ 'shape' => 'DeviceCreationFile', ], 'Role' => [ 'shape' => 'Role', ], 'Positioning' => [ 'shape' => 'SidewalkPositioning', ], ], ], 'SidewalkUpdateAccount' => [ 'type' => 'structure', 'members' => [ 'AppServerPrivateKey' => [ 'shape' => 'AppServerPrivateKey', ], ], ], 'SidewalkUpdateImportInfo' => [ 'type' => 'structure', 'members' => [ 'DeviceCreationFile' => [ 'shape' => 'DeviceCreationFile', ], ], ], 'SidewalkUpdateWirelessDevice' => [ 'type' => 'structure', 'members' => [ 'Positioning' => [ 'shape' => 'SidewalkPositioning', ], ], ], 'SigningAlg' => [ 'type' => 'string', 'enum' => [ 'Ed25519', 'P256r1', ], ], 'StartBulkAssociateWirelessDeviceWithMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], 'QueryString' => [ 'shape' => 'QueryString', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'StartBulkAssociateWirelessDeviceWithMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'StartBulkDisassociateWirelessDeviceFromMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], 'QueryString' => [ 'shape' => 'QueryString', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'StartBulkDisassociateWirelessDeviceFromMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'StartFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANStartFuotaTask', ], ], ], 'StartFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'StartMulticastGroupSessionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'LoRaWAN', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANMulticastSession', ], ], ], 'StartMulticastGroupSessionResponse' => [ 'type' => 'structure', 'members' => [], ], 'StartSingleWirelessDeviceImportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationName', 'Sidewalk', ], 'members' => [ 'DestinationName' => [ 'shape' => 'DestinationName', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'DeviceName' => [ 'shape' => 'DeviceName', ], 'Tags' => [ 'shape' => 'TagList', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], 'Sidewalk' => [ 'shape' => 'SidewalkSingleStartImportInfo', ], ], ], 'StartSingleWirelessDeviceImportTaskResponse' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ImportTaskId', ], 'Arn' => [ 'shape' => 'ImportTaskArn', ], ], ], 'StartTime' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'StartWirelessDeviceImportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationName', 'Sidewalk', ], 'members' => [ 'DestinationName' => [ 'shape' => 'DestinationName', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'Tags' => [ 'shape' => 'TagList', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], 'Sidewalk' => [ 'shape' => 'SidewalkStartImportInfo', ], ], ], 'StartWirelessDeviceImportTaskResponse' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ImportTaskId', ], 'Arn' => [ 'shape' => 'ImportTaskArn', ], ], ], 'Station' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'StatusReason' => [ 'type' => 'string', ], 'Std' => [ 'type' => 'double', ], 'SubBand' => [ 'type' => 'integer', 'max' => 8, 'min' => 1, ], 'SubBands' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubBand', ], 'max' => 8, 'min' => 0, ], 'Sum' => [ 'type' => 'double', ], 'SummaryMetricConfiguration' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'SummaryMetricConfigurationStatus', ], ], ], 'SummaryMetricConfigurationStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'SummaryMetricQueries' => [ 'type' => 'list', 'member' => [ 'shape' => 'SummaryMetricQuery', ], ], 'SummaryMetricQuery' => [ 'type' => 'structure', 'members' => [ 'QueryId' => [ 'shape' => 'MetricQueryId', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'Dimensions' => [ 'shape' => 'Dimensions', ], 'AggregationPeriod' => [ 'shape' => 'AggregationPeriod', ], 'StartTimestamp' => [ 'shape' => 'MetricQueryStartTimestamp', ], 'EndTimestamp' => [ 'shape' => 'MetricQueryEndTimestamp', ], ], ], 'SummaryMetricQueryResult' => [ 'type' => 'structure', 'members' => [ 'QueryId' => [ 'shape' => 'MetricQueryId', ], 'QueryStatus' => [ 'shape' => 'MetricQueryStatus', ], 'Error' => [ 'shape' => 'MetricQueryError', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'Dimensions' => [ 'shape' => 'Dimensions', ], 'AggregationPeriod' => [ 'shape' => 'AggregationPeriod', ], 'StartTimestamp' => [ 'shape' => 'MetricQueryStartTimestamp', ], 'EndTimestamp' => [ 'shape' => 'MetricQueryEndTimestamp', ], 'Timestamps' => [ 'shape' => 'MetricQueryTimestamps', ], 'Values' => [ 'shape' => 'MetricQueryValues', ], 'Unit' => [ 'shape' => 'MetricUnit', ], ], ], 'SummaryMetricQueryResults' => [ 'type' => 'list', 'member' => [ 'shape' => 'SummaryMetricQueryResult', ], ], 'SupportedRfRegion' => [ 'type' => 'string', 'enum' => [ 'EU868', 'US915', 'AU915', 'AS923-1', 'AS923-2', 'AS923-3', 'AS923-4', 'EU433', 'CN470', 'CN779', 'RU864', 'KR920', 'IN865', ], ], 'Supports32BitFCnt' => [ 'type' => 'boolean', ], 'SupportsClassB' => [ 'type' => 'boolean', ], 'SupportsClassC' => [ 'type' => 'boolean', ], 'SupportsJoin' => [ 'type' => 'boolean', ], 'SystemId' => [ 'type' => 'integer', 'max' => 32767, 'min' => 1, ], 'TAC' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 200, 'min' => 0, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 200, 'min' => 0, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'AmazonResourceName', 'location' => 'querystring', 'locationName' => 'resourceArn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'TargetPer' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'TdscdmaList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TdscdmaObj', ], 'max' => 16, 'min' => 1, ], 'TdscdmaLocalId' => [ 'type' => 'structure', 'required' => [ 'Uarfcn', 'CellParams', ], 'members' => [ 'Uarfcn' => [ 'shape' => 'UARFCN', ], 'CellParams' => [ 'shape' => 'CellParams', ], ], ], 'TdscdmaNmrList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TdscdmaNmrObj', ], 'max' => 32, 'min' => 1, ], 'TdscdmaNmrObj' => [ 'type' => 'structure', 'required' => [ 'Uarfcn', 'CellParams', ], 'members' => [ 'Uarfcn' => [ 'shape' => 'UARFCN', ], 'CellParams' => [ 'shape' => 'CellParams', ], 'UtranCid' => [ 'shape' => 'UtranCid', ], 'Rscp' => [ 'shape' => 'RSCP', ], 'PathLoss' => [ 'shape' => 'PathLoss', ], ], ], 'TdscdmaObj' => [ 'type' => 'structure', 'required' => [ 'Mcc', 'Mnc', 'UtranCid', ], 'members' => [ 'Mcc' => [ 'shape' => 'MCC', ], 'Mnc' => [ 'shape' => 'MNC', ], 'Lac' => [ 'shape' => 'LAC', ], 'UtranCid' => [ 'shape' => 'UtranCid', ], 'TdscdmaLocalId' => [ 'shape' => 'TdscdmaLocalId', ], 'TdscdmaTimingAdvance' => [ 'shape' => 'TdscdmaTimingAdvance', ], 'Rscp' => [ 'shape' => 'RSCP', ], 'PathLoss' => [ 'shape' => 'PathLoss', ], 'TdscdmaNmr' => [ 'shape' => 'TdscdmaNmrList', ], ], ], 'TdscdmaTimingAdvance' => [ 'type' => 'integer', 'max' => 1530, 'min' => 0, ], 'TestWirelessDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'TestWirelessDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'Result' => [ 'shape' => 'Result', ], ], ], 'ThingArn' => [ 'type' => 'string', ], 'ThingName' => [ 'type' => 'string', ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'TooManyTagsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], 'ResourceName' => [ 'shape' => 'AmazonResourceName', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TraceContent' => [ 'type' => 'structure', 'members' => [ 'WirelessDeviceFrameInfo' => [ 'shape' => 'WirelessDeviceFrameInfo', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], 'MulticastFrameInfo' => [ 'shape' => 'MulticastFrameInfo', ], ], ], 'TransmissionInterval' => [ 'type' => 'integer', 'max' => 604800, 'min' => 1, ], 'TransmissionIntervalMulticast' => [ 'type' => 'integer', 'max' => 60000, 'min' => 0, ], 'TransmitMode' => [ 'type' => 'integer', 'max' => 1, 'min' => 0, ], 'TxPowerIndexMax' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'TxPowerIndexMin' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'UARFCN' => [ 'type' => 'integer', 'max' => 16383, 'min' => 0, ], 'UARFCNDL' => [ 'type' => 'integer', 'max' => 16383, 'min' => 0, ], 'UlBucketSize' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 0, ], 'UlRate' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 0, ], 'UlRatePolicy' => [ 'type' => 'string', 'max' => 256, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'AmazonResourceName', 'location' => 'querystring', 'locationName' => 'resourceArn', ], 'TagKeys' => [ 'shape' => 'TagKeyList', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateAbpV1_0_x' => [ 'type' => 'structure', 'members' => [ 'FCntStart' => [ 'shape' => 'FCntStart', ], ], ], 'UpdateAbpV1_1' => [ 'type' => 'structure', 'members' => [ 'FCntStart' => [ 'shape' => 'FCntStart', ], ], ], 'UpdateDataSource' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'UpdateDestinationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'DestinationName', 'location' => 'uri', 'locationName' => 'Name', ], 'ExpressionType' => [ 'shape' => 'ExpressionType', ], 'Expression' => [ 'shape' => 'Expression', ], 'Description' => [ 'shape' => 'Description', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], ], ], 'UpdateDestinationResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateEventConfigurationByResourceTypesRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceRegistrationState' => [ 'shape' => 'DeviceRegistrationStateResourceTypeEventConfiguration', ], 'Proximity' => [ 'shape' => 'ProximityResourceTypeEventConfiguration', ], 'Join' => [ 'shape' => 'JoinResourceTypeEventConfiguration', ], 'ConnectionStatus' => [ 'shape' => 'ConnectionStatusResourceTypeEventConfiguration', ], 'MessageDeliveryStatus' => [ 'shape' => 'MessageDeliveryStatusResourceTypeEventConfiguration', ], ], ], 'UpdateEventConfigurationByResourceTypesResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateFPorts' => [ 'type' => 'structure', 'members' => [ 'Positioning' => [ 'shape' => 'Positioning', ], 'Applications' => [ 'shape' => 'Applications', ], ], ], 'UpdateFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], 'Name' => [ 'shape' => 'FuotaTaskName', ], 'Description' => [ 'shape' => 'Description', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANFuotaTask', ], 'FirmwareUpdateImage' => [ 'shape' => 'FirmwareUpdateImage', ], 'FirmwareUpdateRole' => [ 'shape' => 'FirmwareUpdateRole', ], 'RedundancyPercent' => [ 'shape' => 'RedundancyPercent', ], 'FragmentSizeBytes' => [ 'shape' => 'FragmentSizeBytes', ], 'FragmentIntervalMS' => [ 'shape' => 'FragmentIntervalMS', ], 'Descriptor' => [ 'shape' => 'FileDescriptor', ], ], ], 'UpdateFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateLogLevelsByResourceTypesRequest' => [ 'type' => 'structure', 'members' => [ 'DefaultLogLevel' => [ 'shape' => 'LogLevel', ], 'FuotaTaskLogOptions' => [ 'shape' => 'FuotaTaskLogOptionList', ], 'WirelessDeviceLogOptions' => [ 'shape' => 'WirelessDeviceLogOptionList', ], 'WirelessGatewayLogOptions' => [ 'shape' => 'WirelessGatewayLogOptionList', ], ], ], 'UpdateLogLevelsByResourceTypesResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateMetricConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'SummaryMetric' => [ 'shape' => 'SummaryMetricConfiguration', ], ], ], 'UpdateMetricConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], 'Name' => [ 'shape' => 'MulticastGroupName', ], 'Description' => [ 'shape' => 'Description', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANMulticast', ], ], ], 'UpdateMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateNetworkAnalyzerConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationName', ], 'members' => [ 'ConfigurationName' => [ 'shape' => 'NetworkAnalyzerConfigurationName', 'location' => 'uri', 'locationName' => 'ConfigurationName', ], 'TraceContent' => [ 'shape' => 'TraceContent', ], 'WirelessDevicesToAdd' => [ 'shape' => 'WirelessDeviceList', ], 'WirelessDevicesToRemove' => [ 'shape' => 'WirelessDeviceList', ], 'WirelessGatewaysToAdd' => [ 'shape' => 'WirelessGatewayList', ], 'WirelessGatewaysToRemove' => [ 'shape' => 'WirelessGatewayList', ], 'Description' => [ 'shape' => 'Description', ], 'MulticastGroupsToAdd' => [ 'shape' => 'NetworkAnalyzerMulticastGroupList', ], 'MulticastGroupsToRemove' => [ 'shape' => 'NetworkAnalyzerMulticastGroupList', ], ], ], 'UpdateNetworkAnalyzerConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdatePartnerAccountRequest' => [ 'type' => 'structure', 'required' => [ 'Sidewalk', 'PartnerAccountId', 'PartnerType', ], 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkUpdateAccount', ], 'PartnerAccountId' => [ 'shape' => 'PartnerAccountId', 'location' => 'uri', 'locationName' => 'PartnerAccountId', ], 'PartnerType' => [ 'shape' => 'PartnerType', 'location' => 'querystring', 'locationName' => 'partnerType', ], ], ], 'UpdatePartnerAccountResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdatePositionRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', 'Position', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'PositionResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'PositionResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], 'Position' => [ 'shape' => 'PositionCoordinate', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'UpdatePositionResponse' => [ 'type' => 'structure', 'members' => [], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'UpdateResourceEventConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Identifier', 'IdentifierType', ], 'members' => [ 'Identifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'Identifier', ], 'IdentifierType' => [ 'shape' => 'IdentifierType', 'location' => 'querystring', 'locationName' => 'identifierType', ], 'PartnerType' => [ 'shape' => 'EventNotificationPartnerType', 'location' => 'querystring', 'locationName' => 'partnerType', ], 'DeviceRegistrationState' => [ 'shape' => 'DeviceRegistrationStateEventConfiguration', ], 'Proximity' => [ 'shape' => 'ProximityEventConfiguration', ], 'Join' => [ 'shape' => 'JoinEventConfiguration', ], 'ConnectionStatus' => [ 'shape' => 'ConnectionStatusEventConfiguration', ], 'MessageDeliveryStatus' => [ 'shape' => 'MessageDeliveryStatusEventConfiguration', ], ], ], 'UpdateResourceEventConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateResourcePositionRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'PositionResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'PositionResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], 'GeoJsonPayload' => [ 'shape' => 'GeoJsonPayload', ], ], 'payload' => 'GeoJsonPayload', ], 'UpdateResourcePositionResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateSignature' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'UpdateWirelessDeviceImportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'Sidewalk', ], 'members' => [ 'Id' => [ 'shape' => 'ImportTaskId', 'location' => 'uri', 'locationName' => 'Id', ], 'Sidewalk' => [ 'shape' => 'SidewalkUpdateImportInfo', ], ], ], 'UpdateWirelessDeviceImportTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateWirelessDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], 'DestinationName' => [ 'shape' => 'DestinationName', ], 'Name' => [ 'shape' => 'WirelessDeviceName', ], 'Description' => [ 'shape' => 'Description', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANUpdateDevice', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], 'Sidewalk' => [ 'shape' => 'SidewalkUpdateWirelessDevice', ], ], ], 'UpdateWirelessDeviceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateWirelessGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], 'Name' => [ 'shape' => 'WirelessGatewayName', ], 'Description' => [ 'shape' => 'Description', ], 'JoinEuiFilters' => [ 'shape' => 'JoinEuiFilters', ], 'NetIdFilters' => [ 'shape' => 'NetIdFilters', ], 'MaxEirp' => [ 'shape' => 'GatewayMaxEirp', ], ], ], 'UpdateWirelessGatewayResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateWirelessGatewayTaskCreate' => [ 'type' => 'structure', 'members' => [ 'UpdateDataSource' => [ 'shape' => 'UpdateDataSource', ], 'UpdateDataRole' => [ 'shape' => 'UpdateDataSource', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANUpdateGatewayTaskCreate', ], ], ], 'UpdateWirelessGatewayTaskEntry' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayTaskDefinitionId', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANUpdateGatewayTaskEntry', ], 'Arn' => [ 'shape' => 'WirelessGatewayTaskDefinitionArn', ], ], ], 'Use2DSolver' => [ 'type' => 'boolean', ], 'UtranCid' => [ 'type' => 'integer', 'max' => 268435455, 'min' => 0, ], 'ValidationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'VerticalAccuracy' => [ 'type' => 'float', 'min' => 0, ], 'WcdmaList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WcdmaObj', ], 'max' => 16, 'min' => 1, ], 'WcdmaLocalId' => [ 'type' => 'structure', 'required' => [ 'Uarfcndl', 'Psc', ], 'members' => [ 'Uarfcndl' => [ 'shape' => 'UARFCNDL', ], 'Psc' => [ 'shape' => 'PSC', ], ], ], 'WcdmaNmrList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WcdmaNmrObj', ], 'max' => 32, 'min' => 1, ], 'WcdmaNmrObj' => [ 'type' => 'structure', 'required' => [ 'Uarfcndl', 'Psc', 'UtranCid', ], 'members' => [ 'Uarfcndl' => [ 'shape' => 'UARFCNDL', ], 'Psc' => [ 'shape' => 'PSC', ], 'UtranCid' => [ 'shape' => 'UtranCid', ], 'Rscp' => [ 'shape' => 'RSCP', ], 'PathLoss' => [ 'shape' => 'PathLoss', ], ], ], 'WcdmaObj' => [ 'type' => 'structure', 'required' => [ 'Mcc', 'Mnc', 'UtranCid', ], 'members' => [ 'Mcc' => [ 'shape' => 'MCC', ], 'Mnc' => [ 'shape' => 'MNC', ], 'Lac' => [ 'shape' => 'LAC', ], 'UtranCid' => [ 'shape' => 'UtranCid', ], 'WcdmaLocalId' => [ 'shape' => 'WcdmaLocalId', ], 'Rscp' => [ 'shape' => 'RSCP', ], 'PathLoss' => [ 'shape' => 'PathLoss', ], 'WcdmaNmr' => [ 'shape' => 'WcdmaNmrList', ], ], ], 'WiFiAccessPoint' => [ 'type' => 'structure', 'required' => [ 'MacAddress', 'Rss', ], 'members' => [ 'MacAddress' => [ 'shape' => 'MacAddress', ], 'Rss' => [ 'shape' => 'RSS', ], ], ], 'WiFiAccessPoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'WiFiAccessPoint', ], ], 'WiFiCellular' => [ 'type' => 'structure', 'members' => [ 'ConfidencePercent' => [ 'shape' => 'ConfidencePercent', ], ], ], 'WirelessDeviceArn' => [ 'type' => 'string', ], 'WirelessDeviceEvent' => [ 'type' => 'string', 'enum' => [ 'Join', 'Rejoin', 'Uplink_Data', 'Downlink_Data', 'Registration', ], ], 'WirelessDeviceEventLogOption' => [ 'type' => 'structure', 'required' => [ 'Event', 'LogLevel', ], 'members' => [ 'Event' => [ 'shape' => 'WirelessDeviceEvent', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], ], ], 'WirelessDeviceEventLogOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessDeviceEventLogOption', ], ], 'WirelessDeviceFrameInfo' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'WirelessDeviceId' => [ 'type' => 'string', 'max' => 256, ], 'WirelessDeviceIdType' => [ 'type' => 'string', 'enum' => [ 'WirelessDeviceId', 'DevEui', 'ThingName', 'SidewalkManufacturingSn', ], ], 'WirelessDeviceImportTask' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ImportTaskId', ], 'Arn' => [ 'shape' => 'ImportTaskArn', ], 'DestinationName' => [ 'shape' => 'DestinationName', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], 'Sidewalk' => [ 'shape' => 'SidewalkGetStartImportInfo', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'Status' => [ 'shape' => 'ImportTaskStatus', ], 'StatusReason' => [ 'shape' => 'StatusReason', ], 'InitializedImportedDeviceCount' => [ 'shape' => 'ImportedWirelessDeviceCount', ], 'PendingImportedDeviceCount' => [ 'shape' => 'ImportedWirelessDeviceCount', ], 'OnboardedImportedDeviceCount' => [ 'shape' => 'ImportedWirelessDeviceCount', ], 'FailedImportedDeviceCount' => [ 'shape' => 'ImportedWirelessDeviceCount', ], ], ], 'WirelessDeviceImportTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessDeviceImportTask', ], ], 'WirelessDeviceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessDeviceId', ], 'max' => 250, 'min' => 0, ], 'WirelessDeviceLogOption' => [ 'type' => 'structure', 'required' => [ 'Type', 'LogLevel', ], 'members' => [ 'Type' => [ 'shape' => 'WirelessDeviceType', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], 'Events' => [ 'shape' => 'WirelessDeviceEventLogOptionList', ], ], ], 'WirelessDeviceLogOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessDeviceLogOption', ], ], 'WirelessDeviceName' => [ 'type' => 'string', 'max' => 256, ], 'WirelessDeviceSidewalkStatus' => [ 'type' => 'string', 'enum' => [ 'PROVISIONED', 'REGISTERED', 'ACTIVATED', 'UNKNOWN', ], ], 'WirelessDeviceStatistics' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'WirelessDeviceArn', ], 'Id' => [ 'shape' => 'WirelessDeviceId', ], 'Type' => [ 'shape' => 'WirelessDeviceType', ], 'Name' => [ 'shape' => 'WirelessDeviceName', ], 'DestinationName' => [ 'shape' => 'DestinationName', ], 'LastUplinkReceivedAt' => [ 'shape' => 'ISODateTimeString', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANListDevice', ], 'Sidewalk' => [ 'shape' => 'SidewalkListDevice', ], 'FuotaDeviceStatus' => [ 'shape' => 'FuotaDeviceStatus', ], 'MulticastDeviceStatus' => [ 'shape' => 'MulticastDeviceStatus', ], 'McGroupId' => [ 'shape' => 'McGroupId', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], ], ], 'WirelessDeviceStatisticsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessDeviceStatistics', ], ], 'WirelessDeviceType' => [ 'type' => 'string', 'enum' => [ 'Sidewalk', 'LoRaWAN', ], ], 'WirelessGatewayArn' => [ 'type' => 'string', ], 'WirelessGatewayEvent' => [ 'type' => 'string', 'enum' => [ 'CUPS_Request', 'Certificate', ], ], 'WirelessGatewayEventLogOption' => [ 'type' => 'structure', 'required' => [ 'Event', 'LogLevel', ], 'members' => [ 'Event' => [ 'shape' => 'WirelessGatewayEvent', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], ], ], 'WirelessGatewayEventLogOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessGatewayEventLogOption', ], ], 'WirelessGatewayId' => [ 'type' => 'string', 'max' => 256, ], 'WirelessGatewayIdType' => [ 'type' => 'string', 'enum' => [ 'GatewayEui', 'WirelessGatewayId', 'ThingName', ], ], 'WirelessGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessGatewayId', ], ], 'WirelessGatewayLogOption' => [ 'type' => 'structure', 'required' => [ 'Type', 'LogLevel', ], 'members' => [ 'Type' => [ 'shape' => 'WirelessGatewayType', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], 'Events' => [ 'shape' => 'WirelessGatewayEventLogOptionList', ], ], ], 'WirelessGatewayLogOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessGatewayLogOption', ], ], 'WirelessGatewayName' => [ 'type' => 'string', 'max' => 256, ], 'WirelessGatewayServiceType' => [ 'type' => 'string', 'enum' => [ 'CUPS', 'LNS', ], ], 'WirelessGatewayStatistics' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'WirelessGatewayArn', ], 'Id' => [ 'shape' => 'WirelessGatewayId', ], 'Name' => [ 'shape' => 'WirelessGatewayName', ], 'Description' => [ 'shape' => 'Description', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANGateway', ], 'LastUplinkReceivedAt' => [ 'shape' => 'ISODateTimeString', ], ], ], 'WirelessGatewayStatisticsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessGatewayStatistics', ], ], 'WirelessGatewayTaskDefinitionArn' => [ 'type' => 'string', ], 'WirelessGatewayTaskDefinitionId' => [ 'type' => 'string', 'max' => 36, 'pattern' => '[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}', ], 'WirelessGatewayTaskDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UpdateWirelessGatewayTaskEntry', ], ], 'WirelessGatewayTaskDefinitionType' => [ 'type' => 'string', 'enum' => [ 'UPDATE', ], ], 'WirelessGatewayTaskName' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'WirelessGatewayTaskStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'IN_PROGRESS', 'FIRST_RETRY', 'SECOND_RETRY', 'COMPLETED', 'FAILED', ], ], 'WirelessGatewayType' => [ 'type' => 'string', 'enum' => [ 'LoRaWAN', ], ], 'WirelessMetadata' => [ 'type' => 'structure', 'members' => [ 'LoRaWAN' => [ 'shape' => 'LoRaWANSendDataToDevice', ], 'Sidewalk' => [ 'shape' => 'SidewalkSendDataToDevice', ], ], ], ],]; +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2020-11-22', 'endpointPrefix' => 'api.iotwireless', 'protocol' => 'rest-json', 'protocols' => [ 'rest-json', ], 'serviceFullName' => 'AWS IoT Wireless', 'serviceId' => 'IoT Wireless', 'signatureVersion' => 'v4', 'signingName' => 'iotwireless', 'uid' => 'iotwireless-2020-11-22', 'auth' => [ 'aws.auth#sigv4', ], ], 'operations' => [ 'AssociateAwsAccountWithPartnerAccount' => [ 'name' => 'AssociateAwsAccountWithPartnerAccount', 'http' => [ 'method' => 'POST', 'requestUri' => '/partner-accounts', ], 'input' => [ 'shape' => 'AssociateAwsAccountWithPartnerAccountRequest', ], 'output' => [ 'shape' => 'AssociateAwsAccountWithPartnerAccountResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'AssociateMulticastGroupWithFuotaTask' => [ 'name' => 'AssociateMulticastGroupWithFuotaTask', 'http' => [ 'method' => 'PUT', 'requestUri' => '/fuota-tasks/{Id}/multicast-group', 'responseCode' => 204, ], 'input' => [ 'shape' => 'AssociateMulticastGroupWithFuotaTaskRequest', ], 'output' => [ 'shape' => 'AssociateMulticastGroupWithFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'AssociateWirelessDeviceWithFuotaTask' => [ 'name' => 'AssociateWirelessDeviceWithFuotaTask', 'http' => [ 'method' => 'PUT', 'requestUri' => '/fuota-tasks/{Id}/wireless-device', 'responseCode' => 204, ], 'input' => [ 'shape' => 'AssociateWirelessDeviceWithFuotaTaskRequest', ], 'output' => [ 'shape' => 'AssociateWirelessDeviceWithFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'AssociateWirelessDeviceWithMulticastGroup' => [ 'name' => 'AssociateWirelessDeviceWithMulticastGroup', 'http' => [ 'method' => 'PUT', 'requestUri' => '/multicast-groups/{Id}/wireless-device', 'responseCode' => 204, ], 'input' => [ 'shape' => 'AssociateWirelessDeviceWithMulticastGroupRequest', ], 'output' => [ 'shape' => 'AssociateWirelessDeviceWithMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'AssociateWirelessDeviceWithThing' => [ 'name' => 'AssociateWirelessDeviceWithThing', 'http' => [ 'method' => 'PUT', 'requestUri' => '/wireless-devices/{Id}/thing', 'responseCode' => 204, ], 'input' => [ 'shape' => 'AssociateWirelessDeviceWithThingRequest', ], 'output' => [ 'shape' => 'AssociateWirelessDeviceWithThingResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'AssociateWirelessGatewayWithCertificate' => [ 'name' => 'AssociateWirelessGatewayWithCertificate', 'http' => [ 'method' => 'PUT', 'requestUri' => '/wireless-gateways/{Id}/certificate', ], 'input' => [ 'shape' => 'AssociateWirelessGatewayWithCertificateRequest', ], 'output' => [ 'shape' => 'AssociateWirelessGatewayWithCertificateResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'AssociateWirelessGatewayWithThing' => [ 'name' => 'AssociateWirelessGatewayWithThing', 'http' => [ 'method' => 'PUT', 'requestUri' => '/wireless-gateways/{Id}/thing', 'responseCode' => 204, ], 'input' => [ 'shape' => 'AssociateWirelessGatewayWithThingRequest', ], 'output' => [ 'shape' => 'AssociateWirelessGatewayWithThingResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CancelMulticastGroupSession' => [ 'name' => 'CancelMulticastGroupSession', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/multicast-groups/{Id}/session', 'responseCode' => 204, ], 'input' => [ 'shape' => 'CancelMulticastGroupSessionRequest', ], 'output' => [ 'shape' => 'CancelMulticastGroupSessionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateDestination' => [ 'name' => 'CreateDestination', 'http' => [ 'method' => 'POST', 'requestUri' => '/destinations', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDestinationRequest', ], 'output' => [ 'shape' => 'CreateDestinationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateDeviceProfile' => [ 'name' => 'CreateDeviceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/device-profiles', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDeviceProfileRequest', ], 'output' => [ 'shape' => 'CreateDeviceProfileResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateFuotaTask' => [ 'name' => 'CreateFuotaTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/fuota-tasks', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateFuotaTaskRequest', ], 'output' => [ 'shape' => 'CreateFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateMulticastGroup' => [ 'name' => 'CreateMulticastGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/multicast-groups', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateMulticastGroupRequest', ], 'output' => [ 'shape' => 'CreateMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateNetworkAnalyzerConfiguration' => [ 'name' => 'CreateNetworkAnalyzerConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/network-analyzer-configurations', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateNetworkAnalyzerConfigurationRequest', ], 'output' => [ 'shape' => 'CreateNetworkAnalyzerConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateServiceProfile' => [ 'name' => 'CreateServiceProfile', 'http' => [ 'method' => 'POST', 'requestUri' => '/service-profiles', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateServiceProfileRequest', ], 'output' => [ 'shape' => 'CreateServiceProfileResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateWirelessDevice' => [ 'name' => 'CreateWirelessDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/wireless-devices', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateWirelessDeviceRequest', ], 'output' => [ 'shape' => 'CreateWirelessDeviceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateWirelessGateway' => [ 'name' => 'CreateWirelessGateway', 'http' => [ 'method' => 'POST', 'requestUri' => '/wireless-gateways', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateWirelessGatewayRequest', ], 'output' => [ 'shape' => 'CreateWirelessGatewayResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateWirelessGatewayTask' => [ 'name' => 'CreateWirelessGatewayTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/wireless-gateways/{Id}/tasks', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateWirelessGatewayTaskRequest', ], 'output' => [ 'shape' => 'CreateWirelessGatewayTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateWirelessGatewayTaskDefinition' => [ 'name' => 'CreateWirelessGatewayTaskDefinition', 'http' => [ 'method' => 'POST', 'requestUri' => '/wireless-gateway-task-definitions', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateWirelessGatewayTaskDefinitionRequest', ], 'output' => [ 'shape' => 'CreateWirelessGatewayTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteDestination' => [ 'name' => 'DeleteDestination', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/destinations/{Name}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDestinationRequest', ], 'output' => [ 'shape' => 'DeleteDestinationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteDeviceProfile' => [ 'name' => 'DeleteDeviceProfile', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/device-profiles/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteDeviceProfileRequest', ], 'output' => [ 'shape' => 'DeleteDeviceProfileResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteFuotaTask' => [ 'name' => 'DeleteFuotaTask', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/fuota-tasks/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteFuotaTaskRequest', ], 'output' => [ 'shape' => 'DeleteFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteMulticastGroup' => [ 'name' => 'DeleteMulticastGroup', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/multicast-groups/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteMulticastGroupRequest', ], 'output' => [ 'shape' => 'DeleteMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteNetworkAnalyzerConfiguration' => [ 'name' => 'DeleteNetworkAnalyzerConfiguration', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/network-analyzer-configurations/{ConfigurationName}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteNetworkAnalyzerConfigurationRequest', ], 'output' => [ 'shape' => 'DeleteNetworkAnalyzerConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteQueuedMessages' => [ 'name' => 'DeleteQueuedMessages', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless-devices/{Id}/data', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteQueuedMessagesRequest', ], 'output' => [ 'shape' => 'DeleteQueuedMessagesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteServiceProfile' => [ 'name' => 'DeleteServiceProfile', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/service-profiles/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteServiceProfileRequest', ], 'output' => [ 'shape' => 'DeleteServiceProfileResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteWirelessDevice' => [ 'name' => 'DeleteWirelessDevice', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless-devices/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteWirelessDeviceRequest', ], 'output' => [ 'shape' => 'DeleteWirelessDeviceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteWirelessDeviceImportTask' => [ 'name' => 'DeleteWirelessDeviceImportTask', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless_device_import_task/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteWirelessDeviceImportTaskRequest', ], 'output' => [ 'shape' => 'DeleteWirelessDeviceImportTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteWirelessGateway' => [ 'name' => 'DeleteWirelessGateway', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless-gateways/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteWirelessGatewayRequest', ], 'output' => [ 'shape' => 'DeleteWirelessGatewayResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteWirelessGatewayTask' => [ 'name' => 'DeleteWirelessGatewayTask', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless-gateways/{Id}/tasks', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteWirelessGatewayTaskRequest', ], 'output' => [ 'shape' => 'DeleteWirelessGatewayTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeleteWirelessGatewayTaskDefinition' => [ 'name' => 'DeleteWirelessGatewayTaskDefinition', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless-gateway-task-definitions/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteWirelessGatewayTaskDefinitionRequest', ], 'output' => [ 'shape' => 'DeleteWirelessGatewayTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DeregisterWirelessDevice' => [ 'name' => 'DeregisterWirelessDevice', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/wireless-devices/{Identifier}/deregister', ], 'input' => [ 'shape' => 'DeregisterWirelessDeviceRequest', ], 'output' => [ 'shape' => 'DeregisterWirelessDeviceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DisassociateAwsAccountFromPartnerAccount' => [ 'name' => 'DisassociateAwsAccountFromPartnerAccount', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/partner-accounts/{PartnerAccountId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DisassociateAwsAccountFromPartnerAccountRequest', ], 'output' => [ 'shape' => 'DisassociateAwsAccountFromPartnerAccountResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DisassociateMulticastGroupFromFuotaTask' => [ 'name' => 'DisassociateMulticastGroupFromFuotaTask', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/fuota-tasks/{Id}/multicast-groups/{MulticastGroupId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DisassociateMulticastGroupFromFuotaTaskRequest', ], 'output' => [ 'shape' => 'DisassociateMulticastGroupFromFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DisassociateWirelessDeviceFromFuotaTask' => [ 'name' => 'DisassociateWirelessDeviceFromFuotaTask', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/fuota-tasks/{Id}/wireless-devices/{WirelessDeviceId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DisassociateWirelessDeviceFromFuotaTaskRequest', ], 'output' => [ 'shape' => 'DisassociateWirelessDeviceFromFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DisassociateWirelessDeviceFromMulticastGroup' => [ 'name' => 'DisassociateWirelessDeviceFromMulticastGroup', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/multicast-groups/{Id}/wireless-devices/{WirelessDeviceId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DisassociateWirelessDeviceFromMulticastGroupRequest', ], 'output' => [ 'shape' => 'DisassociateWirelessDeviceFromMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DisassociateWirelessDeviceFromThing' => [ 'name' => 'DisassociateWirelessDeviceFromThing', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless-devices/{Id}/thing', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DisassociateWirelessDeviceFromThingRequest', ], 'output' => [ 'shape' => 'DisassociateWirelessDeviceFromThingResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DisassociateWirelessGatewayFromCertificate' => [ 'name' => 'DisassociateWirelessGatewayFromCertificate', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless-gateways/{Id}/certificate', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DisassociateWirelessGatewayFromCertificateRequest', ], 'output' => [ 'shape' => 'DisassociateWirelessGatewayFromCertificateResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'DisassociateWirelessGatewayFromThing' => [ 'name' => 'DisassociateWirelessGatewayFromThing', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/wireless-gateways/{Id}/thing', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DisassociateWirelessGatewayFromThingRequest', ], 'output' => [ 'shape' => 'DisassociateWirelessGatewayFromThingResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetDestination' => [ 'name' => 'GetDestination', 'http' => [ 'method' => 'GET', 'requestUri' => '/destinations/{Name}', ], 'input' => [ 'shape' => 'GetDestinationRequest', ], 'output' => [ 'shape' => 'GetDestinationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetDeviceProfile' => [ 'name' => 'GetDeviceProfile', 'http' => [ 'method' => 'GET', 'requestUri' => '/device-profiles/{Id}', ], 'input' => [ 'shape' => 'GetDeviceProfileRequest', ], 'output' => [ 'shape' => 'GetDeviceProfileResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetEventConfigurationByResourceTypes' => [ 'name' => 'GetEventConfigurationByResourceTypes', 'http' => [ 'method' => 'GET', 'requestUri' => '/event-configurations-resource-types', ], 'input' => [ 'shape' => 'GetEventConfigurationByResourceTypesRequest', ], 'output' => [ 'shape' => 'GetEventConfigurationByResourceTypesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetFuotaTask' => [ 'name' => 'GetFuotaTask', 'http' => [ 'method' => 'GET', 'requestUri' => '/fuota-tasks/{Id}', ], 'input' => [ 'shape' => 'GetFuotaTaskRequest', ], 'output' => [ 'shape' => 'GetFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetLogLevelsByResourceTypes' => [ 'name' => 'GetLogLevelsByResourceTypes', 'http' => [ 'method' => 'GET', 'requestUri' => '/log-levels', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetLogLevelsByResourceTypesRequest', ], 'output' => [ 'shape' => 'GetLogLevelsByResourceTypesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ValidationException', ], ], ], 'GetMetricConfiguration' => [ 'name' => 'GetMetricConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/metric-configuration', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetMetricConfigurationRequest', ], 'output' => [ 'shape' => 'GetMetricConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetMetrics' => [ 'name' => 'GetMetrics', 'http' => [ 'method' => 'POST', 'requestUri' => '/metrics', ], 'input' => [ 'shape' => 'GetMetricsRequest', ], 'output' => [ 'shape' => 'GetMetricsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetMulticastGroup' => [ 'name' => 'GetMulticastGroup', 'http' => [ 'method' => 'GET', 'requestUri' => '/multicast-groups/{Id}', ], 'input' => [ 'shape' => 'GetMulticastGroupRequest', ], 'output' => [ 'shape' => 'GetMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetMulticastGroupSession' => [ 'name' => 'GetMulticastGroupSession', 'http' => [ 'method' => 'GET', 'requestUri' => '/multicast-groups/{Id}/session', ], 'input' => [ 'shape' => 'GetMulticastGroupSessionRequest', ], 'output' => [ 'shape' => 'GetMulticastGroupSessionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetNetworkAnalyzerConfiguration' => [ 'name' => 'GetNetworkAnalyzerConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/network-analyzer-configurations/{ConfigurationName}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetNetworkAnalyzerConfigurationRequest', ], 'output' => [ 'shape' => 'GetNetworkAnalyzerConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetPartnerAccount' => [ 'name' => 'GetPartnerAccount', 'http' => [ 'method' => 'GET', 'requestUri' => '/partner-accounts/{PartnerAccountId}', ], 'input' => [ 'shape' => 'GetPartnerAccountRequest', ], 'output' => [ 'shape' => 'GetPartnerAccountResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetPosition' => [ 'name' => 'GetPosition', 'http' => [ 'method' => 'GET', 'requestUri' => '/positions/{ResourceIdentifier}', ], 'input' => [ 'shape' => 'GetPositionRequest', ], 'output' => [ 'shape' => 'GetPositionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'GetPositionConfiguration' => [ 'name' => 'GetPositionConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/position-configurations/{ResourceIdentifier}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPositionConfigurationRequest', ], 'output' => [ 'shape' => 'GetPositionConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'GetPositionEstimate' => [ 'name' => 'GetPositionEstimate', 'http' => [ 'method' => 'POST', 'requestUri' => '/position-estimate', ], 'input' => [ 'shape' => 'GetPositionEstimateRequest', ], 'output' => [ 'shape' => 'GetPositionEstimateResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetResourceEventConfiguration' => [ 'name' => 'GetResourceEventConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/event-configurations/{Identifier}', ], 'input' => [ 'shape' => 'GetResourceEventConfigurationRequest', ], 'output' => [ 'shape' => 'GetResourceEventConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetResourceLogLevel' => [ 'name' => 'GetResourceLogLevel', 'http' => [ 'method' => 'GET', 'requestUri' => '/log-levels/{ResourceIdentifier}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetResourceLogLevelRequest', ], 'output' => [ 'shape' => 'GetResourceLogLevelResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ValidationException', ], ], ], 'GetResourcePosition' => [ 'name' => 'GetResourcePosition', 'http' => [ 'method' => 'GET', 'requestUri' => '/resource-positions/{ResourceIdentifier}', ], 'input' => [ 'shape' => 'GetResourcePositionRequest', ], 'output' => [ 'shape' => 'GetResourcePositionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetServiceEndpoint' => [ 'name' => 'GetServiceEndpoint', 'http' => [ 'method' => 'GET', 'requestUri' => '/service-endpoint', ], 'input' => [ 'shape' => 'GetServiceEndpointRequest', ], 'output' => [ 'shape' => 'GetServiceEndpointResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetServiceProfile' => [ 'name' => 'GetServiceProfile', 'http' => [ 'method' => 'GET', 'requestUri' => '/service-profiles/{Id}', ], 'input' => [ 'shape' => 'GetServiceProfileRequest', ], 'output' => [ 'shape' => 'GetServiceProfileResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessDevice' => [ 'name' => 'GetWirelessDevice', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-devices/{Identifier}', ], 'input' => [ 'shape' => 'GetWirelessDeviceRequest', ], 'output' => [ 'shape' => 'GetWirelessDeviceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessDeviceImportTask' => [ 'name' => 'GetWirelessDeviceImportTask', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless_device_import_task/{Id}', ], 'input' => [ 'shape' => 'GetWirelessDeviceImportTaskRequest', ], 'output' => [ 'shape' => 'GetWirelessDeviceImportTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessDeviceStatistics' => [ 'name' => 'GetWirelessDeviceStatistics', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-devices/{Id}/statistics', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetWirelessDeviceStatisticsRequest', ], 'output' => [ 'shape' => 'GetWirelessDeviceStatisticsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessGateway' => [ 'name' => 'GetWirelessGateway', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-gateways/{Identifier}', ], 'input' => [ 'shape' => 'GetWirelessGatewayRequest', ], 'output' => [ 'shape' => 'GetWirelessGatewayResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessGatewayCertificate' => [ 'name' => 'GetWirelessGatewayCertificate', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-gateways/{Id}/certificate', ], 'input' => [ 'shape' => 'GetWirelessGatewayCertificateRequest', ], 'output' => [ 'shape' => 'GetWirelessGatewayCertificateResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessGatewayFirmwareInformation' => [ 'name' => 'GetWirelessGatewayFirmwareInformation', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-gateways/{Id}/firmware-information', ], 'input' => [ 'shape' => 'GetWirelessGatewayFirmwareInformationRequest', ], 'output' => [ 'shape' => 'GetWirelessGatewayFirmwareInformationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessGatewayStatistics' => [ 'name' => 'GetWirelessGatewayStatistics', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-gateways/{Id}/statistics', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetWirelessGatewayStatisticsRequest', ], 'output' => [ 'shape' => 'GetWirelessGatewayStatisticsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessGatewayTask' => [ 'name' => 'GetWirelessGatewayTask', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-gateways/{Id}/tasks', ], 'input' => [ 'shape' => 'GetWirelessGatewayTaskRequest', ], 'output' => [ 'shape' => 'GetWirelessGatewayTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetWirelessGatewayTaskDefinition' => [ 'name' => 'GetWirelessGatewayTaskDefinition', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-gateway-task-definitions/{Id}', ], 'input' => [ 'shape' => 'GetWirelessGatewayTaskDefinitionRequest', ], 'output' => [ 'shape' => 'GetWirelessGatewayTaskDefinitionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListDestinations' => [ 'name' => 'ListDestinations', 'http' => [ 'method' => 'GET', 'requestUri' => '/destinations', ], 'input' => [ 'shape' => 'ListDestinationsRequest', ], 'output' => [ 'shape' => 'ListDestinationsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListDeviceProfiles' => [ 'name' => 'ListDeviceProfiles', 'http' => [ 'method' => 'GET', 'requestUri' => '/device-profiles', ], 'input' => [ 'shape' => 'ListDeviceProfilesRequest', ], 'output' => [ 'shape' => 'ListDeviceProfilesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListDevicesForWirelessDeviceImportTask' => [ 'name' => 'ListDevicesForWirelessDeviceImportTask', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless_device_import_task', ], 'input' => [ 'shape' => 'ListDevicesForWirelessDeviceImportTaskRequest', ], 'output' => [ 'shape' => 'ListDevicesForWirelessDeviceImportTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListEventConfigurations' => [ 'name' => 'ListEventConfigurations', 'http' => [ 'method' => 'GET', 'requestUri' => '/event-configurations', ], 'input' => [ 'shape' => 'ListEventConfigurationsRequest', ], 'output' => [ 'shape' => 'ListEventConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListFuotaTasks' => [ 'name' => 'ListFuotaTasks', 'http' => [ 'method' => 'GET', 'requestUri' => '/fuota-tasks', ], 'input' => [ 'shape' => 'ListFuotaTasksRequest', ], 'output' => [ 'shape' => 'ListFuotaTasksResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListMulticastGroups' => [ 'name' => 'ListMulticastGroups', 'http' => [ 'method' => 'GET', 'requestUri' => '/multicast-groups', ], 'input' => [ 'shape' => 'ListMulticastGroupsRequest', ], 'output' => [ 'shape' => 'ListMulticastGroupsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListMulticastGroupsByFuotaTask' => [ 'name' => 'ListMulticastGroupsByFuotaTask', 'http' => [ 'method' => 'GET', 'requestUri' => '/fuota-tasks/{Id}/multicast-groups', ], 'input' => [ 'shape' => 'ListMulticastGroupsByFuotaTaskRequest', ], 'output' => [ 'shape' => 'ListMulticastGroupsByFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListNetworkAnalyzerConfigurations' => [ 'name' => 'ListNetworkAnalyzerConfigurations', 'http' => [ 'method' => 'GET', 'requestUri' => '/network-analyzer-configurations', ], 'input' => [ 'shape' => 'ListNetworkAnalyzerConfigurationsRequest', ], 'output' => [ 'shape' => 'ListNetworkAnalyzerConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListPartnerAccounts' => [ 'name' => 'ListPartnerAccounts', 'http' => [ 'method' => 'GET', 'requestUri' => '/partner-accounts', ], 'input' => [ 'shape' => 'ListPartnerAccountsRequest', ], 'output' => [ 'shape' => 'ListPartnerAccountsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListPositionConfigurations' => [ 'name' => 'ListPositionConfigurations', 'http' => [ 'method' => 'GET', 'requestUri' => '/position-configurations', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPositionConfigurationsRequest', ], 'output' => [ 'shape' => 'ListPositionConfigurationsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'ListQueuedMessages' => [ 'name' => 'ListQueuedMessages', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-devices/{Id}/data', ], 'input' => [ 'shape' => 'ListQueuedMessagesRequest', ], 'output' => [ 'shape' => 'ListQueuedMessagesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'ListServiceProfiles' => [ 'name' => 'ListServiceProfiles', 'http' => [ 'method' => 'GET', 'requestUri' => '/service-profiles', ], 'input' => [ 'shape' => 'ListServiceProfilesRequest', ], 'output' => [ 'shape' => 'ListServiceProfilesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListWirelessDeviceImportTasks' => [ 'name' => 'ListWirelessDeviceImportTasks', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless_device_import_tasks', ], 'input' => [ 'shape' => 'ListWirelessDeviceImportTasksRequest', ], 'output' => [ 'shape' => 'ListWirelessDeviceImportTasksResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListWirelessDevices' => [ 'name' => 'ListWirelessDevices', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-devices', ], 'input' => [ 'shape' => 'ListWirelessDevicesRequest', ], 'output' => [ 'shape' => 'ListWirelessDevicesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'ListWirelessGatewayTaskDefinitions' => [ 'name' => 'ListWirelessGatewayTaskDefinitions', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-gateway-task-definitions', ], 'input' => [ 'shape' => 'ListWirelessGatewayTaskDefinitionsRequest', ], 'output' => [ 'shape' => 'ListWirelessGatewayTaskDefinitionsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListWirelessGateways' => [ 'name' => 'ListWirelessGateways', 'http' => [ 'method' => 'GET', 'requestUri' => '/wireless-gateways', ], 'input' => [ 'shape' => 'ListWirelessGatewaysRequest', ], 'output' => [ 'shape' => 'ListWirelessGatewaysResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'PutPositionConfiguration' => [ 'name' => 'PutPositionConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/position-configurations/{ResourceIdentifier}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutPositionConfigurationRequest', ], 'output' => [ 'shape' => 'PutPositionConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'PutResourceLogLevel' => [ 'name' => 'PutResourceLogLevel', 'http' => [ 'method' => 'PUT', 'requestUri' => '/log-levels/{ResourceIdentifier}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'PutResourceLogLevelRequest', ], 'output' => [ 'shape' => 'PutResourceLogLevelResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ValidationException', ], ], ], 'ResetAllResourceLogLevels' => [ 'name' => 'ResetAllResourceLogLevels', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/log-levels', 'responseCode' => 204, ], 'input' => [ 'shape' => 'ResetAllResourceLogLevelsRequest', ], 'output' => [ 'shape' => 'ResetAllResourceLogLevelsResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ValidationException', ], ], ], 'ResetResourceLogLevel' => [ 'name' => 'ResetResourceLogLevel', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/log-levels/{ResourceIdentifier}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'ResetResourceLogLevelRequest', ], 'output' => [ 'shape' => 'ResetResourceLogLevelResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ValidationException', ], ], ], 'SendDataToMulticastGroup' => [ 'name' => 'SendDataToMulticastGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/multicast-groups/{Id}/data', 'responseCode' => 201, ], 'input' => [ 'shape' => 'SendDataToMulticastGroupRequest', ], 'output' => [ 'shape' => 'SendDataToMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'SendDataToWirelessDevice' => [ 'name' => 'SendDataToWirelessDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/wireless-devices/{Id}/data', 'responseCode' => 202, ], 'input' => [ 'shape' => 'SendDataToWirelessDeviceRequest', ], 'output' => [ 'shape' => 'SendDataToWirelessDeviceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StartBulkAssociateWirelessDeviceWithMulticastGroup' => [ 'name' => 'StartBulkAssociateWirelessDeviceWithMulticastGroup', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/multicast-groups/{Id}/bulk', 'responseCode' => 204, ], 'input' => [ 'shape' => 'StartBulkAssociateWirelessDeviceWithMulticastGroupRequest', ], 'output' => [ 'shape' => 'StartBulkAssociateWirelessDeviceWithMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'StartBulkDisassociateWirelessDeviceFromMulticastGroup' => [ 'name' => 'StartBulkDisassociateWirelessDeviceFromMulticastGroup', 'http' => [ 'method' => 'POST', 'requestUri' => '/multicast-groups/{Id}/bulk', 'responseCode' => 204, ], 'input' => [ 'shape' => 'StartBulkDisassociateWirelessDeviceFromMulticastGroupRequest', ], 'output' => [ 'shape' => 'StartBulkDisassociateWirelessDeviceFromMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'StartFuotaTask' => [ 'name' => 'StartFuotaTask', 'http' => [ 'method' => 'PUT', 'requestUri' => '/fuota-tasks/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'StartFuotaTaskRequest', ], 'output' => [ 'shape' => 'StartFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'StartMulticastGroupSession' => [ 'name' => 'StartMulticastGroupSession', 'http' => [ 'method' => 'PUT', 'requestUri' => '/multicast-groups/{Id}/session', 'responseCode' => 204, ], 'input' => [ 'shape' => 'StartMulticastGroupSessionRequest', ], 'output' => [ 'shape' => 'StartMulticastGroupSessionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'StartSingleWirelessDeviceImportTask' => [ 'name' => 'StartSingleWirelessDeviceImportTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/wireless_single_device_import_task', 'responseCode' => 201, ], 'input' => [ 'shape' => 'StartSingleWirelessDeviceImportTaskRequest', ], 'output' => [ 'shape' => 'StartSingleWirelessDeviceImportTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'StartWirelessDeviceImportTask' => [ 'name' => 'StartWirelessDeviceImportTask', 'http' => [ 'method' => 'POST', 'requestUri' => '/wireless_device_import_task', 'responseCode' => 201, ], 'input' => [ 'shape' => 'StartWirelessDeviceImportTaskRequest', ], 'output' => [ 'shape' => 'StartWirelessDeviceImportTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tags', 'responseCode' => 204, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'TooManyTagsException', ], ], ], 'TestWirelessDevice' => [ 'name' => 'TestWirelessDevice', 'http' => [ 'method' => 'POST', 'requestUri' => '/wireless-devices/{Id}/test', 'responseCode' => 200, ], 'input' => [ 'shape' => 'TestWirelessDeviceRequest', ], 'output' => [ 'shape' => 'TestWirelessDeviceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/tags', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateDestination' => [ 'name' => 'UpdateDestination', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/destinations/{Name}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateDestinationRequest', ], 'output' => [ 'shape' => 'UpdateDestinationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateEventConfigurationByResourceTypes' => [ 'name' => 'UpdateEventConfigurationByResourceTypes', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/event-configurations-resource-types', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateEventConfigurationByResourceTypesRequest', ], 'output' => [ 'shape' => 'UpdateEventConfigurationByResourceTypesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateFuotaTask' => [ 'name' => 'UpdateFuotaTask', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/fuota-tasks/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateFuotaTaskRequest', ], 'output' => [ 'shape' => 'UpdateFuotaTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateLogLevelsByResourceTypes' => [ 'name' => 'UpdateLogLevelsByResourceTypes', 'http' => [ 'method' => 'POST', 'requestUri' => '/log-levels', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateLogLevelsByResourceTypesRequest', ], 'output' => [ 'shape' => 'UpdateLogLevelsByResourceTypesResponse', ], 'errors' => [ [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ValidationException', ], ], ], 'UpdateMetricConfiguration' => [ 'name' => 'UpdateMetricConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/metric-configuration', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateMetricConfigurationRequest', ], 'output' => [ 'shape' => 'UpdateMetricConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], 'idempotent' => true, ], 'UpdateMulticastGroup' => [ 'name' => 'UpdateMulticastGroup', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/multicast-groups/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateMulticastGroupRequest', ], 'output' => [ 'shape' => 'UpdateMulticastGroupResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateNetworkAnalyzerConfiguration' => [ 'name' => 'UpdateNetworkAnalyzerConfiguration', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/network-analyzer-configurations/{ConfigurationName}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateNetworkAnalyzerConfigurationRequest', ], 'output' => [ 'shape' => 'UpdateNetworkAnalyzerConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdatePartnerAccount' => [ 'name' => 'UpdatePartnerAccount', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/partner-accounts/{PartnerAccountId}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdatePartnerAccountRequest', ], 'output' => [ 'shape' => 'UpdatePartnerAccountResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdatePosition' => [ 'name' => 'UpdatePosition', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/positions/{ResourceIdentifier}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdatePositionRequest', ], 'output' => [ 'shape' => 'UpdatePositionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'UpdateResourceEventConfiguration' => [ 'name' => 'UpdateResourceEventConfiguration', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/event-configurations/{Identifier}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateResourceEventConfigurationRequest', ], 'output' => [ 'shape' => 'UpdateResourceEventConfigurationResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateResourcePosition' => [ 'name' => 'UpdateResourcePosition', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/resource-positions/{ResourceIdentifier}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateResourcePositionRequest', ], 'output' => [ 'shape' => 'UpdateResourcePositionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'UpdateWirelessDevice' => [ 'name' => 'UpdateWirelessDevice', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/wireless-devices/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateWirelessDeviceRequest', ], 'output' => [ 'shape' => 'UpdateWirelessDeviceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateWirelessDeviceImportTask' => [ 'name' => 'UpdateWirelessDeviceImportTask', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/wireless_device_import_task/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateWirelessDeviceImportTaskRequest', ], 'output' => [ 'shape' => 'UpdateWirelessDeviceImportTaskResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'UpdateWirelessGateway' => [ 'name' => 'UpdateWirelessGateway', 'http' => [ 'method' => 'PATCH', 'requestUri' => '/wireless-gateways/{Id}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'UpdateWirelessGatewayRequest', ], 'output' => [ 'shape' => 'UpdateWirelessGatewayResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], ], 'shapes' => [ 'AbpV1_0_x' => [ 'type' => 'structure', 'members' => [ 'DevAddr' => [ 'shape' => 'DevAddr', ], 'SessionKeys' => [ 'shape' => 'SessionKeysAbpV1_0_x', ], 'FCntStart' => [ 'shape' => 'FCntStart', ], ], ], 'AbpV1_1' => [ 'type' => 'structure', 'members' => [ 'DevAddr' => [ 'shape' => 'DevAddr', ], 'SessionKeys' => [ 'shape' => 'SessionKeysAbpV1_1', ], 'FCntStart' => [ 'shape' => 'FCntStart', ], ], ], 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'AccountLinked' => [ 'type' => 'boolean', ], 'Accuracy' => [ 'type' => 'structure', 'members' => [ 'HorizontalAccuracy' => [ 'shape' => 'HorizontalAccuracy', ], 'VerticalAccuracy' => [ 'shape' => 'VerticalAccuracy', ], ], ], 'AckModeRetryDurationSecs' => [ 'type' => 'integer', 'max' => 604800, 'min' => 0, ], 'AddGwMetadata' => [ 'type' => 'boolean', ], 'AdvancedConfiguration' => [ 'type' => 'structure', 'members' => [ 'WiFiCellular' => [ 'shape' => 'WiFiCellular', ], ], ], 'AggregationPeriod' => [ 'type' => 'string', 'enum' => [ 'OneHour', 'OneDay', 'OneWeek', ], ], 'AmazonId' => [ 'type' => 'string', 'max' => 2048, ], 'AmazonResourceName' => [ 'type' => 'string', 'max' => 1011, 'min' => 1, ], 'ApId' => [ 'type' => 'string', 'max' => 256, ], 'AppEui' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{16}', ], 'AppKey' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{32}', ], 'AppSKey' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{32}', ], 'AppServerPrivateKey' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, 'pattern' => '[a-fA-F0-9]{64}', 'sensitive' => true, ], 'ApplicationConfig' => [ 'type' => 'structure', 'members' => [ 'FPort' => [ 'shape' => 'FPort', ], 'Type' => [ 'shape' => 'ApplicationConfigType', ], 'DestinationName' => [ 'shape' => 'DestinationName', ], ], ], 'ApplicationConfigType' => [ 'type' => 'string', 'enum' => [ 'SemtechGeolocation', ], ], 'ApplicationServerPublicKey' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, 'pattern' => '[a-fA-F0-9]{64}', 'sensitive' => true, ], 'Applications' => [ 'type' => 'list', 'member' => [ 'shape' => 'ApplicationConfig', ], ], 'AssistPosition' => [ 'type' => 'list', 'member' => [ 'shape' => 'Coordinate', ], 'max' => 2, 'min' => 2, ], 'AssociateAwsAccountWithPartnerAccountRequest' => [ 'type' => 'structure', 'required' => [ 'Sidewalk', ], 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkAccountInfo', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'AssociateAwsAccountWithPartnerAccountResponse' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkAccountInfo', ], 'Arn' => [ 'shape' => 'PartnerAccountArn', ], ], ], 'AssociateMulticastGroupWithFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'MulticastGroupId', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], 'MulticastGroupId' => [ 'shape' => 'MulticastGroupId', ], ], ], 'AssociateMulticastGroupWithFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'AssociateWirelessDeviceWithFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'WirelessDeviceId', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], 'WirelessDeviceId' => [ 'shape' => 'WirelessDeviceId', ], ], ], 'AssociateWirelessDeviceWithFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'AssociateWirelessDeviceWithMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'WirelessDeviceId', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], 'WirelessDeviceId' => [ 'shape' => 'WirelessDeviceId', ], ], ], 'AssociateWirelessDeviceWithMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'AssociateWirelessDeviceWithThingRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'ThingArn', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], 'ThingArn' => [ 'shape' => 'ThingArn', ], ], ], 'AssociateWirelessDeviceWithThingResponse' => [ 'type' => 'structure', 'members' => [], ], 'AssociateWirelessGatewayWithCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'IotCertificateId', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], 'IotCertificateId' => [ 'shape' => 'IotCertificateId', ], ], ], 'AssociateWirelessGatewayWithCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'IotCertificateId' => [ 'shape' => 'IotCertificateId', ], ], ], 'AssociateWirelessGatewayWithThingRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'ThingArn', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], 'ThingArn' => [ 'shape' => 'ThingArn', ], ], ], 'AssociateWirelessGatewayWithThingResponse' => [ 'type' => 'structure', 'members' => [], ], 'AutoCreateTasks' => [ 'type' => 'boolean', ], 'Avg' => [ 'type' => 'double', ], 'BCCH' => [ 'type' => 'integer', 'max' => 1023, 'min' => 0, ], 'BSIC' => [ 'type' => 'integer', 'max' => 63, 'min' => 0, ], 'BaseLat' => [ 'type' => 'float', 'max' => 90, 'min' => -90, ], 'BaseLng' => [ 'type' => 'float', 'max' => 180, 'min' => -180, ], 'BaseStationId' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'BatteryLevel' => [ 'type' => 'string', 'enum' => [ 'normal', 'low', 'critical', ], ], 'Beaconing' => [ 'type' => 'structure', 'members' => [ 'DataRate' => [ 'shape' => 'BeaconingDataRate', ], 'Frequencies' => [ 'shape' => 'BeaconingFrequencies', ], ], ], 'BeaconingDataRate' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'BeaconingFrequencies' => [ 'type' => 'list', 'member' => [ 'shape' => 'BeaconingFrequency', ], 'max' => 10, 'min' => 0, ], 'BeaconingFrequency' => [ 'type' => 'integer', 'max' => 1000000000, 'min' => 100000000, ], 'CancelMulticastGroupSessionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'CancelMulticastGroupSessionResponse' => [ 'type' => 'structure', 'members' => [], ], 'CaptureTimeAccuracy' => [ 'type' => 'float', ], 'CdmaChannel' => [ 'type' => 'integer', 'max' => 4095, 'min' => 0, ], 'CdmaList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CdmaObj', ], 'max' => 16, 'min' => 1, ], 'CdmaLocalId' => [ 'type' => 'structure', 'required' => [ 'PnOffset', 'CdmaChannel', ], 'members' => [ 'PnOffset' => [ 'shape' => 'PnOffset', ], 'CdmaChannel' => [ 'shape' => 'CdmaChannel', ], ], ], 'CdmaNmrList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CdmaNmrObj', ], 'max' => 32, 'min' => 1, ], 'CdmaNmrObj' => [ 'type' => 'structure', 'required' => [ 'PnOffset', 'CdmaChannel', ], 'members' => [ 'PnOffset' => [ 'shape' => 'PnOffset', ], 'CdmaChannel' => [ 'shape' => 'CdmaChannel', ], 'PilotPower' => [ 'shape' => 'PilotPower', ], 'BaseStationId' => [ 'shape' => 'BaseStationId', ], ], ], 'CdmaObj' => [ 'type' => 'structure', 'required' => [ 'SystemId', 'NetworkId', 'BaseStationId', ], 'members' => [ 'SystemId' => [ 'shape' => 'SystemId', ], 'NetworkId' => [ 'shape' => 'NetworkId', ], 'BaseStationId' => [ 'shape' => 'BaseStationId', ], 'RegistrationZone' => [ 'shape' => 'RegistrationZone', ], 'CdmaLocalId' => [ 'shape' => 'CdmaLocalId', ], 'PilotPower' => [ 'shape' => 'PilotPower', ], 'BaseLat' => [ 'shape' => 'BaseLat', ], 'BaseLng' => [ 'shape' => 'BaseLng', ], 'CdmaNmr' => [ 'shape' => 'CdmaNmrList', ], ], ], 'CellParams' => [ 'type' => 'integer', 'max' => 127, 'min' => 0, ], 'CellTowers' => [ 'type' => 'structure', 'members' => [ 'Gsm' => [ 'shape' => 'GsmList', ], 'Wcdma' => [ 'shape' => 'WcdmaList', ], 'Tdscdma' => [ 'shape' => 'TdscdmaList', ], 'Lte' => [ 'shape' => 'LteList', ], 'Cdma' => [ 'shape' => 'CdmaList', ], ], ], 'CertificateList' => [ 'type' => 'structure', 'required' => [ 'SigningAlg', 'Value', ], 'members' => [ 'SigningAlg' => [ 'shape' => 'SigningAlg', ], 'Value' => [ 'shape' => 'CertificateValue', ], ], ], 'CertificatePEM' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, 'pattern' => '[^-A-Za-z0-9+/=]|=[^=]|={3,}${1,4096}', ], 'CertificateValue' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'ChannelMask' => [ 'type' => 'string', 'max' => 2048, ], 'ClassBTimeout' => [ 'type' => 'integer', 'max' => 1000, 'min' => 0, ], 'ClassCTimeout' => [ 'type' => 'integer', 'max' => 1000, 'min' => 0, ], 'ClientRequestToken' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '^[a-zA-Z0-9-_]+$', ], 'ConfidencePercent' => [ 'type' => 'integer', 'max' => 99, 'min' => 50, ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], 'ResourceId' => [ 'shape' => 'ResourceId', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'ConnectionStatus' => [ 'type' => 'string', 'enum' => [ 'Connected', 'Disconnected', ], ], 'ConnectionStatusEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'LoRaWAN' => [ 'shape' => 'LoRaWANConnectionStatusEventNotificationConfigurations', ], 'WirelessGatewayIdEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'ConnectionStatusResourceTypeEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'LoRaWAN' => [ 'shape' => 'LoRaWANConnectionStatusResourceTypeEventConfiguration', ], ], ], 'Coordinate' => [ 'type' => 'float', ], 'Crc' => [ 'type' => 'long', 'max' => 4294967295, 'min' => 1, ], 'CreateDestinationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', 'ExpressionType', 'Expression', 'RoleArn', ], 'members' => [ 'Name' => [ 'shape' => 'DestinationName', ], 'ExpressionType' => [ 'shape' => 'ExpressionType', ], 'Expression' => [ 'shape' => 'Expression', ], 'Description' => [ 'shape' => 'Description', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], 'Tags' => [ 'shape' => 'TagList', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'CreateDestinationResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'DestinationArn', ], 'Name' => [ 'shape' => 'DestinationName', ], ], ], 'CreateDeviceProfileRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'DeviceProfileName', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANDeviceProfile', ], 'Tags' => [ 'shape' => 'TagList', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'Sidewalk' => [ 'shape' => 'SidewalkCreateDeviceProfile', ], ], ], 'CreateDeviceProfileResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'DeviceProfileArn', ], 'Id' => [ 'shape' => 'DeviceProfileId', ], ], ], 'CreateFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'FirmwareUpdateImage', 'FirmwareUpdateRole', ], 'members' => [ 'Name' => [ 'shape' => 'FuotaTaskName', ], 'Description' => [ 'shape' => 'Description', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'LoRaWAN' => [ 'shape' => 'LoRaWANFuotaTask', ], 'FirmwareUpdateImage' => [ 'shape' => 'FirmwareUpdateImage', ], 'FirmwareUpdateRole' => [ 'shape' => 'FirmwareUpdateRole', ], 'Tags' => [ 'shape' => 'TagList', ], 'RedundancyPercent' => [ 'shape' => 'RedundancyPercent', ], 'FragmentSizeBytes' => [ 'shape' => 'FragmentSizeBytes', ], 'FragmentIntervalMS' => [ 'shape' => 'FragmentIntervalMS', ], 'Descriptor' => [ 'shape' => 'FileDescriptor', ], ], ], 'CreateFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'FuotaTaskArn', ], 'Id' => [ 'shape' => 'FuotaTaskId', ], ], ], 'CreateMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'LoRaWAN', ], 'members' => [ 'Name' => [ 'shape' => 'MulticastGroupName', ], 'Description' => [ 'shape' => 'Description', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'LoRaWAN' => [ 'shape' => 'LoRaWANMulticast', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'MulticastGroupArn', ], 'Id' => [ 'shape' => 'MulticastGroupId', ], ], ], 'CreateNetworkAnalyzerConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'NetworkAnalyzerConfigurationName', ], 'TraceContent' => [ 'shape' => 'TraceContent', ], 'WirelessDevices' => [ 'shape' => 'WirelessDeviceList', ], 'WirelessGateways' => [ 'shape' => 'WirelessGatewayList', ], 'Description' => [ 'shape' => 'Description', ], 'Tags' => [ 'shape' => 'TagList', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'MulticastGroups' => [ 'shape' => 'NetworkAnalyzerMulticastGroupList', ], ], ], 'CreateNetworkAnalyzerConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'NetworkAnalyzerConfigurationArn', ], 'Name' => [ 'shape' => 'NetworkAnalyzerConfigurationName', ], ], ], 'CreateServiceProfileRequest' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'ServiceProfileName', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANServiceProfile', ], 'Tags' => [ 'shape' => 'TagList', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'CreateServiceProfileResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'ServiceProfileArn', ], 'Id' => [ 'shape' => 'ServiceProfileId', ], ], ], 'CreateWirelessDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'Type', 'DestinationName', ], 'members' => [ 'Type' => [ 'shape' => 'WirelessDeviceType', ], 'Name' => [ 'shape' => 'WirelessDeviceName', ], 'Description' => [ 'shape' => 'Description', ], 'DestinationName' => [ 'shape' => 'DestinationName', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'LoRaWAN' => [ 'shape' => 'LoRaWANDevice', ], 'Tags' => [ 'shape' => 'TagList', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], 'Sidewalk' => [ 'shape' => 'SidewalkCreateWirelessDevice', ], ], ], 'CreateWirelessDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'WirelessDeviceArn', ], 'Id' => [ 'shape' => 'WirelessDeviceId', ], ], ], 'CreateWirelessGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'LoRaWAN', ], 'members' => [ 'Name' => [ 'shape' => 'WirelessGatewayName', ], 'Description' => [ 'shape' => 'Description', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANGateway', ], 'Tags' => [ 'shape' => 'TagList', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], ], ], 'CreateWirelessGatewayResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'WirelessGatewayArn', ], 'Id' => [ 'shape' => 'WirelessDeviceId', ], ], ], 'CreateWirelessGatewayTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'AutoCreateTasks', ], 'members' => [ 'AutoCreateTasks' => [ 'shape' => 'AutoCreateTasks', ], 'Name' => [ 'shape' => 'WirelessGatewayTaskName', ], 'Update' => [ 'shape' => 'UpdateWirelessGatewayTaskCreate', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'CreateWirelessGatewayTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayTaskDefinitionId', ], 'Arn' => [ 'shape' => 'WirelessGatewayTaskDefinitionArn', ], ], ], 'CreateWirelessGatewayTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'WirelessGatewayTaskDefinitionId', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], 'WirelessGatewayTaskDefinitionId' => [ 'shape' => 'WirelessGatewayTaskDefinitionId', ], ], ], 'CreateWirelessGatewayTaskResponse' => [ 'type' => 'structure', 'members' => [ 'WirelessGatewayTaskDefinitionId' => [ 'shape' => 'WirelessGatewayTaskDefinitionId', ], 'Status' => [ 'shape' => 'WirelessGatewayTaskStatus', ], ], ], 'CreatedAt' => [ 'type' => 'timestamp', ], 'CreationDate' => [ 'type' => 'timestamp', ], 'CreationTime' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'DakCertificateId' => [ 'type' => 'string', 'max' => 256, ], 'DakCertificateMetadata' => [ 'type' => 'structure', 'required' => [ 'CertificateId', ], 'members' => [ 'CertificateId' => [ 'shape' => 'DakCertificateId', ], 'MaxAllowedSignature' => [ 'shape' => 'MaxAllowedSignature', ], 'FactorySupport' => [ 'shape' => 'FactorySupport', ], 'ApId' => [ 'shape' => 'ApId', ], 'DeviceTypeId' => [ 'shape' => 'DeviceTypeId', ], ], ], 'DakCertificateMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DakCertificateMetadata', ], ], 'DefaultSessionParametersMulticast' => [ 'type' => 'structure', 'members' => [ 'DlDr' => [ 'shape' => 'DlDr', ], 'DlFreq' => [ 'shape' => 'DlFreq', ], ], ], 'DeleteDestinationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'DestinationName', 'location' => 'uri', 'locationName' => 'Name', ], ], ], 'DeleteDestinationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteDeviceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'DeviceProfileId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteDeviceProfileResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteNetworkAnalyzerConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationName', ], 'members' => [ 'ConfigurationName' => [ 'shape' => 'NetworkAnalyzerConfigurationName', 'location' => 'uri', 'locationName' => 'ConfigurationName', ], ], ], 'DeleteNetworkAnalyzerConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteQueuedMessagesRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'MessageId', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], 'MessageId' => [ 'shape' => 'MessageId', 'location' => 'querystring', 'locationName' => 'messageId', ], 'WirelessDeviceType' => [ 'shape' => 'WirelessDeviceType', 'location' => 'querystring', 'locationName' => 'WirelessDeviceType', ], ], ], 'DeleteQueuedMessagesResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteServiceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ServiceProfileId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteServiceProfileResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteWirelessDeviceImportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ImportTaskId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteWirelessDeviceImportTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteWirelessDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteWirelessDeviceResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteWirelessGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteWirelessGatewayResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteWirelessGatewayTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayTaskDefinitionId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteWirelessGatewayTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteWirelessGatewayTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DeleteWirelessGatewayTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeregisterWirelessDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'Identifier', ], 'members' => [ 'Identifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'Identifier', ], 'WirelessDeviceType' => [ 'shape' => 'WirelessDeviceType', 'location' => 'querystring', 'locationName' => 'WirelessDeviceType', ], ], ], 'DeregisterWirelessDeviceResponse' => [ 'type' => 'structure', 'members' => [], ], 'Description' => [ 'type' => 'string', 'max' => 2048, ], 'DestinationArn' => [ 'type' => 'string', ], 'DestinationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Destinations', ], ], 'DestinationName' => [ 'type' => 'string', 'max' => 128, 'pattern' => '[a-zA-Z0-9-_]+', ], 'Destinations' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'DestinationArn', ], 'Name' => [ 'shape' => 'DestinationName', ], 'ExpressionType' => [ 'shape' => 'ExpressionType', ], 'Expression' => [ 'shape' => 'Expression', ], 'Description' => [ 'shape' => 'Description', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], ], ], 'DevAddr' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{8}', ], 'DevEui' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{16}', ], 'DevStatusReqFreq' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 0, ], 'DeviceCertificateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CertificateList', ], ], 'DeviceCreationFile' => [ 'type' => 'string', 'max' => 1024, ], 'DeviceCreationFileList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceCreationFile', ], ], 'DeviceName' => [ 'type' => 'string', ], 'DeviceProfile' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'DeviceProfileArn', ], 'Name' => [ 'shape' => 'DeviceProfileName', ], 'Id' => [ 'shape' => 'DeviceProfileId', ], ], ], 'DeviceProfileArn' => [ 'type' => 'string', ], 'DeviceProfileId' => [ 'type' => 'string', 'max' => 256, ], 'DeviceProfileList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeviceProfile', ], ], 'DeviceProfileName' => [ 'type' => 'string', 'max' => 256, ], 'DeviceProfileType' => [ 'type' => 'string', 'enum' => [ 'Sidewalk', 'LoRaWAN', ], ], 'DeviceRegistrationStateEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkEventNotificationConfigurations', ], 'WirelessDeviceIdEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'DeviceRegistrationStateResourceTypeEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkResourceTypeEventConfiguration', ], ], ], 'DeviceState' => [ 'type' => 'string', 'enum' => [ 'Provisioned', 'RegisteredNotSeen', 'RegisteredReachable', 'RegisteredUnreachable', ], ], 'DeviceTypeId' => [ 'type' => 'string', 'max' => 2048, ], 'Dimension' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'DimensionName', ], 'value' => [ 'shape' => 'DimensionValue', ], ], ], 'DimensionName' => [ 'type' => 'string', 'enum' => [ 'DeviceId', 'GatewayId', ], 'max' => 256, ], 'DimensionValue' => [ 'type' => 'string', 'max' => 256, ], 'Dimensions' => [ 'type' => 'list', 'member' => [ 'shape' => 'Dimension', ], ], 'DisassociateAwsAccountFromPartnerAccountRequest' => [ 'type' => 'structure', 'required' => [ 'PartnerAccountId', 'PartnerType', ], 'members' => [ 'PartnerAccountId' => [ 'shape' => 'PartnerAccountId', 'location' => 'uri', 'locationName' => 'PartnerAccountId', ], 'PartnerType' => [ 'shape' => 'PartnerType', 'location' => 'querystring', 'locationName' => 'partnerType', ], ], ], 'DisassociateAwsAccountFromPartnerAccountResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateMulticastGroupFromFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'MulticastGroupId', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], 'MulticastGroupId' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'MulticastGroupId', ], ], ], 'DisassociateMulticastGroupFromFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateWirelessDeviceFromFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'WirelessDeviceId', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], 'WirelessDeviceId' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'WirelessDeviceId', ], ], ], 'DisassociateWirelessDeviceFromFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateWirelessDeviceFromMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'WirelessDeviceId', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], 'WirelessDeviceId' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'WirelessDeviceId', ], ], ], 'DisassociateWirelessDeviceFromMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateWirelessDeviceFromThingRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DisassociateWirelessDeviceFromThingResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateWirelessGatewayFromCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DisassociateWirelessGatewayFromCertificateResponse' => [ 'type' => 'structure', 'members' => [], ], 'DisassociateWirelessGatewayFromThingRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'DisassociateWirelessGatewayFromThingResponse' => [ 'type' => 'structure', 'members' => [], ], 'DlAllowed' => [ 'type' => 'boolean', ], 'DlBucketSize' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 0, ], 'DlClass' => [ 'type' => 'string', 'enum' => [ 'ClassB', 'ClassC', ], 'max' => 256, ], 'DlDr' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'DlFreq' => [ 'type' => 'integer', 'max' => 1000000000, 'min' => 100000000, ], 'DlRate' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 0, ], 'DlRatePolicy' => [ 'type' => 'string', 'max' => 256, ], 'Double' => [ 'type' => 'double', ], 'DownlinkFrequency' => [ 'type' => 'integer', 'max' => 1000000000, 'min' => 100000000, ], 'DownlinkMode' => [ 'type' => 'string', 'enum' => [ 'SEQUENTIAL', 'CONCURRENT', 'USING_UPLINK_GATEWAY', ], ], 'DownlinkQueueMessage' => [ 'type' => 'structure', 'members' => [ 'MessageId' => [ 'shape' => 'MessageId', ], 'TransmitMode' => [ 'shape' => 'TransmitMode', ], 'ReceivedAt' => [ 'shape' => 'ISODateTimeString', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANSendDataToDevice', ], ], ], 'DownlinkQueueMessagesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DownlinkQueueMessage', ], ], 'DrMax' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'DrMaxBox' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'DrMin' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'DrMinBox' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'EARFCN' => [ 'type' => 'integer', 'max' => 262143, 'min' => 0, ], 'EndPoint' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'EutranCid' => [ 'type' => 'integer', 'max' => 268435455, 'min' => 0, ], 'Event' => [ 'type' => 'string', 'enum' => [ 'discovered', 'lost', 'ack', 'nack', 'passthrough', ], ], 'EventConfigurationItem' => [ 'type' => 'structure', 'members' => [ 'Identifier' => [ 'shape' => 'Identifier', ], 'IdentifierType' => [ 'shape' => 'IdentifierType', ], 'PartnerType' => [ 'shape' => 'EventNotificationPartnerType', ], 'Events' => [ 'shape' => 'EventNotificationItemConfigurations', ], ], ], 'EventConfigurationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EventConfigurationItem', ], ], 'EventNotificationItemConfigurations' => [ 'type' => 'structure', 'members' => [ 'DeviceRegistrationState' => [ 'shape' => 'DeviceRegistrationStateEventConfiguration', ], 'Proximity' => [ 'shape' => 'ProximityEventConfiguration', ], 'Join' => [ 'shape' => 'JoinEventConfiguration', ], 'ConnectionStatus' => [ 'shape' => 'ConnectionStatusEventConfiguration', ], 'MessageDeliveryStatus' => [ 'shape' => 'MessageDeliveryStatusEventConfiguration', ], ], ], 'EventNotificationPartnerType' => [ 'type' => 'string', 'enum' => [ 'Sidewalk', ], ], 'EventNotificationResourceType' => [ 'type' => 'string', 'enum' => [ 'SidewalkAccount', 'WirelessDevice', 'WirelessGateway', ], ], 'EventNotificationTopicStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'Expression' => [ 'type' => 'string', 'max' => 2048, ], 'ExpressionType' => [ 'type' => 'string', 'enum' => [ 'RuleName', 'MqttTopic', ], ], 'FCntStart' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'FNwkSIntKey' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{32}', ], 'FPort' => [ 'type' => 'integer', 'max' => 223, 'min' => 1, ], 'FPorts' => [ 'type' => 'structure', 'members' => [ 'Fuota' => [ 'shape' => 'FPort', ], 'Multicast' => [ 'shape' => 'FPort', ], 'ClockSync' => [ 'shape' => 'FPort', ], 'Positioning' => [ 'shape' => 'Positioning', ], 'Applications' => [ 'shape' => 'Applications', ], ], ], 'FactoryPresetFreqsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PresetFreq', ], 'max' => 20, 'min' => 0, ], 'FactorySupport' => [ 'type' => 'boolean', ], 'FileDescriptor' => [ 'type' => 'string', 'max' => 332, 'pattern' => '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$', ], 'Fingerprint' => [ 'type' => 'string', 'max' => 64, 'min' => 64, 'pattern' => '[a-fA-F0-9]{64}', 'sensitive' => true, ], 'FirmwareUpdateImage' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'FirmwareUpdateRole' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'FragmentIntervalMS' => [ 'type' => 'integer', 'min' => 1, ], 'FragmentSizeBytes' => [ 'type' => 'integer', 'min' => 1, ], 'FuotaDeviceStatus' => [ 'type' => 'string', 'enum' => [ 'Initial', 'Package_Not_Supported', 'FragAlgo_unsupported', 'Not_enough_memory', 'FragIndex_unsupported', 'Wrong_descriptor', 'SessionCnt_replay', 'MissingFrag', 'MemoryError', 'MICError', 'Successful', 'Device_exist_in_conflict_fuota_task', ], ], 'FuotaTask' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', ], 'Arn' => [ 'shape' => 'FuotaTaskArn', ], 'Name' => [ 'shape' => 'FuotaTaskName', ], ], ], 'FuotaTaskArn' => [ 'type' => 'string', 'max' => 128, ], 'FuotaTaskEvent' => [ 'type' => 'string', 'enum' => [ 'Fuota', ], ], 'FuotaTaskEventLogOption' => [ 'type' => 'structure', 'required' => [ 'Event', 'LogLevel', ], 'members' => [ 'Event' => [ 'shape' => 'FuotaTaskEvent', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], ], ], 'FuotaTaskEventLogOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FuotaTaskEventLogOption', ], ], 'FuotaTaskId' => [ 'type' => 'string', 'max' => 256, ], 'FuotaTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FuotaTask', ], ], 'FuotaTaskLogOption' => [ 'type' => 'structure', 'required' => [ 'Type', 'LogLevel', ], 'members' => [ 'Type' => [ 'shape' => 'FuotaTaskType', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], 'Events' => [ 'shape' => 'FuotaTaskEventLogOptionList', ], ], ], 'FuotaTaskLogOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FuotaTaskLogOption', ], ], 'FuotaTaskName' => [ 'type' => 'string', 'max' => 256, ], 'FuotaTaskStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'FuotaSession_Waiting', 'In_FuotaSession', 'FuotaDone', 'Delete_Waiting', ], ], 'FuotaTaskType' => [ 'type' => 'string', 'enum' => [ 'LoRaWAN', ], ], 'GPST' => [ 'type' => 'float', ], 'GatewayEui' => [ 'type' => 'string', 'pattern' => '^(([0-9A-Fa-f]{2}-){7}|([0-9A-Fa-f]{2}:){7}|([0-9A-Fa-f]{2}\\s){7}|([0-9A-Fa-f]{2}){7})([0-9A-Fa-f]{2})$', ], 'GatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GatewayListItem', ], ], 'GatewayListItem' => [ 'type' => 'structure', 'required' => [ 'GatewayId', 'DownlinkFrequency', ], 'members' => [ 'GatewayId' => [ 'shape' => 'WirelessGatewayId', ], 'DownlinkFrequency' => [ 'shape' => 'DownlinkFrequency', ], ], ], 'GatewayListMulticast' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessGatewayId', ], 'max' => 20, ], 'GatewayMaxEirp' => [ 'type' => 'float', 'max' => 30, 'min' => 0, ], 'GenAppKey' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{32}', ], 'GeoJsonPayload' => [ 'type' => 'blob', ], 'GeranCid' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'GetDestinationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'DestinationName', 'location' => 'uri', 'locationName' => 'Name', ], ], ], 'GetDestinationResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'DestinationArn', ], 'Name' => [ 'shape' => 'DestinationName', ], 'Expression' => [ 'shape' => 'Expression', ], 'ExpressionType' => [ 'shape' => 'ExpressionType', ], 'Description' => [ 'shape' => 'Description', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], ], ], 'GetDeviceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'DeviceProfileId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetDeviceProfileResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'DeviceProfileArn', ], 'Name' => [ 'shape' => 'DeviceProfileName', ], 'Id' => [ 'shape' => 'DeviceProfileId', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANDeviceProfile', ], 'Sidewalk' => [ 'shape' => 'SidewalkGetDeviceProfile', ], ], ], 'GetEventConfigurationByResourceTypesRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetEventConfigurationByResourceTypesResponse' => [ 'type' => 'structure', 'members' => [ 'DeviceRegistrationState' => [ 'shape' => 'DeviceRegistrationStateResourceTypeEventConfiguration', ], 'Proximity' => [ 'shape' => 'ProximityResourceTypeEventConfiguration', ], 'Join' => [ 'shape' => 'JoinResourceTypeEventConfiguration', ], 'ConnectionStatus' => [ 'shape' => 'ConnectionStatusResourceTypeEventConfiguration', ], 'MessageDeliveryStatus' => [ 'shape' => 'MessageDeliveryStatusResourceTypeEventConfiguration', ], ], ], 'GetFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'FuotaTaskArn', ], 'Id' => [ 'shape' => 'FuotaTaskId', ], 'Status' => [ 'shape' => 'FuotaTaskStatus', ], 'Name' => [ 'shape' => 'FuotaTaskName', ], 'Description' => [ 'shape' => 'Description', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANFuotaTaskGetInfo', ], 'FirmwareUpdateImage' => [ 'shape' => 'FirmwareUpdateImage', ], 'FirmwareUpdateRole' => [ 'shape' => 'FirmwareUpdateRole', ], 'CreatedAt' => [ 'shape' => 'CreatedAt', ], 'RedundancyPercent' => [ 'shape' => 'RedundancyPercent', ], 'FragmentSizeBytes' => [ 'shape' => 'FragmentSizeBytes', ], 'FragmentIntervalMS' => [ 'shape' => 'FragmentIntervalMS', ], 'Descriptor' => [ 'shape' => 'FileDescriptor', ], ], ], 'GetLogLevelsByResourceTypesRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetLogLevelsByResourceTypesResponse' => [ 'type' => 'structure', 'members' => [ 'DefaultLogLevel' => [ 'shape' => 'LogLevel', ], 'WirelessGatewayLogOptions' => [ 'shape' => 'WirelessGatewayLogOptionList', ], 'WirelessDeviceLogOptions' => [ 'shape' => 'WirelessDeviceLogOptionList', ], 'FuotaTaskLogOptions' => [ 'shape' => 'FuotaTaskLogOptionList', ], ], ], 'GetMetricConfigurationRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetMetricConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'SummaryMetric' => [ 'shape' => 'SummaryMetricConfiguration', ], ], ], 'GetMetricsRequest' => [ 'type' => 'structure', 'members' => [ 'SummaryMetricQueries' => [ 'shape' => 'SummaryMetricQueries', ], ], ], 'GetMetricsResponse' => [ 'type' => 'structure', 'members' => [ 'SummaryMetricQueryResults' => [ 'shape' => 'SummaryMetricQueryResults', ], ], ], 'GetMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'MulticastGroupArn', ], 'Id' => [ 'shape' => 'MulticastGroupId', ], 'Name' => [ 'shape' => 'MulticastGroupName', ], 'Description' => [ 'shape' => 'Description', ], 'Status' => [ 'shape' => 'MulticastGroupStatus', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANMulticastGet', ], 'CreatedAt' => [ 'shape' => 'CreatedAt', ], ], ], 'GetMulticastGroupSessionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetMulticastGroupSessionResponse' => [ 'type' => 'structure', 'members' => [ 'LoRaWAN' => [ 'shape' => 'LoRaWANMulticastSession', ], ], ], 'GetNetworkAnalyzerConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationName', ], 'members' => [ 'ConfigurationName' => [ 'shape' => 'NetworkAnalyzerConfigurationName', 'location' => 'uri', 'locationName' => 'ConfigurationName', ], ], ], 'GetNetworkAnalyzerConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'TraceContent' => [ 'shape' => 'TraceContent', ], 'WirelessDevices' => [ 'shape' => 'WirelessDeviceList', ], 'WirelessGateways' => [ 'shape' => 'WirelessGatewayList', ], 'Description' => [ 'shape' => 'Description', ], 'Arn' => [ 'shape' => 'NetworkAnalyzerConfigurationArn', ], 'Name' => [ 'shape' => 'NetworkAnalyzerConfigurationName', ], 'MulticastGroups' => [ 'shape' => 'NetworkAnalyzerMulticastGroupList', ], ], ], 'GetPartnerAccountRequest' => [ 'type' => 'structure', 'required' => [ 'PartnerAccountId', 'PartnerType', ], 'members' => [ 'PartnerAccountId' => [ 'shape' => 'PartnerAccountId', 'location' => 'uri', 'locationName' => 'PartnerAccountId', ], 'PartnerType' => [ 'shape' => 'PartnerType', 'location' => 'querystring', 'locationName' => 'partnerType', ], ], ], 'GetPartnerAccountResponse' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkAccountInfoWithFingerprint', ], 'AccountLinked' => [ 'shape' => 'AccountLinked', ], ], ], 'GetPositionConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'PositionResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'PositionResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'GetPositionConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'Solvers' => [ 'shape' => 'PositionSolverDetails', ], 'Destination' => [ 'shape' => 'DestinationName', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'GetPositionEstimateRequest' => [ 'type' => 'structure', 'members' => [ 'WiFiAccessPoints' => [ 'shape' => 'WiFiAccessPoints', ], 'CellTowers' => [ 'shape' => 'CellTowers', ], 'Ip' => [ 'shape' => 'Ip', ], 'Gnss' => [ 'shape' => 'Gnss', ], 'Timestamp' => [ 'shape' => 'CreationDate', ], 'AdvancedConfiguration' => [ 'shape' => 'AdvancedConfiguration', ], ], ], 'GetPositionEstimateResponse' => [ 'type' => 'structure', 'members' => [ 'GeoJsonPayload' => [ 'shape' => 'GeoJsonPayload', ], ], 'payload' => 'GeoJsonPayload', ], 'GetPositionRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'PositionResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'PositionResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'GetPositionResponse' => [ 'type' => 'structure', 'members' => [ 'Position' => [ 'shape' => 'PositionCoordinate', ], 'Accuracy' => [ 'shape' => 'Accuracy', ], 'SolverType' => [ 'shape' => 'PositionSolverType', ], 'SolverProvider' => [ 'shape' => 'PositionSolverProvider', ], 'SolverVersion' => [ 'shape' => 'PositionSolverVersion', ], 'Timestamp' => [ 'shape' => 'ISODateTimeString', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'GetResourceEventConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Identifier', 'IdentifierType', ], 'members' => [ 'Identifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'Identifier', ], 'IdentifierType' => [ 'shape' => 'IdentifierType', 'location' => 'querystring', 'locationName' => 'identifierType', ], 'PartnerType' => [ 'shape' => 'EventNotificationPartnerType', 'location' => 'querystring', 'locationName' => 'partnerType', ], ], ], 'GetResourceEventConfigurationResponse' => [ 'type' => 'structure', 'members' => [ 'DeviceRegistrationState' => [ 'shape' => 'DeviceRegistrationStateEventConfiguration', ], 'Proximity' => [ 'shape' => 'ProximityEventConfiguration', ], 'Join' => [ 'shape' => 'JoinEventConfiguration', ], 'ConnectionStatus' => [ 'shape' => 'ConnectionStatusEventConfiguration', ], 'MessageDeliveryStatus' => [ 'shape' => 'MessageDeliveryStatusEventConfiguration', ], ], ], 'GetResourceLogLevelRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'ResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'ResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], ], ], 'GetResourceLogLevelResponse' => [ 'type' => 'structure', 'members' => [ 'LogLevel' => [ 'shape' => 'LogLevel', ], ], ], 'GetResourcePositionRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'PositionResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'PositionResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], ], ], 'GetResourcePositionResponse' => [ 'type' => 'structure', 'members' => [ 'GeoJsonPayload' => [ 'shape' => 'GeoJsonPayload', ], ], 'payload' => 'GeoJsonPayload', ], 'GetServiceEndpointRequest' => [ 'type' => 'structure', 'members' => [ 'ServiceType' => [ 'shape' => 'WirelessGatewayServiceType', 'location' => 'querystring', 'locationName' => 'serviceType', ], ], ], 'GetServiceEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'ServiceType' => [ 'shape' => 'WirelessGatewayServiceType', ], 'ServiceEndpoint' => [ 'shape' => 'EndPoint', ], 'ServerTrust' => [ 'shape' => 'CertificatePEM', ], ], ], 'GetServiceProfileRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ServiceProfileId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetServiceProfileResponse' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'ServiceProfileArn', ], 'Name' => [ 'shape' => 'ServiceProfileName', ], 'Id' => [ 'shape' => 'ServiceProfileId', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANGetServiceProfileInfo', ], ], ], 'GetWirelessDeviceImportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ImportTaskId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetWirelessDeviceImportTaskResponse' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ImportTaskId', ], 'Arn' => [ 'shape' => 'ImportTaskArn', ], 'DestinationName' => [ 'shape' => 'DestinationName', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], 'Sidewalk' => [ 'shape' => 'SidewalkGetStartImportInfo', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'Status' => [ 'shape' => 'ImportTaskStatus', ], 'StatusReason' => [ 'shape' => 'StatusReason', ], 'InitializedImportedDeviceCount' => [ 'shape' => 'ImportedWirelessDeviceCount', ], 'PendingImportedDeviceCount' => [ 'shape' => 'ImportedWirelessDeviceCount', ], 'OnboardedImportedDeviceCount' => [ 'shape' => 'ImportedWirelessDeviceCount', ], 'FailedImportedDeviceCount' => [ 'shape' => 'ImportedWirelessDeviceCount', ], ], ], 'GetWirelessDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'Identifier', 'IdentifierType', ], 'members' => [ 'Identifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'Identifier', ], 'IdentifierType' => [ 'shape' => 'WirelessDeviceIdType', 'location' => 'querystring', 'locationName' => 'identifierType', ], ], ], 'GetWirelessDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'WirelessDeviceType', ], 'Name' => [ 'shape' => 'WirelessDeviceName', ], 'Description' => [ 'shape' => 'Description', ], 'DestinationName' => [ 'shape' => 'DestinationName', ], 'Id' => [ 'shape' => 'WirelessDeviceId', ], 'Arn' => [ 'shape' => 'WirelessDeviceArn', ], 'ThingName' => [ 'shape' => 'ThingName', ], 'ThingArn' => [ 'shape' => 'ThingArn', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANDevice', ], 'Sidewalk' => [ 'shape' => 'SidewalkDevice', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], ], ], 'GetWirelessDeviceStatisticsRequest' => [ 'type' => 'structure', 'required' => [ 'WirelessDeviceId', ], 'members' => [ 'WirelessDeviceId' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetWirelessDeviceStatisticsResponse' => [ 'type' => 'structure', 'members' => [ 'WirelessDeviceId' => [ 'shape' => 'WirelessDeviceId', ], 'LastUplinkReceivedAt' => [ 'shape' => 'ISODateTimeString', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANDeviceMetadata', ], 'Sidewalk' => [ 'shape' => 'SidewalkDeviceMetadata', ], ], ], 'GetWirelessGatewayCertificateRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetWirelessGatewayCertificateResponse' => [ 'type' => 'structure', 'members' => [ 'IotCertificateId' => [ 'shape' => 'IotCertificateId', ], 'LoRaWANNetworkServerCertificateId' => [ 'shape' => 'IotCertificateId', ], ], ], 'GetWirelessGatewayFirmwareInformationRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetWirelessGatewayFirmwareInformationResponse' => [ 'type' => 'structure', 'members' => [ 'LoRaWAN' => [ 'shape' => 'LoRaWANGatewayCurrentVersion', ], ], ], 'GetWirelessGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'Identifier', 'IdentifierType', ], 'members' => [ 'Identifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'Identifier', ], 'IdentifierType' => [ 'shape' => 'WirelessGatewayIdType', 'location' => 'querystring', 'locationName' => 'identifierType', ], ], ], 'GetWirelessGatewayResponse' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'WirelessGatewayName', ], 'Id' => [ 'shape' => 'WirelessGatewayId', ], 'Description' => [ 'shape' => 'Description', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANGateway', ], 'Arn' => [ 'shape' => 'WirelessGatewayArn', ], 'ThingName' => [ 'shape' => 'ThingName', ], 'ThingArn' => [ 'shape' => 'ThingArn', ], ], ], 'GetWirelessGatewayStatisticsRequest' => [ 'type' => 'structure', 'required' => [ 'WirelessGatewayId', ], 'members' => [ 'WirelessGatewayId' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetWirelessGatewayStatisticsResponse' => [ 'type' => 'structure', 'members' => [ 'WirelessGatewayId' => [ 'shape' => 'WirelessGatewayId', ], 'LastUplinkReceivedAt' => [ 'shape' => 'ISODateTimeString', ], 'ConnectionStatus' => [ 'shape' => 'ConnectionStatus', ], ], ], 'GetWirelessGatewayTaskDefinitionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayTaskDefinitionId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetWirelessGatewayTaskDefinitionResponse' => [ 'type' => 'structure', 'members' => [ 'AutoCreateTasks' => [ 'shape' => 'AutoCreateTasks', ], 'Name' => [ 'shape' => 'WirelessGatewayTaskName', ], 'Update' => [ 'shape' => 'UpdateWirelessGatewayTaskCreate', ], 'Arn' => [ 'shape' => 'WirelessGatewayTaskDefinitionArn', ], ], ], 'GetWirelessGatewayTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'GetWirelessGatewayTaskResponse' => [ 'type' => 'structure', 'members' => [ 'WirelessGatewayId' => [ 'shape' => 'WirelessGatewayId', ], 'WirelessGatewayTaskDefinitionId' => [ 'shape' => 'WirelessGatewayTaskDefinitionId', ], 'LastUplinkReceivedAt' => [ 'shape' => 'ISODateTimeString', ], 'TaskCreatedAt' => [ 'shape' => 'ISODateTimeString', ], 'Status' => [ 'shape' => 'WirelessGatewayTaskStatus', ], ], ], 'GlobalIdentity' => [ 'type' => 'structure', 'required' => [ 'Lac', 'GeranCid', ], 'members' => [ 'Lac' => [ 'shape' => 'LAC', ], 'GeranCid' => [ 'shape' => 'GeranCid', ], ], ], 'Gnss' => [ 'type' => 'structure', 'required' => [ 'Payload', ], 'members' => [ 'Payload' => [ 'shape' => 'GnssNav', ], 'CaptureTime' => [ 'shape' => 'GPST', ], 'CaptureTimeAccuracy' => [ 'shape' => 'CaptureTimeAccuracy', ], 'AssistPosition' => [ 'shape' => 'AssistPosition', ], 'AssistAltitude' => [ 'shape' => 'Coordinate', ], 'Use2DSolver' => [ 'shape' => 'Use2DSolver', ], ], ], 'GnssNav' => [ 'type' => 'string', 'max' => 2048, ], 'GsmList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GsmObj', ], 'max' => 16, 'min' => 1, ], 'GsmLocalId' => [ 'type' => 'structure', 'required' => [ 'Bsic', 'Bcch', ], 'members' => [ 'Bsic' => [ 'shape' => 'BSIC', ], 'Bcch' => [ 'shape' => 'BCCH', ], ], ], 'GsmNmrList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GsmNmrObj', ], 'max' => 32, 'min' => 1, ], 'GsmNmrObj' => [ 'type' => 'structure', 'required' => [ 'Bsic', 'Bcch', ], 'members' => [ 'Bsic' => [ 'shape' => 'BSIC', ], 'Bcch' => [ 'shape' => 'BCCH', ], 'RxLevel' => [ 'shape' => 'RxLevel', ], 'GlobalIdentity' => [ 'shape' => 'GlobalIdentity', ], ], ], 'GsmObj' => [ 'type' => 'structure', 'required' => [ 'Mcc', 'Mnc', 'Lac', 'GeranCid', ], 'members' => [ 'Mcc' => [ 'shape' => 'MCC', ], 'Mnc' => [ 'shape' => 'MNC', ], 'Lac' => [ 'shape' => 'LAC', ], 'GeranCid' => [ 'shape' => 'GeranCid', ], 'GsmLocalId' => [ 'shape' => 'GsmLocalId', ], 'GsmTimingAdvance' => [ 'shape' => 'GsmTimingAdvance', ], 'RxLevel' => [ 'shape' => 'RxLevel', ], 'GsmNmr' => [ 'shape' => 'GsmNmrList', ], ], ], 'GsmTimingAdvance' => [ 'type' => 'integer', 'max' => 63, 'min' => 0, ], 'HorizontalAccuracy' => [ 'type' => 'float', 'min' => 0, ], 'HrAllowed' => [ 'type' => 'boolean', ], 'IPAddress' => [ 'type' => 'string', ], 'ISODateTimeString' => [ 'type' => 'string', 'pattern' => '^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$', ], 'Id' => [ 'type' => 'string', 'max' => 256, ], 'Identifier' => [ 'type' => 'string', 'max' => 256, ], 'IdentifierType' => [ 'type' => 'string', 'enum' => [ 'PartnerAccountId', 'DevEui', 'GatewayEui', 'WirelessDeviceId', 'WirelessGatewayId', ], ], 'ImportTaskArn' => [ 'type' => 'string', 'max' => 128, ], 'ImportTaskId' => [ 'type' => 'string', 'max' => 256, ], 'ImportTaskStatus' => [ 'type' => 'string', 'enum' => [ 'INITIALIZING', 'INITIALIZED', 'PENDING', 'COMPLETE', 'FAILED', 'DELETING', ], ], 'ImportedSidewalkDevice' => [ 'type' => 'structure', 'members' => [ 'SidewalkManufacturingSn' => [ 'shape' => 'SidewalkManufacturingSn', ], 'OnboardingStatus' => [ 'shape' => 'OnboardStatus', ], 'OnboardingStatusReason' => [ 'shape' => 'OnboardStatusReason', ], 'LastUpdateTime' => [ 'shape' => 'LastUpdateTime', ], ], ], 'ImportedWirelessDevice' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'ImportedSidewalkDevice', ], ], ], 'ImportedWirelessDeviceCount' => [ 'type' => 'long', ], 'ImportedWirelessDeviceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ImportedWirelessDevice', ], ], 'Integer' => [ 'type' => 'integer', ], 'InternalServerException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, ], 'IotCertificateId' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'Ip' => [ 'type' => 'structure', 'required' => [ 'IpAddress', ], 'members' => [ 'IpAddress' => [ 'shape' => 'IPAddress', ], ], ], 'JoinEui' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{16}', ], 'JoinEuiFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'JoinEuiRange', ], 'max' => 3, 'min' => 0, ], 'JoinEuiRange' => [ 'type' => 'list', 'member' => [ 'shape' => 'JoinEui', ], 'max' => 2, 'min' => 2, ], 'JoinEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'LoRaWAN' => [ 'shape' => 'LoRaWANJoinEventNotificationConfigurations', ], 'WirelessDeviceIdEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'JoinResourceTypeEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'LoRaWAN' => [ 'shape' => 'LoRaWANJoinResourceTypeEventConfiguration', ], ], ], 'LAC' => [ 'type' => 'integer', 'max' => 65535, 'min' => 1, ], 'LastUpdateTime' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'ListDestinationsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListDestinationsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'DestinationList' => [ 'shape' => 'DestinationList', ], ], ], 'ListDeviceProfilesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'DeviceProfileType' => [ 'shape' => 'DeviceProfileType', 'location' => 'querystring', 'locationName' => 'deviceProfileType', ], ], ], 'ListDeviceProfilesResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'DeviceProfileList' => [ 'shape' => 'DeviceProfileList', ], ], ], 'ListDevicesForWirelessDeviceImportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'ImportTaskId', 'location' => 'querystring', 'locationName' => 'id', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'Status' => [ 'shape' => 'OnboardStatus', 'location' => 'querystring', 'locationName' => 'status', ], ], ], 'ListDevicesForWirelessDeviceImportTaskResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'DestinationName' => [ 'shape' => 'DestinationName', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], 'Sidewalk' => [ 'shape' => 'SidewalkListDevicesForImportInfo', ], 'ImportedWirelessDeviceList' => [ 'shape' => 'ImportedWirelessDeviceList', ], ], ], 'ListEventConfigurationsRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceType', ], 'members' => [ 'ResourceType' => [ 'shape' => 'EventNotificationResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListEventConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'EventConfigurationsList' => [ 'shape' => 'EventConfigurationsList', ], ], ], 'ListFuotaTasksRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListFuotaTasksResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'FuotaTaskList' => [ 'shape' => 'FuotaTaskList', ], ], ], 'ListMulticastGroupsByFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListMulticastGroupsByFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MulticastGroupList' => [ 'shape' => 'MulticastGroupListByFuotaTask', ], ], ], 'ListMulticastGroupsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListMulticastGroupsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'MulticastGroupList' => [ 'shape' => 'MulticastGroupList', ], ], ], 'ListNetworkAnalyzerConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListNetworkAnalyzerConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'NetworkAnalyzerConfigurationList' => [ 'shape' => 'NetworkAnalyzerConfigurationList', ], ], ], 'ListPartnerAccountsRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListPartnerAccountsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'Sidewalk' => [ 'shape' => 'SidewalkAccountList', ], ], ], 'ListPositionConfigurationsRequest' => [ 'type' => 'structure', 'members' => [ 'ResourceType' => [ 'shape' => 'PositionResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'ListPositionConfigurationsResponse' => [ 'type' => 'structure', 'members' => [ 'PositionConfigurationList' => [ 'shape' => 'PositionConfigurationList', ], 'NextToken' => [ 'shape' => 'NextToken', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'ListQueuedMessagesRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'WirelessDeviceType' => [ 'shape' => 'WirelessDeviceType', 'location' => 'querystring', 'locationName' => 'WirelessDeviceType', ], ], ], 'ListQueuedMessagesResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'DownlinkQueueMessagesList' => [ 'shape' => 'DownlinkQueueMessagesList', ], ], ], 'ListServiceProfilesRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListServiceProfilesResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'ServiceProfileList' => [ 'shape' => 'ServiceProfileList', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'AmazonResourceName', 'location' => 'querystring', 'locationName' => 'resourceArn', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], ], ], 'ListWirelessDeviceImportTasksRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListWirelessDeviceImportTasksResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'WirelessDeviceImportTaskList' => [ 'shape' => 'WirelessDeviceImportTaskList', ], ], ], 'ListWirelessDevicesRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'DestinationName' => [ 'shape' => 'DestinationName', 'location' => 'querystring', 'locationName' => 'destinationName', ], 'DeviceProfileId' => [ 'shape' => 'DeviceProfileId', 'location' => 'querystring', 'locationName' => 'deviceProfileId', ], 'ServiceProfileId' => [ 'shape' => 'ServiceProfileId', 'location' => 'querystring', 'locationName' => 'serviceProfileId', ], 'WirelessDeviceType' => [ 'shape' => 'WirelessDeviceType', 'location' => 'querystring', 'locationName' => 'wirelessDeviceType', ], 'FuotaTaskId' => [ 'shape' => 'FuotaTaskId', 'location' => 'querystring', 'locationName' => 'fuotaTaskId', ], 'MulticastGroupId' => [ 'shape' => 'MulticastGroupId', 'location' => 'querystring', 'locationName' => 'multicastGroupId', ], ], ], 'ListWirelessDevicesResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'WirelessDeviceList' => [ 'shape' => 'WirelessDeviceStatisticsList', ], ], ], 'ListWirelessGatewayTaskDefinitionsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'TaskDefinitionType' => [ 'shape' => 'WirelessGatewayTaskDefinitionType', 'location' => 'querystring', 'locationName' => 'taskDefinitionType', ], ], ], 'ListWirelessGatewayTaskDefinitionsResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'TaskDefinitions' => [ 'shape' => 'WirelessGatewayTaskDefinitionList', ], ], ], 'ListWirelessGatewaysRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], ], ], 'ListWirelessGatewaysResponse' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'NextToken', ], 'WirelessGatewayList' => [ 'shape' => 'WirelessGatewayStatisticsList', ], ], ], 'LoRaWANConnectionStatusEventNotificationConfigurations' => [ 'type' => 'structure', 'members' => [ 'GatewayEuiEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'LoRaWANConnectionStatusResourceTypeEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'WirelessGatewayEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'LoRaWANDevice' => [ 'type' => 'structure', 'members' => [ 'DevEui' => [ 'shape' => 'DevEui', ], 'DeviceProfileId' => [ 'shape' => 'DeviceProfileId', ], 'ServiceProfileId' => [ 'shape' => 'ServiceProfileId', ], 'OtaaV1_1' => [ 'shape' => 'OtaaV1_1', ], 'OtaaV1_0_x' => [ 'shape' => 'OtaaV1_0_x', ], 'AbpV1_1' => [ 'shape' => 'AbpV1_1', ], 'AbpV1_0_x' => [ 'shape' => 'AbpV1_0_x', ], 'FPorts' => [ 'shape' => 'FPorts', ], ], ], 'LoRaWANDeviceMetadata' => [ 'type' => 'structure', 'members' => [ 'DevEui' => [ 'shape' => 'DevEui', ], 'FPort' => [ 'shape' => 'Integer', ], 'DataRate' => [ 'shape' => 'Integer', ], 'Frequency' => [ 'shape' => 'Integer', ], 'Timestamp' => [ 'shape' => 'ISODateTimeString', ], 'Gateways' => [ 'shape' => 'LoRaWANGatewayMetadataList', ], 'PublicGateways' => [ 'shape' => 'LoRaWANPublicGatewayMetadataList', ], ], ], 'LoRaWANDeviceProfile' => [ 'type' => 'structure', 'members' => [ 'SupportsClassB' => [ 'shape' => 'SupportsClassB', ], 'ClassBTimeout' => [ 'shape' => 'ClassBTimeout', ], 'PingSlotPeriod' => [ 'shape' => 'PingSlotPeriod', ], 'PingSlotDr' => [ 'shape' => 'PingSlotDr', ], 'PingSlotFreq' => [ 'shape' => 'PingSlotFreq', ], 'SupportsClassC' => [ 'shape' => 'SupportsClassC', ], 'ClassCTimeout' => [ 'shape' => 'ClassCTimeout', ], 'MacVersion' => [ 'shape' => 'MacVersion', ], 'RegParamsRevision' => [ 'shape' => 'RegParamsRevision', ], 'RxDelay1' => [ 'shape' => 'RxDelay1', ], 'RxDrOffset1' => [ 'shape' => 'RxDrOffset1', ], 'RxDataRate2' => [ 'shape' => 'RxDataRate2', ], 'RxFreq2' => [ 'shape' => 'RxFreq2', ], 'FactoryPresetFreqsList' => [ 'shape' => 'FactoryPresetFreqsList', ], 'MaxEirp' => [ 'shape' => 'MaxEirp', ], 'MaxDutyCycle' => [ 'shape' => 'MaxDutyCycle', ], 'RfRegion' => [ 'shape' => 'RfRegion', ], 'SupportsJoin' => [ 'shape' => 'SupportsJoin', ], 'Supports32BitFCnt' => [ 'shape' => 'Supports32BitFCnt', ], ], ], 'LoRaWANFuotaTask' => [ 'type' => 'structure', 'members' => [ 'RfRegion' => [ 'shape' => 'SupportedRfRegion', ], ], ], 'LoRaWANFuotaTaskGetInfo' => [ 'type' => 'structure', 'members' => [ 'RfRegion' => [ 'shape' => 'RfRegion', ], 'StartTime' => [ 'shape' => 'StartTime', ], ], ], 'LoRaWANGateway' => [ 'type' => 'structure', 'members' => [ 'GatewayEui' => [ 'shape' => 'GatewayEui', ], 'RfRegion' => [ 'shape' => 'RfRegion', ], 'JoinEuiFilters' => [ 'shape' => 'JoinEuiFilters', ], 'NetIdFilters' => [ 'shape' => 'NetIdFilters', ], 'SubBands' => [ 'shape' => 'SubBands', ], 'Beaconing' => [ 'shape' => 'Beaconing', ], 'MaxEirp' => [ 'shape' => 'GatewayMaxEirp', ], ], ], 'LoRaWANGatewayCurrentVersion' => [ 'type' => 'structure', 'members' => [ 'CurrentVersion' => [ 'shape' => 'LoRaWANGatewayVersion', ], ], ], 'LoRaWANGatewayMetadata' => [ 'type' => 'structure', 'members' => [ 'GatewayEui' => [ 'shape' => 'GatewayEui', ], 'Snr' => [ 'shape' => 'Double', ], 'Rssi' => [ 'shape' => 'Double', ], ], ], 'LoRaWANGatewayMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoRaWANGatewayMetadata', ], ], 'LoRaWANGatewayVersion' => [ 'type' => 'structure', 'members' => [ 'PackageVersion' => [ 'shape' => 'PackageVersion', ], 'Model' => [ 'shape' => 'Model', ], 'Station' => [ 'shape' => 'Station', ], ], ], 'LoRaWANGetServiceProfileInfo' => [ 'type' => 'structure', 'members' => [ 'UlRate' => [ 'shape' => 'UlRate', ], 'UlBucketSize' => [ 'shape' => 'UlBucketSize', ], 'UlRatePolicy' => [ 'shape' => 'UlRatePolicy', ], 'DlRate' => [ 'shape' => 'DlRate', ], 'DlBucketSize' => [ 'shape' => 'DlBucketSize', ], 'DlRatePolicy' => [ 'shape' => 'DlRatePolicy', ], 'AddGwMetadata' => [ 'shape' => 'AddGwMetadata', ], 'DevStatusReqFreq' => [ 'shape' => 'DevStatusReqFreq', ], 'ReportDevStatusBattery' => [ 'shape' => 'ReportDevStatusBattery', ], 'ReportDevStatusMargin' => [ 'shape' => 'ReportDevStatusMargin', ], 'DrMin' => [ 'shape' => 'DrMin', ], 'DrMax' => [ 'shape' => 'DrMax', ], 'ChannelMask' => [ 'shape' => 'ChannelMask', ], 'PrAllowed' => [ 'shape' => 'PrAllowed', ], 'HrAllowed' => [ 'shape' => 'HrAllowed', ], 'RaAllowed' => [ 'shape' => 'RaAllowed', ], 'NwkGeoLoc' => [ 'shape' => 'NwkGeoLoc', ], 'TargetPer' => [ 'shape' => 'TargetPer', ], 'MinGwDiversity' => [ 'shape' => 'MinGwDiversity', ], 'TxPowerIndexMin' => [ 'shape' => 'TxPowerIndexMin', ], 'TxPowerIndexMax' => [ 'shape' => 'TxPowerIndexMax', ], 'NbTransMin' => [ 'shape' => 'NbTransMin', ], 'NbTransMax' => [ 'shape' => 'NbTransMax', ], ], ], 'LoRaWANJoinEventNotificationConfigurations' => [ 'type' => 'structure', 'members' => [ 'DevEuiEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'LoRaWANJoinResourceTypeEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'WirelessDeviceEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'LoRaWANListDevice' => [ 'type' => 'structure', 'members' => [ 'DevEui' => [ 'shape' => 'DevEui', ], ], ], 'LoRaWANMulticast' => [ 'type' => 'structure', 'members' => [ 'RfRegion' => [ 'shape' => 'SupportedRfRegion', ], 'DlClass' => [ 'shape' => 'DlClass', ], 'ParticipatingGateways' => [ 'shape' => 'ParticipatingGatewaysMulticast', ], 'DefaultSessionParameters' => [ 'shape' => 'DefaultSessionParametersMulticast', ], ], ], 'LoRaWANMulticastGet' => [ 'type' => 'structure', 'members' => [ 'RfRegion' => [ 'shape' => 'SupportedRfRegion', ], 'DlClass' => [ 'shape' => 'DlClass', ], 'NumberOfDevicesRequested' => [ 'shape' => 'NumberOfDevicesRequested', ], 'NumberOfDevicesInGroup' => [ 'shape' => 'NumberOfDevicesInGroup', ], 'ParticipatingGateways' => [ 'shape' => 'ParticipatingGatewaysMulticast', ], 'DefaultSessionParameters' => [ 'shape' => 'DefaultSessionParametersMulticast', ], ], ], 'LoRaWANMulticastMetadata' => [ 'type' => 'structure', 'members' => [ 'FPort' => [ 'shape' => 'FPort', ], ], ], 'LoRaWANMulticastSession' => [ 'type' => 'structure', 'members' => [ 'DlDr' => [ 'shape' => 'DlDr', ], 'DlFreq' => [ 'shape' => 'DlFreq', ], 'SessionStartTime' => [ 'shape' => 'SessionStartTimeTimestamp', ], 'SessionTimeout' => [ 'shape' => 'SessionTimeout', ], 'PingSlotPeriod' => [ 'shape' => 'PingSlotPeriod', ], ], ], 'LoRaWANPublicGatewayMetadata' => [ 'type' => 'structure', 'members' => [ 'ProviderNetId' => [ 'shape' => 'ProviderNetId', ], 'Id' => [ 'shape' => 'Id', ], 'Rssi' => [ 'shape' => 'Double', ], 'Snr' => [ 'shape' => 'Double', ], 'RfRegion' => [ 'shape' => 'RfRegion', ], 'DlAllowed' => [ 'shape' => 'DlAllowed', ], ], ], 'LoRaWANPublicGatewayMetadataList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LoRaWANPublicGatewayMetadata', ], ], 'LoRaWANSendDataToDevice' => [ 'type' => 'structure', 'members' => [ 'FPort' => [ 'shape' => 'FPort', ], 'ParticipatingGateways' => [ 'shape' => 'ParticipatingGateways', ], ], ], 'LoRaWANServiceProfile' => [ 'type' => 'structure', 'members' => [ 'AddGwMetadata' => [ 'shape' => 'AddGwMetadata', ], 'DrMin' => [ 'shape' => 'DrMinBox', ], 'DrMax' => [ 'shape' => 'DrMaxBox', ], 'PrAllowed' => [ 'shape' => 'PrAllowed', ], 'RaAllowed' => [ 'shape' => 'RaAllowed', ], 'TxPowerIndexMin' => [ 'shape' => 'TxPowerIndexMin', ], 'TxPowerIndexMax' => [ 'shape' => 'TxPowerIndexMax', ], 'NbTransMin' => [ 'shape' => 'NbTransMin', ], 'NbTransMax' => [ 'shape' => 'NbTransMax', ], ], ], 'LoRaWANStartFuotaTask' => [ 'type' => 'structure', 'members' => [ 'StartTime' => [ 'shape' => 'StartTime', ], ], ], 'LoRaWANUpdateDevice' => [ 'type' => 'structure', 'members' => [ 'DeviceProfileId' => [ 'shape' => 'DeviceProfileId', ], 'ServiceProfileId' => [ 'shape' => 'ServiceProfileId', ], 'AbpV1_1' => [ 'shape' => 'UpdateAbpV1_1', ], 'AbpV1_0_x' => [ 'shape' => 'UpdateAbpV1_0_x', ], 'FPorts' => [ 'shape' => 'UpdateFPorts', ], ], ], 'LoRaWANUpdateGatewayTaskCreate' => [ 'type' => 'structure', 'members' => [ 'UpdateSignature' => [ 'shape' => 'UpdateSignature', ], 'SigKeyCrc' => [ 'shape' => 'Crc', ], 'CurrentVersion' => [ 'shape' => 'LoRaWANGatewayVersion', ], 'UpdateVersion' => [ 'shape' => 'LoRaWANGatewayVersion', ], ], ], 'LoRaWANUpdateGatewayTaskEntry' => [ 'type' => 'structure', 'members' => [ 'CurrentVersion' => [ 'shape' => 'LoRaWANGatewayVersion', ], 'UpdateVersion' => [ 'shape' => 'LoRaWANGatewayVersion', ], ], ], 'LogLevel' => [ 'type' => 'string', 'enum' => [ 'INFO', 'ERROR', 'DISABLED', ], ], 'LteList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LteObj', ], 'max' => 16, 'min' => 1, ], 'LteLocalId' => [ 'type' => 'structure', 'required' => [ 'Pci', 'Earfcn', ], 'members' => [ 'Pci' => [ 'shape' => 'PCI', ], 'Earfcn' => [ 'shape' => 'EARFCN', ], ], ], 'LteNmrList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LteNmrObj', ], 'max' => 32, 'min' => 1, ], 'LteNmrObj' => [ 'type' => 'structure', 'required' => [ 'Pci', 'Earfcn', ], 'members' => [ 'Pci' => [ 'shape' => 'PCI', ], 'Earfcn' => [ 'shape' => 'EARFCN', ], 'EutranCid' => [ 'shape' => 'EutranCid', ], 'Rsrp' => [ 'shape' => 'RSRP', ], 'Rsrq' => [ 'shape' => 'RSRQ', ], ], ], 'LteObj' => [ 'type' => 'structure', 'required' => [ 'Mcc', 'Mnc', 'EutranCid', ], 'members' => [ 'Mcc' => [ 'shape' => 'MCC', ], 'Mnc' => [ 'shape' => 'MNC', ], 'EutranCid' => [ 'shape' => 'EutranCid', ], 'Tac' => [ 'shape' => 'TAC', ], 'LteLocalId' => [ 'shape' => 'LteLocalId', ], 'LteTimingAdvance' => [ 'shape' => 'LteTimingAdvance', ], 'Rsrp' => [ 'shape' => 'RSRP', ], 'Rsrq' => [ 'shape' => 'RSRQ', ], 'NrCapable' => [ 'shape' => 'NRCapable', ], 'LteNmr' => [ 'shape' => 'LteNmrList', ], ], ], 'LteTimingAdvance' => [ 'type' => 'integer', 'max' => 1282, 'min' => 0, ], 'MCC' => [ 'type' => 'integer', 'max' => 999, 'min' => 200, ], 'MNC' => [ 'type' => 'integer', 'max' => 999, 'min' => 0, ], 'MacAddress' => [ 'type' => 'string', 'max' => 17, 'min' => 12, 'pattern' => '^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$', ], 'MacVersion' => [ 'type' => 'string', 'max' => 64, ], 'Max' => [ 'type' => 'double', ], 'MaxAllowedSignature' => [ 'type' => 'integer', ], 'MaxDutyCycle' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'MaxEirp' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'MaxResults' => [ 'type' => 'integer', 'max' => 250, 'min' => 0, ], 'McGroupId' => [ 'type' => 'integer', 'max' => 256, 'min' => 1, ], 'Message' => [ 'type' => 'string', 'max' => 2048, ], 'MessageDeliveryStatusEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkEventNotificationConfigurations', ], 'WirelessDeviceIdEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'MessageDeliveryStatusResourceTypeEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkResourceTypeEventConfiguration', ], ], ], 'MessageId' => [ 'type' => 'string', ], 'MessageType' => [ 'type' => 'string', 'enum' => [ 'CUSTOM_COMMAND_ID_NOTIFY', 'CUSTOM_COMMAND_ID_GET', 'CUSTOM_COMMAND_ID_SET', 'CUSTOM_COMMAND_ID_RESP', ], ], 'MetricName' => [ 'type' => 'string', 'enum' => [ 'DeviceRSSI', 'DeviceSNR', 'DeviceRoamingRSSI', 'DeviceRoamingSNR', 'DeviceUplinkCount', 'DeviceDownlinkCount', 'DeviceUplinkLostCount', 'DeviceUplinkLostRate', 'DeviceJoinRequestCount', 'DeviceJoinAcceptCount', 'DeviceRoamingUplinkCount', 'DeviceRoamingDownlinkCount', 'GatewayUpTime', 'GatewayDownTime', 'GatewayRSSI', 'GatewaySNR', 'GatewayUplinkCount', 'GatewayDownlinkCount', 'GatewayJoinRequestCount', 'GatewayJoinAcceptCount', 'AwsAccountUplinkCount', 'AwsAccountDownlinkCount', 'AwsAccountUplinkLostCount', 'AwsAccountUplinkLostRate', 'AwsAccountJoinRequestCount', 'AwsAccountJoinAcceptCount', 'AwsAccountRoamingUplinkCount', 'AwsAccountRoamingDownlinkCount', 'AwsAccountDeviceCount', 'AwsAccountGatewayCount', 'AwsAccountActiveDeviceCount', 'AwsAccountActiveGatewayCount', ], 'max' => 256, ], 'MetricQueryEndTimestamp' => [ 'type' => 'timestamp', ], 'MetricQueryError' => [ 'type' => 'string', 'max' => 256, ], 'MetricQueryId' => [ 'type' => 'string', 'max' => 256, ], 'MetricQueryStartTimestamp' => [ 'type' => 'timestamp', ], 'MetricQueryStatus' => [ 'type' => 'string', 'enum' => [ 'Succeeded', 'Failed', ], ], 'MetricQueryTimestamp' => [ 'type' => 'timestamp', ], 'MetricQueryTimestamps' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricQueryTimestamp', ], ], 'MetricQueryValue' => [ 'type' => 'structure', 'members' => [ 'Min' => [ 'shape' => 'Min', ], 'Max' => [ 'shape' => 'Max', ], 'Sum' => [ 'shape' => 'Sum', ], 'Avg' => [ 'shape' => 'Avg', ], 'Std' => [ 'shape' => 'Std', ], 'P90' => [ 'shape' => 'P90', ], ], ], 'MetricQueryValues' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricQueryValue', ], ], 'MetricUnit' => [ 'type' => 'string', 'max' => 256, ], 'Min' => [ 'type' => 'double', ], 'MinGwDiversity' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'Model' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'MulticastDeviceStatus' => [ 'type' => 'string', 'max' => 256, ], 'MulticastFrameInfo' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'MulticastGroup' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', ], 'Arn' => [ 'shape' => 'MulticastGroupArn', ], 'Name' => [ 'shape' => 'MulticastGroupName', ], ], ], 'MulticastGroupArn' => [ 'type' => 'string', 'max' => 128, ], 'MulticastGroupByFuotaTask' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', ], ], ], 'MulticastGroupId' => [ 'type' => 'string', 'max' => 256, ], 'MulticastGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MulticastGroup', ], ], 'MulticastGroupListByFuotaTask' => [ 'type' => 'list', 'member' => [ 'shape' => 'MulticastGroupByFuotaTask', ], ], 'MulticastGroupMessageId' => [ 'type' => 'string', 'max' => 256, ], 'MulticastGroupName' => [ 'type' => 'string', 'max' => 256, ], 'MulticastGroupStatus' => [ 'type' => 'string', 'max' => 256, ], 'MulticastWirelessMetadata' => [ 'type' => 'structure', 'members' => [ 'LoRaWAN' => [ 'shape' => 'LoRaWANMulticastMetadata', ], ], ], 'NRCapable' => [ 'type' => 'boolean', ], 'NbTransMax' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'NbTransMin' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'NetId' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{6}', ], 'NetIdFilters' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetId', ], 'max' => 10, 'min' => 0, ], 'NetworkAnalyzerConfigurationArn' => [ 'type' => 'string', 'max' => 1124, ], 'NetworkAnalyzerConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NetworkAnalyzerConfigurations', ], ], 'NetworkAnalyzerConfigurationName' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[a-zA-Z0-9-_]+', ], 'NetworkAnalyzerConfigurations' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'NetworkAnalyzerConfigurationArn', ], 'Name' => [ 'shape' => 'NetworkAnalyzerConfigurationName', ], ], ], 'NetworkAnalyzerMulticastGroupList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MulticastGroupId', ], 'max' => 10, 'min' => 0, ], 'NetworkId' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'NextToken' => [ 'type' => 'string', 'max' => 4096, ], 'NumberOfDevicesInGroup' => [ 'type' => 'integer', ], 'NumberOfDevicesRequested' => [ 'type' => 'integer', ], 'NwkGeoLoc' => [ 'type' => 'boolean', ], 'NwkKey' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{32}', ], 'NwkSEncKey' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{32}', ], 'NwkSKey' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{32}', ], 'OnboardStatus' => [ 'type' => 'string', 'enum' => [ 'INITIALIZED', 'PENDING', 'ONBOARDED', 'FAILED', ], ], 'OnboardStatusReason' => [ 'type' => 'string', ], 'OtaaV1_0_x' => [ 'type' => 'structure', 'members' => [ 'AppKey' => [ 'shape' => 'AppKey', ], 'AppEui' => [ 'shape' => 'AppEui', ], 'JoinEui' => [ 'shape' => 'JoinEui', ], 'GenAppKey' => [ 'shape' => 'GenAppKey', ], ], ], 'OtaaV1_1' => [ 'type' => 'structure', 'members' => [ 'AppKey' => [ 'shape' => 'AppKey', ], 'NwkKey' => [ 'shape' => 'NwkKey', ], 'JoinEui' => [ 'shape' => 'JoinEui', ], ], ], 'P90' => [ 'type' => 'double', ], 'PCI' => [ 'type' => 'integer', 'max' => 503, 'min' => 0, ], 'PSC' => [ 'type' => 'integer', 'max' => 511, 'min' => 0, ], 'PackageVersion' => [ 'type' => 'string', 'max' => 32, 'min' => 1, ], 'ParticipatingGateways' => [ 'type' => 'structure', 'required' => [ 'DownlinkMode', 'GatewayList', 'TransmissionInterval', ], 'members' => [ 'DownlinkMode' => [ 'shape' => 'DownlinkMode', ], 'GatewayList' => [ 'shape' => 'GatewayList', ], 'TransmissionInterval' => [ 'shape' => 'TransmissionInterval', ], ], ], 'ParticipatingGatewaysMulticast' => [ 'type' => 'structure', 'members' => [ 'GatewayList' => [ 'shape' => 'GatewayListMulticast', ], 'TransmissionInterval' => [ 'shape' => 'TransmissionIntervalMulticast', ], ], ], 'PartnerAccountArn' => [ 'type' => 'string', ], 'PartnerAccountId' => [ 'type' => 'string', 'max' => 256, ], 'PartnerType' => [ 'type' => 'string', 'enum' => [ 'Sidewalk', ], ], 'PathLoss' => [ 'type' => 'integer', 'max' => 158, 'min' => 46, ], 'PayloadData' => [ 'type' => 'string', 'max' => 2048, 'pattern' => '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$', ], 'PilotPower' => [ 'type' => 'integer', 'max' => -49, 'min' => -142, ], 'PingSlotDr' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'PingSlotFreq' => [ 'type' => 'integer', 'max' => 16700000, 'min' => 1000000, ], 'PingSlotPeriod' => [ 'type' => 'integer', 'max' => 4096, 'min' => 32, ], 'PnOffset' => [ 'type' => 'integer', 'max' => 511, 'min' => 0, ], 'PositionConfigurationFec' => [ 'type' => 'string', 'enum' => [ 'ROSE', 'NONE', ], ], 'PositionConfigurationItem' => [ 'type' => 'structure', 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'PositionResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'PositionResourceType', ], 'Solvers' => [ 'shape' => 'PositionSolverDetails', ], 'Destination' => [ 'shape' => 'DestinationName', ], ], ], 'PositionConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PositionConfigurationItem', ], ], 'PositionConfigurationStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'PositionCoordinate' => [ 'type' => 'list', 'member' => [ 'shape' => 'PositionCoordinateValue', ], ], 'PositionCoordinateValue' => [ 'type' => 'float', ], 'PositionResourceIdentifier' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}', ], 'PositionResourceType' => [ 'type' => 'string', 'enum' => [ 'WirelessDevice', 'WirelessGateway', ], ], 'PositionSolverConfigurations' => [ 'type' => 'structure', 'members' => [ 'SemtechGnss' => [ 'shape' => 'SemtechGnssConfiguration', ], ], ], 'PositionSolverDetails' => [ 'type' => 'structure', 'members' => [ 'SemtechGnss' => [ 'shape' => 'SemtechGnssDetail', ], ], ], 'PositionSolverProvider' => [ 'type' => 'string', 'enum' => [ 'Semtech', ], ], 'PositionSolverType' => [ 'type' => 'string', 'enum' => [ 'GNSS', ], ], 'PositionSolverVersion' => [ 'type' => 'string', 'max' => 50, 'min' => 0, ], 'Positioning' => [ 'type' => 'structure', 'members' => [ 'ClockSync' => [ 'shape' => 'FPort', ], 'Stream' => [ 'shape' => 'FPort', ], 'Gnss' => [ 'shape' => 'FPort', ], ], ], 'PositioningConfigStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'PrAllowed' => [ 'type' => 'boolean', ], 'PresetFreq' => [ 'type' => 'integer', 'max' => 16700000, 'min' => 1000000, ], 'PrivateKeysList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CertificateList', ], ], 'ProviderNetId' => [ 'type' => 'string', 'max' => 256, ], 'ProximityEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkEventNotificationConfigurations', ], 'WirelessDeviceIdEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'ProximityResourceTypeEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkResourceTypeEventConfiguration', ], ], ], 'PutPositionConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'PositionResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'PositionResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], 'Solvers' => [ 'shape' => 'PositionSolverConfigurations', ], 'Destination' => [ 'shape' => 'DestinationName', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'PutPositionConfigurationResponse' => [ 'type' => 'structure', 'members' => [], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'PutResourceLogLevelRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', 'LogLevel', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'ResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'ResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], ], ], 'PutResourceLogLevelResponse' => [ 'type' => 'structure', 'members' => [], ], 'QualificationStatus' => [ 'type' => 'boolean', ], 'QueryString' => [ 'type' => 'string', 'max' => 4096, ], 'RSCP' => [ 'type' => 'integer', 'max' => -25, 'min' => -120, ], 'RSRP' => [ 'type' => 'integer', 'max' => -44, 'min' => -140, ], 'RSRQ' => [ 'type' => 'float', 'max' => -3, 'min' => -19.5, ], 'RSS' => [ 'type' => 'integer', 'max' => 0, 'min' => -128, ], 'RaAllowed' => [ 'type' => 'boolean', ], 'RedundancyPercent' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'RegParamsRevision' => [ 'type' => 'string', 'max' => 64, ], 'RegistrationZone' => [ 'type' => 'integer', 'max' => 4095, 'min' => 0, ], 'ReportDevStatusBattery' => [ 'type' => 'boolean', ], 'ReportDevStatusMargin' => [ 'type' => 'boolean', ], 'ResetAllResourceLogLevelsRequest' => [ 'type' => 'structure', 'members' => [], ], 'ResetAllResourceLogLevelsResponse' => [ 'type' => 'structure', 'members' => [], ], 'ResetResourceLogLevelRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'ResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'ResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], ], ], 'ResetResourceLogLevelResponse' => [ 'type' => 'structure', 'members' => [], ], 'ResourceId' => [ 'type' => 'string', ], 'ResourceIdentifier' => [ 'type' => 'string', 'max' => 256, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], 'ResourceId' => [ 'shape' => 'ResourceId', ], 'ResourceType' => [ 'shape' => 'ResourceType', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'ResourceType' => [ 'type' => 'string', ], 'Result' => [ 'type' => 'string', 'max' => 2048, ], 'RfRegion' => [ 'type' => 'string', 'max' => 64, ], 'Role' => [ 'type' => 'string', 'max' => 2048, ], 'RoleArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, ], 'RxDataRate2' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'RxDelay1' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'RxDrOffset1' => [ 'type' => 'integer', 'max' => 7, 'min' => 0, ], 'RxFreq2' => [ 'type' => 'integer', 'max' => 16700000, 'min' => 1000000, ], 'RxLevel' => [ 'type' => 'integer', 'max' => -25, 'min' => -110, ], 'SNwkSIntKey' => [ 'type' => 'string', 'pattern' => '[a-fA-F0-9]{32}', ], 'SemtechGnssConfiguration' => [ 'type' => 'structure', 'required' => [ 'Status', 'Fec', ], 'members' => [ 'Status' => [ 'shape' => 'PositionConfigurationStatus', ], 'Fec' => [ 'shape' => 'PositionConfigurationFec', ], ], ], 'SemtechGnssDetail' => [ 'type' => 'structure', 'members' => [ 'Provider' => [ 'shape' => 'PositionSolverProvider', ], 'Type' => [ 'shape' => 'PositionSolverType', ], 'Status' => [ 'shape' => 'PositionConfigurationStatus', ], 'Fec' => [ 'shape' => 'PositionConfigurationFec', ], ], ], 'SendDataToMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'PayloadData', 'WirelessMetadata', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], 'PayloadData' => [ 'shape' => 'PayloadData', ], 'WirelessMetadata' => [ 'shape' => 'MulticastWirelessMetadata', ], ], ], 'SendDataToMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [ 'MessageId' => [ 'shape' => 'MulticastGroupMessageId', ], ], ], 'SendDataToWirelessDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'TransmitMode', 'PayloadData', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], 'TransmitMode' => [ 'shape' => 'TransmitMode', ], 'PayloadData' => [ 'shape' => 'PayloadData', ], 'WirelessMetadata' => [ 'shape' => 'WirelessMetadata', ], ], ], 'SendDataToWirelessDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'MessageId' => [ 'shape' => 'MessageId', ], ], ], 'Seq' => [ 'type' => 'integer', 'max' => 16383, 'min' => 0, ], 'ServiceProfile' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'ServiceProfileArn', ], 'Name' => [ 'shape' => 'ServiceProfileName', ], 'Id' => [ 'shape' => 'ServiceProfileId', ], ], ], 'ServiceProfileArn' => [ 'type' => 'string', ], 'ServiceProfileId' => [ 'type' => 'string', 'max' => 256, ], 'ServiceProfileList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceProfile', ], ], 'ServiceProfileName' => [ 'type' => 'string', 'max' => 256, ], 'SessionKeysAbpV1_0_x' => [ 'type' => 'structure', 'members' => [ 'NwkSKey' => [ 'shape' => 'NwkSKey', ], 'AppSKey' => [ 'shape' => 'AppSKey', ], ], ], 'SessionKeysAbpV1_1' => [ 'type' => 'structure', 'members' => [ 'FNwkSIntKey' => [ 'shape' => 'FNwkSIntKey', ], 'SNwkSIntKey' => [ 'shape' => 'SNwkSIntKey', ], 'NwkSEncKey' => [ 'shape' => 'NwkSEncKey', ], 'AppSKey' => [ 'shape' => 'AppSKey', ], ], ], 'SessionStartTimeTimestamp' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'SessionTimeout' => [ 'type' => 'integer', 'max' => 172800, 'min' => 60, ], 'SidewalkAccountInfo' => [ 'type' => 'structure', 'members' => [ 'AmazonId' => [ 'shape' => 'AmazonId', ], 'AppServerPrivateKey' => [ 'shape' => 'AppServerPrivateKey', ], ], ], 'SidewalkAccountInfoWithFingerprint' => [ 'type' => 'structure', 'members' => [ 'AmazonId' => [ 'shape' => 'AmazonId', ], 'Fingerprint' => [ 'shape' => 'Fingerprint', ], 'Arn' => [ 'shape' => 'PartnerAccountArn', ], ], ], 'SidewalkAccountList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SidewalkAccountInfoWithFingerprint', ], ], 'SidewalkCreateDeviceProfile' => [ 'type' => 'structure', 'members' => [], ], 'SidewalkCreateWirelessDevice' => [ 'type' => 'structure', 'members' => [ 'DeviceProfileId' => [ 'shape' => 'DeviceProfileId', ], 'Positioning' => [ 'shape' => 'SidewalkPositioning', ], 'SidewalkManufacturingSn' => [ 'shape' => 'SidewalkManufacturingSn', ], ], ], 'SidewalkDevice' => [ 'type' => 'structure', 'members' => [ 'AmazonId' => [ 'shape' => 'AmazonId', ], 'SidewalkId' => [ 'shape' => 'SidewalkId', ], 'SidewalkManufacturingSn' => [ 'shape' => 'SidewalkManufacturingSn', ], 'DeviceCertificates' => [ 'shape' => 'DeviceCertificateList', ], 'PrivateKeys' => [ 'shape' => 'PrivateKeysList', ], 'DeviceProfileId' => [ 'shape' => 'DeviceProfileId', ], 'CertificateId' => [ 'shape' => 'DakCertificateId', ], 'Status' => [ 'shape' => 'WirelessDeviceSidewalkStatus', ], 'Positioning' => [ 'shape' => 'SidewalkPositioning', ], ], ], 'SidewalkDeviceMetadata' => [ 'type' => 'structure', 'members' => [ 'Rssi' => [ 'shape' => 'Integer', ], 'BatteryLevel' => [ 'shape' => 'BatteryLevel', ], 'Event' => [ 'shape' => 'Event', ], 'DeviceState' => [ 'shape' => 'DeviceState', ], ], ], 'SidewalkEventNotificationConfigurations' => [ 'type' => 'structure', 'members' => [ 'AmazonIdEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'SidewalkGetDeviceProfile' => [ 'type' => 'structure', 'members' => [ 'ApplicationServerPublicKey' => [ 'shape' => 'ApplicationServerPublicKey', ], 'QualificationStatus' => [ 'shape' => 'QualificationStatus', ], 'DakCertificateMetadata' => [ 'shape' => 'DakCertificateMetadataList', ], ], ], 'SidewalkGetStartImportInfo' => [ 'type' => 'structure', 'members' => [ 'DeviceCreationFileList' => [ 'shape' => 'DeviceCreationFileList', ], 'Role' => [ 'shape' => 'Role', ], 'Positioning' => [ 'shape' => 'SidewalkPositioning', ], ], ], 'SidewalkId' => [ 'type' => 'string', 'max' => 256, ], 'SidewalkListDevice' => [ 'type' => 'structure', 'members' => [ 'AmazonId' => [ 'shape' => 'AmazonId', ], 'SidewalkId' => [ 'shape' => 'SidewalkId', ], 'SidewalkManufacturingSn' => [ 'shape' => 'SidewalkManufacturingSn', ], 'DeviceCertificates' => [ 'shape' => 'DeviceCertificateList', ], 'DeviceProfileId' => [ 'shape' => 'DeviceProfileId', ], 'Status' => [ 'shape' => 'WirelessDeviceSidewalkStatus', ], 'Positioning' => [ 'shape' => 'SidewalkPositioning', ], ], ], 'SidewalkListDevicesForImportInfo' => [ 'type' => 'structure', 'members' => [ 'Positioning' => [ 'shape' => 'SidewalkPositioning', ], ], ], 'SidewalkManufacturingSn' => [ 'type' => 'string', 'max' => 64, ], 'SidewalkPositioning' => [ 'type' => 'structure', 'members' => [ 'DestinationName' => [ 'shape' => 'DestinationName', ], ], ], 'SidewalkResourceTypeEventConfiguration' => [ 'type' => 'structure', 'members' => [ 'WirelessDeviceEventTopic' => [ 'shape' => 'EventNotificationTopicStatus', ], ], ], 'SidewalkSendDataToDevice' => [ 'type' => 'structure', 'members' => [ 'Seq' => [ 'shape' => 'Seq', ], 'MessageType' => [ 'shape' => 'MessageType', ], 'AckModeRetryDurationSecs' => [ 'shape' => 'AckModeRetryDurationSecs', ], ], ], 'SidewalkSingleStartImportInfo' => [ 'type' => 'structure', 'members' => [ 'SidewalkManufacturingSn' => [ 'shape' => 'SidewalkManufacturingSn', ], 'Positioning' => [ 'shape' => 'SidewalkPositioning', ], ], ], 'SidewalkStartImportInfo' => [ 'type' => 'structure', 'members' => [ 'DeviceCreationFile' => [ 'shape' => 'DeviceCreationFile', ], 'Role' => [ 'shape' => 'Role', ], 'Positioning' => [ 'shape' => 'SidewalkPositioning', ], ], ], 'SidewalkUpdateAccount' => [ 'type' => 'structure', 'members' => [ 'AppServerPrivateKey' => [ 'shape' => 'AppServerPrivateKey', ], ], ], 'SidewalkUpdateImportInfo' => [ 'type' => 'structure', 'members' => [ 'DeviceCreationFile' => [ 'shape' => 'DeviceCreationFile', ], ], ], 'SidewalkUpdateWirelessDevice' => [ 'type' => 'structure', 'members' => [ 'Positioning' => [ 'shape' => 'SidewalkPositioning', ], ], ], 'SigningAlg' => [ 'type' => 'string', 'enum' => [ 'Ed25519', 'P256r1', ], ], 'StartBulkAssociateWirelessDeviceWithMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], 'QueryString' => [ 'shape' => 'QueryString', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'StartBulkAssociateWirelessDeviceWithMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'StartBulkDisassociateWirelessDeviceFromMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], 'QueryString' => [ 'shape' => 'QueryString', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'StartBulkDisassociateWirelessDeviceFromMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'StartFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANStartFuotaTask', ], ], ], 'StartFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'StartMulticastGroupSessionRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'LoRaWAN', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANMulticastSession', ], ], ], 'StartMulticastGroupSessionResponse' => [ 'type' => 'structure', 'members' => [], ], 'StartSingleWirelessDeviceImportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationName', 'Sidewalk', ], 'members' => [ 'DestinationName' => [ 'shape' => 'DestinationName', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'DeviceName' => [ 'shape' => 'DeviceName', ], 'Tags' => [ 'shape' => 'TagList', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], 'Sidewalk' => [ 'shape' => 'SidewalkSingleStartImportInfo', ], ], ], 'StartSingleWirelessDeviceImportTaskResponse' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ImportTaskId', ], 'Arn' => [ 'shape' => 'ImportTaskArn', ], ], ], 'StartTime' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'StartWirelessDeviceImportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'DestinationName', 'Sidewalk', ], 'members' => [ 'DestinationName' => [ 'shape' => 'DestinationName', ], 'ClientRequestToken' => [ 'shape' => 'ClientRequestToken', 'idempotencyToken' => true, ], 'Tags' => [ 'shape' => 'TagList', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], 'Sidewalk' => [ 'shape' => 'SidewalkStartImportInfo', ], ], ], 'StartWirelessDeviceImportTaskResponse' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ImportTaskId', ], 'Arn' => [ 'shape' => 'ImportTaskArn', ], ], ], 'Station' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'StatusReason' => [ 'type' => 'string', ], 'Std' => [ 'type' => 'double', ], 'SubBand' => [ 'type' => 'integer', 'max' => 8, 'min' => 1, ], 'SubBands' => [ 'type' => 'list', 'member' => [ 'shape' => 'SubBand', ], 'max' => 8, 'min' => 0, ], 'Sum' => [ 'type' => 'double', ], 'SummaryMetricConfiguration' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'SummaryMetricConfigurationStatus', ], ], ], 'SummaryMetricConfigurationStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'SummaryMetricQueries' => [ 'type' => 'list', 'member' => [ 'shape' => 'SummaryMetricQuery', ], ], 'SummaryMetricQuery' => [ 'type' => 'structure', 'members' => [ 'QueryId' => [ 'shape' => 'MetricQueryId', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'Dimensions' => [ 'shape' => 'Dimensions', ], 'AggregationPeriod' => [ 'shape' => 'AggregationPeriod', ], 'StartTimestamp' => [ 'shape' => 'MetricQueryStartTimestamp', ], 'EndTimestamp' => [ 'shape' => 'MetricQueryEndTimestamp', ], ], ], 'SummaryMetricQueryResult' => [ 'type' => 'structure', 'members' => [ 'QueryId' => [ 'shape' => 'MetricQueryId', ], 'QueryStatus' => [ 'shape' => 'MetricQueryStatus', ], 'Error' => [ 'shape' => 'MetricQueryError', ], 'MetricName' => [ 'shape' => 'MetricName', ], 'Dimensions' => [ 'shape' => 'Dimensions', ], 'AggregationPeriod' => [ 'shape' => 'AggregationPeriod', ], 'StartTimestamp' => [ 'shape' => 'MetricQueryStartTimestamp', ], 'EndTimestamp' => [ 'shape' => 'MetricQueryEndTimestamp', ], 'Timestamps' => [ 'shape' => 'MetricQueryTimestamps', ], 'Values' => [ 'shape' => 'MetricQueryValues', ], 'Unit' => [ 'shape' => 'MetricUnit', ], ], ], 'SummaryMetricQueryResults' => [ 'type' => 'list', 'member' => [ 'shape' => 'SummaryMetricQueryResult', ], ], 'SupportedRfRegion' => [ 'type' => 'string', 'enum' => [ 'EU868', 'US915', 'AU915', 'AS923-1', 'AS923-2', 'AS923-3', 'AS923-4', 'EU433', 'CN470', 'CN779', 'RU864', 'KR920', 'IN865', ], ], 'Supports32BitFCnt' => [ 'type' => 'boolean', ], 'SupportsClassB' => [ 'type' => 'boolean', ], 'SupportsClassC' => [ 'type' => 'boolean', ], 'SupportsJoin' => [ 'type' => 'boolean', ], 'SystemId' => [ 'type' => 'integer', 'max' => 32767, 'min' => 1, ], 'TAC' => [ 'type' => 'integer', 'max' => 65535, 'min' => 0, ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 200, 'min' => 0, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 200, 'min' => 0, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'AmazonResourceName', 'location' => 'querystring', 'locationName' => 'resourceArn', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'TargetPer' => [ 'type' => 'integer', 'max' => 100, 'min' => 0, ], 'TdscdmaList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TdscdmaObj', ], 'max' => 16, 'min' => 1, ], 'TdscdmaLocalId' => [ 'type' => 'structure', 'required' => [ 'Uarfcn', 'CellParams', ], 'members' => [ 'Uarfcn' => [ 'shape' => 'UARFCN', ], 'CellParams' => [ 'shape' => 'CellParams', ], ], ], 'TdscdmaNmrList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TdscdmaNmrObj', ], 'max' => 32, 'min' => 1, ], 'TdscdmaNmrObj' => [ 'type' => 'structure', 'required' => [ 'Uarfcn', 'CellParams', ], 'members' => [ 'Uarfcn' => [ 'shape' => 'UARFCN', ], 'CellParams' => [ 'shape' => 'CellParams', ], 'UtranCid' => [ 'shape' => 'UtranCid', ], 'Rscp' => [ 'shape' => 'RSCP', ], 'PathLoss' => [ 'shape' => 'PathLoss', ], ], ], 'TdscdmaObj' => [ 'type' => 'structure', 'required' => [ 'Mcc', 'Mnc', 'UtranCid', ], 'members' => [ 'Mcc' => [ 'shape' => 'MCC', ], 'Mnc' => [ 'shape' => 'MNC', ], 'Lac' => [ 'shape' => 'LAC', ], 'UtranCid' => [ 'shape' => 'UtranCid', ], 'TdscdmaLocalId' => [ 'shape' => 'TdscdmaLocalId', ], 'TdscdmaTimingAdvance' => [ 'shape' => 'TdscdmaTimingAdvance', ], 'Rscp' => [ 'shape' => 'RSCP', ], 'PathLoss' => [ 'shape' => 'PathLoss', ], 'TdscdmaNmr' => [ 'shape' => 'TdscdmaNmrList', ], ], ], 'TdscdmaTimingAdvance' => [ 'type' => 'integer', 'max' => 1530, 'min' => 0, ], 'TestWirelessDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], ], ], 'TestWirelessDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'Result' => [ 'shape' => 'Result', ], ], ], 'ThingArn' => [ 'type' => 'string', ], 'ThingName' => [ 'type' => 'string', ], 'ThrottlingException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'TooManyTagsException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], 'ResourceName' => [ 'shape' => 'AmazonResourceName', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TraceContent' => [ 'type' => 'structure', 'members' => [ 'WirelessDeviceFrameInfo' => [ 'shape' => 'WirelessDeviceFrameInfo', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], 'MulticastFrameInfo' => [ 'shape' => 'MulticastFrameInfo', ], ], ], 'TransmissionInterval' => [ 'type' => 'integer', 'max' => 604800, 'min' => 1, ], 'TransmissionIntervalMulticast' => [ 'type' => 'integer', 'max' => 60000, 'min' => 0, ], 'TransmitMode' => [ 'type' => 'integer', 'max' => 1, 'min' => 0, ], 'TxPowerIndexMax' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'TxPowerIndexMin' => [ 'type' => 'integer', 'max' => 15, 'min' => 0, ], 'UARFCN' => [ 'type' => 'integer', 'max' => 16383, 'min' => 0, ], 'UARFCNDL' => [ 'type' => 'integer', 'max' => 16383, 'min' => 0, ], 'UlBucketSize' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 0, ], 'UlRate' => [ 'type' => 'integer', 'max' => 2147483647, 'min' => 0, ], 'UlRatePolicy' => [ 'type' => 'string', 'max' => 256, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'AmazonResourceName', 'location' => 'querystring', 'locationName' => 'resourceArn', ], 'TagKeys' => [ 'shape' => 'TagKeyList', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateAbpV1_0_x' => [ 'type' => 'structure', 'members' => [ 'FCntStart' => [ 'shape' => 'FCntStart', ], ], ], 'UpdateAbpV1_1' => [ 'type' => 'structure', 'members' => [ 'FCntStart' => [ 'shape' => 'FCntStart', ], ], ], 'UpdateDataSource' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'UpdateDestinationRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'DestinationName', 'location' => 'uri', 'locationName' => 'Name', ], 'ExpressionType' => [ 'shape' => 'ExpressionType', ], 'Expression' => [ 'shape' => 'Expression', ], 'Description' => [ 'shape' => 'Description', ], 'RoleArn' => [ 'shape' => 'RoleArn', ], ], ], 'UpdateDestinationResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateEventConfigurationByResourceTypesRequest' => [ 'type' => 'structure', 'members' => [ 'DeviceRegistrationState' => [ 'shape' => 'DeviceRegistrationStateResourceTypeEventConfiguration', ], 'Proximity' => [ 'shape' => 'ProximityResourceTypeEventConfiguration', ], 'Join' => [ 'shape' => 'JoinResourceTypeEventConfiguration', ], 'ConnectionStatus' => [ 'shape' => 'ConnectionStatusResourceTypeEventConfiguration', ], 'MessageDeliveryStatus' => [ 'shape' => 'MessageDeliveryStatusResourceTypeEventConfiguration', ], ], ], 'UpdateEventConfigurationByResourceTypesResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateFPorts' => [ 'type' => 'structure', 'members' => [ 'Positioning' => [ 'shape' => 'Positioning', ], 'Applications' => [ 'shape' => 'Applications', ], ], ], 'UpdateFuotaTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'FuotaTaskId', 'location' => 'uri', 'locationName' => 'Id', ], 'Name' => [ 'shape' => 'FuotaTaskName', ], 'Description' => [ 'shape' => 'Description', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANFuotaTask', ], 'FirmwareUpdateImage' => [ 'shape' => 'FirmwareUpdateImage', ], 'FirmwareUpdateRole' => [ 'shape' => 'FirmwareUpdateRole', ], 'RedundancyPercent' => [ 'shape' => 'RedundancyPercent', ], 'FragmentSizeBytes' => [ 'shape' => 'FragmentSizeBytes', ], 'FragmentIntervalMS' => [ 'shape' => 'FragmentIntervalMS', ], 'Descriptor' => [ 'shape' => 'FileDescriptor', ], ], ], 'UpdateFuotaTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateLogLevelsByResourceTypesRequest' => [ 'type' => 'structure', 'members' => [ 'DefaultLogLevel' => [ 'shape' => 'LogLevel', ], 'FuotaTaskLogOptions' => [ 'shape' => 'FuotaTaskLogOptionList', ], 'WirelessDeviceLogOptions' => [ 'shape' => 'WirelessDeviceLogOptionList', ], 'WirelessGatewayLogOptions' => [ 'shape' => 'WirelessGatewayLogOptionList', ], ], ], 'UpdateLogLevelsByResourceTypesResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateMetricConfigurationRequest' => [ 'type' => 'structure', 'members' => [ 'SummaryMetric' => [ 'shape' => 'SummaryMetricConfiguration', ], ], ], 'UpdateMetricConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateMulticastGroupRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MulticastGroupId', 'location' => 'uri', 'locationName' => 'Id', ], 'Name' => [ 'shape' => 'MulticastGroupName', ], 'Description' => [ 'shape' => 'Description', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANMulticast', ], ], ], 'UpdateMulticastGroupResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateNetworkAnalyzerConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'ConfigurationName', ], 'members' => [ 'ConfigurationName' => [ 'shape' => 'NetworkAnalyzerConfigurationName', 'location' => 'uri', 'locationName' => 'ConfigurationName', ], 'TraceContent' => [ 'shape' => 'TraceContent', ], 'WirelessDevicesToAdd' => [ 'shape' => 'WirelessDeviceList', ], 'WirelessDevicesToRemove' => [ 'shape' => 'WirelessDeviceList', ], 'WirelessGatewaysToAdd' => [ 'shape' => 'WirelessGatewayList', ], 'WirelessGatewaysToRemove' => [ 'shape' => 'WirelessGatewayList', ], 'Description' => [ 'shape' => 'Description', ], 'MulticastGroupsToAdd' => [ 'shape' => 'NetworkAnalyzerMulticastGroupList', ], 'MulticastGroupsToRemove' => [ 'shape' => 'NetworkAnalyzerMulticastGroupList', ], ], ], 'UpdateNetworkAnalyzerConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdatePartnerAccountRequest' => [ 'type' => 'structure', 'required' => [ 'Sidewalk', 'PartnerAccountId', 'PartnerType', ], 'members' => [ 'Sidewalk' => [ 'shape' => 'SidewalkUpdateAccount', ], 'PartnerAccountId' => [ 'shape' => 'PartnerAccountId', 'location' => 'uri', 'locationName' => 'PartnerAccountId', ], 'PartnerType' => [ 'shape' => 'PartnerType', 'location' => 'querystring', 'locationName' => 'partnerType', ], ], ], 'UpdatePartnerAccountResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdatePositionRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', 'Position', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'PositionResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'PositionResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], 'Position' => [ 'shape' => 'PositionCoordinate', ], ], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'UpdatePositionResponse' => [ 'type' => 'structure', 'members' => [], 'deprecated' => true, 'deprecatedMessage' => 'This operation is no longer supported.', ], 'UpdateResourceEventConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Identifier', 'IdentifierType', ], 'members' => [ 'Identifier' => [ 'shape' => 'Identifier', 'location' => 'uri', 'locationName' => 'Identifier', ], 'IdentifierType' => [ 'shape' => 'IdentifierType', 'location' => 'querystring', 'locationName' => 'identifierType', ], 'PartnerType' => [ 'shape' => 'EventNotificationPartnerType', 'location' => 'querystring', 'locationName' => 'partnerType', ], 'DeviceRegistrationState' => [ 'shape' => 'DeviceRegistrationStateEventConfiguration', ], 'Proximity' => [ 'shape' => 'ProximityEventConfiguration', ], 'Join' => [ 'shape' => 'JoinEventConfiguration', ], 'ConnectionStatus' => [ 'shape' => 'ConnectionStatusEventConfiguration', ], 'MessageDeliveryStatus' => [ 'shape' => 'MessageDeliveryStatusEventConfiguration', ], ], ], 'UpdateResourceEventConfigurationResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateResourcePositionRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceIdentifier', 'ResourceType', ], 'members' => [ 'ResourceIdentifier' => [ 'shape' => 'PositionResourceIdentifier', 'location' => 'uri', 'locationName' => 'ResourceIdentifier', ], 'ResourceType' => [ 'shape' => 'PositionResourceType', 'location' => 'querystring', 'locationName' => 'resourceType', ], 'GeoJsonPayload' => [ 'shape' => 'GeoJsonPayload', ], ], 'payload' => 'GeoJsonPayload', ], 'UpdateResourcePositionResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateSignature' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'UpdateWirelessDeviceImportTaskRequest' => [ 'type' => 'structure', 'required' => [ 'Id', 'Sidewalk', ], 'members' => [ 'Id' => [ 'shape' => 'ImportTaskId', 'location' => 'uri', 'locationName' => 'Id', ], 'Sidewalk' => [ 'shape' => 'SidewalkUpdateImportInfo', ], ], ], 'UpdateWirelessDeviceImportTaskResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateWirelessDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessDeviceId', 'location' => 'uri', 'locationName' => 'Id', ], 'DestinationName' => [ 'shape' => 'DestinationName', ], 'Name' => [ 'shape' => 'WirelessDeviceName', ], 'Description' => [ 'shape' => 'Description', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANUpdateDevice', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], 'Sidewalk' => [ 'shape' => 'SidewalkUpdateWirelessDevice', ], ], ], 'UpdateWirelessDeviceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateWirelessGatewayRequest' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayId', 'location' => 'uri', 'locationName' => 'Id', ], 'Name' => [ 'shape' => 'WirelessGatewayName', ], 'Description' => [ 'shape' => 'Description', ], 'JoinEuiFilters' => [ 'shape' => 'JoinEuiFilters', ], 'NetIdFilters' => [ 'shape' => 'NetIdFilters', ], 'MaxEirp' => [ 'shape' => 'GatewayMaxEirp', ], ], ], 'UpdateWirelessGatewayResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateWirelessGatewayTaskCreate' => [ 'type' => 'structure', 'members' => [ 'UpdateDataSource' => [ 'shape' => 'UpdateDataSource', ], 'UpdateDataRole' => [ 'shape' => 'UpdateDataSource', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANUpdateGatewayTaskCreate', ], ], ], 'UpdateWirelessGatewayTaskEntry' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'WirelessGatewayTaskDefinitionId', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANUpdateGatewayTaskEntry', ], 'Arn' => [ 'shape' => 'WirelessGatewayTaskDefinitionArn', ], ], ], 'Use2DSolver' => [ 'type' => 'boolean', ], 'UtranCid' => [ 'type' => 'integer', 'max' => 268435455, 'min' => 0, ], 'ValidationException' => [ 'type' => 'structure', 'members' => [ 'Message' => [ 'shape' => 'Message', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'VerticalAccuracy' => [ 'type' => 'float', 'min' => 0, ], 'WcdmaList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WcdmaObj', ], 'max' => 16, 'min' => 1, ], 'WcdmaLocalId' => [ 'type' => 'structure', 'required' => [ 'Uarfcndl', 'Psc', ], 'members' => [ 'Uarfcndl' => [ 'shape' => 'UARFCNDL', ], 'Psc' => [ 'shape' => 'PSC', ], ], ], 'WcdmaNmrList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WcdmaNmrObj', ], 'max' => 32, 'min' => 1, ], 'WcdmaNmrObj' => [ 'type' => 'structure', 'required' => [ 'Uarfcndl', 'Psc', 'UtranCid', ], 'members' => [ 'Uarfcndl' => [ 'shape' => 'UARFCNDL', ], 'Psc' => [ 'shape' => 'PSC', ], 'UtranCid' => [ 'shape' => 'UtranCid', ], 'Rscp' => [ 'shape' => 'RSCP', ], 'PathLoss' => [ 'shape' => 'PathLoss', ], ], ], 'WcdmaObj' => [ 'type' => 'structure', 'required' => [ 'Mcc', 'Mnc', 'UtranCid', ], 'members' => [ 'Mcc' => [ 'shape' => 'MCC', ], 'Mnc' => [ 'shape' => 'MNC', ], 'Lac' => [ 'shape' => 'LAC', ], 'UtranCid' => [ 'shape' => 'UtranCid', ], 'WcdmaLocalId' => [ 'shape' => 'WcdmaLocalId', ], 'Rscp' => [ 'shape' => 'RSCP', ], 'PathLoss' => [ 'shape' => 'PathLoss', ], 'WcdmaNmr' => [ 'shape' => 'WcdmaNmrList', ], ], ], 'WiFiAccessPoint' => [ 'type' => 'structure', 'required' => [ 'MacAddress', 'Rss', ], 'members' => [ 'MacAddress' => [ 'shape' => 'MacAddress', ], 'Rss' => [ 'shape' => 'RSS', ], ], ], 'WiFiAccessPoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'WiFiAccessPoint', ], ], 'WiFiCellular' => [ 'type' => 'structure', 'members' => [ 'ConfidencePercent' => [ 'shape' => 'ConfidencePercent', ], ], ], 'WirelessDeviceArn' => [ 'type' => 'string', ], 'WirelessDeviceEvent' => [ 'type' => 'string', 'enum' => [ 'Join', 'Rejoin', 'Uplink_Data', 'Downlink_Data', 'Registration', ], ], 'WirelessDeviceEventLogOption' => [ 'type' => 'structure', 'required' => [ 'Event', 'LogLevel', ], 'members' => [ 'Event' => [ 'shape' => 'WirelessDeviceEvent', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], ], ], 'WirelessDeviceEventLogOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessDeviceEventLogOption', ], ], 'WirelessDeviceFrameInfo' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'WirelessDeviceId' => [ 'type' => 'string', 'max' => 256, ], 'WirelessDeviceIdType' => [ 'type' => 'string', 'enum' => [ 'WirelessDeviceId', 'DevEui', 'ThingName', 'SidewalkManufacturingSn', ], ], 'WirelessDeviceImportTask' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'ImportTaskId', ], 'Arn' => [ 'shape' => 'ImportTaskArn', ], 'DestinationName' => [ 'shape' => 'DestinationName', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], 'Sidewalk' => [ 'shape' => 'SidewalkGetStartImportInfo', ], 'CreationTime' => [ 'shape' => 'CreationTime', ], 'Status' => [ 'shape' => 'ImportTaskStatus', ], 'StatusReason' => [ 'shape' => 'StatusReason', ], 'InitializedImportedDeviceCount' => [ 'shape' => 'ImportedWirelessDeviceCount', ], 'PendingImportedDeviceCount' => [ 'shape' => 'ImportedWirelessDeviceCount', ], 'OnboardedImportedDeviceCount' => [ 'shape' => 'ImportedWirelessDeviceCount', ], 'FailedImportedDeviceCount' => [ 'shape' => 'ImportedWirelessDeviceCount', ], ], ], 'WirelessDeviceImportTaskList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessDeviceImportTask', ], ], 'WirelessDeviceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessDeviceId', ], 'max' => 250, 'min' => 0, ], 'WirelessDeviceLogOption' => [ 'type' => 'structure', 'required' => [ 'Type', 'LogLevel', ], 'members' => [ 'Type' => [ 'shape' => 'WirelessDeviceType', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], 'Events' => [ 'shape' => 'WirelessDeviceEventLogOptionList', ], ], ], 'WirelessDeviceLogOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessDeviceLogOption', ], ], 'WirelessDeviceName' => [ 'type' => 'string', 'max' => 256, ], 'WirelessDeviceSidewalkStatus' => [ 'type' => 'string', 'enum' => [ 'PROVISIONED', 'REGISTERED', 'ACTIVATED', 'UNKNOWN', ], ], 'WirelessDeviceStatistics' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'WirelessDeviceArn', ], 'Id' => [ 'shape' => 'WirelessDeviceId', ], 'Type' => [ 'shape' => 'WirelessDeviceType', ], 'Name' => [ 'shape' => 'WirelessDeviceName', ], 'DestinationName' => [ 'shape' => 'DestinationName', ], 'LastUplinkReceivedAt' => [ 'shape' => 'ISODateTimeString', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANListDevice', ], 'Sidewalk' => [ 'shape' => 'SidewalkListDevice', ], 'FuotaDeviceStatus' => [ 'shape' => 'FuotaDeviceStatus', ], 'MulticastDeviceStatus' => [ 'shape' => 'MulticastDeviceStatus', ], 'McGroupId' => [ 'shape' => 'McGroupId', ], 'Positioning' => [ 'shape' => 'PositioningConfigStatus', ], ], ], 'WirelessDeviceStatisticsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessDeviceStatistics', ], ], 'WirelessDeviceType' => [ 'type' => 'string', 'enum' => [ 'Sidewalk', 'LoRaWAN', ], ], 'WirelessGatewayArn' => [ 'type' => 'string', ], 'WirelessGatewayEvent' => [ 'type' => 'string', 'enum' => [ 'CUPS_Request', 'Certificate', ], ], 'WirelessGatewayEventLogOption' => [ 'type' => 'structure', 'required' => [ 'Event', 'LogLevel', ], 'members' => [ 'Event' => [ 'shape' => 'WirelessGatewayEvent', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], ], ], 'WirelessGatewayEventLogOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessGatewayEventLogOption', ], ], 'WirelessGatewayId' => [ 'type' => 'string', 'max' => 256, ], 'WirelessGatewayIdType' => [ 'type' => 'string', 'enum' => [ 'GatewayEui', 'WirelessGatewayId', 'ThingName', ], ], 'WirelessGatewayList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessGatewayId', ], ], 'WirelessGatewayLogOption' => [ 'type' => 'structure', 'required' => [ 'Type', 'LogLevel', ], 'members' => [ 'Type' => [ 'shape' => 'WirelessGatewayType', ], 'LogLevel' => [ 'shape' => 'LogLevel', ], 'Events' => [ 'shape' => 'WirelessGatewayEventLogOptionList', ], ], ], 'WirelessGatewayLogOptionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessGatewayLogOption', ], ], 'WirelessGatewayName' => [ 'type' => 'string', 'max' => 256, ], 'WirelessGatewayServiceType' => [ 'type' => 'string', 'enum' => [ 'CUPS', 'LNS', ], ], 'WirelessGatewayStatistics' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'WirelessGatewayArn', ], 'Id' => [ 'shape' => 'WirelessGatewayId', ], 'Name' => [ 'shape' => 'WirelessGatewayName', ], 'Description' => [ 'shape' => 'Description', ], 'LoRaWAN' => [ 'shape' => 'LoRaWANGateway', ], 'LastUplinkReceivedAt' => [ 'shape' => 'ISODateTimeString', ], ], ], 'WirelessGatewayStatisticsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WirelessGatewayStatistics', ], ], 'WirelessGatewayTaskDefinitionArn' => [ 'type' => 'string', ], 'WirelessGatewayTaskDefinitionId' => [ 'type' => 'string', 'max' => 36, 'pattern' => '[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}', ], 'WirelessGatewayTaskDefinitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UpdateWirelessGatewayTaskEntry', ], ], 'WirelessGatewayTaskDefinitionType' => [ 'type' => 'string', 'enum' => [ 'UPDATE', ], ], 'WirelessGatewayTaskName' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'WirelessGatewayTaskStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'IN_PROGRESS', 'FIRST_RETRY', 'SECOND_RETRY', 'COMPLETED', 'FAILED', ], ], 'WirelessGatewayType' => [ 'type' => 'string', 'enum' => [ 'LoRaWAN', ], ], 'WirelessMetadata' => [ 'type' => 'structure', 'members' => [ 'LoRaWAN' => [ 'shape' => 'LoRaWANSendDataToDevice', ], 'Sidewalk' => [ 'shape' => 'SidewalkSendDataToDevice', ], ], ], ],]; diff --git a/vendor/aws/aws-sdk-php/src/data/resiliencehubv2/2026-02-17/api-2.json.php b/vendor/aws/aws-sdk-php/src/data/resiliencehubv2/2026-02-17/api-2.json.php index 387ff5e8f..0fd7d25fc 100644 --- a/vendor/aws/aws-sdk-php/src/data/resiliencehubv2/2026-02-17/api-2.json.php +++ b/vendor/aws/aws-sdk-php/src/data/resiliencehubv2/2026-02-17/api-2.json.php @@ -1,3 +1,3 @@ '2.0', 'metadata' => [ 'apiVersion' => '2026-02-17', 'auth' => [ 'aws.auth#sigv4', ], 'endpointPrefix' => 'resiliencehub', 'protocol' => 'rest-json', 'protocols' => [ 'rest-json', ], 'serviceFullName' => 'AWS Resilience Hub V2', 'serviceId' => 'resiliencehubv2', 'signatureVersion' => 'v4', 'signingName' => 'resiliencehub', 'uid' => 'resiliencehubv2-2026-02-17', ], 'operations' => [ 'CreateAssertion' => [ 'name' => 'CreateAssertion', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-assertion', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateAssertionRequest', ], 'output' => [ 'shape' => 'CreateAssertionResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateInputSource' => [ 'name' => 'CreateInputSource', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-input-source', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateInputSourceRequest', ], 'output' => [ 'shape' => 'CreateInputSourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreatePolicy' => [ 'name' => 'CreatePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-policy', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreatePolicyRequest', ], 'output' => [ 'shape' => 'CreatePolicyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateReport' => [ 'name' => 'CreateReport', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-report', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateReportRequest', ], 'output' => [ 'shape' => 'CreateReportResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateService' => [ 'name' => 'CreateService', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-service', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateServiceRequest', ], 'output' => [ 'shape' => 'CreateServiceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateServiceFunction' => [ 'name' => 'CreateServiceFunction', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-service-function', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateServiceFunctionRequest', ], 'output' => [ 'shape' => 'CreateServiceFunctionResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateServiceFunctionResources' => [ 'name' => 'CreateServiceFunctionResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-service-function-resources', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateServiceFunctionResourcesRequest', ], 'output' => [ 'shape' => 'CreateServiceFunctionResourcesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateSystem' => [ 'name' => 'CreateSystem', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-system', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateSystemRequest', ], 'output' => [ 'shape' => 'CreateSystemResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateUserJourney' => [ 'name' => 'CreateUserJourney', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-user-journey', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateUserJourneyRequest', ], 'output' => [ 'shape' => 'CreateUserJourneyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteAssertion' => [ 'name' => 'DeleteAssertion', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/delete-assertion', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteAssertionRequest', ], 'output' => [ 'shape' => 'DeleteAssertionResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteInputSource' => [ 'name' => 'DeleteInputSource', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/delete-input-source', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteInputSourceRequest', ], 'output' => [ 'shape' => 'DeleteInputSourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeletePolicy' => [ 'name' => 'DeletePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/delete-policy', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeletePolicyRequest', ], 'output' => [ 'shape' => 'DeletePolicyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteService' => [ 'name' => 'DeleteService', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/delete-service', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteServiceRequest', ], 'output' => [ 'shape' => 'DeleteServiceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteServiceFunction' => [ 'name' => 'DeleteServiceFunction', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/delete-function', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteServiceFunctionRequest', ], 'output' => [ 'shape' => 'DeleteServiceFunctionResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteServiceFunctionResources' => [ 'name' => 'DeleteServiceFunctionResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/delete-service-function-resources', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteServiceFunctionResourcesRequest', ], 'output' => [ 'shape' => 'DeleteServiceFunctionResourcesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteSystem' => [ 'name' => 'DeleteSystem', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/delete-system', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteSystemRequest', ], 'output' => [ 'shape' => 'DeleteSystemResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteUserJourney' => [ 'name' => 'DeleteUserJourney', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/delete-user-journey', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteUserJourneyRequest', ], 'output' => [ 'shape' => 'DeleteUserJourneyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'GetFailureModeFinding' => [ 'name' => 'GetFailureModeFinding', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/get-failure-mode-finding', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetFailureModeFindingRequest', ], 'output' => [ 'shape' => 'GetFailureModeFindingResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'GetPolicy' => [ 'name' => 'GetPolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/get-policy', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPolicyRequest', ], 'output' => [ 'shape' => 'GetPolicyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'GetService' => [ 'name' => 'GetService', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/get-service', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetServiceRequest', ], 'output' => [ 'shape' => 'GetServiceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'GetSystem' => [ 'name' => 'GetSystem', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/get-system', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSystemRequest', ], 'output' => [ 'shape' => 'GetSystemResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'GetUserJourney' => [ 'name' => 'GetUserJourney', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/get-user-journey', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetUserJourneyRequest', ], 'output' => [ 'shape' => 'GetUserJourneyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ImportApp' => [ 'name' => 'ImportApp', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/import-app', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ImportAppRequest', ], 'output' => [ 'shape' => 'ImportAppResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'ImportPolicy' => [ 'name' => 'ImportPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/import-policy', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ImportPolicyRequest', ], 'output' => [ 'shape' => 'ImportPolicyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'ListAssertions' => [ 'name' => 'ListAssertions', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-assertions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListAssertionsRequest', ], 'output' => [ 'shape' => 'ListAssertionsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListDependencies' => [ 'name' => 'ListDependencies', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-dependencies', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDependenciesRequest', ], 'output' => [ 'shape' => 'ListDependenciesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListFailureModeAssessments' => [ 'name' => 'ListFailureModeAssessments', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-failure-mode-assessments', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListFailureModeAssessmentsRequest', ], 'output' => [ 'shape' => 'ListFailureModeAssessmentsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListFailureModeFindings' => [ 'name' => 'ListFailureModeFindings', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-failure-mode-findings', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListFailureModeFindingsRequest', ], 'output' => [ 'shape' => 'ListFailureModeFindingsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListInputSources' => [ 'name' => 'ListInputSources', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-input-sources', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListInputSourcesRequest', ], 'output' => [ 'shape' => 'ListInputSourcesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListPolicies' => [ 'name' => 'ListPolicies', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-policies', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPoliciesRequest', ], 'output' => [ 'shape' => 'ListPoliciesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListReports' => [ 'name' => 'ListReports', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-reports', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListReportsRequest', ], 'output' => [ 'shape' => 'ListReportsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListResources' => [ 'name' => 'ListResources', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-resources', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListResourcesRequest', ], 'output' => [ 'shape' => 'ListResourcesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListServiceEvents' => [ 'name' => 'ListServiceEvents', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-service-events', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListServiceEventsRequest', ], 'output' => [ 'shape' => 'ListServiceEventsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListServiceFunctions' => [ 'name' => 'ListServiceFunctions', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-functions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListServiceFunctionsRequest', ], 'output' => [ 'shape' => 'ListServiceFunctionsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListServiceTopologyEdges' => [ 'name' => 'ListServiceTopologyEdges', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-service-topology-edges', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListServiceTopologyEdgesRequest', ], 'output' => [ 'shape' => 'ListServiceTopologyEdgesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListServices' => [ 'name' => 'ListServices', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-services', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListServicesRequest', ], 'output' => [ 'shape' => 'ListServicesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListSystemEvents' => [ 'name' => 'ListSystemEvents', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-system-events', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListSystemEventsRequest', ], 'output' => [ 'shape' => 'ListSystemEventsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListSystems' => [ 'name' => 'ListSystems', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-systems', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListSystemsRequest', ], 'output' => [ 'shape' => 'ListSystemsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/tags/{resourceArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListUserJourneys' => [ 'name' => 'ListUserJourneys', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-user-journeys', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListUserJourneysRequest', ], 'output' => [ 'shape' => 'ListUserJourneysResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'StartFailureModeAssessment' => [ 'name' => 'StartFailureModeAssessment', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/start-failure-mode-assessment', 'responseCode' => 200, ], 'input' => [ 'shape' => 'StartFailureModeAssessmentRequest', ], 'output' => [ 'shape' => 'StartFailureModeAssessmentResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/tags/{resourceArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v2/tags/{resourceArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], 'idempotent' => true, ], 'UpdateAssertion' => [ 'name' => 'UpdateAssertion', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/update-assertion', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateAssertionRequest', ], 'output' => [ 'shape' => 'UpdateAssertionResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UpdateDependency' => [ 'name' => 'UpdateDependency', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/update-dependency', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateDependencyRequest', ], 'output' => [ 'shape' => 'UpdateDependencyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UpdateFailureModeFinding' => [ 'name' => 'UpdateFailureModeFinding', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/update-failure-mode-finding', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateFailureModeFindingRequest', ], 'output' => [ 'shape' => 'UpdateFailureModeFindingResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UpdatePolicy' => [ 'name' => 'UpdatePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/update-policy', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdatePolicyRequest', ], 'output' => [ 'shape' => 'UpdatePolicyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UpdateService' => [ 'name' => 'UpdateService', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/update-service', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateServiceRequest', ], 'output' => [ 'shape' => 'UpdateServiceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UpdateServiceFunction' => [ 'name' => 'UpdateServiceFunction', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/update-function', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateServiceFunctionRequest', ], 'output' => [ 'shape' => 'UpdateServiceFunctionResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UpdateSystem' => [ 'name' => 'UpdateSystem', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/update-system', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateSystemRequest', ], 'output' => [ 'shape' => 'UpdateSystemResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UpdateUserJourney' => [ 'name' => 'UpdateUserJourney', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/update-user-journey', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateUserJourneyRequest', ], 'output' => [ 'shape' => 'UpdateUserJourneyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'AccountId' => [ 'type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '[0-9]{12}', ], 'Achievability' => [ 'type' => 'structure', 'members' => [ 'availabilitySlo' => [ 'shape' => 'AchievabilityStatus', ], 'multiAzRtoRpo' => [ 'shape' => 'AchievabilityStatus', ], 'multiRegionRtoRpo' => [ 'shape' => 'AchievabilityStatus', ], ], ], 'AchievabilityStatus' => [ 'type' => 'string', 'enum' => [ 'ACHIEVABLE', 'NOT_ACHIEVABLE', ], ], 'ActorType' => [ 'type' => 'string', 'enum' => [ 'USER', 'SYSTEM', ], ], 'Arn' => [ 'type' => 'string', 'min' => 31, 'pattern' => 'arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9/][A-Za-z0-9:_/+.-]{0,1023}', ], 'ArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Arn', ], ], 'Assertion' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'assertionId', 'text', 'source', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'assertionId' => [ 'shape' => 'Uuid', ], 'text' => [ 'shape' => 'AssertionText', ], 'source' => [ 'shape' => 'AssertionSource', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'AssertionCreatedMetadata' => [ 'type' => 'structure', 'members' => [ 'assertionId' => [ 'shape' => 'String', ], 'assertionName' => [ 'shape' => 'String', ], ], ], 'AssertionDeletedMetadata' => [ 'type' => 'structure', 'members' => [ 'assertionId' => [ 'shape' => 'String', ], 'assertionName' => [ 'shape' => 'String', ], ], ], 'AssertionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Assertion', ], ], 'AssertionSource' => [ 'type' => 'string', 'enum' => [ 'AI_GENERATED', 'USER', ], ], 'AssertionText' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], 'AssertionUpdatedMetadata' => [ 'type' => 'structure', 'members' => [ 'assertionId' => [ 'shape' => 'String', ], 'assertionName' => [ 'shape' => 'String', ], ], ], 'AssessmentCost' => [ 'type' => 'structure', 'members' => [ 'amount' => [ 'shape' => 'Double', ], 'currency' => [ 'shape' => 'CostCurrency', ], ], ], 'AssessmentErrorCode' => [ 'type' => 'string', 'enum' => [ 'INVALID_PERMISSIONS', 'CMK_ACCESS_DENIED', 'AGENT_ERROR', 'INTERNAL_ERROR', 'DESIGN_FILE_ACCESS_DENIED', ], ], 'AssessmentStatus' => [ 'type' => 'string', 'enum' => [ 'NOT_STARTED', 'PENDING', 'IN_PROGRESS', 'FAILED', 'SUCCESS', ], ], 'AssessmentStep' => [ 'type' => 'string', 'enum' => [ 'TOPOLOGY_ENHANCEMENT', 'SERVICE_FUNCTION_GENERATION', 'RESILIENCE_ASSESSMENT', ], ], 'AssessmentSummary' => [ 'type' => 'structure', 'required' => [ 'assessmentId', 'serviceArn', ], 'members' => [ 'assessmentId' => [ 'shape' => 'Uuid', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'assessmentStatus' => [ 'shape' => 'AssessmentStatus', ], 'assessmentStep' => [ 'shape' => 'AssessmentStep', ], 'totalFindings' => [ 'shape' => 'Integer', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'endedAt' => [ 'shape' => 'Timestamp', ], 'errorMessage' => [ 'shape' => 'String', ], 'errorCode' => [ 'shape' => 'AssessmentErrorCode', ], 'assessmentCost' => [ 'shape' => 'AssessmentCost', ], 'billableAssessmentUnitCount' => [ 'shape' => 'Integer', ], 'achievability' => [ 'shape' => 'Achievability', ], ], ], 'AssessmentSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssessmentSummary', ], ], 'AssociatedSystem' => [ 'type' => 'structure', 'required' => [ 'systemArn', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', ], 'systemName' => [ 'shape' => 'EntityName', ], 'userJourneyIds' => [ 'shape' => 'UserJourneyIdList', ], ], ], 'AssociatedSystemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssociatedSystem', ], 'max' => 20, 'min' => 0, ], 'AvailabilitySlo' => [ 'type' => 'structure', 'members' => [ 'target' => [ 'shape' => 'AvailabilitySloTargetDouble', ], ], ], 'AvailabilitySloTargetDouble' => [ 'type' => 'double', 'box' => true, 'max' => 100, 'min' => 0, ], 'AwsAccountId' => [ 'type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '\\d{12}', ], 'AwsRegion' => [ 'type' => 'string', 'min' => 6, 'pattern' => '[a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]', ], 'Boolean' => [ 'type' => 'boolean', 'box' => true, ], 'ClientToken' => [ 'type' => 'string', 'max' => 63, 'min' => 1, 'pattern' => '[A-Za-z0-9_.-]{0,63}', ], 'ConflictException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 409, 'senderFault' => true, ], 'exception' => true, ], 'CostCurrency' => [ 'type' => 'string', 'enum' => [ 'USD', ], ], 'CreateAssertionRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'text', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'text' => [ 'shape' => 'AssertionText', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateAssertionResponse' => [ 'type' => 'structure', 'required' => [ 'assertion', ], 'members' => [ 'assertion' => [ 'shape' => 'Assertion', ], ], ], 'CreateInputSourceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'resourceConfiguration', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'resourceConfiguration' => [ 'shape' => 'ResourceConfiguration', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateInputSourceResponse' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'inputSourceId', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'inputSourceId' => [ 'shape' => 'InputSourceId', ], ], ], 'CreatePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'EntityName', ], 'description' => [ 'shape' => 'LongDescription', ], 'availabilitySlo' => [ 'shape' => 'AvailabilitySlo', ], 'multiAz' => [ 'shape' => 'MultiAzTargets', ], 'multiRegion' => [ 'shape' => 'MultiRegionTargets', ], 'dataRecovery' => [ 'shape' => 'DataRecoveryTargets', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'tags' => [ 'shape' => 'TagMap', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreatePolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policy', ], 'members' => [ 'policy' => [ 'shape' => 'Policy', ], ], ], 'CreateReportRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'reportType', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'reportType' => [ 'shape' => 'ReportType', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateReportResponse' => [ 'type' => 'structure', 'required' => [ 'reportGenerationResult', ], 'members' => [ 'reportGenerationResult' => [ 'shape' => 'ReportGenerationResult', ], ], ], 'CreateServiceFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'serviceArn', 'criticality', ], 'members' => [ 'name' => [ 'shape' => 'EntityLabel', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'description' => [ 'shape' => 'EntityDescription', ], 'criticality' => [ 'shape' => 'ServiceFunctionCriticality', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateServiceFunctionResourcesRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'serviceFunctionId', 'resources', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'serviceFunctionId' => [ 'shape' => 'EntityId', ], 'resources' => [ 'shape' => 'ResourceList', ], ], ], 'CreateServiceFunctionResourcesResponse' => [ 'type' => 'structure', 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'serviceFunctionId' => [ 'shape' => 'EntityId', ], 'resources' => [ 'shape' => 'ResourceList', ], ], ], 'CreateServiceFunctionResponse' => [ 'type' => 'structure', 'required' => [ 'serviceFunction', ], 'members' => [ 'serviceFunction' => [ 'shape' => 'ServiceFunction', ], ], ], 'CreateServiceRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'regions', 'permissionModel', ], 'members' => [ 'name' => [ 'shape' => 'EntityName', ], 'description' => [ 'shape' => 'LongDescription', ], 'associatedSystems' => [ 'shape' => 'AssociatedSystemList', ], 'policyArn' => [ 'shape' => 'Arn', ], 'regions' => [ 'shape' => 'RegionList', ], 'permissionModel' => [ 'shape' => 'PermissionModel', ], 'dependencyDiscovery' => [ 'shape' => 'DependencyDiscoveryInput', ], 'reportConfiguration' => [ 'shape' => 'ServiceReportConfiguration', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'tags' => [ 'shape' => 'TagMap', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateServiceResponse' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'CreateSystemRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'EntityName', ], 'description' => [ 'shape' => 'EntityDescription', ], 'sharingEnabled' => [ 'shape' => 'Boolean', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'tags' => [ 'shape' => 'TagMap', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateSystemResponse' => [ 'type' => 'structure', 'required' => [ 'system', ], 'members' => [ 'system' => [ 'shape' => 'System', ], ], ], 'CreateUserJourneyRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', 'name', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'EntityLabel', ], 'description' => [ 'shape' => 'EntityDescription', ], 'policyArn' => [ 'shape' => 'Arn', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateUserJourneyResponse' => [ 'type' => 'structure', 'required' => [ 'userJourney', ], 'members' => [ 'userJourney' => [ 'shape' => 'UserJourney', ], ], ], 'CrossAccountRole' => [ 'type' => 'structure', 'required' => [ 'crossAccountRoleArn', ], 'members' => [ 'crossAccountRoleArn' => [ 'shape' => 'IamRoleArn', ], 'externalId' => [ 'shape' => 'CrossAccountRoleExternalIdString', ], ], ], 'CrossAccountRoleExternalIdString' => [ 'type' => 'string', 'max' => 1224, 'min' => 2, ], 'CrossAccountRoleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CrossAccountRole', ], 'max' => 5, 'min' => 0, ], 'DataRecoveryTargets' => [ 'type' => 'structure', 'members' => [ 'timeBetweenBackupsInMinutes' => [ 'shape' => 'DataRecoveryTargetsTimeBetweenBackupsInMinutesInteger', ], ], ], 'DataRecoveryTargetsTimeBetweenBackupsInMinutesInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'DeleteAssertionRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'assertionId', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'assertionId' => [ 'shape' => 'Uuid', ], ], ], 'DeleteAssertionResponse' => [ 'type' => 'structure', 'members' => [ 'assertionId' => [ 'shape' => 'Uuid', ], ], ], 'DeleteInputSourceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'inputSourceId', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'inputSourceId' => [ 'shape' => 'InputSourceId', ], ], ], 'DeleteInputSourceResponse' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'inputSourceId', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'inputSourceId' => [ 'shape' => 'InputSourceId', ], ], ], 'DeletePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyArn', ], 'members' => [ 'policyArn' => [ 'shape' => 'Arn', ], ], ], 'DeletePolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policyArn', ], 'members' => [ 'policyArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteServiceFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'serviceFunctionId', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'serviceFunctionId' => [ 'shape' => 'EntityId', ], ], ], 'DeleteServiceFunctionResourcesRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'serviceFunctionId', 'resources', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'serviceFunctionId' => [ 'shape' => 'EntityId', ], 'resources' => [ 'shape' => 'ResourceList', ], ], ], 'DeleteServiceFunctionResourcesResponse' => [ 'type' => 'structure', 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'serviceFunctionId' => [ 'shape' => 'EntityId', ], 'resources' => [ 'shape' => 'ResourceList', ], ], ], 'DeleteServiceFunctionResponse' => [ 'type' => 'structure', 'members' => [ 'serviceFunctionId' => [ 'shape' => 'EntityId', ], ], ], 'DeleteServiceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteServiceResponse' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteSystemRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteSystemResponse' => [ 'type' => 'structure', 'required' => [ 'systemArn', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteUserJourneyRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', 'userJourneyId', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', ], 'userJourneyId' => [ 'shape' => 'UserJourneyId', ], ], ], 'DeleteUserJourneyResponse' => [ 'type' => 'structure', 'required' => [ 'userJourneyId', ], 'members' => [ 'userJourneyId' => [ 'shape' => 'UserJourneyId', ], ], ], 'DependencyCriticality' => [ 'type' => 'string', 'enum' => [ 'HARD', 'SOFT', 'UNKNOWN', ], ], 'DependencyDiscoveryConfig' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'DependencyDiscoveryStatus', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'DependencyDiscoveryInput' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'DependencyDiscoveryStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'INITIALIZING', 'DISABLED', ], ], 'DependencySummary' => [ 'type' => 'structure', 'required' => [ 'dependencyId', 'serviceArn', 'dependencyName', 'dnsName', 'location', 'lastDetectedTime', 'sourceRegions', 'queryRange', 'criticality', ], 'members' => [ 'dependencyId' => [ 'shape' => 'Uuid', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'dependencyName' => [ 'shape' => 'String', ], 'dnsName' => [ 'shape' => 'String', ], 'location' => [ 'shape' => 'String', ], 'lastDetectedTime' => [ 'shape' => 'Timestamp', ], 'sourceRegions' => [ 'shape' => 'RegionList', ], 'provider' => [ 'shape' => 'String', ], 'queryRange' => [ 'shape' => 'QueryRange', ], 'criticality' => [ 'shape' => 'DependencyCriticality', ], 'comment' => [ 'shape' => 'String', ], ], ], 'DependencySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DependencySummary', ], ], 'DisasterRecoverySource' => [ 'type' => 'structure', 'members' => [ 'value' => [ 'shape' => 'String', ], 'policyName' => [ 'shape' => 'EntityName', ], 'source' => [ 'shape' => 'PolicyValueSource', ], ], ], 'Double' => [ 'type' => 'double', 'box' => true, ], 'EdgePropertyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EdgePropertySummary', ], 'max' => 3, 'min' => 0, ], 'EdgePropertySummary' => [ 'type' => 'structure', 'members' => [ 'topologyType' => [ 'shape' => 'TopologyType', ], 'label' => [ 'shape' => 'String', ], ], ], 'EffectivePolicyValues' => [ 'type' => 'structure', 'members' => [ 'availabilitySlo' => [ 'shape' => 'SloSource', ], 'multiAzRto' => [ 'shape' => 'TargetSource', ], 'multiAzRpo' => [ 'shape' => 'TargetSource', ], 'multiAzDrApproach' => [ 'shape' => 'DisasterRecoverySource', ], 'multiRegionRto' => [ 'shape' => 'TargetSource', ], 'multiRegionRpo' => [ 'shape' => 'TargetSource', ], 'multiRegionDrApproach' => [ 'shape' => 'DisasterRecoverySource', ], 'dataRecoveryTimeBetweenBackups' => [ 'shape' => 'TargetSource', ], ], ], 'EksNamespace' => [ 'type' => 'string', 'max' => 63, 'min' => 1, 'pattern' => '[a-z0-9]([-a-z0-9]*[a-z0-9])?', ], 'EksSource' => [ 'type' => 'structure', 'required' => [ 'clusterArn', 'namespaces', ], 'members' => [ 'clusterArn' => [ 'shape' => 'Arn', ], 'namespaces' => [ 'shape' => 'EksSourceNamespacesList', ], ], ], 'EksSourceNamespacesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EksNamespace', ], 'max' => 10, 'min' => 1, ], 'EntityDescription' => [ 'type' => 'string', 'max' => 500, 'min' => 0, ], 'EntityId' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '\\S{1,255}', ], 'EntityLabel' => [ 'type' => 'string', 'max' => 60, 'min' => 2, 'pattern' => '[A-Za-z0-9][A-Za-z0-9 _\\-]{1,59}', ], 'EntityName' => [ 'type' => 'string', 'max' => 60, 'min' => 2, 'pattern' => '[A-Za-z0-9][A-Za-z0-9_\\-]{1,59}', ], 'EventActor' => [ 'type' => 'structure', 'required' => [ 'type', 'principalId', ], 'members' => [ 'type' => [ 'shape' => 'ActorType', ], 'principalId' => [ 'shape' => 'String', ], 'accountId' => [ 'shape' => 'String', ], 'userName' => [ 'shape' => 'String', ], ], ], 'FailedReportOutput' => [ 'type' => 'structure', 'required' => [ 'errorCode', ], 'members' => [ 'errorCode' => [ 'shape' => 'ReportGenerationErrorCode', ], 'errorMessage' => [ 'shape' => 'String', ], ], ], 'FailureCategory' => [ 'type' => 'string', 'enum' => [ 'SHARED_FATE', 'EXCESSIVE_LOAD', 'EXCESSIVE_LATENCY', 'MISCONFIGURATION_AND_BUGS', 'SINGLE_POINT_OF_FAILURE', ], ], 'Finding' => [ 'type' => 'structure', 'members' => [ 'findingId' => [ 'shape' => 'Uuid', ], 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'EntityDescription', ], 'failureCategory' => [ 'shape' => 'FailureCategory', ], 'status' => [ 'shape' => 'FindingStatus', ], 'reasoning' => [ 'shape' => 'String', ], 'comment' => [ 'shape' => 'FindingCommentString', ], 'severity' => [ 'shape' => 'FindingSeverity', ], 'serviceFunctions' => [ 'shape' => 'FunctionsList', ], 'policyComponent' => [ 'shape' => 'PolicyComponent', ], 'infrastructureAndCodeRecommendations' => [ 'shape' => 'InfrastructureAndCodeRecommendationsList', ], 'observabilityRecommendations' => [ 'shape' => 'ObservabilityRecommendationsList', ], 'testingRecommendations' => [ 'shape' => 'TestingRecommendationsList', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'FindingCommentString' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'FindingSeverity' => [ 'type' => 'string', 'enum' => [ 'LOW', 'MEDIUM', 'HIGH', ], ], 'FindingStatus' => [ 'type' => 'string', 'enum' => [ 'OPEN', 'RESOLVED', 'IRRELEVANT', ], ], 'FindingSummary' => [ 'type' => 'structure', 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'findingId' => [ 'shape' => 'Uuid', ], 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'EntityDescription', ], 'failureCategory' => [ 'shape' => 'FailureCategory', ], 'severity' => [ 'shape' => 'FindingSeverity', ], 'status' => [ 'shape' => 'FindingStatus', ], 'policyComponent' => [ 'shape' => 'PolicyComponent', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'FindingsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FindingSummary', ], ], 'FunctionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EntityId', ], 'max' => 20, 'min' => 0, ], 'GetFailureModeFindingRequest' => [ 'type' => 'structure', 'required' => [ 'findingId', 'serviceArn', ], 'members' => [ 'findingId' => [ 'shape' => 'Uuid', 'location' => 'querystring', 'locationName' => 'findingId', ], 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], ], ], 'GetFailureModeFindingResponse' => [ 'type' => 'structure', 'members' => [ 'finding' => [ 'shape' => 'Finding', ], ], ], 'GetPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyArn', ], 'members' => [ 'policyArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'policyArn', ], ], ], 'GetPolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policy', ], 'members' => [ 'policy' => [ 'shape' => 'Policy', ], ], ], 'GetServiceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], ], ], 'GetServiceResponse' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'GetSystemRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'systemArn', ], ], ], 'GetSystemResponse' => [ 'type' => 'structure', 'required' => [ 'system', ], 'members' => [ 'system' => [ 'shape' => 'System', ], ], ], 'GetUserJourneyRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', 'userJourneyId', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'systemArn', ], 'userJourneyId' => [ 'shape' => 'UserJourneyId', 'location' => 'querystring', 'locationName' => 'userJourneyId', ], ], ], 'GetUserJourneyResponse' => [ 'type' => 'structure', 'required' => [ 'userJourney', ], 'members' => [ 'userJourney' => [ 'shape' => 'UserJourney', ], ], ], 'IamRoleArn' => [ 'type' => 'string', 'min' => 32, 'pattern' => 'arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):iam::[0-9]{12}:role/(([^/][!-~]+/){1,511})?[A-Za-z0-9_+=,.@-]{1,64}', ], 'IamRoleName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[A-Za-z0-9_+=,.@\\-]{1,64}', ], 'ImportAppRequest' => [ 'type' => 'structure', 'required' => [ 'v1AppArn', ], 'members' => [ 'v1AppArn' => [ 'shape' => 'Arn', ], 'policyArn' => [ 'shape' => 'Arn', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'skipManuallyAddedResources' => [ 'shape' => 'Boolean', ], 'associatedSystems' => [ 'shape' => 'AssociatedSystemList', ], 'tags' => [ 'shape' => 'TagMap', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'ImportAppResponse' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'ImportPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'v1PolicyArn', ], 'members' => [ 'v1PolicyArn' => [ 'shape' => 'Arn', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'availabilitySlo' => [ 'shape' => 'AvailabilitySlo', ], 'multiAzDisasterRecoveryApproach' => [ 'shape' => 'MultiAzDisasterRecoveryApproach', ], 'multiRegionDisasterRecoveryApproach' => [ 'shape' => 'MultiRegionDisasterRecoveryApproach', ], 'tags' => [ 'shape' => 'TagMap', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'ImportPolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policy', ], 'members' => [ 'policy' => [ 'shape' => 'Policy', ], ], ], 'InfrastructureAndCodeRecommendation' => [ 'type' => 'structure', 'members' => [ 'suggestedChanges' => [ 'shape' => 'SuggestedChangesList', ], ], ], 'InfrastructureAndCodeRecommendationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InfrastructureAndCodeRecommendation', ], 'max' => 5, 'min' => 0, ], 'InputSource' => [ 'type' => 'structure', 'required' => [ 'identifier', 'type', ], 'members' => [ 'identifier' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'InputSourceType', ], ], ], 'InputSourceId' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '\\S{1,255}', ], 'InputSourceSummary' => [ 'type' => 'structure', 'required' => [ 'inputSourceId', ], 'members' => [ 'inputSourceId' => [ 'shape' => 'InputSourceId', ], 'type' => [ 'shape' => 'InputSourceType', ], 'resourceTags' => [ 'shape' => 'ResourceTagList', ], 'cfnStackArn' => [ 'shape' => 'Arn', ], 'tfStateFileUrl' => [ 'shape' => 'S3Url', ], 'eks' => [ 'shape' => 'EksSource', ], 'designFileS3Url' => [ 'shape' => 'S3Url', ], 'createdAt' => [ 'shape' => 'Timestamp', ], ], ], 'InputSourceSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputSourceSummary', ], ], 'InputSourceType' => [ 'type' => 'string', 'enum' => [ 'CFN_STACK', 'TAGS', 'EKS', 'TERRAFORM', 'DESIGN_FILE', 'MONITORING', ], ], 'Integer' => [ 'type' => 'integer', 'box' => true, ], 'InternalServerException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'KmsKeyId' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'ListAssertionsRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'source' => [ 'shape' => 'AssertionSource', 'location' => 'querystring', 'locationName' => 'source', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListAssertionsResponse' => [ 'type' => 'structure', 'required' => [ 'assertions', ], 'members' => [ 'assertions' => [ 'shape' => 'AssertionList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDependenciesRequest' => [ 'type' => 'structure', 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'queryRangeStartTime' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'queryRangeStartTime', ], 'queryRangeEndTime' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'queryRangeEndTime', ], 'queryRangeGranularity' => [ 'shape' => 'QueryGranularity', 'location' => 'querystring', 'locationName' => 'queryRangeGranularity', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListDependenciesResponse' => [ 'type' => 'structure', 'required' => [ 'dependencySummaries', ], 'members' => [ 'dependencySummaries' => [ 'shape' => 'DependencySummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListFailureModeAssessmentsRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListFailureModeAssessmentsResponse' => [ 'type' => 'structure', 'required' => [ 'assessmentSummaries', ], 'members' => [ 'assessmentSummaries' => [ 'shape' => 'AssessmentSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListFailureModeFindingsRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'severity' => [ 'shape' => 'FindingSeverity', 'location' => 'querystring', 'locationName' => 'severity', ], 'failureCategory' => [ 'shape' => 'FailureCategory', 'location' => 'querystring', 'locationName' => 'failureCategory', ], 'status' => [ 'shape' => 'FindingStatus', 'location' => 'querystring', 'locationName' => 'status', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListFailureModeFindingsResponse' => [ 'type' => 'structure', 'required' => [ 'findingsSummary', ], 'members' => [ 'findingsSummary' => [ 'shape' => 'FindingsList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListInputSourcesRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'type' => [ 'shape' => 'InputSourceType', 'location' => 'querystring', 'locationName' => 'type', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListInputSourcesResponse' => [ 'type' => 'structure', 'required' => [ 'inputSourceSummaries', ], 'members' => [ 'inputSourceSummaries' => [ 'shape' => 'InputSourceSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPoliciesRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListPoliciesResponse' => [ 'type' => 'structure', 'required' => [ 'policySummaries', ], 'members' => [ 'policySummaries' => [ 'shape' => 'PolicySummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListReportsRequest' => [ 'type' => 'structure', 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'reportType' => [ 'shape' => 'ReportType', 'location' => 'querystring', 'locationName' => 'reportType', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListReportsResponse' => [ 'type' => 'structure', 'required' => [ 'reportGenerationResults', ], 'members' => [ 'reportGenerationResults' => [ 'shape' => 'ReportGenerationResultList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListResourcesRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'serviceFunctionId' => [ 'shape' => 'EntityId', 'location' => 'querystring', 'locationName' => 'serviceFunctionId', ], 'awsRegion' => [ 'shape' => 'AwsRegion', 'location' => 'querystring', 'locationName' => 'awsRegion', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListResourcesResponse' => [ 'type' => 'structure', 'members' => [ 'serviceFunctionId' => [ 'shape' => 'EntityId', ], 'serviceResources' => [ 'shape' => 'ServiceResourceList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListServiceEventsRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'eventTypes' => [ 'shape' => 'ServiceEventTypeList', 'location' => 'querystring', 'locationName' => 'eventTypes', ], 'startTime' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'startTime', ], 'endTime' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'endTime', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListServiceEventsResponse' => [ 'type' => 'structure', 'required' => [ 'events', ], 'members' => [ 'events' => [ 'shape' => 'ServiceEventList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListServiceFunctionsRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListServiceFunctionsResponse' => [ 'type' => 'structure', 'required' => [ 'serviceFunctions', ], 'members' => [ 'serviceFunctions' => [ 'shape' => 'ServiceFunctionList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListServiceTopologyEdgesRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListServiceTopologyEdgesResponse' => [ 'type' => 'structure', 'members' => [ 'serviceTopologyEdgeSummaries' => [ 'shape' => 'ServiceTopologyEdgeSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListServicesRequest' => [ 'type' => 'structure', 'members' => [ 'systemArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'systemArn', ], 'userJourneyId' => [ 'shape' => 'UserJourneyId', 'location' => 'querystring', 'locationName' => 'userJourneyId', ], 'ouId' => [ 'shape' => 'OuId', 'location' => 'querystring', 'locationName' => 'ouId', ], 'accountId' => [ 'shape' => 'AccountId', 'location' => 'querystring', 'locationName' => 'accountId', ], 'assessmentStatus' => [ 'shape' => 'AssessmentStatus', 'location' => 'querystring', 'locationName' => 'assessmentStatus', ], 'policyArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'policyArn', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListServicesResponse' => [ 'type' => 'structure', 'required' => [ 'serviceSummaries', ], 'members' => [ 'serviceSummaries' => [ 'shape' => 'ServiceSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListSystemEventsRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'systemArn', ], 'eventTypes' => [ 'shape' => 'SystemEventTypeList', 'location' => 'querystring', 'locationName' => 'eventTypes', ], 'startTime' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'startTime', ], 'endTime' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'endTime', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListSystemEventsResponse' => [ 'type' => 'structure', 'required' => [ 'events', ], 'members' => [ 'events' => [ 'shape' => 'SystemEventList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListSystemsRequest' => [ 'type' => 'structure', 'members' => [ 'ouId' => [ 'shape' => 'OuId', 'location' => 'querystring', 'locationName' => 'ouId', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListSystemsResponse' => [ 'type' => 'structure', 'required' => [ 'systemSummaries', ], 'members' => [ 'systemSummaries' => [ 'shape' => 'SystemSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', 'location' => 'uri', 'locationName' => 'resourceArn', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'TagMap', ], ], ], 'ListUserJourneysRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'systemArn', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListUserJourneysResponse' => [ 'type' => 'structure', 'required' => [ 'userJourneySummaries', ], 'members' => [ 'userJourneySummaries' => [ 'shape' => 'UserJourneySummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'Long' => [ 'type' => 'long', 'box' => true, ], 'LongDescription' => [ 'type' => 'string', 'max' => 615, 'min' => 0, ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'MultiAzDisasterRecoveryApproach' => [ 'type' => 'string', 'enum' => [ 'ACTIVE_ACTIVE', 'HOT_STANDBY', 'WARM_STANDBY', 'PILOT_LIGHT', 'BACKUP_AND_RESTORE', ], ], 'MultiAzTargets' => [ 'type' => 'structure', 'members' => [ 'rtoInMinutes' => [ 'shape' => 'MultiAzTargetsRtoInMinutesInteger', ], 'rpoInMinutes' => [ 'shape' => 'MultiAzTargetsRpoInMinutesInteger', ], 'disasterRecoveryApproach' => [ 'shape' => 'MultiAzDisasterRecoveryApproach', ], ], ], 'MultiAzTargetsRpoInMinutesInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'MultiAzTargetsRtoInMinutesInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'MultiRegionDisasterRecoveryApproach' => [ 'type' => 'string', 'enum' => [ 'ACTIVE_ACTIVE', 'HOT_STANDBY', 'WARM_STANDBY', 'PILOT_LIGHT', 'BACKUP_AND_RESTORE', ], ], 'MultiRegionTargets' => [ 'type' => 'structure', 'members' => [ 'rtoInMinutes' => [ 'shape' => 'MultiRegionTargetsRtoInMinutesInteger', ], 'rpoInMinutes' => [ 'shape' => 'MultiRegionTargetsRpoInMinutesInteger', ], 'disasterRecoveryApproach' => [ 'shape' => 'MultiRegionDisasterRecoveryApproach', ], ], ], 'MultiRegionTargetsRpoInMinutesInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'MultiRegionTargetsRtoInMinutesInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'NextToken' => [ 'type' => 'string', 'max' => 2000, 'min' => 1, 'pattern' => '\\S{1,2000}', ], 'ObservabilityRecommendation' => [ 'type' => 'structure', 'members' => [ 'suggestedChanges' => [ 'shape' => 'SuggestedChangesList', ], ], ], 'ObservabilityRecommendationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ObservabilityRecommendation', ], 'max' => 5, 'min' => 0, ], 'OrganizationId' => [ 'type' => 'string', 'max' => 34, 'min' => 12, 'pattern' => 'o-[a-z0-9]{10,32}', ], 'OuId' => [ 'type' => 'string', 'max' => 68, 'min' => 16, 'pattern' => 'ou-[a-z0-9]{4,32}-[a-z0-9]{8,32}', ], 'PermissionModel' => [ 'type' => 'structure', 'required' => [ 'invokerRoleName', ], 'members' => [ 'invokerRoleName' => [ 'shape' => 'IamRoleName', ], 'crossAccountRoles' => [ 'shape' => 'CrossAccountRoleList', ], ], ], 'Policy' => [ 'type' => 'structure', 'required' => [ 'policyArn', 'name', ], 'members' => [ 'policyArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'EntityName', ], 'description' => [ 'shape' => 'LongDescription', ], 'availabilitySlo' => [ 'shape' => 'AvailabilitySlo', ], 'multiAz' => [ 'shape' => 'MultiAzTargets', ], 'multiRegion' => [ 'shape' => 'MultiRegionTargets', ], 'dataRecovery' => [ 'shape' => 'DataRecoveryTargets', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'tags' => [ 'shape' => 'TagMap', ], 'associatedServiceCount' => [ 'shape' => 'Integer', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'PolicyComponent' => [ 'type' => 'string', 'enum' => [ 'AVAILABILITY_SLO', 'MULTI_AZ_DISASTER_RECOVERY', 'MULTI_REGION_DISASTER_RECOVERY', 'DATA_RECOVERY', ], ], 'PolicySummary' => [ 'type' => 'structure', 'required' => [ 'policyArn', 'name', ], 'members' => [ 'policyArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'EntityName', ], 'availabilitySlo' => [ 'shape' => 'AvailabilitySlo', ], 'multiAz' => [ 'shape' => 'MultiAzTargets', ], 'multiRegion' => [ 'shape' => 'MultiRegionTargets', ], 'dataRecovery' => [ 'shape' => 'DataRecoveryTargets', ], 'associatedServiceCount' => [ 'shape' => 'Integer', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'PolicySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicySummary', ], ], 'PolicyValueSource' => [ 'type' => 'string', 'enum' => [ 'SELF', 'CROSS_ACCOUNT', ], ], 'QueryDataPoint' => [ 'type' => 'structure', 'required' => [ 'timestamp', 'queryCount', ], 'members' => [ 'timestamp' => [ 'shape' => 'Timestamp', ], 'queryCount' => [ 'shape' => 'Long', ], ], ], 'QueryDataPointList' => [ 'type' => 'list', 'member' => [ 'shape' => 'QueryDataPoint', ], 'max' => 24, 'min' => 7, ], 'QueryGranularity' => [ 'type' => 'string', 'enum' => [ 'HOURLY', 'DAILY', ], ], 'QueryRange' => [ 'type' => 'structure', 'required' => [ 'startTime', 'endTime', 'granularity', 'dataPoints', ], 'members' => [ 'startTime' => [ 'shape' => 'Timestamp', ], 'endTime' => [ 'shape' => 'Timestamp', ], 'granularity' => [ 'shape' => 'QueryGranularity', ], 'dataPoints' => [ 'shape' => 'QueryDataPointList', ], ], ], 'RegionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AwsRegion', ], 'max' => 5, 'min' => 1, ], 'ReportGenerationErrorCode' => [ 'type' => 'string', 'enum' => [ 'INSUFFICIENT_PERMISSIONS', 'CONFIGURATION_ERROR', 'INTERNAL_ERROR', ], ], 'ReportGenerationResult' => [ 'type' => 'structure', 'required' => [ 'reportType', 'status', ], 'members' => [ 'reportType' => [ 'shape' => 'ReportType', ], 'status' => [ 'shape' => 'ReportGenerationStatus', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'assessmentId' => [ 'shape' => 'Uuid', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'reportOutput' => [ 'shape' => 'ReportOutput', ], ], ], 'ReportGenerationResultList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReportGenerationResult', ], ], 'ReportGenerationStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'SUCCEEDED', 'FAILED', ], ], 'ReportOutput' => [ 'type' => 'structure', 'members' => [ 's3ReportOutput' => [ 'shape' => 'S3ReportOutput', ], 'failedReportOutput' => [ 'shape' => 'FailedReportOutput', ], ], 'union' => true, ], 'ReportOutputConfiguration' => [ 'type' => 'structure', 'members' => [ 's3' => [ 'shape' => 'S3ReportOutputConfiguration', ], ], 'union' => true, ], 'ReportOutputConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReportOutputConfiguration', ], 'max' => 1, 'min' => 1, ], 'ReportType' => [ 'type' => 'string', 'enum' => [ 'FAILURE_MODE', ], ], 'Resource' => [ 'type' => 'structure', 'required' => [ 'identifier', ], 'members' => [ 'identifier' => [ 'shape' => 'String', ], 'awsRegion' => [ 'shape' => 'AwsRegion', ], 'awsAccountId' => [ 'shape' => 'AwsAccountId', ], 'resourceType' => [ 'shape' => 'String', ], ], ], 'ResourceConfiguration' => [ 'type' => 'structure', 'members' => [ 'resourceTags' => [ 'shape' => 'ResourceTagList', ], 'cfnStackArn' => [ 'shape' => 'Arn', ], 'tfStateFileUrl' => [ 'shape' => 'S3Url', ], 'eks' => [ 'shape' => 'EksSource', ], 'designFileS3Url' => [ 'shape' => 'S3Url', ], ], 'union' => true, ], 'ResourceDiscoveryErrorCode' => [ 'type' => 'string', 'enum' => [ 'INVALID_PERMISSIONS', 'STACK_NOT_FOUND', 'CLUSTER_NOT_FOUND', 'STATE_FILE_NOT_FOUND', 'ACCESS_DENIED', 'UNSUPPORTED_CLUSTER', 'INTERNAL_ERROR', ], ], 'ResourceDiscoveryRunStatus' => [ 'type' => 'string', 'enum' => [ 'RUNNING', 'SUCCEEDED', 'FAILED', 'COMPLETED_WITH_FAILURES', 'NOT_STARTED', ], ], 'ResourceDiscoveryStatus' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'ResourceDiscoveryRunStatus', ], 'lastRunAt' => [ 'shape' => 'Timestamp', ], 'errorCode' => [ 'shape' => 'ResourceDiscoveryErrorCode', ], 'errorMessage' => [ 'shape' => 'String', ], ], ], 'ResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], 'max' => 100, 'min' => 1, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], 'resourceId' => [ 'shape' => 'String', ], 'resourceType' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'ResourceTag' => [ 'type' => 'structure', 'required' => [ 'key', 'values', ], 'members' => [ 'key' => [ 'shape' => 'TagKey', ], 'values' => [ 'shape' => 'ResourceTagValuesList', ], ], ], 'ResourceTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceTag', ], 'max' => 10, 'min' => 1, ], 'ResourceTagValuesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagValue', ], 'max' => 10, 'min' => 0, ], 'ResourceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'S3BucketPath' => [ 'type' => 'string', 'max' => 512, 'min' => 3, 'pattern' => '(s3://)?[a-z0-9][a-z0-9.-]{1,61}[a-z0-9](/.*)?', ], 'S3ReportOutput' => [ 'type' => 'structure', 'required' => [ 's3ObjectKey', ], 'members' => [ 's3ObjectKey' => [ 'shape' => 'String', ], ], ], 'S3ReportOutputConfiguration' => [ 'type' => 'structure', 'required' => [ 'bucketPath', 'bucketOwner', ], 'members' => [ 'bucketPath' => [ 'shape' => 'S3BucketPath', ], 'bucketOwner' => [ 'shape' => 'AwsAccountId', ], ], ], 'S3Url' => [ 'type' => 'string', 'max' => 2000, 'min' => 1, 'pattern' => '((https://([^/]+)\\.s3[^/]*\\.[^/]+)|(s3://([^/]+)))/\\S{1,2000}', ], 'Service' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'name', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'EntityName', ], 'description' => [ 'shape' => 'LongDescription', ], 'associatedSystems' => [ 'shape' => 'AssociatedSystemList', ], 'policyArn' => [ 'shape' => 'Arn', ], 'regions' => [ 'shape' => 'RegionList', ], 'permissionModel' => [ 'shape' => 'PermissionModel', ], 'dependencyDiscovery' => [ 'shape' => 'DependencyDiscoveryConfig', ], 'effectivePolicyValues' => [ 'shape' => 'EffectivePolicyValues', ], 'achievability' => [ 'shape' => 'Achievability', ], 'reportConfiguration' => [ 'shape' => 'ServiceReportConfiguration', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'tags' => [ 'shape' => 'TagMap', ], 'estimatedAssessmentCost' => [ 'shape' => 'AssessmentCost', ], 'resourceDiscovery' => [ 'shape' => 'ResourceDiscoveryStatus', ], 'assessmentStatus' => [ 'shape' => 'AssessmentStatus', ], 'rerunAssessment' => [ 'shape' => 'Boolean', ], 'openFindingsCount' => [ 'shape' => 'Integer', ], 'resolvedFindingsCount' => [ 'shape' => 'Integer', ], 'organizationId' => [ 'shape' => 'OrganizationId', ], 'ouId' => [ 'shape' => 'OuId', ], 'accountId' => [ 'shape' => 'AccountId', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ServiceAchievabilityUpdatedMetadata' => [ 'type' => 'structure', 'members' => [ 'assessmentId' => [ 'shape' => 'String', ], 'availabilitySlo' => [ 'shape' => 'String', ], 'multiAzRtoRpo' => [ 'shape' => 'String', ], 'multiRegionRtoRpo' => [ 'shape' => 'String', ], ], ], 'ServiceCreatedMetadata' => [ 'type' => 'structure', 'members' => [], ], 'ServiceDeletedMetadata' => [ 'type' => 'structure', 'members' => [], ], 'ServiceEvent' => [ 'type' => 'structure', 'required' => [ 'eventId', 'timestamp', 'eventType', 'serviceArn', 'actor', 'eventDetails', ], 'members' => [ 'eventId' => [ 'shape' => 'Uuid', ], 'timestamp' => [ 'shape' => 'Timestamp', ], 'eventType' => [ 'shape' => 'ServiceEventType', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'actor' => [ 'shape' => 'EventActor', ], 'eventDetails' => [ 'shape' => 'ServiceEventDetails', ], ], ], 'ServiceEventDetails' => [ 'type' => 'structure', 'required' => [ 'title', 'description', ], 'members' => [ 'title' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'eventMetadata' => [ 'shape' => 'ServiceEventMetadata', ], ], ], 'ServiceEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceEvent', ], ], 'ServiceEventMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceCreated' => [ 'shape' => 'ServiceCreatedMetadata', ], 'serviceDeleted' => [ 'shape' => 'ServiceDeletedMetadata', ], 'serviceSystemAssociated' => [ 'shape' => 'ServiceSystemAssociatedMetadata', ], 'serviceSystemDisassociated' => [ 'shape' => 'ServiceSystemDisassociatedMetadata', ], 'serviceResourcesAssociated' => [ 'shape' => 'ServiceResourcesAssociatedMetadata', ], 'serviceResourcesDisassociated' => [ 'shape' => 'ServiceResourcesDisassociatedMetadata', ], 'serviceWorkflowUpdated' => [ 'shape' => 'ServiceWorkflowUpdatedMetadata', ], 'serviceInputSourcesUpdated' => [ 'shape' => 'ServiceInputSourcesUpdatedMetadata', ], 'servicePolicyAssociated' => [ 'shape' => 'ServicePolicyAssociatedMetadata', ], 'servicePolicyDisassociated' => [ 'shape' => 'ServicePolicyDisassociatedMetadata', ], 'serviceFunctionCreated' => [ 'shape' => 'ServiceFunctionCreatedMetadata', ], 'serviceFunctionUpdated' => [ 'shape' => 'ServiceFunctionUpdatedMetadata', ], 'serviceFunctionDeleted' => [ 'shape' => 'ServiceFunctionDeletedMetadata', ], 'serviceFunctionResourcesAdded' => [ 'shape' => 'ServiceFunctionResourcesAddedMetadata', ], 'serviceFunctionResourcesRemoved' => [ 'shape' => 'ServiceFunctionResourcesRemovedMetadata', ], 'serviceAchievabilityUpdated' => [ 'shape' => 'ServiceAchievabilityUpdatedMetadata', ], 'assertionCreated' => [ 'shape' => 'AssertionCreatedMetadata', ], 'assertionUpdated' => [ 'shape' => 'AssertionUpdatedMetadata', ], 'assertionDeleted' => [ 'shape' => 'AssertionDeletedMetadata', ], ], 'union' => true, ], 'ServiceEventType' => [ 'type' => 'string', 'enum' => [ 'SERVICE_CREATED', 'SERVICE_DELETED', 'SERVICE_SYSTEM_ASSOCIATED', 'SERVICE_SYSTEM_DISASSOCIATED', 'SERVICE_RESOURCES_ASSOCIATED', 'SERVICE_RESOURCES_DISASSOCIATED', 'SERVICE_WORKFLOW_UPDATED', 'SERVICE_INPUT_SOURCES_UPDATED', 'SERVICE_POLICY_ASSOCIATED', 'SERVICE_POLICY_DISASSOCIATED', 'SERVICE_FUNCTION_CREATED', 'SERVICE_FUNCTION_UPDATED', 'SERVICE_FUNCTION_DELETED', 'SERVICE_FUNCTION_RESOURCES_ADDED', 'SERVICE_FUNCTION_RESOURCES_REMOVED', 'SERVICE_ACHIEVABILITY_UPDATED', 'ASSERTION_CREATED', 'ASSERTION_UPDATED', 'ASSERTION_DELETED', ], ], 'ServiceEventTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceEventType', ], ], 'ServiceFunction' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'serviceFunctionId', 'name', 'criticality', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'serviceFunctionId' => [ 'shape' => 'EntityId', ], 'name' => [ 'shape' => 'EntityLabel', ], 'description' => [ 'shape' => 'EntityDescription', ], 'criticality' => [ 'shape' => 'ServiceFunctionCriticality', ], 'resourceCount' => [ 'shape' => 'Integer', ], 'source' => [ 'shape' => 'ServiceFunctionSource', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ServiceFunctionCreatedMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceFunctionId' => [ 'shape' => 'String', ], 'serviceFunctionName' => [ 'shape' => 'String', ], ], ], 'ServiceFunctionCriticality' => [ 'type' => 'string', 'enum' => [ 'PRIMARY', 'SUPPLEMENTAL', ], ], 'ServiceFunctionDeletedMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceFunctionId' => [ 'shape' => 'String', ], 'serviceFunctionName' => [ 'shape' => 'String', ], ], ], 'ServiceFunctionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceFunction', ], ], 'ServiceFunctionResourcesAddedMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceFunctionId' => [ 'shape' => 'String', ], 'serviceFunctionName' => [ 'shape' => 'String', ], 'resourcesAdded' => [ 'shape' => 'ArnList', ], ], ], 'ServiceFunctionResourcesRemovedMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceFunctionId' => [ 'shape' => 'String', ], 'serviceFunctionName' => [ 'shape' => 'String', ], 'resourcesRemoved' => [ 'shape' => 'ArnList', ], ], ], 'ServiceFunctionSource' => [ 'type' => 'string', 'enum' => [ 'AI_GENERATED', 'USER', ], ], 'ServiceFunctionUpdatedMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceFunctionId' => [ 'shape' => 'String', ], 'serviceFunctionName' => [ 'shape' => 'String', ], 'resourcesAdded' => [ 'shape' => 'ArnList', ], 'resourcesRemoved' => [ 'shape' => 'ArnList', ], ], ], 'ServiceInputSourcesUpdatedMetadata' => [ 'type' => 'structure', 'members' => [], ], 'ServicePolicyAssociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'policyName' => [ 'shape' => 'String', ], 'policyArn' => [ 'shape' => 'Arn', ], ], ], 'ServicePolicyDisassociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'policyName' => [ 'shape' => 'String', ], 'policyArn' => [ 'shape' => 'Arn', ], ], ], 'ServiceQuotaExceededException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 402, 'senderFault' => true, ], 'exception' => true, ], 'ServiceReference' => [ 'type' => 'structure', 'members' => [ 'serviceId' => [ 'shape' => 'String', ], 'serviceName' => [ 'shape' => 'String', ], ], ], 'ServiceReferenceChanges' => [ 'type' => 'structure', 'members' => [ 'added' => [ 'shape' => 'ServiceReferenceList', ], 'removed' => [ 'shape' => 'ServiceReferenceList', ], ], ], 'ServiceReferenceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceReference', ], ], 'ServiceReportConfiguration' => [ 'type' => 'structure', 'required' => [ 'reportOutputs', ], 'members' => [ 'reportOutputs' => [ 'shape' => 'ReportOutputConfigurationList', ], ], ], 'ServiceResource' => [ 'type' => 'structure', 'required' => [ 'resourceIdentifier', 'resource', ], 'members' => [ 'resourceIdentifier' => [ 'shape' => 'String', ], 'inputSource' => [ 'shape' => 'InputSource', ], 'resource' => [ 'shape' => 'Resource', ], ], ], 'ServiceResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceResource', ], ], 'ServiceResourcesAssociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'resourceCount' => [ 'shape' => 'Integer', ], 'resourceTypes' => [ 'shape' => 'ResourceTypeList', ], ], ], 'ServiceResourcesDisassociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'resourceCount' => [ 'shape' => 'Integer', ], 'resourceTypes' => [ 'shape' => 'ResourceTypeList', ], ], ], 'ServiceSummary' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'name', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'EntityName', ], 'associatedSystems' => [ 'shape' => 'AssociatedSystemList', ], 'regions' => [ 'shape' => 'RegionList', ], 'policyArn' => [ 'shape' => 'Arn', ], 'assessmentStatus' => [ 'shape' => 'AssessmentStatus', ], 'openFindingsCount' => [ 'shape' => 'Integer', ], 'resolvedFindingsCount' => [ 'shape' => 'Integer', ], 'dependencyDiscovery' => [ 'shape' => 'DependencyDiscoveryConfig', ], 'achievability' => [ 'shape' => 'Achievability', ], 'organizationId' => [ 'shape' => 'OrganizationId', ], 'ouId' => [ 'shape' => 'OuId', ], 'accountId' => [ 'shape' => 'AccountId', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ServiceSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceSummary', ], ], 'ServiceSystemAssociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'systemName' => [ 'shape' => 'String', ], 'systemArn' => [ 'shape' => 'Arn', ], ], ], 'ServiceSystemDisassociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'systemId' => [ 'shape' => 'String', ], 'systemName' => [ 'shape' => 'String', ], 'systemArn' => [ 'shape' => 'Arn', ], ], ], 'ServiceTopologyEdgeSummary' => [ 'type' => 'structure', 'required' => [ 'sourceResourceIdentifier', 'destinationResourceIdentifier', ], 'members' => [ 'sourceResourceIdentifier' => [ 'shape' => 'String', ], 'destinationResourceIdentifier' => [ 'shape' => 'String', ], 'properties' => [ 'shape' => 'EdgePropertyList', ], ], ], 'ServiceTopologyEdgeSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceTopologyEdgeSummary', ], ], 'ServiceWorkflowUpdatedMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceFunctionId' => [ 'shape' => 'String', ], 'serviceFunctionName' => [ 'shape' => 'String', ], ], ], 'SloSource' => [ 'type' => 'structure', 'members' => [ 'value' => [ 'shape' => 'Double', ], 'policyName' => [ 'shape' => 'EntityName', ], 'source' => [ 'shape' => 'PolicyValueSource', ], ], ], 'StartFailureModeAssessmentRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'StartFailureModeAssessmentResponse' => [ 'type' => 'structure', 'members' => [ 'assessmentId' => [ 'shape' => 'Uuid', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'assessmentStatus' => [ 'shape' => 'AssessmentStatus', ], 'startedAt' => [ 'shape' => 'Timestamp', ], ], ], 'String' => [ 'type' => 'string', ], 'StringChange' => [ 'type' => 'structure', 'members' => [ 'oldValue' => [ 'shape' => 'String', ], 'newValue' => [ 'shape' => 'String', ], ], ], 'SuggestedChangesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EntityDescription', ], 'max' => 10, 'min' => 0, ], 'System' => [ 'type' => 'structure', 'required' => [ 'systemArn', 'systemId', 'name', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', ], 'systemId' => [ 'shape' => 'SystemId', ], 'name' => [ 'shape' => 'EntityName', ], 'description' => [ 'shape' => 'EntityDescription', ], 'sharingEnabled' => [ 'shape' => 'Boolean', ], 'tags' => [ 'shape' => 'TagMap', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'organizationId' => [ 'shape' => 'OrganizationId', ], 'ouId' => [ 'shape' => 'OuId', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'SystemCreatedMetadata' => [ 'type' => 'structure', 'members' => [], ], 'SystemDeletedMetadata' => [ 'type' => 'structure', 'members' => [], ], 'SystemEvent' => [ 'type' => 'structure', 'required' => [ 'eventId', 'timestamp', 'eventType', 'systemArn', 'actor', 'eventDetails', ], 'members' => [ 'eventId' => [ 'shape' => 'Uuid', ], 'timestamp' => [ 'shape' => 'Timestamp', ], 'eventType' => [ 'shape' => 'SystemEventType', ], 'systemArn' => [ 'shape' => 'Arn', ], 'actor' => [ 'shape' => 'EventActor', ], 'eventDetails' => [ 'shape' => 'SystemEventDetails', ], ], ], 'SystemEventDetails' => [ 'type' => 'structure', 'required' => [ 'title', 'description', ], 'members' => [ 'title' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'eventMetadata' => [ 'shape' => 'SystemEventMetadata', ], ], ], 'SystemEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SystemEvent', ], ], 'SystemEventMetadata' => [ 'type' => 'structure', 'members' => [ 'systemCreated' => [ 'shape' => 'SystemCreatedMetadata', ], 'systemDeleted' => [ 'shape' => 'SystemDeletedMetadata', ], 'systemUserJourneyCreated' => [ 'shape' => 'SystemUserJourneyCreatedMetadata', ], 'systemUserJourneyUpdated' => [ 'shape' => 'SystemUserJourneyUpdatedMetadata', ], 'systemUserJourneyDeleted' => [ 'shape' => 'SystemUserJourneyDeletedMetadata', ], 'systemServiceAssociated' => [ 'shape' => 'SystemServiceAssociatedMetadata', ], 'systemServiceDisassociated' => [ 'shape' => 'SystemServiceDisassociatedMetadata', ], 'systemPolicyAssociated' => [ 'shape' => 'SystemPolicyAssociatedMetadata', ], 'systemPolicyDisassociated' => [ 'shape' => 'SystemPolicyDisassociatedMetadata', ], ], 'union' => true, ], 'SystemEventType' => [ 'type' => 'string', 'enum' => [ 'SYSTEM_CREATED', 'SYSTEM_DELETED', 'SYSTEM_USER_JOURNEY_CREATED', 'SYSTEM_USER_JOURNEY_UPDATED', 'SYSTEM_USER_JOURNEY_DELETED', 'SYSTEM_SERVICE_ASSOCIATED', 'SYSTEM_SERVICE_DISASSOCIATED', 'SYSTEM_POLICY_ASSOCIATED', 'SYSTEM_POLICY_DISASSOCIATED', ], ], 'SystemEventTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SystemEventType', ], ], 'SystemId' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '\\S{1,255}', ], 'SystemPolicyAssociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'policyName' => [ 'shape' => 'String', ], 'policyArn' => [ 'shape' => 'Arn', ], ], ], 'SystemPolicyDisassociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'policyName' => [ 'shape' => 'String', ], 'policyArn' => [ 'shape' => 'Arn', ], ], ], 'SystemServiceAssociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceName' => [ 'shape' => 'String', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'userJourneys' => [ 'shape' => 'UserJourneyNameList', ], ], ], 'SystemServiceDisassociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceName' => [ 'shape' => 'String', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'userJourneysAffected' => [ 'shape' => 'UserJourneyNameList', ], 'comment' => [ 'shape' => 'String', ], ], ], 'SystemSummary' => [ 'type' => 'structure', 'required' => [ 'systemId', 'name', ], 'members' => [ 'systemId' => [ 'shape' => 'SystemId', ], 'name' => [ 'shape' => 'EntityName', ], 'systemArn' => [ 'shape' => 'Arn', ], 'userJourneysCount' => [ 'shape' => 'Integer', ], 'servicesCount' => [ 'shape' => 'Integer', ], 'organizationId' => [ 'shape' => 'OrganizationId', ], 'ouId' => [ 'shape' => 'OuId', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'SystemSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SystemSummary', ], ], 'SystemUserJourneyCreatedMetadata' => [ 'type' => 'structure', 'members' => [ 'userJourneyName' => [ 'shape' => 'String', ], 'associatedServices' => [ 'shape' => 'ServiceReferenceList', ], ], ], 'SystemUserJourneyDeletedMetadata' => [ 'type' => 'structure', 'members' => [ 'userJourneyName' => [ 'shape' => 'String', ], 'associatedServicesAtDeletion' => [ 'shape' => 'ServiceReferenceList', ], ], ], 'SystemUserJourneyUpdatedMetadata' => [ 'type' => 'structure', 'members' => [ 'userJourneyName' => [ 'shape' => 'String', ], 'changes' => [ 'shape' => 'UserJourneyChanges', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[^\\x00-\\x1f\\x22]+', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 1, 'sensitive' => true, ], 'TagMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'max' => 50, 'min' => 1, 'sensitive' => true, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '[^\\x00-\\x1f\\x22]*', ], 'TargetSource' => [ 'type' => 'structure', 'members' => [ 'value' => [ 'shape' => 'Integer', ], 'policyName' => [ 'shape' => 'EntityName', ], 'source' => [ 'shape' => 'PolicyValueSource', ], ], ], 'TestingRecommendation' => [ 'type' => 'structure', 'members' => [ 'suggestedChanges' => [ 'shape' => 'SuggestedChangesList', ], ], ], 'TestingRecommendationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TestingRecommendation', ], 'max' => 5, 'min' => 0, ], 'ThrottlingException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], 'retryAfterSeconds' => [ 'shape' => 'Integer', ], ], 'error' => [ 'httpStatusCode' => 429, 'senderFault' => true, ], 'exception' => true, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TopologyType' => [ 'type' => 'string', 'enum' => [ 'CONTAINMENT', 'DATA_FLOW', 'OBSERVABILITY', 'PERMISSIONS', ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'tagKeys' => [ 'shape' => 'TagKeyList', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateAssertionRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'assertionId', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'assertionId' => [ 'shape' => 'Uuid', ], 'text' => [ 'shape' => 'AssertionText', ], ], ], 'UpdateAssertionResponse' => [ 'type' => 'structure', 'required' => [ 'assertion', ], 'members' => [ 'assertion' => [ 'shape' => 'Assertion', ], ], ], 'UpdateDependencyRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'dependencyId', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'dependencyId' => [ 'shape' => 'Uuid', ], 'criticality' => [ 'shape' => 'DependencyCriticality', ], 'comment' => [ 'shape' => 'String', ], ], ], 'UpdateDependencyResponse' => [ 'type' => 'structure', 'required' => [ 'dependencyId', 'dependencyName', 'location', 'criticality', 'updatedAt', ], 'members' => [ 'dependencyId' => [ 'shape' => 'Uuid', ], 'dependencyName' => [ 'shape' => 'String', ], 'location' => [ 'shape' => 'String', ], 'criticality' => [ 'shape' => 'DependencyCriticality', ], 'comment' => [ 'shape' => 'String', ], 'provider' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'UpdateFailureModeFindingRequest' => [ 'type' => 'structure', 'required' => [ 'findingId', 'status', 'serviceArn', ], 'members' => [ 'findingId' => [ 'shape' => 'Uuid', ], 'status' => [ 'shape' => 'FindingStatus', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'comment' => [ 'shape' => 'UpdateFailureModeFindingRequestCommentString', ], ], ], 'UpdateFailureModeFindingRequestCommentString' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'UpdateFailureModeFindingResponse' => [ 'type' => 'structure', 'members' => [ 'finding' => [ 'shape' => 'Finding', ], ], ], 'UpdatePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyArn', ], 'members' => [ 'policyArn' => [ 'shape' => 'Arn', ], 'description' => [ 'shape' => 'LongDescription', ], 'availabilitySlo' => [ 'shape' => 'AvailabilitySlo', ], 'multiAz' => [ 'shape' => 'MultiAzTargets', ], 'multiRegion' => [ 'shape' => 'MultiRegionTargets', ], 'dataRecovery' => [ 'shape' => 'DataRecoveryTargets', ], ], ], 'UpdatePolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policy', ], 'members' => [ 'policy' => [ 'shape' => 'Policy', ], ], ], 'UpdateServiceFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'serviceFunctionId', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'serviceFunctionId' => [ 'shape' => 'EntityId', ], 'name' => [ 'shape' => 'EntityLabel', ], 'description' => [ 'shape' => 'EntityDescription', ], 'criticality' => [ 'shape' => 'ServiceFunctionCriticality', ], ], ], 'UpdateServiceFunctionResponse' => [ 'type' => 'structure', 'required' => [ 'serviceFunction', ], 'members' => [ 'serviceFunction' => [ 'shape' => 'ServiceFunction', ], ], ], 'UpdateServiceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'description' => [ 'shape' => 'LongDescription', ], 'associatedSystems' => [ 'shape' => 'AssociatedSystemList', ], 'policyArn' => [ 'shape' => 'Arn', ], 'regions' => [ 'shape' => 'RegionList', ], 'permissionModel' => [ 'shape' => 'PermissionModel', ], 'dependencyDiscovery' => [ 'shape' => 'DependencyDiscoveryInput', ], 'reportConfiguration' => [ 'shape' => 'ServiceReportConfiguration', ], ], ], 'UpdateServiceResponse' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'UpdateSystemRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', ], 'description' => [ 'shape' => 'EntityDescription', ], 'sharingEnabled' => [ 'shape' => 'Boolean', ], ], ], 'UpdateSystemResponse' => [ 'type' => 'structure', 'required' => [ 'system', ], 'members' => [ 'system' => [ 'shape' => 'System', ], ], ], 'UpdateUserJourneyRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', 'userJourneyId', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', ], 'userJourneyId' => [ 'shape' => 'UserJourneyId', ], 'name' => [ 'shape' => 'EntityLabel', ], 'description' => [ 'shape' => 'EntityDescription', ], 'policyArn' => [ 'shape' => 'Arn', ], ], ], 'UpdateUserJourneyResponse' => [ 'type' => 'structure', 'required' => [ 'userJourney', ], 'members' => [ 'userJourney' => [ 'shape' => 'UserJourney', ], ], ], 'UserJourney' => [ 'type' => 'structure', 'required' => [ 'userJourneyId', 'name', ], 'members' => [ 'userJourneyId' => [ 'shape' => 'UserJourneyId', ], 'name' => [ 'shape' => 'EntityLabel', ], 'description' => [ 'shape' => 'EntityDescription', ], 'policyArn' => [ 'shape' => 'Arn', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'UserJourneyChanges' => [ 'type' => 'structure', 'members' => [ 'journeyDescription' => [ 'shape' => 'StringChange', ], 'associatedServices' => [ 'shape' => 'ServiceReferenceChanges', ], ], ], 'UserJourneyId' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '\\S{1,255}', ], 'UserJourneyIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserJourneyId', ], 'max' => 20, 'min' => 0, ], 'UserJourneyNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'UserJourneySummary' => [ 'type' => 'structure', 'required' => [ 'userJourneyId', 'name', ], 'members' => [ 'userJourneyId' => [ 'shape' => 'UserJourneyId', ], 'name' => [ 'shape' => 'EntityLabel', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'UserJourneySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserJourneySummary', ], ], 'Uuid' => [ 'type' => 'string', 'max' => 36, 'min' => 36, 'pattern' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}', ], 'ValidationException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], 'reason' => [ 'shape' => 'ValidationExceptionReason', ], 'fieldList' => [ 'shape' => 'ValidationExceptionFieldList', ], ], 'error' => [ 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ValidationExceptionField' => [ 'type' => 'structure', 'required' => [ 'name', 'message', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], ], 'ValidationExceptionFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValidationExceptionField', ], ], 'ValidationExceptionReason' => [ 'type' => 'string', 'enum' => [ 'INVALID_FIELD_VALUE', 'DUPLICATE_VALUE', 'MISSING_REQUIRED_FIELD', 'OTHER', ], ], ],]; +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2026-02-17', 'auth' => [ 'aws.auth#sigv4', ], 'endpointPrefix' => 'resiliencehub', 'protocol' => 'rest-json', 'protocols' => [ 'rest-json', ], 'serviceFullName' => 'AWS Resilience Hub V2', 'serviceId' => 'resiliencehubv2', 'signatureVersion' => 'v4', 'signingName' => 'resiliencehub', 'uid' => 'resiliencehubv2-2026-02-17', ], 'operations' => [ 'CreateAssertion' => [ 'name' => 'CreateAssertion', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-assertion', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateAssertionRequest', ], 'output' => [ 'shape' => 'CreateAssertionResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateInputSource' => [ 'name' => 'CreateInputSource', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-input-source', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateInputSourceRequest', ], 'output' => [ 'shape' => 'CreateInputSourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreatePolicy' => [ 'name' => 'CreatePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-policy', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreatePolicyRequest', ], 'output' => [ 'shape' => 'CreatePolicyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateReport' => [ 'name' => 'CreateReport', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-report', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateReportRequest', ], 'output' => [ 'shape' => 'CreateReportResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateService' => [ 'name' => 'CreateService', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-service', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateServiceRequest', ], 'output' => [ 'shape' => 'CreateServiceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateServiceFunction' => [ 'name' => 'CreateServiceFunction', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-service-function', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateServiceFunctionRequest', ], 'output' => [ 'shape' => 'CreateServiceFunctionResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateServiceFunctionResources' => [ 'name' => 'CreateServiceFunctionResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-service-function-resources', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateServiceFunctionResourcesRequest', ], 'output' => [ 'shape' => 'CreateServiceFunctionResourcesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateSystem' => [ 'name' => 'CreateSystem', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-system', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateSystemRequest', ], 'output' => [ 'shape' => 'CreateSystemResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'CreateUserJourney' => [ 'name' => 'CreateUserJourney', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/create-user-journey', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateUserJourneyRequest', ], 'output' => [ 'shape' => 'CreateUserJourneyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteAssertion' => [ 'name' => 'DeleteAssertion', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/delete-assertion', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteAssertionRequest', ], 'output' => [ 'shape' => 'DeleteAssertionResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteInputSource' => [ 'name' => 'DeleteInputSource', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/delete-input-source', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteInputSourceRequest', ], 'output' => [ 'shape' => 'DeleteInputSourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeletePolicy' => [ 'name' => 'DeletePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/delete-policy', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeletePolicyRequest', ], 'output' => [ 'shape' => 'DeletePolicyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteService' => [ 'name' => 'DeleteService', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/delete-service', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteServiceRequest', ], 'output' => [ 'shape' => 'DeleteServiceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteServiceFunction' => [ 'name' => 'DeleteServiceFunction', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/delete-function', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteServiceFunctionRequest', ], 'output' => [ 'shape' => 'DeleteServiceFunctionResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteServiceFunctionResources' => [ 'name' => 'DeleteServiceFunctionResources', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/delete-service-function-resources', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteServiceFunctionResourcesRequest', ], 'output' => [ 'shape' => 'DeleteServiceFunctionResourcesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteSystem' => [ 'name' => 'DeleteSystem', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/delete-system', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteSystemRequest', ], 'output' => [ 'shape' => 'DeleteSystemResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'DeleteUserJourney' => [ 'name' => 'DeleteUserJourney', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/delete-user-journey', 'responseCode' => 200, ], 'input' => [ 'shape' => 'DeleteUserJourneyRequest', ], 'output' => [ 'shape' => 'DeleteUserJourneyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'GetFailureModeFinding' => [ 'name' => 'GetFailureModeFinding', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/get-failure-mode-finding', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetFailureModeFindingRequest', ], 'output' => [ 'shape' => 'GetFailureModeFindingResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'GetPolicy' => [ 'name' => 'GetPolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/get-policy', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetPolicyRequest', ], 'output' => [ 'shape' => 'GetPolicyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'GetService' => [ 'name' => 'GetService', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/get-service', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetServiceRequest', ], 'output' => [ 'shape' => 'GetServiceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'GetSystem' => [ 'name' => 'GetSystem', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/get-system', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetSystemRequest', ], 'output' => [ 'shape' => 'GetSystemResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'GetUserJourney' => [ 'name' => 'GetUserJourney', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/get-user-journey', 'responseCode' => 200, ], 'input' => [ 'shape' => 'GetUserJourneyRequest', ], 'output' => [ 'shape' => 'GetUserJourneyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ImportApp' => [ 'name' => 'ImportApp', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/import-app', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ImportAppRequest', ], 'output' => [ 'shape' => 'ImportAppResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'ImportPolicy' => [ 'name' => 'ImportPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/import-policy', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ImportPolicyRequest', ], 'output' => [ 'shape' => 'ImportPolicyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'ListAssertions' => [ 'name' => 'ListAssertions', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-assertions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListAssertionsRequest', ], 'output' => [ 'shape' => 'ListAssertionsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListDependencies' => [ 'name' => 'ListDependencies', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-dependencies', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListDependenciesRequest', ], 'output' => [ 'shape' => 'ListDependenciesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListFailureModeAssessments' => [ 'name' => 'ListFailureModeAssessments', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-failure-mode-assessments', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListFailureModeAssessmentsRequest', ], 'output' => [ 'shape' => 'ListFailureModeAssessmentsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListFailureModeFindings' => [ 'name' => 'ListFailureModeFindings', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-failure-mode-findings', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListFailureModeFindingsRequest', ], 'output' => [ 'shape' => 'ListFailureModeFindingsResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListInputSources' => [ 'name' => 'ListInputSources', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-input-sources', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListInputSourcesRequest', ], 'output' => [ 'shape' => 'ListInputSourcesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListPolicies' => [ 'name' => 'ListPolicies', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-policies', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListPoliciesRequest', ], 'output' => [ 'shape' => 'ListPoliciesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListReports' => [ 'name' => 'ListReports', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-reports', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListReportsRequest', ], 'output' => [ 'shape' => 'ListReportsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListResources' => [ 'name' => 'ListResources', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-resources', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListResourcesRequest', ], 'output' => [ 'shape' => 'ListResourcesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListServiceEvents' => [ 'name' => 'ListServiceEvents', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-service-events', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListServiceEventsRequest', ], 'output' => [ 'shape' => 'ListServiceEventsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListServiceFunctions' => [ 'name' => 'ListServiceFunctions', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-functions', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListServiceFunctionsRequest', ], 'output' => [ 'shape' => 'ListServiceFunctionsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListServiceTopologyEdges' => [ 'name' => 'ListServiceTopologyEdges', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-service-topology-edges', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListServiceTopologyEdgesRequest', ], 'output' => [ 'shape' => 'ListServiceTopologyEdgesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListServices' => [ 'name' => 'ListServices', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-services', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListServicesRequest', ], 'output' => [ 'shape' => 'ListServicesResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListSystemEvents' => [ 'name' => 'ListSystemEvents', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-system-events', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListSystemEventsRequest', ], 'output' => [ 'shape' => 'ListSystemEventsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListSystems' => [ 'name' => 'ListSystems', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-systems', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListSystemsRequest', ], 'output' => [ 'shape' => 'ListSystemsResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/tags/{resourceArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'ListUserJourneys' => [ 'name' => 'ListUserJourneys', 'http' => [ 'method' => 'GET', 'requestUri' => '/v2/list-user-journeys', 'responseCode' => 200, ], 'input' => [ 'shape' => 'ListUserJourneysRequest', ], 'output' => [ 'shape' => 'ListUserJourneysResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'readonly' => true, ], 'StartFailureModeAssessment' => [ 'name' => 'StartFailureModeAssessment', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/start-failure-mode-assessment', 'responseCode' => 200, ], 'input' => [ 'shape' => 'StartFailureModeAssessmentRequest', ], 'output' => [ 'shape' => 'StartFailureModeAssessmentResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/tags/{resourceArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/v2/tags/{resourceArn}', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], ], 'idempotent' => true, ], 'UpdateAssertion' => [ 'name' => 'UpdateAssertion', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/update-assertion', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateAssertionRequest', ], 'output' => [ 'shape' => 'UpdateAssertionResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UpdateDependency' => [ 'name' => 'UpdateDependency', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/update-dependency', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateDependencyRequest', ], 'output' => [ 'shape' => 'UpdateDependencyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UpdateFailureModeFinding' => [ 'name' => 'UpdateFailureModeFinding', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/update-failure-mode-finding', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateFailureModeFindingRequest', ], 'output' => [ 'shape' => 'UpdateFailureModeFindingResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UpdatePolicy' => [ 'name' => 'UpdatePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/update-policy', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdatePolicyRequest', ], 'output' => [ 'shape' => 'UpdatePolicyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UpdateService' => [ 'name' => 'UpdateService', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/update-service', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateServiceRequest', ], 'output' => [ 'shape' => 'UpdateServiceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UpdateServiceFunction' => [ 'name' => 'UpdateServiceFunction', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/update-function', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateServiceFunctionRequest', ], 'output' => [ 'shape' => 'UpdateServiceFunctionResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UpdateSystem' => [ 'name' => 'UpdateSystem', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/update-system', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateSystemRequest', ], 'output' => [ 'shape' => 'UpdateSystemResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], 'UpdateUserJourney' => [ 'name' => 'UpdateUserJourney', 'http' => [ 'method' => 'POST', 'requestUri' => '/v2/update-user-journey', 'responseCode' => 200, ], 'input' => [ 'shape' => 'UpdateUserJourneyRequest', ], 'output' => [ 'shape' => 'UpdateUserJourneyResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'AccessDeniedException', ], ], ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'AccountId' => [ 'type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '[0-9]{12}', ], 'Achievability' => [ 'type' => 'structure', 'members' => [ 'availabilitySlo' => [ 'shape' => 'AchievabilityStatus', ], 'multiAzRtoRpo' => [ 'shape' => 'AchievabilityStatus', ], 'multiRegionRtoRpo' => [ 'shape' => 'AchievabilityStatus', ], 'dataRecoveryTimeBetweenBackups' => [ 'shape' => 'AchievabilityStatus', ], ], ], 'AchievabilityStatus' => [ 'type' => 'string', 'enum' => [ 'ACHIEVABLE', 'NOT_ACHIEVABLE', ], ], 'ActorType' => [ 'type' => 'string', 'enum' => [ 'USER', 'SYSTEM', ], ], 'Arn' => [ 'type' => 'string', 'min' => 31, 'pattern' => 'arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9/][A-Za-z0-9:_/+.-]{0,1023}', ], 'ArnList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Arn', ], ], 'Assertion' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'assertionId', 'text', 'source', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'assertionId' => [ 'shape' => 'Uuid', ], 'text' => [ 'shape' => 'AssertionText', ], 'source' => [ 'shape' => 'AssertionSource', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'AssertionCreatedMetadata' => [ 'type' => 'structure', 'members' => [ 'assertionId' => [ 'shape' => 'String', ], 'assertionName' => [ 'shape' => 'String', ], ], ], 'AssertionDeletedMetadata' => [ 'type' => 'structure', 'members' => [ 'assertionId' => [ 'shape' => 'String', ], 'assertionName' => [ 'shape' => 'String', ], ], ], 'AssertionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Assertion', ], ], 'AssertionSource' => [ 'type' => 'string', 'enum' => [ 'AI_GENERATED', 'USER', ], ], 'AssertionText' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], 'AssertionUpdatedMetadata' => [ 'type' => 'structure', 'members' => [ 'assertionId' => [ 'shape' => 'String', ], 'assertionName' => [ 'shape' => 'String', ], ], ], 'AssessmentCost' => [ 'type' => 'structure', 'members' => [ 'amount' => [ 'shape' => 'Double', ], 'currency' => [ 'shape' => 'CostCurrency', ], ], ], 'AssessmentErrorCode' => [ 'type' => 'string', 'enum' => [ 'INVALID_PERMISSIONS', 'CMK_ACCESS_DENIED', 'AGENT_ERROR', 'INTERNAL_ERROR', 'DESIGN_FILE_ACCESS_DENIED', ], ], 'AssessmentSortField' => [ 'type' => 'string', 'enum' => [ 'STARTED_AT', ], ], 'AssessmentStatus' => [ 'type' => 'string', 'enum' => [ 'NOT_STARTED', 'PENDING', 'IN_PROGRESS', 'FAILED', 'SUCCESS', ], ], 'AssessmentStatusList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssessmentStatus', ], 'max' => 5, 'min' => 0, ], 'AssessmentStep' => [ 'type' => 'string', 'enum' => [ 'TOPOLOGY_GENERATION', 'INPUT_VALIDATION', 'DESIGN_ANALYSIS', 'TOPOLOGY_ENHANCEMENT', 'SERVICE_FUNCTION_GENERATION', 'POLICY_VALIDATION', 'RESILIENCE_ASSESSMENT', 'FAILURE_MODE_FINDINGS_CONSOLIDATION', 'FAILURE_MODE_FINDINGS_ENRICHMENT', ], ], 'AssessmentSummary' => [ 'type' => 'structure', 'required' => [ 'assessmentId', 'serviceArn', ], 'members' => [ 'assessmentId' => [ 'shape' => 'Uuid', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'assessmentStatus' => [ 'shape' => 'AssessmentStatus', ], 'assessmentStep' => [ 'shape' => 'AssessmentStep', ], 'totalFindings' => [ 'shape' => 'Integer', ], 'startedAt' => [ 'shape' => 'Timestamp', ], 'endedAt' => [ 'shape' => 'Timestamp', ], 'errorMessage' => [ 'shape' => 'String', ], 'errorCode' => [ 'shape' => 'AssessmentErrorCode', ], 'assessmentCost' => [ 'shape' => 'AssessmentCost', ], 'billableAssessmentUnitCount' => [ 'shape' => 'Integer', ], 'achievability' => [ 'shape' => 'Achievability', ], ], ], 'AssessmentSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssessmentSummary', ], ], 'AssociatedSystem' => [ 'type' => 'structure', 'required' => [ 'systemArn', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', ], 'systemName' => [ 'shape' => 'EntityName', ], 'userJourneyIds' => [ 'shape' => 'UserJourneyIdList', ], ], ], 'AssociatedSystemList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AssociatedSystem', ], 'max' => 20, 'min' => 0, ], 'AvailabilitySlo' => [ 'type' => 'structure', 'members' => [ 'target' => [ 'shape' => 'AvailabilitySloTargetDouble', ], ], ], 'AvailabilitySloTargetDouble' => [ 'type' => 'double', 'box' => true, 'max' => 100, 'min' => 0, ], 'AwsAccountId' => [ 'type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '\\d{12}', ], 'AwsRegion' => [ 'type' => 'string', 'min' => 6, 'pattern' => '[a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]', ], 'Boolean' => [ 'type' => 'boolean', 'box' => true, ], 'ClientToken' => [ 'type' => 'string', 'max' => 63, 'min' => 1, 'pattern' => '[A-Za-z0-9_.-]{0,63}', ], 'ConflictException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 409, 'senderFault' => true, ], 'exception' => true, ], 'CostCurrency' => [ 'type' => 'string', 'enum' => [ 'USD', ], ], 'CreateAssertionRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'text', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'text' => [ 'shape' => 'AssertionText', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateAssertionResponse' => [ 'type' => 'structure', 'required' => [ 'assertion', ], 'members' => [ 'assertion' => [ 'shape' => 'Assertion', ], ], ], 'CreateInputSourceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'resourceConfiguration', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'resourceConfiguration' => [ 'shape' => 'ResourceConfiguration', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateInputSourceResponse' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'inputSourceId', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'inputSourceId' => [ 'shape' => 'InputSourceId', ], ], ], 'CreatePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'EntityName', ], 'description' => [ 'shape' => 'LongDescription', ], 'availabilitySlo' => [ 'shape' => 'AvailabilitySlo', ], 'multiAz' => [ 'shape' => 'MultiAzTargets', ], 'multiRegion' => [ 'shape' => 'MultiRegionTargets', ], 'dataRecovery' => [ 'shape' => 'DataRecoveryTargets', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'tags' => [ 'shape' => 'TagMap', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreatePolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policy', ], 'members' => [ 'policy' => [ 'shape' => 'Policy', ], ], ], 'CreateReportRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'reportType', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'reportType' => [ 'shape' => 'ReportType', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateReportResponse' => [ 'type' => 'structure', 'required' => [ 'reportGenerationResult', ], 'members' => [ 'reportGenerationResult' => [ 'shape' => 'ReportGenerationResult', ], ], ], 'CreateServiceFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'serviceArn', 'criticality', ], 'members' => [ 'name' => [ 'shape' => 'EntityLabel', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'description' => [ 'shape' => 'EntityDescription', ], 'criticality' => [ 'shape' => 'ServiceFunctionCriticality', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateServiceFunctionResourcesRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'serviceFunctionId', 'resources', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'serviceFunctionId' => [ 'shape' => 'EntityId', ], 'resources' => [ 'shape' => 'ResourceList', ], ], ], 'CreateServiceFunctionResourcesResponse' => [ 'type' => 'structure', 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'serviceFunctionId' => [ 'shape' => 'EntityId', ], 'resources' => [ 'shape' => 'ResourceList', ], ], ], 'CreateServiceFunctionResponse' => [ 'type' => 'structure', 'required' => [ 'serviceFunction', ], 'members' => [ 'serviceFunction' => [ 'shape' => 'ServiceFunction', ], ], ], 'CreateServiceRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'regions', 'permissionModel', ], 'members' => [ 'name' => [ 'shape' => 'EntityName', ], 'description' => [ 'shape' => 'LongDescription', ], 'associatedSystems' => [ 'shape' => 'AssociatedSystemList', ], 'policyArn' => [ 'shape' => 'Arn', ], 'regions' => [ 'shape' => 'RegionList', ], 'permissionModel' => [ 'shape' => 'PermissionModel', ], 'dependencyDiscovery' => [ 'shape' => 'DependencyDiscoveryInput', ], 'reportConfiguration' => [ 'shape' => 'ServiceReportConfiguration', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'tags' => [ 'shape' => 'TagMap', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateServiceResponse' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'CreateSystemRequest' => [ 'type' => 'structure', 'required' => [ 'name', ], 'members' => [ 'name' => [ 'shape' => 'EntityName', ], 'description' => [ 'shape' => 'EntityDescription', ], 'sharingEnabled' => [ 'shape' => 'Boolean', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'tags' => [ 'shape' => 'TagMap', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateSystemResponse' => [ 'type' => 'structure', 'required' => [ 'system', ], 'members' => [ 'system' => [ 'shape' => 'System', ], ], ], 'CreateUserJourneyRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', 'name', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'EntityLabel', ], 'description' => [ 'shape' => 'EntityDescription', ], 'policyArn' => [ 'shape' => 'Arn', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'CreateUserJourneyResponse' => [ 'type' => 'structure', 'required' => [ 'userJourney', ], 'members' => [ 'userJourney' => [ 'shape' => 'UserJourney', ], ], ], 'CrossAccountRole' => [ 'type' => 'structure', 'required' => [ 'crossAccountRoleArn', ], 'members' => [ 'crossAccountRoleArn' => [ 'shape' => 'IamRoleArn', ], 'externalId' => [ 'shape' => 'CrossAccountRoleExternalIdString', ], ], ], 'CrossAccountRoleExternalIdString' => [ 'type' => 'string', 'max' => 1224, 'min' => 2, ], 'CrossAccountRoleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CrossAccountRole', ], 'max' => 5, 'min' => 0, ], 'DataRecoveryTargets' => [ 'type' => 'structure', 'members' => [ 'timeBetweenBackupsInMinutes' => [ 'shape' => 'DataRecoveryTargetsTimeBetweenBackupsInMinutesInteger', ], ], ], 'DataRecoveryTargetsTimeBetweenBackupsInMinutesInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'DeleteAssertionRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'assertionId', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'assertionId' => [ 'shape' => 'Uuid', ], ], ], 'DeleteAssertionResponse' => [ 'type' => 'structure', 'members' => [ 'assertionId' => [ 'shape' => 'Uuid', ], ], ], 'DeleteInputSourceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'inputSourceId', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'inputSourceId' => [ 'shape' => 'InputSourceId', ], ], ], 'DeleteInputSourceResponse' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'inputSourceId', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'inputSourceId' => [ 'shape' => 'InputSourceId', ], ], ], 'DeletePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyArn', ], 'members' => [ 'policyArn' => [ 'shape' => 'Arn', ], ], ], 'DeletePolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policyArn', ], 'members' => [ 'policyArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteServiceFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'serviceFunctionId', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'serviceFunctionId' => [ 'shape' => 'EntityId', ], ], ], 'DeleteServiceFunctionResourcesRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'serviceFunctionId', 'resources', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'serviceFunctionId' => [ 'shape' => 'EntityId', ], 'resources' => [ 'shape' => 'ResourceList', ], ], ], 'DeleteServiceFunctionResourcesResponse' => [ 'type' => 'structure', 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'serviceFunctionId' => [ 'shape' => 'EntityId', ], 'resources' => [ 'shape' => 'ResourceList', ], ], ], 'DeleteServiceFunctionResponse' => [ 'type' => 'structure', 'members' => [ 'serviceFunctionId' => [ 'shape' => 'EntityId', ], ], ], 'DeleteServiceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteServiceResponse' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteSystemRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteSystemResponse' => [ 'type' => 'structure', 'required' => [ 'systemArn', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', ], ], ], 'DeleteUserJourneyRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', 'userJourneyId', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', ], 'userJourneyId' => [ 'shape' => 'UserJourneyId', ], ], ], 'DeleteUserJourneyResponse' => [ 'type' => 'structure', 'required' => [ 'userJourneyId', ], 'members' => [ 'userJourneyId' => [ 'shape' => 'UserJourneyId', ], ], ], 'DependencyCriticality' => [ 'type' => 'string', 'enum' => [ 'HARD', 'SOFT', 'UNKNOWN', ], ], 'DependencyDiscoveryConfig' => [ 'type' => 'structure', 'required' => [ 'status', ], 'members' => [ 'status' => [ 'shape' => 'DependencyDiscoveryStatus', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], 'eligibleResourceCount' => [ 'shape' => 'DependencyDiscoveryConfigEligibleResourceCountInteger', ], 'message' => [ 'shape' => 'DependencyDiscoveryConfigMessageString', ], ], ], 'DependencyDiscoveryConfigEligibleResourceCountInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'DependencyDiscoveryConfigMessageString' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, ], 'DependencyDiscoveryInput' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'DependencyDiscoveryStatus' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'INITIALIZING', 'DISABLED', ], ], 'DependencySummary' => [ 'type' => 'structure', 'required' => [ 'dependencyId', 'serviceArn', 'dependencyName', 'dnsName', 'location', 'lastDetectedTime', 'sourceRegions', 'queryRange', 'criticality', ], 'members' => [ 'dependencyId' => [ 'shape' => 'Uuid', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'dependencyName' => [ 'shape' => 'String', ], 'dnsName' => [ 'shape' => 'String', ], 'location' => [ 'shape' => 'String', ], 'lastDetectedTime' => [ 'shape' => 'Timestamp', ], 'sourceRegions' => [ 'shape' => 'RegionList', ], 'provider' => [ 'shape' => 'String', ], 'queryRange' => [ 'shape' => 'QueryRange', ], 'criticality' => [ 'shape' => 'DependencyCriticality', ], 'comment' => [ 'shape' => 'String', ], ], ], 'DependencySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DependencySummary', ], ], 'DisasterRecoverySource' => [ 'type' => 'structure', 'members' => [ 'value' => [ 'shape' => 'String', ], 'policyName' => [ 'shape' => 'EntityName', ], 'source' => [ 'shape' => 'PolicyValueSource', ], ], ], 'Double' => [ 'type' => 'double', 'box' => true, ], 'EdgePropertyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EdgePropertySummary', ], 'max' => 3, 'min' => 0, ], 'EdgePropertySummary' => [ 'type' => 'structure', 'members' => [ 'topologyType' => [ 'shape' => 'TopologyType', ], 'label' => [ 'shape' => 'String', ], ], ], 'EffectivePolicyValues' => [ 'type' => 'structure', 'members' => [ 'availabilitySlo' => [ 'shape' => 'SloSource', ], 'multiAzRto' => [ 'shape' => 'TargetSource', ], 'multiAzRpo' => [ 'shape' => 'TargetSource', ], 'multiAzDrApproach' => [ 'shape' => 'DisasterRecoverySource', ], 'multiRegionRto' => [ 'shape' => 'TargetSource', ], 'multiRegionRpo' => [ 'shape' => 'TargetSource', ], 'multiRegionDrApproach' => [ 'shape' => 'DisasterRecoverySource', ], 'dataRecoveryTimeBetweenBackups' => [ 'shape' => 'TargetSource', ], ], ], 'EksNamespace' => [ 'type' => 'string', 'max' => 63, 'min' => 1, 'pattern' => '[a-z0-9]([-a-z0-9]*[a-z0-9])?', ], 'EksSource' => [ 'type' => 'structure', 'required' => [ 'clusterArn', 'namespaces', ], 'members' => [ 'clusterArn' => [ 'shape' => 'Arn', ], 'namespaces' => [ 'shape' => 'EksSourceNamespacesList', ], ], ], 'EksSourceNamespacesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EksNamespace', ], 'max' => 10, 'min' => 1, ], 'EntityDescription' => [ 'type' => 'string', 'max' => 500, 'min' => 0, ], 'EntityId' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '\\S{1,255}', ], 'EntityLabel' => [ 'type' => 'string', 'max' => 60, 'min' => 2, 'pattern' => '[A-Za-z0-9][A-Za-z0-9 _\\-]{1,59}', ], 'EntityName' => [ 'type' => 'string', 'max' => 60, 'min' => 2, 'pattern' => '[A-Za-z0-9][A-Za-z0-9_\\-]{1,59}', ], 'EventActor' => [ 'type' => 'structure', 'required' => [ 'type', 'principalId', ], 'members' => [ 'type' => [ 'shape' => 'ActorType', ], 'principalId' => [ 'shape' => 'String', ], 'accountId' => [ 'shape' => 'String', ], 'userName' => [ 'shape' => 'String', ], ], ], 'FailedReportOutput' => [ 'type' => 'structure', 'required' => [ 'errorCode', ], 'members' => [ 'errorCode' => [ 'shape' => 'ReportGenerationErrorCode', ], 'errorMessage' => [ 'shape' => 'String', ], ], ], 'FailureCategory' => [ 'type' => 'string', 'enum' => [ 'SHARED_FATE', 'EXCESSIVE_LOAD', 'EXCESSIVE_LATENCY', 'MISCONFIGURATION_AND_BUGS', 'SINGLE_POINT_OF_FAILURE', ], ], 'Finding' => [ 'type' => 'structure', 'members' => [ 'findingId' => [ 'shape' => 'Uuid', ], 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'EntityDescription', ], 'failureCategory' => [ 'shape' => 'FailureCategory', ], 'status' => [ 'shape' => 'FindingStatus', ], 'reasoning' => [ 'shape' => 'String', ], 'comment' => [ 'shape' => 'FindingCommentString', ], 'severity' => [ 'shape' => 'FindingSeverity', ], 'serviceFunctions' => [ 'shape' => 'FunctionsList', ], 'policyComponent' => [ 'shape' => 'PolicyComponent', ], 'infrastructureAndCodeRecommendations' => [ 'shape' => 'InfrastructureAndCodeRecommendationsList', ], 'observabilityRecommendations' => [ 'shape' => 'ObservabilityRecommendationsList', ], 'testingRecommendations' => [ 'shape' => 'TestingRecommendationsList', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'FindingCommentString' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'FindingSeverity' => [ 'type' => 'string', 'enum' => [ 'LOW', 'MEDIUM', 'HIGH', ], ], 'FindingStatus' => [ 'type' => 'string', 'enum' => [ 'OPEN', 'RESOLVED', 'IRRELEVANT', ], ], 'FindingSummary' => [ 'type' => 'structure', 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'findingId' => [ 'shape' => 'Uuid', ], 'name' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'EntityDescription', ], 'failureCategory' => [ 'shape' => 'FailureCategory', ], 'severity' => [ 'shape' => 'FindingSeverity', ], 'status' => [ 'shape' => 'FindingStatus', ], 'policyComponent' => [ 'shape' => 'PolicyComponent', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'FindingsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FindingSummary', ], ], 'FunctionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EntityId', ], 'max' => 20, 'min' => 0, ], 'GetFailureModeFindingRequest' => [ 'type' => 'structure', 'required' => [ 'findingId', 'serviceArn', ], 'members' => [ 'findingId' => [ 'shape' => 'Uuid', 'location' => 'querystring', 'locationName' => 'findingId', ], 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], ], ], 'GetFailureModeFindingResponse' => [ 'type' => 'structure', 'members' => [ 'finding' => [ 'shape' => 'Finding', ], ], ], 'GetPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyArn', ], 'members' => [ 'policyArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'policyArn', ], ], ], 'GetPolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policy', ], 'members' => [ 'policy' => [ 'shape' => 'Policy', ], ], ], 'GetServiceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], ], ], 'GetServiceResponse' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'GetSystemRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'systemArn', ], ], ], 'GetSystemResponse' => [ 'type' => 'structure', 'required' => [ 'system', ], 'members' => [ 'system' => [ 'shape' => 'System', ], ], ], 'GetUserJourneyRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', 'userJourneyId', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'systemArn', ], 'userJourneyId' => [ 'shape' => 'UserJourneyId', 'location' => 'querystring', 'locationName' => 'userJourneyId', ], ], ], 'GetUserJourneyResponse' => [ 'type' => 'structure', 'required' => [ 'userJourney', ], 'members' => [ 'userJourney' => [ 'shape' => 'UserJourney', ], ], ], 'IamRoleArn' => [ 'type' => 'string', 'min' => 32, 'pattern' => 'arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):iam::[0-9]{12}:role/(([^/][!-~]+/){1,511})?[A-Za-z0-9_+=,.@-]{1,64}', ], 'IamRoleName' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[A-Za-z0-9_+=,.@\\-]{1,64}', ], 'ImportAppRequest' => [ 'type' => 'structure', 'required' => [ 'v1AppArn', ], 'members' => [ 'v1AppArn' => [ 'shape' => 'Arn', ], 'policyArn' => [ 'shape' => 'Arn', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'skipManuallyAddedResources' => [ 'shape' => 'Boolean', ], 'associatedSystems' => [ 'shape' => 'AssociatedSystemList', ], 'tags' => [ 'shape' => 'TagMap', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'ImportAppResponse' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'ImportPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'v1PolicyArn', ], 'members' => [ 'v1PolicyArn' => [ 'shape' => 'Arn', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'availabilitySlo' => [ 'shape' => 'AvailabilitySlo', ], 'multiAzDisasterRecoveryApproach' => [ 'shape' => 'MultiAzDisasterRecoveryApproach', ], 'multiRegionDisasterRecoveryApproach' => [ 'shape' => 'MultiRegionDisasterRecoveryApproach', ], 'tags' => [ 'shape' => 'TagMap', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'ImportPolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policy', ], 'members' => [ 'policy' => [ 'shape' => 'Policy', ], ], ], 'InfrastructureAndCodeRecommendation' => [ 'type' => 'structure', 'members' => [ 'suggestedChanges' => [ 'shape' => 'SuggestedChangesList', ], ], ], 'InfrastructureAndCodeRecommendationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InfrastructureAndCodeRecommendation', ], 'max' => 5, 'min' => 0, ], 'InputSource' => [ 'type' => 'structure', 'required' => [ 'identifier', 'type', ], 'members' => [ 'identifier' => [ 'shape' => 'String', ], 'type' => [ 'shape' => 'InputSourceType', ], ], ], 'InputSourceId' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '\\S{1,255}', ], 'InputSourceSummary' => [ 'type' => 'structure', 'required' => [ 'inputSourceId', ], 'members' => [ 'inputSourceId' => [ 'shape' => 'InputSourceId', ], 'type' => [ 'shape' => 'InputSourceType', ], 'resourceTags' => [ 'shape' => 'ResourceTagList', ], 'cfnStackArn' => [ 'shape' => 'Arn', ], 'tfStateFileUrl' => [ 'shape' => 'S3Url', ], 'eks' => [ 'shape' => 'EksSource', ], 'designFileS3Url' => [ 'shape' => 'S3Url', ], 'createdAt' => [ 'shape' => 'Timestamp', ], ], ], 'InputSourceSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InputSourceSummary', ], ], 'InputSourceType' => [ 'type' => 'string', 'enum' => [ 'CFN_STACK', 'TAGS', 'EKS', 'TERRAFORM', 'DESIGN_FILE', 'MONITORING', ], ], 'Integer' => [ 'type' => 'integer', 'box' => true, ], 'InternalServerException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'KmsKeyId' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'ListAssertionsRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'source' => [ 'shape' => 'AssertionSource', 'location' => 'querystring', 'locationName' => 'source', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListAssertionsResponse' => [ 'type' => 'structure', 'required' => [ 'assertions', ], 'members' => [ 'assertions' => [ 'shape' => 'AssertionList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListDependenciesRequest' => [ 'type' => 'structure', 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'queryRangeStartTime' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'queryRangeStartTime', ], 'queryRangeEndTime' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'queryRangeEndTime', ], 'queryRangeGranularity' => [ 'shape' => 'QueryGranularity', 'location' => 'querystring', 'locationName' => 'queryRangeGranularity', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListDependenciesResponse' => [ 'type' => 'structure', 'required' => [ 'dependencySummaries', ], 'members' => [ 'dependencySummaries' => [ 'shape' => 'DependencySummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListFailureModeAssessmentsRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'assessmentStatuses' => [ 'shape' => 'AssessmentStatusList', 'location' => 'querystring', 'locationName' => 'assessmentStatuses', ], 'startedAfter' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'startedAfter', ], 'endedBefore' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'endedBefore', ], 'sortBy' => [ 'shape' => 'AssessmentSortField', 'location' => 'querystring', 'locationName' => 'sortBy', ], 'sortOrder' => [ 'shape' => 'SortOrder', 'location' => 'querystring', 'locationName' => 'sortOrder', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListFailureModeAssessmentsResponse' => [ 'type' => 'structure', 'required' => [ 'assessmentSummaries', ], 'members' => [ 'assessmentSummaries' => [ 'shape' => 'AssessmentSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListFailureModeFindingsRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'severity' => [ 'shape' => 'FindingSeverity', 'location' => 'querystring', 'locationName' => 'severity', ], 'failureCategory' => [ 'shape' => 'FailureCategory', 'location' => 'querystring', 'locationName' => 'failureCategory', ], 'status' => [ 'shape' => 'FindingStatus', 'location' => 'querystring', 'locationName' => 'status', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListFailureModeFindingsResponse' => [ 'type' => 'structure', 'required' => [ 'findingsSummary', ], 'members' => [ 'findingsSummary' => [ 'shape' => 'FindingsList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListInputSourcesRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'type' => [ 'shape' => 'InputSourceType', 'location' => 'querystring', 'locationName' => 'type', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListInputSourcesResponse' => [ 'type' => 'structure', 'required' => [ 'inputSourceSummaries', ], 'members' => [ 'inputSourceSummaries' => [ 'shape' => 'InputSourceSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListPoliciesRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListPoliciesResponse' => [ 'type' => 'structure', 'required' => [ 'policySummaries', ], 'members' => [ 'policySummaries' => [ 'shape' => 'PolicySummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListReportsRequest' => [ 'type' => 'structure', 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'reportType' => [ 'shape' => 'ReportType', 'location' => 'querystring', 'locationName' => 'reportType', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListReportsResponse' => [ 'type' => 'structure', 'required' => [ 'reportGenerationResults', ], 'members' => [ 'reportGenerationResults' => [ 'shape' => 'ReportGenerationResultList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListResourcesRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'serviceFunctionId' => [ 'shape' => 'EntityId', 'location' => 'querystring', 'locationName' => 'serviceFunctionId', ], 'awsRegion' => [ 'shape' => 'AwsRegion', 'location' => 'querystring', 'locationName' => 'awsRegion', ], 'resourceTypes' => [ 'shape' => 'ResourceTypeFilterList', 'location' => 'querystring', 'locationName' => 'resourceTypes', ], 'billable' => [ 'shape' => 'Boolean', 'location' => 'querystring', 'locationName' => 'billable', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListResourcesResponse' => [ 'type' => 'structure', 'members' => [ 'serviceFunctionId' => [ 'shape' => 'EntityId', ], 'serviceResources' => [ 'shape' => 'ServiceResourceList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListServiceEventsRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'eventTypes' => [ 'shape' => 'ServiceEventTypeList', 'location' => 'querystring', 'locationName' => 'eventTypes', ], 'startTime' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'startTime', ], 'endTime' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'endTime', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListServiceEventsResponse' => [ 'type' => 'structure', 'required' => [ 'events', ], 'members' => [ 'events' => [ 'shape' => 'ServiceEventList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListServiceFunctionsRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListServiceFunctionsResponse' => [ 'type' => 'structure', 'required' => [ 'serviceFunctions', ], 'members' => [ 'serviceFunctions' => [ 'shape' => 'ServiceFunctionList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListServiceTopologyEdgesRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'serviceArn', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListServiceTopologyEdgesResponse' => [ 'type' => 'structure', 'members' => [ 'serviceTopologyEdgeSummaries' => [ 'shape' => 'ServiceTopologyEdgeSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListServicesRequest' => [ 'type' => 'structure', 'members' => [ 'systemArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'systemArn', ], 'userJourneyId' => [ 'shape' => 'UserJourneyId', 'location' => 'querystring', 'locationName' => 'userJourneyId', ], 'ouId' => [ 'shape' => 'OuId', 'location' => 'querystring', 'locationName' => 'ouId', ], 'accountId' => [ 'shape' => 'AccountId', 'location' => 'querystring', 'locationName' => 'accountId', ], 'assessmentStatus' => [ 'shape' => 'AssessmentStatus', 'location' => 'querystring', 'locationName' => 'assessmentStatus', ], 'policyArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'policyArn', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListServicesResponse' => [ 'type' => 'structure', 'required' => [ 'serviceSummaries', ], 'members' => [ 'serviceSummaries' => [ 'shape' => 'ServiceSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListSystemEventsRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'systemArn', ], 'eventTypes' => [ 'shape' => 'SystemEventTypeList', 'location' => 'querystring', 'locationName' => 'eventTypes', ], 'startTime' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'startTime', ], 'endTime' => [ 'shape' => 'Timestamp', 'location' => 'querystring', 'locationName' => 'endTime', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListSystemEventsResponse' => [ 'type' => 'structure', 'required' => [ 'events', ], 'members' => [ 'events' => [ 'shape' => 'SystemEventList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListSystemsRequest' => [ 'type' => 'structure', 'members' => [ 'ouId' => [ 'shape' => 'OuId', 'location' => 'querystring', 'locationName' => 'ouId', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListSystemsResponse' => [ 'type' => 'structure', 'required' => [ 'systemSummaries', ], 'members' => [ 'systemSummaries' => [ 'shape' => 'SystemSummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', 'location' => 'uri', 'locationName' => 'resourceArn', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'TagMap', ], ], ], 'ListUserJourneysRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', 'location' => 'querystring', 'locationName' => 'systemArn', ], 'maxResults' => [ 'shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListUserJourneysResponse' => [ 'type' => 'structure', 'required' => [ 'userJourneySummaries', ], 'members' => [ 'userJourneySummaries' => [ 'shape' => 'UserJourneySummaryList', ], 'nextToken' => [ 'shape' => 'NextToken', ], ], ], 'Long' => [ 'type' => 'long', 'box' => true, ], 'LongDescription' => [ 'type' => 'string', 'max' => 615, 'min' => 0, ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'MultiAzDisasterRecoveryApproach' => [ 'type' => 'string', 'enum' => [ 'ACTIVE_ACTIVE', 'HOT_STANDBY', 'WARM_STANDBY', 'PILOT_LIGHT', 'BACKUP_AND_RESTORE', ], ], 'MultiAzTargets' => [ 'type' => 'structure', 'members' => [ 'rtoInMinutes' => [ 'shape' => 'MultiAzTargetsRtoInMinutesInteger', ], 'rpoInMinutes' => [ 'shape' => 'MultiAzTargetsRpoInMinutesInteger', ], 'disasterRecoveryApproach' => [ 'shape' => 'MultiAzDisasterRecoveryApproach', ], ], ], 'MultiAzTargetsRpoInMinutesInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'MultiAzTargetsRtoInMinutesInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'MultiRegionDisasterRecoveryApproach' => [ 'type' => 'string', 'enum' => [ 'ACTIVE_ACTIVE', 'HOT_STANDBY', 'WARM_STANDBY', 'PILOT_LIGHT', 'BACKUP_AND_RESTORE', ], ], 'MultiRegionTargets' => [ 'type' => 'structure', 'members' => [ 'rtoInMinutes' => [ 'shape' => 'MultiRegionTargetsRtoInMinutesInteger', ], 'rpoInMinutes' => [ 'shape' => 'MultiRegionTargetsRpoInMinutesInteger', ], 'disasterRecoveryApproach' => [ 'shape' => 'MultiRegionDisasterRecoveryApproach', ], ], ], 'MultiRegionTargetsRpoInMinutesInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'MultiRegionTargetsRtoInMinutesInteger' => [ 'type' => 'integer', 'box' => true, 'min' => 0, ], 'NextToken' => [ 'type' => 'string', 'max' => 2000, 'min' => 1, 'pattern' => '\\S{1,2000}', ], 'ObservabilityRecommendation' => [ 'type' => 'structure', 'members' => [ 'suggestedChanges' => [ 'shape' => 'SuggestedChangesList', ], ], ], 'ObservabilityRecommendationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ObservabilityRecommendation', ], 'max' => 5, 'min' => 0, ], 'OrganizationId' => [ 'type' => 'string', 'max' => 34, 'min' => 12, 'pattern' => 'o-[a-z0-9]{10,32}', ], 'OuId' => [ 'type' => 'string', 'max' => 68, 'min' => 16, 'pattern' => 'ou-[a-z0-9]{4,32}-[a-z0-9]{8,32}', ], 'PermissionModel' => [ 'type' => 'structure', 'required' => [ 'invokerRoleName', ], 'members' => [ 'invokerRoleName' => [ 'shape' => 'IamRoleName', ], 'crossAccountRoles' => [ 'shape' => 'CrossAccountRoleList', ], ], ], 'Policy' => [ 'type' => 'structure', 'required' => [ 'policyArn', 'name', ], 'members' => [ 'policyArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'EntityName', ], 'description' => [ 'shape' => 'LongDescription', ], 'availabilitySlo' => [ 'shape' => 'AvailabilitySlo', ], 'multiAz' => [ 'shape' => 'MultiAzTargets', ], 'multiRegion' => [ 'shape' => 'MultiRegionTargets', ], 'dataRecovery' => [ 'shape' => 'DataRecoveryTargets', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'tags' => [ 'shape' => 'TagMap', ], 'associatedServiceCount' => [ 'shape' => 'Integer', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'PolicyComponent' => [ 'type' => 'string', 'enum' => [ 'AVAILABILITY_SLO', 'MULTI_AZ_DISASTER_RECOVERY', 'MULTI_REGION_DISASTER_RECOVERY', 'DATA_RECOVERY', ], ], 'PolicySummary' => [ 'type' => 'structure', 'required' => [ 'policyArn', 'name', ], 'members' => [ 'policyArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'EntityName', ], 'availabilitySlo' => [ 'shape' => 'AvailabilitySlo', ], 'multiAz' => [ 'shape' => 'MultiAzTargets', ], 'multiRegion' => [ 'shape' => 'MultiRegionTargets', ], 'dataRecovery' => [ 'shape' => 'DataRecoveryTargets', ], 'associatedServiceCount' => [ 'shape' => 'Integer', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'PolicySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicySummary', ], ], 'PolicyValueSource' => [ 'type' => 'string', 'enum' => [ 'SELF', 'CROSS_ACCOUNT', ], ], 'QueryDataPoint' => [ 'type' => 'structure', 'required' => [ 'timestamp', 'queryCount', ], 'members' => [ 'timestamp' => [ 'shape' => 'Timestamp', ], 'queryCount' => [ 'shape' => 'Long', ], ], ], 'QueryDataPointList' => [ 'type' => 'list', 'member' => [ 'shape' => 'QueryDataPoint', ], 'max' => 24, 'min' => 7, ], 'QueryGranularity' => [ 'type' => 'string', 'enum' => [ 'HOURLY', 'DAILY', ], ], 'QueryRange' => [ 'type' => 'structure', 'required' => [ 'startTime', 'endTime', 'granularity', 'dataPoints', ], 'members' => [ 'startTime' => [ 'shape' => 'Timestamp', ], 'endTime' => [ 'shape' => 'Timestamp', ], 'granularity' => [ 'shape' => 'QueryGranularity', ], 'dataPoints' => [ 'shape' => 'QueryDataPointList', ], ], ], 'RegionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AwsRegion', ], 'max' => 5, 'min' => 1, ], 'ReportGenerationErrorCode' => [ 'type' => 'string', 'enum' => [ 'INSUFFICIENT_PERMISSIONS', 'CONFIGURATION_ERROR', 'INTERNAL_ERROR', ], ], 'ReportGenerationResult' => [ 'type' => 'structure', 'required' => [ 'reportType', 'status', ], 'members' => [ 'reportType' => [ 'shape' => 'ReportType', ], 'status' => [ 'shape' => 'ReportGenerationStatus', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'assessmentId' => [ 'shape' => 'Uuid', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'reportOutput' => [ 'shape' => 'ReportOutput', ], ], ], 'ReportGenerationResultList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReportGenerationResult', ], ], 'ReportGenerationStatus' => [ 'type' => 'string', 'enum' => [ 'PENDING', 'SUCCEEDED', 'FAILED', ], ], 'ReportOutput' => [ 'type' => 'structure', 'members' => [ 's3ReportOutput' => [ 'shape' => 'S3ReportOutput', ], 'failedReportOutput' => [ 'shape' => 'FailedReportOutput', ], ], 'union' => true, ], 'ReportOutputConfiguration' => [ 'type' => 'structure', 'members' => [ 's3' => [ 'shape' => 'S3ReportOutputConfiguration', ], ], 'union' => true, ], 'ReportOutputConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReportOutputConfiguration', ], 'max' => 1, 'min' => 1, ], 'ReportType' => [ 'type' => 'string', 'enum' => [ 'FAILURE_MODE', ], ], 'Resource' => [ 'type' => 'structure', 'required' => [ 'identifier', ], 'members' => [ 'identifier' => [ 'shape' => 'String', ], 'awsRegion' => [ 'shape' => 'AwsRegion', ], 'awsAccountId' => [ 'shape' => 'AwsAccountId', ], 'resourceType' => [ 'shape' => 'String', ], ], ], 'ResourceConfiguration' => [ 'type' => 'structure', 'members' => [ 'resourceTags' => [ 'shape' => 'ResourceTagList', ], 'cfnStackArn' => [ 'shape' => 'Arn', ], 'tfStateFileUrl' => [ 'shape' => 'S3Url', ], 'eks' => [ 'shape' => 'EksSource', ], 'designFileS3Url' => [ 'shape' => 'S3Url', ], ], 'union' => true, ], 'ResourceDiscoveryErrorCode' => [ 'type' => 'string', 'enum' => [ 'INVALID_PERMISSIONS', 'STACK_NOT_FOUND', 'CLUSTER_NOT_FOUND', 'STATE_FILE_NOT_FOUND', 'ACCESS_DENIED', 'UNSUPPORTED_CLUSTER', 'INTERNAL_ERROR', ], ], 'ResourceDiscoveryRunStatus' => [ 'type' => 'string', 'enum' => [ 'RUNNING', 'SUCCEEDED', 'FAILED', 'COMPLETED_WITH_FAILURES', 'NOT_STARTED', ], ], 'ResourceDiscoveryStatus' => [ 'type' => 'structure', 'members' => [ 'status' => [ 'shape' => 'ResourceDiscoveryRunStatus', ], 'lastRunAt' => [ 'shape' => 'Timestamp', ], 'errorCode' => [ 'shape' => 'ResourceDiscoveryErrorCode', ], 'errorMessage' => [ 'shape' => 'String', ], ], ], 'ResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], 'max' => 100, 'min' => 1, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], 'resourceId' => [ 'shape' => 'String', ], 'resourceType' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'ResourceTag' => [ 'type' => 'structure', 'required' => [ 'key', 'values', ], 'members' => [ 'key' => [ 'shape' => 'TagKey', ], 'values' => [ 'shape' => 'ResourceTagValuesList', ], ], ], 'ResourceTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceTag', ], 'max' => 10, 'min' => 1, ], 'ResourceTagValuesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagValue', ], 'max' => 10, 'min' => 0, ], 'ResourceTypeFilter' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'ResourceTypeFilterList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceTypeFilter', ], 'max' => 5, 'min' => 1, ], 'ResourceTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'S3BucketPath' => [ 'type' => 'string', 'max' => 512, 'min' => 3, 'pattern' => '(s3://)?[a-z0-9][a-z0-9.-]{1,61}[a-z0-9](/.*)?', ], 'S3ReportOutput' => [ 'type' => 'structure', 'required' => [ 's3ObjectKey', ], 'members' => [ 's3ObjectKey' => [ 'shape' => 'String', ], ], ], 'S3ReportOutputConfiguration' => [ 'type' => 'structure', 'required' => [ 'bucketPath', 'bucketOwner', ], 'members' => [ 'bucketPath' => [ 'shape' => 'S3BucketPath', ], 'bucketOwner' => [ 'shape' => 'AwsAccountId', ], ], ], 'S3Url' => [ 'type' => 'string', 'max' => 2000, 'min' => 1, 'pattern' => '((https://([^/]+)\\.s3[^/]*\\.[^/]+)|(s3://([^/]+)))/\\S{1,2000}', ], 'Service' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'name', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'EntityName', ], 'description' => [ 'shape' => 'LongDescription', ], 'associatedSystems' => [ 'shape' => 'AssociatedSystemList', ], 'policyArn' => [ 'shape' => 'Arn', ], 'regions' => [ 'shape' => 'RegionList', ], 'permissionModel' => [ 'shape' => 'PermissionModel', ], 'dependencyDiscovery' => [ 'shape' => 'DependencyDiscoveryConfig', ], 'effectivePolicyValues' => [ 'shape' => 'EffectivePolicyValues', ], 'achievability' => [ 'shape' => 'Achievability', ], 'reportConfiguration' => [ 'shape' => 'ServiceReportConfiguration', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'tags' => [ 'shape' => 'TagMap', ], 'estimatedAssessmentCost' => [ 'shape' => 'AssessmentCost', ], 'resourceDiscovery' => [ 'shape' => 'ResourceDiscoveryStatus', ], 'assessmentStatus' => [ 'shape' => 'AssessmentStatus', ], 'rerunAssessment' => [ 'shape' => 'Boolean', ], 'openFindingsCount' => [ 'shape' => 'Integer', ], 'resolvedFindingsCount' => [ 'shape' => 'Integer', ], 'organizationId' => [ 'shape' => 'OrganizationId', ], 'ouId' => [ 'shape' => 'OuId', ], 'accountId' => [ 'shape' => 'AccountId', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ServiceAchievabilityUpdatedMetadata' => [ 'type' => 'structure', 'members' => [ 'assessmentId' => [ 'shape' => 'String', ], 'availabilitySlo' => [ 'shape' => 'String', ], 'multiAzRtoRpo' => [ 'shape' => 'String', ], 'multiRegionRtoRpo' => [ 'shape' => 'String', ], ], ], 'ServiceCreatedMetadata' => [ 'type' => 'structure', 'members' => [], ], 'ServiceDeletedMetadata' => [ 'type' => 'structure', 'members' => [], ], 'ServiceEvent' => [ 'type' => 'structure', 'required' => [ 'eventId', 'timestamp', 'eventType', 'serviceArn', 'actor', 'eventDetails', ], 'members' => [ 'eventId' => [ 'shape' => 'Uuid', ], 'timestamp' => [ 'shape' => 'Timestamp', ], 'eventType' => [ 'shape' => 'ServiceEventType', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'actor' => [ 'shape' => 'EventActor', ], 'eventDetails' => [ 'shape' => 'ServiceEventDetails', ], ], ], 'ServiceEventDetails' => [ 'type' => 'structure', 'required' => [ 'title', 'description', ], 'members' => [ 'title' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'eventMetadata' => [ 'shape' => 'ServiceEventMetadata', ], ], ], 'ServiceEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceEvent', ], ], 'ServiceEventMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceCreated' => [ 'shape' => 'ServiceCreatedMetadata', ], 'serviceDeleted' => [ 'shape' => 'ServiceDeletedMetadata', ], 'serviceSystemAssociated' => [ 'shape' => 'ServiceSystemAssociatedMetadata', ], 'serviceSystemDisassociated' => [ 'shape' => 'ServiceSystemDisassociatedMetadata', ], 'serviceResourcesAssociated' => [ 'shape' => 'ServiceResourcesAssociatedMetadata', ], 'serviceResourcesDisassociated' => [ 'shape' => 'ServiceResourcesDisassociatedMetadata', ], 'serviceWorkflowUpdated' => [ 'shape' => 'ServiceWorkflowUpdatedMetadata', ], 'serviceInputSourcesUpdated' => [ 'shape' => 'ServiceInputSourcesUpdatedMetadata', ], 'servicePolicyAssociated' => [ 'shape' => 'ServicePolicyAssociatedMetadata', ], 'servicePolicyDisassociated' => [ 'shape' => 'ServicePolicyDisassociatedMetadata', ], 'serviceFunctionCreated' => [ 'shape' => 'ServiceFunctionCreatedMetadata', ], 'serviceFunctionUpdated' => [ 'shape' => 'ServiceFunctionUpdatedMetadata', ], 'serviceFunctionDeleted' => [ 'shape' => 'ServiceFunctionDeletedMetadata', ], 'serviceFunctionResourcesAdded' => [ 'shape' => 'ServiceFunctionResourcesAddedMetadata', ], 'serviceFunctionResourcesRemoved' => [ 'shape' => 'ServiceFunctionResourcesRemovedMetadata', ], 'serviceAchievabilityUpdated' => [ 'shape' => 'ServiceAchievabilityUpdatedMetadata', ], 'assertionCreated' => [ 'shape' => 'AssertionCreatedMetadata', ], 'assertionUpdated' => [ 'shape' => 'AssertionUpdatedMetadata', ], 'assertionDeleted' => [ 'shape' => 'AssertionDeletedMetadata', ], ], 'union' => true, ], 'ServiceEventType' => [ 'type' => 'string', 'enum' => [ 'SERVICE_CREATED', 'SERVICE_DELETED', 'SERVICE_SYSTEM_ASSOCIATED', 'SERVICE_SYSTEM_DISASSOCIATED', 'SERVICE_RESOURCES_ASSOCIATED', 'SERVICE_RESOURCES_DISASSOCIATED', 'SERVICE_WORKFLOW_UPDATED', 'SERVICE_INPUT_SOURCES_UPDATED', 'SERVICE_POLICY_ASSOCIATED', 'SERVICE_POLICY_DISASSOCIATED', 'SERVICE_FUNCTION_CREATED', 'SERVICE_FUNCTION_UPDATED', 'SERVICE_FUNCTION_DELETED', 'SERVICE_FUNCTION_RESOURCES_ADDED', 'SERVICE_FUNCTION_RESOURCES_REMOVED', 'SERVICE_ACHIEVABILITY_UPDATED', 'ASSERTION_CREATED', 'ASSERTION_UPDATED', 'ASSERTION_DELETED', ], ], 'ServiceEventTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceEventType', ], ], 'ServiceFunction' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'serviceFunctionId', 'name', 'criticality', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'serviceFunctionId' => [ 'shape' => 'EntityId', ], 'name' => [ 'shape' => 'EntityLabel', ], 'description' => [ 'shape' => 'EntityDescription', ], 'criticality' => [ 'shape' => 'ServiceFunctionCriticality', ], 'resourceCount' => [ 'shape' => 'Integer', ], 'source' => [ 'shape' => 'ServiceFunctionSource', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ServiceFunctionCreatedMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceFunctionId' => [ 'shape' => 'String', ], 'serviceFunctionName' => [ 'shape' => 'String', ], ], ], 'ServiceFunctionCriticality' => [ 'type' => 'string', 'enum' => [ 'PRIMARY', 'SUPPLEMENTAL', ], ], 'ServiceFunctionDeletedMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceFunctionId' => [ 'shape' => 'String', ], 'serviceFunctionName' => [ 'shape' => 'String', ], ], ], 'ServiceFunctionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceFunction', ], ], 'ServiceFunctionResourcesAddedMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceFunctionId' => [ 'shape' => 'String', ], 'serviceFunctionName' => [ 'shape' => 'String', ], 'resourcesAdded' => [ 'shape' => 'ArnList', ], ], ], 'ServiceFunctionResourcesRemovedMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceFunctionId' => [ 'shape' => 'String', ], 'serviceFunctionName' => [ 'shape' => 'String', ], 'resourcesRemoved' => [ 'shape' => 'ArnList', ], ], ], 'ServiceFunctionSource' => [ 'type' => 'string', 'enum' => [ 'AI_GENERATED', 'USER', ], ], 'ServiceFunctionUpdatedMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceFunctionId' => [ 'shape' => 'String', ], 'serviceFunctionName' => [ 'shape' => 'String', ], 'resourcesAdded' => [ 'shape' => 'ArnList', ], 'resourcesRemoved' => [ 'shape' => 'ArnList', ], ], ], 'ServiceInputSourcesUpdatedMetadata' => [ 'type' => 'structure', 'members' => [], ], 'ServicePolicyAssociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'policyName' => [ 'shape' => 'String', ], 'policyArn' => [ 'shape' => 'Arn', ], ], ], 'ServicePolicyDisassociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'policyName' => [ 'shape' => 'String', ], 'policyArn' => [ 'shape' => 'Arn', ], ], ], 'ServiceQuotaExceededException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 402, 'senderFault' => true, ], 'exception' => true, ], 'ServiceReference' => [ 'type' => 'structure', 'members' => [ 'serviceId' => [ 'shape' => 'String', ], 'serviceName' => [ 'shape' => 'String', ], ], ], 'ServiceReferenceChanges' => [ 'type' => 'structure', 'members' => [ 'added' => [ 'shape' => 'ServiceReferenceList', ], 'removed' => [ 'shape' => 'ServiceReferenceList', ], ], ], 'ServiceReferenceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceReference', ], ], 'ServiceReportConfiguration' => [ 'type' => 'structure', 'required' => [ 'reportOutputs', ], 'members' => [ 'reportOutputs' => [ 'shape' => 'ReportOutputConfigurationList', ], ], ], 'ServiceResource' => [ 'type' => 'structure', 'required' => [ 'resourceIdentifier', 'resource', ], 'members' => [ 'resourceIdentifier' => [ 'shape' => 'String', ], 'inputSource' => [ 'shape' => 'InputSource', ], 'resource' => [ 'shape' => 'Resource', ], ], ], 'ServiceResourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceResource', ], ], 'ServiceResourcesAssociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'resourceCount' => [ 'shape' => 'Integer', ], 'resourceTypes' => [ 'shape' => 'ResourceTypeList', ], ], ], 'ServiceResourcesDisassociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'resourceCount' => [ 'shape' => 'Integer', ], 'resourceTypes' => [ 'shape' => 'ResourceTypeList', ], ], ], 'ServiceSummary' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'name', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'name' => [ 'shape' => 'EntityName', ], 'associatedSystems' => [ 'shape' => 'AssociatedSystemList', ], 'regions' => [ 'shape' => 'RegionList', ], 'policyArn' => [ 'shape' => 'Arn', ], 'assessmentStatus' => [ 'shape' => 'AssessmentStatus', ], 'openFindingsCount' => [ 'shape' => 'Integer', ], 'resolvedFindingsCount' => [ 'shape' => 'Integer', ], 'dependencyDiscovery' => [ 'shape' => 'DependencyDiscoveryConfig', ], 'achievability' => [ 'shape' => 'Achievability', ], 'organizationId' => [ 'shape' => 'OrganizationId', ], 'ouId' => [ 'shape' => 'OuId', ], 'accountId' => [ 'shape' => 'AccountId', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'ServiceSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceSummary', ], ], 'ServiceSystemAssociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'systemName' => [ 'shape' => 'String', ], 'systemArn' => [ 'shape' => 'Arn', ], ], ], 'ServiceSystemDisassociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'systemId' => [ 'shape' => 'String', ], 'systemName' => [ 'shape' => 'String', ], 'systemArn' => [ 'shape' => 'Arn', ], ], ], 'ServiceTopologyEdgeSummary' => [ 'type' => 'structure', 'required' => [ 'sourceResourceIdentifier', 'destinationResourceIdentifier', ], 'members' => [ 'sourceResourceIdentifier' => [ 'shape' => 'String', ], 'destinationResourceIdentifier' => [ 'shape' => 'String', ], 'sourceRegion' => [ 'shape' => 'AwsRegion', ], 'destinationRegion' => [ 'shape' => 'AwsRegion', ], 'sourceAccount' => [ 'shape' => 'AwsAccountId', ], 'destinationAccount' => [ 'shape' => 'AwsAccountId', ], 'properties' => [ 'shape' => 'EdgePropertyList', ], ], ], 'ServiceTopologyEdgeSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServiceTopologyEdgeSummary', ], ], 'ServiceWorkflowUpdatedMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceFunctionId' => [ 'shape' => 'String', ], 'serviceFunctionName' => [ 'shape' => 'String', ], ], ], 'SloSource' => [ 'type' => 'structure', 'members' => [ 'value' => [ 'shape' => 'Double', ], 'policyName' => [ 'shape' => 'EntityName', ], 'source' => [ 'shape' => 'PolicyValueSource', ], ], ], 'SortOrder' => [ 'type' => 'string', 'enum' => [ 'ASC', 'DESC', ], ], 'StartFailureModeAssessmentRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'clientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, ], ], ], 'StartFailureModeAssessmentResponse' => [ 'type' => 'structure', 'members' => [ 'assessmentId' => [ 'shape' => 'Uuid', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'assessmentStatus' => [ 'shape' => 'AssessmentStatus', ], 'startedAt' => [ 'shape' => 'Timestamp', ], ], ], 'String' => [ 'type' => 'string', ], 'StringChange' => [ 'type' => 'structure', 'members' => [ 'oldValue' => [ 'shape' => 'String', ], 'newValue' => [ 'shape' => 'String', ], ], ], 'SuggestedChangesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EntityDescription', ], 'max' => 10, 'min' => 0, ], 'System' => [ 'type' => 'structure', 'required' => [ 'systemArn', 'systemId', 'name', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', ], 'systemId' => [ 'shape' => 'SystemId', ], 'name' => [ 'shape' => 'EntityName', ], 'description' => [ 'shape' => 'EntityDescription', ], 'sharingEnabled' => [ 'shape' => 'Boolean', ], 'tags' => [ 'shape' => 'TagMap', ], 'kmsKeyId' => [ 'shape' => 'KmsKeyId', ], 'organizationId' => [ 'shape' => 'OrganizationId', ], 'ouId' => [ 'shape' => 'OuId', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'SystemCreatedMetadata' => [ 'type' => 'structure', 'members' => [], ], 'SystemDeletedMetadata' => [ 'type' => 'structure', 'members' => [], ], 'SystemEvent' => [ 'type' => 'structure', 'required' => [ 'eventId', 'timestamp', 'eventType', 'systemArn', 'actor', 'eventDetails', ], 'members' => [ 'eventId' => [ 'shape' => 'Uuid', ], 'timestamp' => [ 'shape' => 'Timestamp', ], 'eventType' => [ 'shape' => 'SystemEventType', ], 'systemArn' => [ 'shape' => 'Arn', ], 'actor' => [ 'shape' => 'EventActor', ], 'eventDetails' => [ 'shape' => 'SystemEventDetails', ], ], ], 'SystemEventDetails' => [ 'type' => 'structure', 'required' => [ 'title', 'description', ], 'members' => [ 'title' => [ 'shape' => 'String', ], 'description' => [ 'shape' => 'String', ], 'eventMetadata' => [ 'shape' => 'SystemEventMetadata', ], ], ], 'SystemEventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SystemEvent', ], ], 'SystemEventMetadata' => [ 'type' => 'structure', 'members' => [ 'systemCreated' => [ 'shape' => 'SystemCreatedMetadata', ], 'systemDeleted' => [ 'shape' => 'SystemDeletedMetadata', ], 'systemUserJourneyCreated' => [ 'shape' => 'SystemUserJourneyCreatedMetadata', ], 'systemUserJourneyUpdated' => [ 'shape' => 'SystemUserJourneyUpdatedMetadata', ], 'systemUserJourneyDeleted' => [ 'shape' => 'SystemUserJourneyDeletedMetadata', ], 'systemServiceAssociated' => [ 'shape' => 'SystemServiceAssociatedMetadata', ], 'systemServiceDisassociated' => [ 'shape' => 'SystemServiceDisassociatedMetadata', ], 'systemPolicyAssociated' => [ 'shape' => 'SystemPolicyAssociatedMetadata', ], 'systemPolicyDisassociated' => [ 'shape' => 'SystemPolicyDisassociatedMetadata', ], ], 'union' => true, ], 'SystemEventType' => [ 'type' => 'string', 'enum' => [ 'SYSTEM_CREATED', 'SYSTEM_DELETED', 'SYSTEM_USER_JOURNEY_CREATED', 'SYSTEM_USER_JOURNEY_UPDATED', 'SYSTEM_USER_JOURNEY_DELETED', 'SYSTEM_SERVICE_ASSOCIATED', 'SYSTEM_SERVICE_DISASSOCIATED', 'SYSTEM_POLICY_ASSOCIATED', 'SYSTEM_POLICY_DISASSOCIATED', ], ], 'SystemEventTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SystemEventType', ], ], 'SystemId' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '\\S{1,255}', ], 'SystemPolicyAssociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'policyName' => [ 'shape' => 'String', ], 'policyArn' => [ 'shape' => 'Arn', ], ], ], 'SystemPolicyDisassociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'policyName' => [ 'shape' => 'String', ], 'policyArn' => [ 'shape' => 'Arn', ], ], ], 'SystemServiceAssociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceName' => [ 'shape' => 'String', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'userJourneys' => [ 'shape' => 'UserJourneyNameList', ], ], ], 'SystemServiceDisassociatedMetadata' => [ 'type' => 'structure', 'members' => [ 'serviceName' => [ 'shape' => 'String', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'userJourneysAffected' => [ 'shape' => 'UserJourneyNameList', ], 'comment' => [ 'shape' => 'String', ], ], ], 'SystemSummary' => [ 'type' => 'structure', 'required' => [ 'systemId', 'name', ], 'members' => [ 'systemId' => [ 'shape' => 'SystemId', ], 'name' => [ 'shape' => 'EntityName', ], 'systemArn' => [ 'shape' => 'Arn', ], 'userJourneysCount' => [ 'shape' => 'Integer', ], 'servicesCount' => [ 'shape' => 'Integer', ], 'organizationId' => [ 'shape' => 'OrganizationId', ], 'ouId' => [ 'shape' => 'OuId', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'SystemSummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SystemSummary', ], ], 'SystemUserJourneyCreatedMetadata' => [ 'type' => 'structure', 'members' => [ 'userJourneyName' => [ 'shape' => 'String', ], 'associatedServices' => [ 'shape' => 'ServiceReferenceList', ], ], ], 'SystemUserJourneyDeletedMetadata' => [ 'type' => 'structure', 'members' => [ 'userJourneyName' => [ 'shape' => 'String', ], 'associatedServicesAtDeletion' => [ 'shape' => 'ServiceReferenceList', ], ], ], 'SystemUserJourneyUpdatedMetadata' => [ 'type' => 'structure', 'members' => [ 'userJourneyName' => [ 'shape' => 'String', ], 'changes' => [ 'shape' => 'UserJourneyChanges', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[^\\x00-\\x1f\\x22]+', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 1, 'sensitive' => true, ], 'TagMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'max' => 50, 'min' => 1, 'sensitive' => true, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '[^\\x00-\\x1f\\x22]*', ], 'TargetSource' => [ 'type' => 'structure', 'members' => [ 'value' => [ 'shape' => 'Integer', ], 'policyName' => [ 'shape' => 'EntityName', ], 'source' => [ 'shape' => 'PolicyValueSource', ], ], ], 'TestingRecommendation' => [ 'type' => 'structure', 'members' => [ 'suggestedChanges' => [ 'shape' => 'SuggestedChangesList', ], ], ], 'TestingRecommendationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TestingRecommendation', ], 'max' => 5, 'min' => 0, ], 'ThrottlingException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], 'retryAfterSeconds' => [ 'shape' => 'Integer', ], ], 'error' => [ 'httpStatusCode' => 429, 'senderFault' => true, ], 'exception' => true, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TopologyType' => [ 'type' => 'string', 'enum' => [ 'CONTAINMENT', 'DATA_FLOW', 'OBSERVABILITY', 'PERMISSIONS', ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'Arn', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'tagKeys' => [ 'shape' => 'TagKeyList', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateAssertionRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'assertionId', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'assertionId' => [ 'shape' => 'Uuid', ], 'text' => [ 'shape' => 'AssertionText', ], ], ], 'UpdateAssertionResponse' => [ 'type' => 'structure', 'required' => [ 'assertion', ], 'members' => [ 'assertion' => [ 'shape' => 'Assertion', ], ], ], 'UpdateDependencyRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'dependencyId', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'dependencyId' => [ 'shape' => 'Uuid', ], 'criticality' => [ 'shape' => 'DependencyCriticality', ], 'comment' => [ 'shape' => 'String', ], ], ], 'UpdateDependencyResponse' => [ 'type' => 'structure', 'required' => [ 'dependencyId', 'dependencyName', 'location', 'criticality', 'updatedAt', ], 'members' => [ 'dependencyId' => [ 'shape' => 'Uuid', ], 'dependencyName' => [ 'shape' => 'String', ], 'location' => [ 'shape' => 'String', ], 'criticality' => [ 'shape' => 'DependencyCriticality', ], 'comment' => [ 'shape' => 'String', ], 'provider' => [ 'shape' => 'String', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'UpdateFailureModeFindingRequest' => [ 'type' => 'structure', 'required' => [ 'findingId', 'status', 'serviceArn', ], 'members' => [ 'findingId' => [ 'shape' => 'Uuid', ], 'status' => [ 'shape' => 'FindingStatus', ], 'serviceArn' => [ 'shape' => 'Arn', ], 'comment' => [ 'shape' => 'UpdateFailureModeFindingRequestCommentString', ], ], ], 'UpdateFailureModeFindingRequestCommentString' => [ 'type' => 'string', 'max' => 2048, 'min' => 0, ], 'UpdateFailureModeFindingResponse' => [ 'type' => 'structure', 'members' => [ 'finding' => [ 'shape' => 'Finding', ], ], ], 'UpdatePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'policyArn', ], 'members' => [ 'policyArn' => [ 'shape' => 'Arn', ], 'description' => [ 'shape' => 'LongDescription', ], 'availabilitySlo' => [ 'shape' => 'AvailabilitySlo', ], 'multiAz' => [ 'shape' => 'MultiAzTargets', ], 'multiRegion' => [ 'shape' => 'MultiRegionTargets', ], 'dataRecovery' => [ 'shape' => 'DataRecoveryTargets', ], ], ], 'UpdatePolicyResponse' => [ 'type' => 'structure', 'required' => [ 'policy', ], 'members' => [ 'policy' => [ 'shape' => 'Policy', ], ], ], 'UpdateServiceFunctionRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', 'serviceFunctionId', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'serviceFunctionId' => [ 'shape' => 'EntityId', ], 'name' => [ 'shape' => 'EntityLabel', ], 'description' => [ 'shape' => 'EntityDescription', ], 'criticality' => [ 'shape' => 'ServiceFunctionCriticality', ], ], ], 'UpdateServiceFunctionResponse' => [ 'type' => 'structure', 'required' => [ 'serviceFunction', ], 'members' => [ 'serviceFunction' => [ 'shape' => 'ServiceFunction', ], ], ], 'UpdateServiceRequest' => [ 'type' => 'structure', 'required' => [ 'serviceArn', ], 'members' => [ 'serviceArn' => [ 'shape' => 'Arn', ], 'description' => [ 'shape' => 'LongDescription', ], 'associatedSystems' => [ 'shape' => 'AssociatedSystemList', ], 'policyArn' => [ 'shape' => 'Arn', ], 'regions' => [ 'shape' => 'RegionList', ], 'permissionModel' => [ 'shape' => 'PermissionModel', ], 'dependencyDiscovery' => [ 'shape' => 'DependencyDiscoveryInput', ], 'reportConfiguration' => [ 'shape' => 'ServiceReportConfiguration', ], ], ], 'UpdateServiceResponse' => [ 'type' => 'structure', 'required' => [ 'service', ], 'members' => [ 'service' => [ 'shape' => 'Service', ], ], ], 'UpdateSystemRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', ], 'description' => [ 'shape' => 'EntityDescription', ], 'sharingEnabled' => [ 'shape' => 'Boolean', ], ], ], 'UpdateSystemResponse' => [ 'type' => 'structure', 'required' => [ 'system', ], 'members' => [ 'system' => [ 'shape' => 'System', ], ], ], 'UpdateUserJourneyRequest' => [ 'type' => 'structure', 'required' => [ 'systemArn', 'userJourneyId', ], 'members' => [ 'systemArn' => [ 'shape' => 'Arn', ], 'userJourneyId' => [ 'shape' => 'UserJourneyId', ], 'name' => [ 'shape' => 'EntityLabel', ], 'description' => [ 'shape' => 'EntityDescription', ], 'policyArn' => [ 'shape' => 'Arn', ], ], ], 'UpdateUserJourneyResponse' => [ 'type' => 'structure', 'required' => [ 'userJourney', ], 'members' => [ 'userJourney' => [ 'shape' => 'UserJourney', ], ], ], 'UserJourney' => [ 'type' => 'structure', 'required' => [ 'userJourneyId', 'name', ], 'members' => [ 'userJourneyId' => [ 'shape' => 'UserJourneyId', ], 'name' => [ 'shape' => 'EntityLabel', ], 'description' => [ 'shape' => 'EntityDescription', ], 'policyArn' => [ 'shape' => 'Arn', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'UserJourneyChanges' => [ 'type' => 'structure', 'members' => [ 'journeyDescription' => [ 'shape' => 'StringChange', ], 'associatedServices' => [ 'shape' => 'ServiceReferenceChanges', ], ], ], 'UserJourneyId' => [ 'type' => 'string', 'max' => 255, 'min' => 1, 'pattern' => '\\S{1,255}', ], 'UserJourneyIdList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserJourneyId', ], 'max' => 20, 'min' => 0, ], 'UserJourneyNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'UserJourneySummary' => [ 'type' => 'structure', 'required' => [ 'userJourneyId', 'name', ], 'members' => [ 'userJourneyId' => [ 'shape' => 'UserJourneyId', ], 'name' => [ 'shape' => 'EntityLabel', ], 'createdAt' => [ 'shape' => 'Timestamp', ], 'updatedAt' => [ 'shape' => 'Timestamp', ], ], ], 'UserJourneySummaryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'UserJourneySummary', ], ], 'Uuid' => [ 'type' => 'string', 'max' => 36, 'min' => 36, 'pattern' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}', ], 'ValidationException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], 'reason' => [ 'shape' => 'ValidationExceptionReason', ], 'fieldList' => [ 'shape' => 'ValidationExceptionFieldList', ], ], 'error' => [ 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ValidationExceptionField' => [ 'type' => 'structure', 'required' => [ 'name', 'message', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], ], 'ValidationExceptionFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValidationExceptionField', ], ], 'ValidationExceptionReason' => [ 'type' => 'string', 'enum' => [ 'INVALID_FIELD_VALUE', 'DUPLICATE_VALUE', 'MISSING_REQUIRED_FIELD', 'OTHER', ], ], ],]; diff --git a/vendor/brick/math/CHANGELOG.md b/vendor/brick/math/CHANGELOG.md index bde2e1fe8..86e477858 100644 --- a/vendor/brick/math/CHANGELOG.md +++ b/vendor/brick/math/CHANGELOG.md @@ -2,6 +2,150 @@ All notable changes to this project will be documented in this file. +## [0.18.0](https://github.com/brick/math/releases/tag/0.18.0) - 2026-06-14 + +💥 **Breaking changes** + +The following breaking change only affects you if you're using named arguments: + +- `BigInteger::fromBytes()` now uses `$bytes` as the parameter name + +🐛 **Bug fixes** + +- `of()` no longer accepts a trailing newline (`\n`) in the input string; such input now throws `NumberFormatException` +- `of()` now consistently throws `NumberFormatException` for exponents too large to process, instead of `IntegerOverflowException` in some cases +- `BigInteger::fromBase()` now reports the invalid character with its original case in the `NumberFormatException` message, instead of lower-casing it + +⚡️ **Performance improvements** + +- `BigInteger::gcd()` no longer exhausts memory on large inputs when the GMP extension is not installed +- `BigInteger::modInverse()` no longer exhausts memory on large inputs, and is faster when the GMP extension is not installed + +👌 **Static analysis improvements** + +- Narrowed parameter and return types with static analysis annotations: + - `nthRoot()`'s `$n` is now `positive-int` + - `BigInteger::toBase()`, `toArbitraryBase()`, `toBytes()` and `BigRational::toRepeatingDecimalString()` now return `non-empty-string` + +## [0.17.2](https://github.com/brick/math/releases/tag/0.17.2) - 2026-05-25 + +✨ **New features** + +- New methods: `BigInteger::nthRoot()` and `BigDecimal::nthRoot()` compute the nth root of a number (#113 by @Pablo1Gustavo) + +## [0.17.1](https://github.com/brick/math/releases/tag/0.17.1) - 2026-04-19 + +👌 **Improvements** + +- More precise `float` approximations in `BigRational::toFloat()` + +## [0.17.0](https://github.com/brick/math/releases/tag/0.17.0) - 2026-03-17 + +💥 **Breaking changes** + +- Deprecated method `BigDecimal::hasNonZeroFractionalPart()` has been removed, use `! $number->getFractionalPart()->isZero()` instead +- Exception constructors and factory methods are now `@internal` + +✨ **Compatibility improvements** + +- `BigDecimal::fromFloatExact()` now supports 32-bit PHP + +## [0.16.2](https://github.com/brick/math/releases/tag/0.16.2) - 2026-03-15 + +✨ **New features** + +New methods to create a `BigDecimal` from a `float` value: + +- `BigDecimal::fromFloatExact()` +- `BigDecimal::fromFloatShortest()` + +## [0.16.1](https://github.com/brick/math/releases/tag/0.16.1) - 2026-03-09 + +👌 **Improvements** + +- Add `@return non-empty-string` to `toString()`, `jsonSerialize()` and `__toString()` (#111 by @vudaltsov) + +## [0.16.0](https://github.com/brick/math/releases/tag/0.16.0) - 2026-03-06 + +💥 **Breaking changes** + +- **`BigInteger::getLowestSetBit()` now returns `null` instead of `-1` when the number is zero** +- Deprecated method `BigRational::simplified()` has been removed, as it is now a no-op + +✨ **New features** + +- New method: `BigDecimal::getIntegralPart()` returns the integral part as `BigInteger` (this method existed with a different signature in version 0.14, and was removed in 0.15) +- New method: `BigDecimal::getFractionalPart()` returns the fractional part as `BigDecimal` (this method existed with a different signature and meaning in version 0.14, and was removed in 0.15) + +🗑️ **Deprecations** + +- Method `BigDecimal::hasNonZeroFractionalPart()` is deprecated, use `->getFractionalPart()->isZero()` instead + +## [0.15.0](https://github.com/brick/math/releases/tag/0.15.0) - 2026-02-20 + +💥 **Breaking changes** + +- **floating-point inputs are no longer accepted by `of()` and arithmetic methods**, use `of((string) $float)` to get the same behaviour as before (#105) +- **`BigRational` is now always simplified to lowest terms:** all operations, including `of()` and `ofFraction()`, now return a fraction in its simplest form (e.g. `2/3` instead of `4/6`) +- **`BigDecimal::dividedBy()` now requires the `$scale` parameter** +- **`BigInteger::sqrt()` and `BigDecimal::sqrt()` now default to `RoundingMode::Unnecessary`**, explicitly pass `RoundingMode::Down` to get the previous behaviour +- **`BigInteger::mod()` now uses Euclidean modulo semantics**: the modulus must be strictly positive, and the result is always non-negative; this change aligns with Java's `BigInteger.mod()` behaviour +- **`BigInteger::mod()`, `modInverse()` and `modPow()` now throw `InvalidArgumentException` (instead of `NegativeNumberException`) for negative modulus/exponent arguments** +- **`MathException` is now an interface** instead of a class +- **`BigDecimal::getPrecision()` now returns `1` for zero values** +- `BigNumber::min()`, `max()` and `sum()` now throw an `ArgumentCountError` when called with no arguments (previously threw `InvalidArgumentException`) +- `BigInteger::randomBits()` and `randomRange()` now throw `RandomSourceException` when random byte generation fails or returns invalid data + +Deprecated API elements removed: + +- deprecated method `BigInteger::testBit()` has been removed, use `isBitSet()` instead +- deprecated method `BigInteger::gcdMultiple()` has been removed, use `gcdAll()` instead +- deprecated method `BigDecimal::exactlyDividedBy()` has been removed, use `dividedByExact()` instead +- deprecated method `BigDecimal::getIntegralPart()` has been removed (will be re-introduced as returning `BigInteger` in 0.16) +- deprecated method `BigDecimal::getFractionalPart()` has been removed (will be re-introduced as returning `BigDecimal` with a different meaning in 0.16) +- deprecated method `BigDecimal::stripTrailingZeros()` has been removed, use `strippedOfTrailingZeros()` instead +- deprecated method `BigRational::nd()` has been removed, use `ofFraction()` instead +- deprecated method `BigRational::quotient()` has been removed, use `getIntegralPart()` instead +- deprecated method `BigRational::remainder()` has been removed, use `$number->getNumerator()->remainder($number->getDenominator())` instead +- deprecated method `BigRational::quotientAndRemainder()` has been removed, use `$number->getNumerator()->quotientAndRemainder($number->getDenominator())` instead +- deprecated `RoundingMode` upper snake case constants (e.g. `HALF_UP`) have been removed, use the pascal case version (e.g. `HalfUp`) instead + +The following breaking changes only affect you if you're using named arguments: + +- `BigInteger::mod()` now uses `$modulus` as the parameter name +- `BigInteger::modInverse()` now uses `$modulus` as the parameter name +- `BigInteger::modPow()` now uses `$exponent` and `$modulus` as parameter names +- `BigInteger::shiftedLeft()` now uses `$bits` as the parameter name +- `BigInteger::shiftedRight()` now uses `$bits` as the parameter name +- `BigInteger::isBitSet()` now uses `$bitIndex` as the parameter name +- `BigInteger::randomBits()` now uses `$bitCount` as the parameter name +- `BigDecimal::withPointMovedLeft()` now uses `$places` as the parameter name +- `BigDecimal::withPointMovedRight()` now uses `$places` as the parameter name + +The following breaking changes are unlikely to affect you: + +- `DivisionByZeroException::modulusMustNotBeZero()` has been renamed to `zeroModulus()` +- `DivisionByZeroException::denominatorMustNotBeZero()` has been renamed to `zeroDenominator()` +- `IntegerOverflowException::toIntOverflow()` has been renamed to `integerOutOfRange()` +- `RoundingNecessaryException::roundingNecessary()` has been removed + +🗑️ **Deprecations** + +- Method `BigRational::simplified()` is deprecated, as it is now a no-op + +✨ **New features** + +- `BigInteger::power()`, `BigDecimal::power()` and `BigRational::power()` no longer enforce an exponent limit +- `BigInteger::shiftedLeft()` and `BigInteger::shiftedRight()` no longer enforce a limit on the number of bits +- `BigRational::power()` now accepts negative exponents +- New exception: `InvalidArgumentException` for invalid argument errors +- New exception: `NoInverseException` for modular inverse errors +- New exception: `RandomSourceException` for random source errors + +👌 **Improvements** + +- Narrowed parameter and return types with static analysis annotations (#108 by @simPod) + ## [0.14.8](https://github.com/brick/math/releases/tag/0.14.8) - 2026-02-10 🗑️ **Deprecations** @@ -58,7 +202,7 @@ All notable changes to this project will be documented in this file. 🗑️ **Deprecations** -- Passing a negative modulus to `BigInteger::mod()` is deprecated to align with Euclidean modulo semantics; it will throw `NegativeNumberException` in 0.15 +- Passing a negative modulus to `BigInteger::mod()` is deprecated to align with Euclidean modulo semantics; it will throw `InvalidArgumentException` in 0.15 - Method `BigDecimal::stripTrailingZeros()` is deprecated, use `strippedOfTrailingZeros()` instead ✨ **New features** @@ -107,6 +251,7 @@ All notable changes to this project will be documented in this file. 👌 **Improvements** +- All exceptions thrown by the library now implement a common `MathException` interface - `BigInteger::modInverse()` now accepts `BigNumber|int|float|string` instead of just `BigInteger` - `BigInteger::gcdMultiple()` now accepts `BigNumber|int|float|string` instead of just `BigInteger` diff --git a/vendor/brick/math/README.md b/vendor/brick/math/README.md new file mode 100644 index 000000000..54de359bd --- /dev/null +++ b/vendor/brick/math/README.md @@ -0,0 +1,265 @@ +## Brick\Math + + + +A PHP library to work with arbitrary precision numbers. + +[![Build Status](https://github.com/brick/math/workflows/CI/badge.svg)](https://github.com/brick/math/actions) +[![Coverage Status](https://codecov.io/github/brick/math/graph/badge.svg)](https://codecov.io/github/brick/math) +[![Latest Stable Version](https://poser.pugx.org/brick/math/v/stable)](https://packagist.org/packages/brick/math) +[![Total Downloads](https://poser.pugx.org/brick/math/downloads)](https://packagist.org/packages/brick/math) +[![License](https://img.shields.io/badge/license-MIT-blue.svg)](http://opensource.org/licenses/MIT) + +### Installation + +This library is installable via [Composer](https://getcomposer.org/): + +```bash +composer require brick/math +``` + +### Requirements + +This library requires PHP 8.2 or later. + +For PHP 8.1 compatibility, you can use version `0.13`. For PHP 8.0, you can use version `0.11`. For PHP 7.4, you can use version `0.10`. For PHP 7.1, 7.2 & 7.3, you can use version `0.9`. Note that [PHP versions < 8.1 are EOL](http://php.net/supported-versions.php) and not supported anymore. If you're still using one of these PHP versions, you should consider upgrading as soon as possible. + +Although the library can work seamlessly on any PHP installation, it is highly recommended that you install the +[GMP](http://php.net/manual/en/book.gmp.php) or [BCMath](http://php.net/manual/en/book.bc.php) extension +to speed up calculations. The fastest available calculator implementation will be automatically selected at runtime. + +### Project status & release process + +While this library is still under development, it is well tested and considered stable enough to use in production +environments. + +The current releases are numbered `0.x.y`. When a non-breaking change is introduced (adding new methods, optimizing +existing code, etc.), `y` is incremented. + +**When a breaking change is introduced, a new `0.x` version cycle is always started.** + +It is therefore safe to lock your project to a given release cycle, such as `^0.17`. + +If you need to upgrade to a newer release cycle, check the [release history](https://github.com/brick/math/releases) +for a list of changes introduced by each further `0.x.0` version. + +### Package contents + +This library provides the following public classes in the `Brick\Math` namespace: + +- [BigNumber](https://github.com/brick/math/blob/0.17.2/src/BigNumber.php): base class for `BigInteger`, `BigDecimal` and `BigRational` +- [BigInteger](https://github.com/brick/math/blob/0.17.2/src/BigInteger.php): represents an arbitrary-precision integer number. +- [BigDecimal](https://github.com/brick/math/blob/0.17.2/src/BigDecimal.php): represents an arbitrary-precision decimal number. +- [BigRational](https://github.com/brick/math/blob/0.17.2/src/BigRational.php): represents an arbitrary-precision rational number (fraction), always reduced to lowest terms. +- [RoundingMode](https://github.com/brick/math/blob/0.17.2/src/RoundingMode.php): enum representing all available rounding modes. + +And [exceptions](#exceptions) in the `Brick\Math\Exception` namespace. + +### Overview + +#### Instantiation + +The constructors of the classes are not public, you must use a factory method to obtain an instance. + +All classes provide an `of()` factory method that accepts any of the following types: + +- `BigNumber` instances +- `int` numbers +- `string` representations of integer, decimal and rational numbers + +Example: + +```php +BigInteger::of(123546); +BigInteger::of('9999999999999999999999999999999999999999999'); + +BigDecimal::of('9.99999999999999999999999999999999999999999999'); + +BigRational::of('2/3'); +``` + +Note that all `of()` methods accept all the representations above, *as long as it can be safely converted to +the current type*: + +```php +BigInteger::of('1.00'); // 1 +BigInteger::of('1.01'); // RoundingNecessaryException + +BigDecimal::of('1/8'); // 0.125 +BigDecimal::of('1/3'); // RoundingNecessaryException + +BigRational::of('1.1'); // 11/10 +BigRational::of('1.15'); // 23/20 (reduced to lowest terms) +``` + +> [!NOTE] +> The `of()` factory method does not accept `float` values, because casting a float to string can be lossy. +> To convert a float to a `BigDecimal`, use one of the dedicated methods: +> +> ```php +> // Exact IEEE-754 representation — the value the float actually holds: +> BigDecimal::fromFloatExact(0.1); // 0.1000000000000000055511151231257827021181583404541015625 +> +> // Shortest decimal that round-trips back to the same float: +> BigDecimal::fromFloatShortest(0.1); // 0.1 +> ``` + +#### Immutability & chaining + +The `BigInteger`, `BigDecimal` and `BigRational` classes are immutable: their value never changes, +so that they can be safely passed around. All methods that return a `BigInteger`, `BigDecimal` or `BigRational` +return a new object, leaving the original object unaffected: + +```php +$ten = BigInteger::of(10); + +echo $ten->plus(5); // 15 +echo $ten->multipliedBy(3); // 30 +``` + +The methods can be chained for better readability: + +```php +echo BigInteger::of(10)->plus(5)->multipliedBy(3); // 45 +``` + +#### Parameter types + +All methods that accept a number: `plus()`, `minus()`, `multipliedBy()`, etc. accept the same types as `of()`. +For example, given the following number: + +```php +$integer = BigInteger::of(123); +``` + +The following lines are equivalent: + +```php +$integer->multipliedBy(123); +$integer->multipliedBy('123'); +$integer->multipliedBy($integer); +``` + +Just like `of()`, other types of `BigNumber` are acceptable, as long as they can be safely converted to the current type: + +```php +echo BigInteger::of(2)->multipliedBy(BigDecimal::of('2.0')); // 4 +echo BigInteger::of(2)->multipliedBy(BigDecimal::of('2.5')); // RoundingNecessaryException +echo BigDecimal::of(2.5)->multipliedBy(BigInteger::of(2)); // 5.0 +``` + +#### Division & rounding + +##### BigInteger + +By default, dividing a `BigInteger` returns the exact result of the division, or throws an exception if the remainder +of the division is not zero: + +```php +echo BigInteger::of(999)->dividedBy(3); // 333 +echo BigInteger::of(1000)->dividedBy(3); // RoundingNecessaryException +``` + +You can pass an optional [rounding mode](https://github.com/brick/math/blob/0.17.2/src/RoundingMode.php) to round the result, if necessary: + +```php +echo BigInteger::of(1000)->dividedBy(3, RoundingMode::Down); // 333 +echo BigInteger::of(1000)->dividedBy(3, RoundingMode::Up); // 334 +``` + +If you're into quotients and remainders, there are methods for this, too: + +```php +echo BigInteger::of(1000)->quotient(3); // 333 +echo BigInteger::of(1000)->remainder(3); // 1 +``` + +You can even get both at the same time: + +```php +[$quotient, $remainder] = BigInteger::of(1000)->quotientAndRemainder(3); +``` + +##### BigDecimal + +Dividing a `BigDecimal` always requires a scale to be specified. If the exact result of the division does not fit in +the given scale, a [rounding mode](https://github.com/brick/math/blob/0.17.2/src/RoundingMode.php) must be provided. + +```php +echo BigDecimal::of(1)->dividedBy('8', 3); // 0.125 +echo BigDecimal::of(1)->dividedBy('8', 2); // RoundingNecessaryException +echo BigDecimal::of(1)->dividedBy('8', 2, RoundingMode::HalfDown); // 0.12 +echo BigDecimal::of(1)->dividedBy('8', 2, RoundingMode::HalfUp); // 0.13 +``` + +If you know that the division yields a finite number of decimals places, you can use `dividedByExact()`, which will +automatically compute the required scale to fit the result, or throw an exception if the division yields an infinite +repeating decimal: + +```php +echo BigDecimal::of(1)->dividedByExact(256); // 0.00390625 +echo BigDecimal::of(1)->dividedByExact(11); // RoundingNecessaryException +``` + +##### BigRational + +The result of the division of a `BigRational` can always be represented exactly: + +```php +echo BigRational::of('13/99')->dividedBy('7'); // 13/693 +echo BigRational::of('13/99')->dividedBy('9/8'); // 104/891 +``` + +#### Bitwise operations + +`BigInteger` supports bitwise operations: + +- `and()` +- `or()` +- `xor()` +- `not()` + +and bit shifting: + +- `shiftedLeft()` +- `shiftedRight()` + +#### Exceptions + +All exceptions thrown by this library implement the `MathException` interface. +This means that you can safely catch all exceptions thrown by this library using a single catch clause: + +```php +use Brick\Math\BigDecimal; +use Brick\Math\Exception\MathException; + +try { + $number = BigInteger::of(1)->dividedBy(3); +} catch (MathException $e) { + // ... +} +``` + +If you need more granular control over the exceptions thrown, you can catch the specific exception classes: + +- `DivisionByZeroException` +- `IntegerOverflowException` +- `InvalidArgumentException` +- `NegativeNumberException` +- `NoInverseException` +- `NumberFormatException` +- `RandomSourceException` +- `RoundingNecessaryException` +- `UnsupportedPlatformException` + +#### Serialization + +`BigInteger`, `BigDecimal` and `BigRational` can be safely serialized on a machine and unserialized on another, +even if these machines do not share the same set of PHP extensions. + +For example, serializing on a machine with GMP support and unserializing on a machine that does not have this extension +installed will still work as expected. + +#### PHPStan extension + +A third-party [PHPStan extension](https://github.com/simPod/phpstan-brick-math) is available for this library. It provides more specific throw type narrowing for brick/math methods, so that PHPStan can infer the exact exception classes thrown. Note that this extension is not maintained by the author of brick/math. diff --git a/vendor/brick/math/codecov.yml b/vendor/brick/math/codecov.yml new file mode 100644 index 000000000..81c8f3709 --- /dev/null +++ b/vendor/brick/math/codecov.yml @@ -0,0 +1,14 @@ +codecov: + require_ci_to_pass: true + notify: + after_n_builds: 6 + wait_for_ci: true + +coverage: + status: + project: + default: + informational: true + patch: + default: + informational: true diff --git a/vendor/brick/math/composer.json b/vendor/brick/math/composer.json index ad1dfe07a..bcacf9b53 100644 --- a/vendor/brick/math/composer.json +++ b/vendor/brick/math/composer.json @@ -23,7 +23,6 @@ }, "require-dev": { "phpunit/phpunit": "^11.5", - "php-coveralls/php-coveralls": "^2.2", "phpstan/phpstan": "2.1.22" }, "autoload": { diff --git a/vendor/brick/math/src/BigDecimal.php b/vendor/brick/math/src/BigDecimal.php index a4f083bb8..db8cf55e7 100644 --- a/vendor/brick/math/src/BigDecimal.php +++ b/vendor/brick/math/src/BigDecimal.php @@ -5,29 +5,34 @@ declare(strict_types=1); namespace Brick\Math; use Brick\Math\Exception\DivisionByZeroException; +use Brick\Math\Exception\InvalidArgumentException; use Brick\Math\Exception\MathException; use Brick\Math\Exception\NegativeNumberException; use Brick\Math\Exception\RoundingNecessaryException; -use Brick\Math\Internal\Calculator; +use Brick\Math\Exception\UnsupportedPlatformException; use Brick\Math\Internal\CalculatorRegistry; -use InvalidArgumentException; +use Brick\Math\Internal\DecimalHelper; +use Brick\Math\Internal\Safe; use LogicException; use Override; -use function func_num_args; +use function assert; +use function chr; use function in_array; +use function ini_set; use function intdiv; +use function is_infinite; +use function is_nan; +use function json_encode; use function max; +use function pack; use function rtrim; -use function sprintf; -use function str_pad; use function str_repeat; use function strlen; use function substr; -use function trigger_error; +use function unpack; -use const E_USER_DEPRECATED; -use const STR_PAD_LEFT; +use const PHP_INT_SIZE; /** * An arbitrarily large decimal number. @@ -51,14 +56,16 @@ final readonly class BigDecimal extends BigNumber * The scale (number of digits after the decimal point) of this decimal number. * * This must be zero or more. + * + * @var non-negative-int */ private int $scale; /** * Protected constructor. Use a factory method to obtain an instance. * - * @param string $value The unscaled value, validated. - * @param int $scale The scale, validated. + * @param string $value The unscaled value, validated. + * @param non-negative-int $scale The scale, validated. * * @pure */ @@ -77,21 +84,21 @@ final readonly class BigDecimal extends BigNumber * * Example: `(12345, -3)` will result in the BigDecimal `12345000`. * - * @param BigNumber|int|float|string $value The unscaled value. Must be convertible to a BigInteger. - * @param int $scale The scale of the number. If negative, the scale will be set to zero - * and the unscaled value will be adjusted accordingly. + * @param BigNumber|int|string $value The unscaled value. Must be convertible to a BigInteger. + * @param int $scale The scale of the number. If negative, the scale will be set to zero + * and the unscaled value will be adjusted accordingly. * * @throws MathException If the value is not valid, or is not convertible to a BigInteger. * * @pure */ - public static function ofUnscaledValue(BigNumber|int|float|string $value, int $scale = 0): BigDecimal + public static function ofUnscaledValue(BigNumber|int|string $value, int $scale = 0): BigDecimal { $value = BigInteger::of($value)->toString(); if ($scale < 0) { if ($value !== '0') { - $value .= str_repeat('0', -$scale); + $value .= str_repeat('0', Safe::neg($scale)); } $scale = 0; } @@ -150,26 +157,170 @@ final readonly class BigDecimal extends BigNumber return $ten; } + /** + * Creates a BigDecimal from the exact IEEE-754 value of a float. + * + * Examples: + * - `fromFloatExact(0.1)` returns a BigDecimal with value '0.1000000000000000055511151231257827021181583404541015625' + * - `fromFloatExact(0.3)` returns a BigDecimal with value '0.299999999999999988897769753748434595763683319091796875' + * - `fromFloatExact(0.5)` returns a BigDecimal with value '0.5' + * - `fromFloatExact(1.0)` returns a BigDecimal with value '1' + * + * Note that BigDecimal has no concept of negative zero, so `-0.0` and `0.0` both convert to zero. + * + * @throws InvalidArgumentException If the value is NaN or infinite. + * @throws UnsupportedPlatformException If the platform uses a non-IEEE-754 double format. + * + * @pure + */ + public static function fromFloatExact(float $value): BigDecimal + { + if (is_nan($value)) { + throw InvalidArgumentException::cannotConvertFloat('NaN'); + } + if (is_infinite($value)) { + throw InvalidArgumentException::cannotConvertFloat($value > 0 ? 'INF' : '-INF'); + } + + if (pack('E', 1.0) !== "\x3f\xf0\x00\x00\x00\x00\x00\x00") { + throw UnsupportedPlatformException::unsupportedFloatFormat(); + } + + if (PHP_INT_SIZE >= 8) { + // 64-bit: extract the IEEE-754 bit pattern as a 64-bit integer. + /** @var array{1: int} $unpacked */ + $unpacked = unpack('J', pack('E', $value)); + $bits = $unpacked[1]; + + // Bits: [sign(1)|exp(11)|mantissa(52)] + $signBit = ($bits >> 63) & 1; + $expBits = ($bits >> 52) & 0x7FF; + $mantissa = $bits & 0xFFFFFFFFFFFFF; + + // Zero (covers both 0.0 and -0.0). + if ($expBits === 0 && $mantissa === 0) { + return BigDecimal::zero(); + } + + if ($expBits === 0) { + $significand = BigInteger::of($mantissa); + } else { + $significand = BigInteger::of(0x10000000000000 | $mantissa); + } + } else { + // 32-bit: extract the IEEE-754 bit pattern as 8 bytes. + $packed = pack('E', $value); + + // Get the first 16 bits as an integer. + /** @var array{1: int} $unpacked */ + $unpacked = unpack('n', $packed); + $high16 = $unpacked[1]; + + // Bits: [sign(1)|exp(11)|mantissa(4)] in header (bytes 0-1) + 48 bits of mantissa in bytes 2-7 + $signBit = ($high16 >> 15) & 1; + $expBits = ($high16 >> 4) & 0x7FF; + $mantissaBytes = chr($high16 & 0x0F) . substr($packed, 2); + + // Zero (covers both 0.0 and -0.0). + if ($expBits === 0 && $mantissaBytes === "\x00\x00\x00\x00\x00\x00\x00") { + return BigDecimal::zero(); + } + + $mantissa = BigInteger::fromBytes($mantissaBytes, false); + + if ($expBits === 0) { + $significand = $mantissa; + } else { + $significand = $mantissa->plus(BigInteger::of(1)->shiftedLeft(52)); + } + } + + if ($expBits === 0) { + // Subnormal: no implicit leading 1-bit; effective exponent = -1074. + $baseExp = -1074; + } else { + // Normal: biased exp - 1023 (bias) - 52 (mantissa shift) + $baseExp = $expBits - 1075; + } + + if ($baseExp >= 0) { + // Result is an integer: significand × 2^baseExp. + $unscaled = $significand->multipliedBy(BigInteger::of(2)->power($baseExp)); + $scale = 0; + } else { + // Fraction: significand × 5^|baseExp| / 10^|baseExp|. + // Multiplying by 5^n eliminates the 2-based denominator while keeping scale = n. + $absExp = -$baseExp; + $unscaled = $significand->multipliedBy(BigInteger::of(5)->power($absExp)); + $scale = $absExp; + } + + if ($signBit === 1) { + $unscaled = $unscaled->negated(); + } + + return BigDecimal::ofUnscaledValue($unscaled, $scale)->strippedOfTrailingZeros(); + } + + /** + * Creates a BigDecimal from the shortest decimal representation of a float that round-trips back to the same value. + * + * The result is the shortest BigDecimal that passes `BigDecimal::fromFloatShortest($f)->toFloat() === $f`. + * + * Examples: + * - `fromFloatShortest(0.3)` returns a BigDecimal with value '0.3' + * - `fromFloatShortest(0.1 * 3.0)` returns a BigDecimal with value '0.30000000000000004' (`0.1 * 3.0 !== 0.3`) + * - `fromFloatShortest(1.0 / 3.0)` returns a BigDecimal with value '0.3333333333333333' + * + * Note that BigDecimal has no concept of negative zero, so `-0.0` and `0.0` both convert to zero. + * + * @throws InvalidArgumentException If the value is NaN or infinite. + */ + public static function fromFloatShortest(float $value): BigDecimal + { + if (is_nan($value)) { + throw InvalidArgumentException::cannotConvertFloat('NaN'); + } + if (is_infinite($value)) { + throw InvalidArgumentException::cannotConvertFloat($value > 0 ? 'INF' : '-INF'); + } + + // json_encode() uses serialize_precision; precision -1 uses the shortest round-trip algorithm + $previousPrecision = ini_set('serialize_precision', '-1'); + + try { + $str = json_encode($value); + } finally { + if ($previousPrecision !== false) { + ini_set('serialize_precision', $previousPrecision); + } + } + + assert($str !== false); + + return BigDecimal::of($str)->strippedOfTrailingZeros(); + } + /** * Returns the sum of this number and the given one. * * The result has a scale of `max($this->scale, $that->scale)`. * - * @param BigNumber|int|float|string $that The number to add. Must be convertible to a BigDecimal. + * @param BigNumber|int|string $that The number to add. Must be convertible to a BigDecimal. * * @throws MathException If the number is not valid, or is not convertible to a BigDecimal. * * @pure */ - public function plus(BigNumber|int|float|string $that): BigDecimal + public function plus(BigNumber|int|string $that): BigDecimal { $that = BigDecimal::of($that); - if ($that->value === '0' && $that->scale <= $this->scale) { + if ($that->isZero() && $that->scale <= $this->scale) { return $this; } - if ($this->value === '0' && $this->scale <= $that->scale) { + if ($this->isZero() && $this->scale <= $that->scale) { return $that; } @@ -186,20 +337,24 @@ final readonly class BigDecimal extends BigNumber * * The result has a scale of `max($this->scale, $that->scale)`. * - * @param BigNumber|int|float|string $that The number to subtract. Must be convertible to a BigDecimal. + * @param BigNumber|int|string $that The number to subtract. Must be convertible to a BigDecimal. * * @throws MathException If the number is not valid, or is not convertible to a BigDecimal. * * @pure */ - public function minus(BigNumber|int|float|string $that): BigDecimal + public function minus(BigNumber|int|string $that): BigDecimal { $that = BigDecimal::of($that); - if ($that->value === '0' && $that->scale <= $this->scale) { + if ($that->isZero() && $that->scale <= $this->scale) { return $this; } + if ($this->isZero() && $this->scale <= $that->scale) { + return $that->negated(); + } + [$a, $b] = $this->scaleValues($this, $that); $value = CalculatorRegistry::get()->sub($a, $b); @@ -213,26 +368,32 @@ final readonly class BigDecimal extends BigNumber * * The result has a scale of `$this->scale + $that->scale`. * - * @param BigNumber|int|float|string $that The multiplier. Must be convertible to a BigDecimal. + * @param BigNumber|int|string $that The multiplier. Must be convertible to a BigDecimal. * * @throws MathException If the multiplier is not valid, or is not convertible to a BigDecimal. * * @pure */ - public function multipliedBy(BigNumber|int|float|string $that): BigDecimal + public function multipliedBy(BigNumber|int|string $that): BigDecimal { $that = BigDecimal::of($that); - if ($that->value === '1' && $that->scale === 0) { + if ($that->isOneScaleZero()) { return $this; } - if ($this->value === '1' && $this->scale === 0) { + if ($this->isOneScaleZero()) { return $that; } + /** @var non-negative-int $scale */ + $scale = Safe::add($this->scale, $that->scale); + + if ($this->isZero() || $that->isZero()) { + return new BigDecimal('0', $scale); + } + $value = CalculatorRegistry::get()->mul($this->value, $that->value); - $scale = $this->scale + $that->scale; return new BigDecimal($value, $scale); } @@ -240,46 +401,52 @@ final readonly class BigDecimal extends BigNumber /** * Returns the result of the division of this number by the given one, at the given scale. * - * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigDecimal. - * @param int|null $scale The desired scale. Omitting this parameter is deprecated; it will be required in 0.15. - * @param RoundingMode $roundingMode An optional rounding mode, defaults to Unnecessary. + * @param BigNumber|int|string $that The divisor. Must be convertible to a BigDecimal. + * @param non-negative-int $scale The desired scale. Must be non-negative. + * @param RoundingMode $roundingMode An optional rounding mode, defaults to Unnecessary. * - * @throws InvalidArgumentException If the scale is negative. * @throws MathException If the divisor is not valid, or is not convertible to a BigDecimal. + * @throws InvalidArgumentException If the scale is negative. * @throws DivisionByZeroException If the divisor is zero. * @throws RoundingNecessaryException If RoundingMode::Unnecessary is used and the result cannot be represented * exactly at the given scale. * * @pure */ - public function dividedBy(BigNumber|int|float|string $that, ?int $scale = null, RoundingMode $roundingMode = RoundingMode::Unnecessary): BigDecimal + public function dividedBy(BigNumber|int|string $that, int $scale, RoundingMode $roundingMode = RoundingMode::Unnecessary): BigDecimal { + if ($scale < 0) { // @phpstan-ignore smaller.alwaysFalse + throw InvalidArgumentException::negativeScale(); + } + $that = BigDecimal::of($that); if ($that->isZero()) { throw DivisionByZeroException::divisionByZero(); } - if ($scale === null) { - // @phpstan-ignore-next-line - trigger_error( - 'Not passing a $scale to BigDecimal::dividedBy() is deprecated. ' . - 'Use $a->dividedBy($b, $a->getScale(), $roundingMode) to retain current behavior.', - E_USER_DEPRECATED, - ); - $scale = $this->scale; - } elseif ($scale < 0) { - throw new InvalidArgumentException('Scale must not be negative.'); - } - - if ($that->value === '1' && $that->scale === 0 && $scale === $this->scale) { + if ($that->isOneScaleZero() && $scale === $this->scale) { return $this; } - $p = $this->valueWithMinScale($that->scale + $scale); - $q = $that->valueWithMinScale($this->scale - $scale); + $p = $this->valueWithMinScale(Safe::add($that->scale, $scale)); + $q = $that->valueWithMinScale(Safe::sub($this->scale, $scale)); - $result = CalculatorRegistry::get()->divRound($p, $q, $roundingMode); + $calculator = CalculatorRegistry::get(); + $result = $calculator->divRound($p, $q, $roundingMode); + + if ($result === null) { + [$a, $b] = $this->scaleValues($this->abs(), $that->abs()); + + $denominator = $calculator->divQ($b, $calculator->gcd($a, $b)); + $requiredScale = DecimalHelper::computeScaleFromReducedFractionDenominator($denominator); + + if ($requiredScale === null) { + throw RoundingNecessaryException::decimalDivisionNotExact(); + } + + throw RoundingNecessaryException::decimalDivisionScaleTooSmall(); + } return new BigDecimal($result, $scale); } @@ -289,29 +456,7 @@ final readonly class BigDecimal extends BigNumber * * The scale of the result is automatically calculated to fit all the fraction digits. * - * @deprecated Will be removed in 0.15. Use dividedByExact() instead. - * - * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigDecimal. - * - * @throws MathException If the divisor is not a valid number, is not convertible to a BigDecimal, is zero, - * or the result yields an infinite number of digits. - */ - public function exactlyDividedBy(BigNumber|int|float|string $that): BigDecimal - { - trigger_error( - 'BigDecimal::exactlyDividedBy() is deprecated and will be removed in 0.15. Use dividedByExact() instead.', - E_USER_DEPRECATED, - ); - - return $this->dividedByExact($that); - } - - /** - * Returns the exact result of the division of this number by the given one. - * - * The scale of the result is automatically calculated to fit all the fraction digits. - * - * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigDecimal. + * @param BigNumber|int|string $that The divisor. Must be convertible to a BigDecimal. * * @throws MathException If the divisor is not valid, or is not convertible to a BigDecimal. * @throws DivisionByZeroException If the divisor is zero. @@ -319,32 +464,23 @@ final readonly class BigDecimal extends BigNumber * * @pure */ - public function dividedByExact(BigNumber|int|float|string $that): BigDecimal + public function dividedByExact(BigNumber|int|string $that): BigDecimal { $that = BigDecimal::of($that); - if ($that->value === '0') { + if ($that->isZero()) { throw DivisionByZeroException::divisionByZero(); } - [, $b] = $this->scaleValues($this, $that); - - $d = rtrim($b, '0'); - $scale = strlen($b) - strlen($d); + [$a, $b] = $this->scaleValues($this->abs(), $that->abs()); $calculator = CalculatorRegistry::get(); - foreach ([5, 2] as $prime) { - for (; ;) { - $lastDigit = (int) $d[-1]; + $denominator = $calculator->divQ($b, $calculator->gcd($a, $b)); + $scale = DecimalHelper::computeScaleFromReducedFractionDenominator($denominator); - if ($lastDigit % $prime !== 0) { - break; - } - - $d = $calculator->divQ($d, (string) $prime); - $scale++; - } + if ($scale === null) { + throw RoundingNecessaryException::decimalDivisionNotExact(); } return $this->dividedBy($that, $scale)->strippedOfTrailingZeros(); @@ -355,7 +491,9 @@ final readonly class BigDecimal extends BigNumber * * The result has a scale of `$this->scale * $exponent`. * - * @throws InvalidArgumentException If the exponent is not in the range 0 to 1,000,000. + * @param non-negative-int $exponent + * + * @throws InvalidArgumentException If the exponent is negative. * * @pure */ @@ -369,15 +507,14 @@ final readonly class BigDecimal extends BigNumber return $this; } - if ($exponent < 0 || $exponent > Calculator::MAX_POWER) { - throw new InvalidArgumentException(sprintf( - 'The exponent %d is not in the range 0 to %d.', - $exponent, - Calculator::MAX_POWER, - )); + if ($exponent < 0) { // @phpstan-ignore smaller.alwaysFalse + throw InvalidArgumentException::negativeExponent(); } - return new BigDecimal(CalculatorRegistry::get()->pow($this->value, $exponent), $this->scale * $exponent); + /** @var non-negative-int $scale */ + $scale = Safe::mul($this->scale, $exponent); + + return new BigDecimal(CalculatorRegistry::get()->pow($this->value, $exponent), $scale); } /** @@ -392,14 +529,14 @@ final readonly class BigDecimal extends BigNumber * - `-7.5` quotient `3` returns `-2` * - `-7.5` quotient `-3` returns `2` * - * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigDecimal. + * @param BigNumber|int|string $that The divisor. Must be convertible to a BigDecimal. * * @throws MathException If the divisor is not valid, or is not convertible to a BigDecimal. * @throws DivisionByZeroException If the divisor is zero. * * @pure */ - public function quotient(BigNumber|int|float|string $that): BigDecimal + public function quotient(BigNumber|int|string $that): BigDecimal { $that = BigDecimal::of($that); @@ -428,14 +565,14 @@ final readonly class BigDecimal extends BigNumber * - `-7.5` remainder `3` returns `-1.5` * - `-7.5` remainder `-3` returns `-1.5` * - * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigDecimal. + * @param BigNumber|int|string $that The divisor. Must be convertible to a BigDecimal. * * @throws MathException If the divisor is not valid, or is not convertible to a BigDecimal. * @throws DivisionByZeroException If the divisor is zero. * * @pure */ - public function remainder(BigNumber|int|float|string $that): BigDecimal + public function remainder(BigNumber|int|string $that): BigDecimal { $that = BigDecimal::of($that); @@ -465,7 +602,7 @@ final readonly class BigDecimal extends BigNumber * - `-7.5` quotientAndRemainder `3` returns [`-2`, `-1.5`] * - `-7.5` quotientAndRemainder `-3` returns [`2`, `-1.5`] * - * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigDecimal. + * @param BigNumber|int|string $that The divisor. Must be convertible to a BigDecimal. * * @return array{BigDecimal, BigDecimal} An array containing the quotient and the remainder. * @@ -474,7 +611,7 @@ final readonly class BigDecimal extends BigNumber * * @pure */ - public function quotientAndRemainder(BigNumber|int|float|string $that): array + public function quotientAndRemainder(BigNumber|int|string $that): array { $that = BigDecimal::of($that); @@ -498,11 +635,8 @@ final readonly class BigDecimal extends BigNumber /** * Returns the square root of this number, rounded to the given scale according to the given rounding mode. * - * @param int $scale The target scale. Must be non-negative. - * @param RoundingMode $roundingMode The rounding mode to use, defaults to Down. - * ⚠️ WARNING: the default rounding mode was kept as Down for backward - * compatibility, but will change to Unnecessary in version 0.15. Pass a rounding - * mode explicitly to avoid this upcoming breaking change. + * @param non-negative-int $scale The target scale. Must be non-negative. + * @param RoundingMode $roundingMode An optional rounding mode, defaults to Unnecessary. * * @throws InvalidArgumentException If the scale is negative. * @throws NegativeNumberException If this number is negative. @@ -511,27 +645,18 @@ final readonly class BigDecimal extends BigNumber * * @pure */ - public function sqrt(int $scale, RoundingMode $roundingMode = RoundingMode::Down): BigDecimal + public function sqrt(int $scale, RoundingMode $roundingMode = RoundingMode::Unnecessary): BigDecimal { - if (func_num_args() === 1) { - // @phpstan-ignore-next-line - trigger_error( - 'The default rounding mode of BigDecimal::sqrt() will change from Down to Unnecessary in version 0.15. ' . - 'Pass a rounding mode explicitly to avoid this breaking change.', - E_USER_DEPRECATED, - ); + if ($scale < 0) { // @phpstan-ignore smaller.alwaysFalse + throw InvalidArgumentException::negativeScale(); } - if ($scale < 0) { - throw new InvalidArgumentException('Scale must not be negative.'); - } - - if ($this->value === '0') { + if ($this->isZero()) { return new BigDecimal('0', $scale); } - if ($this->value[0] === '-') { - throw new NegativeNumberException('Cannot calculate the square root of a negative number.'); + if ($this->isNegative()) { + throw NegativeNumberException::squareRootOfNegativeNumber(); } $value = $this->value; @@ -539,21 +664,21 @@ final readonly class BigDecimal extends BigNumber if ($inputScale % 2 !== 0) { $value .= '0'; - $inputScale++; + $inputScale = Safe::add($inputScale, 1); } $calculator = CalculatorRegistry::get(); // Keep one extra digit for rounding. - $intermediateScale = max($scale, intdiv($inputScale, 2)) + 1; - $value .= str_repeat('0', 2 * $intermediateScale - $inputScale); + $intermediateScale = Safe::add(max($scale, intdiv($inputScale, 2)), 1); + $value .= str_repeat('0', Safe::sub(Safe::mul(2, $intermediateScale), $inputScale)); $sqrt = $calculator->sqrt($value); $isExact = $calculator->mul($sqrt, $sqrt) === $value; if (! $isExact) { if ($roundingMode === RoundingMode::Unnecessary) { - throw RoundingNecessaryException::roundingNecessary(); + throw RoundingNecessaryException::decimalSquareRootNotExact(); } // Non-perfect-square sqrt is irrational, so the true value is strictly above this sqrt floor. @@ -568,48 +693,172 @@ final readonly class BigDecimal extends BigNumber } } - return (new BigDecimal($sqrt, $intermediateScale))->toScale($scale, $roundingMode); + $scaled = DecimalHelper::scale($sqrt, $intermediateScale, $scale, $roundingMode); + + if ($scaled === null) { + throw RoundingNecessaryException::decimalSquareRootScaleTooSmall(); + } + + return new BigDecimal($scaled, $scale); + } + + /** + * Returns the nth root of this number, rounded to the given scale according to the given rounding mode. + * + * For odd $n, the operation is defined for negative inputs: the sign is preserved and the + * magnitude of the root is |$this|^(1/$n). + * + * @param positive-int $n The root degree. Must be a strictly positive integer. + * @param non-negative-int $scale The target scale. Must be non-negative. + * @param RoundingMode $roundingMode An optional rounding mode, defaults to Unnecessary. + * + * @throws InvalidArgumentException If $n is less than 1 or $scale is negative. + * @throws NegativeNumberException If this number is negative and $n is even. + * @throws RoundingNecessaryException If RoundingMode::Unnecessary is used and the result cannot be represented + * exactly at the given scale. + * + * @pure + */ + public function nthRoot(int $n, int $scale, RoundingMode $roundingMode = RoundingMode::Unnecessary): BigDecimal + { + if ($n < 1) { // @phpstan-ignore smaller.alwaysFalse + throw InvalidArgumentException::nonPositiveNthRootDegree(); + } + + if ($scale < 0) { // @phpstan-ignore smaller.alwaysFalse + throw InvalidArgumentException::negativeScale(); + } + + $isNegative = $this->isNegative(); + + if ($isNegative && $n % 2 === 0) { + throw NegativeNumberException::nthRootOfNegativeNumber(); + } + + if ($n === 1) { + $scaled = DecimalHelper::scale($this->value, $this->scale, $scale, $roundingMode); + + if ($scaled === null) { + throw RoundingNecessaryException::decimalNthRootScaleTooSmall(); + } + + return new BigDecimal($scaled, $scale); + } + + if ($this->isZero()) { + return new BigDecimal('0', $scale); + } + + $value = $this->value; + $inputScale = $this->scale; + + // Pad inputScale up to a multiple of $n so the shift by n*intermediateScale lands cleanly. + $remainder = $inputScale % $n; + + if ($remainder !== 0) { + $padding = $n - $remainder; + $value .= str_repeat('0', $padding); + $inputScale = Safe::add($inputScale, $padding); + } + + $calculator = CalculatorRegistry::get(); + + // Keep one extra digit beyond the target scale for rounding. + $intermediateScale = Safe::add(max($scale, intdiv($inputScale, $n)), 1); + $value .= str_repeat('0', Safe::sub(Safe::mul($n, $intermediateScale), $inputScale)); + + $root = $calculator->nthRoot($value, $n); + $isExact = $calculator->pow($root, $n) === $value; + + if (! $isExact) { + if ($roundingMode === RoundingMode::Unnecessary) { + throw RoundingNecessaryException::decimalNthRootNotExact(); + } + + $isPositive = ! $isNegative; + + // Non-perfect-nth-power root is irrational, so the true value has strictly greater + // magnitude than this truncated root. For "round away from zero" modes, bump the + // integer root one step further from zero so the subsequent rescale rounds up. + if ( + $roundingMode === RoundingMode::Up + || ($roundingMode === RoundingMode::Ceiling && $isPositive) + || ($roundingMode === RoundingMode::Floor && ! $isPositive) + ) { + $root = $isPositive + ? $calculator->add($root, '1') + : $calculator->sub($root, '1'); + } + + // Irrational nth root cannot land on a midpoint. For any Half* mode, the "tie" case + // never occurs, so rewrite them all to HalfUp (round half away from zero), which is + // the mode whose away-from-zero direction matches the sign of the (strictly larger + // in magnitude) true value for both positive and negative inputs. + elseif (in_array($roundingMode, [ + RoundingMode::HalfDown, + RoundingMode::HalfEven, + RoundingMode::HalfFloor, + RoundingMode::HalfCeiling, + ], true)) { + $roundingMode = RoundingMode::HalfUp; + } + } + + $scaled = DecimalHelper::scale($root, $intermediateScale, $scale, $roundingMode); + + if ($scaled === null) { + throw RoundingNecessaryException::decimalNthRootScaleTooSmall(); + } + + return new BigDecimal($scaled, $scale); } /** * Returns a copy of this BigDecimal with the decimal point moved to the left by the given number of places. * + * If $places is negative, the decimal point is moved to the right by the absolute value instead. + * * @pure */ - public function withPointMovedLeft(int $n): BigDecimal + public function withPointMovedLeft(int $places): BigDecimal { - if ($n === 0) { + if ($places === 0) { return $this; } - if ($n < 0) { - return $this->withPointMovedRight(-$n); + if ($places < 0) { + return $this->withPointMovedRight(Safe::neg($places)); } - return new BigDecimal($this->value, $this->scale + $n); + /** @var non-negative-int $scale */ + $scale = Safe::add($this->scale, $places); + + return new BigDecimal($this->value, $scale); } /** * Returns a copy of this BigDecimal with the decimal point moved to the right by the given number of places. * + * If $places is negative, the decimal point is moved to the left by the absolute value instead. + * * @pure */ - public function withPointMovedRight(int $n): BigDecimal + public function withPointMovedRight(int $places): BigDecimal { - if ($n === 0) { + if ($places === 0) { return $this; } - if ($n < 0) { - return $this->withPointMovedLeft(-$n); + if ($places < 0) { + return $this->withPointMovedLeft(Safe::neg($places)); } $value = $this->value; - $scale = $this->scale - $n; + $scale = Safe::sub($this->scale, $places); if ($scale < 0) { if ($value !== '0') { - $value .= str_repeat('0', -$scale); + $value .= str_repeat('0', Safe::neg($scale)); } $scale = 0; } @@ -620,20 +869,11 @@ final readonly class BigDecimal extends BigNumber /** * Returns a copy of this BigDecimal with any trailing zeros removed from the fractional part. * - * @deprecated Use strippedOfTrailingZeros() instead. - */ - public function stripTrailingZeros(): BigDecimal - { - trigger_error( - 'BigDecimal::stripTrailingZeros() is deprecated, use strippedOfTrailingZeros() instead.', - E_USER_DEPRECATED, - ); - - return $this->strippedOfTrailingZeros(); - } - - /** - * Returns a copy of this BigDecimal with any trailing zeros removed from the fractional part. + * Examples: + * + * - `1.200` returns `1.2` + * - `1.000` returns `1` + * - `100` returns `100` * * @pure */ @@ -660,6 +900,8 @@ final readonly class BigDecimal extends BigNumber } $value = substr($this->value, 0, -$trimmableZeros); + + /** @var non-negative-int $scale */ $scale = $this->scale - $trimmableZeros; return new BigDecimal($value, $scale); @@ -672,7 +914,7 @@ final readonly class BigDecimal extends BigNumber } #[Override] - public function compareTo(BigNumber|int|float|string $that): int + public function compareTo(BigNumber|int|string $that): int { $that = BigNumber::of($that); @@ -696,6 +938,10 @@ final readonly class BigDecimal extends BigNumber } /** + * Returns the unscaled value of this decimal number. + * + * For example, the unscaled value of `123.456` is `123456`. + * * @pure */ public function getUnscaledValue(): BigInteger @@ -704,6 +950,12 @@ final readonly class BigDecimal extends BigNumber } /** + * Returns the scale of this decimal number. + * + * The scale is the number of digits after the decimal point. For example, the scale of `123.456` is `3`. + * + * @return non-negative-int + * * @pure */ public function getScale(): int @@ -714,102 +966,97 @@ final readonly class BigDecimal extends BigNumber /** * Returns the number of significant digits in the number. * - * This is the number of digits to both sides of the decimal point, stripped of leading zeros. + * This is the number of digits in the unscaled value of the number. * The sign has no impact on the result. * * Examples: - * 0 => 0 - * 0.0 => 0 + * 0 => 1 + * 0.0 => 1 * 123 => 3 * 123.456 => 6 * 0.00123 => 3 * 0.0012300 => 5 * + * @return positive-int + * * @pure */ public function getPrecision(): int { - $value = $this->value; + $length = strlen($this->value); - if ($value === '0') { - return 0; - } - - $length = strlen($value); - - return ($value[0] === '-') ? $length - 1 : $length; + /** @var positive-int */ + return ($this->value[0] === '-') ? $length - 1 : $length; } /** - * Returns a string representing the integral part of this decimal number. + * Returns the integral part of this decimal number. * - * Example: `-123.456` => `-123`. + * Examples: * - * @deprecated Will be removed in 0.15 and re-introduced as returning BigInteger in 0.16. - */ - public function getIntegralPart(): string - { - trigger_error( - 'BigDecimal::getIntegralPart() is deprecated and will be removed in 0.15. It will be re-introduced as returning BigInteger in 0.16.', - E_USER_DEPRECATED, - ); - - if ($this->scale === 0) { - return $this->value; - } - - $value = $this->getUnscaledValueWithLeadingZeros(); - - return substr($value, 0, -$this->scale); - } - - /** - * Returns a string representing the fractional part of this decimal number. + * - `123.456` returns `123` + * - `-123.456` returns `-123` + * - `0.123` returns `0` + * - `-0.123` returns `0` * - * If the scale is zero, an empty string is returned. - * - * Examples: `-123.456` => '456', `123` => ''. - * - * @deprecated Will be removed in 0.15 and re-introduced as returning BigDecimal with a different meaning in 0.16. - */ - public function getFractionalPart(): string - { - trigger_error( - 'BigDecimal::getFractionalPart() is deprecated and will be removed in 0.15. It will be re-introduced as returning BigDecimal with a different meaning in 0.16.', - E_USER_DEPRECATED, - ); - - if ($this->scale === 0) { - return ''; - } - - $value = $this->getUnscaledValueWithLeadingZeros(); - - return substr($value, -$this->scale); - } - - /** - * Returns whether this decimal number has a non-zero fractional part. + * The following identity holds: `$d->isEqualTo($d->getFractionalPart()->plus($d->getIntegralPart()))`. Note that in + * this identity, the operand order is significant: the reversed form throws when the fractional part is non-zero. * * @pure */ - public function hasNonZeroFractionalPart(): bool + public function getIntegralPart(): BigInteger { if ($this->scale === 0) { - return false; + return self::newBigInteger($this->value); } - $value = $this->getUnscaledValueWithLeadingZeros(); + $value = DecimalHelper::padUnscaledValue($this->value, $this->scale); + $integerPart = substr($value, 0, -$this->scale); - return substr($value, -$this->scale) !== str_repeat('0', $this->scale); + if ($integerPart === '-0') { + $integerPart = '0'; + } + + return self::newBigInteger($integerPart); + } + + /** + * Returns the fractional part of this decimal number. + * + * Examples: + * + * - `123.456` returns `0.456` + * - `-123.456` returns `-0.456` + * - `123` returns `0` + * - `-123` returns `0` + * - `123.000` returns `0.000` + * + * The result always has the same scale as `$this`. + * + * The following identity holds: `$d->isEqualTo($d->getFractionalPart()->plus($d->getIntegralPart()))`. Note that in + * this identity, the operand order is significant: the reversed form throws when the fractional part is non-zero. + * + * @pure + */ + public function getFractionalPart(): BigDecimal + { + if ($this->scale === 0) { + return BigDecimal::zero(); + } + + return $this->minus($this->getIntegralPart()); } #[Override] public function toBigInteger(): BigInteger { - $zeroScaleDecimal = $this->scale === 0 ? $this : $this->dividedBy(1, 0); + $value = DecimalHelper::tryScaleExactly($this->value, $this->scale, 0); - return self::newBigInteger($zeroScaleDecimal->value); + if ($value !== null) { + return self::newBigInteger($value); + } + + throw RoundingNecessaryException::decimalNotConvertibleToInteger(); } #[Override] @@ -824,17 +1071,27 @@ final readonly class BigDecimal extends BigNumber $numerator = self::newBigInteger($this->value); $denominator = self::newBigInteger('1' . str_repeat('0', $this->scale)); - return self::newBigRational($numerator, $denominator, false); + return self::newBigRational($numerator, $denominator, false, true); } #[Override] public function toScale(int $scale, RoundingMode $roundingMode = RoundingMode::Unnecessary): BigDecimal { + if ($scale < 0) { // @phpstan-ignore smaller.alwaysFalse + throw InvalidArgumentException::negativeScale(); + } + if ($scale === $this->scale) { return $this; } - return $this->dividedBy(BigDecimal::one(), $scale, $roundingMode); + $value = DecimalHelper::scale($this->value, $this->scale, $scale, $roundingMode); + + if ($value === null) { + throw RoundingNecessaryException::decimalScaleTooSmall(); + } + + return new BigDecimal($value, $scale); } #[Override] @@ -860,7 +1117,7 @@ final readonly class BigDecimal extends BigNumber return $this->value; } - $value = $this->getUnscaledValueWithLeadingZeros(); + $value = DecimalHelper::padUnscaledValue($this->value, $this->scale); /** @phpstan-ignore return.type */ return substr($value, 0, -$this->scale) . '.' . substr($value, -$this->scale); @@ -871,7 +1128,7 @@ final readonly class BigDecimal extends BigNumber * * @internal * - * @return array{value: string, scale: int} + * @return array{value: string, scale: non-negative-int} */ public function __serialize(): array { @@ -883,7 +1140,7 @@ final readonly class BigDecimal extends BigNumber * * @internal * - * @param array{value: string, scale: int} $data + * @param array{value: string, scale: non-negative-int} $data * * @throws LogicException */ @@ -941,35 +1198,10 @@ final readonly class BigDecimal extends BigNumber } /** - * Adds leading zeros if necessary to the unscaled value to represent the full decimal number. - * * @pure */ - private function getUnscaledValueWithLeadingZeros(): string + private function isOneScaleZero(): bool { - $value = $this->value; - $targetLength = $this->scale + 1; - $negative = ($value[0] === '-'); - $length = strlen($value); - - if ($negative) { - $length--; - } - - if ($length >= $targetLength) { - return $this->value; - } - - if ($negative) { - $value = substr($value, 1); - } - - $value = str_pad($value, $targetLength, '0', STR_PAD_LEFT); - - if ($negative) { - $value = '-' . $value; - } - - return $value; + return $this->value === '1' && $this->scale === 0; } } diff --git a/vendor/brick/math/src/BigInteger.php b/vendor/brick/math/src/BigInteger.php index bd2383c37..d70fc1ad8 100644 --- a/vendor/brick/math/src/BigInteger.php +++ b/vendor/brick/math/src/BigInteger.php @@ -6,38 +6,39 @@ namespace Brick\Math; use Brick\Math\Exception\DivisionByZeroException; use Brick\Math\Exception\IntegerOverflowException; +use Brick\Math\Exception\InvalidArgumentException; use Brick\Math\Exception\MathException; use Brick\Math\Exception\NegativeNumberException; +use Brick\Math\Exception\NoInverseException; use Brick\Math\Exception\NumberFormatException; +use Brick\Math\Exception\RandomSourceException; use Brick\Math\Exception\RoundingNecessaryException; use Brick\Math\Internal\Calculator; use Brick\Math\Internal\CalculatorRegistry; -use InvalidArgumentException; +use Brick\Math\Internal\Safe; use LogicException; use Override; +use Throwable; +use function array_map; use function assert; use function bin2hex; use function chr; use function count_chars; use function filter_var; -use function func_num_args; use function hex2bin; use function in_array; use function intdiv; +use function is_string; use function ltrim; use function ord; use function preg_match; use function preg_quote; use function random_bytes; -use function sprintf; use function str_repeat; use function strlen; -use function strtolower; use function substr; -use function trigger_error; -use const E_USER_DEPRECATED; use const FILTER_VALIDATE_INT; /** @@ -78,8 +79,8 @@ final readonly class BigInteger extends BigNumber * * For bases greater than 36, and/or custom alphabets, use the fromArbitraryBase() method. * - * @param string $number The number to convert, in the given base. - * @param int $base The base of the number, between 2 and 36. + * @param non-empty-string $number The number to convert, in the given base. + * @param int<2, 36> $base The base of the number, between 2 and 36. * * @throws NumberFormatException If the number is empty, or contains invalid chars for the given base. * @throws InvalidArgumentException If the base is out of range. @@ -88,14 +89,16 @@ final readonly class BigInteger extends BigNumber */ public static function fromBase(string $number, int $base): BigInteger { - if ($number === '') { - throw new NumberFormatException('The number must not be empty.'); + if ($base < 2 || $base > 36) { // @phpstan-ignore smaller.alwaysFalse, greater.alwaysFalse, booleanOr.alwaysFalse + throw InvalidArgumentException::baseOutOfRange($base); } - if ($base < 2 || $base > 36) { - throw new InvalidArgumentException(sprintf('Base %d is not in range 2 to 36.', $base)); + if ($number === '') { // @phpstan-ignore identical.alwaysFalse + throw NumberFormatException::emptyNumber(); } + $originalNumber = $number; + if ($number[0] === '-') { $sign = '-'; $number = substr($number, 1); @@ -107,7 +110,7 @@ final readonly class BigInteger extends BigNumber } if ($number === '') { - throw new NumberFormatException('The number must not be empty.'); + throw NumberFormatException::invalidFormat($originalNumber); } $number = ltrim($number, '0'); @@ -122,10 +125,10 @@ final readonly class BigInteger extends BigNumber return new BigInteger($sign . '1'); } - $pattern = '/[^' . substr(Calculator::ALPHABET, 0, $base) . ']/'; + $pattern = '/[^' . substr(Calculator::ALPHABET, 0, $base) . ']/i'; - if (preg_match($pattern, strtolower($number), $matches) === 1) { - throw new NumberFormatException(sprintf('"%s" is not a valid character in base %d.', $matches[0], $base)); + if (preg_match($pattern, $number, $matches) === 1) { + throw NumberFormatException::charNotValidInBase($matches[0], $base); } if ($base === 10) { @@ -146,8 +149,8 @@ final readonly class BigInteger extends BigNumber * * Because this method accepts any single-byte character, including dash, it does not handle negative numbers. * - * @param string $number The number to parse. - * @param string $alphabet The alphabet, for example '01' for base 2, or '01234567' for base 8. + * @param non-empty-string $number The number to parse. + * @param non-empty-string $alphabet The alphabet, for example '01' for base 2, or '01234567' for base 8. * * @throws NumberFormatException If the given number is empty or contains invalid chars for the given alphabet. * @throws InvalidArgumentException If the alphabet does not contain at least 2 chars, or contains duplicates. @@ -156,18 +159,18 @@ final readonly class BigInteger extends BigNumber */ public static function fromArbitraryBase(string $number, string $alphabet): BigInteger { - if ($number === '') { - throw new NumberFormatException('The number must not be empty.'); - } - $base = strlen($alphabet); if ($base < 2) { - throw new InvalidArgumentException('The alphabet must contain at least 2 chars.'); + throw InvalidArgumentException::alphabetTooShort(); } if (strlen(count_chars($alphabet, 3)) !== $base) { - throw new InvalidArgumentException('The alphabet must not contain duplicate chars.'); + throw InvalidArgumentException::duplicateCharsInAlphabet(); + } + + if ($number === '') { // @phpstan-ignore identical.alwaysFalse + throw NumberFormatException::emptyNumber(); } $pattern = '/[^' . preg_quote($alphabet, '/') . ']/'; @@ -192,31 +195,31 @@ final readonly class BigInteger extends BigNumber * * This method can be used to retrieve a number exported by `toBytes()`, as long as the `$signed` flags match. * - * @param string $value The byte string. - * @param bool $signed Whether to interpret as a signed number in two's-complement representation with a leading - * sign bit. + * @param non-empty-string $bytes The byte string. + * @param bool $signed Whether to interpret as a signed number in two's-complement representation with a leading + * sign bit. * * @throws NumberFormatException If the string is empty. * * @pure */ - public static function fromBytes(string $value, bool $signed = true): BigInteger + public static function fromBytes(string $bytes, bool $signed = true): BigInteger { - if ($value === '') { - throw new NumberFormatException('The byte string must not be empty.'); + if ($bytes === '') { // @phpstan-ignore identical.alwaysFalse + throw NumberFormatException::emptyByteString(); } $twosComplement = false; if ($signed) { - $x = ord($value[0]); + $x = ord($bytes[0]); if (($twosComplement = ($x >= 0x80))) { - $value = ~$value; + $bytes = ~$bytes; } } - $number = self::fromBase(bin2hex($value), 16); + $number = self::fromBase(bin2hex($bytes), 16); if ($twosComplement) { return $number->plus(1)->negated(); @@ -226,38 +229,35 @@ final readonly class BigInteger extends BigNumber } /** - * Generates a pseudo-random number in the range 0 to 2^numBits - 1. + * Generates a pseudo-random number in the range 0 to 2^bitCount - 1. * * Using the default random bytes generator, this method is suitable for cryptographic use. * - * @param int $numBits The number of bits. + * @param non-negative-int $bitCount The number of bits. * @param (callable(int): string)|null $randomBytesGenerator A function that accepts a number of bytes, and returns * a string of random bytes of the given length. Defaults * to the `random_bytes()` function. * - * @throws InvalidArgumentException If $numBits is negative. + * @throws InvalidArgumentException If $bitCount is negative. + * @throws RandomSourceException If random byte generation fails. */ - public static function randomBits(int $numBits, ?callable $randomBytesGenerator = null): BigInteger + public static function randomBits(int $bitCount, ?callable $randomBytesGenerator = null): BigInteger { - if ($numBits < 0) { - throw new InvalidArgumentException('The number of bits must not be negative.'); + if ($bitCount < 0) { // @phpstan-ignore smaller.alwaysFalse + throw InvalidArgumentException::negativeBitCount(); } - if ($numBits === 0) { + if ($bitCount === 0) { return BigInteger::zero(); } - if ($randomBytesGenerator === null) { - $randomBytesGenerator = random_bytes(...); - } - /** @var int<1, max> $byteLength */ - $byteLength = intdiv($numBits - 1, 8) + 1; + $byteLength = intdiv($bitCount - 1, 8) + 1; - $extraBits = ($byteLength * 8 - $numBits); + $extraBits = ($byteLength * 8 - $bitCount); $bitmask = chr(0xFF >> $extraBits); - $randomBytes = $randomBytesGenerator($byteLength); + $randomBytes = self::randomBytes($byteLength, $randomBytesGenerator); $randomBytes[0] = $randomBytes[0] & $bitmask; return self::fromBytes($randomBytes, false); @@ -268,25 +268,26 @@ final readonly class BigInteger extends BigNumber * * Using the default random bytes generator, this method is suitable for cryptographic use. * - * @param BigNumber|int|float|string $min The lower bound. Must be convertible to a BigInteger. - * @param BigNumber|int|float|string $max The upper bound. Must be convertible to a BigInteger. + * @param BigNumber|int|string $min The lower bound. Must be convertible to a BigInteger. + * @param BigNumber|int|string $max The upper bound. Must be convertible to a BigInteger. * @param (callable(int): string)|null $randomBytesGenerator A function that accepts a number of bytes, and returns * a string of random bytes of the given length. Defaults * to the `random_bytes()` function. * - * @throws MathException If one of the parameters cannot be converted to a BigInteger, - * or `$min` is greater than `$max`. + * @throws MathException If one of the parameters cannot be converted to a BigInteger. + * @throws InvalidArgumentException If `$min` is greater than `$max`. + * @throws RandomSourceException If random byte generation fails. */ public static function randomRange( - BigNumber|int|float|string $min, - BigNumber|int|float|string $max, + BigNumber|int|string $min, + BigNumber|int|string $max, ?callable $randomBytesGenerator = null, ): BigInteger { $min = BigInteger::of($min); $max = BigInteger::of($max); if ($min->isGreaterThan($max)) { - throw new MathException('$min must be less than or equal to $max.'); + throw InvalidArgumentException::minGreaterThanMax(); } if ($min->isEqualTo($max)) { @@ -360,19 +361,21 @@ final readonly class BigInteger extends BigNumber * * The GCD is always positive, unless all numbers are zero, in which case it is zero. * - * @param BigNumber|int|float|string $a The first number. Must be convertible to a BigInteger. - * @param BigNumber|int|float|string ...$n The additional numbers. Each number must be convertible to a BigInteger. + * @param BigNumber|int|string $a The first number. Must be convertible to a BigInteger. + * @param BigNumber|int|string ...$n The additional numbers. Each number must be convertible to a BigInteger. * * @throws MathException If one of the parameters cannot be converted to a BigInteger. * * @pure */ - public static function gcdAll(BigNumber|int|float|string $a, BigNumber|int|float|string ...$n): BigInteger + public static function gcdAll(BigNumber|int|string $a, BigNumber|int|string ...$n): BigInteger { $result = BigInteger::of($a)->abs(); + $n = array_map(BigInteger::of(...), $n); // @phpstan-ignore possiblyImpure.functionCall + foreach ($n as $next) { - $result = $result->gcd(BigInteger::of($next)); + $result = $result->gcd($next); if ($result->isEqualTo(1)) { return $result; @@ -387,19 +390,21 @@ final readonly class BigInteger extends BigNumber * * The LCM is always positive, unless one of the numbers is zero, in which case it is zero. * - * @param BigNumber|int|float|string $a The first number. Must be convertible to a BigInteger. - * @param BigNumber|int|float|string ...$n The additional numbers. Each number must be convertible to a BigInteger. + * @param BigNumber|int|string $a The first number. Must be convertible to a BigInteger. + * @param BigNumber|int|string ...$n The additional numbers. Each number must be convertible to a BigInteger. * * @throws MathException If one of the parameters cannot be converted to a BigInteger. * * @pure */ - public static function lcmAll(BigNumber|int|float|string $a, BigNumber|int|float|string ...$n): BigInteger + public static function lcmAll(BigNumber|int|string $a, BigNumber|int|string ...$n): BigInteger { $result = BigInteger::of($a)->abs(); + $n = array_map(BigInteger::of(...), $n); // @phpstan-ignore possiblyImpure.functionCall + foreach ($n as $next) { - $result = $result->lcm(BigInteger::of($next)); + $result = $result->lcm($next); if ($result->isZero()) { return $result; @@ -409,40 +414,24 @@ final readonly class BigInteger extends BigNumber return $result; } - /** - * @deprecated Use gcdAll() instead. - * - * @param BigNumber|int|float|string $a The first number. Must be convertible to a BigInteger. - * @param BigNumber|int|float|string ...$n The subsequent numbers. Must be convertible to BigInteger. - */ - public static function gcdMultiple(BigNumber|int|float|string $a, BigNumber|int|float|string ...$n): BigInteger - { - trigger_error( - 'BigInteger::gcdMultiple() is deprecated and will be removed in version 0.15. Use gcdAll() instead.', - E_USER_DEPRECATED, - ); - - return self::gcdAll($a, ...$n); - } - /** * Returns the sum of this number and the given one. * - * @param BigNumber|int|float|string $that The number to add. Must be convertible to a BigInteger. + * @param BigNumber|int|string $that The number to add. Must be convertible to a BigInteger. * * @throws MathException If the number is not valid, or is not convertible to a BigInteger. * * @pure */ - public function plus(BigNumber|int|float|string $that): BigInteger + public function plus(BigNumber|int|string $that): BigInteger { $that = BigInteger::of($that); - if ($that->value === '0') { + if ($that->isZero()) { return $this; } - if ($this->value === '0') { + if ($this->isZero()) { return $that; } @@ -454,20 +443,24 @@ final readonly class BigInteger extends BigNumber /** * Returns the difference of this number and the given one. * - * @param BigNumber|int|float|string $that The number to subtract. Must be convertible to a BigInteger. + * @param BigNumber|int|string $that The number to subtract. Must be convertible to a BigInteger. * * @throws MathException If the number is not valid, or is not convertible to a BigInteger. * * @pure */ - public function minus(BigNumber|int|float|string $that): BigInteger + public function minus(BigNumber|int|string $that): BigInteger { $that = BigInteger::of($that); - if ($that->value === '0') { + if ($that->isZero()) { return $this; } + if ($this->isZero()) { + return $that->negated(); + } + $value = CalculatorRegistry::get()->sub($this->value, $that->value); return new BigInteger($value); @@ -476,21 +469,21 @@ final readonly class BigInteger extends BigNumber /** * Returns the product of this number and the given one. * - * @param BigNumber|int|float|string $that The multiplier. Must be convertible to a BigInteger. + * @param BigNumber|int|string $that The multiplier. Must be convertible to a BigInteger. * * @throws MathException If the multiplier is not valid, or is not convertible to a BigInteger. * * @pure */ - public function multipliedBy(BigNumber|int|float|string $that): BigInteger + public function multipliedBy(BigNumber|int|string $that): BigInteger { $that = BigInteger::of($that); - if ($that->value === '1') { + if ($that->isOne()) { return $this; } - if ($this->value === '1') { + if ($this->isOne()) { return $that; } @@ -502,8 +495,8 @@ final readonly class BigInteger extends BigNumber /** * Returns the result of the division of this number by the given one. * - * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger. - * @param RoundingMode $roundingMode An optional rounding mode, defaults to Unnecessary. + * @param BigNumber|int|string $that The divisor. Must be convertible to a BigInteger. + * @param RoundingMode $roundingMode An optional rounding mode, defaults to Unnecessary. * * @throws MathException If the divisor is not valid, or is not convertible to a BigInteger. * @throws DivisionByZeroException If the divisor is zero. @@ -511,27 +504,37 @@ final readonly class BigInteger extends BigNumber * * @pure */ - public function dividedBy(BigNumber|int|float|string $that, RoundingMode $roundingMode = RoundingMode::Unnecessary): BigInteger + public function dividedBy(BigNumber|int|string $that, RoundingMode $roundingMode = RoundingMode::Unnecessary): BigInteger { $that = BigInteger::of($that); - if ($that->value === '1') { - return $this; - } - - if ($that->value === '0') { + if ($that->isZero()) { throw DivisionByZeroException::divisionByZero(); } + if ($that->isOne()) { + return $this; + } + + if ($that->isMinusOne()) { + return $this->negated(); + } + $result = CalculatorRegistry::get()->divRound($this->value, $that->value, $roundingMode); + if ($result === null) { + throw RoundingNecessaryException::integerDivisionNotExact(); + } + return new BigInteger($result); } /** * Returns this number exponentiated to the given value. * - * @throws InvalidArgumentException If the exponent is not in the range 0 to 1,000,000. + * @param non-negative-int $exponent + * + * @throws InvalidArgumentException If the exponent is negative. * * @pure */ @@ -545,12 +548,8 @@ final readonly class BigInteger extends BigNumber return $this; } - if ($exponent < 0 || $exponent > Calculator::MAX_POWER) { - throw new InvalidArgumentException(sprintf( - 'The exponent %d is not in the range 0 to %d.', - $exponent, - Calculator::MAX_POWER, - )); + if ($exponent < 0) { // @phpstan-ignore smaller.alwaysFalse + throw InvalidArgumentException::negativeExponent(); } return new BigInteger(CalculatorRegistry::get()->pow($this->value, $exponent)); @@ -566,23 +565,27 @@ final readonly class BigInteger extends BigNumber * - `-7` quotient `3` returns `-2` * - `-7` quotient `-3` returns `2` * - * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger. + * @param BigNumber|int|string $that The divisor. Must be convertible to a BigInteger. * * @throws MathException If the divisor is not valid, or is not convertible to a BigInteger. * @throws DivisionByZeroException If the divisor is zero. * * @pure */ - public function quotient(BigNumber|int|float|string $that): BigInteger + public function quotient(BigNumber|int|string $that): BigInteger { $that = BigInteger::of($that); - if ($that->value === '1') { + if ($that->isZero()) { + throw DivisionByZeroException::divisionByZero(); + } + + if ($that->isOne()) { return $this; } - if ($that->value === '0') { - throw DivisionByZeroException::divisionByZero(); + if ($that->isMinusOne()) { + return $this->negated(); } $quotient = CalculatorRegistry::get()->divQ($this->value, $that->value); @@ -602,23 +605,23 @@ final readonly class BigInteger extends BigNumber * - `-7` remainder `3` returns `-1` * - `-7` remainder `-3` returns `-1` * - * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger. + * @param BigNumber|int|string $that The divisor. Must be convertible to a BigInteger. * * @throws MathException If the divisor is not valid, or is not convertible to a BigInteger. * @throws DivisionByZeroException If the divisor is zero. * * @pure */ - public function remainder(BigNumber|int|float|string $that): BigInteger + public function remainder(BigNumber|int|string $that): BigInteger { $that = BigInteger::of($that); - if ($that->value === '1') { - return BigInteger::zero(); + if ($that->isZero()) { + throw DivisionByZeroException::divisionByZero(); } - if ($that->value === '0') { - throw DivisionByZeroException::divisionByZero(); + if ($that->isOne() || $that->isMinusOne()) { + return BigInteger::zero(); } $remainder = CalculatorRegistry::get()->divR($this->value, $that->value); @@ -636,7 +639,7 @@ final readonly class BigInteger extends BigNumber * - `-7` quotientAndRemainder `3` returns [`-2`, `-1`] * - `-7` quotientAndRemainder `-3` returns [`2`, `-1`] * - * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger. + * @param BigNumber|int|string $that The divisor. Must be convertible to a BigInteger. * * @return array{BigInteger, BigInteger} An array containing the quotient and the remainder. * @@ -645,14 +648,22 @@ final readonly class BigInteger extends BigNumber * * @pure */ - public function quotientAndRemainder(BigNumber|int|float|string $that): array + public function quotientAndRemainder(BigNumber|int|string $that): array { $that = BigInteger::of($that); - if ($that->value === '0') { + if ($that->isZero()) { throw DivisionByZeroException::divisionByZero(); } + if ($that->isOne()) { + return [$this, BigInteger::zero()]; + } + + if ($that->isMinusOne()) { + return [$this->negated(), BigInteger::zero()]; + } + [$quotient, $remainder] = CalculatorRegistry::get()->divQR($this->value, $that->value); return [ @@ -662,74 +673,77 @@ final readonly class BigInteger extends BigNumber } /** - * Returns the modulo of this number and the given one. + * Returns this number modulo the given one. * - * The modulo operation yields the same result as the remainder operation when both operands are of the same sign, - * and may differ when signs are different. + * The result is always non-negative, and is the unique value `r` such that `0 <= r < m` + * and `this - r` is a multiple of `m`. * - * The result of the modulo operation, when non-zero, has the same sign as the divisor. + * This is also known as Euclidean modulo. Unlike `remainder()`, which can return negative values + * when the dividend is negative, `mod()` always returns a non-negative result. * - * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger. + * Examples: * - * @throws MathException If the divisor is not valid, or is not convertible to a BigInteger. - * @throws DivisionByZeroException If the divisor is zero. + * - `7` mod `3` returns `1` + * - `-7` mod `3` returns `2` + * + * @param BigNumber|int|string $modulus The modulus. Must be convertible to a BigInteger. + * + * @throws MathException If the modulus is not valid, or is not convertible to a BigInteger. + * @throws InvalidArgumentException If the modulus is negative. + * @throws DivisionByZeroException If the modulus is zero. * * @pure */ - public function mod(BigNumber|int|float|string $that): BigInteger + public function mod(BigNumber|int|string $modulus): BigInteger { - $that = BigInteger::of($that); + $modulus = BigInteger::of($modulus); - if ($that->isZero()) { - throw DivisionByZeroException::modulusMustNotBeZero(); + if ($modulus->isZero()) { + throw DivisionByZeroException::zeroModulus(); } - if ($that->isNegative()) { - // @phpstan-ignore-next-line - trigger_error( - 'Passing a negative modulus to BigInteger::mod() is deprecated and will throw a NegativeNumberException in 0.15.', - E_USER_DEPRECATED, - ); + if ($modulus->isNegative()) { + throw InvalidArgumentException::negativeModulus(); } - $value = CalculatorRegistry::get()->mod($this->value, $that->value); + $value = CalculatorRegistry::get()->mod($this->value, $modulus->value); return new BigInteger($value); } /** - * Returns the modular multiplicative inverse of this BigInteger modulo $m. + * Returns the modular multiplicative inverse of this BigInteger modulo $modulus. * - * @param BigNumber|int|float|string $m The modulus. Must be convertible to a BigInteger. + * @param BigNumber|int|string $modulus The modulus. Must be convertible to a BigInteger. * - * @throws MathException If the modulus is not valid, or is not convertible to a BigInteger. - * @throws DivisionByZeroException If $m is zero. - * @throws NegativeNumberException If $m is negative. - * @throws MathException If this BigInteger has no multiplicative inverse mod m (that is, this BigInteger - * is not relatively prime to m). + * @throws MathException If the modulus is not valid, or is not convertible to a BigInteger. + * @throws InvalidArgumentException If the modulus is negative. + * @throws DivisionByZeroException If the modulus is zero. + * @throws NoInverseException If this BigInteger has no multiplicative inverse mod m (that is, this BigInteger + * is not relatively prime to m). * * @pure */ - public function modInverse(BigNumber|int|float|string $m): BigInteger + public function modInverse(BigNumber|int|string $modulus): BigInteger { - $m = BigInteger::of($m); + $modulus = BigInteger::of($modulus); - if ($m->value === '0') { - throw DivisionByZeroException::modulusMustNotBeZero(); + if ($modulus->isZero()) { + throw DivisionByZeroException::zeroModulus(); } - if ($m->isNegative()) { - throw new NegativeNumberException('Modulus must not be negative.'); + if ($modulus->isNegative()) { + throw InvalidArgumentException::negativeModulus(); } - if ($m->value === '1') { + if ($modulus->isOne()) { return BigInteger::zero(); } - $value = CalculatorRegistry::get()->modInverse($this->value, $m->value); + $value = CalculatorRegistry::get()->modInverse($this->value, $modulus->value); if ($value === null) { - throw new MathException('Unable to compute the modInverse for the given modulus.'); + throw NoInverseException::noModularInverse(); } return new BigInteger($value); @@ -740,33 +754,33 @@ final readonly class BigInteger extends BigNumber * * This operation requires a non-negative exponent and a strictly positive modulus. * - * @param BigNumber|int|float|string $exp The exponent. Must be convertible to a BigInteger. - * @param BigNumber|int|float|string $mod The modulus. Must be convertible to a BigInteger. + * @param BigNumber|int|string $exponent The exponent. Must be convertible to a BigInteger. + * @param BigNumber|int|string $modulus The modulus. Must be convertible to a BigInteger. * - * @throws MathException If the exponent or modulus is not valid, or is not convertible to a BigInteger. - * @throws NegativeNumberException If the exponent or modulus is negative. - * @throws DivisionByZeroException If the modulus is zero. + * @throws MathException If the exponent or modulus is not valid, or is not convertible to a BigInteger. + * @throws InvalidArgumentException If the exponent or modulus is negative. + * @throws DivisionByZeroException If the modulus is zero. * * @pure */ - public function modPow(BigNumber|int|float|string $exp, BigNumber|int|float|string $mod): BigInteger + public function modPow(BigNumber|int|string $exponent, BigNumber|int|string $modulus): BigInteger { - $exp = BigInteger::of($exp); - $mod = BigInteger::of($mod); + $exponent = BigInteger::of($exponent); + $modulus = BigInteger::of($modulus); - if ($exp->isNegative()) { - throw new NegativeNumberException('The exponent cannot be negative.'); + if ($modulus->isZero()) { + throw DivisionByZeroException::zeroModulus(); } - if ($mod->isNegative()) { - throw new NegativeNumberException('The modulus cannot be negative.'); + if ($modulus->isNegative()) { + throw InvalidArgumentException::negativeModulus(); } - if ($mod->isZero()) { - throw DivisionByZeroException::modulusMustNotBeZero(); + if ($exponent->isNegative()) { + throw InvalidArgumentException::negativeExponent(); } - $result = CalculatorRegistry::get()->modPow($this->value, $exp->value, $mod->value); + $result = CalculatorRegistry::get()->modPow($this->value, $exponent->value, $modulus->value); return new BigInteger($result); } @@ -776,22 +790,22 @@ final readonly class BigInteger extends BigNumber * * The GCD is always positive, unless both operands are zero, in which case it is zero. * - * @param BigNumber|int|float|string $that The operand. Must be convertible to a BigInteger. + * @param BigNumber|int|string $that The operand. Must be convertible to a BigInteger. * * @throws MathException If the operand is not valid, or is not convertible to a BigInteger. * * @pure */ - public function gcd(BigNumber|int|float|string $that): BigInteger + public function gcd(BigNumber|int|string $that): BigInteger { $that = BigInteger::of($that); - if ($that->value === '0' && $this->value[0] !== '-') { - return $this; + if ($that->isZero()) { + return $this->abs(); } - if ($this->value === '0' && $that->value[0] !== '-') { - return $that; + if ($this->isZero()) { + return $that->abs(); } $value = CalculatorRegistry::get()->gcd($this->value, $that->value); @@ -804,13 +818,13 @@ final readonly class BigInteger extends BigNumber * * The LCM is always positive, unless at least one operand is zero, in which case it is zero. * - * @param BigNumber|int|float|string $that The operand. Must be convertible to a BigInteger. + * @param BigNumber|int|string $that The operand. Must be convertible to a BigInteger. * * @throws MathException If the operand is not valid, or is not convertible to a BigInteger. * * @pure */ - public function lcm(BigNumber|int|float|string $that): BigInteger + public function lcm(BigNumber|int|string $that): BigInteger { $that = BigInteger::of($that); @@ -826,29 +840,17 @@ final readonly class BigInteger extends BigNumber /** * Returns the integer square root of this number, rounded according to the given rounding mode. * - * @param RoundingMode $roundingMode The rounding mode to use, defaults to Down. - * ⚠️ WARNING: the default rounding mode was kept as Down for backward - * compatibility, but will change to Unnecessary in version 0.15. Pass a rounding - * mode explicitly to avoid this upcoming breaking change. + * @param RoundingMode $roundingMode An optional rounding mode, defaults to Unnecessary. * * @throws NegativeNumberException If this number is negative. * @throws RoundingNecessaryException If RoundingMode::Unnecessary is used, and the number is not a perfect square. * * @pure */ - public function sqrt(RoundingMode $roundingMode = RoundingMode::Down): BigInteger + public function sqrt(RoundingMode $roundingMode = RoundingMode::Unnecessary): BigInteger { - if (func_num_args() === 0) { - // @phpstan-ignore-next-line - trigger_error( - 'The default rounding mode of BigInteger::sqrt() will change from Down to Unnecessary in version 0.15. ' . - 'Pass a rounding mode explicitly to avoid this breaking change.', - E_USER_DEPRECATED, - ); - } - - if ($this->value[0] === '-') { - throw new NegativeNumberException('Cannot calculate the square root of a negative number.'); + if ($this->isNegative()) { + throw NegativeNumberException::squareRootOfNegativeNumber(); } $calculator = CalculatorRegistry::get(); @@ -871,7 +873,7 @@ final readonly class BigInteger extends BigNumber // sqrt is not exact if ($roundingMode === RoundingMode::Unnecessary) { - throw RoundingNecessaryException::roundingNecessary(); + throw RoundingNecessaryException::integerSquareRootNotExact(); } // For Up and Ceiling (equivalent for non-negative numbers), round up @@ -899,6 +901,85 @@ final readonly class BigInteger extends BigNumber return new BigInteger($sqrt); } + /** + * Returns the integer nth root of this number, rounded according to the given rounding mode. + * + * For odd $n, the operation is defined for negative inputs: the sign is preserved and the + * magnitude of the root is |$this|^(1/$n). + * + * @param positive-int $n The root degree. Must be a strictly positive integer. + * @param RoundingMode $roundingMode An optional rounding mode, defaults to Unnecessary. + * + * @throws InvalidArgumentException If $n is less than 1. + * @throws NegativeNumberException If this number is negative and $n is even. + * @throws RoundingNecessaryException If RoundingMode::Unnecessary is used, and this number is not a perfect nth power. + * + * @pure + */ + public function nthRoot(int $n, RoundingMode $roundingMode = RoundingMode::Unnecessary): BigInteger + { + if ($n < 1) { // @phpstan-ignore smaller.alwaysFalse + throw InvalidArgumentException::nonPositiveNthRootDegree(); + } + + if ($n === 1) { + return $this; + } + + $isNegative = $this->isNegative(); + + if ($isNegative && $n % 2 === 0) { + throw NegativeNumberException::nthRootOfNegativeNumber(); + } + + $calculator = CalculatorRegistry::get(); + + // Truncation toward zero: for positive $this this is the floor root, for negative $this + // with odd $n this is the ceiling of the true root (i.e., the root of smaller magnitude). + $truncatedRoot = $calculator->nthRoot($this->value, $n); + $rootPow = $calculator->pow($truncatedRoot, $n); + + if ($rootPow === $this->value) { + return new BigInteger($truncatedRoot); + } + + if ($roundingMode === RoundingMode::Unnecessary) { + throw RoundingNecessaryException::integerNthRootNotExact(); + } + + $isPositive = ! $isNegative; + + // The next-step root is one unit further from zero than the truncated root. + $nextStep = $isPositive + ? $calculator->add($truncatedRoot, '1') + : $calculator->sub($truncatedRoot, '1'); + + if ($roundingMode === RoundingMode::Up) { + $increment = true; + } elseif ($roundingMode === RoundingMode::Down) { + $increment = false; + } elseif ($roundingMode === RoundingMode::Ceiling) { + $increment = $isPositive; + } elseif ($roundingMode === RoundingMode::Floor) { + $increment = ! $isPositive; + } else { + // Half* modes: increment iff |$this| > (|truncated| + 0.5)^n, equivalently + // 2^n * |$this| > (2*|truncated| + 1)^n. The rhs is odd while the lhs is even + // (n ≥ 2 here, so 2^n is even), so a midpoint tie is impossible and all five + // Half* modes collapse to the same comparison. + $absValue = $calculator->abs($this->value); + $absTruncated = $calculator->abs($truncatedRoot); + $twoAbsRootPlus1 = $calculator->add($calculator->mul($absTruncated, '2'), '1'); + + $lhs = $calculator->mul($calculator->pow('2', $n), $absValue); + $rhs = $calculator->pow($twoAbsRootPlus1, $n); + + $increment = $calculator->cmp($lhs, $rhs) > 0; + } + + return new BigInteger($increment ? $nextStep : $truncatedRoot); + } + #[Override] public function negated(): static { @@ -910,13 +991,13 @@ final readonly class BigInteger extends BigNumber * * This method returns a negative BigInteger if and only if both operands are negative. * - * @param BigNumber|int|float|string $that The operand. Must be convertible to a BigInteger. + * @param BigNumber|int|string $that The operand. Must be convertible to a BigInteger. * * @throws MathException If the operand is not valid, or is not convertible to a BigInteger. * * @pure */ - public function and(BigNumber|int|float|string $that): BigInteger + public function and(BigNumber|int|string $that): BigInteger { $that = BigInteger::of($that); @@ -928,13 +1009,13 @@ final readonly class BigInteger extends BigNumber * * This method returns a negative BigInteger if and only if either of the operands is negative. * - * @param BigNumber|int|float|string $that The operand. Must be convertible to a BigInteger. + * @param BigNumber|int|string $that The operand. Must be convertible to a BigInteger. * * @throws MathException If the operand is not valid, or is not convertible to a BigInteger. * * @pure */ - public function or(BigNumber|int|float|string $that): BigInteger + public function or(BigNumber|int|string $that): BigInteger { $that = BigInteger::of($that); @@ -946,13 +1027,13 @@ final readonly class BigInteger extends BigNumber * * This method returns a negative BigInteger if and only if exactly one of the operands is negative. * - * @param BigNumber|int|float|string $that The operand. Must be convertible to a BigInteger. + * @param BigNumber|int|string $that The operand. Must be convertible to a BigInteger. * * @throws MathException If the operand is not valid, or is not convertible to a BigInteger. * * @pure */ - public function xor(BigNumber|int|float|string $that): BigInteger + public function xor(BigNumber|int|string $that): BigInteger { $that = BigInteger::of($that); @@ -972,41 +1053,41 @@ final readonly class BigInteger extends BigNumber /** * Returns the integer left shifted by a given number of bits. * - * @throws InvalidArgumentException If the number of bits is out of range. + * If $bits is negative, the integer is shifted right by the absolute value instead. * * @pure */ - public function shiftedLeft(int $distance): BigInteger + public function shiftedLeft(int $bits): BigInteger { - if ($distance === 0) { + if ($bits === 0) { return $this; } - if ($distance < 0) { - return $this->shiftedRight(-$distance); + if ($bits < 0) { + return $this->shiftedRight(Safe::neg($bits)); } - return $this->multipliedBy(BigInteger::of(2)->power($distance)); + return $this->multipliedBy(BigInteger::of(2)->power($bits)); } /** * Returns the integer right shifted by a given number of bits. * - * @throws InvalidArgumentException If the number of bits is out of range. + * If $bits is negative, the integer is shifted left by the absolute value instead. * * @pure */ - public function shiftedRight(int $distance): BigInteger + public function shiftedRight(int $bits): BigInteger { - if ($distance === 0) { + if ($bits === 0) { return $this; } - if ($distance < 0) { - return $this->shiftedLeft(-$distance); + if ($bits < 0) { + return $this->shiftedLeft(Safe::neg($bits)); } - $operand = BigInteger::of(2)->power($distance); + $operand = BigInteger::of(2)->power($bits); if ($this->isPositiveOrZero()) { return $this->quotient($operand); @@ -1021,11 +1102,13 @@ final readonly class BigInteger extends BigNumber * For positive BigIntegers, this is equivalent to the number of bits in the ordinary binary representation. * Computes (ceil(log2(this < 0 ? -this : this+1))). * + * @return non-negative-int + * * @pure */ public function getBitLength(): int { - if ($this->value === '0') { + if ($this->isZero()) { return 0; } @@ -1039,11 +1122,13 @@ final readonly class BigInteger extends BigNumber /** * Returns the index of the rightmost (lowest-order) one bit in this BigInteger. * - * Returns -1 if this BigInteger contains no one bits. + * Returns null if this BigInteger is zero. + * + * @return non-negative-int|null * * @pure */ - public function getLowestSetBit(): int + public function getLowestSetBit(): ?int { $n = $this; $bitLength = $this->getBitLength(); @@ -1056,27 +1141,27 @@ final readonly class BigInteger extends BigNumber $n = $n->shiftedRight(1); } - return -1; + return null; } /** * Returns true if and only if the designated bit is set. * - * Computes ((this & (1<shiftedRight($n)->isOdd(); + return $this->shiftedRight($bitIndex)->isOdd(); } /** @@ -1099,29 +1184,8 @@ final readonly class BigInteger extends BigNumber return in_array($this->value[-1], ['1', '3', '5', '7', '9'], true); } - /** - * Returns true if and only if the designated bit is set. - * - * Computes ((this & (1<isBitSet($n); - } - #[Override] - public function compareTo(BigNumber|int|float|string $that): int + public function compareTo(BigNumber|int|string $that): int { $that = BigNumber::of($that); @@ -1153,7 +1217,7 @@ final readonly class BigInteger extends BigNumber #[Override] public function toBigRational(): BigRational { - return self::newBigRational($this, BigInteger::one(), false); + return self::newBigRational($this, BigInteger::one(), false, false); } #[Override] @@ -1168,7 +1232,7 @@ final readonly class BigInteger extends BigNumber $intValue = filter_var($this->value, FILTER_VALIDATE_INT); if ($intValue === false) { - throw IntegerOverflowException::toIntOverflow($this); + throw IntegerOverflowException::integerOutOfRange($this); } return $intValue; @@ -1185,6 +1249,10 @@ final readonly class BigInteger extends BigNumber * * The output will always be lowercase for bases greater than 10. * + * @param int<2, 36> $base + * + * @return non-empty-string + * * @throws InvalidArgumentException If the base is out of range. * * @pure @@ -1192,13 +1260,15 @@ final readonly class BigInteger extends BigNumber public function toBase(int $base): string { if ($base === 10) { + /** @var non-empty-string */ return $this->value; } - if ($base < 2 || $base > 36) { - throw new InvalidArgumentException(sprintf('Base %d is out of range [2, 36]', $base)); + if ($base < 2 || $base > 36) { // @phpstan-ignore smaller.alwaysFalse, greater.alwaysFalse, booleanOr.alwaysFalse + throw InvalidArgumentException::baseOutOfRange($base); } + /** @var non-empty-string */ return CalculatorRegistry::get()->toBase($this->value, $base); } @@ -1211,10 +1281,12 @@ final readonly class BigInteger extends BigNumber * Because this method accepts any single-byte character, including dash, it does not handle negative numbers; * a NegativeNumberException will be thrown when attempting to call this method on a negative number. * - * @param string $alphabet The alphabet, for example '01' for base 2, or '01234567' for base 8. + * @param non-empty-string $alphabet The alphabet, for example '01' for base 2, or '01234567' for base 8. + * + * @return non-empty-string * - * @throws NegativeNumberException If this number is negative. * @throws InvalidArgumentException If the alphabet does not contain at least 2 chars, or contains duplicates. + * @throws NegativeNumberException If this number is negative. * * @pure */ @@ -1223,17 +1295,18 @@ final readonly class BigInteger extends BigNumber $base = strlen($alphabet); if ($base < 2) { - throw new InvalidArgumentException('The alphabet must contain at least 2 chars.'); + throw InvalidArgumentException::alphabetTooShort(); } if (strlen(count_chars($alphabet, 3)) !== $base) { - throw new InvalidArgumentException('The alphabet must not contain duplicate chars.'); + throw InvalidArgumentException::duplicateCharsInAlphabet(); } - if ($this->value[0] === '-') { - throw new NegativeNumberException(__FUNCTION__ . '() does not support negative numbers.'); + if ($this->isNegative()) { + throw NegativeNumberException::toArbitraryBaseOfNegativeNumber(); } + /** @var non-empty-string */ return CalculatorRegistry::get()->toArbitraryBase($this->value, $alphabet, $base); } @@ -1253,6 +1326,8 @@ final readonly class BigInteger extends BigNumber * * @param bool $signed Whether to output a signed number in two's-complement representation with a leading sign bit. * + * @return non-empty-string + * * @throws NegativeNumberException If $signed is false, and the number is negative. * * @pure @@ -1260,7 +1335,7 @@ final readonly class BigInteger extends BigNumber public function toBytes(bool $signed = true): string { if (! $signed && $this->isNegative()) { - throw new NegativeNumberException('Cannot convert a negative number to a byte string when $signed is false.'); + throw NegativeNumberException::unsignedBytesOfNegativeNumber(); } $hex = $this->abs()->toBase(16); @@ -1276,6 +1351,7 @@ final readonly class BigInteger extends BigNumber $bin = hex2bin($hex); assert($bin !== false); + /** @var non-empty-string $hex */ $hex = bin2hex(~$bin); $hex = self::fromBase($hex, 16)->plus(1)->toBase(16); @@ -1298,6 +1374,7 @@ final readonly class BigInteger extends BigNumber $result = hex2bin($hex); assert($result !== false); + /** @var non-empty-string */ return $result; } @@ -1348,4 +1425,52 @@ final readonly class BigInteger extends BigNumber { return $number->toBigInteger(); } + + /** + * Returns random bytes from the provided generator or from random_bytes(). + * + * @param int $byteLength The number of requested bytes. + * @param (callable(int): string)|null $randomBytesGenerator The random bytes generator, or null to use random_bytes(). + * + * @throws RandomSourceException If random byte generation fails. + */ + private static function randomBytes(int $byteLength, ?callable $randomBytesGenerator): string + { + if ($randomBytesGenerator === null) { + $randomBytesGenerator = random_bytes(...); + } + + try { + $randomBytes = $randomBytesGenerator($byteLength); + } catch (Throwable $e) { + throw RandomSourceException::randomSourceFailure($e); + } + + /** @phpstan-ignore function.alreadyNarrowedType (Defensive runtime check for user-provided callbacks) */ + if (! is_string($randomBytes)) { + throw RandomSourceException::invalidRandomBytesType($randomBytes); + } + + if (strlen($randomBytes) !== $byteLength) { + throw RandomSourceException::invalidRandomBytesLength($byteLength, strlen($randomBytes)); + } + + return $randomBytes; + } + + /** + * @pure + */ + private function isOne(): bool + { + return $this->value === '1'; + } + + /** + * @pure + */ + private function isMinusOne(): bool + { + return $this->value === '-1'; + } } diff --git a/vendor/brick/math/src/BigNumber.php b/vendor/brick/math/src/BigNumber.php index ec9d64cb5..9e472daed 100644 --- a/vendor/brick/math/src/BigNumber.php +++ b/vendor/brick/math/src/BigNumber.php @@ -5,20 +5,19 @@ declare(strict_types=1); namespace Brick\Math; use Brick\Math\Exception\DivisionByZeroException; +use Brick\Math\Exception\IntegerOverflowException; +use Brick\Math\Exception\InvalidArgumentException; use Brick\Math\Exception\MathException; use Brick\Math\Exception\NumberFormatException; use Brick\Math\Exception\RoundingNecessaryException; -use InvalidArgumentException; +use Brick\Math\Internal\Safe; use JsonSerializable; use Override; use Stringable; -use function array_shift; use function assert; use function filter_var; -use function is_float; use function is_int; -use function is_nan; use function is_null; use function ltrim; use function preg_match; @@ -26,9 +25,7 @@ use function str_contains; use function str_repeat; use function strlen; use function substr; -use function trigger_error; -use const E_USER_DEPRECATED; use const FILTER_VALIDATE_INT; use const PREG_UNMATCHED_AS_NULL; @@ -44,6 +41,8 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable { /** * The regular expression used to parse integer or decimal numbers. + * + * The end anchor must be \z, not $: the latter would also match before a trailing newline. */ private const PARSE_REGEXP_NUMERICAL = '/^' . @@ -52,10 +51,12 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable '(?\.)?' . '(?[0-9]+)?' . '(?:[eE](?[\-\+]?[0-9]+))?' . - '$/'; + '\z/'; /** * The regular expression used to parse rational numbers. + * + * The end anchor must be \z, not $: the latter would also match before a trailing newline. */ private const PARSE_REGEXP_RATIONAL = '/^' . @@ -63,7 +64,7 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable '(?[0-9]+)' . '\/' . '(?[0-9]+)' . - '$/'; + '\z/'; /** * Creates a BigNumber of the given value. @@ -73,7 +74,6 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * * - BigNumber instances are returned as is * - integer numbers are returned as BigInteger - * - floating point numbers are converted to a string then parsed as such (deprecated, will be removed in 0.15) * - strings containing a `/` character are returned as BigRational * - strings containing a `.` character or using an exponential notation are returned as BigDecimal * - strings containing only digits with an optional leading `+` or `-` sign are returned as BigInteger @@ -87,7 +87,7 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * * @pure */ - final public static function of(BigNumber|int|float|string $value): static + final public static function of(BigNumber|int|string $value): static { $value = self::_of($value); @@ -113,7 +113,7 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * * @pure */ - final public static function ofNullable(BigNumber|int|float|string|null $value): ?static + final public static function ofNullable(BigNumber|int|string|null $value): ?static { if (is_null($value)) { return null; @@ -128,31 +128,28 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * If several values are equal and minimal, the first one is returned. * This can affect the concrete return type when calling this method on BigNumber. * - * @param BigNumber|int|float|string ...$values The numbers to compare. All the numbers must be convertible to an - * instance of the class this method is called on. + * @param BigNumber|int|string $a The first number. Must be convertible to an instance of the class this method + * is called on. + * @param BigNumber|int|string ...$n The additional numbers. Each number must be convertible to an instance of the + * class this method is called on. * - * @throws InvalidArgumentException If no values are given. - * @throws MathException If a number is not valid, or is not convertible to an instance of the class - * this method is called on. + * @throws MathException If a number is not valid, or is not convertible to an instance of the class this method is + * called on. * * @pure */ - final public static function min(BigNumber|int|float|string ...$values): static + final public static function min(BigNumber|int|string $a, BigNumber|int|string ...$n): static { - $min = null; + $min = static::of($a); - foreach ($values as $value) { + foreach ($n as $value) { $value = static::of($value); - if ($min === null || $value->isLessThan($min)) { + if ($value->isLessThan($min)) { $min = $value; } } - if ($min === null) { - throw new InvalidArgumentException(__METHOD__ . '() expects at least one value.'); - } - return $min; } @@ -162,31 +159,28 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * If several values are equal and maximal, the first one is returned. * This can affect the concrete return type when calling this method on BigNumber. * - * @param BigNumber|int|float|string ...$values The numbers to compare. All the numbers must be convertible to an - * instance of the class this method is called on. + * @param BigNumber|int|string $a The first number. Must be convertible to an instance of the class this method + * is called on. + * @param BigNumber|int|string ...$n The additional numbers. Each number must be convertible to an instance of the + * class this method is called on. * - * @throws InvalidArgumentException If no values are given. - * @throws MathException If a number is not valid, or is not convertible to an instance of the class - * this method is called on. + * @throws MathException If a number is not valid, or is not convertible to an instance of the class this method is + * called on. * * @pure */ - final public static function max(BigNumber|int|float|string ...$values): static + final public static function max(BigNumber|int|string $a, BigNumber|int|string ...$n): static { - $max = null; + $max = static::of($a); - foreach ($values as $value) { + foreach ($n as $value) { $value = static::of($value); - if ($max === null || $value->isGreaterThan($max)) { + if ($value->isGreaterThan($max)) { $max = $value; } } - if ($max === null) { - throw new InvalidArgumentException(__METHOD__ . '() expects at least one value.'); - } - return $max; } @@ -199,26 +193,21 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * When called on BigInteger, BigDecimal, or BigRational, sum() requires that all values can be converted to that * specific subclass, and returns a result of the same type. * - * @param BigNumber|int|float|string ...$values The numbers to add. All the numbers must be convertible to an - * instance of the class this method is called on. + * @param BigNumber|int|string $a The first number. Must be convertible to an instance of the class this method + * is called on. + * @param BigNumber|int|string ...$n The additional numbers. Each number must be convertible to an instance of the + * class this method is called on. * - * @throws InvalidArgumentException If no values are given. - * @throws MathException If a number is not valid, or is not convertible to an instance of the class - * this method is called on. + * @throws MathException If a number is not valid, or is not convertible to an instance of the class this method is + * called on. * * @pure */ - final public static function sum(BigNumber|int|float|string ...$values): static + final public static function sum(BigNumber|int|string $a, BigNumber|int|string ...$n): static { - $first = array_shift($values); + $sum = static::of($a); - if ($first === null) { - throw new InvalidArgumentException(__METHOD__ . '() expects at least one value.'); - } - - $sum = static::of($first); - - foreach ($values as $value) { + foreach ($n as $value) { $sum = self::add($sum, static::of($value)); } @@ -234,7 +223,7 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * * @pure */ - final public function isEqualTo(BigNumber|int|float|string $that): bool + final public function isEqualTo(BigNumber|int|string $that): bool { return $this->compareTo($that) === 0; } @@ -246,7 +235,7 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * * @pure */ - final public function isLessThan(BigNumber|int|float|string $that): bool + final public function isLessThan(BigNumber|int|string $that): bool { return $this->compareTo($that) < 0; } @@ -258,7 +247,7 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * * @pure */ - final public function isLessThanOrEqualTo(BigNumber|int|float|string $that): bool + final public function isLessThanOrEqualTo(BigNumber|int|string $that): bool { return $this->compareTo($that) <= 0; } @@ -270,7 +259,7 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * * @pure */ - final public function isGreaterThan(BigNumber|int|float|string $that): bool + final public function isGreaterThan(BigNumber|int|string $that): bool { return $this->compareTo($that) > 0; } @@ -282,7 +271,7 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * * @pure */ - final public function isGreaterThanOrEqualTo(BigNumber|int|float|string $that): bool + final public function isGreaterThanOrEqualTo(BigNumber|int|string $that): bool { return $this->compareTo($that) >= 0; } @@ -376,7 +365,7 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * * @pure */ - abstract public function compareTo(BigNumber|int|float|string $that): int; + abstract public function compareTo(BigNumber|int|string $that): int; /** * Limits (clamps) this number between the given minimum and maximum values. @@ -385,21 +374,21 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * If the number is greater than $max, returns $max. * Otherwise, returns this number unchanged. * - * @param BigNumber|int|float|string $min The minimum. Must be convertible to an instance of the class this method is called on. - * @param BigNumber|int|float|string $max The maximum. Must be convertible to an instance of the class this method is called on. + * @param BigNumber|int|string $min The minimum. Must be convertible to an instance of the class this method is called on. + * @param BigNumber|int|string $max The maximum. Must be convertible to an instance of the class this method is called on. * * @throws MathException If min/max are not convertible to an instance of the class this method is called on. * @throws InvalidArgumentException If min is greater than max. * * @pure */ - final public function clamp(BigNumber|int|float|string $min, BigNumber|int|float|string $max): static + final public function clamp(BigNumber|int|string $min, BigNumber|int|string $max): static { $min = static::of($min); $max = static::of($max); if ($min->isGreaterThan($max)) { - throw new InvalidArgumentException('Minimum value must be less than or equal to maximum value.'); + throw InvalidArgumentException::minGreaterThanMax(); } if ($this->isLessThan($min)) { @@ -441,8 +430,8 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable /** * Converts this number to a BigDecimal with the given scale, using rounding if necessary. * - * @param int $scale The scale of the resulting `BigDecimal`. Must be non-negative. - * @param RoundingMode $roundingMode An optional rounding mode, defaults to Unnecessary. + * @param non-negative-int $scale The scale of the resulting `BigDecimal`. Must be non-negative. + * @param RoundingMode $roundingMode An optional rounding mode, defaults to Unnecessary. * * @throws InvalidArgumentException If the scale is negative. * @throws RoundingNecessaryException If RoundingMode::Unnecessary is used, and this number cannot be converted to @@ -458,7 +447,8 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * If this number cannot be converted to a native integer without losing precision, an exception is thrown. * Note that the acceptable range for an integer depends on the platform and differs for 32-bit and 64-bit. * - * @throws MathException If this number cannot be exactly converted to a native integer. + * @throws RoundingNecessaryException If this number cannot be converted to an integer without rounding. + * @throws IntegerOverflowException If this number is too large to fit in a native integer. * * @pure */ @@ -484,10 +474,15 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * The output of this method can be parsed by the `of()` factory method; this will yield an object equal to this * one, but possibly of a different type if instantiated through `BigNumber::of()`. * + * @return non-empty-string + * * @pure */ abstract public function toString(): string; + /** + * @return non-empty-string + */ #[Override] final public function jsonSerialize(): string { @@ -495,8 +490,11 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable } /** + * @return non-empty-string + * * @pure */ + #[Override] final public function __toString(): string { return $this->toString(); @@ -528,6 +526,8 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * * @internal * + * @param non-negative-int $scale + * * @pure */ final protected function newBigDecimal(string $value, int $scale = 0): BigDecimal @@ -542,9 +542,9 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * * @pure */ - final protected function newBigRational(BigInteger $numerator, BigInteger $denominator, bool $checkDenominator): BigRational + final protected function newBigRational(BigInteger $numerator, BigInteger $denominator, bool $checkDenominator, bool $simplify): BigRational { - return new BigRational($numerator, $denominator, $checkDenominator); + return new BigRational($numerator, $denominator, $checkDenominator, $simplify); } /** @@ -553,7 +553,7 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable * * @pure */ - private static function _of(BigNumber|int|float|string $value): BigNumber + private static function _of(BigNumber|int|string $value): BigNumber { if ($value instanceof BigNumber) { return $value; @@ -563,19 +563,8 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable return new BigInteger((string) $value); } - if (is_float($value)) { - // @phpstan-ignore-next-line - trigger_error( - 'Passing floats to BigNumber::of() and arithmetic methods is deprecated and will be removed in 0.15. ' . - 'Cast the float to string explicitly to preserve the previous behaviour.', - E_USER_DEPRECATED, - ); - - if (is_nan($value)) { - $value = 'NAN'; - } else { - $value = (string) $value; - } + if ($value === '') { + throw NumberFormatException::emptyNumber(); } if (str_contains($value, '/')) { @@ -592,84 +581,90 @@ abstract readonly class BigNumber implements JsonSerializable, Stringable $denominator = self::cleanUp(null, $denominator); if ($denominator === '0') { - throw DivisionByZeroException::denominatorMustNotBeZero(); + throw DivisionByZeroException::zeroDenominator(); } return new BigRational( new BigInteger($numerator), new BigInteger($denominator), false, + true, ); - } else { - // Integer or decimal number - if (preg_match(self::PARSE_REGEXP_NUMERICAL, $value, $matches, PREG_UNMATCHED_AS_NULL) !== 1) { - throw NumberFormatException::invalidFormat($value); - } + } - $sign = $matches['sign']; - $point = $matches['point']; - $integral = $matches['integral']; - $fractional = $matches['fractional']; - $exponent = $matches['exponent']; + // Integer or decimal number + if (preg_match(self::PARSE_REGEXP_NUMERICAL, $value, $matches, PREG_UNMATCHED_AS_NULL) !== 1) { + throw NumberFormatException::invalidFormat($value); + } - if ($integral === null && $fractional === null) { - throw NumberFormatException::invalidFormat($value); - } + $sign = $matches['sign']; + $point = $matches['point']; + $integral = $matches['integral']; + $fractional = $matches['fractional']; + $exponent = $matches['exponent']; - if ($integral === null) { - $integral = '0'; - } + if ($integral === null && $fractional === null) { + throw NumberFormatException::invalidFormat($value); + } - if ($point !== null || $exponent !== null) { - $fractional ??= ''; + if ($integral === null) { + $integral = '0'; + } - if ($exponent !== null) { - if ($exponent[0] === '-') { - $exponent = ltrim(substr($exponent, 1), '0') ?: '0'; - $exponent = filter_var($exponent, FILTER_VALIDATE_INT); - if ($exponent !== false) { - $exponent = -$exponent; - } - } else { - if ($exponent[0] === '+') { - $exponent = substr($exponent, 1); - } - $exponent = ltrim($exponent, '0') ?: '0'; - $exponent = filter_var($exponent, FILTER_VALIDATE_INT); + if ($point !== null || $exponent !== null) { + $fractional ??= ''; + + if ($exponent !== null) { + if ($exponent[0] === '-') { + $exponent = ltrim(substr($exponent, 1), '0') ?: '0'; + $exponent = filter_var($exponent, FILTER_VALIDATE_INT); + if ($exponent !== false) { + $exponent = -$exponent; } } else { - $exponent = 0; - } - - if ($exponent === false) { - throw new NumberFormatException('Exponent too large.'); - } - - $unscaledValue = self::cleanUp($sign, $integral . $fractional); - - $scale = strlen($fractional) - $exponent; - - if ($scale < 0) { - if ($unscaledValue !== '0') { - $unscaledValue .= str_repeat('0', -$scale); + if ($exponent[0] === '+') { + $exponent = substr($exponent, 1); } - $scale = 0; + $exponent = ltrim($exponent, '0') ?: '0'; + $exponent = filter_var($exponent, FILTER_VALIDATE_INT); } - - return new BigDecimal($unscaledValue, $scale); + } else { + $exponent = 0; } - $integral = self::cleanUp($sign, $integral); + if ($exponent === false) { + throw NumberFormatException::exponentTooLarge(); + } - return new BigInteger($integral); + $unscaledValue = self::cleanUp($sign, $integral . $fractional); + + $scale = strlen($fractional) - $exponent; + + // @phpstan-ignore function.alreadyNarrowedType + if (! is_int($scale)) { + throw NumberFormatException::exponentTooLarge(); + } + + if ($scale < 0) { + if ($unscaledValue !== '0') { + $unscaledValue .= str_repeat('0', Safe::neg($scale)); + } + $scale = 0; + } + + return new BigDecimal($unscaledValue, $scale); } + + $integral = self::cleanUp($sign, $integral); + + return new BigInteger($integral); } /** * Removes optional leading zeros and applies sign. * - * @param string|null $sign The sign, '+' or '-', optional. Null is allowed for convenience and treated as '+'. - * @param string $number The number, validated as a string of digits. + * @param '+'|'-'|null $sign The sign, optional. Null is allowed for convenience and treated as '+'. + * @param non-empty-string $number The number, validated as a string of digits. * * @pure */ diff --git a/vendor/brick/math/src/BigRational.php b/vendor/brick/math/src/BigRational.php index f266a7177..04adf86c8 100644 --- a/vendor/brick/math/src/BigRational.php +++ b/vendor/brick/math/src/BigRational.php @@ -5,21 +5,18 @@ declare(strict_types=1); namespace Brick\Math; use Brick\Math\Exception\DivisionByZeroException; +use Brick\Math\Exception\InvalidArgumentException; use Brick\Math\Exception\MathException; -use Brick\Math\Exception\NumberFormatException; use Brick\Math\Exception\RoundingNecessaryException; -use InvalidArgumentException; +use Brick\Math\Internal\DecimalHelper; +use Brick\Math\Internal\Safe; use LogicException; use Override; -use function is_finite; use function max; use function min; use function strlen; use function substr; -use function trigger_error; - -use const E_USER_DEPRECATED; /** * An arbitrarily large rational number. @@ -47,16 +44,17 @@ final readonly class BigRational extends BigNumber * @param BigInteger $numerator The numerator. * @param BigInteger $denominator The denominator. * @param bool $checkDenominator Whether to check the denominator for negative and zero. + * @param bool $simplify Whether to simplify the fraction to lowest terms. * * @throws DivisionByZeroException If the denominator is zero. * * @pure */ - protected function __construct(BigInteger $numerator, BigInteger $denominator, bool $checkDenominator) + protected function __construct(BigInteger $numerator, BigInteger $denominator, bool $checkDenominator, bool $simplify) { if ($checkDenominator) { if ($denominator->isZero()) { - throw DivisionByZeroException::denominatorMustNotBeZero(); + throw DivisionByZeroException::zeroDenominator(); } if ($denominator->isNegative()) { @@ -65,6 +63,13 @@ final readonly class BigRational extends BigNumber } } + if ($simplify) { + $gcd = $numerator->gcd($denominator); + + $numerator = $numerator->quotient($gcd); + $denominator = $denominator->quotient($gcd); + } + $this->numerator = $numerator; $this->denominator = $denominator; } @@ -75,35 +80,8 @@ final readonly class BigRational extends BigNumber * If the denominator is negative, the signs of both the numerator and the denominator * will be inverted to ensure that the denominator is always positive. * - * @deprecated Use ofFraction() instead. - * - * @param BigNumber|int|float|string $numerator The numerator. Must be convertible to a BigInteger. - * @param BigNumber|int|float|string $denominator The denominator. Must be convertible to a BigInteger. - * - * @throws NumberFormatException If an argument does not represent a valid number. - * @throws RoundingNecessaryException If an argument represents a non-integer number. - * @throws DivisionByZeroException If the denominator is zero. - */ - public static function nd( - BigNumber|int|float|string $numerator, - BigNumber|int|float|string $denominator, - ): BigRational { - trigger_error( - 'The BigRational::nd() method is deprecated, use BigRational::ofFraction() instead.', - E_USER_DEPRECATED, - ); - - return self::ofFraction($numerator, $denominator); - } - - /** - * Creates a BigRational out of a numerator and a denominator. - * - * If the denominator is negative, the signs of both the numerator and the denominator - * will be inverted to ensure that the denominator is always positive. - * - * @param BigNumber|int|float|string $numerator The numerator. Must be convertible to a BigInteger. - * @param BigNumber|int|float|string $denominator The denominator. Must be convertible to a BigInteger. + * @param BigNumber|int|string $numerator The numerator. Must be convertible to a BigInteger. + * @param BigNumber|int|string $denominator The denominator. Must be convertible to a BigInteger. * * @throws MathException If an argument is not valid, or is not convertible to a BigInteger. * @throws DivisionByZeroException If the denominator is zero. @@ -111,13 +89,13 @@ final readonly class BigRational extends BigNumber * @pure */ public static function ofFraction( - BigNumber|int|float|string $numerator, - BigNumber|int|float|string $denominator, + BigNumber|int|string $numerator, + BigNumber|int|string $denominator, ): BigRational { $numerator = BigInteger::of($numerator); $denominator = BigInteger::of($denominator); - return new BigRational($numerator, $denominator, true); + return new BigRational($numerator, $denominator, true, true); } /** @@ -131,7 +109,7 @@ final readonly class BigRational extends BigNumber static $zero; if ($zero === null) { - $zero = new BigRational(BigInteger::zero(), BigInteger::one(), false); + $zero = new BigRational(BigInteger::zero(), BigInteger::one(), false, false); } return $zero; @@ -148,7 +126,7 @@ final readonly class BigRational extends BigNumber static $one; if ($one === null) { - $one = new BigRational(BigInteger::one(), BigInteger::one(), false); + $one = new BigRational(BigInteger::one(), BigInteger::one(), false, false); } return $one; @@ -165,13 +143,15 @@ final readonly class BigRational extends BigNumber static $ten; if ($ten === null) { - $ten = new BigRational(BigInteger::ten(), BigInteger::one(), false); + $ten = new BigRational(BigInteger::ten(), BigInteger::one(), false, false); } return $ten; } /** + * Returns the numerator of this rational number. + * * @pure */ public function getNumerator(): BigInteger @@ -180,6 +160,10 @@ final readonly class BigRational extends BigNumber } /** + * Returns the denominator of this rational number. + * + * The denominator is always strictly positive. + * * @pure */ public function getDenominator(): BigInteger @@ -187,53 +171,6 @@ final readonly class BigRational extends BigNumber return $this->denominator; } - /** - * Returns the quotient of the division of the numerator by the denominator. - * - * @deprecated Will be removed in 0.15. Use getIntegralPart() instead. - */ - public function quotient(): BigInteger - { - trigger_error( - 'BigRational::quotient() is deprecated and will be removed in 0.15. Use getIntegralPart() instead.', - E_USER_DEPRECATED, - ); - - return $this->numerator->quotient($this->denominator); - } - - /** - * Returns the remainder of the division of the numerator by the denominator. - * - * @deprecated Will be removed in 0.15. Use `$number->getNumerator()->remainder($number->getDenominator())` instead. - */ - public function remainder(): BigInteger - { - trigger_error( - 'BigRational::remainder() is deprecated and will be removed in 0.15. Use `$number->getNumerator()->remainder($number->getDenominator())` instead.', - E_USER_DEPRECATED, - ); - - return $this->numerator->remainder($this->denominator); - } - - /** - * Returns the quotient and remainder of the division of the numerator by the denominator. - * - * @deprecated Will be removed in 0.15. Use `$number->getNumerator()->quotientAndRemainder($number->getDenominator())` instead. - * - * @return array{BigInteger, BigInteger} - */ - public function quotientAndRemainder(): array - { - trigger_error( - 'BigRational::quotientAndRemainder() is deprecated and will be removed in 0.15. Use `$number->getNumerator()->quotientAndRemainder($number->getDenominator())` instead.', - E_USER_DEPRECATED, - ); - - return $this->numerator->quotientAndRemainder($this->denominator); - } - /** * Returns the integral part of this rational number. * @@ -242,7 +179,8 @@ final readonly class BigRational extends BigNumber * - `7/3` returns `2` (since 7/3 = 2 + 1/3) * - `-7/3` returns `-2` (since -7/3 = -2 + (-1/3)) * - * The following identity holds: `$r->isEqualTo($r->getFractionalPart()->plus($r->getIntegralPart()))`. + * The following identity holds: `$r->isEqualTo($r->getFractionalPart()->plus($r->getIntegralPart()))`. Note that in + * this identity, the operand order is significant: the reversed form throws when the fractional part is non-zero. * * @pure */ @@ -259,85 +197,106 @@ final readonly class BigRational extends BigNumber * - `7/3` returns `1/3` (since 7/3 = 2 + 1/3) * - `-7/3` returns `-1/3` (since -7/3 = -2 + (-1/3)) * - * The following identity holds: `$r->isEqualTo($r->getFractionalPart()->plus($r->getIntegralPart()))`. + * The following identity holds: `$r->isEqualTo($r->getFractionalPart()->plus($r->getIntegralPart()))`. Note that in + * this identity, the operand order is significant: the reversed form throws when the fractional part is non-zero. * * @pure */ public function getFractionalPart(): BigRational { - return new BigRational($this->numerator->remainder($this->denominator), $this->denominator, false); + return new BigRational($this->numerator->remainder($this->denominator), $this->denominator, false, false); } /** * Returns the sum of this number and the given one. * - * @param BigNumber|int|float|string $that The number to add. + * @param BigNumber|int|string $that The number to add. * * @throws MathException If the number is not valid. * * @pure */ - public function plus(BigNumber|int|float|string $that): BigRational + public function plus(BigNumber|int|string $that): BigRational { $that = BigRational::of($that); + if ($that->isZero()) { + return $this; + } + + if ($this->isZero()) { + return $that; + } + $numerator = $this->numerator->multipliedBy($that->denominator); $numerator = $numerator->plus($that->numerator->multipliedBy($this->denominator)); $denominator = $this->denominator->multipliedBy($that->denominator); - return new BigRational($numerator, $denominator, false); + return new BigRational($numerator, $denominator, false, true); } /** * Returns the difference of this number and the given one. * - * @param BigNumber|int|float|string $that The number to subtract. + * @param BigNumber|int|string $that The number to subtract. * * @throws MathException If the number is not valid. * * @pure */ - public function minus(BigNumber|int|float|string $that): BigRational + public function minus(BigNumber|int|string $that): BigRational { $that = BigRational::of($that); + if ($that->isZero()) { + return $this; + } + + if ($this->isZero()) { + return $that->negated(); + } + $numerator = $this->numerator->multipliedBy($that->denominator); $numerator = $numerator->minus($that->numerator->multipliedBy($this->denominator)); $denominator = $this->denominator->multipliedBy($that->denominator); - return new BigRational($numerator, $denominator, false); + return new BigRational($numerator, $denominator, false, true); } /** * Returns the product of this number and the given one. * - * @param BigNumber|int|float|string $that The multiplier. + * @param BigNumber|int|string $that The multiplier. * * @throws MathException If the multiplier is not valid. * * @pure */ - public function multipliedBy(BigNumber|int|float|string $that): BigRational + public function multipliedBy(BigNumber|int|string $that): BigRational { $that = BigRational::of($that); + if ($that->isZero() || $this->isZero()) { + return BigRational::zero(); + } + $numerator = $this->numerator->multipliedBy($that->numerator); $denominator = $this->denominator->multipliedBy($that->denominator); - return new BigRational($numerator, $denominator, false); + return new BigRational($numerator, $denominator, false, true); } /** * Returns the result of the division of this number by the given one. * - * @param BigNumber|int|float|string $that The divisor. + * @param BigNumber|int|string $that The divisor. * * @throws MathException If the divisor is not valid. * @throws DivisionByZeroException If the divisor is zero. * * @pure */ - public function dividedBy(BigNumber|int|float|string $that): BigRational + public function dividedBy(BigNumber|int|string $that): BigRational { $that = BigRational::of($that); @@ -348,13 +307,16 @@ final readonly class BigRational extends BigNumber $numerator = $this->numerator->multipliedBy($that->denominator); $denominator = $this->denominator->multipliedBy($that->numerator); - return new BigRational($numerator, $denominator, true); + return new BigRational($numerator, $denominator, true, true); } /** * Returns this number exponentiated to the given value. * - * @throws InvalidArgumentException If the exponent is not in the range 0 to 1,000,000. + * Unlike BigInteger and BigDecimal, BigRational supports negative exponents: + * the result is the reciprocal raised to the absolute value of the exponent. + * + * @throws DivisionByZeroException If the exponent is negative and this number is zero. * * @pure */ @@ -368,10 +330,19 @@ final readonly class BigRational extends BigNumber return $this; } + if ($exponent < 0) { + if ($this->isZero()) { + throw DivisionByZeroException::zeroToNegativePower(); + } + + return $this->reciprocal()->power(Safe::neg($exponent)); + } + return new BigRational( $this->numerator->power($exponent), $this->denominator->power($exponent), false, + false, ); } @@ -380,38 +351,27 @@ final readonly class BigRational extends BigNumber * * The reciprocal has the numerator and denominator swapped. * - * @throws DivisionByZeroException If the numerator is zero. + * @throws DivisionByZeroException If this number is zero. * * @pure */ public function reciprocal(): BigRational { - return new BigRational($this->denominator, $this->numerator, true); + if ($this->isZero()) { + throw DivisionByZeroException::reciprocalOfZero(); + } + + return new BigRational($this->denominator, $this->numerator, true, false); } #[Override] public function negated(): static { - return new BigRational($this->numerator->negated(), $this->denominator, false); - } - - /** - * Returns the simplified value of this BigRational. - * - * @pure - */ - public function simplified(): BigRational - { - $gcd = $this->numerator->gcd($this->denominator); - - $numerator = $this->numerator->quotient($gcd); - $denominator = $this->denominator->quotient($gcd); - - return new BigRational($numerator, $denominator, false); + return new BigRational($this->numerator->negated(), $this->denominator, false, false); } #[Override] - public function compareTo(BigNumber|int|float|string $that): int + public function compareTo(BigNumber|int|string $that): int { $that = BigRational::of($that); @@ -433,19 +393,23 @@ final readonly class BigRational extends BigNumber #[Override] public function toBigInteger(): BigInteger { - $simplified = $this->simplified(); - - if (! $simplified->denominator->isEqualTo(1)) { - throw new RoundingNecessaryException('This rational number cannot be represented as an integer value without rounding.'); + if ($this->denominator->isEqualTo(1)) { + return $this->numerator; } - return $simplified->numerator; + throw RoundingNecessaryException::rationalNotConvertibleToInteger(); } #[Override] public function toBigDecimal(): BigDecimal { - return $this->numerator->toBigDecimal()->dividedByExact($this->denominator); + $scale = DecimalHelper::computeScaleFromReducedFractionDenominator($this->denominator->toString()); + + if ($scale === null) { + throw RoundingNecessaryException::rationalNotConvertibleToDecimal(); + } + + return $this->numerator->toBigDecimal()->dividedBy($this->denominator, $scale)->strippedOfTrailingZeros(); } #[Override] @@ -457,6 +421,22 @@ final readonly class BigRational extends BigNumber #[Override] public function toScale(int $scale, RoundingMode $roundingMode = RoundingMode::Unnecessary): BigDecimal { + if ($scale < 0) { // @phpstan-ignore smaller.alwaysFalse + throw InvalidArgumentException::negativeScale(); + } + + if ($roundingMode === RoundingMode::Unnecessary) { + $requiredScale = DecimalHelper::computeScaleFromReducedFractionDenominator($this->denominator->toString()); + + if ($requiredScale === null) { + throw RoundingNecessaryException::rationalNotConvertibleToDecimal(); + } + + if ($requiredScale > $scale) { + throw RoundingNecessaryException::rationalScaleTooSmall(); + } + } + return $this->numerator->toBigDecimal()->dividedBy($this->denominator, $scale, $roundingMode); } @@ -469,26 +449,32 @@ final readonly class BigRational extends BigNumber #[Override] public function toFloat(): float { - $simplified = $this->simplified(); - $numeratorFloat = $simplified->numerator->toFloat(); - $denominatorFloat = $simplified->denominator->toFloat(); - - if (is_finite($numeratorFloat) && is_finite($denominatorFloat)) { - return $numeratorFloat / $denominatorFloat; + if ($this->denominator->isEqualTo(1)) { + return $this->numerator->toFloat(); } - // At least one side overflows to INF; use a decimal approximation instead. + // Avoid $this->numerator->toFloat() / $this->denominator->toFloat(): converting both operands to float first + // adds an extra rounding step before the division and can change the final float. Instead, divide in decimal + // first and convert the resulting decimal approximation to float once. + // We need ~17 significant digits for double precision (we use 20 for some margin). Since $scale controls // decimal places (not significant digits), we subtract the estimated order of magnitude so that large results // use fewer decimal places and small results use more (to look past leading zeros). Clamped to [0, 350] as // doubles range from e-324 to e308 (350 ≈ 324 + 20 significant digits + margin). - $magnitude = strlen($simplified->numerator->abs()->toString()) - strlen($simplified->denominator->toString()); + $magnitude = strlen($this->numerator->abs()->toString()) - strlen($this->denominator->toString()); $scale = min(350, max(0, 20 - $magnitude)); - return $simplified->numerator + $result = $this->numerator ->toBigDecimal() - ->dividedBy($simplified->denominator, $scale, RoundingMode::HalfEven) + ->dividedBy($this->denominator, $scale, RoundingMode::HalfEven) ->toFloat(); + + // Preserve the sign when the decimal approximation underflows to zero. + if ($result === 0.0 && $this->numerator->isNegative()) { + return -0.0; + } + + return $result; } #[Override] @@ -518,11 +504,13 @@ final readonly class BigRational extends BigNumber * - `171/70` returns `2.4(428571)` * - `1/2` returns `0.5` * + * @return non-empty-string + * * @pure */ public function toRepeatingDecimalString(): string { - if ($this->numerator->isZero()) { + if ($this->isZero()) { return '0'; } diff --git a/vendor/brick/math/src/Exception/DivisionByZeroException.php b/vendor/brick/math/src/Exception/DivisionByZeroException.php index 0fcd33be4..ece1c289d 100644 --- a/vendor/brick/math/src/Exception/DivisionByZeroException.php +++ b/vendor/brick/math/src/Exception/DivisionByZeroException.php @@ -4,32 +4,70 @@ declare(strict_types=1); namespace Brick\Math\Exception; +use RuntimeException; + /** * Exception thrown when a division by zero occurs. */ -final class DivisionByZeroException extends MathException +final class DivisionByZeroException extends RuntimeException implements MathException { /** + * @internal + * * @pure */ - public static function divisionByZero(): DivisionByZeroException + public function __construct(string $message) + { + parent::__construct($message); + } + + /** + * @internal + * + * @pure + */ + public static function divisionByZero(): self { return new self('Division by zero.'); } /** + * @internal + * * @pure */ - public static function modulusMustNotBeZero(): DivisionByZeroException + public static function zeroModulus(): self { return new self('The modulus must not be zero.'); } /** + * @internal + * * @pure */ - public static function denominatorMustNotBeZero(): DivisionByZeroException + public static function zeroDenominator(): self { - return new self('The denominator of a rational number cannot be zero.'); + return new self('The denominator of a rational number must not be zero.'); + } + + /** + * @internal + * + * @pure + */ + public static function reciprocalOfZero(): self + { + return new self('The reciprocal of zero is undefined.'); + } + + /** + * @internal + * + * @pure + */ + public static function zeroToNegativePower(): self + { + return new self('Cannot raise zero to a negative power.'); } } diff --git a/vendor/brick/math/src/Exception/IntegerOverflowException.php b/vendor/brick/math/src/Exception/IntegerOverflowException.php index cd2bb3709..12505083c 100644 --- a/vendor/brick/math/src/Exception/IntegerOverflowException.php +++ b/vendor/brick/math/src/Exception/IntegerOverflowException.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace Brick\Math\Exception; use Brick\Math\BigInteger; +use RuntimeException; use function sprintf; @@ -12,17 +13,44 @@ use const PHP_INT_MAX; use const PHP_INT_MIN; /** - * Exception thrown when an integer overflow occurs. + * Exception thrown when a native integer overflow occurs. */ -final class IntegerOverflowException extends MathException +final class IntegerOverflowException extends RuntimeException implements MathException { /** + * @internal + * * @pure */ - public static function toIntOverflow(BigInteger $value): IntegerOverflowException + public function __construct(string $message) { - $message = '%s is out of range %d to %d and cannot be represented as an integer.'; + parent::__construct($message); + } + + /** + * @internal + * + * @pure + */ + public static function integerOutOfRange(BigInteger $value): self + { + $message = '%s is out of range [%d, %d] and cannot be represented as an integer.'; return new self(sprintf($message, $value->toString(), PHP_INT_MIN, PHP_INT_MAX)); } + + /** + * @internal + * + * @pure + */ + public static function nativeIntegerOverflow(string $expression): self + { + return new self(sprintf( + 'Cannot compute %s because the result is outside the native integer range [%d, %d].', + $expression, + PHP_INT_MIN, + PHP_INT_MAX, + )); + } } diff --git a/vendor/brick/math/src/Exception/InvalidArgumentException.php b/vendor/brick/math/src/Exception/InvalidArgumentException.php new file mode 100644 index 000000000..f30ef31e3 --- /dev/null +++ b/vendor/brick/math/src/Exception/InvalidArgumentException.php @@ -0,0 +1,133 @@ +abs($b); + while ($b !== '0') { + [$a, $b] = [$b, $this->divR($a, $b)]; } - if ($b === '0') { - return $this->abs($a); - } - - return $this->gcd($b, $this->divR($a, $b)); + return $this->abs($a); } /** @@ -277,6 +268,64 @@ abstract readonly class Calculator */ abstract public function sqrt(string $n): string; + /** + * Returns the integer nth root of the given number, truncated toward zero. + * + * If $n is non-negative, the result is the largest x such that x^$k ≤ $n (floor). + * If $n is negative, $k MUST be odd, and the result is the negation of the floor root of |$n| + * (i.e., truncation toward zero: the smallest x such that x^$k ≥ $n). + * + * The caller MUST guarantee that $k ≥ 1 and that $n is non-negative when $k is even. + * + * This method can be overridden by the concrete implementation if the underlying library + * has built-in support for nth root calculations. + * + * @param string $n The number. May be negative only when $k is odd. + * @param int $k The root degree. Must be strictly positive. + * + * @pure + */ + public function nthRoot(string $n, int $k): string + { + if ($n === '0') { + return '0'; + } + + $negative = ($n[0] === '-'); + $m = $negative ? substr($n, 1) : $n; + + if ($m === '1') { + return $negative ? '-1' : '1'; + } + + // Initial overshoot: 10^ceil(strlen(m)/k) is strictly greater than the true root. + // Newton-Raphson requires starting above the true root to converge monotonically down. + $x = '1' . str_repeat('0', intdiv(strlen($m) - 1, $k) + 1); + + $kStr = (string) $k; + $kMinusOneStr = (string) ($k - 1); + + // Newton-Raphson recurrence for integer nth root: + // x_{i+1} = floor(((k-1) * x_i + floor(m / x_i^{k-1})) / k) + for (; ;) { + $nx = $this->divQ( + $this->add( + $this->mul($kMinusOneStr, $x), + $this->divQ($m, $this->pow($x, $k - 1)), + ), + $kStr, + ); + + if ($this->cmp($nx, $x) >= 0) { + break; + } + + $x = $nx; + } + + return $negative ? $this->neg($x) : $x; + } + /** * Converts a number from an arbitrary base. * @@ -407,17 +456,16 @@ abstract readonly class Calculator /** * Performs a rounded division. * - * Rounding is performed when the remainder of the division is not zero. + * When the remainder of the division is not zero, rounding is performed according to the rounding mode provided, + * unless RoundingMode::Unnecessary is used, in which case the method returns null. * * @param string $a The dividend. * @param string $b The divisor, must not be zero. * @param RoundingMode $roundingMode The rounding mode. * - * @throws RoundingNecessaryException If RoundingMode::Unnecessary is provided but rounding is necessary. - * * @pure */ - final public function divRound(string $a, string $b, RoundingMode $roundingMode): string + final public function divRound(string $a, string $b, RoundingMode $roundingMode): ?string { [$quotient, $remainder] = $this->divQR($a, $b); @@ -436,7 +484,7 @@ abstract readonly class Calculator switch ($roundingMode) { case RoundingMode::Unnecessary: if ($hasDiscardedFraction) { - throw RoundingNecessaryException::roundingNecessary(); + return null; } break; @@ -552,22 +600,27 @@ abstract readonly class Calculator } /** - * @return array{string, string, string} GCD, X, Y + * @param string $a Must be non-negative. + * @param string $b Must be non-negative. + * + * @return array{string, string} GCD, X * * @pure */ private function gcdExtended(string $a, string $b): array { - if ($a === '0') { - return [$b, '0', '1']; + // Iterative extended Euclidean algorithm; recursion would exhaust memory on large inputs. + [$r0, $r1] = [$a, $b]; + [$x0, $x1] = ['1', '0']; + + while ($r1 !== '0') { + [$q, $r] = $this->divQR($r0, $r1); + + [$r0, $r1] = [$r1, $r]; + [$x0, $x1] = [$x1, $this->sub($x0, $this->mul($q, $x1))]; } - [$gcd, $x1, $y1] = $this->gcdExtended($this->mod($b, $a), $a); - - $x = $this->sub($y1, $this->mul($this->divQ($b, $a), $x1)); - $y = $x1; - - return [$gcd, $x, $y]; + return [$r0, $x0]; } /** diff --git a/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php b/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php index 7f780f760..97e8168f3 100644 --- a/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php +++ b/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php @@ -65,6 +65,20 @@ final readonly class BcMathCalculator extends Calculator #[Override] public function pow(string $a, int $e): string { + if ($e === 0) { + return '1'; + } + + // bcpow() allocates memory proportional to the exponent even when the base is trivial, + // exhausting memory on 32-bit builds at large exponents. + if ($a === '0' || $a === '1') { + return $a; + } + + if ($a === '-1') { + return $e % 2 === 0 ? '1' : '-1'; + } + return bcpow($a, (string) $e, 0); } diff --git a/vendor/brick/math/src/Internal/Calculator/GmpCalculator.php b/vendor/brick/math/src/Internal/Calculator/GmpCalculator.php index 3db06658c..4ee297694 100644 --- a/vendor/brick/math/src/Internal/Calculator/GmpCalculator.php +++ b/vendor/brick/math/src/Internal/Calculator/GmpCalculator.php @@ -21,10 +21,12 @@ use function gmp_mul; use function gmp_or; use function gmp_pow; use function gmp_powm; +use function gmp_root; use function gmp_sqrt; use function gmp_strval; use function gmp_sub; use function gmp_xor; +use function substr; /** * Calculator implementation built around the GMP library. @@ -149,4 +151,17 @@ final readonly class GmpCalculator extends Calculator { return gmp_strval(gmp_sqrt($n)); } + + #[Override] + public function nthRoot(string $n, int $k): string + { + // Delegate on the absolute value and re-apply the sign ourselves so the + // truncation-toward-zero convention matches the shared Newton-Raphson fallback + // bit-for-bit, regardless of any PHP/GMP behaviour changes for negative inputs. + if ($n[0] === '-') { + return '-' . gmp_strval(gmp_root(substr($n, 1), $k)); + } + + return gmp_strval(gmp_root($n, $k)); + } } diff --git a/vendor/brick/math/src/Internal/DecimalHelper.php b/vendor/brick/math/src/Internal/DecimalHelper.php new file mode 100644 index 000000000..20c1e30f2 --- /dev/null +++ b/vendor/brick/math/src/Internal/DecimalHelper.php @@ -0,0 +1,177 @@ +divQ($d, (string) $prime); + $scale++; + } + } + + return $d === '1' ? $scale : null; + } + + /** + * Scales an unscaled decimal value to the requested scale. + * + * Returns null when rounding is necessary and the rounding mode is Unnecessary. + * + * @param string $value The unscaled value. + * @param int $currentScale The current scale. + * @param int $targetScale The target scale. + * @param RoundingMode $roundingMode The rounding mode. + * + * @return string|null The unscaled value at the target scale, or null if RoundingMode::Unnecessary is used and rounding is necessary. + * + * @pure + */ + public static function scale(string $value, int $currentScale, int $targetScale, RoundingMode $roundingMode): ?string + { + $scaled = self::tryScaleExactly($value, $currentScale, $targetScale); + + if ($scaled !== null) { + return $scaled; + } + + if ($roundingMode === RoundingMode::Unnecessary) { + return null; + } + + $divisor = '1' . str_repeat('0', $currentScale - $targetScale); + + return CalculatorRegistry::get()->divRound($value, $divisor, $roundingMode); + } + + /** + * Adds leading zeros if necessary to represent the full decimal number. + * + * @param string $value The unscaled value. + * @param int $scale The current scale. + * + * @pure + */ + public static function padUnscaledValue(string $value, int $scale): string + { + $targetLength = $scale + 1; + $negative = ($value[0] === '-'); + $length = strlen($value); + + if ($negative) { + $length--; + } + + if ($length >= $targetLength) { + return $value; + } + + if ($negative) { + $value = substr($value, 1); + } + + $value = str_pad($value, $targetLength, '0', STR_PAD_LEFT); + + if ($negative) { + $value = '-' . $value; + } + + return $value; + } + + /** + * Tries to scale exactly without rounding, returning null when rounding would be required. + * + * @param string $value The unscaled value. + * @param int $currentScale The current scale. + * @param int $targetScale The target scale. + * + * @return string|null The unscaled value at the target scale, or null if rounding would be required. + * + * @pure + */ + public static function tryScaleExactly(string $value, int $currentScale, int $targetScale): ?string + { + if ($value === '0' || $targetScale === $currentScale) { + return $value; + } + + if ($targetScale > $currentScale) { + return $value . str_repeat('0', $targetScale - $currentScale); + } + + $negative = ($value[0] === '-'); + if ($negative) { + $value = substr($value, 1); + } + + $value = self::padUnscaledValue($value, $currentScale); + $discardedDigits = $currentScale - $targetScale; + + if (substr($value, -$discardedDigits) !== str_repeat('0', $discardedDigits)) { + return null; + } + + $value = substr($value, 0, -$discardedDigits); + $value = ltrim($value, '0'); + + if ($value === '') { + return '0'; + } + + if ($negative) { + $value = '-' . $value; + } + + return $value; + } +} diff --git a/vendor/brick/math/src/Internal/Safe.php b/vendor/brick/math/src/Internal/Safe.php new file mode 100644 index 000000000..0966c5fcb --- /dev/null +++ b/vendor/brick/math/src/Internal/Safe.php @@ -0,0 +1,81 @@ + $vendorDir . '/brick/math/src/BigRational.php', 'Brick\\Math\\Exception\\DivisionByZeroException' => $vendorDir . '/brick/math/src/Exception/DivisionByZeroException.php', 'Brick\\Math\\Exception\\IntegerOverflowException' => $vendorDir . '/brick/math/src/Exception/IntegerOverflowException.php', + 'Brick\\Math\\Exception\\InvalidArgumentException' => $vendorDir . '/brick/math/src/Exception/InvalidArgumentException.php', 'Brick\\Math\\Exception\\MathException' => $vendorDir . '/brick/math/src/Exception/MathException.php', 'Brick\\Math\\Exception\\NegativeNumberException' => $vendorDir . '/brick/math/src/Exception/NegativeNumberException.php', + 'Brick\\Math\\Exception\\NoInverseException' => $vendorDir . '/brick/math/src/Exception/NoInverseException.php', 'Brick\\Math\\Exception\\NumberFormatException' => $vendorDir . '/brick/math/src/Exception/NumberFormatException.php', + 'Brick\\Math\\Exception\\RandomSourceException' => $vendorDir . '/brick/math/src/Exception/RandomSourceException.php', 'Brick\\Math\\Exception\\RoundingNecessaryException' => $vendorDir . '/brick/math/src/Exception/RoundingNecessaryException.php', + 'Brick\\Math\\Exception\\UnsupportedPlatformException' => $vendorDir . '/brick/math/src/Exception/UnsupportedPlatformException.php', 'Brick\\Math\\Internal\\Calculator' => $vendorDir . '/brick/math/src/Internal/Calculator.php', 'Brick\\Math\\Internal\\CalculatorRegistry' => $vendorDir . '/brick/math/src/Internal/CalculatorRegistry.php', 'Brick\\Math\\Internal\\Calculator\\BcMathCalculator' => $vendorDir . '/brick/math/src/Internal/Calculator/BcMathCalculator.php', 'Brick\\Math\\Internal\\Calculator\\GmpCalculator' => $vendorDir . '/brick/math/src/Internal/Calculator/GmpCalculator.php', 'Brick\\Math\\Internal\\Calculator\\NativeCalculator' => $vendorDir . '/brick/math/src/Internal/Calculator/NativeCalculator.php', + 'Brick\\Math\\Internal\\DecimalHelper' => $vendorDir . '/brick/math/src/Internal/DecimalHelper.php', + 'Brick\\Math\\Internal\\Safe' => $vendorDir . '/brick/math/src/Internal/Safe.php', 'Brick\\Math\\RoundingMode' => $vendorDir . '/brick/math/src/RoundingMode.php', 'Carbon\\AbstractTranslator' => $vendorDir . '/nesbot/carbon/src/Carbon/AbstractTranslator.php', 'Carbon\\Callback' => $vendorDir . '/nesbot/carbon/src/Carbon/Callback.php', @@ -1504,15 +1510,6 @@ return array( 'Database\\Seeders\\DatabaseSeeder' => $baseDir . '/database/seeders/DatabaseSeeder.php', 'Database\\Seeders\\SettingsSeeder' => $baseDir . '/database/seeders/SettingsSeeder.php', 'Database\\Seeders\\UsersSeeder' => $baseDir . '/database/seeders/UsersSeeder.php', - 'DateError' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateError.php', - 'DateException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateException.php', - 'DateInvalidOperationException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateInvalidOperationException.php', - 'DateInvalidTimeZoneException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php', - 'DateMalformedIntervalStringException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateMalformedIntervalStringException.php', - 'DateMalformedPeriodStringException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateMalformedPeriodStringException.php', - 'DateMalformedStringException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateMalformedStringException.php', - 'DateObjectError' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateObjectError.php', - 'DateRangeError' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateRangeError.php', 'DeepClone\\ClassNotFoundException' => $vendorDir . '/symfony/polyfill-deepclone/Resources/stubs/ClassNotFoundException.php', 'DeepClone\\NotInstantiableException' => $vendorDir . '/symfony/polyfill-deepclone/Resources/stubs/NotInstantiableException.php', 'DeepCopy\\DeepCopy' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/DeepCopy.php', @@ -2774,11 +2771,13 @@ return array( 'Illuminate\\Bus\\BusServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php', 'Illuminate\\Bus\\ChainedBatch' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/ChainedBatch.php', 'Illuminate\\Bus\\DatabaseBatchRepository' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/DatabaseBatchRepository.php', + 'Illuminate\\Bus\\DebounceLock' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/DebounceLock.php', 'Illuminate\\Bus\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/Dispatcher.php', 'Illuminate\\Bus\\DynamoBatchRepository' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/DynamoBatchRepository.php', 'Illuminate\\Bus\\Events\\BatchCanceled' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/Events/BatchCanceled.php', 'Illuminate\\Bus\\Events\\BatchDispatched' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/Events/BatchDispatched.php', 'Illuminate\\Bus\\Events\\BatchFinished' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/Events/BatchFinished.php', + 'Illuminate\\Bus\\Events\\BatchStarted' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/Events/BatchStarted.php', 'Illuminate\\Bus\\PendingBatch' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/PendingBatch.php', 'Illuminate\\Bus\\PrunableBatchRepository' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/PrunableBatchRepository.php', 'Illuminate\\Bus\\Queueable' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/Queueable.php', @@ -2805,6 +2804,9 @@ return array( 'Illuminate\\Cache\\Events\\CacheFlushed' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/CacheFlushed.php', 'Illuminate\\Cache\\Events\\CacheFlushing' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/CacheFlushing.php', 'Illuminate\\Cache\\Events\\CacheHit' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php', + 'Illuminate\\Cache\\Events\\CacheLocksFlushFailed' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushFailed.php', + 'Illuminate\\Cache\\Events\\CacheLocksFlushed' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushed.php', + 'Illuminate\\Cache\\Events\\CacheLocksFlushing' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushing.php', 'Illuminate\\Cache\\Events\\CacheMissed' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php', 'Illuminate\\Cache\\Events\\ForgettingKey' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/ForgettingKey.php', 'Illuminate\\Cache\\Events\\KeyForgetFailed' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/KeyForgetFailed.php', @@ -2842,6 +2844,7 @@ return array( 'Illuminate\\Cache\\Repository' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Repository.php', 'Illuminate\\Cache\\RetrievesMultipleKeys' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php', 'Illuminate\\Cache\\SessionStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/SessionStore.php', + 'Illuminate\\Cache\\StorageStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/StorageStore.php', 'Illuminate\\Cache\\TagSet' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/TagSet.php', 'Illuminate\\Cache\\TaggableStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/TaggableStore.php', 'Illuminate\\Cache\\TaggedCache' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/TaggedCache.php', @@ -2853,9 +2856,16 @@ return array( 'Illuminate\\Concurrency\\SyncDriver' => $vendorDir . '/laravel/framework/src/Illuminate/Concurrency/SyncDriver.php', 'Illuminate\\Config\\Repository' => $vendorDir . '/laravel/framework/src/Illuminate/Config/Repository.php', 'Illuminate\\Console\\Application' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Application.php', + 'Illuminate\\Console\\Attributes\\Aliases' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Attributes/Aliases.php', + 'Illuminate\\Console\\Attributes\\Description' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Attributes/Description.php', + 'Illuminate\\Console\\Attributes\\Help' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Attributes/Help.php', + 'Illuminate\\Console\\Attributes\\Hidden' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Attributes/Hidden.php', + 'Illuminate\\Console\\Attributes\\Signature' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Attributes/Signature.php', + 'Illuminate\\Console\\Attributes\\Usage' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Attributes/Usage.php', 'Illuminate\\Console\\BufferedConsoleOutput' => $vendorDir . '/laravel/framework/src/Illuminate/Console/BufferedConsoleOutput.php', 'Illuminate\\Console\\CacheCommandMutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/CacheCommandMutex.php', 'Illuminate\\Console\\Command' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Command.php', + 'Illuminate\\Console\\CommandInput' => $vendorDir . '/laravel/framework/src/Illuminate/Console/CommandInput.php', 'Illuminate\\Console\\CommandMutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/CommandMutex.php', 'Illuminate\\Console\\Concerns\\CallsCommands' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Concerns/CallsCommands.php', 'Illuminate\\Console\\Concerns\\ConfiguresPrompts' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Concerns/ConfiguresPrompts.php', @@ -2871,6 +2881,8 @@ return array( 'Illuminate\\Console\\Events\\ArtisanStarting' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php', 'Illuminate\\Console\\Events\\CommandFinished' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php', 'Illuminate\\Console\\Events\\CommandStarting' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php', + 'Illuminate\\Console\\Events\\SchedulePaused' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/SchedulePaused.php', + 'Illuminate\\Console\\Events\\ScheduleResumed' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/ScheduleResumed.php', 'Illuminate\\Console\\Events\\ScheduledBackgroundTaskFinished' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/ScheduledBackgroundTaskFinished.php', 'Illuminate\\Console\\Events\\ScheduledTaskFailed' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/ScheduledTaskFailed.php', 'Illuminate\\Console\\Events\\ScheduledTaskFinished' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/ScheduledTaskFinished.php', @@ -2900,6 +2912,8 @@ return array( 'Illuminate\\Console\\Scheduling\\ScheduleFinishCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php', 'Illuminate\\Console\\Scheduling\\ScheduleInterruptCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleInterruptCommand.php', 'Illuminate\\Console\\Scheduling\\ScheduleListCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleListCommand.php', + 'Illuminate\\Console\\Scheduling\\SchedulePauseCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/SchedulePauseCommand.php', + 'Illuminate\\Console\\Scheduling\\ScheduleResumeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleResumeCommand.php', 'Illuminate\\Console\\Scheduling\\ScheduleRunCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php', 'Illuminate\\Console\\Scheduling\\ScheduleTestCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleTestCommand.php', 'Illuminate\\Console\\Scheduling\\ScheduleWorkCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleWorkCommand.php', @@ -2970,6 +2984,7 @@ return array( 'Illuminate\\Contracts\\Broadcasting\\ShouldRescue' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldRescue.php', 'Illuminate\\Contracts\\Bus\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php', 'Illuminate\\Contracts\\Bus\\QueueingDispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Bus/QueueingDispatcher.php', + 'Illuminate\\Contracts\\Cache\\CanFlushLocks' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/CanFlushLocks.php', 'Illuminate\\Contracts\\Cache\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/Factory.php', 'Illuminate\\Contracts\\Cache\\Lock' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/Lock.php', 'Illuminate\\Contracts\\Cache\\LockProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/LockProvider.php', @@ -3012,6 +3027,7 @@ return array( 'Illuminate\\Contracts\\Encryption\\Encrypter' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Encryption/Encrypter.php', 'Illuminate\\Contracts\\Encryption\\StringEncrypter' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Encryption/StringEncrypter.php', 'Illuminate\\Contracts\\Events\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Events/Dispatcher.php', + 'Illuminate\\Contracts\\Events\\ShouldBeDiscovered' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Events/ShouldBeDiscovered.php', 'Illuminate\\Contracts\\Events\\ShouldDispatchAfterCommit' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Events/ShouldDispatchAfterCommit.php', 'Illuminate\\Contracts\\Events\\ShouldHandleEventsAfterCommit' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Events/ShouldHandleEventsAfterCommit.php', 'Illuminate\\Contracts\\Filesystem\\Cloud' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Cloud.php', @@ -3046,8 +3062,10 @@ return array( 'Illuminate\\Contracts\\Queue\\EntityNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/EntityNotFoundException.php', 'Illuminate\\Contracts\\Queue\\EntityResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/EntityResolver.php', 'Illuminate\\Contracts\\Queue\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php', + 'Illuminate\\Contracts\\Queue\\Interruptible' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Interruptible.php', 'Illuminate\\Contracts\\Queue\\Job' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Job.php', 'Illuminate\\Contracts\\Queue\\Monitor' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Monitor.php', + 'Illuminate\\Contracts\\Queue\\PreparesForDispatch' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/PreparesForDispatch.php', 'Illuminate\\Contracts\\Queue\\Queue' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Queue.php', 'Illuminate\\Contracts\\Queue\\QueueableCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableCollection.php', 'Illuminate\\Contracts\\Queue\\QueueableEntity' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php', @@ -3116,6 +3134,7 @@ return array( 'Illuminate\\Database\\ConnectionInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Database/ConnectionInterface.php', 'Illuminate\\Database\\ConnectionResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Database/ConnectionResolver.php', 'Illuminate\\Database\\ConnectionResolverInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php', + 'Illuminate\\Database\\Connectors\\Concerns\\ConfiguresPooledConnections' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/Concerns/ConfiguresPooledConnections.php', 'Illuminate\\Database\\Connectors\\ConnectionFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php', 'Illuminate\\Database\\Connectors\\Connector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/Connector.php', 'Illuminate\\Database\\Connectors\\ConnectorInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php', @@ -3124,6 +3143,7 @@ return array( 'Illuminate\\Database\\Connectors\\PostgresConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php', 'Illuminate\\Database\\Connectors\\SQLiteConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php', 'Illuminate\\Database\\Connectors\\SqlServerConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php', + 'Illuminate\\Database\\Console\\Concerns\\InteractsWithPooledConnections' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Concerns/InteractsWithPooledConnections.php', 'Illuminate\\Database\\Console\\DatabaseInspectionCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/DatabaseInspectionCommand.php', 'Illuminate\\Database\\Console\\DbCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/DbCommand.php', 'Illuminate\\Database\\Console\\DumpCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/DumpCommand.php', @@ -3154,17 +3174,29 @@ return array( 'Illuminate\\Database\\DeadlockException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/DeadlockException.php', 'Illuminate\\Database\\DetectsConcurrencyErrors' => $vendorDir . '/laravel/framework/src/Illuminate/Database/DetectsConcurrencyErrors.php', 'Illuminate\\Database\\DetectsLostConnections' => $vendorDir . '/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Appends' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Appends.php', 'Illuminate\\Database\\Eloquent\\Attributes\\Boot' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Boot.php', 'Illuminate\\Database\\Eloquent\\Attributes\\CollectedBy' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/CollectedBy.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Connection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Connection.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\DateFormat' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/DateFormat.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Fillable' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Fillable.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Guarded' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Guarded.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Hidden' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Hidden.php', 'Illuminate\\Database\\Eloquent\\Attributes\\Initialize' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Initialize.php', 'Illuminate\\Database\\Eloquent\\Attributes\\ObservedBy' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/ObservedBy.php', 'Illuminate\\Database\\Eloquent\\Attributes\\Scope' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Scope.php', 'Illuminate\\Database\\Eloquent\\Attributes\\ScopedBy' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/ScopedBy.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Table' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Table.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Touches' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Touches.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Unguarded' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Unguarded.php', 'Illuminate\\Database\\Eloquent\\Attributes\\UseEloquentBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/UseEloquentBuilder.php', 'Illuminate\\Database\\Eloquent\\Attributes\\UseFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/UseFactory.php', 'Illuminate\\Database\\Eloquent\\Attributes\\UsePolicy' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/UsePolicy.php', 'Illuminate\\Database\\Eloquent\\Attributes\\UseResource' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/UseResource.php', 'Illuminate\\Database\\Eloquent\\Attributes\\UseResourceCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/UseResourceCollection.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Visible' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Visible.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\WithoutIncrementing' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/WithoutIncrementing.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\WithoutTimestamps' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/WithoutTimestamps.php', 'Illuminate\\Database\\Eloquent\\BroadcastableModelEventOccurred' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/BroadcastableModelEventOccurred.php', 'Illuminate\\Database\\Eloquent\\BroadcastsEvents' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/BroadcastsEvents.php', 'Illuminate\\Database\\Eloquent\\BroadcastsEventsAfterCommit' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/BroadcastsEventsAfterCommit.php', @@ -3199,6 +3231,7 @@ return array( 'Illuminate\\Database\\Eloquent\\Concerns\\PreventsCircularRecursion' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/PreventsCircularRecursion.php', 'Illuminate\\Database\\Eloquent\\Concerns\\QueriesRelationships' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php', 'Illuminate\\Database\\Eloquent\\Concerns\\TransformsToResource' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/TransformsToResource.php', + 'Illuminate\\Database\\Eloquent\\Factories\\Attributes\\UseModel' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Factories/Attributes/UseModel.php', 'Illuminate\\Database\\Eloquent\\Factories\\BelongsToManyRelationship' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Factories/BelongsToManyRelationship.php', 'Illuminate\\Database\\Eloquent\\Factories\\BelongsToRelationship' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Factories/BelongsToRelationship.php', 'Illuminate\\Database\\Eloquent\\Factories\\CrossJoinSequence' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Factories/CrossJoinSequence.php', @@ -3215,6 +3248,7 @@ return array( 'Illuminate\\Database\\Eloquent\\MassPrunable' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/MassPrunable.php', 'Illuminate\\Database\\Eloquent\\MissingAttributeException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/MissingAttributeException.php', 'Illuminate\\Database\\Eloquent\\Model' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Model.php', + 'Illuminate\\Database\\Eloquent\\ModelInfo' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/ModelInfo.php', 'Illuminate\\Database\\Eloquent\\ModelInspector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/ModelInspector.php', 'Illuminate\\Database\\Eloquent\\ModelNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php', 'Illuminate\\Database\\Eloquent\\PendingHasThroughRelationship' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/PendingHasThroughRelationship.php', @@ -3355,6 +3389,7 @@ return array( 'Illuminate\\Filesystem\\ServeFile' => $vendorDir . '/laravel/framework/src/Illuminate/Filesystem/ServeFile.php', 'Illuminate\\Foundation\\AliasLoader' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/AliasLoader.php', 'Illuminate\\Foundation\\Application' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Application.php', + 'Illuminate\\Foundation\\ArrayMaintenanceMode' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/ArrayMaintenanceMode.php', 'Illuminate\\Foundation\\Auth\\Access\\Authorizable' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php', 'Illuminate\\Foundation\\Auth\\Access\\AuthorizesRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php', 'Illuminate\\Foundation\\Auth\\AuthenticatesUsers' => $vendorDir . '/laravel/ui/auth-backend/AuthenticatesUsers.php', @@ -3386,6 +3421,7 @@ return array( 'Illuminate\\Foundation\\Cloud\\CloudJob' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Cloud/CloudJob.php', 'Illuminate\\Foundation\\Cloud\\Events' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Cloud/Events.php', 'Illuminate\\Foundation\\Cloud\\FailedJobProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Cloud/FailedJobProvider.php', + 'Illuminate\\Foundation\\Cloud\\JsonFormatter' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Cloud/JsonFormatter.php', 'Illuminate\\Foundation\\Cloud\\ManagedQueueNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Cloud/ManagedQueueNotFoundException.php', 'Illuminate\\Foundation\\Cloud\\Queue' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Cloud/Queue.php', 'Illuminate\\Foundation\\Cloud\\QueueConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Cloud/QueueConnector.php', @@ -3411,6 +3447,8 @@ return array( 'Illuminate\\Foundation\\Console\\ConfigPublishCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigPublishCommand.php', 'Illuminate\\Foundation\\Console\\ConfigShowCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigShowCommand.php', 'Illuminate\\Foundation\\Console\\ConsoleMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php', + 'Illuminate\\Foundation\\Console\\DevCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/DevCommand.php', + 'Illuminate\\Foundation\\Console\\DevListCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/DevListCommand.php', 'Illuminate\\Foundation\\Console\\DocsCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/DocsCommand.php', 'Illuminate\\Foundation\\Console\\DownCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php', 'Illuminate\\Foundation\\Console\\EnumMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/EnumMakeCommand.php', @@ -3460,6 +3498,9 @@ return array( 'Illuminate\\Foundation\\Console\\ViewCacheCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ViewCacheCommand.php', 'Illuminate\\Foundation\\Console\\ViewClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php', 'Illuminate\\Foundation\\Console\\ViewMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ViewMakeCommand.php', + 'Illuminate\\Foundation\\DevCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/DevCommand.php', + 'Illuminate\\Foundation\\DevCommandColor' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/DevCommandColor.php', + 'Illuminate\\Foundation\\DevCommands' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/DevCommands.php', 'Illuminate\\Foundation\\EnvironmentDetector' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php', 'Illuminate\\Foundation\\Events\\DiagnosingHealth' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Events/DiagnosingHealth.php', 'Illuminate\\Foundation\\Events\\DiscoverEvents' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Events/DiscoverEvents.php', @@ -3481,6 +3522,11 @@ return array( 'Illuminate\\Foundation\\Exceptions\\Whoops\\WhoopsExceptionRenderer' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Exceptions/Whoops/WhoopsExceptionRenderer.php', 'Illuminate\\Foundation\\Exceptions\\Whoops\\WhoopsHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Exceptions/Whoops/WhoopsHandler.php', 'Illuminate\\Foundation\\FileBasedMaintenanceMode' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/FileBasedMaintenanceMode.php', + 'Illuminate\\Foundation\\Http\\Attributes\\ErrorBag' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Attributes/ErrorBag.php', + 'Illuminate\\Foundation\\Http\\Attributes\\FailOnUnknownFields' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Attributes/FailOnUnknownFields.php', + 'Illuminate\\Foundation\\Http\\Attributes\\RedirectTo' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Attributes/RedirectTo.php', + 'Illuminate\\Foundation\\Http\\Attributes\\RedirectToRoute' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Attributes/RedirectToRoute.php', + 'Illuminate\\Foundation\\Http\\Attributes\\StopOnFirstFailure' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Attributes/StopOnFirstFailure.php', 'Illuminate\\Foundation\\Http\\Events\\RequestHandled' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php', 'Illuminate\\Foundation\\Http\\FormRequest' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php', 'Illuminate\\Foundation\\Http\\HtmlDumper' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/HtmlDumper.php', @@ -3491,6 +3537,7 @@ return array( 'Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php', 'Illuminate\\Foundation\\Http\\Middleware\\HandlePrecognitiveRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/HandlePrecognitiveRequests.php', 'Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php', + 'Illuminate\\Foundation\\Http\\Middleware\\PreventRequestForgery' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestForgery.php', 'Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php', 'Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php', 'Illuminate\\Foundation\\Http\\Middleware\\TrimStrings' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php', @@ -3518,6 +3565,11 @@ return array( 'Illuminate\\Foundation\\Support\\Providers\\AuthServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php', 'Illuminate\\Foundation\\Support\\Providers\\EventServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php', 'Illuminate\\Foundation\\Support\\Providers\\RouteServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php', + 'Illuminate\\Foundation\\Testing\\Attributes\\Seed' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/Seed.php', + 'Illuminate\\Foundation\\Testing\\Attributes\\Seeder' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/Seeder.php', + 'Illuminate\\Foundation\\Testing\\Attributes\\SetUp' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/SetUp.php', + 'Illuminate\\Foundation\\Testing\\Attributes\\TearDown' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/TearDown.php', + 'Illuminate\\Foundation\\Testing\\Attributes\\UnitTest' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/UnitTest.php', 'Illuminate\\Foundation\\Testing\\CachedState' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/CachedState.php', 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithAuthentication' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php', 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithConsole' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php', @@ -3550,6 +3602,7 @@ return array( 'Illuminate\\Foundation\\Validation\\ValidatesRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php', 'Illuminate\\Foundation\\Vite' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Vite.php', 'Illuminate\\Foundation\\ViteException' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/ViteException.php', + 'Illuminate\\Foundation\\ViteFonts' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/ViteFonts.php', 'Illuminate\\Foundation\\ViteManifestNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/ViteManifestNotFoundException.php', 'Illuminate\\Hashing\\AbstractHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php', 'Illuminate\\Hashing\\Argon2IdHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/Argon2IdHasher.php', @@ -3581,6 +3634,7 @@ return array( 'Illuminate\\Http\\Concerns\\InteractsWithInput' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php', 'Illuminate\\Http\\Exceptions\\HttpResponseException' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php', 'Illuminate\\Http\\Exceptions\\MalformedUrlException' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Exceptions/MalformedUrlException.php', + 'Illuminate\\Http\\Exceptions\\OriginMismatchException' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Exceptions/OriginMismatchException.php', 'Illuminate\\Http\\Exceptions\\PostTooLargeException' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php', 'Illuminate\\Http\\Exceptions\\ThrottleRequestsException' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Exceptions/ThrottleRequestsException.php', 'Illuminate\\Http\\File' => $vendorDir . '/laravel/framework/src/Illuminate/Http/File.php', @@ -3590,6 +3644,7 @@ return array( 'Illuminate\\Http\\Middleware\\CheckResponseForModifications' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php', 'Illuminate\\Http\\Middleware\\FrameGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php', 'Illuminate\\Http\\Middleware\\HandleCors' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php', + 'Illuminate\\Http\\Middleware\\PrefersJsonResponses' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/PrefersJsonResponses.php', 'Illuminate\\Http\\Middleware\\SetCacheHeaders' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php', 'Illuminate\\Http\\Middleware\\TrustHosts' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/TrustHosts.php', 'Illuminate\\Http\\Middleware\\TrustProxies' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php', @@ -3597,6 +3652,8 @@ return array( 'Illuminate\\Http\\Middleware\\ValidatePostSize' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php', 'Illuminate\\Http\\RedirectResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Http/RedirectResponse.php', 'Illuminate\\Http\\Request' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Request.php', + 'Illuminate\\Http\\Resources\\Attributes\\Collects' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Attributes/Collects.php', + 'Illuminate\\Http\\Resources\\Attributes\\PreserveKeys' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Attributes/PreserveKeys.php', 'Illuminate\\Http\\Resources\\CollectsResources' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php', 'Illuminate\\Http\\Resources\\ConditionallyLoadsAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php', 'Illuminate\\Http\\Resources\\DelegatesToResource' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php', @@ -3626,6 +3683,7 @@ return array( 'Illuminate\\JsonSchema\\JsonSchema' => $vendorDir . '/laravel/framework/src/Illuminate/JsonSchema/JsonSchema.php', 'Illuminate\\JsonSchema\\JsonSchemaTypeFactory' => $vendorDir . '/laravel/framework/src/Illuminate/JsonSchema/JsonSchemaTypeFactory.php', 'Illuminate\\JsonSchema\\Serializer' => $vendorDir . '/laravel/framework/src/Illuminate/JsonSchema/Serializer.php', + 'Illuminate\\JsonSchema\\Types\\AnyOfType' => $vendorDir . '/laravel/framework/src/Illuminate/JsonSchema/Types/AnyOfType.php', 'Illuminate\\JsonSchema\\Types\\ArrayType' => $vendorDir . '/laravel/framework/src/Illuminate/JsonSchema/Types/ArrayType.php', 'Illuminate\\JsonSchema\\Types\\BooleanType' => $vendorDir . '/laravel/framework/src/Illuminate/JsonSchema/Types/BooleanType.php', 'Illuminate\\JsonSchema\\Types\\IntegerType' => $vendorDir . '/laravel/framework/src/Illuminate/JsonSchema/Types/IntegerType.php', @@ -3640,6 +3698,7 @@ return array( 'Illuminate\\Log\\Context\\Events\\ContextHydrated' => $vendorDir . '/laravel/framework/src/Illuminate/Log/Context/Events/ContextHydrated.php', 'Illuminate\\Log\\Context\\Repository' => $vendorDir . '/laravel/framework/src/Illuminate/Log/Context/Repository.php', 'Illuminate\\Log\\Events\\MessageLogged' => $vendorDir . '/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php', + 'Illuminate\\Log\\Formatters\\JsonFormatter' => $vendorDir . '/laravel/framework/src/Illuminate/Log/Formatters/JsonFormatter.php', 'Illuminate\\Log\\LogManager' => $vendorDir . '/laravel/framework/src/Illuminate/Log/LogManager.php', 'Illuminate\\Log\\LogServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Log/LogServiceProvider.php', 'Illuminate\\Log\\Logger' => $vendorDir . '/laravel/framework/src/Illuminate/Log/Logger.php', @@ -3663,6 +3722,7 @@ return array( 'Illuminate\\Mail\\SentMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/SentMessage.php', 'Illuminate\\Mail\\TextMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/TextMessage.php', 'Illuminate\\Mail\\Transport\\ArrayTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php', + 'Illuminate\\Mail\\Transport\\CloudflareTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/CloudflareTransport.php', 'Illuminate\\Mail\\Transport\\LogTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php', 'Illuminate\\Mail\\Transport\\ResendTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/ResendTransport.php', 'Illuminate\\Mail\\Transport\\SesTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php', @@ -3717,7 +3777,18 @@ return array( 'Illuminate\\Process\\Pool' => $vendorDir . '/laravel/framework/src/Illuminate/Process/Pool.php', 'Illuminate\\Process\\ProcessPoolResults' => $vendorDir . '/laravel/framework/src/Illuminate/Process/ProcessPoolResults.php', 'Illuminate\\Process\\ProcessResult' => $vendorDir . '/laravel/framework/src/Illuminate/Process/ProcessResult.php', + 'Illuminate\\Queue\\Attributes\\Backoff' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Attributes/Backoff.php', + 'Illuminate\\Queue\\Attributes\\Connection' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Attributes/Connection.php', + 'Illuminate\\Queue\\Attributes\\DebounceFor' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Attributes/DebounceFor.php', + 'Illuminate\\Queue\\Attributes\\Delay' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Attributes/Delay.php', 'Illuminate\\Queue\\Attributes\\DeleteWhenMissingModels' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Attributes/DeleteWhenMissingModels.php', + 'Illuminate\\Queue\\Attributes\\FailOnTimeout' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Attributes/FailOnTimeout.php', + 'Illuminate\\Queue\\Attributes\\MaxExceptions' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Attributes/MaxExceptions.php', + 'Illuminate\\Queue\\Attributes\\Queue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Attributes/Queue.php', + 'Illuminate\\Queue\\Attributes\\ReadsQueueAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Attributes/ReadsQueueAttributes.php', + 'Illuminate\\Queue\\Attributes\\Timeout' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Attributes/Timeout.php', + 'Illuminate\\Queue\\Attributes\\Tries' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Attributes/Tries.php', + 'Illuminate\\Queue\\Attributes\\UniqueFor' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Attributes/UniqueFor.php', 'Illuminate\\Queue\\Attributes\\WithoutRelations' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Attributes/WithoutRelations.php', 'Illuminate\\Queue\\BackgroundQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/BackgroundQueue.php', 'Illuminate\\Queue\\BeanstalkdQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php', @@ -3755,6 +3826,7 @@ return array( 'Illuminate\\Queue\\DatabaseQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php', 'Illuminate\\Queue\\DeferredQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/DeferredQueue.php', 'Illuminate\\Queue\\Events\\JobAttempted' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobAttempted.php', + 'Illuminate\\Queue\\Events\\JobDebounced' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobDebounced.php', 'Illuminate\\Queue\\Events\\JobExceptionOccurred' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php', 'Illuminate\\Queue\\Events\\JobFailed' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php', 'Illuminate\\Queue\\Events\\JobPopped' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobPopped.php', @@ -3771,6 +3843,10 @@ return array( 'Illuminate\\Queue\\Events\\QueueFailedOver' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/QueueFailedOver.php', 'Illuminate\\Queue\\Events\\QueuePaused' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/QueuePaused.php', 'Illuminate\\Queue\\Events\\QueueResumed' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/QueueResumed.php', + 'Illuminate\\Queue\\Events\\WorkerIdle' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/WorkerIdle.php', + 'Illuminate\\Queue\\Events\\WorkerInterrupted' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/WorkerInterrupted.php', + 'Illuminate\\Queue\\Events\\WorkerPausing' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/WorkerPausing.php', + 'Illuminate\\Queue\\Events\\WorkerResuming' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/WorkerResuming.php', 'Illuminate\\Queue\\Events\\WorkerStarting' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/WorkerStarting.php', 'Illuminate\\Queue\\Events\\WorkerStopping' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php', 'Illuminate\\Queue\\Failed\\CountableFailedJobProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Failed/CountableFailedJobProvider.php', @@ -3788,6 +3864,7 @@ return array( 'Illuminate\\Queue\\Jobs\\DatabaseJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php', 'Illuminate\\Queue\\Jobs\\DatabaseJobRecord' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php', 'Illuminate\\Queue\\Jobs\\FakeJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/FakeJob.php', + 'Illuminate\\Queue\\Jobs\\InspectedJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/InspectedJob.php', 'Illuminate\\Queue\\Jobs\\Job' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/Job.php', 'Illuminate\\Queue\\Jobs\\JobName' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php', 'Illuminate\\Queue\\Jobs\\RedisJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/RedisJob.php', @@ -3801,6 +3878,7 @@ return array( 'Illuminate\\Queue\\Middleware\\FailOnException' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Middleware/FailOnException.php', 'Illuminate\\Queue\\Middleware\\RateLimited' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Middleware/RateLimited.php', 'Illuminate\\Queue\\Middleware\\RateLimitedWithRedis' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Middleware/RateLimitedWithRedis.php', + 'Illuminate\\Queue\\Middleware\\Release' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Middleware/Release.php', 'Illuminate\\Queue\\Middleware\\Skip' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Middleware/Skip.php', 'Illuminate\\Queue\\Middleware\\SkipIfBatchCancelled' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Middleware/SkipIfBatchCancelled.php', 'Illuminate\\Queue\\Middleware\\ThrottlesExceptions' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Middleware/ThrottlesExceptions.php', @@ -3809,6 +3887,7 @@ return array( 'Illuminate\\Queue\\NullQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/NullQueue.php', 'Illuminate\\Queue\\Queue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Queue.php', 'Illuminate\\Queue\\QueueManager' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/QueueManager.php', + 'Illuminate\\Queue\\QueueRoutes' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/QueueRoutes.php', 'Illuminate\\Queue\\QueueServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php', 'Illuminate\\Queue\\RedisQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/RedisQueue.php', 'Illuminate\\Queue\\SerializesAndRestoresModelIdentifiers' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php', @@ -3836,6 +3915,8 @@ return array( 'Illuminate\\Redis\\RedisManager' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/RedisManager.php', 'Illuminate\\Redis\\RedisServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php', 'Illuminate\\Routing\\AbstractRouteCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php', + 'Illuminate\\Routing\\Attributes\\Controllers\\Authorize' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Attributes/Controllers/Authorize.php', + 'Illuminate\\Routing\\Attributes\\Controllers\\Middleware' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Attributes/Controllers/Middleware.php', 'Illuminate\\Routing\\CallableDispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/CallableDispatcher.php', 'Illuminate\\Routing\\CompiledRouteCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/CompiledRouteCollection.php', 'Illuminate\\Routing\\Console\\ControllerMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php', @@ -3919,6 +4000,7 @@ return array( 'Illuminate\\Support\\Collection' => $vendorDir . '/laravel/framework/src/Illuminate/Collections/Collection.php', 'Illuminate\\Support\\Composer' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Composer.php', 'Illuminate\\Support\\ConfigurationUrlParser' => $vendorDir . '/laravel/framework/src/Illuminate/Support/ConfigurationUrlParser.php', + 'Illuminate\\Support\\Contracts\\NodePackageManager' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Contracts/NodePackageManager.php', 'Illuminate\\Support\\DateFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Support/DateFactory.php', 'Illuminate\\Support\\DefaultProviders' => $vendorDir . '/laravel/framework/src/Illuminate/Support/DefaultProviders.php', 'Illuminate\\Support\\Defer\\DeferredCallback' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Defer/DeferredCallback.php', @@ -3987,12 +4069,19 @@ return array( 'Illuminate\\Support\\MultipleInstanceManager' => $vendorDir . '/laravel/framework/src/Illuminate/Support/MultipleInstanceManager.php', 'Illuminate\\Support\\MultipleItemsFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Collections/MultipleItemsFoundException.php', 'Illuminate\\Support\\NamespacedItemResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php', + 'Illuminate\\Support\\NodePackageManager' => $vendorDir . '/laravel/framework/src/Illuminate/Support/NodePackageManager.php', + 'Illuminate\\Support\\NodePackageManagers\\Bun' => $vendorDir . '/laravel/framework/src/Illuminate/Support/NodePackageManagers/Bun.php', + 'Illuminate\\Support\\NodePackageManagers\\Npm' => $vendorDir . '/laravel/framework/src/Illuminate/Support/NodePackageManagers/Npm.php', + 'Illuminate\\Support\\NodePackageManagers\\Pnpm' => $vendorDir . '/laravel/framework/src/Illuminate/Support/NodePackageManagers/Pnpm.php', + 'Illuminate\\Support\\NodePackageManagers\\Yarn' => $vendorDir . '/laravel/framework/src/Illuminate/Support/NodePackageManagers/Yarn.php', 'Illuminate\\Support\\Number' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Number.php', 'Illuminate\\Support\\Once' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Once.php', 'Illuminate\\Support\\Onceable' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Onceable.php', 'Illuminate\\Support\\Optional' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Optional.php', 'Illuminate\\Support\\Pluralizer' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Pluralizer.php', 'Illuminate\\Support\\ProcessUtils' => $vendorDir . '/laravel/framework/src/Illuminate/Support/ProcessUtils.php', + 'Illuminate\\Support\\Queue\\Concerns\\ResolvesQueueRoutes' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Queue/Concerns/ResolvesQueueRoutes.php', + 'Illuminate\\Support\\RebindsCallbacksToSelf' => $vendorDir . '/laravel/framework/src/Illuminate/Support/RebindsCallbacksToSelf.php', 'Illuminate\\Support\\Reflector' => $vendorDir . '/laravel/framework/src/Illuminate/Reflection/Reflector.php', 'Illuminate\\Support\\ServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Support/ServiceProvider.php', 'Illuminate\\Support\\Sleep' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Sleep.php', @@ -4020,6 +4109,7 @@ return array( 'Illuminate\\Support\\Traits\\InteractsWithData' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/InteractsWithData.php', 'Illuminate\\Support\\Traits\\Localizable' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/Localizable.php', 'Illuminate\\Support\\Traits\\Macroable' => $vendorDir . '/laravel/framework/src/Illuminate/Macroable/Traits/Macroable.php', + 'Illuminate\\Support\\Traits\\ReadsClassAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/ReadsClassAttributes.php', 'Illuminate\\Support\\Traits\\ReflectsClosures' => $vendorDir . '/laravel/framework/src/Illuminate/Reflection/Traits/ReflectsClosures.php', 'Illuminate\\Support\\Traits\\Tappable' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/Tappable.php', 'Illuminate\\Support\\Traits\\TransformsToResourceCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Collections/Traits/TransformsToResourceCollection.php', @@ -4038,6 +4128,7 @@ return array( 'Illuminate\\Testing\\Constraints\\CountInDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Testing/Constraints/CountInDatabase.php', 'Illuminate\\Testing\\Constraints\\HasInDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Testing/Constraints/HasInDatabase.php', 'Illuminate\\Testing\\Constraints\\NotSoftDeletedInDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Testing/Constraints/NotSoftDeletedInDatabase.php', + 'Illuminate\\Testing\\Constraints\\SeeInHtml' => $vendorDir . '/laravel/framework/src/Illuminate/Testing/Constraints/SeeInHtml.php', 'Illuminate\\Testing\\Constraints\\SeeInOrder' => $vendorDir . '/laravel/framework/src/Illuminate/Testing/Constraints/SeeInOrder.php', 'Illuminate\\Testing\\Constraints\\SoftDeletedInDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Testing/Constraints/SoftDeletedInDatabase.php', 'Illuminate\\Testing\\Exceptions\\InvalidArgumentException' => $vendorDir . '/laravel/framework/src/Illuminate/Testing/Exceptions/InvalidArgumentException.php', @@ -5108,7 +5199,6 @@ return array( 'NunoMaduro\\Collision\\Provider' => $vendorDir . '/nunomaduro/collision/src/Provider.php', 'NunoMaduro\\Collision\\SolutionsRepositories\\NullSolutionsRepository' => $vendorDir . '/nunomaduro/collision/src/SolutionsRepositories/NullSolutionsRepository.php', 'NunoMaduro\\Collision\\Writer' => $vendorDir . '/nunomaduro/collision/src/Writer.php', - 'Override' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/Override.php', 'PHPUnit\\Event\\Application\\Finished' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Application/Finished.php', 'PHPUnit\\Event\\Application\\FinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Application/FinishedSubscriber.php', 'PHPUnit\\Event\\Application\\Started' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Application/Started.php', @@ -5162,11 +5252,10 @@ return array( 'PHPUnit\\Event\\Telemetry\\Info' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/Info.php', 'PHPUnit\\Event\\Telemetry\\MemoryMeter' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/MemoryMeter.php', 'PHPUnit\\Event\\Telemetry\\MemoryUsage' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/MemoryUsage.php', - 'PHPUnit\\Event\\Telemetry\\Php81GarbageCollectorStatusProvider' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/Php81GarbageCollectorStatusProvider.php', - 'PHPUnit\\Event\\Telemetry\\Php83GarbageCollectorStatusProvider' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/Php83GarbageCollectorStatusProvider.php', 'PHPUnit\\Event\\Telemetry\\Snapshot' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/Snapshot.php', 'PHPUnit\\Event\\Telemetry\\StopWatch' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/StopWatch.php', 'PHPUnit\\Event\\Telemetry\\System' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/System.php', + 'PHPUnit\\Event\\Telemetry\\SystemGarbageCollectorStatusProvider' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/SystemGarbageCollectorStatusProvider.php', 'PHPUnit\\Event\\Telemetry\\SystemMemoryMeter' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/SystemMemoryMeter.php', 'PHPUnit\\Event\\Telemetry\\SystemStopWatch' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/SystemStopWatch.php', 'PHPUnit\\Event\\Telemetry\\SystemStopWatchWithOffset' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/SystemStopWatchWithOffset.php', @@ -5178,6 +5267,8 @@ return array( 'PHPUnit\\Event\\TestData\\TestDataCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Test/TestData/TestDataCollectionIterator.php', 'PHPUnit\\Event\\TestRunner\\BootstrapFinished' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/BootstrapFinished.php', 'PHPUnit\\Event\\TestRunner\\BootstrapFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/BootstrapFinishedSubscriber.php', + 'PHPUnit\\Event\\TestRunner\\ChildProcessErrored' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessErrored.php', + 'PHPUnit\\Event\\TestRunner\\ChildProcessErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessErroredSubscriber.php', 'PHPUnit\\Event\\TestRunner\\ChildProcessFinished' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessFinished.php', 'PHPUnit\\Event\\TestRunner\\ChildProcessFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessFinishedSubscriber.php', 'PHPUnit\\Event\\TestRunner\\ChildProcessStarted' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessStarted.php', @@ -5206,8 +5297,14 @@ return array( 'PHPUnit\\Event\\TestRunner\\GarbageCollectionEnabledSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionEnabledSubscriber.php', 'PHPUnit\\Event\\TestRunner\\GarbageCollectionTriggered' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionTriggered.php', 'PHPUnit\\Event\\TestRunner\\GarbageCollectionTriggeredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionTriggeredSubscriber.php', + 'PHPUnit\\Event\\TestRunner\\NoticeTriggered' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/NoticeTriggered.php', + 'PHPUnit\\Event\\TestRunner\\NoticeTriggeredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/NoticeTriggeredSubscriber.php', 'PHPUnit\\Event\\TestRunner\\Started' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/Started.php', 'PHPUnit\\Event\\TestRunner\\StartedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/StartedSubscriber.php', + 'PHPUnit\\Event\\TestRunner\\StaticAnalysisForCodeCoverageFinished' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageFinished.php', + 'PHPUnit\\Event\\TestRunner\\StaticAnalysisForCodeCoverageFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageFinishedSubscriber.php', + 'PHPUnit\\Event\\TestRunner\\StaticAnalysisForCodeCoverageStarted' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageStarted.php', + 'PHPUnit\\Event\\TestRunner\\StaticAnalysisForCodeCoverageStartedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageStartedSubscriber.php', 'PHPUnit\\Event\\TestRunner\\WarningTriggered' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/WarningTriggered.php', 'PHPUnit\\Event\\TestRunner\\WarningTriggeredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestRunner/WarningTriggeredSubscriber.php', 'PHPUnit\\Event\\TestSuite\\Filtered' => $vendorDir . '/phpunit/phpunit/src/Event/Events/TestSuite/Filtered.php', @@ -5227,34 +5324,46 @@ return array( 'PHPUnit\\Event\\TestSuite\\TestSuiteForTestClass' => $vendorDir . '/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteForTestClass.php', 'PHPUnit\\Event\\TestSuite\\TestSuiteForTestMethodWithDataProvider' => $vendorDir . '/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteForTestMethodWithDataProvider.php', 'PHPUnit\\Event\\TestSuite\\TestSuiteWithName' => $vendorDir . '/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteWithName.php', + 'PHPUnit\\Event\\Test\\AdditionalInformationProvided' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/AdditionalInformationProvided.php', + 'PHPUnit\\Event\\Test\\AdditionalInformationProvidedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/AdditionalInformationProvidedSubscriber.php', 'PHPUnit\\Event\\Test\\AfterLastTestMethodCalled' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodCalled.php', 'PHPUnit\\Event\\Test\\AfterLastTestMethodCalledSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodCalledSubscriber.php', 'PHPUnit\\Event\\Test\\AfterLastTestMethodErrored' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodErrored.php', 'PHPUnit\\Event\\Test\\AfterLastTestMethodErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodErroredSubscriber.php', + 'PHPUnit\\Event\\Test\\AfterLastTestMethodFailed' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFailed.php', + 'PHPUnit\\Event\\Test\\AfterLastTestMethodFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFailedSubscriber.php', 'PHPUnit\\Event\\Test\\AfterLastTestMethodFinished' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFinished.php', 'PHPUnit\\Event\\Test\\AfterLastTestMethodFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFinishedSubscriber.php', 'PHPUnit\\Event\\Test\\AfterTestMethodCalled' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodCalled.php', 'PHPUnit\\Event\\Test\\AfterTestMethodCalledSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodCalledSubscriber.php', 'PHPUnit\\Event\\Test\\AfterTestMethodErrored' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodErrored.php', 'PHPUnit\\Event\\Test\\AfterTestMethodErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodErroredSubscriber.php', + 'PHPUnit\\Event\\Test\\AfterTestMethodFailed' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFailed.php', + 'PHPUnit\\Event\\Test\\AfterTestMethodFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFailedSubscriber.php', 'PHPUnit\\Event\\Test\\AfterTestMethodFinished' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFinished.php', 'PHPUnit\\Event\\Test\\AfterTestMethodFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFinishedSubscriber.php', 'PHPUnit\\Event\\Test\\BeforeFirstTestMethodCalled' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodCalled.php', 'PHPUnit\\Event\\Test\\BeforeFirstTestMethodCalledSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodCalledSubscriber.php', 'PHPUnit\\Event\\Test\\BeforeFirstTestMethodErrored' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodErrored.php', 'PHPUnit\\Event\\Test\\BeforeFirstTestMethodErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodErroredSubscriber.php', + 'PHPUnit\\Event\\Test\\BeforeFirstTestMethodFailed' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFailed.php', + 'PHPUnit\\Event\\Test\\BeforeFirstTestMethodFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFailedSubscriber.php', 'PHPUnit\\Event\\Test\\BeforeFirstTestMethodFinished' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFinished.php', 'PHPUnit\\Event\\Test\\BeforeFirstTestMethodFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFinishedSubscriber.php', 'PHPUnit\\Event\\Test\\BeforeTestMethodCalled' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodCalled.php', 'PHPUnit\\Event\\Test\\BeforeTestMethodCalledSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodCalledSubscriber.php', 'PHPUnit\\Event\\Test\\BeforeTestMethodErrored' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodErrored.php', 'PHPUnit\\Event\\Test\\BeforeTestMethodErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodErroredSubscriber.php', + 'PHPUnit\\Event\\Test\\BeforeTestMethodFailed' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFailed.php', + 'PHPUnit\\Event\\Test\\BeforeTestMethodFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFailedSubscriber.php', 'PHPUnit\\Event\\Test\\BeforeTestMethodFinished' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFinished.php', 'PHPUnit\\Event\\Test\\BeforeTestMethodFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFinishedSubscriber.php', 'PHPUnit\\Event\\Test\\ComparatorRegistered' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/ComparatorRegistered.php', 'PHPUnit\\Event\\Test\\ComparatorRegisteredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/ComparatorRegisteredSubscriber.php', 'PHPUnit\\Event\\Test\\ConsideredRisky' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Issue/ConsideredRisky.php', 'PHPUnit\\Event\\Test\\ConsideredRiskySubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Issue/ConsideredRiskySubscriber.php', + 'PHPUnit\\Event\\Test\\CustomTestMethodInvocationUsed' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/CustomTestMethodInvocationUsed.php', + 'PHPUnit\\Event\\Test\\CustomTestMethodInvocationUsedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/CustomTestMethodInvocationUsedSubscriber.php', 'PHPUnit\\Event\\Test\\DataProviderMethodCalled' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Lifecycle/DataProviderMethodCalled.php', 'PHPUnit\\Event\\Test\\DataProviderMethodCalledSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Lifecycle/DataProviderMethodCalledSubscriber.php', 'PHPUnit\\Event\\Test\\DataProviderMethodFinished' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Lifecycle/DataProviderMethodFinished.php', @@ -5273,14 +5382,8 @@ return array( 'PHPUnit\\Event\\Test\\MarkedIncompleteSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Outcome/MarkedIncompleteSubscriber.php', 'PHPUnit\\Event\\Test\\MockObjectCreated' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectCreated.php', 'PHPUnit\\Event\\Test\\MockObjectCreatedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectCreatedSubscriber.php', - 'PHPUnit\\Event\\Test\\MockObjectForAbstractClassCreated' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForAbstractClassCreated.php', - 'PHPUnit\\Event\\Test\\MockObjectForAbstractClassCreatedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForAbstractClassCreatedSubscriber.php', 'PHPUnit\\Event\\Test\\MockObjectForIntersectionOfInterfacesCreated' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForIntersectionOfInterfacesCreated.php', 'PHPUnit\\Event\\Test\\MockObjectForIntersectionOfInterfacesCreatedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForIntersectionOfInterfacesCreatedSubscriber.php', - 'PHPUnit\\Event\\Test\\MockObjectForTraitCreated' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForTraitCreated.php', - 'PHPUnit\\Event\\Test\\MockObjectForTraitCreatedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForTraitCreatedSubscriber.php', - 'PHPUnit\\Event\\Test\\MockObjectFromWsdlCreated' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectFromWsdlCreated.php', - 'PHPUnit\\Event\\Test\\MockObjectFromWsdlCreatedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectFromWsdlCreatedSubscriber.php', 'PHPUnit\\Event\\Test\\NoComparisonFailureException' => $vendorDir . '/phpunit/phpunit/src/Event/Exception/NoComparisonFailureException.php', 'PHPUnit\\Event\\Test\\NoticeTriggered' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Issue/NoticeTriggered.php', 'PHPUnit\\Event\\Test\\NoticeTriggeredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Issue/NoticeTriggeredSubscriber.php', @@ -5298,20 +5401,28 @@ return array( 'PHPUnit\\Event\\Test\\PhpunitDeprecationTriggeredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitDeprecationTriggeredSubscriber.php', 'PHPUnit\\Event\\Test\\PhpunitErrorTriggered' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitErrorTriggered.php', 'PHPUnit\\Event\\Test\\PhpunitErrorTriggeredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitErrorTriggeredSubscriber.php', + 'PHPUnit\\Event\\Test\\PhpunitNoticeTriggered' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitNoticeTriggered.php', + 'PHPUnit\\Event\\Test\\PhpunitNoticeTriggeredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitNoticeTriggeredSubscriber.php', 'PHPUnit\\Event\\Test\\PhpunitWarningTriggered' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitWarningTriggered.php', 'PHPUnit\\Event\\Test\\PhpunitWarningTriggeredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitWarningTriggeredSubscriber.php', 'PHPUnit\\Event\\Test\\PostConditionCalled' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionCalled.php', 'PHPUnit\\Event\\Test\\PostConditionCalledSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionCalledSubscriber.php', 'PHPUnit\\Event\\Test\\PostConditionErrored' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionErrored.php', 'PHPUnit\\Event\\Test\\PostConditionErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionErroredSubscriber.php', + 'PHPUnit\\Event\\Test\\PostConditionFailed' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFailed.php', + 'PHPUnit\\Event\\Test\\PostConditionFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFailedSubscriber.php', 'PHPUnit\\Event\\Test\\PostConditionFinished' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFinished.php', 'PHPUnit\\Event\\Test\\PostConditionFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFinishedSubscriber.php', 'PHPUnit\\Event\\Test\\PreConditionCalled' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionCalled.php', 'PHPUnit\\Event\\Test\\PreConditionCalledSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionCalledSubscriber.php', 'PHPUnit\\Event\\Test\\PreConditionErrored' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionErrored.php', 'PHPUnit\\Event\\Test\\PreConditionErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionErroredSubscriber.php', + 'PHPUnit\\Event\\Test\\PreConditionFailed' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFailed.php', + 'PHPUnit\\Event\\Test\\PreConditionFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFailedSubscriber.php', 'PHPUnit\\Event\\Test\\PreConditionFinished' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFinished.php', 'PHPUnit\\Event\\Test\\PreConditionFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFinishedSubscriber.php', + 'PHPUnit\\Event\\Test\\PreparationErrored' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationErrored.php', + 'PHPUnit\\Event\\Test\\PreparationErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationErroredSubscriber.php', 'PHPUnit\\Event\\Test\\PreparationFailed' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationFailed.php', 'PHPUnit\\Event\\Test\\PreparationFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationFailedSubscriber.php', 'PHPUnit\\Event\\Test\\PreparationStarted' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationStarted.php', @@ -5322,8 +5433,6 @@ return array( 'PHPUnit\\Event\\Test\\PrintedUnexpectedOutputSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/PrintedUnexpectedOutputSubscriber.php', 'PHPUnit\\Event\\Test\\Skipped' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Outcome/Skipped.php', 'PHPUnit\\Event\\Test\\SkippedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Outcome/SkippedSubscriber.php', - 'PHPUnit\\Event\\Test\\TestProxyCreated' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestProxyCreated.php', - 'PHPUnit\\Event\\Test\\TestProxyCreatedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestProxyCreatedSubscriber.php', 'PHPUnit\\Event\\Test\\TestStubCreated' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubCreated.php', 'PHPUnit\\Event\\Test\\TestStubCreatedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubCreatedSubscriber.php', 'PHPUnit\\Event\\Test\\TestStubForIntersectionOfInterfacesCreated' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubForIntersectionOfInterfacesCreated.php', @@ -5342,13 +5451,17 @@ return array( 'PHPUnit\\Framework\\AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/AssertionFailedError.php', 'PHPUnit\\Framework\\Attributes\\After' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/After.php', 'PHPUnit\\Framework\\Attributes\\AfterClass' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/AfterClass.php', + 'PHPUnit\\Framework\\Attributes\\AllowMockObjectsWithoutExpectations' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/AllowMockObjectsWithoutExpectations.php', 'PHPUnit\\Framework\\Attributes\\BackupGlobals' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/BackupGlobals.php', 'PHPUnit\\Framework\\Attributes\\BackupStaticProperties' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/BackupStaticProperties.php', 'PHPUnit\\Framework\\Attributes\\Before' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/Before.php', 'PHPUnit\\Framework\\Attributes\\BeforeClass' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/BeforeClass.php', 'PHPUnit\\Framework\\Attributes\\CoversClass' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/CoversClass.php', + 'PHPUnit\\Framework\\Attributes\\CoversClassesThatExtendClass' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/CoversClassesThatExtendClass.php', + 'PHPUnit\\Framework\\Attributes\\CoversClassesThatImplementInterface' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/CoversClassesThatImplementInterface.php', 'PHPUnit\\Framework\\Attributes\\CoversFunction' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/CoversFunction.php', 'PHPUnit\\Framework\\Attributes\\CoversMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/CoversMethod.php', + 'PHPUnit\\Framework\\Attributes\\CoversNamespace' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/CoversNamespace.php', 'PHPUnit\\Framework\\Attributes\\CoversNothing' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/CoversNothing.php', 'PHPUnit\\Framework\\Attributes\\CoversTrait' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/CoversTrait.php', 'PHPUnit\\Framework\\Attributes\\DataProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/DataProvider.php', @@ -5369,11 +5482,13 @@ return array( 'PHPUnit\\Framework\\Attributes\\Group' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/Group.php', 'PHPUnit\\Framework\\Attributes\\IgnoreDeprecations' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/IgnoreDeprecations.php', 'PHPUnit\\Framework\\Attributes\\IgnorePhpunitDeprecations' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/IgnorePhpunitDeprecations.php', + 'PHPUnit\\Framework\\Attributes\\IgnorePhpunitWarnings' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/IgnorePhpunitWarnings.php', 'PHPUnit\\Framework\\Attributes\\Large' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/Large.php', 'PHPUnit\\Framework\\Attributes\\Medium' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/Medium.php', 'PHPUnit\\Framework\\Attributes\\PostCondition' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/PostCondition.php', 'PHPUnit\\Framework\\Attributes\\PreCondition' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/PreCondition.php', 'PHPUnit\\Framework\\Attributes\\PreserveGlobalState' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/PreserveGlobalState.php', + 'PHPUnit\\Framework\\Attributes\\RequiresEnvironmentVariable' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/RequiresEnvironmentVariable.php', 'PHPUnit\\Framework\\Attributes\\RequiresFunction' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/RequiresFunction.php', 'PHPUnit\\Framework\\Attributes\\RequiresMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/RequiresMethod.php', 'PHPUnit\\Framework\\Attributes\\RequiresOperatingSystem' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/RequiresOperatingSystem.php', @@ -5389,16 +5504,21 @@ return array( 'PHPUnit\\Framework\\Attributes\\Small' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/Small.php', 'PHPUnit\\Framework\\Attributes\\Test' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/Test.php', 'PHPUnit\\Framework\\Attributes\\TestDox' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/TestDox.php', + 'PHPUnit\\Framework\\Attributes\\TestDoxFormatter' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/TestDoxFormatter.php', + 'PHPUnit\\Framework\\Attributes\\TestDoxFormatterExternal' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/TestDoxFormatterExternal.php', 'PHPUnit\\Framework\\Attributes\\TestWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/TestWith.php', 'PHPUnit\\Framework\\Attributes\\TestWithJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/TestWithJson.php', 'PHPUnit\\Framework\\Attributes\\Ticket' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/Ticket.php', 'PHPUnit\\Framework\\Attributes\\UsesClass' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/UsesClass.php', + 'PHPUnit\\Framework\\Attributes\\UsesClassesThatExtendClass' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/UsesClassesThatExtendClass.php', + 'PHPUnit\\Framework\\Attributes\\UsesClassesThatImplementInterface' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/UsesClassesThatImplementInterface.php', 'PHPUnit\\Framework\\Attributes\\UsesFunction' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/UsesFunction.php', 'PHPUnit\\Framework\\Attributes\\UsesMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/UsesMethod.php', + 'PHPUnit\\Framework\\Attributes\\UsesNamespace' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/UsesNamespace.php', 'PHPUnit\\Framework\\Attributes\\UsesTrait' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/UsesTrait.php', + 'PHPUnit\\Framework\\Attributes\\WithEnvironmentVariable' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/WithEnvironmentVariable.php', 'PHPUnit\\Framework\\Attributes\\WithoutErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/WithoutErrorHandler.php', 'PHPUnit\\Framework\\ChildProcessResultProcessor' => $vendorDir . '/phpunit/phpunit/src/Framework/TestRunner/ChildProcessResultProcessor.php', - 'PHPUnit\\Framework\\CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/CodeCoverageException.php', 'PHPUnit\\Framework\\ComparisonMethodDoesNotAcceptParameterTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ObjectEquals/ComparisonMethodDoesNotAcceptParameterTypeException.php', 'PHPUnit\\Framework\\ComparisonMethodDoesNotDeclareBoolReturnTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ObjectEquals/ComparisonMethodDoesNotDeclareBoolReturnTypeException.php', 'PHPUnit\\Framework\\ComparisonMethodDoesNotDeclareExactlyOneParameterException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ObjectEquals/ComparisonMethodDoesNotDeclareExactlyOneParameterException.php', @@ -5458,6 +5578,7 @@ return array( 'PHPUnit\\Framework\\Constraint\\UnaryOperator' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/UnaryOperator.php', 'PHPUnit\\Framework\\DataProviderTestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php', 'PHPUnit\\Framework\\EmptyStringException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/EmptyStringException.php', + 'PHPUnit\\Framework\\ErrorLogNotWritableException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ErrorLogNotWritableException.php', 'PHPUnit\\Framework\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/Exception.php', 'PHPUnit\\Framework\\ExecutionOrderDependency' => $vendorDir . '/phpunit/phpunit/src/Framework/ExecutionOrderDependency.php', 'PHPUnit\\Framework\\ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ExpectationFailedException.php', @@ -5465,51 +5586,38 @@ return array( 'PHPUnit\\Framework\\IncompleteTest' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/Incomplete/IncompleteTest.php', 'PHPUnit\\Framework\\IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/Incomplete/IncompleteTestError.php', 'PHPUnit\\Framework\\InvalidArgumentException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/InvalidArgumentException.php', - 'PHPUnit\\Framework\\InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/InvalidCoversTargetException.php', 'PHPUnit\\Framework\\InvalidDataProviderException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/InvalidDataProviderException.php', 'PHPUnit\\Framework\\InvalidDependencyException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/InvalidDependencyException.php', 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/Identity.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationStubber' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/InvocationStubber.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/MethodNameMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/ParametersMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/Stub.php', - 'PHPUnit\\Framework\\MockObject\\CannotCloneTestDoubleForReadonlyClassException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotCloneTestDoubleForReadonlyClassException.php', 'PHPUnit\\Framework\\MockObject\\CannotUseOnlyMethodsException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php', 'PHPUnit\\Framework\\MockObject\\ConfigurableMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/ConfigurableMethod.php', 'PHPUnit\\Framework\\MockObject\\DoubledCloneMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/DoubledCloneMethod.php', - 'PHPUnit\\Framework\\MockObject\\ErrorCloneMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/ErrorCloneMethod.php', 'PHPUnit\\Framework\\MockObject\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php', - 'PHPUnit\\Framework\\MockObject\\GeneratedAsMockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/GeneratedAsMockObject.php', - 'PHPUnit\\Framework\\MockObject\\GeneratedAsTestStub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/GeneratedAsTestStub.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\CannotUseAddMethodsException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/CannotUseAddMethodsException.php', + 'PHPUnit\\Framework\\MockObject\\Generator\\ClassIsAnonymousException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsAnonymousException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\ClassIsEnumerationException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsEnumerationException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\ClassIsFinalException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsFinalException.php', + 'PHPUnit\\Framework\\MockObject\\Generator\\DoubledClass' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledClass.php', + 'PHPUnit\\Framework\\MockObject\\Generator\\DoubledMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledMethod.php', + 'PHPUnit\\Framework\\MockObject\\Generator\\DoubledMethodSet' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledMethodSet.php', 'PHPUnit\\Framework\\MockObject\\Generator\\DuplicateMethodException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/DuplicateMethodException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/Exception.php', 'PHPUnit\\Framework\\MockObject\\Generator\\Generator' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Generator.php', 'PHPUnit\\Framework\\MockObject\\Generator\\HookedProperty' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/HookedProperty.php', 'PHPUnit\\Framework\\MockObject\\Generator\\HookedPropertyGenerator' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/HookedPropertyGenerator.php', + 'PHPUnit\\Framework\\MockObject\\Generator\\InvalidClassNameException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/InvalidClassNameException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\InvalidMethodNameException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/InvalidMethodNameException.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\MockClass' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockClass.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\MockMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockMethod.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\MockMethodSet' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockMethodSet.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\MockTrait' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockTrait.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\MockType' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockType.php', + 'PHPUnit\\Framework\\MockObject\\Generator\\MethodNamedMethodException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/MethodNamedMethodException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\NameAlreadyInUseException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/NameAlreadyInUseException.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\OriginalConstructorInvocationRequiredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/OriginalConstructorInvocationRequiredException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\ReflectionException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ReflectionException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\RuntimeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/RuntimeException.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\SoapExtensionNotAvailableException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/SoapExtensionNotAvailableException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\TemplateLoader' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/TemplateLoader.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\UnknownClassException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownClassException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\UnknownInterfaceException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownInterfaceException.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\UnknownTraitException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownTraitException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\UnknownTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownTypeException.php', 'PHPUnit\\Framework\\MockObject\\IncompatibleReturnValueException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php', 'PHPUnit\\Framework\\MockObject\\Invocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Invocation.php', 'PHPUnit\\Framework\\MockObject\\InvocationHandler' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/InvocationHandler.php', + 'PHPUnit\\Framework\\MockObject\\InvocationStubber' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/InvocationStubber.php', + 'PHPUnit\\Framework\\MockObject\\InvocationStubberImplementation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/InvocationStubberImplementation.php', 'PHPUnit\\Framework\\MockObject\\MatchBuilderNotFoundException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/MatchBuilderNotFoundException.php', 'PHPUnit\\Framework\\MockObject\\Matcher' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Matcher.php', 'PHPUnit\\Framework\\MockObject\\MatcherAlreadyRegisteredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/MatcherAlreadyRegisteredException.php', @@ -5523,7 +5631,6 @@ return array( 'PHPUnit\\Framework\\MockObject\\MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/MockObject.php', 'PHPUnit\\Framework\\MockObject\\MockObjectApi' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/MockObjectApi.php', 'PHPUnit\\Framework\\MockObject\\MockObjectInternal' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/MockObjectInternal.php', - 'PHPUnit\\Framework\\MockObject\\MutableStubApi' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/MutableStubApi.php', 'PHPUnit\\Framework\\MockObject\\NeverReturningMethodException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/NeverReturningMethodException.php', 'PHPUnit\\Framework\\MockObject\\NoMoreReturnValuesConfiguredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/NoMoreReturnValuesConfiguredException.php', 'PHPUnit\\Framework\\MockObject\\ProxiedCloneMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/ProxiedCloneMethod.php', @@ -5555,7 +5662,9 @@ return array( 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Stub/ReturnStub.php', 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Stub/ReturnValueMap.php', 'PHPUnit\\Framework\\MockObject\\Stub\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Stub/Stub.php', + 'PHPUnit\\Framework\\MockObject\\TestDoubleBuilder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/TestDoubleBuilder.php', 'PHPUnit\\Framework\\MockObject\\TestDoubleState' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/TestDoubleState.php', + 'PHPUnit\\Framework\\MockObject\\TestStubBuilder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/TestStubBuilder.php', 'PHPUnit\\Framework\\NativeType' => $vendorDir . '/phpunit/phpunit/src/Framework/NativeType.php', 'PHPUnit\\Framework\\NoChildTestSuiteException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/NoChildTestSuiteException.php', 'PHPUnit\\Framework\\PhptAssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/PhptAssertionFailedError.php', @@ -5591,7 +5700,7 @@ return array( 'PHPUnit\\Framework\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php', 'PHPUnit\\Framework\\TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php', 'PHPUnit\\Framework\\UnknownClassOrInterfaceException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/UnknownClassOrInterfaceException.php', - 'PHPUnit\\Framework\\UnknownTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/UnknownTypeException.php', + 'PHPUnit\\Framework\\UnknownNativeTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/UnknownNativeTypeException.php', 'PHPUnit\\Logging\\EventLogger' => $vendorDir . '/phpunit/phpunit/src/Logging/EventLogger.php', 'PHPUnit\\Logging\\JUnit\\JunitXmlLogger' => $vendorDir . '/phpunit/phpunit/src/Logging/JUnit/JunitXmlLogger.php', 'PHPUnit\\Logging\\JUnit\\Subscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/Subscriber.php', @@ -5599,6 +5708,7 @@ return array( 'PHPUnit\\Logging\\JUnit\\TestFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestFailedSubscriber.php', 'PHPUnit\\Logging\\JUnit\\TestFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestFinishedSubscriber.php', 'PHPUnit\\Logging\\JUnit\\TestMarkedIncompleteSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestMarkedIncompleteSubscriber.php', + 'PHPUnit\\Logging\\JUnit\\TestPreparationErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestPreparationErroredSubscriber.php', 'PHPUnit\\Logging\\JUnit\\TestPreparationFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestPreparationFailedSubscriber.php', 'PHPUnit\\Logging\\JUnit\\TestPreparationStartedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestPreparationStartedSubscriber.php', 'PHPUnit\\Logging\\JUnit\\TestPreparedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestPreparedSubscriber.php', @@ -5606,7 +5716,31 @@ return array( 'PHPUnit\\Logging\\JUnit\\TestRunnerExecutionFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestRunnerExecutionFinishedSubscriber.php', 'PHPUnit\\Logging\\JUnit\\TestSkippedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestSkippedSubscriber.php', 'PHPUnit\\Logging\\JUnit\\TestSuiteFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestSuiteFinishedSubscriber.php', + 'PHPUnit\\Logging\\JUnit\\TestSuiteSkippedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestSuiteSkippedSubscriber.php', 'PHPUnit\\Logging\\JUnit\\TestSuiteStartedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestSuiteStartedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\AfterLastTestMethodErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/AfterLastTestMethodErroredSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\AfterLastTestMethodFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/AfterLastTestMethodFailedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\BeforeFirstTestMethodErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/BeforeFirstTestMethodErroredSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\BeforeFirstTestMethodFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/BeforeFirstTestMethodFailedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\CannotOpenUriForWritingException' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Exception/CannotOpenUriForWritingException.php', + 'PHPUnit\\Logging\\OpenTestReporting\\Exception' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Exception/Exception.php', + 'PHPUnit\\Logging\\OpenTestReporting\\InfrastructureInformationProvider' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/InfrastructureInformationProvider.php', + 'PHPUnit\\Logging\\OpenTestReporting\\OtrXmlLogger' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/OtrXmlLogger.php', + 'PHPUnit\\Logging\\OpenTestReporting\\Status' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Status.php', + 'PHPUnit\\Logging\\OpenTestReporting\\Subscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/Subscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestAbortedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestAbortedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestErroredSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestFailedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestFinishedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestPreparationErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparationErroredSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestPreparationFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparationFailedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestPreparedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestRunnerFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestRunnerFinishedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestRunnerStartedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestRunnerStartedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestSkippedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSkippedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestSuiteFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteFinishedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestSuiteSkippedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteSkippedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestSuiteStartedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteStartedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\Subscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/Subscriber.php', 'PHPUnit\\Logging\\TeamCity\\TeamCityLogger' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/TeamCityLogger.php', 'PHPUnit\\Logging\\TeamCity\\TestConsideredRiskySubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestConsideredRiskySubscriber.php', @@ -5614,10 +5748,14 @@ return array( 'PHPUnit\\Logging\\TeamCity\\TestFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestFailedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestFinishedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestMarkedIncompleteSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestMarkedIncompleteSubscriber.php', + 'PHPUnit\\Logging\\TeamCity\\TestPreparationErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationErroredSubscriber.php', + 'PHPUnit\\Logging\\TeamCity\\TestPreparationFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationFailedSubscriber.php', + 'PHPUnit\\Logging\\TeamCity\\TestPreparationStartedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationStartedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestPreparedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestRunnerExecutionFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestRunnerExecutionFinishedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestSkippedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestSkippedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestSuiteBeforeFirstTestMethodErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestSuiteBeforeFirstTestMethodErroredSubscriber.php', + 'PHPUnit\\Logging\\TeamCity\\TestSuiteBeforeFirstTestMethodFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestSuiteBeforeFirstTestMethodFailedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestSuiteFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestSuiteFinishedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestSuiteSkippedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestSuiteSkippedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestSuiteStartedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestSuiteStartedSubscriber.php', @@ -5648,24 +5786,24 @@ return array( 'PHPUnit\\Logging\\TestDox\\TestTriggeredWarningSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TestDox/TestResult/Subscriber/TestTriggeredWarningSubscriber.php', 'PHPUnit\\Metadata\\After' => $vendorDir . '/phpunit/phpunit/src/Metadata/After.php', 'PHPUnit\\Metadata\\AfterClass' => $vendorDir . '/phpunit/phpunit/src/Metadata/AfterClass.php', - 'PHPUnit\\Metadata\\Annotation\\Parser\\DocBlock' => $vendorDir . '/phpunit/phpunit/src/Metadata/Parser/Annotation/DocBlock.php', - 'PHPUnit\\Metadata\\Annotation\\Parser\\Registry' => $vendorDir . '/phpunit/phpunit/src/Metadata/Parser/Annotation/Registry.php', - 'PHPUnit\\Metadata\\AnnotationsAreNotSupportedForInternalClassesException' => $vendorDir . '/phpunit/phpunit/src/Metadata/Exception/AnnotationsAreNotSupportedForInternalClassesException.php', + 'PHPUnit\\Metadata\\AllowMockObjectsWithoutExpectations' => $vendorDir . '/phpunit/phpunit/src/Metadata/AllowMockObjectsWithoutExpectations.php', 'PHPUnit\\Metadata\\Api\\CodeCoverage' => $vendorDir . '/phpunit/phpunit/src/Metadata/Api/CodeCoverage.php', 'PHPUnit\\Metadata\\Api\\DataProvider' => $vendorDir . '/phpunit/phpunit/src/Metadata/Api/DataProvider.php', 'PHPUnit\\Metadata\\Api\\Dependencies' => $vendorDir . '/phpunit/phpunit/src/Metadata/Api/Dependencies.php', 'PHPUnit\\Metadata\\Api\\Groups' => $vendorDir . '/phpunit/phpunit/src/Metadata/Api/Groups.php', 'PHPUnit\\Metadata\\Api\\HookMethods' => $vendorDir . '/phpunit/phpunit/src/Metadata/Api/HookMethods.php', + 'PHPUnit\\Metadata\\Api\\ProvidedData' => $vendorDir . '/phpunit/phpunit/src/Metadata/Api/ProvidedData.php', 'PHPUnit\\Metadata\\Api\\Requirements' => $vendorDir . '/phpunit/phpunit/src/Metadata/Api/Requirements.php', 'PHPUnit\\Metadata\\BackupGlobals' => $vendorDir . '/phpunit/phpunit/src/Metadata/BackupGlobals.php', 'PHPUnit\\Metadata\\BackupStaticProperties' => $vendorDir . '/phpunit/phpunit/src/Metadata/BackupStaticProperties.php', 'PHPUnit\\Metadata\\Before' => $vendorDir . '/phpunit/phpunit/src/Metadata/Before.php', 'PHPUnit\\Metadata\\BeforeClass' => $vendorDir . '/phpunit/phpunit/src/Metadata/BeforeClass.php', - 'PHPUnit\\Metadata\\Covers' => $vendorDir . '/phpunit/phpunit/src/Metadata/Covers.php', 'PHPUnit\\Metadata\\CoversClass' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversClass.php', - 'PHPUnit\\Metadata\\CoversDefaultClass' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversDefaultClass.php', + 'PHPUnit\\Metadata\\CoversClassesThatExtendClass' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversClassesThatExtendClass.php', + 'PHPUnit\\Metadata\\CoversClassesThatImplementInterface' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversClassesThatImplementInterface.php', 'PHPUnit\\Metadata\\CoversFunction' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversFunction.php', 'PHPUnit\\Metadata\\CoversMethod' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversMethod.php', + 'PHPUnit\\Metadata\\CoversNamespace' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversNamespace.php', 'PHPUnit\\Metadata\\CoversNothing' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversNothing.php', 'PHPUnit\\Metadata\\CoversTrait' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversTrait.php', 'PHPUnit\\Metadata\\DataProvider' => $vendorDir . '/phpunit/phpunit/src/Metadata/DataProvider.php', @@ -5679,22 +5817,21 @@ return array( 'PHPUnit\\Metadata\\Group' => $vendorDir . '/phpunit/phpunit/src/Metadata/Group.php', 'PHPUnit\\Metadata\\IgnoreDeprecations' => $vendorDir . '/phpunit/phpunit/src/Metadata/IgnoreDeprecations.php', 'PHPUnit\\Metadata\\IgnorePhpunitDeprecations' => $vendorDir . '/phpunit/phpunit/src/Metadata/IgnorePhpunitDeprecations.php', + 'PHPUnit\\Metadata\\IgnorePhpunitWarnings' => $vendorDir . '/phpunit/phpunit/src/Metadata/IgnorePhpunitWarnings.php', 'PHPUnit\\Metadata\\InvalidAttributeException' => $vendorDir . '/phpunit/phpunit/src/Metadata/Exception/InvalidAttributeException.php', 'PHPUnit\\Metadata\\InvalidVersionRequirementException' => $vendorDir . '/phpunit/phpunit/src/Metadata/Exception/InvalidVersionRequirementException.php', 'PHPUnit\\Metadata\\Metadata' => $vendorDir . '/phpunit/phpunit/src/Metadata/Metadata.php', 'PHPUnit\\Metadata\\MetadataCollection' => $vendorDir . '/phpunit/phpunit/src/Metadata/MetadataCollection.php', 'PHPUnit\\Metadata\\MetadataCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/Metadata/MetadataCollectionIterator.php', 'PHPUnit\\Metadata\\NoVersionRequirementException' => $vendorDir . '/phpunit/phpunit/src/Metadata/Exception/NoVersionRequirementException.php', - 'PHPUnit\\Metadata\\Parser\\AnnotationParser' => $vendorDir . '/phpunit/phpunit/src/Metadata/Parser/AnnotationParser.php', 'PHPUnit\\Metadata\\Parser\\AttributeParser' => $vendorDir . '/phpunit/phpunit/src/Metadata/Parser/AttributeParser.php', 'PHPUnit\\Metadata\\Parser\\CachingParser' => $vendorDir . '/phpunit/phpunit/src/Metadata/Parser/CachingParser.php', 'PHPUnit\\Metadata\\Parser\\Parser' => $vendorDir . '/phpunit/phpunit/src/Metadata/Parser/Parser.php', - 'PHPUnit\\Metadata\\Parser\\ParserChain' => $vendorDir . '/phpunit/phpunit/src/Metadata/Parser/ParserChain.php', 'PHPUnit\\Metadata\\Parser\\Registry' => $vendorDir . '/phpunit/phpunit/src/Metadata/Parser/Registry.php', 'PHPUnit\\Metadata\\PostCondition' => $vendorDir . '/phpunit/phpunit/src/Metadata/PostCondition.php', 'PHPUnit\\Metadata\\PreCondition' => $vendorDir . '/phpunit/phpunit/src/Metadata/PreCondition.php', 'PHPUnit\\Metadata\\PreserveGlobalState' => $vendorDir . '/phpunit/phpunit/src/Metadata/PreserveGlobalState.php', - 'PHPUnit\\Metadata\\ReflectionException' => $vendorDir . '/phpunit/phpunit/src/Metadata/Exception/ReflectionException.php', + 'PHPUnit\\Metadata\\RequiresEnvironmentVariable' => $vendorDir . '/phpunit/phpunit/src/Metadata/RequiresEnvironmentVariable.php', 'PHPUnit\\Metadata\\RequiresFunction' => $vendorDir . '/phpunit/phpunit/src/Metadata/RequiresFunction.php', 'PHPUnit\\Metadata\\RequiresMethod' => $vendorDir . '/phpunit/phpunit/src/Metadata/RequiresMethod.php', 'PHPUnit\\Metadata\\RequiresOperatingSystem' => $vendorDir . '/phpunit/phpunit/src/Metadata/RequiresOperatingSystem.php', @@ -5709,17 +5846,21 @@ return array( 'PHPUnit\\Metadata\\RunTestsInSeparateProcesses' => $vendorDir . '/phpunit/phpunit/src/Metadata/RunTestsInSeparateProcesses.php', 'PHPUnit\\Metadata\\Test' => $vendorDir . '/phpunit/phpunit/src/Metadata/Test.php', 'PHPUnit\\Metadata\\TestDox' => $vendorDir . '/phpunit/phpunit/src/Metadata/TestDox.php', + 'PHPUnit\\Metadata\\TestDoxFormatter' => $vendorDir . '/phpunit/phpunit/src/Metadata/TestDoxFormatter.php', 'PHPUnit\\Metadata\\TestWith' => $vendorDir . '/phpunit/phpunit/src/Metadata/TestWith.php', - 'PHPUnit\\Metadata\\Uses' => $vendorDir . '/phpunit/phpunit/src/Metadata/Uses.php', 'PHPUnit\\Metadata\\UsesClass' => $vendorDir . '/phpunit/phpunit/src/Metadata/UsesClass.php', - 'PHPUnit\\Metadata\\UsesDefaultClass' => $vendorDir . '/phpunit/phpunit/src/Metadata/UsesDefaultClass.php', + 'PHPUnit\\Metadata\\UsesClassesThatExtendClass' => $vendorDir . '/phpunit/phpunit/src/Metadata/UsesClassesThatExtendClass.php', + 'PHPUnit\\Metadata\\UsesClassesThatImplementInterface' => $vendorDir . '/phpunit/phpunit/src/Metadata/UsesClassesThatImplementInterface.php', 'PHPUnit\\Metadata\\UsesFunction' => $vendorDir . '/phpunit/phpunit/src/Metadata/UsesFunction.php', 'PHPUnit\\Metadata\\UsesMethod' => $vendorDir . '/phpunit/phpunit/src/Metadata/UsesMethod.php', + 'PHPUnit\\Metadata\\UsesNamespace' => $vendorDir . '/phpunit/phpunit/src/Metadata/UsesNamespace.php', 'PHPUnit\\Metadata\\UsesTrait' => $vendorDir . '/phpunit/phpunit/src/Metadata/UsesTrait.php', 'PHPUnit\\Metadata\\Version\\ComparisonRequirement' => $vendorDir . '/phpunit/phpunit/src/Metadata/Version/ComparisonRequirement.php', 'PHPUnit\\Metadata\\Version\\ConstraintRequirement' => $vendorDir . '/phpunit/phpunit/src/Metadata/Version/ConstraintRequirement.php', 'PHPUnit\\Metadata\\Version\\Requirement' => $vendorDir . '/phpunit/phpunit/src/Metadata/Version/Requirement.php', + 'PHPUnit\\Metadata\\WithEnvironmentVariable' => $vendorDir . '/phpunit/phpunit/src/Metadata/WithEnvironmentVariable.php', 'PHPUnit\\Metadata\\WithoutErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Metadata/WithoutErrorHandler.php', + 'PHPUnit\\Runner\\BackedUpEnvironmentVariable' => $vendorDir . '/phpunit/phpunit/src/Runner/BackedUpEnvironmentVariable.php', 'PHPUnit\\Runner\\Baseline\\Baseline' => $vendorDir . '/phpunit/phpunit/src/Runner/Baseline/Baseline.php', 'PHPUnit\\Runner\\Baseline\\CannotLoadBaselineException' => $vendorDir . '/phpunit/phpunit/src/Runner/Baseline/Exception/CannotLoadBaselineException.php', 'PHPUnit\\Runner\\Baseline\\CannotWriteBaselineException' => $vendorDir . '/phpunit/phpunit/src/Runner/Baseline/Exception/CannotWriteBaselineException.php', @@ -5741,6 +5882,7 @@ return array( 'PHPUnit\\Runner\\ClassIsAbstractException' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception/ClassIsAbstractException.php', 'PHPUnit\\Runner\\CodeCoverage' => $vendorDir . '/phpunit/phpunit/src/Runner/CodeCoverage.php', 'PHPUnit\\Runner\\CodeCoverageFileExistsException' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception/CodeCoverageFileExistsException.php', + 'PHPUnit\\Runner\\CodeCoverageInitializationStatus' => $vendorDir . '/phpunit/phpunit/src/Runner/CodeCoverageInitializationStatus.php', 'PHPUnit\\Runner\\DeprecationCollector\\Collector' => $vendorDir . '/phpunit/phpunit/src/Runner/DeprecationCollector/Collector.php', 'PHPUnit\\Runner\\DeprecationCollector\\Facade' => $vendorDir . '/phpunit/phpunit/src/Runner/DeprecationCollector/Facade.php', 'PHPUnit\\Runner\\DeprecationCollector\\InIsolationCollector' => $vendorDir . '/phpunit/phpunit/src/Runner/DeprecationCollector/InIsolationCollector.php', @@ -5773,10 +5915,13 @@ return array( 'PHPUnit\\Runner\\HookMethod' => $vendorDir . '/phpunit/phpunit/src/Runner/HookMethod/HookMethod.php', 'PHPUnit\\Runner\\HookMethodCollection' => $vendorDir . '/phpunit/phpunit/src/Runner/HookMethod/HookMethodCollection.php', 'PHPUnit\\Runner\\InvalidOrderException' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception/InvalidOrderException.php', - 'PHPUnit\\Runner\\InvalidPhptFileException' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception/InvalidPhptFileException.php', 'PHPUnit\\Runner\\ParameterDoesNotExistException' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception/ParameterDoesNotExistException.php', - 'PHPUnit\\Runner\\PhptExternalFileCannotBeLoadedException' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception/PhptExternalFileCannotBeLoadedException.php', - 'PHPUnit\\Runner\\PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Runner/PHPT/PhptTestCase.php', + 'PHPUnit\\Runner\\Phpt\\InvalidPhptFileException' => $vendorDir . '/phpunit/phpunit/src/Runner/Phpt/Exception/InvalidPhptFileException.php', + 'PHPUnit\\Runner\\Phpt\\Parser' => $vendorDir . '/phpunit/phpunit/src/Runner/Phpt/Parser.php', + 'PHPUnit\\Runner\\Phpt\\PhptExternalFileCannotBeLoadedException' => $vendorDir . '/phpunit/phpunit/src/Runner/Phpt/Exception/PhptExternalFileCannotBeLoadedException.php', + 'PHPUnit\\Runner\\Phpt\\Renderer' => $vendorDir . '/phpunit/phpunit/src/Runner/Phpt/Renderer.php', + 'PHPUnit\\Runner\\Phpt\\TestCase' => $vendorDir . '/phpunit/phpunit/src/Runner/Phpt/TestCase.php', + 'PHPUnit\\Runner\\Phpt\\UnsupportedPhptSectionException' => $vendorDir . '/phpunit/phpunit/src/Runner/Phpt/Exception/UnsupportedPhptSectionException.php', 'PHPUnit\\Runner\\ResultCache\\DefaultResultCache' => $vendorDir . '/phpunit/phpunit/src/Runner/ResultCache/DefaultResultCache.php', 'PHPUnit\\Runner\\ResultCache\\NullResultCache' => $vendorDir . '/phpunit/phpunit/src/Runner/ResultCache/NullResultCache.php', 'PHPUnit\\Runner\\ResultCache\\ResultCache' => $vendorDir . '/phpunit/phpunit/src/Runner/ResultCache/ResultCache.php', @@ -5792,13 +5937,16 @@ return array( 'PHPUnit\\Runner\\ResultCache\\TestSkippedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/ResultCache/Subscriber/TestSkippedSubscriber.php', 'PHPUnit\\Runner\\ResultCache\\TestSuiteFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/ResultCache/Subscriber/TestSuiteFinishedSubscriber.php', 'PHPUnit\\Runner\\ResultCache\\TestSuiteStartedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/ResultCache/Subscriber/TestSuiteStartedSubscriber.php', + 'PHPUnit\\Runner\\ShutdownHandler' => $vendorDir . '/phpunit/phpunit/src/Runner/ShutdownHandler.php', 'PHPUnit\\Runner\\TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php', 'PHPUnit\\Runner\\TestSuiteSorter' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php', - 'PHPUnit\\Runner\\UnsupportedPhptSectionException' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception/UnsupportedPhptSectionException.php', 'PHPUnit\\Runner\\Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php', 'PHPUnit\\TestRunner\\IssueFilter' => $vendorDir . '/phpunit/phpunit/src/Runner/IssueFilter.php', 'PHPUnit\\TestRunner\\TestResult\\AfterTestClassMethodErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/AfterTestClassMethodErroredSubscriber.php', + 'PHPUnit\\TestRunner\\TestResult\\AfterTestClassMethodFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/AfterTestClassMethodFailedSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\BeforeTestClassMethodErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/BeforeTestClassMethodErroredSubscriber.php', + 'PHPUnit\\TestRunner\\TestResult\\BeforeTestClassMethodFailedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/BeforeTestClassMethodFailedSubscriber.php', + 'PHPUnit\\TestRunner\\TestResult\\ChildProcessErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/ChildProcessErroredSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\Collector' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Collector.php', 'PHPUnit\\TestRunner\\TestResult\\ExecutionStartedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/ExecutionStartedSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\Facade' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Facade.php', @@ -5813,6 +5961,7 @@ return array( 'PHPUnit\\TestRunner\\TestResult\\TestPreparedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestPreparedSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestResult' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/TestResult.php', 'PHPUnit\\TestRunner\\TestResult\\TestRunnerTriggeredDeprecationSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestRunnerTriggeredDeprecationSubscriber.php', + 'PHPUnit\\TestRunner\\TestResult\\TestRunnerTriggeredNoticeSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestRunnerTriggeredNoticeSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestRunnerTriggeredWarningSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestRunnerTriggeredWarningSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestSkippedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestSkippedSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestSuiteFinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestSuiteFinishedSubscriber.php', @@ -5826,6 +5975,7 @@ return array( 'PHPUnit\\TestRunner\\TestResult\\TestTriggeredPhpWarningSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredPhpWarningSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestTriggeredPhpunitDeprecationSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredPhpunitDeprecationSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestTriggeredPhpunitErrorSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredPhpunitErrorSubscriber.php', + 'PHPUnit\\TestRunner\\TestResult\\TestTriggeredPhpunitNoticeSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredPhpunitNoticeSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestTriggeredPhpunitWarningSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredPhpunitWarningSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestTriggeredWarningSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredWarningSubscriber.php', 'PHPUnit\\TextUI\\Application' => $vendorDir . '/phpunit/phpunit/src/TextUI/Application.php', @@ -5849,6 +5999,9 @@ return array( 'PHPUnit\\TextUI\\Command\\ShowVersionCommand' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command/Commands/ShowVersionCommand.php', 'PHPUnit\\TextUI\\Command\\VersionCheckCommand' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command/Commands/VersionCheckCommand.php', 'PHPUnit\\TextUI\\Command\\WarmCodeCoverageCacheCommand' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command/Commands/WarmCodeCoverageCacheCommand.php', + 'PHPUnit\\TextUI\\Configuration\\BootstrapLoader' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/BootstrapLoader.php', + 'PHPUnit\\TextUI\\Configuration\\BootstrapScriptDoesNotExistException' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Exception/BootstrapScriptDoesNotExistException.php', + 'PHPUnit\\TextUI\\Configuration\\BootstrapScriptException' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Exception/BootstrapScriptException.php', 'PHPUnit\\TextUI\\Configuration\\Builder' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Builder.php', 'PHPUnit\\TextUI\\Configuration\\CodeCoverageFilterRegistry' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/CodeCoverageFilterRegistry.php', 'PHPUnit\\TextUI\\Configuration\\CodeCoverageReportNotConfiguredException' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Exception/CodeCoverageReportNotConfiguredException.php', @@ -5912,6 +6065,7 @@ return array( 'PHPUnit\\TextUI\\InvalidSocketException' => $vendorDir . '/phpunit/phpunit/src/TextUI/Exception/InvalidSocketException.php', 'PHPUnit\\TextUI\\Output\\DefaultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/Output/Printer/DefaultPrinter.php', 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\BeforeTestClassMethodErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/BeforeTestClassMethodErroredSubscriber.php', + 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\ChildProcessErroredSubscriber' => $vendorDir . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/ChildProcessErroredSubscriber.php', 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\ProgressPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/ProgressPrinter.php', 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\Subscriber' => $vendorDir . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/Subscriber.php', 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\TestConsideredRiskySubscriber' => $vendorDir . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestConsideredRiskySubscriber.php', @@ -5930,6 +6084,7 @@ return array( 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\TestTriggeredPhpNoticeSubscriber' => $vendorDir . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpNoticeSubscriber.php', 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\TestTriggeredPhpWarningSubscriber' => $vendorDir . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpWarningSubscriber.php', 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\TestTriggeredPhpunitDeprecationSubscriber' => $vendorDir . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpunitDeprecationSubscriber.php', + 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\TestTriggeredPhpunitNoticeSubscriber' => $vendorDir . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpunitNoticeSubscriber.php', 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\TestTriggeredPhpunitWarningSubscriber' => $vendorDir . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpunitWarningSubscriber.php', 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\TestTriggeredWarningSubscriber' => $vendorDir . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredWarningSubscriber.php', 'PHPUnit\\TextUI\\Output\\Default\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/Output/Default/ResultPrinter.php', @@ -5951,6 +6106,7 @@ return array( 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Cobertura' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/Cobertura.php', 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Crap4j' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/Crap4j.php', 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Html' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/Html.php', + 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\OpenClover' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/OpenClover.php', 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Php' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/Php.php', 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Text' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/Text.php', 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Xml' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/Xml.php', @@ -5974,6 +6130,7 @@ return array( 'PHPUnit\\TextUI\\XmlConfiguration\\LogToReportMigration' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrations/LogToReportMigration.php', 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Junit' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/Junit.php', 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Logging' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/Logging.php', + 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Otr' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/Otr.php', 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TeamCity' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/TeamCity.php', 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TestDox\\Html' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/TestDox/Html.php', 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TestDox\\Text' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/TestDox/Text.php', @@ -6017,7 +6174,6 @@ return array( 'PHPUnit\\TextUI\\XmlConfiguration\\UpdateSchemaLocation' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrations/UpdateSchemaLocation.php', 'PHPUnit\\TextUI\\XmlConfiguration\\ValidationResult' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Validator/ValidationResult.php', 'PHPUnit\\TextUI\\XmlConfiguration\\Validator' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Validator/Validator.php', - 'PHPUnit\\Util\\Cloner' => $vendorDir . '/phpunit/phpunit/src/Util/Cloner.php', 'PHPUnit\\Util\\Color' => $vendorDir . '/phpunit/phpunit/src/Util/Color.php', 'PHPUnit\\Util\\Exception' => $vendorDir . '/phpunit/phpunit/src/Util/Exception/Exception.php', 'PHPUnit\\Util\\ExcludeList' => $vendorDir . '/phpunit/phpunit/src/Util/ExcludeList.php', @@ -6025,6 +6181,7 @@ return array( 'PHPUnit\\Util\\Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php', 'PHPUnit\\Util\\Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php', 'PHPUnit\\Util\\GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php', + 'PHPUnit\\Util\\GlobalStateResult' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalStateResult.php', 'PHPUnit\\Util\\Http\\Downloader' => $vendorDir . '/phpunit/phpunit/src/Util/Http/Downloader.php', 'PHPUnit\\Util\\Http\\PhpDownloader' => $vendorDir . '/phpunit/phpunit/src/Util/Http/PhpDownloader.php', 'PHPUnit\\Util\\InvalidDirectoryException' => $vendorDir . '/phpunit/phpunit/src/Util/Exception/InvalidDirectoryException.php', @@ -6037,6 +6194,7 @@ return array( 'PHPUnit\\Util\\PHP\\PhpProcessException' => $vendorDir . '/phpunit/phpunit/src/Util/Exception/PhpProcessException.php', 'PHPUnit\\Util\\PHP\\Result' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/Result.php', 'PHPUnit\\Util\\Reflection' => $vendorDir . '/phpunit/phpunit/src/Util/Reflection.php', + 'PHPUnit\\Util\\Sanitizer' => $vendorDir . '/phpunit/phpunit/src/Util/Sanitizer.php', 'PHPUnit\\Util\\Test' => $vendorDir . '/phpunit/phpunit/src/Util/Test.php', 'PHPUnit\\Util\\ThrowableToStringMapper' => $vendorDir . '/phpunit/phpunit/src/Util/ThrowableToStringMapper.php', 'PHPUnit\\Util\\VersionComparisonOperator' => $vendorDir . '/phpunit/phpunit/src/Util/VersionComparisonOperator.php', @@ -6957,7 +7115,6 @@ return array( 'Ramsey\\Uuid\\Validator\\ValidatorInterface' => $vendorDir . '/ramsey/uuid/src/Validator/ValidatorInterface.php', 'ReflectionConstant' => $vendorDir . '/symfony/polyfill-php84/Resources/stubs/ReflectionConstant.php', 'RoundingMode' => $vendorDir . '/symfony/polyfill-php84/Resources/stubs/RoundingMode.php', - 'SQLite3Exception' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/SQLite3Exception.php', 'SebastianBergmann\\CliParser\\AmbiguousOptionException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/AmbiguousOptionException.php', 'SebastianBergmann\\CliParser\\Exception' => $vendorDir . '/sebastian/cli-parser/src/exceptions/Exception.php', 'SebastianBergmann\\CliParser\\OptionDoesNotAllowArgumentException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/OptionDoesNotAllowArgumentException.php', @@ -6966,18 +7123,23 @@ return array( 'SebastianBergmann\\CliParser\\UnknownOptionException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/UnknownOptionException.php', 'SebastianBergmann\\CodeCoverage\\BranchAndPathCoverageNotSupportedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/BranchAndPathCoverageNotSupportedException.php', 'SebastianBergmann\\CodeCoverage\\CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php', + 'SebastianBergmann\\CodeCoverage\\Data\\ProcessedBranchCoverageData' => $vendorDir . '/phpunit/php-code-coverage/src/Data/ProcessedBranchCoverageData.php', + 'SebastianBergmann\\CodeCoverage\\Data\\ProcessedClassType' => $vendorDir . '/phpunit/php-code-coverage/src/Data/ProcessedClassType.php', 'SebastianBergmann\\CodeCoverage\\Data\\ProcessedCodeCoverageData' => $vendorDir . '/phpunit/php-code-coverage/src/Data/ProcessedCodeCoverageData.php', + 'SebastianBergmann\\CodeCoverage\\Data\\ProcessedFunctionCoverageData' => $vendorDir . '/phpunit/php-code-coverage/src/Data/ProcessedFunctionCoverageData.php', + 'SebastianBergmann\\CodeCoverage\\Data\\ProcessedFunctionType' => $vendorDir . '/phpunit/php-code-coverage/src/Data/ProcessedFunctionType.php', + 'SebastianBergmann\\CodeCoverage\\Data\\ProcessedMethodType' => $vendorDir . '/phpunit/php-code-coverage/src/Data/ProcessedMethodType.php', + 'SebastianBergmann\\CodeCoverage\\Data\\ProcessedPathCoverageData' => $vendorDir . '/phpunit/php-code-coverage/src/Data/ProcessedPathCoverageData.php', + 'SebastianBergmann\\CodeCoverage\\Data\\ProcessedTraitType' => $vendorDir . '/phpunit/php-code-coverage/src/Data/ProcessedTraitType.php', 'SebastianBergmann\\CodeCoverage\\Data\\RawCodeCoverageData' => $vendorDir . '/phpunit/php-code-coverage/src/Data/RawCodeCoverageData.php', - 'SebastianBergmann\\CodeCoverage\\DeadCodeDetectionNotSupportedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php', 'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Driver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PathExistsButIsNotDirectoryException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/PathExistsButIsNotDirectoryException.php', 'SebastianBergmann\\CodeCoverage\\Driver\\PcovDriver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PcovDriver.php', 'SebastianBergmann\\CodeCoverage\\Driver\\PcovNotAvailableException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/PcovNotAvailableException.php', 'SebastianBergmann\\CodeCoverage\\Driver\\Selector' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Selector.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\WriteOperationFailedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/WriteOperationFailedException.php', 'SebastianBergmann\\CodeCoverage\\Driver\\XdebugDriver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/XdebugDriver.php', 'SebastianBergmann\\CodeCoverage\\Driver\\XdebugNotAvailableException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/XdebugNotAvailableException.php', 'SebastianBergmann\\CodeCoverage\\Driver\\XdebugNotEnabledException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/XdebugNotEnabledException.php', + 'SebastianBergmann\\CodeCoverage\\Driver\\XdebugVersionNotSupportedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/XdebugVersionNotSupportedException.php', 'SebastianBergmann\\CodeCoverage\\Exception' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Exception.php', 'SebastianBergmann\\CodeCoverage\\FileCouldNotBeWrittenException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/FileCouldNotBeWrittenException.php', 'SebastianBergmann\\CodeCoverage\\Filter' => $vendorDir . '/phpunit/php-code-coverage/src/Filter.php', @@ -6991,6 +7153,7 @@ return array( 'SebastianBergmann\\CodeCoverage\\Node\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Node/File.php', 'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Iterator.php', 'SebastianBergmann\\CodeCoverage\\ParserException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/ParserException.php', + 'SebastianBergmann\\CodeCoverage\\PathExistsButIsNotDirectoryException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/PathExistsButIsNotDirectoryException.php', 'SebastianBergmann\\CodeCoverage\\ReflectionException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/ReflectionException.php', 'SebastianBergmann\\CodeCoverage\\ReportAlreadyFinalizedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/ReportAlreadyFinalizedException.php', 'SebastianBergmann\\CodeCoverage\\Report\\Clover' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Clover.php', @@ -7003,6 +7166,7 @@ return array( 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Facade.php', 'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php', 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php', + 'SebastianBergmann\\CodeCoverage\\Report\\OpenClover' => $vendorDir . '/phpunit/php-code-coverage/src/Report/OpenClover.php', 'SebastianBergmann\\CodeCoverage\\Report\\PHP' => $vendorDir . '/phpunit/php-code-coverage/src/Report/PHP.php', 'SebastianBergmann\\CodeCoverage\\Report\\Text' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Text.php', 'SebastianBergmann\\CodeCoverage\\Report\\Thresholds' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Thresholds.php', @@ -7020,14 +7184,41 @@ return array( 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php', 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php', 'SebastianBergmann\\CodeCoverage\\StaticAnalysisCacheNotConfiguredException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/StaticAnalysisCacheNotConfiguredException.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\AnalysisResult' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/AnalysisResult.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\AttributeParentConnectingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/AttributeParentConnectingVisitor.php', 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CacheWarmer' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CodeUnitFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CodeUnitFindingVisitor.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ExecutableLinesFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingSourceAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingSourceAnalyser.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Class_' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Class_.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CodeUnitFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/CodeUnitFindingVisitor.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ExecutableLinesFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/ExecutableLinesFindingVisitor.php', 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\FileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/FileAnalyser.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\IgnoredLinesFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/IgnoredLinesFindingVisitor.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingFileAnalyser.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Function_' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Function_.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\IgnoredLinesFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/IgnoredLinesFindingVisitor.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Interface_' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Interface_.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\LinesOfCode' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/LinesOfCode.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Method' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Method.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingSourceAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingSourceAnalyser.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\SourceAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/SourceAnalyser.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Trait_' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Trait_.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Visibility' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Visibility.php', 'SebastianBergmann\\CodeCoverage\\TestIdMissingException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/TestIdMissingException.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\Class_' => $vendorDir . '/phpunit/php-code-coverage/src/Target/Class_.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\ClassesThatExtendClass' => $vendorDir . '/phpunit/php-code-coverage/src/Target/ClassesThatExtendClass.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\ClassesThatImplementInterface' => $vendorDir . '/phpunit/php-code-coverage/src/Target/ClassesThatImplementInterface.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\Function_' => $vendorDir . '/phpunit/php-code-coverage/src/Target/Function_.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\InvalidCodeCoverageTargetException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/InvalidCodeCoverageTargetException.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\MapBuilder' => $vendorDir . '/phpunit/php-code-coverage/src/Target/MapBuilder.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\Mapper' => $vendorDir . '/phpunit/php-code-coverage/src/Target/Mapper.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\Method' => $vendorDir . '/phpunit/php-code-coverage/src/Target/Method.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\Namespace_' => $vendorDir . '/phpunit/php-code-coverage/src/Target/Namespace_.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\Target' => $vendorDir . '/phpunit/php-code-coverage/src/Target/Target.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\TargetCollection' => $vendorDir . '/phpunit/php-code-coverage/src/Target/TargetCollection.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\TargetCollectionIterator' => $vendorDir . '/phpunit/php-code-coverage/src/Target/TargetCollectionIterator.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\TargetCollectionValidator' => $vendorDir . '/phpunit/php-code-coverage/src/Target/TargetCollectionValidator.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\Trait_' => $vendorDir . '/phpunit/php-code-coverage/src/Target/Trait_.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\ValidationFailure' => $vendorDir . '/phpunit/php-code-coverage/src/Target/ValidationFailure.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\ValidationResult' => $vendorDir . '/phpunit/php-code-coverage/src/Target/ValidationResult.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\ValidationSuccess' => $vendorDir . '/phpunit/php-code-coverage/src/Target/ValidationSuccess.php', 'SebastianBergmann\\CodeCoverage\\Test\\TestSize\\Known' => $vendorDir . '/phpunit/php-code-coverage/src/TestSize/Known.php', 'SebastianBergmann\\CodeCoverage\\Test\\TestSize\\Large' => $vendorDir . '/phpunit/php-code-coverage/src/TestSize/Large.php', 'SebastianBergmann\\CodeCoverage\\Test\\TestSize\\Medium' => $vendorDir . '/phpunit/php-code-coverage/src/TestSize/Medium.php', @@ -7045,25 +7236,10 @@ return array( 'SebastianBergmann\\CodeCoverage\\Util\\Percentage' => $vendorDir . '/phpunit/php-code-coverage/src/Util/Percentage.php', 'SebastianBergmann\\CodeCoverage\\Util\\Xml' => $vendorDir . '/phpunit/php-code-coverage/src/Util/Xml.php', 'SebastianBergmann\\CodeCoverage\\Version' => $vendorDir . '/phpunit/php-code-coverage/src/Version.php', + 'SebastianBergmann\\CodeCoverage\\WriteOperationFailedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/WriteOperationFailedException.php', 'SebastianBergmann\\CodeCoverage\\XmlException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/XmlException.php', - 'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => $vendorDir . '/sebastian/code-unit-reverse-lookup/src/Wizard.php', - 'SebastianBergmann\\CodeUnit\\ClassMethodUnit' => $vendorDir . '/sebastian/code-unit/src/ClassMethodUnit.php', - 'SebastianBergmann\\CodeUnit\\ClassUnit' => $vendorDir . '/sebastian/code-unit/src/ClassUnit.php', - 'SebastianBergmann\\CodeUnit\\CodeUnit' => $vendorDir . '/sebastian/code-unit/src/CodeUnit.php', - 'SebastianBergmann\\CodeUnit\\CodeUnitCollection' => $vendorDir . '/sebastian/code-unit/src/CodeUnitCollection.php', - 'SebastianBergmann\\CodeUnit\\CodeUnitCollectionIterator' => $vendorDir . '/sebastian/code-unit/src/CodeUnitCollectionIterator.php', - 'SebastianBergmann\\CodeUnit\\Exception' => $vendorDir . '/sebastian/code-unit/src/exceptions/Exception.php', - 'SebastianBergmann\\CodeUnit\\FileUnit' => $vendorDir . '/sebastian/code-unit/src/FileUnit.php', - 'SebastianBergmann\\CodeUnit\\FunctionUnit' => $vendorDir . '/sebastian/code-unit/src/FunctionUnit.php', - 'SebastianBergmann\\CodeUnit\\InterfaceMethodUnit' => $vendorDir . '/sebastian/code-unit/src/InterfaceMethodUnit.php', - 'SebastianBergmann\\CodeUnit\\InterfaceUnit' => $vendorDir . '/sebastian/code-unit/src/InterfaceUnit.php', - 'SebastianBergmann\\CodeUnit\\InvalidCodeUnitException' => $vendorDir . '/sebastian/code-unit/src/exceptions/InvalidCodeUnitException.php', - 'SebastianBergmann\\CodeUnit\\Mapper' => $vendorDir . '/sebastian/code-unit/src/Mapper.php', - 'SebastianBergmann\\CodeUnit\\NoTraitException' => $vendorDir . '/sebastian/code-unit/src/exceptions/NoTraitException.php', - 'SebastianBergmann\\CodeUnit\\ReflectionException' => $vendorDir . '/sebastian/code-unit/src/exceptions/ReflectionException.php', - 'SebastianBergmann\\CodeUnit\\TraitMethodUnit' => $vendorDir . '/sebastian/code-unit/src/TraitMethodUnit.php', - 'SebastianBergmann\\CodeUnit\\TraitUnit' => $vendorDir . '/sebastian/code-unit/src/TraitUnit.php', 'SebastianBergmann\\Comparator\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php', + 'SebastianBergmann\\Comparator\\ClosureComparator' => $vendorDir . '/sebastian/comparator/src/ClosureComparator.php', 'SebastianBergmann\\Comparator\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php', 'SebastianBergmann\\Comparator\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php', 'SebastianBergmann\\Comparator\\DOMNodeComparator' => $vendorDir . '/sebastian/comparator/src/DOMNodeComparator.php', @@ -7127,7 +7303,6 @@ return array( 'SebastianBergmann\\LinesOfCode\\IllogicalValuesException' => $vendorDir . '/sebastian/lines-of-code/src/Exception/IllogicalValuesException.php', 'SebastianBergmann\\LinesOfCode\\LineCountingVisitor' => $vendorDir . '/sebastian/lines-of-code/src/LineCountingVisitor.php', 'SebastianBergmann\\LinesOfCode\\LinesOfCode' => $vendorDir . '/sebastian/lines-of-code/src/LinesOfCode.php', - 'SebastianBergmann\\LinesOfCode\\NegativeValueException' => $vendorDir . '/sebastian/lines-of-code/src/Exception/NegativeValueException.php', 'SebastianBergmann\\LinesOfCode\\RuntimeException' => $vendorDir . '/sebastian/lines-of-code/src/Exception/RuntimeException.php', 'SebastianBergmann\\ObjectEnumerator\\Enumerator' => $vendorDir . '/sebastian/object-enumerator/src/Enumerator.php', 'SebastianBergmann\\ObjectReflector\\ObjectReflector' => $vendorDir . '/sebastian/object-reflector/src/ObjectReflector.php', @@ -7164,6 +7339,7 @@ return array( 'SebastianBergmann\\Type\\UnknownType' => $vendorDir . '/sebastian/type/src/type/UnknownType.php', 'SebastianBergmann\\Type\\VoidType' => $vendorDir . '/sebastian/type/src/type/VoidType.php', 'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php', + 'SortDirection' => $vendorDir . '/symfony/polyfill-php86/Resources/stubs/SortDirection.php', 'Spatie\\Backtrace\\Arguments\\ArgumentReducers' => $vendorDir . '/spatie/backtrace/src/Arguments/ArgumentReducers.php', 'Spatie\\Backtrace\\Arguments\\ProvidedArgument' => $vendorDir . '/spatie/backtrace/src/Arguments/ProvidedArgument.php', 'Spatie\\Backtrace\\Arguments\\ReduceArgumentPayloadAction' => $vendorDir . '/spatie/backtrace/src/Arguments/ReduceArgumentPayloadAction.php', @@ -7527,14 +7703,34 @@ return array( 'Symfony\\Component\\Clock\\NativeClock' => $vendorDir . '/symfony/clock/NativeClock.php', 'Symfony\\Component\\Clock\\Test\\ClockSensitiveTrait' => $vendorDir . '/symfony/clock/Test/ClockSensitiveTrait.php', 'Symfony\\Component\\Console\\Application' => $vendorDir . '/symfony/console/Application.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ArgumentResolver' => $vendorDir . '/symfony/console/ArgumentResolver/ArgumentResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ArgumentResolverInterface' => $vendorDir . '/symfony/console/ArgumentResolver/ArgumentResolverInterface.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\Exception\\NearMissValueResolverException' => $vendorDir . '/symfony/console/ArgumentResolver/Exception/NearMissValueResolverException.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\Exception\\ResolverNotFoundException' => $vendorDir . '/symfony/console/ArgumentResolver/Exception/ResolverNotFoundException.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\TraceableArgumentResolver' => $vendorDir . '/symfony/console/ArgumentResolver/TraceableArgumentResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\BackedEnumValueResolver' => $vendorDir . '/symfony/console/ArgumentResolver/ValueResolver/BackedEnumValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\BuiltinTypeValueResolver' => $vendorDir . '/symfony/console/ArgumentResolver/ValueResolver/BuiltinTypeValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\DateTimeValueResolver' => $vendorDir . '/symfony/console/ArgumentResolver/ValueResolver/DateTimeValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\DefaultValueResolver' => $vendorDir . '/symfony/console/ArgumentResolver/ValueResolver/DefaultValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\InputFileValueResolver' => $vendorDir . '/symfony/console/ArgumentResolver/ValueResolver/InputFileValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\MapInputValueResolver' => $vendorDir . '/symfony/console/ArgumentResolver/ValueResolver/MapInputValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\ServiceValueResolver' => $vendorDir . '/symfony/console/ArgumentResolver/ValueResolver/ServiceValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\TraceableValueResolver' => $vendorDir . '/symfony/console/ArgumentResolver/ValueResolver/TraceableValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\UidValueResolver' => $vendorDir . '/symfony/console/ArgumentResolver/ValueResolver/UidValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\ValueResolverInterface' => $vendorDir . '/symfony/console/ArgumentResolver/ValueResolver/ValueResolverInterface.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\VariadicValueResolver' => $vendorDir . '/symfony/console/ArgumentResolver/ValueResolver/VariadicValueResolver.php', 'Symfony\\Component\\Console\\Attribute\\Argument' => $vendorDir . '/symfony/console/Attribute/Argument.php', 'Symfony\\Component\\Console\\Attribute\\AsCommand' => $vendorDir . '/symfony/console/Attribute/AsCommand.php', + 'Symfony\\Component\\Console\\Attribute\\AsTargetedValueResolver' => $vendorDir . '/symfony/console/Attribute/AsTargetedValueResolver.php', 'Symfony\\Component\\Console\\Attribute\\Ask' => $vendorDir . '/symfony/console/Attribute/Ask.php', + 'Symfony\\Component\\Console\\Attribute\\AskChoice' => $vendorDir . '/symfony/console/Attribute/AskChoice.php', 'Symfony\\Component\\Console\\Attribute\\Interact' => $vendorDir . '/symfony/console/Attribute/Interact.php', 'Symfony\\Component\\Console\\Attribute\\InteractiveAttributeInterface' => $vendorDir . '/symfony/console/Attribute/InteractiveAttributeInterface.php', + 'Symfony\\Component\\Console\\Attribute\\MapDateTime' => $vendorDir . '/symfony/console/Attribute/MapDateTime.php', 'Symfony\\Component\\Console\\Attribute\\MapInput' => $vendorDir . '/symfony/console/Attribute/MapInput.php', 'Symfony\\Component\\Console\\Attribute\\Option' => $vendorDir . '/symfony/console/Attribute/Option.php', 'Symfony\\Component\\Console\\Attribute\\Reflection\\ReflectionMember' => $vendorDir . '/symfony/console/Attribute/Reflection/ReflectionMember.php', + 'Symfony\\Component\\Console\\Attribute\\ValueResolver' => $vendorDir . '/symfony/console/Attribute/ValueResolver.php', 'Symfony\\Component\\Console\\CI\\GithubActionReporter' => $vendorDir . '/symfony/console/CI/GithubActionReporter.php', 'Symfony\\Component\\Console\\Color' => $vendorDir . '/symfony/console/Color.php', 'Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => $vendorDir . '/symfony/console/CommandLoader/CommandLoaderInterface.php', @@ -7557,11 +7753,15 @@ return array( 'Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/FishCompletionOutput.php', 'Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/ZshCompletionOutput.php', 'Symfony\\Component\\Console\\Completion\\Suggestion' => $vendorDir . '/symfony/console/Completion/Suggestion.php', + 'Symfony\\Component\\Console\\ConsoleBundle' => $vendorDir . '/symfony/console/ConsoleBundle.php', 'Symfony\\Component\\Console\\ConsoleEvents' => $vendorDir . '/symfony/console/ConsoleEvents.php', 'Symfony\\Component\\Console\\Cursor' => $vendorDir . '/symfony/console/Cursor.php', 'Symfony\\Component\\Console\\DataCollector\\CommandDataCollector' => $vendorDir . '/symfony/console/DataCollector/CommandDataCollector.php', 'Symfony\\Component\\Console\\Debug\\CliRequest' => $vendorDir . '/symfony/console/Debug/CliRequest.php', 'Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => $vendorDir . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', + 'Symfony\\Component\\Console\\DependencyInjection\\ConsoleArgumentValueResolverPass' => $vendorDir . '/symfony/console/DependencyInjection/ConsoleArgumentValueResolverPass.php', + 'Symfony\\Component\\Console\\DependencyInjection\\RegisterCommandArgumentLocatorsPass' => $vendorDir . '/symfony/console/DependencyInjection/RegisterCommandArgumentLocatorsPass.php', + 'Symfony\\Component\\Console\\DependencyInjection\\RemoveEmptyCommandArgumentLocatorsPass' => $vendorDir . '/symfony/console/DependencyInjection/RemoveEmptyCommandArgumentLocatorsPass.php', 'Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => $vendorDir . '/symfony/console/Descriptor/ApplicationDescription.php', 'Symfony\\Component\\Console\\Descriptor\\Descriptor' => $vendorDir . '/symfony/console/Descriptor/Descriptor.php', 'Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => $vendorDir . '/symfony/console/Descriptor/DescriptorInterface.php', @@ -7571,15 +7771,19 @@ return array( 'Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => $vendorDir . '/symfony/console/Descriptor/TextDescriptor.php', 'Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => $vendorDir . '/symfony/console/Descriptor/XmlDescriptor.php', 'Symfony\\Component\\Console\\EventListener\\ErrorListener' => $vendorDir . '/symfony/console/EventListener/ErrorListener.php', + 'Symfony\\Component\\Console\\EventListener\\ValidateQuestionInputListener' => $vendorDir . '/symfony/console/EventListener/ValidateQuestionInputListener.php', 'Symfony\\Component\\Console\\Event\\ConsoleAlarmEvent' => $vendorDir . '/symfony/console/Event/ConsoleAlarmEvent.php', 'Symfony\\Component\\Console\\Event\\ConsoleCommandEvent' => $vendorDir . '/symfony/console/Event/ConsoleCommandEvent.php', 'Symfony\\Component\\Console\\Event\\ConsoleErrorEvent' => $vendorDir . '/symfony/console/Event/ConsoleErrorEvent.php', 'Symfony\\Component\\Console\\Event\\ConsoleEvent' => $vendorDir . '/symfony/console/Event/ConsoleEvent.php', 'Symfony\\Component\\Console\\Event\\ConsoleSignalEvent' => $vendorDir . '/symfony/console/Event/ConsoleSignalEvent.php', 'Symfony\\Component\\Console\\Event\\ConsoleTerminateEvent' => $vendorDir . '/symfony/console/Event/ConsoleTerminateEvent.php', + 'Symfony\\Component\\Console\\Event\\QuestionAnsweredEvent' => $vendorDir . '/symfony/console/Event/QuestionAnsweredEvent.php', 'Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => $vendorDir . '/symfony/console/Exception/CommandNotFoundException.php', 'Symfony\\Component\\Console\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/console/Exception/ExceptionInterface.php', + 'Symfony\\Component\\Console\\Exception\\InputValidationFailedException' => $vendorDir . '/symfony/console/Exception/InputValidationFailedException.php', 'Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/console/Exception/InvalidArgumentException.php', + 'Symfony\\Component\\Console\\Exception\\InvalidFileException' => $vendorDir . '/symfony/console/Exception/InvalidFileException.php', 'Symfony\\Component\\Console\\Exception\\InvalidOptionException' => $vendorDir . '/symfony/console/Exception/InvalidOptionException.php', 'Symfony\\Component\\Console\\Exception\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php', 'Symfony\\Component\\Console\\Exception\\MissingInputException' => $vendorDir . '/symfony/console/Exception/MissingInputException.php', @@ -7597,6 +7801,7 @@ return array( 'Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => $vendorDir . '/symfony/console/Helper/DebugFormatterHelper.php', 'Symfony\\Component\\Console\\Helper\\DescriptorHelper' => $vendorDir . '/symfony/console/Helper/DescriptorHelper.php', 'Symfony\\Component\\Console\\Helper\\Dumper' => $vendorDir . '/symfony/console/Helper/Dumper.php', + 'Symfony\\Component\\Console\\Helper\\FileInputHelper' => $vendorDir . '/symfony/console/Helper/FileInputHelper.php', 'Symfony\\Component\\Console\\Helper\\FormatterHelper' => $vendorDir . '/symfony/console/Helper/FormatterHelper.php', 'Symfony\\Component\\Console\\Helper\\Helper' => $vendorDir . '/symfony/console/Helper/Helper.php', 'Symfony\\Component\\Console\\Helper\\HelperInterface' => $vendorDir . '/symfony/console/Helper/HelperInterface.php', @@ -7620,12 +7825,14 @@ return array( 'Symfony\\Component\\Console\\Helper\\TreeStyle' => $vendorDir . '/symfony/console/Helper/TreeStyle.php', 'Symfony\\Component\\Console\\Input\\ArgvInput' => $vendorDir . '/symfony/console/Input/ArgvInput.php', 'Symfony\\Component\\Console\\Input\\ArrayInput' => $vendorDir . '/symfony/console/Input/ArrayInput.php', + 'Symfony\\Component\\Console\\Input\\File\\InputFile' => $vendorDir . '/symfony/console/Input/File/InputFile.php', 'Symfony\\Component\\Console\\Input\\Input' => $vendorDir . '/symfony/console/Input/Input.php', 'Symfony\\Component\\Console\\Input\\InputArgument' => $vendorDir . '/symfony/console/Input/InputArgument.php', 'Symfony\\Component\\Console\\Input\\InputAwareInterface' => $vendorDir . '/symfony/console/Input/InputAwareInterface.php', 'Symfony\\Component\\Console\\Input\\InputDefinition' => $vendorDir . '/symfony/console/Input/InputDefinition.php', 'Symfony\\Component\\Console\\Input\\InputInterface' => $vendorDir . '/symfony/console/Input/InputInterface.php', 'Symfony\\Component\\Console\\Input\\InputOption' => $vendorDir . '/symfony/console/Input/InputOption.php', + 'Symfony\\Component\\Console\\Input\\RawInputInterface' => $vendorDir . '/symfony/console/Input/RawInputInterface.php', 'Symfony\\Component\\Console\\Input\\StreamableInputInterface' => $vendorDir . '/symfony/console/Input/StreamableInputInterface.php', 'Symfony\\Component\\Console\\Input\\StringInput' => $vendorDir . '/symfony/console/Input/StringInput.php', 'Symfony\\Component\\Console\\Interaction\\Interaction' => $vendorDir . '/symfony/console/Interaction/Interaction.php', @@ -7635,6 +7842,7 @@ return array( 'Symfony\\Component\\Console\\Messenger\\RunCommandMessageHandler' => $vendorDir . '/symfony/console/Messenger/RunCommandMessageHandler.php', 'Symfony\\Component\\Console\\Output\\AnsiColorMode' => $vendorDir . '/symfony/console/Output/AnsiColorMode.php', 'Symfony\\Component\\Console\\Output\\BufferedOutput' => $vendorDir . '/symfony/console/Output/BufferedOutput.php', + 'Symfony\\Component\\Console\\Output\\CombinedOutput' => $vendorDir . '/symfony/console/Output/CombinedOutput.php', 'Symfony\\Component\\Console\\Output\\ConsoleOutput' => $vendorDir . '/symfony/console/Output/ConsoleOutput.php', 'Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => $vendorDir . '/symfony/console/Output/ConsoleOutputInterface.php', 'Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => $vendorDir . '/symfony/console/Output/ConsoleSectionOutput.php', @@ -7642,9 +7850,11 @@ return array( 'Symfony\\Component\\Console\\Output\\Output' => $vendorDir . '/symfony/console/Output/Output.php', 'Symfony\\Component\\Console\\Output\\OutputInterface' => $vendorDir . '/symfony/console/Output/OutputInterface.php', 'Symfony\\Component\\Console\\Output\\StreamOutput' => $vendorDir . '/symfony/console/Output/StreamOutput.php', + 'Symfony\\Component\\Console\\Output\\TestOutput' => $vendorDir . '/symfony/console/Output/TestOutput.php', 'Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => $vendorDir . '/symfony/console/Output/TrimmedBufferOutput.php', 'Symfony\\Component\\Console\\Question\\ChoiceQuestion' => $vendorDir . '/symfony/console/Question/ChoiceQuestion.php', 'Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => $vendorDir . '/symfony/console/Question/ConfirmationQuestion.php', + 'Symfony\\Component\\Console\\Question\\FileQuestion' => $vendorDir . '/symfony/console/Question/FileQuestion.php', 'Symfony\\Component\\Console\\Question\\Question' => $vendorDir . '/symfony/console/Question/Question.php', 'Symfony\\Component\\Console\\SignalRegistry\\SignalMap' => $vendorDir . '/symfony/console/SignalRegistry/SignalMap.php', 'Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => $vendorDir . '/symfony/console/SignalRegistry/SignalRegistry.php', @@ -7653,10 +7863,17 @@ return array( 'Symfony\\Component\\Console\\Style\\StyleInterface' => $vendorDir . '/symfony/console/Style/StyleInterface.php', 'Symfony\\Component\\Console\\Style\\SymfonyStyle' => $vendorDir . '/symfony/console/Style/SymfonyStyle.php', 'Symfony\\Component\\Console\\Terminal' => $vendorDir . '/symfony/console/Terminal.php', + 'Symfony\\Component\\Console\\Terminal\\Image\\ITerm2Protocol' => $vendorDir . '/symfony/console/Terminal/Image/ITerm2Protocol.php', + 'Symfony\\Component\\Console\\Terminal\\Image\\ImageProtocolInterface' => $vendorDir . '/symfony/console/Terminal/Image/ImageProtocolInterface.php', + 'Symfony\\Component\\Console\\Terminal\\Image\\KittyGraphicsProtocol' => $vendorDir . '/symfony/console/Terminal/Image/KittyGraphicsProtocol.php', 'Symfony\\Component\\Console\\Tester\\ApplicationTester' => $vendorDir . '/symfony/console/Tester/ApplicationTester.php', 'Symfony\\Component\\Console\\Tester\\CommandCompletionTester' => $vendorDir . '/symfony/console/Tester/CommandCompletionTester.php', 'Symfony\\Component\\Console\\Tester\\CommandTester' => $vendorDir . '/symfony/console/Tester/CommandTester.php', + 'Symfony\\Component\\Console\\Tester\\ConsoleAssertionsTrait' => $vendorDir . '/symfony/console/Tester/ConsoleAssertionsTrait.php', + 'Symfony\\Component\\Console\\Tester\\Constraint\\CommandFailed' => $vendorDir . '/symfony/console/Tester/Constraint/CommandFailed.php', + 'Symfony\\Component\\Console\\Tester\\Constraint\\CommandIsInvalid' => $vendorDir . '/symfony/console/Tester/Constraint/CommandIsInvalid.php', 'Symfony\\Component\\Console\\Tester\\Constraint\\CommandIsSuccessful' => $vendorDir . '/symfony/console/Tester/Constraint/CommandIsSuccessful.php', + 'Symfony\\Component\\Console\\Tester\\ExecutionResult' => $vendorDir . '/symfony/console/Tester/ExecutionResult.php', 'Symfony\\Component\\Console\\Tester\\TesterTrait' => $vendorDir . '/symfony/console/Tester/TesterTrait.php', 'Symfony\\Component\\CssSelector\\CssSelectorConverter' => $vendorDir . '/symfony/css-selector/CssSelectorConverter.php', 'Symfony\\Component\\CssSelector\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/css-selector/Exception/ExceptionInterface.php', @@ -7726,6 +7943,7 @@ return array( 'Symfony\\Component\\ErrorHandler\\ErrorRenderer\\SerializerErrorRenderer' => $vendorDir . '/symfony/error-handler/ErrorRenderer/SerializerErrorRenderer.php', 'Symfony\\Component\\ErrorHandler\\Error\\ClassNotFoundError' => $vendorDir . '/symfony/error-handler/Error/ClassNotFoundError.php', 'Symfony\\Component\\ErrorHandler\\Error\\FatalError' => $vendorDir . '/symfony/error-handler/Error/FatalError.php', + 'Symfony\\Component\\ErrorHandler\\Error\\MaxExecutionTimeError' => $vendorDir . '/symfony/error-handler/Error/MaxExecutionTimeError.php', 'Symfony\\Component\\ErrorHandler\\Error\\OutOfMemoryError' => $vendorDir . '/symfony/error-handler/Error/OutOfMemoryError.php', 'Symfony\\Component\\ErrorHandler\\Error\\UndefinedFunctionError' => $vendorDir . '/symfony/error-handler/Error/UndefinedFunctionError.php', 'Symfony\\Component\\ErrorHandler\\Error\\UndefinedMethodError' => $vendorDir . '/symfony/error-handler/Error/UndefinedMethodError.php', @@ -7887,6 +8105,7 @@ return array( 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseIsSuccessful' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseIsSuccessful.php', 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseIsUnprocessable' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseIsUnprocessable.php', 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseStatusCodeSame' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseStatusCodeSame.php', + 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\SessionHasFlashMessage' => $vendorDir . '/symfony/http-foundation/Test/Constraint/SessionHasFlashMessage.php', 'Symfony\\Component\\HttpFoundation\\UriSigner' => $vendorDir . '/symfony/http-foundation/UriSigner.php', 'Symfony\\Component\\HttpFoundation\\UrlHelper' => $vendorDir . '/symfony/http-foundation/UrlHelper.php', 'Symfony\\Component\\HttpKernel\\Attribute\\AsController' => $vendorDir . '/symfony/http-kernel/Attribute/AsController.php', @@ -7896,14 +8115,17 @@ return array( 'Symfony\\Component\\HttpKernel\\Attribute\\MapDateTime' => $vendorDir . '/symfony/http-kernel/Attribute/MapDateTime.php', 'Symfony\\Component\\HttpKernel\\Attribute\\MapQueryParameter' => $vendorDir . '/symfony/http-kernel/Attribute/MapQueryParameter.php', 'Symfony\\Component\\HttpKernel\\Attribute\\MapQueryString' => $vendorDir . '/symfony/http-kernel/Attribute/MapQueryString.php', + 'Symfony\\Component\\HttpKernel\\Attribute\\MapRequestHeader' => $vendorDir . '/symfony/http-kernel/Attribute/MapRequestHeader.php', 'Symfony\\Component\\HttpKernel\\Attribute\\MapRequestPayload' => $vendorDir . '/symfony/http-kernel/Attribute/MapRequestPayload.php', 'Symfony\\Component\\HttpKernel\\Attribute\\MapUploadedFile' => $vendorDir . '/symfony/http-kernel/Attribute/MapUploadedFile.php', + 'Symfony\\Component\\HttpKernel\\Attribute\\RateLimit' => $vendorDir . '/symfony/http-kernel/Attribute/RateLimit.php', + 'Symfony\\Component\\HttpKernel\\Attribute\\Serialize' => $vendorDir . '/symfony/http-kernel/Attribute/Serialize.php', 'Symfony\\Component\\HttpKernel\\Attribute\\ValueResolver' => $vendorDir . '/symfony/http-kernel/Attribute/ValueResolver.php', 'Symfony\\Component\\HttpKernel\\Attribute\\WithHttpStatus' => $vendorDir . '/symfony/http-kernel/Attribute/WithHttpStatus.php', 'Symfony\\Component\\HttpKernel\\Attribute\\WithLogLevel' => $vendorDir . '/symfony/http-kernel/Attribute/WithLogLevel.php', 'Symfony\\Component\\HttpKernel\\Bundle\\AbstractBundle' => $vendorDir . '/symfony/http-kernel/Bundle/AbstractBundle.php', 'Symfony\\Component\\HttpKernel\\Bundle\\Bundle' => $vendorDir . '/symfony/http-kernel/Bundle/Bundle.php', - 'Symfony\\Component\\HttpKernel\\Bundle\\BundleExtension' => $vendorDir . '/symfony/http-kernel/Bundle/BundleExtension.php', + 'Symfony\\Component\\HttpKernel\\Bundle\\BundleAdapter' => $vendorDir . '/symfony/http-kernel/Bundle/BundleAdapter.php', 'Symfony\\Component\\HttpKernel\\Bundle\\BundleInterface' => $vendorDir . '/symfony/http-kernel/Bundle/BundleInterface.php', 'Symfony\\Component\\HttpKernel\\CacheClearer\\CacheClearerInterface' => $vendorDir . '/symfony/http-kernel/CacheClearer/CacheClearerInterface.php', 'Symfony\\Component\\HttpKernel\\CacheClearer\\ChainCacheClearer' => $vendorDir . '/symfony/http-kernel/CacheClearer/ChainCacheClearer.php', @@ -7924,6 +8146,7 @@ return array( 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\NotTaggedControllerValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/NotTaggedControllerValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\QueryParameterValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/QueryParameterValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestAttributeValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php', + 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestHeaderValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/RequestHeaderValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestPayloadValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/RequestPayloadValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\ServiceValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php', @@ -7955,9 +8178,9 @@ return array( 'Symfony\\Component\\HttpKernel\\Debug\\ErrorHandlerConfigurator' => $vendorDir . '/symfony/http-kernel/Debug/ErrorHandlerConfigurator.php', 'Symfony\\Component\\HttpKernel\\Debug\\TraceableEventDispatcher' => $vendorDir . '/symfony/http-kernel/Debug/TraceableEventDispatcher.php', 'Symfony\\Component\\HttpKernel\\Debug\\VirtualRequestStack' => $vendorDir . '/symfony/http-kernel/Debug/VirtualRequestStack.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\AddAnnotatedClassesToCachePass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/AddAnnotatedClassesToCachePass.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ConfigurableExtension' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ConfigurableExtension.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ControllerArgumentValueResolverPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ControllerArgumentValueResolverPass.php', + 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ControllerAttributesListenerPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ControllerAttributesListenerPass.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\Extension' => $vendorDir . '/symfony/http-kernel/DependencyInjection/Extension.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\FragmentRendererPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/FragmentRendererPass.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\LazyLoadingFragmentHandler' => $vendorDir . '/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php', @@ -7972,6 +8195,7 @@ return array( 'Symfony\\Component\\HttpKernel\\EventListener\\AbstractSessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/AbstractSessionListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\AddRequestFormatsListener' => $vendorDir . '/symfony/http-kernel/EventListener/AddRequestFormatsListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener' => $vendorDir . '/symfony/http-kernel/EventListener/CacheAttributeListener.php', + 'Symfony\\Component\\HttpKernel\\EventListener\\ControllerAttributesListener' => $vendorDir . '/symfony/http-kernel/EventListener/ControllerAttributesListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener' => $vendorDir . '/symfony/http-kernel/EventListener/DebugHandlersListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\DisallowRobotsIndexingListener' => $vendorDir . '/symfony/http-kernel/EventListener/DisallowRobotsIndexingListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\DumpListener' => $vendorDir . '/symfony/http-kernel/EventListener/DumpListener.php', @@ -7981,13 +8205,18 @@ return array( 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener' => $vendorDir . '/symfony/http-kernel/EventListener/LocaleAwareListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener' => $vendorDir . '/symfony/http-kernel/EventListener/LocaleListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\ProfilerListener' => $vendorDir . '/symfony/http-kernel/EventListener/ProfilerListener.php', + 'Symfony\\Component\\HttpKernel\\EventListener\\RateLimitAttributeListener' => $vendorDir . '/symfony/http-kernel/EventListener/RateLimitAttributeListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\ResponseListener' => $vendorDir . '/symfony/http-kernel/EventListener/ResponseListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\RouterListener' => $vendorDir . '/symfony/http-kernel/EventListener/RouterListener.php', + 'Symfony\\Component\\HttpKernel\\EventListener\\SerializeControllerResultAttributeListener' => $vendorDir . '/symfony/http-kernel/EventListener/SerializeControllerResultAttributeListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\SessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/SessionListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\SurrogateListener' => $vendorDir . '/symfony/http-kernel/EventListener/SurrogateListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener' => $vendorDir . '/symfony/http-kernel/EventListener/ValidateRequestListener.php', 'Symfony\\Component\\HttpKernel\\Event\\ControllerArgumentsEvent' => $vendorDir . '/symfony/http-kernel/Event/ControllerArgumentsEvent.php', + 'Symfony\\Component\\HttpKernel\\Event\\ControllerArgumentsMetadata' => $vendorDir . '/symfony/http-kernel/Event/ControllerArgumentsMetadata.php', + 'Symfony\\Component\\HttpKernel\\Event\\ControllerAttributeEvent' => $vendorDir . '/symfony/http-kernel/Event/ControllerAttributeEvent.php', 'Symfony\\Component\\HttpKernel\\Event\\ControllerEvent' => $vendorDir . '/symfony/http-kernel/Event/ControllerEvent.php', + 'Symfony\\Component\\HttpKernel\\Event\\ControllerMetadata' => $vendorDir . '/symfony/http-kernel/Event/ControllerMetadata.php', 'Symfony\\Component\\HttpKernel\\Event\\ExceptionEvent' => $vendorDir . '/symfony/http-kernel/Event/ExceptionEvent.php', 'Symfony\\Component\\HttpKernel\\Event\\FinishRequestEvent' => $vendorDir . '/symfony/http-kernel/Event/FinishRequestEvent.php', 'Symfony\\Component\\HttpKernel\\Event\\KernelEvent' => $vendorDir . '/symfony/http-kernel/Event/KernelEvent.php', @@ -8093,7 +8322,6 @@ return array( 'Symfony\\Component\\Mailer\\Test\\Constraint\\EmailCount' => $vendorDir . '/symfony/mailer/Test/Constraint/EmailCount.php', 'Symfony\\Component\\Mailer\\Test\\Constraint\\EmailIsQueued' => $vendorDir . '/symfony/mailer/Test/Constraint/EmailIsQueued.php', 'Symfony\\Component\\Mailer\\Test\\IncompleteDsnTestTrait' => $vendorDir . '/symfony/mailer/Test/IncompleteDsnTestTrait.php', - 'Symfony\\Component\\Mailer\\Test\\TransportFactoryTestCase' => $vendorDir . '/symfony/mailer/Test/TransportFactoryTestCase.php', 'Symfony\\Component\\Mailer\\Transport' => $vendorDir . '/symfony/mailer/Transport.php', 'Symfony\\Component\\Mailer\\Transport\\AbstractApiTransport' => $vendorDir . '/symfony/mailer/Transport/AbstractApiTransport.php', 'Symfony\\Component\\Mailer\\Transport\\AbstractHttpTransport' => $vendorDir . '/symfony/mailer/Transport/AbstractHttpTransport.php', @@ -8228,7 +8456,6 @@ return array( 'Symfony\\Component\\Process\\Process' => $vendorDir . '/symfony/process/Process.php', 'Symfony\\Component\\Process\\ProcessUtils' => $vendorDir . '/symfony/process/ProcessUtils.php', 'Symfony\\Component\\Routing\\Alias' => $vendorDir . '/symfony/routing/Alias.php', - 'Symfony\\Component\\Routing\\Annotation\\Route' => $vendorDir . '/symfony/routing/Annotation/Route.php', 'Symfony\\Component\\Routing\\Attribute\\DeprecatedAlias' => $vendorDir . '/symfony/routing/Attribute/DeprecatedAlias.php', 'Symfony\\Component\\Routing\\Attribute\\Route' => $vendorDir . '/symfony/routing/Attribute/Route.php', 'Symfony\\Component\\Routing\\CompiledRoute' => $vendorDir . '/symfony/routing/CompiledRoute.php', @@ -8270,12 +8497,12 @@ return array( 'Symfony\\Component\\Routing\\Loader\\Configurator\\Traits\\PrefixTrait' => $vendorDir . '/symfony/routing/Loader/Configurator/Traits/PrefixTrait.php', 'Symfony\\Component\\Routing\\Loader\\Configurator\\Traits\\RouteTrait' => $vendorDir . '/symfony/routing/Loader/Configurator/Traits/RouteTrait.php', 'Symfony\\Component\\Routing\\Loader\\ContainerLoader' => $vendorDir . '/symfony/routing/Loader/ContainerLoader.php', + 'Symfony\\Component\\Routing\\Loader\\ContentLoaderTrait' => $vendorDir . '/symfony/routing/Loader/ContentLoaderTrait.php', 'Symfony\\Component\\Routing\\Loader\\DirectoryLoader' => $vendorDir . '/symfony/routing/Loader/DirectoryLoader.php', 'Symfony\\Component\\Routing\\Loader\\GlobFileLoader' => $vendorDir . '/symfony/routing/Loader/GlobFileLoader.php', 'Symfony\\Component\\Routing\\Loader\\ObjectLoader' => $vendorDir . '/symfony/routing/Loader/ObjectLoader.php', 'Symfony\\Component\\Routing\\Loader\\PhpFileLoader' => $vendorDir . '/symfony/routing/Loader/PhpFileLoader.php', 'Symfony\\Component\\Routing\\Loader\\Psr4DirectoryLoader' => $vendorDir . '/symfony/routing/Loader/Psr4DirectoryLoader.php', - 'Symfony\\Component\\Routing\\Loader\\XmlFileLoader' => $vendorDir . '/symfony/routing/Loader/XmlFileLoader.php', 'Symfony\\Component\\Routing\\Loader\\YamlFileLoader' => $vendorDir . '/symfony/routing/Loader/YamlFileLoader.php', 'Symfony\\Component\\Routing\\Matcher\\CompiledUrlMatcher' => $vendorDir . '/symfony/routing/Matcher/CompiledUrlMatcher.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\CompiledUrlMatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/CompiledUrlMatcherDumper.php', @@ -8436,6 +8663,7 @@ return array( 'Symfony\\Component\\Uid\\TimeBasedUidInterface' => $vendorDir . '/symfony/uid/TimeBasedUidInterface.php', 'Symfony\\Component\\Uid\\Ulid' => $vendorDir . '/symfony/uid/Ulid.php', 'Symfony\\Component\\Uid\\Uuid' => $vendorDir . '/symfony/uid/Uuid.php', + 'Symfony\\Component\\Uid\\Uuid47Transformer' => $vendorDir . '/symfony/uid/Uuid47Transformer.php', 'Symfony\\Component\\Uid\\UuidV1' => $vendorDir . '/symfony/uid/UuidV1.php', 'Symfony\\Component\\Uid\\UuidV3' => $vendorDir . '/symfony/uid/UuidV3.php', 'Symfony\\Component\\Uid\\UuidV4' => $vendorDir . '/symfony/uid/UuidV4.php', @@ -8447,6 +8675,7 @@ return array( 'Symfony\\Component\\VarDumper\\Caster\\AmqpCaster' => $vendorDir . '/symfony/var-dumper/Caster/AmqpCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\ArgsStub' => $vendorDir . '/symfony/var-dumper/Caster/ArgsStub.php', 'Symfony\\Component\\VarDumper\\Caster\\Caster' => $vendorDir . '/symfony/var-dumper/Caster/Caster.php', + 'Symfony\\Component\\VarDumper\\Caster\\ClassDumpStub' => $vendorDir . '/symfony/var-dumper/Caster/ClassDumpStub.php', 'Symfony\\Component\\VarDumper\\Caster\\ClassStub' => $vendorDir . '/symfony/var-dumper/Caster/ClassStub.php', 'Symfony\\Component\\VarDumper\\Caster\\ConstStub' => $vendorDir . '/symfony/var-dumper/Caster/ConstStub.php', 'Symfony\\Component\\VarDumper\\Caster\\CurlCaster' => $vendorDir . '/symfony/var-dumper/Caster/CurlCaster.php', @@ -8579,9 +8808,9 @@ return array( 'Symfony\\Polyfill\\Mbstring\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php', 'Symfony\\Polyfill\\Php80\\Php80' => $vendorDir . '/symfony/polyfill-php80/Php80.php', 'Symfony\\Polyfill\\Php80\\PhpToken' => $vendorDir . '/symfony/polyfill-php80/PhpToken.php', - 'Symfony\\Polyfill\\Php83\\Php83' => $vendorDir . '/symfony/polyfill-php83/Php83.php', 'Symfony\\Polyfill\\Php84\\Php84' => $vendorDir . '/symfony/polyfill-php84/Php84.php', 'Symfony\\Polyfill\\Php85\\Php85' => $vendorDir . '/symfony/polyfill-php85/Php85.php', + 'Symfony\\Polyfill\\Php86\\Php86' => $vendorDir . '/symfony/polyfill-php86/Php86.php', 'Symfony\\Polyfill\\Uuid\\Uuid' => $vendorDir . '/symfony/polyfill-uuid/Uuid.php', 'Symfony\\Thanks\\Command\\FundCommand' => $vendorDir . '/symfony/thanks/src/Command/FundCommand.php', 'Symfony\\Thanks\\Command\\ThanksCommand' => $vendorDir . '/symfony/thanks/src/Command/ThanksCommand.php', diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index 3b7ab8a9a..0c31bb2ba 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -11,6 +11,7 @@ return array( 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php', 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php', '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php', + '606a39d89246991a373564698c2d8383' => $vendorDir . '/symfony/polyfill-php85/bootstrap.php', '8825ede83f2f289127722d4e842cf7e8' => $vendorDir . '/symfony/polyfill-intl-grapheme/bootstrap.php', 'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php', '667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php', @@ -18,7 +19,6 @@ return array( '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', '9c67151ae59aff4788964ce8eb2a0f43' => $vendorDir . '/clue/stream-filter/src/functions_include.php', '8cff32064859f4559445b89279f3199c' => $vendorDir . '/php-http/message/src/filters.php', - '606a39d89246991a373564698c2d8383' => $vendorDir . '/symfony/polyfill-php85/bootstrap.php', '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php', '2203a247e6fda86070a5e4e07aed533a' => $vendorDir . '/symfony/clock/Resources/now.php', 'deecf9d6b2672fb73429f9b28fdee35f' => $vendorDir . '/symfony/polyfill-deepclone/bootstrap.php', @@ -32,8 +32,8 @@ return array( '6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', '801c31d8ed748cfa537fa45402288c95' => $vendorDir . '/psy/psysh/src/functions.php', 'e39a8b23c42d4e1452234d762b03835a' => $vendorDir . '/ramsey/uuid/src/functions.php', - '662a729f963d39afe703c9d9b7ab4a8c' => $vendorDir . '/symfony/polyfill-php83/bootstrap.php', '9d2b9fc6db0f153a0a149fefb182415e' => $vendorDir . '/symfony/polyfill-php84/bootstrap.php', + '2c2415ec15363ede1bff13a287462ba1' => $vendorDir . '/symfony/polyfill-php86/bootstrap.php', '476ca15b8d69b04665cd879be9cb4c68' => $vendorDir . '/laravel/framework/src/Illuminate/Collections/functions.php', '265b4faa2b3a9766332744949e83bf97' => $vendorDir . '/laravel/framework/src/Illuminate/Collections/helpers.php', 'c7a3c339e7e14b60e06a2d7fcce9476b' => $vendorDir . '/laravel/framework/src/Illuminate/Events/functions.php', diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index f9c14ec8d..e2d1f2ab4 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -14,9 +14,9 @@ return array( 'Termwind\\' => array($vendorDir . '/nunomaduro/termwind/src'), 'Symfony\\Thanks\\' => array($vendorDir . '/symfony/thanks/src'), 'Symfony\\Polyfill\\Uuid\\' => array($vendorDir . '/symfony/polyfill-uuid'), + 'Symfony\\Polyfill\\Php86\\' => array($vendorDir . '/symfony/polyfill-php86'), 'Symfony\\Polyfill\\Php85\\' => array($vendorDir . '/symfony/polyfill-php85'), 'Symfony\\Polyfill\\Php84\\' => array($vendorDir . '/symfony/polyfill-php84'), - 'Symfony\\Polyfill\\Php83\\' => array($vendorDir . '/symfony/polyfill-php83'), 'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'), 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), 'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'), diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 645a50068..2a51a2fd7 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -12,6 +12,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php', 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', + '606a39d89246991a373564698c2d8383' => __DIR__ . '/..' . '/symfony/polyfill-php85/bootstrap.php', '8825ede83f2f289127722d4e842cf7e8' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/bootstrap.php', 'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php', '667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php', @@ -19,7 +20,6 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php', '9c67151ae59aff4788964ce8eb2a0f43' => __DIR__ . '/..' . '/clue/stream-filter/src/functions_include.php', '8cff32064859f4559445b89279f3199c' => __DIR__ . '/..' . '/php-http/message/src/filters.php', - '606a39d89246991a373564698c2d8383' => __DIR__ . '/..' . '/symfony/polyfill-php85/bootstrap.php', '37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php', '2203a247e6fda86070a5e4e07aed533a' => __DIR__ . '/..' . '/symfony/clock/Resources/now.php', 'deecf9d6b2672fb73429f9b28fdee35f' => __DIR__ . '/..' . '/symfony/polyfill-deepclone/bootstrap.php', @@ -33,8 +33,8 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa '6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', '801c31d8ed748cfa537fa45402288c95' => __DIR__ . '/..' . '/psy/psysh/src/functions.php', 'e39a8b23c42d4e1452234d762b03835a' => __DIR__ . '/..' . '/ramsey/uuid/src/functions.php', - '662a729f963d39afe703c9d9b7ab4a8c' => __DIR__ . '/..' . '/symfony/polyfill-php83/bootstrap.php', '9d2b9fc6db0f153a0a149fefb182415e' => __DIR__ . '/..' . '/symfony/polyfill-php84/bootstrap.php', + '2c2415ec15363ede1bff13a287462ba1' => __DIR__ . '/..' . '/symfony/polyfill-php86/bootstrap.php', '476ca15b8d69b04665cd879be9cb4c68' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Collections/functions.php', '265b4faa2b3a9766332744949e83bf97' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Collections/helpers.php', 'c7a3c339e7e14b60e06a2d7fcce9476b' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Events/functions.php', @@ -76,9 +76,9 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa array ( 'Symfony\\Thanks\\' => 15, 'Symfony\\Polyfill\\Uuid\\' => 22, + 'Symfony\\Polyfill\\Php86\\' => 23, 'Symfony\\Polyfill\\Php85\\' => 23, 'Symfony\\Polyfill\\Php84\\' => 23, - 'Symfony\\Polyfill\\Php83\\' => 23, 'Symfony\\Polyfill\\Php80\\' => 23, 'Symfony\\Polyfill\\Mbstring\\' => 26, 'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33, @@ -267,6 +267,10 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa array ( 0 => __DIR__ . '/..' . '/symfony/polyfill-uuid', ), + 'Symfony\\Polyfill\\Php86\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-php86', + ), 'Symfony\\Polyfill\\Php85\\' => array ( 0 => __DIR__ . '/..' . '/symfony/polyfill-php85', @@ -275,10 +279,6 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa array ( 0 => __DIR__ . '/..' . '/symfony/polyfill-php84', ), - 'Symfony\\Polyfill\\Php83\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-php83', - ), 'Symfony\\Polyfill\\Php80\\' => array ( 0 => __DIR__ . '/..' . '/symfony/polyfill-php80', @@ -2081,15 +2081,21 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Brick\\Math\\BigRational' => __DIR__ . '/..' . '/brick/math/src/BigRational.php', 'Brick\\Math\\Exception\\DivisionByZeroException' => __DIR__ . '/..' . '/brick/math/src/Exception/DivisionByZeroException.php', 'Brick\\Math\\Exception\\IntegerOverflowException' => __DIR__ . '/..' . '/brick/math/src/Exception/IntegerOverflowException.php', + 'Brick\\Math\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/brick/math/src/Exception/InvalidArgumentException.php', 'Brick\\Math\\Exception\\MathException' => __DIR__ . '/..' . '/brick/math/src/Exception/MathException.php', 'Brick\\Math\\Exception\\NegativeNumberException' => __DIR__ . '/..' . '/brick/math/src/Exception/NegativeNumberException.php', + 'Brick\\Math\\Exception\\NoInverseException' => __DIR__ . '/..' . '/brick/math/src/Exception/NoInverseException.php', 'Brick\\Math\\Exception\\NumberFormatException' => __DIR__ . '/..' . '/brick/math/src/Exception/NumberFormatException.php', + 'Brick\\Math\\Exception\\RandomSourceException' => __DIR__ . '/..' . '/brick/math/src/Exception/RandomSourceException.php', 'Brick\\Math\\Exception\\RoundingNecessaryException' => __DIR__ . '/..' . '/brick/math/src/Exception/RoundingNecessaryException.php', + 'Brick\\Math\\Exception\\UnsupportedPlatformException' => __DIR__ . '/..' . '/brick/math/src/Exception/UnsupportedPlatformException.php', 'Brick\\Math\\Internal\\Calculator' => __DIR__ . '/..' . '/brick/math/src/Internal/Calculator.php', 'Brick\\Math\\Internal\\CalculatorRegistry' => __DIR__ . '/..' . '/brick/math/src/Internal/CalculatorRegistry.php', 'Brick\\Math\\Internal\\Calculator\\BcMathCalculator' => __DIR__ . '/..' . '/brick/math/src/Internal/Calculator/BcMathCalculator.php', 'Brick\\Math\\Internal\\Calculator\\GmpCalculator' => __DIR__ . '/..' . '/brick/math/src/Internal/Calculator/GmpCalculator.php', 'Brick\\Math\\Internal\\Calculator\\NativeCalculator' => __DIR__ . '/..' . '/brick/math/src/Internal/Calculator/NativeCalculator.php', + 'Brick\\Math\\Internal\\DecimalHelper' => __DIR__ . '/..' . '/brick/math/src/Internal/DecimalHelper.php', + 'Brick\\Math\\Internal\\Safe' => __DIR__ . '/..' . '/brick/math/src/Internal/Safe.php', 'Brick\\Math\\RoundingMode' => __DIR__ . '/..' . '/brick/math/src/RoundingMode.php', 'Carbon\\AbstractTranslator' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/AbstractTranslator.php', 'Carbon\\Callback' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Callback.php', @@ -2226,15 +2232,6 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Database\\Seeders\\DatabaseSeeder' => __DIR__ . '/../..' . '/database/seeders/DatabaseSeeder.php', 'Database\\Seeders\\SettingsSeeder' => __DIR__ . '/../..' . '/database/seeders/SettingsSeeder.php', 'Database\\Seeders\\UsersSeeder' => __DIR__ . '/../..' . '/database/seeders/UsersSeeder.php', - 'DateError' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateError.php', - 'DateException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateException.php', - 'DateInvalidOperationException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateInvalidOperationException.php', - 'DateInvalidTimeZoneException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php', - 'DateMalformedIntervalStringException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateMalformedIntervalStringException.php', - 'DateMalformedPeriodStringException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateMalformedPeriodStringException.php', - 'DateMalformedStringException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateMalformedStringException.php', - 'DateObjectError' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateObjectError.php', - 'DateRangeError' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateRangeError.php', 'DeepClone\\ClassNotFoundException' => __DIR__ . '/..' . '/symfony/polyfill-deepclone/Resources/stubs/ClassNotFoundException.php', 'DeepClone\\NotInstantiableException' => __DIR__ . '/..' . '/symfony/polyfill-deepclone/Resources/stubs/NotInstantiableException.php', 'DeepCopy\\DeepCopy' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/DeepCopy.php', @@ -3496,11 +3493,13 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Bus\\BusServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php', 'Illuminate\\Bus\\ChainedBatch' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/ChainedBatch.php', 'Illuminate\\Bus\\DatabaseBatchRepository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/DatabaseBatchRepository.php', + 'Illuminate\\Bus\\DebounceLock' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/DebounceLock.php', 'Illuminate\\Bus\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/Dispatcher.php', 'Illuminate\\Bus\\DynamoBatchRepository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/DynamoBatchRepository.php', 'Illuminate\\Bus\\Events\\BatchCanceled' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/Events/BatchCanceled.php', 'Illuminate\\Bus\\Events\\BatchDispatched' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/Events/BatchDispatched.php', 'Illuminate\\Bus\\Events\\BatchFinished' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/Events/BatchFinished.php', + 'Illuminate\\Bus\\Events\\BatchStarted' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/Events/BatchStarted.php', 'Illuminate\\Bus\\PendingBatch' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/PendingBatch.php', 'Illuminate\\Bus\\PrunableBatchRepository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/PrunableBatchRepository.php', 'Illuminate\\Bus\\Queueable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/Queueable.php', @@ -3527,6 +3526,9 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Cache\\Events\\CacheFlushed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/CacheFlushed.php', 'Illuminate\\Cache\\Events\\CacheFlushing' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/CacheFlushing.php', 'Illuminate\\Cache\\Events\\CacheHit' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php', + 'Illuminate\\Cache\\Events\\CacheLocksFlushFailed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushFailed.php', + 'Illuminate\\Cache\\Events\\CacheLocksFlushed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushed.php', + 'Illuminate\\Cache\\Events\\CacheLocksFlushing' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushing.php', 'Illuminate\\Cache\\Events\\CacheMissed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php', 'Illuminate\\Cache\\Events\\ForgettingKey' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/ForgettingKey.php', 'Illuminate\\Cache\\Events\\KeyForgetFailed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/KeyForgetFailed.php', @@ -3564,6 +3566,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Cache\\Repository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Repository.php', 'Illuminate\\Cache\\RetrievesMultipleKeys' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php', 'Illuminate\\Cache\\SessionStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/SessionStore.php', + 'Illuminate\\Cache\\StorageStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/StorageStore.php', 'Illuminate\\Cache\\TagSet' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/TagSet.php', 'Illuminate\\Cache\\TaggableStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/TaggableStore.php', 'Illuminate\\Cache\\TaggedCache' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/TaggedCache.php', @@ -3575,9 +3578,16 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Concurrency\\SyncDriver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Concurrency/SyncDriver.php', 'Illuminate\\Config\\Repository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Config/Repository.php', 'Illuminate\\Console\\Application' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Application.php', + 'Illuminate\\Console\\Attributes\\Aliases' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Attributes/Aliases.php', + 'Illuminate\\Console\\Attributes\\Description' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Attributes/Description.php', + 'Illuminate\\Console\\Attributes\\Help' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Attributes/Help.php', + 'Illuminate\\Console\\Attributes\\Hidden' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Attributes/Hidden.php', + 'Illuminate\\Console\\Attributes\\Signature' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Attributes/Signature.php', + 'Illuminate\\Console\\Attributes\\Usage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Attributes/Usage.php', 'Illuminate\\Console\\BufferedConsoleOutput' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/BufferedConsoleOutput.php', 'Illuminate\\Console\\CacheCommandMutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/CacheCommandMutex.php', 'Illuminate\\Console\\Command' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Command.php', + 'Illuminate\\Console\\CommandInput' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/CommandInput.php', 'Illuminate\\Console\\CommandMutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/CommandMutex.php', 'Illuminate\\Console\\Concerns\\CallsCommands' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Concerns/CallsCommands.php', 'Illuminate\\Console\\Concerns\\ConfiguresPrompts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Concerns/ConfiguresPrompts.php', @@ -3593,6 +3603,8 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Console\\Events\\ArtisanStarting' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php', 'Illuminate\\Console\\Events\\CommandFinished' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php', 'Illuminate\\Console\\Events\\CommandStarting' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php', + 'Illuminate\\Console\\Events\\SchedulePaused' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/SchedulePaused.php', + 'Illuminate\\Console\\Events\\ScheduleResumed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/ScheduleResumed.php', 'Illuminate\\Console\\Events\\ScheduledBackgroundTaskFinished' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/ScheduledBackgroundTaskFinished.php', 'Illuminate\\Console\\Events\\ScheduledTaskFailed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/ScheduledTaskFailed.php', 'Illuminate\\Console\\Events\\ScheduledTaskFinished' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/ScheduledTaskFinished.php', @@ -3622,6 +3634,8 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Console\\Scheduling\\ScheduleFinishCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php', 'Illuminate\\Console\\Scheduling\\ScheduleInterruptCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleInterruptCommand.php', 'Illuminate\\Console\\Scheduling\\ScheduleListCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleListCommand.php', + 'Illuminate\\Console\\Scheduling\\SchedulePauseCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/SchedulePauseCommand.php', + 'Illuminate\\Console\\Scheduling\\ScheduleResumeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleResumeCommand.php', 'Illuminate\\Console\\Scheduling\\ScheduleRunCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php', 'Illuminate\\Console\\Scheduling\\ScheduleTestCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleTestCommand.php', 'Illuminate\\Console\\Scheduling\\ScheduleWorkCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleWorkCommand.php', @@ -3692,6 +3706,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Contracts\\Broadcasting\\ShouldRescue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldRescue.php', 'Illuminate\\Contracts\\Bus\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php', 'Illuminate\\Contracts\\Bus\\QueueingDispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Bus/QueueingDispatcher.php', + 'Illuminate\\Contracts\\Cache\\CanFlushLocks' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/CanFlushLocks.php', 'Illuminate\\Contracts\\Cache\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/Factory.php', 'Illuminate\\Contracts\\Cache\\Lock' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/Lock.php', 'Illuminate\\Contracts\\Cache\\LockProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/LockProvider.php', @@ -3734,6 +3749,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Contracts\\Encryption\\Encrypter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Encryption/Encrypter.php', 'Illuminate\\Contracts\\Encryption\\StringEncrypter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Encryption/StringEncrypter.php', 'Illuminate\\Contracts\\Events\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Events/Dispatcher.php', + 'Illuminate\\Contracts\\Events\\ShouldBeDiscovered' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Events/ShouldBeDiscovered.php', 'Illuminate\\Contracts\\Events\\ShouldDispatchAfterCommit' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Events/ShouldDispatchAfterCommit.php', 'Illuminate\\Contracts\\Events\\ShouldHandleEventsAfterCommit' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Events/ShouldHandleEventsAfterCommit.php', 'Illuminate\\Contracts\\Filesystem\\Cloud' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Cloud.php', @@ -3768,8 +3784,10 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Contracts\\Queue\\EntityNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/EntityNotFoundException.php', 'Illuminate\\Contracts\\Queue\\EntityResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/EntityResolver.php', 'Illuminate\\Contracts\\Queue\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php', + 'Illuminate\\Contracts\\Queue\\Interruptible' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Interruptible.php', 'Illuminate\\Contracts\\Queue\\Job' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Job.php', 'Illuminate\\Contracts\\Queue\\Monitor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Monitor.php', + 'Illuminate\\Contracts\\Queue\\PreparesForDispatch' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/PreparesForDispatch.php', 'Illuminate\\Contracts\\Queue\\Queue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Queue.php', 'Illuminate\\Contracts\\Queue\\QueueableCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableCollection.php', 'Illuminate\\Contracts\\Queue\\QueueableEntity' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php', @@ -3838,6 +3856,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Database\\ConnectionInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/ConnectionInterface.php', 'Illuminate\\Database\\ConnectionResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/ConnectionResolver.php', 'Illuminate\\Database\\ConnectionResolverInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php', + 'Illuminate\\Database\\Connectors\\Concerns\\ConfiguresPooledConnections' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/Concerns/ConfiguresPooledConnections.php', 'Illuminate\\Database\\Connectors\\ConnectionFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php', 'Illuminate\\Database\\Connectors\\Connector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/Connector.php', 'Illuminate\\Database\\Connectors\\ConnectorInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php', @@ -3846,6 +3865,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Database\\Connectors\\PostgresConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php', 'Illuminate\\Database\\Connectors\\SQLiteConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php', 'Illuminate\\Database\\Connectors\\SqlServerConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php', + 'Illuminate\\Database\\Console\\Concerns\\InteractsWithPooledConnections' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Concerns/InteractsWithPooledConnections.php', 'Illuminate\\Database\\Console\\DatabaseInspectionCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/DatabaseInspectionCommand.php', 'Illuminate\\Database\\Console\\DbCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/DbCommand.php', 'Illuminate\\Database\\Console\\DumpCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/DumpCommand.php', @@ -3876,17 +3896,29 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Database\\DeadlockException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/DeadlockException.php', 'Illuminate\\Database\\DetectsConcurrencyErrors' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/DetectsConcurrencyErrors.php', 'Illuminate\\Database\\DetectsLostConnections' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Appends' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Appends.php', 'Illuminate\\Database\\Eloquent\\Attributes\\Boot' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Boot.php', 'Illuminate\\Database\\Eloquent\\Attributes\\CollectedBy' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/CollectedBy.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Connection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Connection.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\DateFormat' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/DateFormat.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Fillable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Fillable.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Guarded' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Guarded.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Hidden' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Hidden.php', 'Illuminate\\Database\\Eloquent\\Attributes\\Initialize' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Initialize.php', 'Illuminate\\Database\\Eloquent\\Attributes\\ObservedBy' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/ObservedBy.php', 'Illuminate\\Database\\Eloquent\\Attributes\\Scope' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Scope.php', 'Illuminate\\Database\\Eloquent\\Attributes\\ScopedBy' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/ScopedBy.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Table' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Table.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Touches' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Touches.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Unguarded' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Unguarded.php', 'Illuminate\\Database\\Eloquent\\Attributes\\UseEloquentBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/UseEloquentBuilder.php', 'Illuminate\\Database\\Eloquent\\Attributes\\UseFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/UseFactory.php', 'Illuminate\\Database\\Eloquent\\Attributes\\UsePolicy' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/UsePolicy.php', 'Illuminate\\Database\\Eloquent\\Attributes\\UseResource' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/UseResource.php', 'Illuminate\\Database\\Eloquent\\Attributes\\UseResourceCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/UseResourceCollection.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\Visible' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Visible.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\WithoutIncrementing' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/WithoutIncrementing.php', + 'Illuminate\\Database\\Eloquent\\Attributes\\WithoutTimestamps' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/WithoutTimestamps.php', 'Illuminate\\Database\\Eloquent\\BroadcastableModelEventOccurred' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/BroadcastableModelEventOccurred.php', 'Illuminate\\Database\\Eloquent\\BroadcastsEvents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/BroadcastsEvents.php', 'Illuminate\\Database\\Eloquent\\BroadcastsEventsAfterCommit' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/BroadcastsEventsAfterCommit.php', @@ -3921,6 +3953,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Database\\Eloquent\\Concerns\\PreventsCircularRecursion' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/PreventsCircularRecursion.php', 'Illuminate\\Database\\Eloquent\\Concerns\\QueriesRelationships' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php', 'Illuminate\\Database\\Eloquent\\Concerns\\TransformsToResource' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/TransformsToResource.php', + 'Illuminate\\Database\\Eloquent\\Factories\\Attributes\\UseModel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Factories/Attributes/UseModel.php', 'Illuminate\\Database\\Eloquent\\Factories\\BelongsToManyRelationship' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Factories/BelongsToManyRelationship.php', 'Illuminate\\Database\\Eloquent\\Factories\\BelongsToRelationship' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Factories/BelongsToRelationship.php', 'Illuminate\\Database\\Eloquent\\Factories\\CrossJoinSequence' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Factories/CrossJoinSequence.php', @@ -3937,6 +3970,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Database\\Eloquent\\MassPrunable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/MassPrunable.php', 'Illuminate\\Database\\Eloquent\\MissingAttributeException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/MissingAttributeException.php', 'Illuminate\\Database\\Eloquent\\Model' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Model.php', + 'Illuminate\\Database\\Eloquent\\ModelInfo' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/ModelInfo.php', 'Illuminate\\Database\\Eloquent\\ModelInspector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/ModelInspector.php', 'Illuminate\\Database\\Eloquent\\ModelNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php', 'Illuminate\\Database\\Eloquent\\PendingHasThroughRelationship' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/PendingHasThroughRelationship.php', @@ -4077,6 +4111,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Filesystem\\ServeFile' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Filesystem/ServeFile.php', 'Illuminate\\Foundation\\AliasLoader' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/AliasLoader.php', 'Illuminate\\Foundation\\Application' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Application.php', + 'Illuminate\\Foundation\\ArrayMaintenanceMode' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/ArrayMaintenanceMode.php', 'Illuminate\\Foundation\\Auth\\Access\\Authorizable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php', 'Illuminate\\Foundation\\Auth\\Access\\AuthorizesRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php', 'Illuminate\\Foundation\\Auth\\AuthenticatesUsers' => __DIR__ . '/..' . '/laravel/ui/auth-backend/AuthenticatesUsers.php', @@ -4108,6 +4143,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Foundation\\Cloud\\CloudJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Cloud/CloudJob.php', 'Illuminate\\Foundation\\Cloud\\Events' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Cloud/Events.php', 'Illuminate\\Foundation\\Cloud\\FailedJobProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Cloud/FailedJobProvider.php', + 'Illuminate\\Foundation\\Cloud\\JsonFormatter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Cloud/JsonFormatter.php', 'Illuminate\\Foundation\\Cloud\\ManagedQueueNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Cloud/ManagedQueueNotFoundException.php', 'Illuminate\\Foundation\\Cloud\\Queue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Cloud/Queue.php', 'Illuminate\\Foundation\\Cloud\\QueueConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Cloud/QueueConnector.php', @@ -4133,6 +4169,8 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Foundation\\Console\\ConfigPublishCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigPublishCommand.php', 'Illuminate\\Foundation\\Console\\ConfigShowCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigShowCommand.php', 'Illuminate\\Foundation\\Console\\ConsoleMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php', + 'Illuminate\\Foundation\\Console\\DevCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/DevCommand.php', + 'Illuminate\\Foundation\\Console\\DevListCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/DevListCommand.php', 'Illuminate\\Foundation\\Console\\DocsCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/DocsCommand.php', 'Illuminate\\Foundation\\Console\\DownCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php', 'Illuminate\\Foundation\\Console\\EnumMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/EnumMakeCommand.php', @@ -4182,6 +4220,9 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Foundation\\Console\\ViewCacheCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ViewCacheCommand.php', 'Illuminate\\Foundation\\Console\\ViewClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php', 'Illuminate\\Foundation\\Console\\ViewMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ViewMakeCommand.php', + 'Illuminate\\Foundation\\DevCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/DevCommand.php', + 'Illuminate\\Foundation\\DevCommandColor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/DevCommandColor.php', + 'Illuminate\\Foundation\\DevCommands' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/DevCommands.php', 'Illuminate\\Foundation\\EnvironmentDetector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php', 'Illuminate\\Foundation\\Events\\DiagnosingHealth' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Events/DiagnosingHealth.php', 'Illuminate\\Foundation\\Events\\DiscoverEvents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Events/DiscoverEvents.php', @@ -4203,6 +4244,11 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Foundation\\Exceptions\\Whoops\\WhoopsExceptionRenderer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Exceptions/Whoops/WhoopsExceptionRenderer.php', 'Illuminate\\Foundation\\Exceptions\\Whoops\\WhoopsHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Exceptions/Whoops/WhoopsHandler.php', 'Illuminate\\Foundation\\FileBasedMaintenanceMode' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/FileBasedMaintenanceMode.php', + 'Illuminate\\Foundation\\Http\\Attributes\\ErrorBag' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Attributes/ErrorBag.php', + 'Illuminate\\Foundation\\Http\\Attributes\\FailOnUnknownFields' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Attributes/FailOnUnknownFields.php', + 'Illuminate\\Foundation\\Http\\Attributes\\RedirectTo' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Attributes/RedirectTo.php', + 'Illuminate\\Foundation\\Http\\Attributes\\RedirectToRoute' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Attributes/RedirectToRoute.php', + 'Illuminate\\Foundation\\Http\\Attributes\\StopOnFirstFailure' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Attributes/StopOnFirstFailure.php', 'Illuminate\\Foundation\\Http\\Events\\RequestHandled' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php', 'Illuminate\\Foundation\\Http\\FormRequest' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php', 'Illuminate\\Foundation\\Http\\HtmlDumper' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/HtmlDumper.php', @@ -4213,6 +4259,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php', 'Illuminate\\Foundation\\Http\\Middleware\\HandlePrecognitiveRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/HandlePrecognitiveRequests.php', 'Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php', + 'Illuminate\\Foundation\\Http\\Middleware\\PreventRequestForgery' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestForgery.php', 'Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php', 'Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php', 'Illuminate\\Foundation\\Http\\Middleware\\TrimStrings' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php', @@ -4240,6 +4287,11 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Foundation\\Support\\Providers\\AuthServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php', 'Illuminate\\Foundation\\Support\\Providers\\EventServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php', 'Illuminate\\Foundation\\Support\\Providers\\RouteServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php', + 'Illuminate\\Foundation\\Testing\\Attributes\\Seed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/Seed.php', + 'Illuminate\\Foundation\\Testing\\Attributes\\Seeder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/Seeder.php', + 'Illuminate\\Foundation\\Testing\\Attributes\\SetUp' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/SetUp.php', + 'Illuminate\\Foundation\\Testing\\Attributes\\TearDown' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/TearDown.php', + 'Illuminate\\Foundation\\Testing\\Attributes\\UnitTest' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/UnitTest.php', 'Illuminate\\Foundation\\Testing\\CachedState' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/CachedState.php', 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithAuthentication' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php', 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithConsole' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php', @@ -4272,6 +4324,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Foundation\\Validation\\ValidatesRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php', 'Illuminate\\Foundation\\Vite' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Vite.php', 'Illuminate\\Foundation\\ViteException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/ViteException.php', + 'Illuminate\\Foundation\\ViteFonts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/ViteFonts.php', 'Illuminate\\Foundation\\ViteManifestNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/ViteManifestNotFoundException.php', 'Illuminate\\Hashing\\AbstractHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php', 'Illuminate\\Hashing\\Argon2IdHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/Argon2IdHasher.php', @@ -4303,6 +4356,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Http\\Concerns\\InteractsWithInput' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php', 'Illuminate\\Http\\Exceptions\\HttpResponseException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php', 'Illuminate\\Http\\Exceptions\\MalformedUrlException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Exceptions/MalformedUrlException.php', + 'Illuminate\\Http\\Exceptions\\OriginMismatchException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Exceptions/OriginMismatchException.php', 'Illuminate\\Http\\Exceptions\\PostTooLargeException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php', 'Illuminate\\Http\\Exceptions\\ThrottleRequestsException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Exceptions/ThrottleRequestsException.php', 'Illuminate\\Http\\File' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/File.php', @@ -4312,6 +4366,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Http\\Middleware\\CheckResponseForModifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php', 'Illuminate\\Http\\Middleware\\FrameGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php', 'Illuminate\\Http\\Middleware\\HandleCors' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php', + 'Illuminate\\Http\\Middleware\\PrefersJsonResponses' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/PrefersJsonResponses.php', 'Illuminate\\Http\\Middleware\\SetCacheHeaders' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php', 'Illuminate\\Http\\Middleware\\TrustHosts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/TrustHosts.php', 'Illuminate\\Http\\Middleware\\TrustProxies' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php', @@ -4319,6 +4374,8 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Http\\Middleware\\ValidatePostSize' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php', 'Illuminate\\Http\\RedirectResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/RedirectResponse.php', 'Illuminate\\Http\\Request' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Request.php', + 'Illuminate\\Http\\Resources\\Attributes\\Collects' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Attributes/Collects.php', + 'Illuminate\\Http\\Resources\\Attributes\\PreserveKeys' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Attributes/PreserveKeys.php', 'Illuminate\\Http\\Resources\\CollectsResources' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php', 'Illuminate\\Http\\Resources\\ConditionallyLoadsAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php', 'Illuminate\\Http\\Resources\\DelegatesToResource' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php', @@ -4348,6 +4405,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\JsonSchema\\JsonSchema' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/JsonSchema/JsonSchema.php', 'Illuminate\\JsonSchema\\JsonSchemaTypeFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/JsonSchema/JsonSchemaTypeFactory.php', 'Illuminate\\JsonSchema\\Serializer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/JsonSchema/Serializer.php', + 'Illuminate\\JsonSchema\\Types\\AnyOfType' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/JsonSchema/Types/AnyOfType.php', 'Illuminate\\JsonSchema\\Types\\ArrayType' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/JsonSchema/Types/ArrayType.php', 'Illuminate\\JsonSchema\\Types\\BooleanType' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/JsonSchema/Types/BooleanType.php', 'Illuminate\\JsonSchema\\Types\\IntegerType' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/JsonSchema/Types/IntegerType.php', @@ -4362,6 +4420,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Log\\Context\\Events\\ContextHydrated' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/Context/Events/ContextHydrated.php', 'Illuminate\\Log\\Context\\Repository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/Context/Repository.php', 'Illuminate\\Log\\Events\\MessageLogged' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php', + 'Illuminate\\Log\\Formatters\\JsonFormatter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/Formatters/JsonFormatter.php', 'Illuminate\\Log\\LogManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/LogManager.php', 'Illuminate\\Log\\LogServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/LogServiceProvider.php', 'Illuminate\\Log\\Logger' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/Logger.php', @@ -4385,6 +4444,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Mail\\SentMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/SentMessage.php', 'Illuminate\\Mail\\TextMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/TextMessage.php', 'Illuminate\\Mail\\Transport\\ArrayTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php', + 'Illuminate\\Mail\\Transport\\CloudflareTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/CloudflareTransport.php', 'Illuminate\\Mail\\Transport\\LogTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php', 'Illuminate\\Mail\\Transport\\ResendTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/ResendTransport.php', 'Illuminate\\Mail\\Transport\\SesTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php', @@ -4439,7 +4499,18 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Process\\Pool' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Process/Pool.php', 'Illuminate\\Process\\ProcessPoolResults' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Process/ProcessPoolResults.php', 'Illuminate\\Process\\ProcessResult' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Process/ProcessResult.php', + 'Illuminate\\Queue\\Attributes\\Backoff' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Attributes/Backoff.php', + 'Illuminate\\Queue\\Attributes\\Connection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Attributes/Connection.php', + 'Illuminate\\Queue\\Attributes\\DebounceFor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Attributes/DebounceFor.php', + 'Illuminate\\Queue\\Attributes\\Delay' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Attributes/Delay.php', 'Illuminate\\Queue\\Attributes\\DeleteWhenMissingModels' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Attributes/DeleteWhenMissingModels.php', + 'Illuminate\\Queue\\Attributes\\FailOnTimeout' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Attributes/FailOnTimeout.php', + 'Illuminate\\Queue\\Attributes\\MaxExceptions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Attributes/MaxExceptions.php', + 'Illuminate\\Queue\\Attributes\\Queue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Attributes/Queue.php', + 'Illuminate\\Queue\\Attributes\\ReadsQueueAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Attributes/ReadsQueueAttributes.php', + 'Illuminate\\Queue\\Attributes\\Timeout' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Attributes/Timeout.php', + 'Illuminate\\Queue\\Attributes\\Tries' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Attributes/Tries.php', + 'Illuminate\\Queue\\Attributes\\UniqueFor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Attributes/UniqueFor.php', 'Illuminate\\Queue\\Attributes\\WithoutRelations' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Attributes/WithoutRelations.php', 'Illuminate\\Queue\\BackgroundQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/BackgroundQueue.php', 'Illuminate\\Queue\\BeanstalkdQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php', @@ -4477,6 +4548,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Queue\\DatabaseQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php', 'Illuminate\\Queue\\DeferredQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/DeferredQueue.php', 'Illuminate\\Queue\\Events\\JobAttempted' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobAttempted.php', + 'Illuminate\\Queue\\Events\\JobDebounced' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobDebounced.php', 'Illuminate\\Queue\\Events\\JobExceptionOccurred' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php', 'Illuminate\\Queue\\Events\\JobFailed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php', 'Illuminate\\Queue\\Events\\JobPopped' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobPopped.php', @@ -4493,6 +4565,10 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Queue\\Events\\QueueFailedOver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/QueueFailedOver.php', 'Illuminate\\Queue\\Events\\QueuePaused' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/QueuePaused.php', 'Illuminate\\Queue\\Events\\QueueResumed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/QueueResumed.php', + 'Illuminate\\Queue\\Events\\WorkerIdle' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/WorkerIdle.php', + 'Illuminate\\Queue\\Events\\WorkerInterrupted' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/WorkerInterrupted.php', + 'Illuminate\\Queue\\Events\\WorkerPausing' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/WorkerPausing.php', + 'Illuminate\\Queue\\Events\\WorkerResuming' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/WorkerResuming.php', 'Illuminate\\Queue\\Events\\WorkerStarting' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/WorkerStarting.php', 'Illuminate\\Queue\\Events\\WorkerStopping' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php', 'Illuminate\\Queue\\Failed\\CountableFailedJobProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Failed/CountableFailedJobProvider.php', @@ -4510,6 +4586,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Queue\\Jobs\\DatabaseJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php', 'Illuminate\\Queue\\Jobs\\DatabaseJobRecord' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php', 'Illuminate\\Queue\\Jobs\\FakeJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/FakeJob.php', + 'Illuminate\\Queue\\Jobs\\InspectedJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/InspectedJob.php', 'Illuminate\\Queue\\Jobs\\Job' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/Job.php', 'Illuminate\\Queue\\Jobs\\JobName' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php', 'Illuminate\\Queue\\Jobs\\RedisJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/RedisJob.php', @@ -4523,6 +4600,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Queue\\Middleware\\FailOnException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Middleware/FailOnException.php', 'Illuminate\\Queue\\Middleware\\RateLimited' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Middleware/RateLimited.php', 'Illuminate\\Queue\\Middleware\\RateLimitedWithRedis' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Middleware/RateLimitedWithRedis.php', + 'Illuminate\\Queue\\Middleware\\Release' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Middleware/Release.php', 'Illuminate\\Queue\\Middleware\\Skip' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Middleware/Skip.php', 'Illuminate\\Queue\\Middleware\\SkipIfBatchCancelled' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Middleware/SkipIfBatchCancelled.php', 'Illuminate\\Queue\\Middleware\\ThrottlesExceptions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Middleware/ThrottlesExceptions.php', @@ -4531,6 +4609,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Queue\\NullQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/NullQueue.php', 'Illuminate\\Queue\\Queue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Queue.php', 'Illuminate\\Queue\\QueueManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/QueueManager.php', + 'Illuminate\\Queue\\QueueRoutes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/QueueRoutes.php', 'Illuminate\\Queue\\QueueServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php', 'Illuminate\\Queue\\RedisQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/RedisQueue.php', 'Illuminate\\Queue\\SerializesAndRestoresModelIdentifiers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php', @@ -4558,6 +4637,8 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Redis\\RedisManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/RedisManager.php', 'Illuminate\\Redis\\RedisServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php', 'Illuminate\\Routing\\AbstractRouteCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php', + 'Illuminate\\Routing\\Attributes\\Controllers\\Authorize' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Attributes/Controllers/Authorize.php', + 'Illuminate\\Routing\\Attributes\\Controllers\\Middleware' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Attributes/Controllers/Middleware.php', 'Illuminate\\Routing\\CallableDispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/CallableDispatcher.php', 'Illuminate\\Routing\\CompiledRouteCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/CompiledRouteCollection.php', 'Illuminate\\Routing\\Console\\ControllerMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php', @@ -4641,6 +4722,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Support\\Collection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Collections/Collection.php', 'Illuminate\\Support\\Composer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Composer.php', 'Illuminate\\Support\\ConfigurationUrlParser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/ConfigurationUrlParser.php', + 'Illuminate\\Support\\Contracts\\NodePackageManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Contracts/NodePackageManager.php', 'Illuminate\\Support\\DateFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/DateFactory.php', 'Illuminate\\Support\\DefaultProviders' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/DefaultProviders.php', 'Illuminate\\Support\\Defer\\DeferredCallback' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Defer/DeferredCallback.php', @@ -4709,12 +4791,19 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Support\\MultipleInstanceManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/MultipleInstanceManager.php', 'Illuminate\\Support\\MultipleItemsFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Collections/MultipleItemsFoundException.php', 'Illuminate\\Support\\NamespacedItemResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php', + 'Illuminate\\Support\\NodePackageManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/NodePackageManager.php', + 'Illuminate\\Support\\NodePackageManagers\\Bun' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/NodePackageManagers/Bun.php', + 'Illuminate\\Support\\NodePackageManagers\\Npm' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/NodePackageManagers/Npm.php', + 'Illuminate\\Support\\NodePackageManagers\\Pnpm' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/NodePackageManagers/Pnpm.php', + 'Illuminate\\Support\\NodePackageManagers\\Yarn' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/NodePackageManagers/Yarn.php', 'Illuminate\\Support\\Number' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Number.php', 'Illuminate\\Support\\Once' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Once.php', 'Illuminate\\Support\\Onceable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Onceable.php', 'Illuminate\\Support\\Optional' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Optional.php', 'Illuminate\\Support\\Pluralizer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Pluralizer.php', 'Illuminate\\Support\\ProcessUtils' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/ProcessUtils.php', + 'Illuminate\\Support\\Queue\\Concerns\\ResolvesQueueRoutes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Queue/Concerns/ResolvesQueueRoutes.php', + 'Illuminate\\Support\\RebindsCallbacksToSelf' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/RebindsCallbacksToSelf.php', 'Illuminate\\Support\\Reflector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Reflection/Reflector.php', 'Illuminate\\Support\\ServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/ServiceProvider.php', 'Illuminate\\Support\\Sleep' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Sleep.php', @@ -4742,6 +4831,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Support\\Traits\\InteractsWithData' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/InteractsWithData.php', 'Illuminate\\Support\\Traits\\Localizable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/Localizable.php', 'Illuminate\\Support\\Traits\\Macroable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Macroable/Traits/Macroable.php', + 'Illuminate\\Support\\Traits\\ReadsClassAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/ReadsClassAttributes.php', 'Illuminate\\Support\\Traits\\ReflectsClosures' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Reflection/Traits/ReflectsClosures.php', 'Illuminate\\Support\\Traits\\Tappable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/Tappable.php', 'Illuminate\\Support\\Traits\\TransformsToResourceCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Collections/Traits/TransformsToResourceCollection.php', @@ -4760,6 +4850,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Illuminate\\Testing\\Constraints\\CountInDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Testing/Constraints/CountInDatabase.php', 'Illuminate\\Testing\\Constraints\\HasInDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Testing/Constraints/HasInDatabase.php', 'Illuminate\\Testing\\Constraints\\NotSoftDeletedInDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Testing/Constraints/NotSoftDeletedInDatabase.php', + 'Illuminate\\Testing\\Constraints\\SeeInHtml' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Testing/Constraints/SeeInHtml.php', 'Illuminate\\Testing\\Constraints\\SeeInOrder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Testing/Constraints/SeeInOrder.php', 'Illuminate\\Testing\\Constraints\\SoftDeletedInDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Testing/Constraints/SoftDeletedInDatabase.php', 'Illuminate\\Testing\\Exceptions\\InvalidArgumentException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Testing/Exceptions/InvalidArgumentException.php', @@ -5830,7 +5921,6 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'NunoMaduro\\Collision\\Provider' => __DIR__ . '/..' . '/nunomaduro/collision/src/Provider.php', 'NunoMaduro\\Collision\\SolutionsRepositories\\NullSolutionsRepository' => __DIR__ . '/..' . '/nunomaduro/collision/src/SolutionsRepositories/NullSolutionsRepository.php', 'NunoMaduro\\Collision\\Writer' => __DIR__ . '/..' . '/nunomaduro/collision/src/Writer.php', - 'Override' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/Override.php', 'PHPUnit\\Event\\Application\\Finished' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Application/Finished.php', 'PHPUnit\\Event\\Application\\FinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Application/FinishedSubscriber.php', 'PHPUnit\\Event\\Application\\Started' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Application/Started.php', @@ -5884,11 +5974,10 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Event\\Telemetry\\Info' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/Info.php', 'PHPUnit\\Event\\Telemetry\\MemoryMeter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/MemoryMeter.php', 'PHPUnit\\Event\\Telemetry\\MemoryUsage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/MemoryUsage.php', - 'PHPUnit\\Event\\Telemetry\\Php81GarbageCollectorStatusProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/Php81GarbageCollectorStatusProvider.php', - 'PHPUnit\\Event\\Telemetry\\Php83GarbageCollectorStatusProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/Php83GarbageCollectorStatusProvider.php', 'PHPUnit\\Event\\Telemetry\\Snapshot' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/Snapshot.php', 'PHPUnit\\Event\\Telemetry\\StopWatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/StopWatch.php', 'PHPUnit\\Event\\Telemetry\\System' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/System.php', + 'PHPUnit\\Event\\Telemetry\\SystemGarbageCollectorStatusProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/SystemGarbageCollectorStatusProvider.php', 'PHPUnit\\Event\\Telemetry\\SystemMemoryMeter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/SystemMemoryMeter.php', 'PHPUnit\\Event\\Telemetry\\SystemStopWatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/SystemStopWatch.php', 'PHPUnit\\Event\\Telemetry\\SystemStopWatchWithOffset' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/SystemStopWatchWithOffset.php', @@ -5900,6 +5989,8 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Event\\TestData\\TestDataCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Test/TestData/TestDataCollectionIterator.php', 'PHPUnit\\Event\\TestRunner\\BootstrapFinished' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/BootstrapFinished.php', 'PHPUnit\\Event\\TestRunner\\BootstrapFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/BootstrapFinishedSubscriber.php', + 'PHPUnit\\Event\\TestRunner\\ChildProcessErrored' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessErrored.php', + 'PHPUnit\\Event\\TestRunner\\ChildProcessErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessErroredSubscriber.php', 'PHPUnit\\Event\\TestRunner\\ChildProcessFinished' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessFinished.php', 'PHPUnit\\Event\\TestRunner\\ChildProcessFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessFinishedSubscriber.php', 'PHPUnit\\Event\\TestRunner\\ChildProcessStarted' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessStarted.php', @@ -5928,8 +6019,14 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Event\\TestRunner\\GarbageCollectionEnabledSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionEnabledSubscriber.php', 'PHPUnit\\Event\\TestRunner\\GarbageCollectionTriggered' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionTriggered.php', 'PHPUnit\\Event\\TestRunner\\GarbageCollectionTriggeredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionTriggeredSubscriber.php', + 'PHPUnit\\Event\\TestRunner\\NoticeTriggered' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/NoticeTriggered.php', + 'PHPUnit\\Event\\TestRunner\\NoticeTriggeredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/NoticeTriggeredSubscriber.php', 'PHPUnit\\Event\\TestRunner\\Started' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/Started.php', 'PHPUnit\\Event\\TestRunner\\StartedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/StartedSubscriber.php', + 'PHPUnit\\Event\\TestRunner\\StaticAnalysisForCodeCoverageFinished' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageFinished.php', + 'PHPUnit\\Event\\TestRunner\\StaticAnalysisForCodeCoverageFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageFinishedSubscriber.php', + 'PHPUnit\\Event\\TestRunner\\StaticAnalysisForCodeCoverageStarted' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageStarted.php', + 'PHPUnit\\Event\\TestRunner\\StaticAnalysisForCodeCoverageStartedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageStartedSubscriber.php', 'PHPUnit\\Event\\TestRunner\\WarningTriggered' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/WarningTriggered.php', 'PHPUnit\\Event\\TestRunner\\WarningTriggeredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestRunner/WarningTriggeredSubscriber.php', 'PHPUnit\\Event\\TestSuite\\Filtered' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/TestSuite/Filtered.php', @@ -5949,34 +6046,46 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Event\\TestSuite\\TestSuiteForTestClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteForTestClass.php', 'PHPUnit\\Event\\TestSuite\\TestSuiteForTestMethodWithDataProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteForTestMethodWithDataProvider.php', 'PHPUnit\\Event\\TestSuite\\TestSuiteWithName' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteWithName.php', + 'PHPUnit\\Event\\Test\\AdditionalInformationProvided' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/AdditionalInformationProvided.php', + 'PHPUnit\\Event\\Test\\AdditionalInformationProvidedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/AdditionalInformationProvidedSubscriber.php', 'PHPUnit\\Event\\Test\\AfterLastTestMethodCalled' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodCalled.php', 'PHPUnit\\Event\\Test\\AfterLastTestMethodCalledSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodCalledSubscriber.php', 'PHPUnit\\Event\\Test\\AfterLastTestMethodErrored' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodErrored.php', 'PHPUnit\\Event\\Test\\AfterLastTestMethodErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodErroredSubscriber.php', + 'PHPUnit\\Event\\Test\\AfterLastTestMethodFailed' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFailed.php', + 'PHPUnit\\Event\\Test\\AfterLastTestMethodFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFailedSubscriber.php', 'PHPUnit\\Event\\Test\\AfterLastTestMethodFinished' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFinished.php', 'PHPUnit\\Event\\Test\\AfterLastTestMethodFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFinishedSubscriber.php', 'PHPUnit\\Event\\Test\\AfterTestMethodCalled' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodCalled.php', 'PHPUnit\\Event\\Test\\AfterTestMethodCalledSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodCalledSubscriber.php', 'PHPUnit\\Event\\Test\\AfterTestMethodErrored' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodErrored.php', 'PHPUnit\\Event\\Test\\AfterTestMethodErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodErroredSubscriber.php', + 'PHPUnit\\Event\\Test\\AfterTestMethodFailed' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFailed.php', + 'PHPUnit\\Event\\Test\\AfterTestMethodFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFailedSubscriber.php', 'PHPUnit\\Event\\Test\\AfterTestMethodFinished' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFinished.php', 'PHPUnit\\Event\\Test\\AfterTestMethodFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFinishedSubscriber.php', 'PHPUnit\\Event\\Test\\BeforeFirstTestMethodCalled' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodCalled.php', 'PHPUnit\\Event\\Test\\BeforeFirstTestMethodCalledSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodCalledSubscriber.php', 'PHPUnit\\Event\\Test\\BeforeFirstTestMethodErrored' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodErrored.php', 'PHPUnit\\Event\\Test\\BeforeFirstTestMethodErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodErroredSubscriber.php', + 'PHPUnit\\Event\\Test\\BeforeFirstTestMethodFailed' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFailed.php', + 'PHPUnit\\Event\\Test\\BeforeFirstTestMethodFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFailedSubscriber.php', 'PHPUnit\\Event\\Test\\BeforeFirstTestMethodFinished' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFinished.php', 'PHPUnit\\Event\\Test\\BeforeFirstTestMethodFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFinishedSubscriber.php', 'PHPUnit\\Event\\Test\\BeforeTestMethodCalled' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodCalled.php', 'PHPUnit\\Event\\Test\\BeforeTestMethodCalledSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodCalledSubscriber.php', 'PHPUnit\\Event\\Test\\BeforeTestMethodErrored' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodErrored.php', 'PHPUnit\\Event\\Test\\BeforeTestMethodErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodErroredSubscriber.php', + 'PHPUnit\\Event\\Test\\BeforeTestMethodFailed' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFailed.php', + 'PHPUnit\\Event\\Test\\BeforeTestMethodFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFailedSubscriber.php', 'PHPUnit\\Event\\Test\\BeforeTestMethodFinished' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFinished.php', 'PHPUnit\\Event\\Test\\BeforeTestMethodFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFinishedSubscriber.php', 'PHPUnit\\Event\\Test\\ComparatorRegistered' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/ComparatorRegistered.php', 'PHPUnit\\Event\\Test\\ComparatorRegisteredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/ComparatorRegisteredSubscriber.php', 'PHPUnit\\Event\\Test\\ConsideredRisky' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Issue/ConsideredRisky.php', 'PHPUnit\\Event\\Test\\ConsideredRiskySubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Issue/ConsideredRiskySubscriber.php', + 'PHPUnit\\Event\\Test\\CustomTestMethodInvocationUsed' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/CustomTestMethodInvocationUsed.php', + 'PHPUnit\\Event\\Test\\CustomTestMethodInvocationUsedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/CustomTestMethodInvocationUsedSubscriber.php', 'PHPUnit\\Event\\Test\\DataProviderMethodCalled' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Lifecycle/DataProviderMethodCalled.php', 'PHPUnit\\Event\\Test\\DataProviderMethodCalledSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Lifecycle/DataProviderMethodCalledSubscriber.php', 'PHPUnit\\Event\\Test\\DataProviderMethodFinished' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Lifecycle/DataProviderMethodFinished.php', @@ -5995,14 +6104,8 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Event\\Test\\MarkedIncompleteSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Outcome/MarkedIncompleteSubscriber.php', 'PHPUnit\\Event\\Test\\MockObjectCreated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectCreated.php', 'PHPUnit\\Event\\Test\\MockObjectCreatedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectCreatedSubscriber.php', - 'PHPUnit\\Event\\Test\\MockObjectForAbstractClassCreated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForAbstractClassCreated.php', - 'PHPUnit\\Event\\Test\\MockObjectForAbstractClassCreatedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForAbstractClassCreatedSubscriber.php', 'PHPUnit\\Event\\Test\\MockObjectForIntersectionOfInterfacesCreated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForIntersectionOfInterfacesCreated.php', 'PHPUnit\\Event\\Test\\MockObjectForIntersectionOfInterfacesCreatedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForIntersectionOfInterfacesCreatedSubscriber.php', - 'PHPUnit\\Event\\Test\\MockObjectForTraitCreated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForTraitCreated.php', - 'PHPUnit\\Event\\Test\\MockObjectForTraitCreatedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForTraitCreatedSubscriber.php', - 'PHPUnit\\Event\\Test\\MockObjectFromWsdlCreated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectFromWsdlCreated.php', - 'PHPUnit\\Event\\Test\\MockObjectFromWsdlCreatedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectFromWsdlCreatedSubscriber.php', 'PHPUnit\\Event\\Test\\NoComparisonFailureException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Exception/NoComparisonFailureException.php', 'PHPUnit\\Event\\Test\\NoticeTriggered' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Issue/NoticeTriggered.php', 'PHPUnit\\Event\\Test\\NoticeTriggeredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Issue/NoticeTriggeredSubscriber.php', @@ -6020,20 +6123,28 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Event\\Test\\PhpunitDeprecationTriggeredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitDeprecationTriggeredSubscriber.php', 'PHPUnit\\Event\\Test\\PhpunitErrorTriggered' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitErrorTriggered.php', 'PHPUnit\\Event\\Test\\PhpunitErrorTriggeredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitErrorTriggeredSubscriber.php', + 'PHPUnit\\Event\\Test\\PhpunitNoticeTriggered' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitNoticeTriggered.php', + 'PHPUnit\\Event\\Test\\PhpunitNoticeTriggeredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitNoticeTriggeredSubscriber.php', 'PHPUnit\\Event\\Test\\PhpunitWarningTriggered' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitWarningTriggered.php', 'PHPUnit\\Event\\Test\\PhpunitWarningTriggeredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitWarningTriggeredSubscriber.php', 'PHPUnit\\Event\\Test\\PostConditionCalled' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionCalled.php', 'PHPUnit\\Event\\Test\\PostConditionCalledSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionCalledSubscriber.php', 'PHPUnit\\Event\\Test\\PostConditionErrored' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionErrored.php', 'PHPUnit\\Event\\Test\\PostConditionErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionErroredSubscriber.php', + 'PHPUnit\\Event\\Test\\PostConditionFailed' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFailed.php', + 'PHPUnit\\Event\\Test\\PostConditionFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFailedSubscriber.php', 'PHPUnit\\Event\\Test\\PostConditionFinished' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFinished.php', 'PHPUnit\\Event\\Test\\PostConditionFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFinishedSubscriber.php', 'PHPUnit\\Event\\Test\\PreConditionCalled' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionCalled.php', 'PHPUnit\\Event\\Test\\PreConditionCalledSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionCalledSubscriber.php', 'PHPUnit\\Event\\Test\\PreConditionErrored' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionErrored.php', 'PHPUnit\\Event\\Test\\PreConditionErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionErroredSubscriber.php', + 'PHPUnit\\Event\\Test\\PreConditionFailed' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFailed.php', + 'PHPUnit\\Event\\Test\\PreConditionFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFailedSubscriber.php', 'PHPUnit\\Event\\Test\\PreConditionFinished' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFinished.php', 'PHPUnit\\Event\\Test\\PreConditionFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFinishedSubscriber.php', + 'PHPUnit\\Event\\Test\\PreparationErrored' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationErrored.php', + 'PHPUnit\\Event\\Test\\PreparationErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationErroredSubscriber.php', 'PHPUnit\\Event\\Test\\PreparationFailed' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationFailed.php', 'PHPUnit\\Event\\Test\\PreparationFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationFailedSubscriber.php', 'PHPUnit\\Event\\Test\\PreparationStarted' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationStarted.php', @@ -6044,8 +6155,6 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Event\\Test\\PrintedUnexpectedOutputSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/PrintedUnexpectedOutputSubscriber.php', 'PHPUnit\\Event\\Test\\Skipped' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Outcome/Skipped.php', 'PHPUnit\\Event\\Test\\SkippedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Outcome/SkippedSubscriber.php', - 'PHPUnit\\Event\\Test\\TestProxyCreated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestProxyCreated.php', - 'PHPUnit\\Event\\Test\\TestProxyCreatedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestProxyCreatedSubscriber.php', 'PHPUnit\\Event\\Test\\TestStubCreated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubCreated.php', 'PHPUnit\\Event\\Test\\TestStubCreatedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubCreatedSubscriber.php', 'PHPUnit\\Event\\Test\\TestStubForIntersectionOfInterfacesCreated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubForIntersectionOfInterfacesCreated.php', @@ -6064,13 +6173,17 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Framework\\AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/AssertionFailedError.php', 'PHPUnit\\Framework\\Attributes\\After' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/After.php', 'PHPUnit\\Framework\\Attributes\\AfterClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/AfterClass.php', + 'PHPUnit\\Framework\\Attributes\\AllowMockObjectsWithoutExpectations' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/AllowMockObjectsWithoutExpectations.php', 'PHPUnit\\Framework\\Attributes\\BackupGlobals' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/BackupGlobals.php', 'PHPUnit\\Framework\\Attributes\\BackupStaticProperties' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/BackupStaticProperties.php', 'PHPUnit\\Framework\\Attributes\\Before' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/Before.php', 'PHPUnit\\Framework\\Attributes\\BeforeClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/BeforeClass.php', 'PHPUnit\\Framework\\Attributes\\CoversClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/CoversClass.php', + 'PHPUnit\\Framework\\Attributes\\CoversClassesThatExtendClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/CoversClassesThatExtendClass.php', + 'PHPUnit\\Framework\\Attributes\\CoversClassesThatImplementInterface' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/CoversClassesThatImplementInterface.php', 'PHPUnit\\Framework\\Attributes\\CoversFunction' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/CoversFunction.php', 'PHPUnit\\Framework\\Attributes\\CoversMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/CoversMethod.php', + 'PHPUnit\\Framework\\Attributes\\CoversNamespace' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/CoversNamespace.php', 'PHPUnit\\Framework\\Attributes\\CoversNothing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/CoversNothing.php', 'PHPUnit\\Framework\\Attributes\\CoversTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/CoversTrait.php', 'PHPUnit\\Framework\\Attributes\\DataProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/DataProvider.php', @@ -6091,11 +6204,13 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Framework\\Attributes\\Group' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/Group.php', 'PHPUnit\\Framework\\Attributes\\IgnoreDeprecations' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/IgnoreDeprecations.php', 'PHPUnit\\Framework\\Attributes\\IgnorePhpunitDeprecations' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/IgnorePhpunitDeprecations.php', + 'PHPUnit\\Framework\\Attributes\\IgnorePhpunitWarnings' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/IgnorePhpunitWarnings.php', 'PHPUnit\\Framework\\Attributes\\Large' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/Large.php', 'PHPUnit\\Framework\\Attributes\\Medium' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/Medium.php', 'PHPUnit\\Framework\\Attributes\\PostCondition' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/PostCondition.php', 'PHPUnit\\Framework\\Attributes\\PreCondition' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/PreCondition.php', 'PHPUnit\\Framework\\Attributes\\PreserveGlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/PreserveGlobalState.php', + 'PHPUnit\\Framework\\Attributes\\RequiresEnvironmentVariable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/RequiresEnvironmentVariable.php', 'PHPUnit\\Framework\\Attributes\\RequiresFunction' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/RequiresFunction.php', 'PHPUnit\\Framework\\Attributes\\RequiresMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/RequiresMethod.php', 'PHPUnit\\Framework\\Attributes\\RequiresOperatingSystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/RequiresOperatingSystem.php', @@ -6111,16 +6226,21 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Framework\\Attributes\\Small' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/Small.php', 'PHPUnit\\Framework\\Attributes\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/Test.php', 'PHPUnit\\Framework\\Attributes\\TestDox' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/TestDox.php', + 'PHPUnit\\Framework\\Attributes\\TestDoxFormatter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/TestDoxFormatter.php', + 'PHPUnit\\Framework\\Attributes\\TestDoxFormatterExternal' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/TestDoxFormatterExternal.php', 'PHPUnit\\Framework\\Attributes\\TestWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/TestWith.php', 'PHPUnit\\Framework\\Attributes\\TestWithJson' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/TestWithJson.php', 'PHPUnit\\Framework\\Attributes\\Ticket' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/Ticket.php', 'PHPUnit\\Framework\\Attributes\\UsesClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/UsesClass.php', + 'PHPUnit\\Framework\\Attributes\\UsesClassesThatExtendClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/UsesClassesThatExtendClass.php', + 'PHPUnit\\Framework\\Attributes\\UsesClassesThatImplementInterface' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/UsesClassesThatImplementInterface.php', 'PHPUnit\\Framework\\Attributes\\UsesFunction' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/UsesFunction.php', 'PHPUnit\\Framework\\Attributes\\UsesMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/UsesMethod.php', + 'PHPUnit\\Framework\\Attributes\\UsesNamespace' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/UsesNamespace.php', 'PHPUnit\\Framework\\Attributes\\UsesTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/UsesTrait.php', + 'PHPUnit\\Framework\\Attributes\\WithEnvironmentVariable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/WithEnvironmentVariable.php', 'PHPUnit\\Framework\\Attributes\\WithoutErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/WithoutErrorHandler.php', 'PHPUnit\\Framework\\ChildProcessResultProcessor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestRunner/ChildProcessResultProcessor.php', - 'PHPUnit\\Framework\\CodeCoverageException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/CodeCoverageException.php', 'PHPUnit\\Framework\\ComparisonMethodDoesNotAcceptParameterTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ObjectEquals/ComparisonMethodDoesNotAcceptParameterTypeException.php', 'PHPUnit\\Framework\\ComparisonMethodDoesNotDeclareBoolReturnTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ObjectEquals/ComparisonMethodDoesNotDeclareBoolReturnTypeException.php', 'PHPUnit\\Framework\\ComparisonMethodDoesNotDeclareExactlyOneParameterException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ObjectEquals/ComparisonMethodDoesNotDeclareExactlyOneParameterException.php', @@ -6180,6 +6300,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Framework\\Constraint\\UnaryOperator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/UnaryOperator.php', 'PHPUnit\\Framework\\DataProviderTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php', 'PHPUnit\\Framework\\EmptyStringException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/EmptyStringException.php', + 'PHPUnit\\Framework\\ErrorLogNotWritableException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ErrorLogNotWritableException.php', 'PHPUnit\\Framework\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/Exception.php', 'PHPUnit\\Framework\\ExecutionOrderDependency' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExecutionOrderDependency.php', 'PHPUnit\\Framework\\ExpectationFailedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ExpectationFailedException.php', @@ -6187,51 +6308,38 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Framework\\IncompleteTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/Incomplete/IncompleteTest.php', 'PHPUnit\\Framework\\IncompleteTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/Incomplete/IncompleteTestError.php', 'PHPUnit\\Framework\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/InvalidArgumentException.php', - 'PHPUnit\\Framework\\InvalidCoversTargetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/InvalidCoversTargetException.php', 'PHPUnit\\Framework\\InvalidDataProviderException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/InvalidDataProviderException.php', 'PHPUnit\\Framework\\InvalidDependencyException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/InvalidDependencyException.php', 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/Identity.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationStubber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/InvocationStubber.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/MethodNameMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/ParametersMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/Stub.php', - 'PHPUnit\\Framework\\MockObject\\CannotCloneTestDoubleForReadonlyClassException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotCloneTestDoubleForReadonlyClassException.php', 'PHPUnit\\Framework\\MockObject\\CannotUseOnlyMethodsException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php', 'PHPUnit\\Framework\\MockObject\\ConfigurableMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/ConfigurableMethod.php', 'PHPUnit\\Framework\\MockObject\\DoubledCloneMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/DoubledCloneMethod.php', - 'PHPUnit\\Framework\\MockObject\\ErrorCloneMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/ErrorCloneMethod.php', 'PHPUnit\\Framework\\MockObject\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php', - 'PHPUnit\\Framework\\MockObject\\GeneratedAsMockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/GeneratedAsMockObject.php', - 'PHPUnit\\Framework\\MockObject\\GeneratedAsTestStub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/GeneratedAsTestStub.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\CannotUseAddMethodsException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/CannotUseAddMethodsException.php', + 'PHPUnit\\Framework\\MockObject\\Generator\\ClassIsAnonymousException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsAnonymousException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\ClassIsEnumerationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsEnumerationException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\ClassIsFinalException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsFinalException.php', + 'PHPUnit\\Framework\\MockObject\\Generator\\DoubledClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledClass.php', + 'PHPUnit\\Framework\\MockObject\\Generator\\DoubledMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledMethod.php', + 'PHPUnit\\Framework\\MockObject\\Generator\\DoubledMethodSet' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledMethodSet.php', 'PHPUnit\\Framework\\MockObject\\Generator\\DuplicateMethodException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/DuplicateMethodException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/Exception.php', 'PHPUnit\\Framework\\MockObject\\Generator\\Generator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Generator.php', 'PHPUnit\\Framework\\MockObject\\Generator\\HookedProperty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/HookedProperty.php', 'PHPUnit\\Framework\\MockObject\\Generator\\HookedPropertyGenerator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/HookedPropertyGenerator.php', + 'PHPUnit\\Framework\\MockObject\\Generator\\InvalidClassNameException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/InvalidClassNameException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\InvalidMethodNameException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/InvalidMethodNameException.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\MockClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockClass.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\MockMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockMethod.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\MockMethodSet' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockMethodSet.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\MockTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockTrait.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\MockType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockType.php', + 'PHPUnit\\Framework\\MockObject\\Generator\\MethodNamedMethodException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/MethodNamedMethodException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\NameAlreadyInUseException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/NameAlreadyInUseException.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\OriginalConstructorInvocationRequiredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/OriginalConstructorInvocationRequiredException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\ReflectionException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ReflectionException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/RuntimeException.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\SoapExtensionNotAvailableException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/SoapExtensionNotAvailableException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\TemplateLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/TemplateLoader.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\UnknownClassException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownClassException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\UnknownInterfaceException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownInterfaceException.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\UnknownTraitException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownTraitException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\UnknownTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownTypeException.php', 'PHPUnit\\Framework\\MockObject\\IncompatibleReturnValueException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php', 'PHPUnit\\Framework\\MockObject\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Invocation.php', 'PHPUnit\\Framework\\MockObject\\InvocationHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/InvocationHandler.php', + 'PHPUnit\\Framework\\MockObject\\InvocationStubber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/InvocationStubber.php', + 'PHPUnit\\Framework\\MockObject\\InvocationStubberImplementation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/InvocationStubberImplementation.php', 'PHPUnit\\Framework\\MockObject\\MatchBuilderNotFoundException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/MatchBuilderNotFoundException.php', 'PHPUnit\\Framework\\MockObject\\Matcher' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Matcher.php', 'PHPUnit\\Framework\\MockObject\\MatcherAlreadyRegisteredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/MatcherAlreadyRegisteredException.php', @@ -6245,7 +6353,6 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Framework\\MockObject\\MockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/MockObject.php', 'PHPUnit\\Framework\\MockObject\\MockObjectApi' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/MockObjectApi.php', 'PHPUnit\\Framework\\MockObject\\MockObjectInternal' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/MockObjectInternal.php', - 'PHPUnit\\Framework\\MockObject\\MutableStubApi' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/MutableStubApi.php', 'PHPUnit\\Framework\\MockObject\\NeverReturningMethodException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/NeverReturningMethodException.php', 'PHPUnit\\Framework\\MockObject\\NoMoreReturnValuesConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/NoMoreReturnValuesConfiguredException.php', 'PHPUnit\\Framework\\MockObject\\ProxiedCloneMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/ProxiedCloneMethod.php', @@ -6277,7 +6384,9 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Stub/ReturnStub.php', 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Stub/ReturnValueMap.php', 'PHPUnit\\Framework\\MockObject\\Stub\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Stub/Stub.php', + 'PHPUnit\\Framework\\MockObject\\TestDoubleBuilder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/TestDoubleBuilder.php', 'PHPUnit\\Framework\\MockObject\\TestDoubleState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/TestDoubleState.php', + 'PHPUnit\\Framework\\MockObject\\TestStubBuilder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/TestStubBuilder.php', 'PHPUnit\\Framework\\NativeType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/NativeType.php', 'PHPUnit\\Framework\\NoChildTestSuiteException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/NoChildTestSuiteException.php', 'PHPUnit\\Framework\\PhptAssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/PhptAssertionFailedError.php', @@ -6313,7 +6422,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Framework\\TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite.php', 'PHPUnit\\Framework\\TestSuiteIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php', 'PHPUnit\\Framework\\UnknownClassOrInterfaceException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/UnknownClassOrInterfaceException.php', - 'PHPUnit\\Framework\\UnknownTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/UnknownTypeException.php', + 'PHPUnit\\Framework\\UnknownNativeTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/UnknownNativeTypeException.php', 'PHPUnit\\Logging\\EventLogger' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/EventLogger.php', 'PHPUnit\\Logging\\JUnit\\JunitXmlLogger' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/JUnit/JunitXmlLogger.php', 'PHPUnit\\Logging\\JUnit\\Subscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/Subscriber.php', @@ -6321,6 +6430,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Logging\\JUnit\\TestFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestFailedSubscriber.php', 'PHPUnit\\Logging\\JUnit\\TestFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestFinishedSubscriber.php', 'PHPUnit\\Logging\\JUnit\\TestMarkedIncompleteSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestMarkedIncompleteSubscriber.php', + 'PHPUnit\\Logging\\JUnit\\TestPreparationErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestPreparationErroredSubscriber.php', 'PHPUnit\\Logging\\JUnit\\TestPreparationFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestPreparationFailedSubscriber.php', 'PHPUnit\\Logging\\JUnit\\TestPreparationStartedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestPreparationStartedSubscriber.php', 'PHPUnit\\Logging\\JUnit\\TestPreparedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestPreparedSubscriber.php', @@ -6328,7 +6438,31 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Logging\\JUnit\\TestRunnerExecutionFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestRunnerExecutionFinishedSubscriber.php', 'PHPUnit\\Logging\\JUnit\\TestSkippedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestSkippedSubscriber.php', 'PHPUnit\\Logging\\JUnit\\TestSuiteFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestSuiteFinishedSubscriber.php', + 'PHPUnit\\Logging\\JUnit\\TestSuiteSkippedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestSuiteSkippedSubscriber.php', 'PHPUnit\\Logging\\JUnit\\TestSuiteStartedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestSuiteStartedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\AfterLastTestMethodErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/AfterLastTestMethodErroredSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\AfterLastTestMethodFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/AfterLastTestMethodFailedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\BeforeFirstTestMethodErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/BeforeFirstTestMethodErroredSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\BeforeFirstTestMethodFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/BeforeFirstTestMethodFailedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\CannotOpenUriForWritingException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Exception/CannotOpenUriForWritingException.php', + 'PHPUnit\\Logging\\OpenTestReporting\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Exception/Exception.php', + 'PHPUnit\\Logging\\OpenTestReporting\\InfrastructureInformationProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/InfrastructureInformationProvider.php', + 'PHPUnit\\Logging\\OpenTestReporting\\OtrXmlLogger' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/OtrXmlLogger.php', + 'PHPUnit\\Logging\\OpenTestReporting\\Status' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Status.php', + 'PHPUnit\\Logging\\OpenTestReporting\\Subscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/Subscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestAbortedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestAbortedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestErroredSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestFailedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestFinishedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestPreparationErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparationErroredSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestPreparationFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparationFailedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestPreparedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestRunnerFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestRunnerFinishedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestRunnerStartedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestRunnerStartedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestSkippedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSkippedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestSuiteFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteFinishedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestSuiteSkippedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteSkippedSubscriber.php', + 'PHPUnit\\Logging\\OpenTestReporting\\TestSuiteStartedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteStartedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\Subscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/Subscriber.php', 'PHPUnit\\Logging\\TeamCity\\TeamCityLogger' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/TeamCityLogger.php', 'PHPUnit\\Logging\\TeamCity\\TestConsideredRiskySubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestConsideredRiskySubscriber.php', @@ -6336,10 +6470,14 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Logging\\TeamCity\\TestFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestFailedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestFinishedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestMarkedIncompleteSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestMarkedIncompleteSubscriber.php', + 'PHPUnit\\Logging\\TeamCity\\TestPreparationErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationErroredSubscriber.php', + 'PHPUnit\\Logging\\TeamCity\\TestPreparationFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationFailedSubscriber.php', + 'PHPUnit\\Logging\\TeamCity\\TestPreparationStartedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationStartedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestPreparedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestRunnerExecutionFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestRunnerExecutionFinishedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestSkippedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestSkippedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestSuiteBeforeFirstTestMethodErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestSuiteBeforeFirstTestMethodErroredSubscriber.php', + 'PHPUnit\\Logging\\TeamCity\\TestSuiteBeforeFirstTestMethodFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestSuiteBeforeFirstTestMethodFailedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestSuiteFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestSuiteFinishedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestSuiteSkippedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestSuiteSkippedSubscriber.php', 'PHPUnit\\Logging\\TeamCity\\TestSuiteStartedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestSuiteStartedSubscriber.php', @@ -6370,24 +6508,24 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Logging\\TestDox\\TestTriggeredWarningSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TestDox/TestResult/Subscriber/TestTriggeredWarningSubscriber.php', 'PHPUnit\\Metadata\\After' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/After.php', 'PHPUnit\\Metadata\\AfterClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/AfterClass.php', - 'PHPUnit\\Metadata\\Annotation\\Parser\\DocBlock' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Parser/Annotation/DocBlock.php', - 'PHPUnit\\Metadata\\Annotation\\Parser\\Registry' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Parser/Annotation/Registry.php', - 'PHPUnit\\Metadata\\AnnotationsAreNotSupportedForInternalClassesException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Exception/AnnotationsAreNotSupportedForInternalClassesException.php', + 'PHPUnit\\Metadata\\AllowMockObjectsWithoutExpectations' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/AllowMockObjectsWithoutExpectations.php', 'PHPUnit\\Metadata\\Api\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Api/CodeCoverage.php', 'PHPUnit\\Metadata\\Api\\DataProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Api/DataProvider.php', 'PHPUnit\\Metadata\\Api\\Dependencies' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Api/Dependencies.php', 'PHPUnit\\Metadata\\Api\\Groups' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Api/Groups.php', 'PHPUnit\\Metadata\\Api\\HookMethods' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Api/HookMethods.php', + 'PHPUnit\\Metadata\\Api\\ProvidedData' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Api/ProvidedData.php', 'PHPUnit\\Metadata\\Api\\Requirements' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Api/Requirements.php', 'PHPUnit\\Metadata\\BackupGlobals' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/BackupGlobals.php', 'PHPUnit\\Metadata\\BackupStaticProperties' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/BackupStaticProperties.php', 'PHPUnit\\Metadata\\Before' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Before.php', 'PHPUnit\\Metadata\\BeforeClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/BeforeClass.php', - 'PHPUnit\\Metadata\\Covers' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Covers.php', 'PHPUnit\\Metadata\\CoversClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversClass.php', - 'PHPUnit\\Metadata\\CoversDefaultClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversDefaultClass.php', + 'PHPUnit\\Metadata\\CoversClassesThatExtendClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversClassesThatExtendClass.php', + 'PHPUnit\\Metadata\\CoversClassesThatImplementInterface' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversClassesThatImplementInterface.php', 'PHPUnit\\Metadata\\CoversFunction' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversFunction.php', 'PHPUnit\\Metadata\\CoversMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversMethod.php', + 'PHPUnit\\Metadata\\CoversNamespace' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversNamespace.php', 'PHPUnit\\Metadata\\CoversNothing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversNothing.php', 'PHPUnit\\Metadata\\CoversTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversTrait.php', 'PHPUnit\\Metadata\\DataProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/DataProvider.php', @@ -6401,22 +6539,21 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Metadata\\Group' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Group.php', 'PHPUnit\\Metadata\\IgnoreDeprecations' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/IgnoreDeprecations.php', 'PHPUnit\\Metadata\\IgnorePhpunitDeprecations' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/IgnorePhpunitDeprecations.php', + 'PHPUnit\\Metadata\\IgnorePhpunitWarnings' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/IgnorePhpunitWarnings.php', 'PHPUnit\\Metadata\\InvalidAttributeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Exception/InvalidAttributeException.php', 'PHPUnit\\Metadata\\InvalidVersionRequirementException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Exception/InvalidVersionRequirementException.php', 'PHPUnit\\Metadata\\Metadata' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Metadata.php', 'PHPUnit\\Metadata\\MetadataCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/MetadataCollection.php', 'PHPUnit\\Metadata\\MetadataCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/MetadataCollectionIterator.php', 'PHPUnit\\Metadata\\NoVersionRequirementException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Exception/NoVersionRequirementException.php', - 'PHPUnit\\Metadata\\Parser\\AnnotationParser' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Parser/AnnotationParser.php', 'PHPUnit\\Metadata\\Parser\\AttributeParser' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Parser/AttributeParser.php', 'PHPUnit\\Metadata\\Parser\\CachingParser' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Parser/CachingParser.php', 'PHPUnit\\Metadata\\Parser\\Parser' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Parser/Parser.php', - 'PHPUnit\\Metadata\\Parser\\ParserChain' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Parser/ParserChain.php', 'PHPUnit\\Metadata\\Parser\\Registry' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Parser/Registry.php', 'PHPUnit\\Metadata\\PostCondition' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/PostCondition.php', 'PHPUnit\\Metadata\\PreCondition' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/PreCondition.php', 'PHPUnit\\Metadata\\PreserveGlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/PreserveGlobalState.php', - 'PHPUnit\\Metadata\\ReflectionException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Exception/ReflectionException.php', + 'PHPUnit\\Metadata\\RequiresEnvironmentVariable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/RequiresEnvironmentVariable.php', 'PHPUnit\\Metadata\\RequiresFunction' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/RequiresFunction.php', 'PHPUnit\\Metadata\\RequiresMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/RequiresMethod.php', 'PHPUnit\\Metadata\\RequiresOperatingSystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/RequiresOperatingSystem.php', @@ -6431,17 +6568,21 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Metadata\\RunTestsInSeparateProcesses' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/RunTestsInSeparateProcesses.php', 'PHPUnit\\Metadata\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Test.php', 'PHPUnit\\Metadata\\TestDox' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/TestDox.php', + 'PHPUnit\\Metadata\\TestDoxFormatter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/TestDoxFormatter.php', 'PHPUnit\\Metadata\\TestWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/TestWith.php', - 'PHPUnit\\Metadata\\Uses' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Uses.php', 'PHPUnit\\Metadata\\UsesClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesClass.php', - 'PHPUnit\\Metadata\\UsesDefaultClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesDefaultClass.php', + 'PHPUnit\\Metadata\\UsesClassesThatExtendClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesClassesThatExtendClass.php', + 'PHPUnit\\Metadata\\UsesClassesThatImplementInterface' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesClassesThatImplementInterface.php', 'PHPUnit\\Metadata\\UsesFunction' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesFunction.php', 'PHPUnit\\Metadata\\UsesMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesMethod.php', + 'PHPUnit\\Metadata\\UsesNamespace' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesNamespace.php', 'PHPUnit\\Metadata\\UsesTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesTrait.php', 'PHPUnit\\Metadata\\Version\\ComparisonRequirement' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Version/ComparisonRequirement.php', 'PHPUnit\\Metadata\\Version\\ConstraintRequirement' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Version/ConstraintRequirement.php', 'PHPUnit\\Metadata\\Version\\Requirement' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Version/Requirement.php', + 'PHPUnit\\Metadata\\WithEnvironmentVariable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/WithEnvironmentVariable.php', 'PHPUnit\\Metadata\\WithoutErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/WithoutErrorHandler.php', + 'PHPUnit\\Runner\\BackedUpEnvironmentVariable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/BackedUpEnvironmentVariable.php', 'PHPUnit\\Runner\\Baseline\\Baseline' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Baseline/Baseline.php', 'PHPUnit\\Runner\\Baseline\\CannotLoadBaselineException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Baseline/Exception/CannotLoadBaselineException.php', 'PHPUnit\\Runner\\Baseline\\CannotWriteBaselineException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Baseline/Exception/CannotWriteBaselineException.php', @@ -6463,6 +6604,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Runner\\ClassIsAbstractException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception/ClassIsAbstractException.php', 'PHPUnit\\Runner\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/CodeCoverage.php', 'PHPUnit\\Runner\\CodeCoverageFileExistsException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception/CodeCoverageFileExistsException.php', + 'PHPUnit\\Runner\\CodeCoverageInitializationStatus' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/CodeCoverageInitializationStatus.php', 'PHPUnit\\Runner\\DeprecationCollector\\Collector' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/DeprecationCollector/Collector.php', 'PHPUnit\\Runner\\DeprecationCollector\\Facade' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/DeprecationCollector/Facade.php', 'PHPUnit\\Runner\\DeprecationCollector\\InIsolationCollector' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/DeprecationCollector/InIsolationCollector.php', @@ -6495,10 +6637,13 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Runner\\HookMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/HookMethod/HookMethod.php', 'PHPUnit\\Runner\\HookMethodCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/HookMethod/HookMethodCollection.php', 'PHPUnit\\Runner\\InvalidOrderException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception/InvalidOrderException.php', - 'PHPUnit\\Runner\\InvalidPhptFileException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception/InvalidPhptFileException.php', 'PHPUnit\\Runner\\ParameterDoesNotExistException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception/ParameterDoesNotExistException.php', - 'PHPUnit\\Runner\\PhptExternalFileCannotBeLoadedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception/PhptExternalFileCannotBeLoadedException.php', - 'PHPUnit\\Runner\\PhptTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/PHPT/PhptTestCase.php', + 'PHPUnit\\Runner\\Phpt\\InvalidPhptFileException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Phpt/Exception/InvalidPhptFileException.php', + 'PHPUnit\\Runner\\Phpt\\Parser' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Phpt/Parser.php', + 'PHPUnit\\Runner\\Phpt\\PhptExternalFileCannotBeLoadedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Phpt/Exception/PhptExternalFileCannotBeLoadedException.php', + 'PHPUnit\\Runner\\Phpt\\Renderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Phpt/Renderer.php', + 'PHPUnit\\Runner\\Phpt\\TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Phpt/TestCase.php', + 'PHPUnit\\Runner\\Phpt\\UnsupportedPhptSectionException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Phpt/Exception/UnsupportedPhptSectionException.php', 'PHPUnit\\Runner\\ResultCache\\DefaultResultCache' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/ResultCache/DefaultResultCache.php', 'PHPUnit\\Runner\\ResultCache\\NullResultCache' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/ResultCache/NullResultCache.php', 'PHPUnit\\Runner\\ResultCache\\ResultCache' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/ResultCache/ResultCache.php', @@ -6514,13 +6659,16 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Runner\\ResultCache\\TestSkippedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/ResultCache/Subscriber/TestSkippedSubscriber.php', 'PHPUnit\\Runner\\ResultCache\\TestSuiteFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/ResultCache/Subscriber/TestSuiteFinishedSubscriber.php', 'PHPUnit\\Runner\\ResultCache\\TestSuiteStartedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/ResultCache/Subscriber/TestSuiteStartedSubscriber.php', + 'PHPUnit\\Runner\\ShutdownHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/ShutdownHandler.php', 'PHPUnit\\Runner\\TestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php', 'PHPUnit\\Runner\\TestSuiteSorter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php', - 'PHPUnit\\Runner\\UnsupportedPhptSectionException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception/UnsupportedPhptSectionException.php', 'PHPUnit\\Runner\\Version' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Version.php', 'PHPUnit\\TestRunner\\IssueFilter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/IssueFilter.php', 'PHPUnit\\TestRunner\\TestResult\\AfterTestClassMethodErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/AfterTestClassMethodErroredSubscriber.php', + 'PHPUnit\\TestRunner\\TestResult\\AfterTestClassMethodFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/AfterTestClassMethodFailedSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\BeforeTestClassMethodErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/BeforeTestClassMethodErroredSubscriber.php', + 'PHPUnit\\TestRunner\\TestResult\\BeforeTestClassMethodFailedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/BeforeTestClassMethodFailedSubscriber.php', + 'PHPUnit\\TestRunner\\TestResult\\ChildProcessErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/ChildProcessErroredSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\Collector' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Collector.php', 'PHPUnit\\TestRunner\\TestResult\\ExecutionStartedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/ExecutionStartedSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\Facade' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Facade.php', @@ -6535,6 +6683,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\TestRunner\\TestResult\\TestPreparedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestPreparedSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/TestResult.php', 'PHPUnit\\TestRunner\\TestResult\\TestRunnerTriggeredDeprecationSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestRunnerTriggeredDeprecationSubscriber.php', + 'PHPUnit\\TestRunner\\TestResult\\TestRunnerTriggeredNoticeSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestRunnerTriggeredNoticeSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestRunnerTriggeredWarningSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestRunnerTriggeredWarningSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestSkippedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestSkippedSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestSuiteFinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestSuiteFinishedSubscriber.php', @@ -6548,6 +6697,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\TestRunner\\TestResult\\TestTriggeredPhpWarningSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredPhpWarningSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestTriggeredPhpunitDeprecationSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredPhpunitDeprecationSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestTriggeredPhpunitErrorSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredPhpunitErrorSubscriber.php', + 'PHPUnit\\TestRunner\\TestResult\\TestTriggeredPhpunitNoticeSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredPhpunitNoticeSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestTriggeredPhpunitWarningSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredPhpunitWarningSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestTriggeredWarningSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredWarningSubscriber.php', 'PHPUnit\\TextUI\\Application' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Application.php', @@ -6571,6 +6721,9 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\TextUI\\Command\\ShowVersionCommand' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command/Commands/ShowVersionCommand.php', 'PHPUnit\\TextUI\\Command\\VersionCheckCommand' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command/Commands/VersionCheckCommand.php', 'PHPUnit\\TextUI\\Command\\WarmCodeCoverageCacheCommand' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command/Commands/WarmCodeCoverageCacheCommand.php', + 'PHPUnit\\TextUI\\Configuration\\BootstrapLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/BootstrapLoader.php', + 'PHPUnit\\TextUI\\Configuration\\BootstrapScriptDoesNotExistException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Exception/BootstrapScriptDoesNotExistException.php', + 'PHPUnit\\TextUI\\Configuration\\BootstrapScriptException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Exception/BootstrapScriptException.php', 'PHPUnit\\TextUI\\Configuration\\Builder' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Builder.php', 'PHPUnit\\TextUI\\Configuration\\CodeCoverageFilterRegistry' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/CodeCoverageFilterRegistry.php', 'PHPUnit\\TextUI\\Configuration\\CodeCoverageReportNotConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Exception/CodeCoverageReportNotConfiguredException.php', @@ -6634,6 +6787,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\TextUI\\InvalidSocketException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Exception/InvalidSocketException.php', 'PHPUnit\\TextUI\\Output\\DefaultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Output/Printer/DefaultPrinter.php', 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\BeforeTestClassMethodErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/BeforeTestClassMethodErroredSubscriber.php', + 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\ChildProcessErroredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/ChildProcessErroredSubscriber.php', 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\ProgressPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/ProgressPrinter.php', 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\Subscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/Subscriber.php', 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\TestConsideredRiskySubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestConsideredRiskySubscriber.php', @@ -6652,6 +6806,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\TestTriggeredPhpNoticeSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpNoticeSubscriber.php', 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\TestTriggeredPhpWarningSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpWarningSubscriber.php', 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\TestTriggeredPhpunitDeprecationSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpunitDeprecationSubscriber.php', + 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\TestTriggeredPhpunitNoticeSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpunitNoticeSubscriber.php', 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\TestTriggeredPhpunitWarningSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpunitWarningSubscriber.php', 'PHPUnit\\TextUI\\Output\\Default\\ProgressPrinter\\TestTriggeredWarningSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredWarningSubscriber.php', 'PHPUnit\\TextUI\\Output\\Default\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Output/Default/ResultPrinter.php', @@ -6673,6 +6828,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Cobertura' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/Cobertura.php', 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Crap4j' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/Crap4j.php', 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Html' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/Html.php', + 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\OpenClover' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/OpenClover.php', 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Php' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/Php.php', 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Text' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/Text.php', 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Xml' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/Xml.php', @@ -6696,6 +6852,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\TextUI\\XmlConfiguration\\LogToReportMigration' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrations/LogToReportMigration.php', 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Junit' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/Junit.php', 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Logging' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/Logging.php', + 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Otr' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/Otr.php', 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TeamCity' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/TeamCity.php', 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TestDox\\Html' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/TestDox/Html.php', 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TestDox\\Text' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/TestDox/Text.php', @@ -6739,7 +6896,6 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\TextUI\\XmlConfiguration\\UpdateSchemaLocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrations/UpdateSchemaLocation.php', 'PHPUnit\\TextUI\\XmlConfiguration\\ValidationResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Validator/ValidationResult.php', 'PHPUnit\\TextUI\\XmlConfiguration\\Validator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Validator/Validator.php', - 'PHPUnit\\Util\\Cloner' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Cloner.php', 'PHPUnit\\Util\\Color' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Color.php', 'PHPUnit\\Util\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Exception/Exception.php', 'PHPUnit\\Util\\ExcludeList' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ExcludeList.php', @@ -6747,6 +6903,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Util\\Filesystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filesystem.php', 'PHPUnit\\Util\\Filter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filter.php', 'PHPUnit\\Util\\GlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/GlobalState.php', + 'PHPUnit\\Util\\GlobalStateResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/GlobalStateResult.php', 'PHPUnit\\Util\\Http\\Downloader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Http/Downloader.php', 'PHPUnit\\Util\\Http\\PhpDownloader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Http/PhpDownloader.php', 'PHPUnit\\Util\\InvalidDirectoryException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Exception/InvalidDirectoryException.php', @@ -6759,6 +6916,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'PHPUnit\\Util\\PHP\\PhpProcessException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Exception/PhpProcessException.php', 'PHPUnit\\Util\\PHP\\Result' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/Result.php', 'PHPUnit\\Util\\Reflection' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Reflection.php', + 'PHPUnit\\Util\\Sanitizer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Sanitizer.php', 'PHPUnit\\Util\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Test.php', 'PHPUnit\\Util\\ThrowableToStringMapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ThrowableToStringMapper.php', 'PHPUnit\\Util\\VersionComparisonOperator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/VersionComparisonOperator.php', @@ -7679,7 +7837,6 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Ramsey\\Uuid\\Validator\\ValidatorInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Validator/ValidatorInterface.php', 'ReflectionConstant' => __DIR__ . '/..' . '/symfony/polyfill-php84/Resources/stubs/ReflectionConstant.php', 'RoundingMode' => __DIR__ . '/..' . '/symfony/polyfill-php84/Resources/stubs/RoundingMode.php', - 'SQLite3Exception' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/SQLite3Exception.php', 'SebastianBergmann\\CliParser\\AmbiguousOptionException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/AmbiguousOptionException.php', 'SebastianBergmann\\CliParser\\Exception' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/Exception.php', 'SebastianBergmann\\CliParser\\OptionDoesNotAllowArgumentException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/OptionDoesNotAllowArgumentException.php', @@ -7688,18 +7845,23 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'SebastianBergmann\\CliParser\\UnknownOptionException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/UnknownOptionException.php', 'SebastianBergmann\\CodeCoverage\\BranchAndPathCoverageNotSupportedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/BranchAndPathCoverageNotSupportedException.php', 'SebastianBergmann\\CodeCoverage\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage.php', + 'SebastianBergmann\\CodeCoverage\\Data\\ProcessedBranchCoverageData' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Data/ProcessedBranchCoverageData.php', + 'SebastianBergmann\\CodeCoverage\\Data\\ProcessedClassType' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Data/ProcessedClassType.php', 'SebastianBergmann\\CodeCoverage\\Data\\ProcessedCodeCoverageData' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Data/ProcessedCodeCoverageData.php', + 'SebastianBergmann\\CodeCoverage\\Data\\ProcessedFunctionCoverageData' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Data/ProcessedFunctionCoverageData.php', + 'SebastianBergmann\\CodeCoverage\\Data\\ProcessedFunctionType' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Data/ProcessedFunctionType.php', + 'SebastianBergmann\\CodeCoverage\\Data\\ProcessedMethodType' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Data/ProcessedMethodType.php', + 'SebastianBergmann\\CodeCoverage\\Data\\ProcessedPathCoverageData' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Data/ProcessedPathCoverageData.php', + 'SebastianBergmann\\CodeCoverage\\Data\\ProcessedTraitType' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Data/ProcessedTraitType.php', 'SebastianBergmann\\CodeCoverage\\Data\\RawCodeCoverageData' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Data/RawCodeCoverageData.php', - 'SebastianBergmann\\CodeCoverage\\DeadCodeDetectionNotSupportedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php', 'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Driver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PathExistsButIsNotDirectoryException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/PathExistsButIsNotDirectoryException.php', 'SebastianBergmann\\CodeCoverage\\Driver\\PcovDriver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PcovDriver.php', 'SebastianBergmann\\CodeCoverage\\Driver\\PcovNotAvailableException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/PcovNotAvailableException.php', 'SebastianBergmann\\CodeCoverage\\Driver\\Selector' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Selector.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\WriteOperationFailedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/WriteOperationFailedException.php', 'SebastianBergmann\\CodeCoverage\\Driver\\XdebugDriver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/XdebugDriver.php', 'SebastianBergmann\\CodeCoverage\\Driver\\XdebugNotAvailableException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/XdebugNotAvailableException.php', 'SebastianBergmann\\CodeCoverage\\Driver\\XdebugNotEnabledException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/XdebugNotEnabledException.php', + 'SebastianBergmann\\CodeCoverage\\Driver\\XdebugVersionNotSupportedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/XdebugVersionNotSupportedException.php', 'SebastianBergmann\\CodeCoverage\\Exception' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Exception.php', 'SebastianBergmann\\CodeCoverage\\FileCouldNotBeWrittenException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/FileCouldNotBeWrittenException.php', 'SebastianBergmann\\CodeCoverage\\Filter' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Filter.php', @@ -7713,6 +7875,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'SebastianBergmann\\CodeCoverage\\Node\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/File.php', 'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Iterator.php', 'SebastianBergmann\\CodeCoverage\\ParserException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/ParserException.php', + 'SebastianBergmann\\CodeCoverage\\PathExistsButIsNotDirectoryException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/PathExistsButIsNotDirectoryException.php', 'SebastianBergmann\\CodeCoverage\\ReflectionException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/ReflectionException.php', 'SebastianBergmann\\CodeCoverage\\ReportAlreadyFinalizedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/ReportAlreadyFinalizedException.php', 'SebastianBergmann\\CodeCoverage\\Report\\Clover' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Clover.php', @@ -7725,6 +7888,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Facade.php', 'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php', 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php', + 'SebastianBergmann\\CodeCoverage\\Report\\OpenClover' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/OpenClover.php', 'SebastianBergmann\\CodeCoverage\\Report\\PHP' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/PHP.php', 'SebastianBergmann\\CodeCoverage\\Report\\Text' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Text.php', 'SebastianBergmann\\CodeCoverage\\Report\\Thresholds' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Thresholds.php', @@ -7742,14 +7906,41 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php', 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php', 'SebastianBergmann\\CodeCoverage\\StaticAnalysisCacheNotConfiguredException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/StaticAnalysisCacheNotConfiguredException.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\AnalysisResult' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/AnalysisResult.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\AttributeParentConnectingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/AttributeParentConnectingVisitor.php', 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CacheWarmer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CodeUnitFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CodeUnitFindingVisitor.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ExecutableLinesFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingSourceAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingSourceAnalyser.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Class_' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Class_.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CodeUnitFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/CodeUnitFindingVisitor.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ExecutableLinesFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/ExecutableLinesFindingVisitor.php', 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\FileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/FileAnalyser.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\IgnoredLinesFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/IgnoredLinesFindingVisitor.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingFileAnalyser.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Function_' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Function_.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\IgnoredLinesFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/IgnoredLinesFindingVisitor.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Interface_' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Interface_.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\LinesOfCode' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/LinesOfCode.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Method.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingSourceAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingSourceAnalyser.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\SourceAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/SourceAnalyser.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Trait_' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Trait_.php', + 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Visibility' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Visibility.php', 'SebastianBergmann\\CodeCoverage\\TestIdMissingException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/TestIdMissingException.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\Class_' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/Class_.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\ClassesThatExtendClass' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/ClassesThatExtendClass.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\ClassesThatImplementInterface' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/ClassesThatImplementInterface.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\Function_' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/Function_.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\InvalidCodeCoverageTargetException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/InvalidCodeCoverageTargetException.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\MapBuilder' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/MapBuilder.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\Mapper' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/Mapper.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/Method.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\Namespace_' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/Namespace_.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\Target' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/Target.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\TargetCollection' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/TargetCollection.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\TargetCollectionIterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/TargetCollectionIterator.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\TargetCollectionValidator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/TargetCollectionValidator.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\Trait_' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/Trait_.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\ValidationFailure' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/ValidationFailure.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\ValidationResult' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/ValidationResult.php', + 'SebastianBergmann\\CodeCoverage\\Test\\Target\\ValidationSuccess' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/ValidationSuccess.php', 'SebastianBergmann\\CodeCoverage\\Test\\TestSize\\Known' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/TestSize/Known.php', 'SebastianBergmann\\CodeCoverage\\Test\\TestSize\\Large' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/TestSize/Large.php', 'SebastianBergmann\\CodeCoverage\\Test\\TestSize\\Medium' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/TestSize/Medium.php', @@ -7767,25 +7958,10 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'SebastianBergmann\\CodeCoverage\\Util\\Percentage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Util/Percentage.php', 'SebastianBergmann\\CodeCoverage\\Util\\Xml' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Util/Xml.php', 'SebastianBergmann\\CodeCoverage\\Version' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Version.php', + 'SebastianBergmann\\CodeCoverage\\WriteOperationFailedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/WriteOperationFailedException.php', 'SebastianBergmann\\CodeCoverage\\XmlException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/XmlException.php', - 'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => __DIR__ . '/..' . '/sebastian/code-unit-reverse-lookup/src/Wizard.php', - 'SebastianBergmann\\CodeUnit\\ClassMethodUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/ClassMethodUnit.php', - 'SebastianBergmann\\CodeUnit\\ClassUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/ClassUnit.php', - 'SebastianBergmann\\CodeUnit\\CodeUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/CodeUnit.php', - 'SebastianBergmann\\CodeUnit\\CodeUnitCollection' => __DIR__ . '/..' . '/sebastian/code-unit/src/CodeUnitCollection.php', - 'SebastianBergmann\\CodeUnit\\CodeUnitCollectionIterator' => __DIR__ . '/..' . '/sebastian/code-unit/src/CodeUnitCollectionIterator.php', - 'SebastianBergmann\\CodeUnit\\Exception' => __DIR__ . '/..' . '/sebastian/code-unit/src/exceptions/Exception.php', - 'SebastianBergmann\\CodeUnit\\FileUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/FileUnit.php', - 'SebastianBergmann\\CodeUnit\\FunctionUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/FunctionUnit.php', - 'SebastianBergmann\\CodeUnit\\InterfaceMethodUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/InterfaceMethodUnit.php', - 'SebastianBergmann\\CodeUnit\\InterfaceUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/InterfaceUnit.php', - 'SebastianBergmann\\CodeUnit\\InvalidCodeUnitException' => __DIR__ . '/..' . '/sebastian/code-unit/src/exceptions/InvalidCodeUnitException.php', - 'SebastianBergmann\\CodeUnit\\Mapper' => __DIR__ . '/..' . '/sebastian/code-unit/src/Mapper.php', - 'SebastianBergmann\\CodeUnit\\NoTraitException' => __DIR__ . '/..' . '/sebastian/code-unit/src/exceptions/NoTraitException.php', - 'SebastianBergmann\\CodeUnit\\ReflectionException' => __DIR__ . '/..' . '/sebastian/code-unit/src/exceptions/ReflectionException.php', - 'SebastianBergmann\\CodeUnit\\TraitMethodUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/TraitMethodUnit.php', - 'SebastianBergmann\\CodeUnit\\TraitUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/TraitUnit.php', 'SebastianBergmann\\Comparator\\ArrayComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ArrayComparator.php', + 'SebastianBergmann\\Comparator\\ClosureComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ClosureComparator.php', 'SebastianBergmann\\Comparator\\Comparator' => __DIR__ . '/..' . '/sebastian/comparator/src/Comparator.php', 'SebastianBergmann\\Comparator\\ComparisonFailure' => __DIR__ . '/..' . '/sebastian/comparator/src/ComparisonFailure.php', 'SebastianBergmann\\Comparator\\DOMNodeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DOMNodeComparator.php', @@ -7849,7 +8025,6 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'SebastianBergmann\\LinesOfCode\\IllogicalValuesException' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/Exception/IllogicalValuesException.php', 'SebastianBergmann\\LinesOfCode\\LineCountingVisitor' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/LineCountingVisitor.php', 'SebastianBergmann\\LinesOfCode\\LinesOfCode' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/LinesOfCode.php', - 'SebastianBergmann\\LinesOfCode\\NegativeValueException' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/Exception/NegativeValueException.php', 'SebastianBergmann\\LinesOfCode\\RuntimeException' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/Exception/RuntimeException.php', 'SebastianBergmann\\ObjectEnumerator\\Enumerator' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Enumerator.php', 'SebastianBergmann\\ObjectReflector\\ObjectReflector' => __DIR__ . '/..' . '/sebastian/object-reflector/src/ObjectReflector.php', @@ -7886,6 +8061,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'SebastianBergmann\\Type\\UnknownType' => __DIR__ . '/..' . '/sebastian/type/src/type/UnknownType.php', 'SebastianBergmann\\Type\\VoidType' => __DIR__ . '/..' . '/sebastian/type/src/type/VoidType.php', 'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php', + 'SortDirection' => __DIR__ . '/..' . '/symfony/polyfill-php86/Resources/stubs/SortDirection.php', 'Spatie\\Backtrace\\Arguments\\ArgumentReducers' => __DIR__ . '/..' . '/spatie/backtrace/src/Arguments/ArgumentReducers.php', 'Spatie\\Backtrace\\Arguments\\ProvidedArgument' => __DIR__ . '/..' . '/spatie/backtrace/src/Arguments/ProvidedArgument.php', 'Spatie\\Backtrace\\Arguments\\ReduceArgumentPayloadAction' => __DIR__ . '/..' . '/spatie/backtrace/src/Arguments/ReduceArgumentPayloadAction.php', @@ -8249,14 +8425,34 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\Clock\\NativeClock' => __DIR__ . '/..' . '/symfony/clock/NativeClock.php', 'Symfony\\Component\\Clock\\Test\\ClockSensitiveTrait' => __DIR__ . '/..' . '/symfony/clock/Test/ClockSensitiveTrait.php', 'Symfony\\Component\\Console\\Application' => __DIR__ . '/..' . '/symfony/console/Application.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ArgumentResolver' => __DIR__ . '/..' . '/symfony/console/ArgumentResolver/ArgumentResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ArgumentResolverInterface' => __DIR__ . '/..' . '/symfony/console/ArgumentResolver/ArgumentResolverInterface.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\Exception\\NearMissValueResolverException' => __DIR__ . '/..' . '/symfony/console/ArgumentResolver/Exception/NearMissValueResolverException.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\Exception\\ResolverNotFoundException' => __DIR__ . '/..' . '/symfony/console/ArgumentResolver/Exception/ResolverNotFoundException.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\TraceableArgumentResolver' => __DIR__ . '/..' . '/symfony/console/ArgumentResolver/TraceableArgumentResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\BackedEnumValueResolver' => __DIR__ . '/..' . '/symfony/console/ArgumentResolver/ValueResolver/BackedEnumValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\BuiltinTypeValueResolver' => __DIR__ . '/..' . '/symfony/console/ArgumentResolver/ValueResolver/BuiltinTypeValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\DateTimeValueResolver' => __DIR__ . '/..' . '/symfony/console/ArgumentResolver/ValueResolver/DateTimeValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\DefaultValueResolver' => __DIR__ . '/..' . '/symfony/console/ArgumentResolver/ValueResolver/DefaultValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\InputFileValueResolver' => __DIR__ . '/..' . '/symfony/console/ArgumentResolver/ValueResolver/InputFileValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\MapInputValueResolver' => __DIR__ . '/..' . '/symfony/console/ArgumentResolver/ValueResolver/MapInputValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\ServiceValueResolver' => __DIR__ . '/..' . '/symfony/console/ArgumentResolver/ValueResolver/ServiceValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\TraceableValueResolver' => __DIR__ . '/..' . '/symfony/console/ArgumentResolver/ValueResolver/TraceableValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\UidValueResolver' => __DIR__ . '/..' . '/symfony/console/ArgumentResolver/ValueResolver/UidValueResolver.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\ValueResolverInterface' => __DIR__ . '/..' . '/symfony/console/ArgumentResolver/ValueResolver/ValueResolverInterface.php', + 'Symfony\\Component\\Console\\ArgumentResolver\\ValueResolver\\VariadicValueResolver' => __DIR__ . '/..' . '/symfony/console/ArgumentResolver/ValueResolver/VariadicValueResolver.php', 'Symfony\\Component\\Console\\Attribute\\Argument' => __DIR__ . '/..' . '/symfony/console/Attribute/Argument.php', 'Symfony\\Component\\Console\\Attribute\\AsCommand' => __DIR__ . '/..' . '/symfony/console/Attribute/AsCommand.php', + 'Symfony\\Component\\Console\\Attribute\\AsTargetedValueResolver' => __DIR__ . '/..' . '/symfony/console/Attribute/AsTargetedValueResolver.php', 'Symfony\\Component\\Console\\Attribute\\Ask' => __DIR__ . '/..' . '/symfony/console/Attribute/Ask.php', + 'Symfony\\Component\\Console\\Attribute\\AskChoice' => __DIR__ . '/..' . '/symfony/console/Attribute/AskChoice.php', 'Symfony\\Component\\Console\\Attribute\\Interact' => __DIR__ . '/..' . '/symfony/console/Attribute/Interact.php', 'Symfony\\Component\\Console\\Attribute\\InteractiveAttributeInterface' => __DIR__ . '/..' . '/symfony/console/Attribute/InteractiveAttributeInterface.php', + 'Symfony\\Component\\Console\\Attribute\\MapDateTime' => __DIR__ . '/..' . '/symfony/console/Attribute/MapDateTime.php', 'Symfony\\Component\\Console\\Attribute\\MapInput' => __DIR__ . '/..' . '/symfony/console/Attribute/MapInput.php', 'Symfony\\Component\\Console\\Attribute\\Option' => __DIR__ . '/..' . '/symfony/console/Attribute/Option.php', 'Symfony\\Component\\Console\\Attribute\\Reflection\\ReflectionMember' => __DIR__ . '/..' . '/symfony/console/Attribute/Reflection/ReflectionMember.php', + 'Symfony\\Component\\Console\\Attribute\\ValueResolver' => __DIR__ . '/..' . '/symfony/console/Attribute/ValueResolver.php', 'Symfony\\Component\\Console\\CI\\GithubActionReporter' => __DIR__ . '/..' . '/symfony/console/CI/GithubActionReporter.php', 'Symfony\\Component\\Console\\Color' => __DIR__ . '/..' . '/symfony/console/Color.php', 'Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => __DIR__ . '/..' . '/symfony/console/CommandLoader/CommandLoaderInterface.php', @@ -8279,11 +8475,15 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/FishCompletionOutput.php', 'Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/ZshCompletionOutput.php', 'Symfony\\Component\\Console\\Completion\\Suggestion' => __DIR__ . '/..' . '/symfony/console/Completion/Suggestion.php', + 'Symfony\\Component\\Console\\ConsoleBundle' => __DIR__ . '/..' . '/symfony/console/ConsoleBundle.php', 'Symfony\\Component\\Console\\ConsoleEvents' => __DIR__ . '/..' . '/symfony/console/ConsoleEvents.php', 'Symfony\\Component\\Console\\Cursor' => __DIR__ . '/..' . '/symfony/console/Cursor.php', 'Symfony\\Component\\Console\\DataCollector\\CommandDataCollector' => __DIR__ . '/..' . '/symfony/console/DataCollector/CommandDataCollector.php', 'Symfony\\Component\\Console\\Debug\\CliRequest' => __DIR__ . '/..' . '/symfony/console/Debug/CliRequest.php', 'Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', + 'Symfony\\Component\\Console\\DependencyInjection\\ConsoleArgumentValueResolverPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/ConsoleArgumentValueResolverPass.php', + 'Symfony\\Component\\Console\\DependencyInjection\\RegisterCommandArgumentLocatorsPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/RegisterCommandArgumentLocatorsPass.php', + 'Symfony\\Component\\Console\\DependencyInjection\\RemoveEmptyCommandArgumentLocatorsPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/RemoveEmptyCommandArgumentLocatorsPass.php', 'Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => __DIR__ . '/..' . '/symfony/console/Descriptor/ApplicationDescription.php', 'Symfony\\Component\\Console\\Descriptor\\Descriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/Descriptor.php', 'Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => __DIR__ . '/..' . '/symfony/console/Descriptor/DescriptorInterface.php', @@ -8293,15 +8493,19 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/TextDescriptor.php', 'Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/XmlDescriptor.php', 'Symfony\\Component\\Console\\EventListener\\ErrorListener' => __DIR__ . '/..' . '/symfony/console/EventListener/ErrorListener.php', + 'Symfony\\Component\\Console\\EventListener\\ValidateQuestionInputListener' => __DIR__ . '/..' . '/symfony/console/EventListener/ValidateQuestionInputListener.php', 'Symfony\\Component\\Console\\Event\\ConsoleAlarmEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleAlarmEvent.php', 'Symfony\\Component\\Console\\Event\\ConsoleCommandEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleCommandEvent.php', 'Symfony\\Component\\Console\\Event\\ConsoleErrorEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleErrorEvent.php', 'Symfony\\Component\\Console\\Event\\ConsoleEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleEvent.php', 'Symfony\\Component\\Console\\Event\\ConsoleSignalEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleSignalEvent.php', 'Symfony\\Component\\Console\\Event\\ConsoleTerminateEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleTerminateEvent.php', + 'Symfony\\Component\\Console\\Event\\QuestionAnsweredEvent' => __DIR__ . '/..' . '/symfony/console/Event/QuestionAnsweredEvent.php', 'Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/CommandNotFoundException.php', 'Symfony\\Component\\Console\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/console/Exception/ExceptionInterface.php', + 'Symfony\\Component\\Console\\Exception\\InputValidationFailedException' => __DIR__ . '/..' . '/symfony/console/Exception/InputValidationFailedException.php', 'Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidArgumentException.php', + 'Symfony\\Component\\Console\\Exception\\InvalidFileException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidFileException.php', 'Symfony\\Component\\Console\\Exception\\InvalidOptionException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidOptionException.php', 'Symfony\\Component\\Console\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php', 'Symfony\\Component\\Console\\Exception\\MissingInputException' => __DIR__ . '/..' . '/symfony/console/Exception/MissingInputException.php', @@ -8319,6 +8523,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DebugFormatterHelper.php', 'Symfony\\Component\\Console\\Helper\\DescriptorHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DescriptorHelper.php', 'Symfony\\Component\\Console\\Helper\\Dumper' => __DIR__ . '/..' . '/symfony/console/Helper/Dumper.php', + 'Symfony\\Component\\Console\\Helper\\FileInputHelper' => __DIR__ . '/..' . '/symfony/console/Helper/FileInputHelper.php', 'Symfony\\Component\\Console\\Helper\\FormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/FormatterHelper.php', 'Symfony\\Component\\Console\\Helper\\Helper' => __DIR__ . '/..' . '/symfony/console/Helper/Helper.php', 'Symfony\\Component\\Console\\Helper\\HelperInterface' => __DIR__ . '/..' . '/symfony/console/Helper/HelperInterface.php', @@ -8342,12 +8547,14 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\Console\\Helper\\TreeStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TreeStyle.php', 'Symfony\\Component\\Console\\Input\\ArgvInput' => __DIR__ . '/..' . '/symfony/console/Input/ArgvInput.php', 'Symfony\\Component\\Console\\Input\\ArrayInput' => __DIR__ . '/..' . '/symfony/console/Input/ArrayInput.php', + 'Symfony\\Component\\Console\\Input\\File\\InputFile' => __DIR__ . '/..' . '/symfony/console/Input/File/InputFile.php', 'Symfony\\Component\\Console\\Input\\Input' => __DIR__ . '/..' . '/symfony/console/Input/Input.php', 'Symfony\\Component\\Console\\Input\\InputArgument' => __DIR__ . '/..' . '/symfony/console/Input/InputArgument.php', 'Symfony\\Component\\Console\\Input\\InputAwareInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputAwareInterface.php', 'Symfony\\Component\\Console\\Input\\InputDefinition' => __DIR__ . '/..' . '/symfony/console/Input/InputDefinition.php', 'Symfony\\Component\\Console\\Input\\InputInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputInterface.php', 'Symfony\\Component\\Console\\Input\\InputOption' => __DIR__ . '/..' . '/symfony/console/Input/InputOption.php', + 'Symfony\\Component\\Console\\Input\\RawInputInterface' => __DIR__ . '/..' . '/symfony/console/Input/RawInputInterface.php', 'Symfony\\Component\\Console\\Input\\StreamableInputInterface' => __DIR__ . '/..' . '/symfony/console/Input/StreamableInputInterface.php', 'Symfony\\Component\\Console\\Input\\StringInput' => __DIR__ . '/..' . '/symfony/console/Input/StringInput.php', 'Symfony\\Component\\Console\\Interaction\\Interaction' => __DIR__ . '/..' . '/symfony/console/Interaction/Interaction.php', @@ -8357,6 +8564,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\Console\\Messenger\\RunCommandMessageHandler' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandMessageHandler.php', 'Symfony\\Component\\Console\\Output\\AnsiColorMode' => __DIR__ . '/..' . '/symfony/console/Output/AnsiColorMode.php', 'Symfony\\Component\\Console\\Output\\BufferedOutput' => __DIR__ . '/..' . '/symfony/console/Output/BufferedOutput.php', + 'Symfony\\Component\\Console\\Output\\CombinedOutput' => __DIR__ . '/..' . '/symfony/console/Output/CombinedOutput.php', 'Symfony\\Component\\Console\\Output\\ConsoleOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutput.php', 'Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutputInterface.php', 'Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleSectionOutput.php', @@ -8364,9 +8572,11 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\Console\\Output\\Output' => __DIR__ . '/..' . '/symfony/console/Output/Output.php', 'Symfony\\Component\\Console\\Output\\OutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/OutputInterface.php', 'Symfony\\Component\\Console\\Output\\StreamOutput' => __DIR__ . '/..' . '/symfony/console/Output/StreamOutput.php', + 'Symfony\\Component\\Console\\Output\\TestOutput' => __DIR__ . '/..' . '/symfony/console/Output/TestOutput.php', 'Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => __DIR__ . '/..' . '/symfony/console/Output/TrimmedBufferOutput.php', 'Symfony\\Component\\Console\\Question\\ChoiceQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ChoiceQuestion.php', 'Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ConfirmationQuestion.php', + 'Symfony\\Component\\Console\\Question\\FileQuestion' => __DIR__ . '/..' . '/symfony/console/Question/FileQuestion.php', 'Symfony\\Component\\Console\\Question\\Question' => __DIR__ . '/..' . '/symfony/console/Question/Question.php', 'Symfony\\Component\\Console\\SignalRegistry\\SignalMap' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalMap.php', 'Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalRegistry.php', @@ -8375,10 +8585,17 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\Console\\Style\\StyleInterface' => __DIR__ . '/..' . '/symfony/console/Style/StyleInterface.php', 'Symfony\\Component\\Console\\Style\\SymfonyStyle' => __DIR__ . '/..' . '/symfony/console/Style/SymfonyStyle.php', 'Symfony\\Component\\Console\\Terminal' => __DIR__ . '/..' . '/symfony/console/Terminal.php', + 'Symfony\\Component\\Console\\Terminal\\Image\\ITerm2Protocol' => __DIR__ . '/..' . '/symfony/console/Terminal/Image/ITerm2Protocol.php', + 'Symfony\\Component\\Console\\Terminal\\Image\\ImageProtocolInterface' => __DIR__ . '/..' . '/symfony/console/Terminal/Image/ImageProtocolInterface.php', + 'Symfony\\Component\\Console\\Terminal\\Image\\KittyGraphicsProtocol' => __DIR__ . '/..' . '/symfony/console/Terminal/Image/KittyGraphicsProtocol.php', 'Symfony\\Component\\Console\\Tester\\ApplicationTester' => __DIR__ . '/..' . '/symfony/console/Tester/ApplicationTester.php', 'Symfony\\Component\\Console\\Tester\\CommandCompletionTester' => __DIR__ . '/..' . '/symfony/console/Tester/CommandCompletionTester.php', 'Symfony\\Component\\Console\\Tester\\CommandTester' => __DIR__ . '/..' . '/symfony/console/Tester/CommandTester.php', + 'Symfony\\Component\\Console\\Tester\\ConsoleAssertionsTrait' => __DIR__ . '/..' . '/symfony/console/Tester/ConsoleAssertionsTrait.php', + 'Symfony\\Component\\Console\\Tester\\Constraint\\CommandFailed' => __DIR__ . '/..' . '/symfony/console/Tester/Constraint/CommandFailed.php', + 'Symfony\\Component\\Console\\Tester\\Constraint\\CommandIsInvalid' => __DIR__ . '/..' . '/symfony/console/Tester/Constraint/CommandIsInvalid.php', 'Symfony\\Component\\Console\\Tester\\Constraint\\CommandIsSuccessful' => __DIR__ . '/..' . '/symfony/console/Tester/Constraint/CommandIsSuccessful.php', + 'Symfony\\Component\\Console\\Tester\\ExecutionResult' => __DIR__ . '/..' . '/symfony/console/Tester/ExecutionResult.php', 'Symfony\\Component\\Console\\Tester\\TesterTrait' => __DIR__ . '/..' . '/symfony/console/Tester/TesterTrait.php', 'Symfony\\Component\\CssSelector\\CssSelectorConverter' => __DIR__ . '/..' . '/symfony/css-selector/CssSelectorConverter.php', 'Symfony\\Component\\CssSelector\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/css-selector/Exception/ExceptionInterface.php', @@ -8448,6 +8665,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\ErrorHandler\\ErrorRenderer\\SerializerErrorRenderer' => __DIR__ . '/..' . '/symfony/error-handler/ErrorRenderer/SerializerErrorRenderer.php', 'Symfony\\Component\\ErrorHandler\\Error\\ClassNotFoundError' => __DIR__ . '/..' . '/symfony/error-handler/Error/ClassNotFoundError.php', 'Symfony\\Component\\ErrorHandler\\Error\\FatalError' => __DIR__ . '/..' . '/symfony/error-handler/Error/FatalError.php', + 'Symfony\\Component\\ErrorHandler\\Error\\MaxExecutionTimeError' => __DIR__ . '/..' . '/symfony/error-handler/Error/MaxExecutionTimeError.php', 'Symfony\\Component\\ErrorHandler\\Error\\OutOfMemoryError' => __DIR__ . '/..' . '/symfony/error-handler/Error/OutOfMemoryError.php', 'Symfony\\Component\\ErrorHandler\\Error\\UndefinedFunctionError' => __DIR__ . '/..' . '/symfony/error-handler/Error/UndefinedFunctionError.php', 'Symfony\\Component\\ErrorHandler\\Error\\UndefinedMethodError' => __DIR__ . '/..' . '/symfony/error-handler/Error/UndefinedMethodError.php', @@ -8609,6 +8827,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseIsSuccessful' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseIsSuccessful.php', 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseIsUnprocessable' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseIsUnprocessable.php', 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseStatusCodeSame' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseStatusCodeSame.php', + 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\SessionHasFlashMessage' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/SessionHasFlashMessage.php', 'Symfony\\Component\\HttpFoundation\\UriSigner' => __DIR__ . '/..' . '/symfony/http-foundation/UriSigner.php', 'Symfony\\Component\\HttpFoundation\\UrlHelper' => __DIR__ . '/..' . '/symfony/http-foundation/UrlHelper.php', 'Symfony\\Component\\HttpKernel\\Attribute\\AsController' => __DIR__ . '/..' . '/symfony/http-kernel/Attribute/AsController.php', @@ -8618,14 +8837,17 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\HttpKernel\\Attribute\\MapDateTime' => __DIR__ . '/..' . '/symfony/http-kernel/Attribute/MapDateTime.php', 'Symfony\\Component\\HttpKernel\\Attribute\\MapQueryParameter' => __DIR__ . '/..' . '/symfony/http-kernel/Attribute/MapQueryParameter.php', 'Symfony\\Component\\HttpKernel\\Attribute\\MapQueryString' => __DIR__ . '/..' . '/symfony/http-kernel/Attribute/MapQueryString.php', + 'Symfony\\Component\\HttpKernel\\Attribute\\MapRequestHeader' => __DIR__ . '/..' . '/symfony/http-kernel/Attribute/MapRequestHeader.php', 'Symfony\\Component\\HttpKernel\\Attribute\\MapRequestPayload' => __DIR__ . '/..' . '/symfony/http-kernel/Attribute/MapRequestPayload.php', 'Symfony\\Component\\HttpKernel\\Attribute\\MapUploadedFile' => __DIR__ . '/..' . '/symfony/http-kernel/Attribute/MapUploadedFile.php', + 'Symfony\\Component\\HttpKernel\\Attribute\\RateLimit' => __DIR__ . '/..' . '/symfony/http-kernel/Attribute/RateLimit.php', + 'Symfony\\Component\\HttpKernel\\Attribute\\Serialize' => __DIR__ . '/..' . '/symfony/http-kernel/Attribute/Serialize.php', 'Symfony\\Component\\HttpKernel\\Attribute\\ValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Attribute/ValueResolver.php', 'Symfony\\Component\\HttpKernel\\Attribute\\WithHttpStatus' => __DIR__ . '/..' . '/symfony/http-kernel/Attribute/WithHttpStatus.php', 'Symfony\\Component\\HttpKernel\\Attribute\\WithLogLevel' => __DIR__ . '/..' . '/symfony/http-kernel/Attribute/WithLogLevel.php', 'Symfony\\Component\\HttpKernel\\Bundle\\AbstractBundle' => __DIR__ . '/..' . '/symfony/http-kernel/Bundle/AbstractBundle.php', 'Symfony\\Component\\HttpKernel\\Bundle\\Bundle' => __DIR__ . '/..' . '/symfony/http-kernel/Bundle/Bundle.php', - 'Symfony\\Component\\HttpKernel\\Bundle\\BundleExtension' => __DIR__ . '/..' . '/symfony/http-kernel/Bundle/BundleExtension.php', + 'Symfony\\Component\\HttpKernel\\Bundle\\BundleAdapter' => __DIR__ . '/..' . '/symfony/http-kernel/Bundle/BundleAdapter.php', 'Symfony\\Component\\HttpKernel\\Bundle\\BundleInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Bundle/BundleInterface.php', 'Symfony\\Component\\HttpKernel\\CacheClearer\\CacheClearerInterface' => __DIR__ . '/..' . '/symfony/http-kernel/CacheClearer/CacheClearerInterface.php', 'Symfony\\Component\\HttpKernel\\CacheClearer\\ChainCacheClearer' => __DIR__ . '/..' . '/symfony/http-kernel/CacheClearer/ChainCacheClearer.php', @@ -8646,6 +8868,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\NotTaggedControllerValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/NotTaggedControllerValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\QueryParameterValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/QueryParameterValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestAttributeValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php', + 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestHeaderValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/RequestHeaderValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestPayloadValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/RequestPayloadValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\ServiceValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php', @@ -8677,9 +8900,9 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\HttpKernel\\Debug\\ErrorHandlerConfigurator' => __DIR__ . '/..' . '/symfony/http-kernel/Debug/ErrorHandlerConfigurator.php', 'Symfony\\Component\\HttpKernel\\Debug\\TraceableEventDispatcher' => __DIR__ . '/..' . '/symfony/http-kernel/Debug/TraceableEventDispatcher.php', 'Symfony\\Component\\HttpKernel\\Debug\\VirtualRequestStack' => __DIR__ . '/..' . '/symfony/http-kernel/Debug/VirtualRequestStack.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\AddAnnotatedClassesToCachePass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/AddAnnotatedClassesToCachePass.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ConfigurableExtension' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ConfigurableExtension.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ControllerArgumentValueResolverPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ControllerArgumentValueResolverPass.php', + 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ControllerAttributesListenerPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ControllerAttributesListenerPass.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\Extension' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/Extension.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\FragmentRendererPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/FragmentRendererPass.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\LazyLoadingFragmentHandler' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php', @@ -8694,6 +8917,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\HttpKernel\\EventListener\\AbstractSessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/AbstractSessionListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\AddRequestFormatsListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/AddRequestFormatsListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/CacheAttributeListener.php', + 'Symfony\\Component\\HttpKernel\\EventListener\\ControllerAttributesListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ControllerAttributesListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/DebugHandlersListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\DisallowRobotsIndexingListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/DisallowRobotsIndexingListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\DumpListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/DumpListener.php', @@ -8703,13 +8927,18 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/LocaleAwareListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/LocaleListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\ProfilerListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ProfilerListener.php', + 'Symfony\\Component\\HttpKernel\\EventListener\\RateLimitAttributeListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/RateLimitAttributeListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\ResponseListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ResponseListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\RouterListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/RouterListener.php', + 'Symfony\\Component\\HttpKernel\\EventListener\\SerializeControllerResultAttributeListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/SerializeControllerResultAttributeListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\SessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/SessionListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\SurrogateListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/SurrogateListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ValidateRequestListener.php', 'Symfony\\Component\\HttpKernel\\Event\\ControllerArgumentsEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/ControllerArgumentsEvent.php', + 'Symfony\\Component\\HttpKernel\\Event\\ControllerArgumentsMetadata' => __DIR__ . '/..' . '/symfony/http-kernel/Event/ControllerArgumentsMetadata.php', + 'Symfony\\Component\\HttpKernel\\Event\\ControllerAttributeEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/ControllerAttributeEvent.php', 'Symfony\\Component\\HttpKernel\\Event\\ControllerEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/ControllerEvent.php', + 'Symfony\\Component\\HttpKernel\\Event\\ControllerMetadata' => __DIR__ . '/..' . '/symfony/http-kernel/Event/ControllerMetadata.php', 'Symfony\\Component\\HttpKernel\\Event\\ExceptionEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/ExceptionEvent.php', 'Symfony\\Component\\HttpKernel\\Event\\FinishRequestEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/FinishRequestEvent.php', 'Symfony\\Component\\HttpKernel\\Event\\KernelEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/KernelEvent.php', @@ -8815,7 +9044,6 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\Mailer\\Test\\Constraint\\EmailCount' => __DIR__ . '/..' . '/symfony/mailer/Test/Constraint/EmailCount.php', 'Symfony\\Component\\Mailer\\Test\\Constraint\\EmailIsQueued' => __DIR__ . '/..' . '/symfony/mailer/Test/Constraint/EmailIsQueued.php', 'Symfony\\Component\\Mailer\\Test\\IncompleteDsnTestTrait' => __DIR__ . '/..' . '/symfony/mailer/Test/IncompleteDsnTestTrait.php', - 'Symfony\\Component\\Mailer\\Test\\TransportFactoryTestCase' => __DIR__ . '/..' . '/symfony/mailer/Test/TransportFactoryTestCase.php', 'Symfony\\Component\\Mailer\\Transport' => __DIR__ . '/..' . '/symfony/mailer/Transport.php', 'Symfony\\Component\\Mailer\\Transport\\AbstractApiTransport' => __DIR__ . '/..' . '/symfony/mailer/Transport/AbstractApiTransport.php', 'Symfony\\Component\\Mailer\\Transport\\AbstractHttpTransport' => __DIR__ . '/..' . '/symfony/mailer/Transport/AbstractHttpTransport.php', @@ -8950,7 +9178,6 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\Process\\Process' => __DIR__ . '/..' . '/symfony/process/Process.php', 'Symfony\\Component\\Process\\ProcessUtils' => __DIR__ . '/..' . '/symfony/process/ProcessUtils.php', 'Symfony\\Component\\Routing\\Alias' => __DIR__ . '/..' . '/symfony/routing/Alias.php', - 'Symfony\\Component\\Routing\\Annotation\\Route' => __DIR__ . '/..' . '/symfony/routing/Annotation/Route.php', 'Symfony\\Component\\Routing\\Attribute\\DeprecatedAlias' => __DIR__ . '/..' . '/symfony/routing/Attribute/DeprecatedAlias.php', 'Symfony\\Component\\Routing\\Attribute\\Route' => __DIR__ . '/..' . '/symfony/routing/Attribute/Route.php', 'Symfony\\Component\\Routing\\CompiledRoute' => __DIR__ . '/..' . '/symfony/routing/CompiledRoute.php', @@ -8992,12 +9219,12 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\Routing\\Loader\\Configurator\\Traits\\PrefixTrait' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/Traits/PrefixTrait.php', 'Symfony\\Component\\Routing\\Loader\\Configurator\\Traits\\RouteTrait' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/Traits/RouteTrait.php', 'Symfony\\Component\\Routing\\Loader\\ContainerLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/ContainerLoader.php', + 'Symfony\\Component\\Routing\\Loader\\ContentLoaderTrait' => __DIR__ . '/..' . '/symfony/routing/Loader/ContentLoaderTrait.php', 'Symfony\\Component\\Routing\\Loader\\DirectoryLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/DirectoryLoader.php', 'Symfony\\Component\\Routing\\Loader\\GlobFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/GlobFileLoader.php', 'Symfony\\Component\\Routing\\Loader\\ObjectLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/ObjectLoader.php', 'Symfony\\Component\\Routing\\Loader\\PhpFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/PhpFileLoader.php', 'Symfony\\Component\\Routing\\Loader\\Psr4DirectoryLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/Psr4DirectoryLoader.php', - 'Symfony\\Component\\Routing\\Loader\\XmlFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/XmlFileLoader.php', 'Symfony\\Component\\Routing\\Loader\\YamlFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/YamlFileLoader.php', 'Symfony\\Component\\Routing\\Matcher\\CompiledUrlMatcher' => __DIR__ . '/..' . '/symfony/routing/Matcher/CompiledUrlMatcher.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\CompiledUrlMatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/CompiledUrlMatcherDumper.php', @@ -9158,6 +9385,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\Uid\\TimeBasedUidInterface' => __DIR__ . '/..' . '/symfony/uid/TimeBasedUidInterface.php', 'Symfony\\Component\\Uid\\Ulid' => __DIR__ . '/..' . '/symfony/uid/Ulid.php', 'Symfony\\Component\\Uid\\Uuid' => __DIR__ . '/..' . '/symfony/uid/Uuid.php', + 'Symfony\\Component\\Uid\\Uuid47Transformer' => __DIR__ . '/..' . '/symfony/uid/Uuid47Transformer.php', 'Symfony\\Component\\Uid\\UuidV1' => __DIR__ . '/..' . '/symfony/uid/UuidV1.php', 'Symfony\\Component\\Uid\\UuidV3' => __DIR__ . '/..' . '/symfony/uid/UuidV3.php', 'Symfony\\Component\\Uid\\UuidV4' => __DIR__ . '/..' . '/symfony/uid/UuidV4.php', @@ -9169,6 +9397,7 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Component\\VarDumper\\Caster\\AmqpCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/AmqpCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\ArgsStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ArgsStub.php', 'Symfony\\Component\\VarDumper\\Caster\\Caster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/Caster.php', + 'Symfony\\Component\\VarDumper\\Caster\\ClassDumpStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ClassDumpStub.php', 'Symfony\\Component\\VarDumper\\Caster\\ClassStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ClassStub.php', 'Symfony\\Component\\VarDumper\\Caster\\ConstStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ConstStub.php', 'Symfony\\Component\\VarDumper\\Caster\\CurlCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/CurlCaster.php', @@ -9301,9 +9530,9 @@ class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa 'Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php', 'Symfony\\Polyfill\\Php80\\Php80' => __DIR__ . '/..' . '/symfony/polyfill-php80/Php80.php', 'Symfony\\Polyfill\\Php80\\PhpToken' => __DIR__ . '/..' . '/symfony/polyfill-php80/PhpToken.php', - 'Symfony\\Polyfill\\Php83\\Php83' => __DIR__ . '/..' . '/symfony/polyfill-php83/Php83.php', 'Symfony\\Polyfill\\Php84\\Php84' => __DIR__ . '/..' . '/symfony/polyfill-php84/Php84.php', 'Symfony\\Polyfill\\Php85\\Php85' => __DIR__ . '/..' . '/symfony/polyfill-php85/Php85.php', + 'Symfony\\Polyfill\\Php86\\Php86' => __DIR__ . '/..' . '/symfony/polyfill-php86/Php86.php', 'Symfony\\Polyfill\\Uuid\\Uuid' => __DIR__ . '/..' . '/symfony/polyfill-uuid/Uuid.php', 'Symfony\\Thanks\\Command\\FundCommand' => __DIR__ . '/..' . '/symfony/thanks/src/Command/FundCommand.php', 'Symfony\\Thanks\\Command\\ThanksCommand' => __DIR__ . '/..' . '/symfony/thanks/src/Command/ThanksCommand.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 049103769..79e537e14 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -59,17 +59,17 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.388.0", - "version_normalized": "3.388.0.0", + "version": "3.388.1", + "version_normalized": "3.388.1.0", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "6dd9a0674641ef7d302a50cc8f275eb443182dc9" + "reference": "c04551617a8cb58d73a8009cb994ccc629590cdf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/6dd9a0674641ef7d302a50cc8f275eb443182dc9", - "reference": "6dd9a0674641ef7d302a50cc8f275eb443182dc9", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/c04551617a8cb58d73a8009cb994ccc629590cdf", + "reference": "c04551617a8cb58d73a8009cb994ccc629590cdf", "shasum": "" }, "require": { @@ -109,7 +109,7 @@ "ext-pcntl": "To use client-side monitoring", "ext-sockets": "To use client-side monitoring" }, - "time": "2026-07-07T18:11:48+00:00", + "time": "2026-07-08T18:13:21+00:00", "type": "library", "extra": { "branch-alias": { @@ -153,7 +153,7 @@ "support": { "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.388.0" + "source": "https://github.com/aws/aws-sdk-php/tree/3.388.1" }, "install-path": "../aws/aws-sdk-php" }, @@ -312,28 +312,27 @@ }, { "name": "brick/math", - "version": "0.14.8", - "version_normalized": "0.14.8.0", + "version": "0.18.0", + "version_normalized": "0.18.0.0", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "63422359a44b7f06cae63c3b429b59e8efcc0629" + "reference": "82944324d1c1bdb2c2618e89978d4e2ad78d69ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/63422359a44b7f06cae63c3b429b59e8efcc0629", - "reference": "63422359a44b7f06cae63c3b429b59e8efcc0629", + "url": "https://api.github.com/repos/brick/math/zipball/82944324d1c1bdb2c2618e89978d4e2ad78d69ad", + "reference": "82944324d1c1bdb2c2618e89978d4e2ad78d69ad", "shasum": "" }, "require": { "php": "^8.2" }, "require-dev": { - "php-coveralls/php-coveralls": "^2.2", "phpstan/phpstan": "2.1.22", "phpunit/phpunit": "^11.5" }, - "time": "2026-02-10T14:33:43+00:00", + "time": "2026-06-14T18:21:03+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -363,7 +362,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.14.8" + "source": "https://github.com/brick/math/tree/0.18.0" }, "funding": [ { @@ -2188,25 +2187,25 @@ }, { "name": "laravel/framework", - "version": "v12.63.0", - "version_normalized": "12.63.0.0", + "version": "v13.19.0", + "version_normalized": "13.19.0.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "7adfddbf4738f2e6cae5419b0e6bc46d4cccfbcf" + "reference": "514502b38e11bd676ecf83b271c9452cc7500f16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/7adfddbf4738f2e6cae5419b0e6bc46d4cccfbcf", - "reference": "7adfddbf4738f2e6cae5419b0e6bc46d4cccfbcf", + "url": "https://api.github.com/repos/laravel/framework/zipball/514502b38e11bd676ecf83b271c9452cc7500f16", + "reference": "514502b38e11bd676ecf83b271c9452cc7500f16", "shasum": "" }, "require": { - "brick/math": "^0.11|^0.12|^0.13|^0.14", + "brick/math": "^0.14.2 || ^0.15 || ^0.16 || ^0.17 || ^0.18", "composer-runtime-api": "^2.2", "doctrine/inflector": "^2.0.5", "dragonmantank/cron-expression": "^3.4", - "egulias/email-validator": "^3.2.1|^4.0", + "egulias/email-validator": "^4.0", "ext-ctype": "*", "ext-filter": "*", "ext-hash": "*", @@ -2216,9 +2215,10 @@ "ext-tokenizer": "*", "fruitcake/php-cors": "^1.3", "guzzlehttp/guzzle": "^7.8.2", + "guzzlehttp/promises": "^2.0.3", "guzzlehttp/uri-template": "^1.0", "laravel/prompts": "^0.3.0", - "laravel/serializable-closure": "^1.3|^2.0", + "laravel/serializable-closure": "^2.0.10", "league/commonmark": "^2.8.1", "league/flysystem": "^3.25.1", "league/flysystem-local": "^3.25.1", @@ -2226,25 +2226,25 @@ "monolog/monolog": "^3.0", "nesbot/carbon": "^3.8.4", "nunomaduro/termwind": "^2.0", - "php": "^8.2", - "psr/container": "^1.1.1|^2.0.1", - "psr/log": "^1.0|^2.0|^3.0", - "psr/simple-cache": "^1.0|^2.0|^3.0", + "php": "^8.3", + "psr/container": "^1.1.1 || ^2.0.1", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "psr/simple-cache": "^1.0 || ^2.0 || ^3.0", "ramsey/uuid": "^4.7", - "symfony/console": "^7.2.0", - "symfony/error-handler": "^7.2.0", - "symfony/finder": "^7.2.0", - "symfony/http-foundation": "^7.2.0", - "symfony/http-kernel": "^7.2.0", - "symfony/mailer": "^7.2.0", - "symfony/mime": "^7.2.0", - "symfony/polyfill-php83": "^1.33", - "symfony/polyfill-php84": "^1.34", - "symfony/polyfill-php85": "^1.34", - "symfony/process": "^7.2.0", - "symfony/routing": "^7.2.0", - "symfony/uid": "^7.2.0", - "symfony/var-dumper": "^7.2.0", + "symfony/console": "^7.4.0 || ^8.0.0", + "symfony/error-handler": "^7.4.0 || ^8.0.0", + "symfony/finder": "^7.4.0 || ^8.0.0", + "symfony/http-foundation": "^7.4.0 || ^8.0.0", + "symfony/http-kernel": "^7.4.0 || ^8.0.0", + "symfony/mailer": "^7.4.0 || ^8.0.0", + "symfony/mime": "^7.4.0 || ^8.0.0", + "symfony/polyfill-php84": "^1.36", + "symfony/polyfill-php85": "^1.36", + "symfony/polyfill-php86": "^1.36", + "symfony/process": "^7.4.5 || ^8.0.5", + "symfony/routing": "^7.4.0 || ^8.0.0", + "symfony/uid": "^7.4.0 || ^8.0.0", + "symfony/var-dumper": "^7.4.0 || ^8.0.0", "tijsverkoyen/css-to-inline-styles": "^2.2.5", "vlucas/phpdotenv": "^5.6.1", "voku/portable-ascii": "^2.0.2" @@ -2253,9 +2253,9 @@ "tightenco/collect": "<5.5.33" }, "provide": { - "psr/container-implementation": "1.1|2.0", - "psr/log-implementation": "1.0|2.0|3.0", - "psr/simple-cache-implementation": "1.0|2.0|3.0" + "psr/container-implementation": "1.1 || 2.0", + "psr/log-implementation": "1.0 || 2.0 || 3.0", + "psr/simple-cache-implementation": "1.0 || 2.0 || 3.0" }, "replace": { "illuminate/auth": "self.version", @@ -2301,8 +2301,7 @@ "aws/aws-sdk-php": "^3.322.9", "ext-gmp": "*", "fakerphp/faker": "^1.24", - "guzzlehttp/promises": "^2.0.3", - "guzzlehttp/psr7": "^2.4", + "guzzlehttp/psr7": "^2.9", "laravel/pint": "^1.18", "league/flysystem-aws-s3-v3": "^3.25.1", "league/flysystem-ftp": "^3.25.1", @@ -2311,22 +2310,23 @@ "league/flysystem-sftp-v3": "^3.25.1", "mockery/mockery": "^1.6.10", "opis/json-schema": "^2.4.1", - "orchestra/testbench-core": "^10.9.0", - "pda/pheanstalk": "^5.0.6|^7.0.0", + "orchestra/testbench-core": "^11.0.0", + "pda/pheanstalk": "^7.0.0 || ^8.0.0", "php-http/discovery": "^1.15", - "phpstan/phpstan": "^2.1.41", - "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1", - "predis/predis": "^2.3|^3.0", - "resend/resend-php": "^0.10.0|^1.0", - "symfony/cache": "^7.2.0", - "symfony/http-client": "^7.2.0", - "symfony/psr-http-message-bridge": "^7.2.0", - "symfony/translation": "^7.2.0" + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^11.5.50 || ^12.5.8 || ^13.0.3", + "predis/predis": "^2.3 || ^3.0", + "rector/rector": "^2.3", + "resend/resend-php": "^1.0", + "symfony/cache": "^7.4.0 || ^8.0.0", + "symfony/http-client": "^7.4.0 || ^8.0.0", + "symfony/psr-http-message-bridge": "^7.4.0 || ^8.0.0", + "symfony/translation": "^7.4.0 || ^8.0.0" }, "suggest": { "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.322.9).", - "brianium/paratest": "Required to run tests in parallel (^7.0|^8.0).", + "brianium/paratest": "Required to run tests in parallel (^7.0 || ^8.0).", "ext-apcu": "Required to use the APC cache driver.", "ext-fileinfo": "Required to use the Filesystem class.", "ext-ftp": "Required to use the Flysystem FTP driver.", @@ -2335,7 +2335,7 @@ "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.", "ext-pdo": "Required to use all database features.", "ext-posix": "Required to use all features of the queue worker.", - "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0|^6.0).", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0 || ^5.0 || ^6.0).", "fakerphp/faker": "Required to generate fake data using the fake() helper (^1.23).", "filp/whoops": "Required for friendly error pages in development (^2.14.3).", "laravel/tinker": "Required to use the tinker console command (^2.0).", @@ -2345,25 +2345,26 @@ "league/flysystem-read-only": "Required to use read-only disks (^3.25.1)", "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.25.1).", "mockery/mockery": "Required to use mocking (^1.6).", - "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (^7.0 || ^8.0).", "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).", - "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.5.3|^12.0.1).", - "predis/predis": "Required to use the predis connector (^2.3|^3.0).", + "phpunit/phpunit": "Required to use assertions and run tests (^11.5.50 || ^12.5.8 || ^13.0.3).", + "predis/predis": "Required to use the predis connector (^2.3 || ^3.0).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", - "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0|^1.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^7.2).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).", - "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).", - "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.2).", - "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.2).", - "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.2)." + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0 || ^7.0).", + "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0 || ^1.0).", + "spatie/fork": "Required to use the 'fork' concurrency driver (^1.2).", + "symfony/cache": "Required to PSR-6 cache bridge (^7.4 || ^8.0).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^7.4 || ^8.0).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.4 || ^8.0).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.4 || ^8.0).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.4 || ^8.0).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.4 || ^8.0)." }, - "time": "2026-07-07T14:16:35+00:00", + "time": "2026-07-07T14:13:33+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "12.x-dev" + "dev-master": "13.0.x-dev" } }, "installation-source": "dist", @@ -2539,42 +2540,45 @@ }, { "name": "laravel/tinker", - "version": "v2.11.1", - "version_normalized": "2.11.1.0", + "version": "v3.0.2", + "version_normalized": "3.0.2.0", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741" + "reference": "4faba77764bd33411735936acdf30446d058c78b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/c9f80cc835649b5c1842898fb043f8cc098dd741", - "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741", + "url": "https://api.github.com/repos/laravel/tinker/zipball/4faba77764bd33411735936acdf30446d058c78b", + "reference": "4faba77764bd33411735936acdf30446d058c78b", "shasum": "" }, "require": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", - "php": "^7.2.5|^8.0", - "psy/psysh": "^0.11.1|^0.12.0", - "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0|^8.0" + "illuminate/console": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "php": "^8.1", + "psy/psysh": "^0.12.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0|^8.0" }, "require-dev": { "mockery/mockery": "~1.3.3|^1.4.2", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^8.5.8|^9.3.3|^10.0" + "phpunit/phpunit": "^10.5|^11.5" }, "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0)." + "illuminate/database": "The Illuminate Database package (^8.0|^9.0|^10.0|^11.0|^12.0|^13.0)." }, - "time": "2026-02-06T14:12:35+00:00", + "time": "2026-03-17T14:54:13+00:00", "type": "library", "extra": { "laravel": { "providers": [ "Laravel\\Tinker\\TinkerServiceProvider" ] + }, + "branch-alias": { + "dev-master": "3.x-dev" } }, "installation-source": "dist", @@ -2602,7 +2606,7 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.11.1" + "source": "https://github.com/laravel/tinker/tree/v3.0.2" }, "install-path": "../laravel/tinker" }, @@ -4891,17 +4895,17 @@ }, { "name": "phpunit/php-code-coverage", - "version": "11.0.12", - "version_normalized": "11.0.12.0", + "version": "12.5.7", + "version_normalized": "12.5.7.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56" + "reference": "186dab580576598076de6818596d12b61801880e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2c1ed04922802c15e1de5d7447b4856de949cf56", - "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/186dab580576598076de6818596d12b61801880e", + "reference": "186dab580576598076de6818596d12b61801880e", "shasum": "" }, "require": { @@ -4909,28 +4913,26 @@ "ext-libxml": "*", "ext-xmlwriter": "*", "nikic/php-parser": "^5.7.0", - "php": ">=8.2", - "phpunit/php-file-iterator": "^5.1.0", - "phpunit/php-text-template": "^4.0.1", - "sebastian/code-unit-reverse-lookup": "^4.0.1", - "sebastian/complexity": "^4.0.1", - "sebastian/environment": "^7.2.1", - "sebastian/lines-of-code": "^3.0.1", - "sebastian/version": "^5.0.2", - "theseer/tokenizer": "^1.3.1" + "php": ">=8.3", + "phpunit/php-text-template": "^5.0", + "sebastian/complexity": "^5.0", + "sebastian/environment": "^8.1.2", + "sebastian/lines-of-code": "^4.0.1", + "sebastian/version": "^6.0", + "theseer/tokenizer": "^2.0.1" }, "require-dev": { - "phpunit/phpunit": "^11.5.46" + "phpunit/phpunit": "^12.5.28" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, - "time": "2025-12-24T07:01:01+00:00", + "time": "2026-06-01T13:24:19+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "11.0.x-dev" + "dev-main": "12.5.x-dev" } }, "installation-source": "dist", @@ -4960,7 +4962,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.12" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.7" }, "funding": [ { @@ -4984,30 +4986,30 @@ }, { "name": "phpunit/php-file-iterator", - "version": "5.1.1", - "version_normalized": "5.1.1.0", + "version": "6.0.1", + "version_normalized": "6.0.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903" + "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/2f3a64888c814fc235386b7387dd5b5ed92ad903", - "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5", + "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.0" }, - "time": "2026-02-02T13:52:54+00:00", + "time": "2026-02-02T14:04:18+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.0-dev" } }, "installation-source": "dist", @@ -5036,7 +5038,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.1" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.1" }, "funding": [ { @@ -5060,34 +5062,34 @@ }, { "name": "phpunit/php-invoker", - "version": "5.0.1", - "version_normalized": "5.0.1.0", + "version": "6.0.0", + "version_normalized": "6.0.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" + "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", - "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/12b54e689b07a25a9b41e57736dfab6ec9ae5406", + "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "suggest": { "ext-pcntl": "*" }, - "time": "2024-07-03T05:07:44+00:00", + "time": "2025-02-07T04:58:58+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "installation-source": "dist", @@ -5115,7 +5117,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" + "source": "https://github.com/sebastianbergmann/php-invoker/tree/6.0.0" }, "funding": [ { @@ -5127,30 +5129,30 @@ }, { "name": "phpunit/php-text-template", - "version": "4.0.1", - "version_normalized": "4.0.1.0", + "version": "5.0.0", + "version_normalized": "5.0.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" + "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", - "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53", + "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, - "time": "2024-07-03T05:08:43+00:00", + "time": "2025-02-07T04:59:16+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "installation-source": "dist", @@ -5178,7 +5180,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" + "source": "https://github.com/sebastianbergmann/php-text-template/tree/5.0.0" }, "funding": [ { @@ -5190,30 +5192,30 @@ }, { "name": "phpunit/php-timer", - "version": "7.0.1", - "version_normalized": "7.0.1.0", + "version": "8.0.0", + "version_normalized": "8.0.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" + "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", - "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", + "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, - "time": "2024-07-03T05:09:35+00:00", + "time": "2025-02-07T04:59:38+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "8.0-dev" } }, "installation-source": "dist", @@ -5241,7 +5243,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", "security": "https://github.com/sebastianbergmann/php-timer/security/policy", - "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" + "source": "https://github.com/sebastianbergmann/php-timer/tree/8.0.0" }, "funding": [ { @@ -5253,17 +5255,17 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.56", - "version_normalized": "11.5.56.0", + "version": "12.5.31", + "version_normalized": "12.5.31.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256" + "reference": "0608d157a284f15cc73b99a3327eff06b66a176d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5f83edffa6967c3db468d48a695ec7bcb02e9256", - "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0608d157a284f15cc73b99a3327eff06b66a176d", + "reference": "0608d157a284f15cc73b99a3327eff06b66a176d", "shasum": "" }, "require": { @@ -5276,36 +5278,32 @@ "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", - "php": ">=8.2", - "phpunit/php-code-coverage": "^11.0.12", - "phpunit/php-file-iterator": "^5.1.1", - "phpunit/php-invoker": "^5.0.1", - "phpunit/php-text-template": "^4.0.1", - "phpunit/php-timer": "^7.0.1", - "sebastian/cli-parser": "^3.0.2", - "sebastian/code-unit": "^3.0.3", - "sebastian/comparator": "^6.3.3", - "sebastian/diff": "^6.0.2", - "sebastian/environment": "^7.2.1", - "sebastian/exporter": "^6.3.2", - "sebastian/global-state": "^7.0.2", - "sebastian/object-enumerator": "^6.0.1", - "sebastian/recursion-context": "^6.0.3", - "sebastian/type": "^5.1.3", - "sebastian/version": "^5.0.2", + "php": ">=8.3", + "phpunit/php-code-coverage": "^12.5.7", + "phpunit/php-file-iterator": "^6.0.1", + "phpunit/php-invoker": "^6.0.0", + "phpunit/php-text-template": "^5.0.0", + "phpunit/php-timer": "^8.0.0", + "sebastian/cli-parser": "^4.2.1", + "sebastian/comparator": "^7.1.8", + "sebastian/diff": "^7.0.0", + "sebastian/environment": "^8.1.2", + "sebastian/exporter": "^7.0.3", + "sebastian/global-state": "^8.0.3", + "sebastian/object-enumerator": "^7.0.0", + "sebastian/recursion-context": "^7.0.1", + "sebastian/type": "^6.0.4", + "sebastian/version": "^6.0.0", "staabm/side-effects-detector": "^1.0.5" }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files" - }, - "time": "2026-07-06T14:52:39+00:00", + "time": "2026-07-06T14:54:16+00:00", "bin": [ "phpunit" ], "type": "library", "extra": { "branch-alias": { - "dev-main": "11.5-dev" + "dev-main": "12.5-dev" } }, "installation-source": "dist", @@ -5338,7 +5336,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.56" + "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.31" }, "funding": [ { @@ -6127,30 +6125,30 @@ }, { "name": "sebastian/cli-parser", - "version": "3.0.2", - "version_normalized": "3.0.2.0", + "version": "4.2.1", + "version_normalized": "4.2.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" + "reference": "7d05781b13f7dec9043a629a21d086ed74582a15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", - "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/7d05781b13f7dec9043a629a21d086ed74582a15", + "reference": "7d05781b13f7dec9043a629a21d086ed74582a15", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.5.25" }, - "time": "2024-07-03T04:41:36+00:00", + "time": "2026-05-17T05:29:34+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.2-dev" } }, "installation-source": "dist", @@ -6175,168 +6173,61 @@ "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/cli-parser", + "type": "tidelift" } ], "install-path": "../sebastian/cli-parser" }, - { - "name": "sebastian/code-unit", - "version": "3.0.3", - "version_normalized": "3.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", - "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.5" - }, - "time": "2025-03-19T07:56:08+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "security": "https://github.com/sebastianbergmann/code-unit/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/code-unit" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "4.0.1", - "version_normalized": "4.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "183a9b2632194febd219bb9246eee421dad8d45e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", - "reference": "183a9b2632194febd219bb9246eee421dad8d45e", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "time": "2024-07-03T04:45:54+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/code-unit-reverse-lookup" - }, { "name": "sebastian/comparator", - "version": "6.3.3", - "version_normalized": "6.3.3.0", + "version": "7.1.8", + "version_normalized": "7.1.8.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9" + "reference": "7c65c1e79836812819705b473a90c12399542485" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", - "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/7c65c1e79836812819705b473a90c12399542485", + "reference": "7c65c1e79836812819705b473a90c12399542485", "shasum": "" }, "require": { "ext-dom": "*", "ext-mbstring": "*", - "php": ">=8.2", - "sebastian/diff": "^6.0", - "sebastian/exporter": "^6.0" + "php": ">=8.3", + "sebastian/diff": "^7.0", + "sebastian/exporter": "^7.0.3" }, "require-dev": { - "phpunit/phpunit": "^11.4" + "phpunit/phpunit": "^12.5.25" }, "suggest": { "ext-bcmath": "For comparing BcMath\\Number objects" }, - "time": "2026-01-24T09:26:40+00:00", + "time": "2026-05-21T04:45:25+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "6.3-dev" + "dev-main": "7.1-dev" } }, "installation-source": "dist", @@ -6377,7 +6268,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.3" + "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.8" }, "funding": [ { @@ -6401,31 +6292,31 @@ }, { "name": "sebastian/complexity", - "version": "4.0.1", - "version_normalized": "4.0.1.0", + "version": "5.0.0", + "version_normalized": "5.0.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" + "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", - "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/bad4316aba5303d0221f43f8cee37eb58d384bbb", + "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb", "shasum": "" }, "require": { "nikic/php-parser": "^5.0", - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, - "time": "2024-07-03T04:49:50+00:00", + "time": "2025-02-07T04:55:25+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "installation-source": "dist", @@ -6450,7 +6341,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" + "source": "https://github.com/sebastianbergmann/complexity/tree/5.0.0" }, "funding": [ { @@ -6462,31 +6353,31 @@ }, { "name": "sebastian/diff", - "version": "6.0.2", - "version_normalized": "6.0.2.0", + "version": "7.0.0", + "version_normalized": "7.0.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" + "reference": "7ab1ea946c012266ca32390913653d844ecd085f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f", + "reference": "7ab1ea946c012266ca32390913653d844ecd085f", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0", - "symfony/process": "^4.2 || ^5" + "phpunit/phpunit": "^12.0", + "symfony/process": "^7.2" }, - "time": "2024-07-03T04:53:05+00:00", + "time": "2025-02-07T04:55:46+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "installation-source": "dist", @@ -6520,7 +6411,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" + "source": "https://github.com/sebastianbergmann/diff/tree/7.0.0" }, "funding": [ { @@ -6532,33 +6423,33 @@ }, { "name": "sebastian/environment", - "version": "7.2.1", - "version_normalized": "7.2.1.0", + "version": "8.1.2", + "version_normalized": "8.1.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4" + "reference": "9d32c685773823b1983e256ae4ecd48a10d6e439" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4", - "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/9d32c685773823b1983e256ae4ecd48a10d6e439", + "reference": "9d32c685773823b1983e256ae4ecd48a10d6e439", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.5.26" }, "suggest": { "ext-posix": "*" }, - "time": "2025-05-21T11:55:47+00:00", + "time": "2026-05-25T13:40:20+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "7.2-dev" + "dev-main": "8.1-dev" } }, "installation-source": "dist", @@ -6587,7 +6478,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1" + "source": "https://github.com/sebastianbergmann/environment/tree/8.1.2" }, "funding": [ { @@ -6611,32 +6502,32 @@ }, { "name": "sebastian/exporter", - "version": "6.3.2", - "version_normalized": "6.3.2.0", + "version": "7.0.3", + "version_normalized": "7.0.3.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "70a298763b40b213ec087c51c739efcaa90bcd74" + "reference": "c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74", - "reference": "70a298763b40b213ec087c51c739efcaa90bcd74", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23", + "reference": "c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": ">=8.2", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/recursion-context": "^7.0.1" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.5.25" }, - "time": "2025-09-24T06:12:51+00:00", + "time": "2026-05-20T04:37:17+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "6.3-dev" + "dev-main": "7.0-dev" } }, "installation-source": "dist", @@ -6680,7 +6571,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2" + "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.3" }, "funding": [ { @@ -6704,33 +6595,33 @@ }, { "name": "sebastian/global-state", - "version": "7.0.2", - "version_normalized": "7.0.2.0", + "version": "8.0.3", + "version_normalized": "8.0.3.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "3be331570a721f9a4b5917f4209773de17f747d7" + "reference": "b164d3274d6537ab462591c5755f76a8f5b1aae9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", - "reference": "3be331570a721f9a4b5917f4209773de17f747d7", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b164d3274d6537ab462591c5755f76a8f5b1aae9", + "reference": "b164d3274d6537ab462591c5755f76a8f5b1aae9", "shasum": "" }, "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0.1" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.5.28" }, - "time": "2024-07-03T04:57:36+00:00", + "time": "2026-06-01T15:10:33+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "8.0-dev" } }, "installation-source": "dist", @@ -6757,43 +6648,55 @@ "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.3" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", + "type": "tidelift" } ], "install-path": "../sebastian/global-state" }, { "name": "sebastian/lines-of-code", - "version": "3.0.1", - "version_normalized": "3.0.1.0", + "version": "4.0.1", + "version_normalized": "4.0.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" + "reference": "d543b8ef219dcd8da262cbb958639a96bedba10e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", - "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d543b8ef219dcd8da262cbb958639a96bedba10e", + "reference": "d543b8ef219dcd8da262cbb958639a96bedba10e", "shasum": "" }, "require": { - "nikic/php-parser": "^5.0", - "php": ">=8.2" + "nikic/php-parser": "^5.7.0", + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.5.25" }, - "time": "2024-07-03T04:58:38+00:00", + "time": "2026-05-19T16:22:07+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.0-dev" } }, "installation-source": "dist", @@ -6818,44 +6721,56 @@ "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/4.0.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/lines-of-code", + "type": "tidelift" } ], "install-path": "../sebastian/lines-of-code" }, { "name": "sebastian/object-enumerator", - "version": "6.0.1", - "version_normalized": "6.0.1.0", + "version": "7.0.0", + "version_normalized": "7.0.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "f5b498e631a74204185071eb41f33f38d64608aa" + "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", - "reference": "f5b498e631a74204185071eb41f33f38d64608aa", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1effe8e9b8e068e9ae228e542d5d11b5d16db894", + "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894", "shasum": "" }, "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, - "time": "2024-07-03T05:00:13+00:00", + "time": "2025-02-07T04:57:48+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "installation-source": "dist", @@ -6879,7 +6794,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/7.0.0" }, "funding": [ { @@ -6891,30 +6806,30 @@ }, { "name": "sebastian/object-reflector", - "version": "4.0.1", - "version_normalized": "4.0.1.0", + "version": "5.0.0", + "version_normalized": "5.0.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" + "reference": "4bfa827c969c98be1e527abd576533293c634f6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", - "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/4bfa827c969c98be1e527abd576533293c634f6a", + "reference": "4bfa827c969c98be1e527abd576533293c634f6a", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, - "time": "2024-07-03T05:01:32+00:00", + "time": "2025-02-07T04:58:17+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "installation-source": "dist", @@ -6938,7 +6853,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" + "source": "https://github.com/sebastianbergmann/object-reflector/tree/5.0.0" }, "funding": [ { @@ -6950,30 +6865,30 @@ }, { "name": "sebastian/recursion-context", - "version": "6.0.3", - "version_normalized": "6.0.3.0", + "version": "7.0.1", + "version_normalized": "7.0.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc" + "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc", - "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", + "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.0" }, - "time": "2025-08-13T04:42:22+00:00", + "time": "2025-08-13T04:44:59+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "installation-source": "dist", @@ -7005,7 +6920,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/7.0.1" }, "funding": [ { @@ -7029,30 +6944,30 @@ }, { "name": "sebastian/type", - "version": "5.1.3", - "version_normalized": "5.1.3.0", + "version": "6.0.4", + "version_normalized": "6.0.4.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449" + "reference": "82ff822c2edc46724be9f7411d3163021f602773" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449", - "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/82ff822c2edc46724be9f7411d3163021f602773", + "reference": "82ff822c2edc46724be9f7411d3163021f602773", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.5.25" }, - "time": "2025-08-09T06:55:48+00:00", + "time": "2026-05-20T06:45:45+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.0-dev" } }, "installation-source": "dist", @@ -7077,7 +6992,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/type/issues", "security": "https://github.com/sebastianbergmann/type/security/policy", - "source": "https://github.com/sebastianbergmann/type/tree/5.1.3" + "source": "https://github.com/sebastianbergmann/type/tree/6.0.4" }, "funding": [ { @@ -7101,27 +7016,27 @@ }, { "name": "sebastian/version", - "version": "5.0.2", - "version_normalized": "5.0.2.0", + "version": "6.0.0", + "version_normalized": "6.0.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" + "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", - "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c", + "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, - "time": "2024-10-09T05:16:32+00:00", + "time": "2025-02-07T05:00:38+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "installation-source": "dist", @@ -7146,7 +7061,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/version/issues", "security": "https://github.com/sebastianbergmann/version/security/policy", - "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" + "source": "https://github.com/sebastianbergmann/version/tree/6.0.0" }, "funding": [ { @@ -8041,50 +7956,52 @@ }, { "name": "symfony/console", - "version": "v7.4.14", - "version_normalized": "7.4.14.0", + "version": "v8.1.1", + "version_normalized": "8.1.1.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87" + "reference": "b711a8ab808b6c074c6b8caef70d0fd8d6b6d07d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87", - "reference": "92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87", + "url": "https://api.github.com/repos/symfony/console/zipball/b711a8ab808b6c074c6b8caef70d0fd8d6b6d07d", + "reference": "b711a8ab808b6c074c6b8caef70d0fd8d6b6d07d", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4.1", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php85": "^1.32", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^7.2|^8.0" + "symfony/string": "^7.4.6|^8.0.6" }, "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/dotenv": "<6.4", - "symfony/event-dispatcher": "<6.4", - "symfony/lock": "<6.4", - "symfony/process": "<6.4" + "symfony/dependency-injection": "<8.1", + "symfony/event-dispatcher": "<8.1" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/event-dispatcher": "^6.4|^7.0|^8.0", - "symfony/http-foundation": "^6.4|^7.0|^8.0", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/lock": "^6.4|^7.0|^8.0", - "symfony/messenger": "^6.4|^7.0|^8.0", - "symfony/process": "^6.4|^7.0|^8.0", - "symfony/stopwatch": "^6.4|^7.0|^8.0", - "symfony/var-dumper": "^6.4|^7.0|^8.0" + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^8.1", + "symfony/event-dispatcher": "^8.1", + "symfony/filesystem": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/lock": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/uid": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" }, - "time": "2026-06-16T11:50:14+00:00", + "time": "2026-06-16T12:55:20+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -8118,7 +8035,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.14" + "source": "https://github.com/symfony/console/tree/v8.1.1" }, "funding": [ { @@ -8288,37 +8205,36 @@ }, { "name": "symfony/error-handler", - "version": "v7.4.14", - "version_normalized": "7.4.14.0", + "version": "v8.1.0", + "version_normalized": "8.1.0.0", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "4e1a093b481f323e6e326451f9760c3868430673" + "reference": "d8aeb1abd3fef84795567850d3a567bdb5945ee5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/4e1a093b481f323e6e326451f9760c3868430673", - "reference": "4e1a093b481f323e6e326451f9760c3868430673", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/d8aeb1abd3fef84795567850d3a567bdb5945ee5", + "reference": "d8aeb1abd3fef84795567850d3a567bdb5945ee5", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4.1", "psr/log": "^1|^2|^3", "symfony/polyfill-php85": "^1.32", - "symfony/var-dumper": "^6.4|^7.0|^8.0" + "symfony/var-dumper": "^7.4|^8.0" }, "conflict": { - "symfony/deprecation-contracts": "<2.5", - "symfony/http-kernel": "<6.4" + "symfony/deprecation-contracts": "<2.5" }, "require-dev": { - "symfony/console": "^6.4|^7.0|^8.0", + "symfony/console": "^7.4|^8.0", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/serializer": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", "symfony/webpack-encore-bundle": "^1.0|^2.0" }, - "time": "2026-06-05T06:22:21+00:00", + "time": "2026-05-29T05:06:50+00:00", "bin": [ "Resources/bin/patch-type-declarations" ], @@ -8349,7 +8265,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.4.14" + "source": "https://github.com/symfony/error-handler/tree/v8.1.0" }, "funding": [ { @@ -8619,26 +8535,26 @@ }, { "name": "symfony/finder", - "version": "v7.4.14", - "version_normalized": "7.4.14.0", + "version": "v8.1.1", + "version_normalized": "8.1.1.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "13b38720174286f55d1761152b575a8d1436fc25" + "reference": "e2989e762c70f9490fa3a00a0ac0fae5aa97a531" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/13b38720174286f55d1761152b575a8d1436fc25", - "reference": "13b38720174286f55d1761152b575a8d1436fc25", + "url": "https://api.github.com/repos/symfony/finder/zipball/e2989e762c70f9490fa3a00a0ac0fae5aa97a531", + "reference": "e2989e762c70f9490fa3a00a0ac0fae5aa97a531", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.4.1" }, "require-dev": { - "symfony/filesystem": "^6.4|^7.0|^8.0" + "symfony/filesystem": "^7.4|^8.0" }, - "time": "2026-06-27T08:31:18+00:00", + "time": "2026-06-27T09:05:56+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -8666,7 +8582,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.4.14" + "source": "https://github.com/symfony/finder/tree/v8.1.1" }, "funding": [ { @@ -8690,40 +8606,39 @@ }, { "name": "symfony/http-foundation", - "version": "v7.4.14", - "version_normalized": "7.4.14.0", + "version": "v8.1.1", + "version_normalized": "8.1.1.0", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "06db5ae1552177bf8572f8908839f12e3c06aed3" + "reference": "6a168c8fcee806b57ac020244da14293d1f9a883" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/06db5ae1552177bf8572f8908839f12e3c06aed3", - "reference": "06db5ae1552177bf8572f8908839f12e3c06aed3", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6a168c8fcee806b57ac020244da14293d1f9a883", + "reference": "6a168c8fcee806b57ac020244da14293d1f9a883", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4.1", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "^1.1" }, "conflict": { - "doctrine/dbal": "<3.6", - "symfony/cache": "<6.4.12|>=7.0,<7.1.5" + "doctrine/dbal": "<4.3" }, "require-dev": { - "doctrine/dbal": "^3.6|^4", + "doctrine/dbal": "^4.3", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.4.12|^7.1.5|^8.0", - "symfony/clock": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/expression-language": "^6.4|^7.0|^8.0", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/mime": "^6.4|^7.0|^8.0", - "symfony/rate-limiter": "^6.4|^7.0|^8.0" + "symfony/cache": "^7.4|^8.0", + "symfony/clock": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/rate-limiter": "^7.4|^8.0" }, - "time": "2026-06-11T07:31:44+00:00", + "time": "2026-06-12T08:43:41+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -8751,7 +8666,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.4.14" + "source": "https://github.com/symfony/http-foundation/tree/v8.1.1" }, "funding": [ { @@ -8775,77 +8690,67 @@ }, { "name": "symfony/http-kernel", - "version": "v7.4.14", - "version_normalized": "7.4.14.0", + "version": "v8.1.1", + "version_normalized": "8.1.1.0", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "e99af79b1e776646eda0e1c23b7b45c184ff99be" + "reference": "89d8d6e7fbab3d9eda89ccb5ecdf44a74c4ec9d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e99af79b1e776646eda0e1c23b7b45c184ff99be", - "reference": "e99af79b1e776646eda0e1c23b7b45c184ff99be", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/89d8d6e7fbab3d9eda89ccb5ecdf44a74c4ec9d2", + "reference": "89d8d6e7fbab3d9eda89ccb5ecdf44a74c4ec9d2", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4.1", "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.4|^7.0|^8.0", - "symfony/event-dispatcher": "^7.3|^8.0", + "symfony/error-handler": "^7.4|^8.0", + "symfony/event-dispatcher": "^7.4|^8.0", "symfony/http-foundation": "^7.4|^8.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/browser-kit": "<6.4", - "symfony/cache": "<6.4", - "symfony/config": "<6.4", - "symfony/console": "<6.4", - "symfony/dependency-injection": "<6.4", - "symfony/doctrine-bridge": "<6.4", + "symfony/dependency-injection": "<8.1", "symfony/flex": "<2.10", - "symfony/form": "<6.4", - "symfony/http-client": "<6.4", "symfony/http-client-contracts": "<2.5", - "symfony/mailer": "<6.4", - "symfony/messenger": "<6.4", - "symfony/translation": "<6.4", "symfony/translation-contracts": "<2.5", - "symfony/twig-bridge": "<6.4", - "symfony/validator": "<6.4", - "symfony/var-dumper": "<6.4", - "twig/twig": "<3.12" + "symfony/var-dumper": "<8.1", + "symfony/web-profiler-bundle": "<8.1", + "twig/twig": "<3.21" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^6.4|^7.0|^8.0", - "symfony/clock": "^6.4|^7.0|^8.0", - "symfony/config": "^6.4|^7.0|^8.0", - "symfony/console": "^6.4|^7.0|^8.0", - "symfony/css-selector": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4.1|^7.0.1|^8.0", - "symfony/dom-crawler": "^6.4|^7.0|^8.0", - "symfony/expression-language": "^6.4|^7.0|^8.0", - "symfony/finder": "^6.4|^7.0|^8.0", + "symfony/browser-kit": "^7.4|^8.0", + "symfony/clock": "^7.4|^8.0", + "symfony/config": "^7.4|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/css-selector": "^7.4|^8.0", + "symfony/dependency-injection": "^8.1", + "symfony/dom-crawler": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", "symfony/http-client-contracts": "^2.5|^3", - "symfony/process": "^6.4|^7.0|^8.0", - "symfony/property-access": "^7.1|^8.0", - "symfony/routing": "^6.4|^7.0|^8.0", - "symfony/serializer": "^7.1|^8.0", - "symfony/stopwatch": "^6.4|^7.0|^8.0", - "symfony/translation": "^6.4|^7.0|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/property-access": "^7.4|^8.0", + "symfony/rate-limiter": "^7.4|^8.0", + "symfony/routing": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", "symfony/translation-contracts": "^2.5|^3", - "symfony/uid": "^6.4|^7.0|^8.0", - "symfony/validator": "^6.4|^7.0|^8.0", - "symfony/var-dumper": "^6.4|^7.0|^8.0", - "symfony/var-exporter": "^6.4|^7.0|^8.0", - "twig/twig": "^3.12" + "symfony/uid": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/var-dumper": "^8.1", + "symfony/var-exporter": "^7.4|^8.0", + "twig/twig": "^3.21" }, - "time": "2026-06-27T09:14:35+00:00", + "time": "2026-06-27T09:27:36+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -8873,7 +8778,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.4.14" + "source": "https://github.com/symfony/http-kernel/tree/v8.1.1" }, "funding": [ { @@ -8897,42 +8802,38 @@ }, { "name": "symfony/mailer", - "version": "v7.4.14", - "version_normalized": "7.4.14.0", + "version": "v8.1.1", + "version_normalized": "8.1.1.0", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "f88ce03ae73e3edb5c176ce1f337709996e88495" + "reference": "4fa583a7377f28d54e4de442fba76375b2e20a12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/f88ce03ae73e3edb5c176ce1f337709996e88495", - "reference": "f88ce03ae73e3edb5c176ce1f337709996e88495", + "url": "https://api.github.com/repos/symfony/mailer/zipball/4fa583a7377f28d54e4de442fba76375b2e20a12", + "reference": "4fa583a7377f28d54e4de442fba76375b2e20a12", "shasum": "" }, "require": { "egulias/email-validator": "^2.1.10|^3|^4", - "php": ">=8.2", + "php": ">=8.4.1", "psr/event-dispatcher": "^1", "psr/log": "^1|^2|^3", - "symfony/event-dispatcher": "^6.4|^7.0|^8.0", - "symfony/mime": "^7.2|^8.0", + "symfony/event-dispatcher": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { - "symfony/http-client-contracts": "<2.5", - "symfony/http-kernel": "<6.4", - "symfony/messenger": "<6.4", - "symfony/mime": "<6.4", - "symfony/twig-bridge": "<6.4" + "symfony/http-client-contracts": "<2.5" }, "require-dev": { - "symfony/console": "^6.4|^7.0|^8.0", - "symfony/http-client": "^6.4|^7.0|^8.0", - "symfony/messenger": "^6.4|^7.0|^8.0", - "symfony/twig-bridge": "^6.4|^7.0|^8.0" + "symfony/console": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/twig-bridge": "^7.4|^8.0" }, - "time": "2026-06-13T08:51:35+00:00", + "time": "2026-06-16T12:55:20+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -8960,7 +8861,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.4.14" + "source": "https://github.com/symfony/mailer/tree/v8.1.1" }, "funding": [ { @@ -8984,43 +8885,40 @@ }, { "name": "symfony/mime", - "version": "v7.4.13", - "version_normalized": "7.4.13.0", + "version": "v8.1.0", + "version_normalized": "8.1.0.0", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "a845722765c4f6b2ce88beaf4f4479975b186770" + "reference": "b164ae7e3f7915aacfe9ee155f2f358502440664" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/a845722765c4f6b2ce88beaf4f4479975b186770", - "reference": "a845722765c4f6b2ce88beaf4f4479975b186770", + "url": "https://api.github.com/repos/symfony/mime/zipball/b164ae7e3f7915aacfe9ee155f2f358502440664", + "reference": "b164ae7e3f7915aacfe9ee155f2f358502440664", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.4.1", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, "conflict": { "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<5.2|>=7", - "phpdocumentor/type-resolver": "<1.5.1", - "symfony/mailer": "<6.4", - "symfony/serializer": "<6.4.3|>7.0,<7.0.3" + "phpdocumentor/type-resolver": "<1.5.1" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^5.2|^6.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/process": "^6.4|^7.0|^8.0", - "symfony/property-access": "^6.4|^7.0|^8.0", - "symfony/property-info": "^6.4|^7.0|^8.0", - "symfony/serializer": "^6.4.3|^7.0.3|^8.0" + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/property-access": "^7.4|^8.0", + "symfony/property-info": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0" }, - "time": "2026-05-23T16:22:37+00:00", + "time": "2026-05-29T05:06:50+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -9052,7 +8950,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.4.13" + "source": "https://github.com/symfony/mime/tree/v8.1.0" }, "funding": [ { @@ -9762,89 +9660,6 @@ ], "install-path": "../symfony/polyfill-php80" }, - { - "name": "symfony/polyfill-php83", - "version": "v1.38.2", - "version_normalized": "1.38.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "796a26abb75ce49f3a84433cd81bf1009d73d5f8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/796a26abb75ce49f3a84433cd81bf1009d73d5f8", - "reference": "796a26abb75ce49f3a84433cd81bf1009d73d5f8", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "time": "2026-05-27T06:51:48+00:00", - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php83\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.38.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-php83" - }, { "name": "symfony/polyfill-php84", "version": "v1.38.1", @@ -10011,6 +9826,89 @@ ], "install-path": "../symfony/polyfill-php85" }, + { + "name": "symfony/polyfill-php86", + "version": "v1.38.0", + "version_normalized": "1.38.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php86.git", + "reference": "fcec68d64f46dc84e1f6ffcf2c6dda40ff3143ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php86/zipball/fcec68d64f46dc84e1f6ffcf2c6dda40ff3143ad", + "reference": "fcec68d64f46dc84e1f6ffcf2c6dda40ff3143ad", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "time": "2026-05-25T11:52:35+00:00", + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php86\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.6+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php86/tree/v1.38.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/polyfill-php86" + }, { "name": "symfony/polyfill-uuid", "version": "v1.37.0", @@ -10099,23 +9997,23 @@ }, { "name": "symfony/process", - "version": "v7.4.13", - "version_normalized": "7.4.13.0", + "version": "v8.1.0", + "version_normalized": "8.1.0.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "f5804be144caceb570f6747519999636b664f24c" + "reference": "c4a9e58f235a6bf7f97ffbfedae2687353ac79e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/f5804be144caceb570f6747519999636b664f24c", - "reference": "f5804be144caceb570f6747519999636b664f24c", + "url": "https://api.github.com/repos/symfony/process/zipball/c4a9e58f235a6bf7f97ffbfedae2687353ac79e5", + "reference": "c4a9e58f235a6bf7f97ffbfedae2687353ac79e5", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.4.1" }, - "time": "2026-05-23T16:05:06+00:00", + "time": "2026-05-29T05:06:50+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -10143,7 +10041,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.4.13" + "source": "https://github.com/symfony/process/tree/v8.1.0" }, "funding": [ { @@ -10167,37 +10065,32 @@ }, { "name": "symfony/routing", - "version": "v7.4.13", - "version_normalized": "7.4.13.0", + "version": "v8.1.0", + "version_normalized": "8.1.0.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "3a162171bb008e5e0f15dce6581373a4c0e8390d" + "reference": "fe0bfec72c8a806109fb9c3a5f2b898fe0c76eb3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/3a162171bb008e5e0f15dce6581373a4c0e8390d", - "reference": "3a162171bb008e5e0f15dce6581373a4c0e8390d", + "url": "https://api.github.com/repos/symfony/routing/zipball/fe0bfec72c8a806109fb9c3a5f2b898fe0c76eb3", + "reference": "fe0bfec72c8a806109fb9c3a5f2b898fe0c76eb3", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4.1", "symfony/deprecation-contracts": "^2.5|^3" }, - "conflict": { - "symfony/config": "<6.4", - "symfony/dependency-injection": "<6.4", - "symfony/yaml": "<6.4" - }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/expression-language": "^6.4|^7.0|^8.0", - "symfony/http-foundation": "^6.4|^7.0|^8.0", - "symfony/yaml": "^6.4|^7.0|^8.0" + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/yaml": "^7.4|^8.0" }, - "time": "2026-05-24T11:20:33+00:00", + "time": "2026-05-29T05:06:50+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -10231,7 +10124,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.4.13" + "source": "https://github.com/symfony/routing/tree/v8.1.0" }, "funding": [ { @@ -10687,27 +10580,27 @@ }, { "name": "symfony/uid", - "version": "v7.4.9", - "version_normalized": "7.4.9.0", + "version": "v8.1.0", + "version_normalized": "8.1.0.0", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "2676b524340abcfe4d6151ec698463cebafee439" + "reference": "7393f157a55f7e70a4de0334435c55a5a8fe749a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/2676b524340abcfe4d6151ec698463cebafee439", - "reference": "2676b524340abcfe4d6151ec698463cebafee439", + "url": "https://api.github.com/repos/symfony/uid/zipball/7393f157a55f7e70a4de0334435c55a5a8fe749a", + "reference": "7393f157a55f7e70a4de0334435c55a5a8fe749a", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4.1", "symfony/polyfill-uuid": "^1.15" }, "require-dev": { - "symfony/console": "^6.4|^7.0|^8.0" + "symfony/console": "^7.4|^8.0" }, - "time": "2026-04-30T15:19:22+00:00", + "time": "2026-05-29T05:06:50+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -10744,7 +10637,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.4.9" + "source": "https://github.com/symfony/uid/tree/v8.1.0" }, "funding": [ { @@ -10768,35 +10661,35 @@ }, { "name": "symfony/var-dumper", - "version": "v7.4.14", - "version_normalized": "7.4.14.0", + "version": "v8.1.1", + "version_normalized": "8.1.1.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "9a3a56a4a1e65a5cb4f8d13801fe8ab0a170e358" + "reference": "40096a2515a979f3125c5c928603995b8664c62a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/9a3a56a4a1e65a5cb4f8d13801fe8ab0a170e358", - "reference": "9a3a56a4a1e65a5cb4f8d13801fe8ab0a170e358", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/40096a2515a979f3125c5c928603995b8664c62a", + "reference": "40096a2515a979f3125c5c928603995b8664c62a", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=8.4.1", + "symfony/polyfill-mbstring": "^1.0" }, "conflict": { - "symfony/console": "<6.4" + "symfony/console": "<7.4", + "symfony/error-handler": "<7.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0|^8.0", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/process": "^6.4|^7.0|^8.0", - "symfony/uid": "^6.4|^7.0|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/uid": "^7.4|^8.0", "twig/twig": "^3.12" }, - "time": "2026-06-08T20:24:16+00:00", + "time": "2026-06-09T10:54:51+00:00", "bin": [ "Resources/bin/var-dump-server" ], @@ -10834,7 +10727,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.4.14" + "source": "https://github.com/symfony/var-dumper/tree/v8.1.1" }, "funding": [ { @@ -11023,26 +10916,26 @@ }, { "name": "theseer/tokenizer", - "version": "1.3.1", - "version_normalized": "1.3.1.0", + "version": "2.0.1", + "version_normalized": "2.0.1.0", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" + "reference": "7989e43bf381af0eac72e4f0ca5bcbfa81658be4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", - "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/7989e43bf381af0eac72e4f0ca5bcbfa81658be4", + "reference": "7989e43bf381af0eac72e4f0ca5bcbfa81658be4", "shasum": "" }, "require": { "ext-dom": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" + "php": "^8.1" }, - "time": "2025-11-17T20:03:58+00:00", + "time": "2025-12-08T11:19:18+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -11064,7 +10957,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.3.1" + "source": "https://github.com/theseer/tokenizer/tree/2.0.1" }, "funding": [ { @@ -11316,8 +11209,6 @@ "phpunit/php-timer", "phpunit/phpunit", "sebastian/cli-parser", - "sebastian/code-unit", - "sebastian/code-unit-reverse-lookup", "sebastian/comparator", "sebastian/complexity", "sebastian/diff", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 413ac710d..ac2164c6b 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => 'laravel/laravel', 'pretty_version' => '2.x-dev', 'version' => '2.9999999.9999999.9999999-dev', - 'reference' => 'cb59689ead6ba29ea3b8dfe896c8ef9ff8da8b3c', + 'reference' => '39191885e53b2c8ab49b3d594ece9825b6fd87b4', 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -20,9 +20,9 @@ 'dev_requirement' => false, ), 'aws/aws-sdk-php' => array( - 'pretty_version' => '3.388.0', - 'version' => '3.388.0.0', - 'reference' => '6dd9a0674641ef7d302a50cc8f275eb443182dc9', + 'pretty_version' => '3.388.1', + 'version' => '3.388.1.0', + 'reference' => 'c04551617a8cb58d73a8009cb994ccc629590cdf', 'type' => 'library', 'install_path' => __DIR__ . '/../aws/aws-sdk-php', 'aliases' => array(), @@ -47,9 +47,9 @@ 'dev_requirement' => true, ), 'brick/math' => array( - 'pretty_version' => '0.14.8', - 'version' => '0.14.8.0', - 'reference' => '63422359a44b7f06cae63c3b429b59e8efcc0629', + 'pretty_version' => '0.18.0', + 'version' => '0.18.0.0', + 'reference' => '82944324d1c1bdb2c2618e89978d4e2ad78d69ad', 'type' => 'library', 'install_path' => __DIR__ . '/../brick/math', 'aliases' => array(), @@ -268,217 +268,217 @@ 'illuminate/auth' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/broadcasting' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/bus' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/cache' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/collections' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/concurrency' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/conditionable' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/config' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/console' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/container' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/contracts' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/cookie' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/database' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/encryption' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/events' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/filesystem' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/hashing' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/http' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/json-schema' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/log' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/macroable' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/mail' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/notifications' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/pagination' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/pipeline' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/process' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/queue' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/redis' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/reflection' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/routing' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/session' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/support' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/testing' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/translation' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/validation' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'illuminate/view' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v12.63.0', + 0 => 'v13.19.0', ), ), 'knplabs/github-api' => array( @@ -497,9 +497,9 @@ ), ), 'laravel/framework' => array( - 'pretty_version' => 'v12.63.0', - 'version' => '12.63.0.0', - 'reference' => '7adfddbf4738f2e6cae5419b0e6bc46d4cccfbcf', + 'pretty_version' => 'v13.19.0', + 'version' => '13.19.0.0', + 'reference' => '514502b38e11bd676ecf83b271c9452cc7500f16', 'type' => 'library', 'install_path' => __DIR__ . '/../laravel/framework', 'aliases' => array(), @@ -508,7 +508,7 @@ 'laravel/laravel' => array( 'pretty_version' => '2.x-dev', 'version' => '2.9999999.9999999.9999999-dev', - 'reference' => 'cb59689ead6ba29ea3b8dfe896c8ef9ff8da8b3c', + 'reference' => '39191885e53b2c8ab49b3d594ece9825b6fd87b4', 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -533,9 +533,9 @@ 'dev_requirement' => false, ), 'laravel/tinker' => array( - 'pretty_version' => 'v2.11.1', - 'version' => '2.11.1.0', - 'reference' => 'c9f80cc835649b5c1842898fb043f8cc098dd741', + 'pretty_version' => 'v3.0.2', + 'version' => '3.0.2.0', + 'reference' => '4faba77764bd33411735936acdf30446d058c78b', 'type' => 'library', 'install_path' => __DIR__ . '/../laravel/tinker', 'aliases' => array(), @@ -836,54 +836,54 @@ 'dev_requirement' => false, ), 'phpunit/php-code-coverage' => array( - 'pretty_version' => '11.0.12', - 'version' => '11.0.12.0', - 'reference' => '2c1ed04922802c15e1de5d7447b4856de949cf56', + 'pretty_version' => '12.5.7', + 'version' => '12.5.7.0', + 'reference' => '186dab580576598076de6818596d12b61801880e', 'type' => 'library', 'install_path' => __DIR__ . '/../phpunit/php-code-coverage', 'aliases' => array(), 'dev_requirement' => true, ), 'phpunit/php-file-iterator' => array( - 'pretty_version' => '5.1.1', - 'version' => '5.1.1.0', - 'reference' => '2f3a64888c814fc235386b7387dd5b5ed92ad903', + 'pretty_version' => '6.0.1', + 'version' => '6.0.1.0', + 'reference' => '3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5', 'type' => 'library', 'install_path' => __DIR__ . '/../phpunit/php-file-iterator', 'aliases' => array(), 'dev_requirement' => true, ), 'phpunit/php-invoker' => array( - 'pretty_version' => '5.0.1', - 'version' => '5.0.1.0', - 'reference' => 'c1ca3814734c07492b3d4c5f794f4b0995333da2', + 'pretty_version' => '6.0.0', + 'version' => '6.0.0.0', + 'reference' => '12b54e689b07a25a9b41e57736dfab6ec9ae5406', 'type' => 'library', 'install_path' => __DIR__ . '/../phpunit/php-invoker', 'aliases' => array(), 'dev_requirement' => true, ), 'phpunit/php-text-template' => array( - 'pretty_version' => '4.0.1', - 'version' => '4.0.1.0', - 'reference' => '3e0404dc6b300e6bf56415467ebcb3fe4f33e964', + 'pretty_version' => '5.0.0', + 'version' => '5.0.0.0', + 'reference' => 'e1367a453f0eda562eedb4f659e13aa900d66c53', 'type' => 'library', 'install_path' => __DIR__ . '/../phpunit/php-text-template', 'aliases' => array(), 'dev_requirement' => true, ), 'phpunit/php-timer' => array( - 'pretty_version' => '7.0.1', - 'version' => '7.0.1.0', - 'reference' => '3b415def83fbcb41f991d9ebf16ae4ad8b7837b3', + 'pretty_version' => '8.0.0', + 'version' => '8.0.0.0', + 'reference' => 'f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc', 'type' => 'library', 'install_path' => __DIR__ . '/../phpunit/php-timer', 'aliases' => array(), 'dev_requirement' => true, ), 'phpunit/phpunit' => array( - 'pretty_version' => '11.5.56', - 'version' => '11.5.56.0', - 'reference' => '5f83edffa6967c3db468d48a695ec7bcb02e9256', + 'pretty_version' => '12.5.31', + 'version' => '12.5.31.0', + 'reference' => '0608d157a284f15cc73b99a3327eff06b66a176d', 'type' => 'library', 'install_path' => __DIR__ . '/../phpunit/phpunit', 'aliases' => array(), @@ -931,7 +931,7 @@ 'psr/container-implementation' => array( 'dev_requirement' => false, 'provided' => array( - 0 => '1.1|2.0', + 0 => '1.1 || 2.0', ), ), 'psr/event-dispatcher' => array( @@ -1009,8 +1009,9 @@ 'psr/log-implementation' => array( 'dev_requirement' => false, 'provided' => array( - 0 => '1.0|2.0|3.0', - 1 => '3.0.0', + 0 => '1.0 || 2.0 || 3.0', + 1 => '1.0|2.0|3.0', + 2 => '3.0.0', ), ), 'psr/simple-cache' => array( @@ -1025,7 +1026,8 @@ 'psr/simple-cache-implementation' => array( 'dev_requirement' => false, 'provided' => array( - 0 => '1.0|2.0|3.0', + 0 => '1.0 || 2.0 || 3.0', + 1 => '1.0|2.0|3.0', ), ), 'psy/psysh' => array( @@ -1071,135 +1073,117 @@ ), ), 'sebastian/cli-parser' => array( - 'pretty_version' => '3.0.2', - 'version' => '3.0.2.0', - 'reference' => '15c5dd40dc4f38794d383bb95465193f5e0ae180', + 'pretty_version' => '4.2.1', + 'version' => '4.2.1.0', + 'reference' => '7d05781b13f7dec9043a629a21d086ed74582a15', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/cli-parser', 'aliases' => array(), 'dev_requirement' => true, ), - 'sebastian/code-unit' => array( - 'pretty_version' => '3.0.3', - 'version' => '3.0.3.0', - 'reference' => '54391c61e4af8078e5b276ab082b6d3c54c9ad64', - 'type' => 'library', - 'install_path' => __DIR__ . '/../sebastian/code-unit', - 'aliases' => array(), - 'dev_requirement' => true, - ), - 'sebastian/code-unit-reverse-lookup' => array( - 'pretty_version' => '4.0.1', - 'version' => '4.0.1.0', - 'reference' => '183a9b2632194febd219bb9246eee421dad8d45e', - 'type' => 'library', - 'install_path' => __DIR__ . '/../sebastian/code-unit-reverse-lookup', - 'aliases' => array(), - 'dev_requirement' => true, - ), 'sebastian/comparator' => array( - 'pretty_version' => '6.3.3', - 'version' => '6.3.3.0', - 'reference' => '2c95e1e86cb8dd41beb8d502057d1081ccc8eca9', + 'pretty_version' => '7.1.8', + 'version' => '7.1.8.0', + 'reference' => '7c65c1e79836812819705b473a90c12399542485', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/comparator', 'aliases' => array(), 'dev_requirement' => true, ), 'sebastian/complexity' => array( - 'pretty_version' => '4.0.1', - 'version' => '4.0.1.0', - 'reference' => 'ee41d384ab1906c68852636b6de493846e13e5a0', + 'pretty_version' => '5.0.0', + 'version' => '5.0.0.0', + 'reference' => 'bad4316aba5303d0221f43f8cee37eb58d384bbb', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/complexity', 'aliases' => array(), 'dev_requirement' => true, ), 'sebastian/diff' => array( - 'pretty_version' => '6.0.2', - 'version' => '6.0.2.0', - 'reference' => 'b4ccd857127db5d41a5b676f24b51371d76d8544', + 'pretty_version' => '7.0.0', + 'version' => '7.0.0.0', + 'reference' => '7ab1ea946c012266ca32390913653d844ecd085f', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => true, ), 'sebastian/environment' => array( - 'pretty_version' => '7.2.1', - 'version' => '7.2.1.0', - 'reference' => 'a5c75038693ad2e8d4b6c15ba2403532647830c4', + 'pretty_version' => '8.1.2', + 'version' => '8.1.2.0', + 'reference' => '9d32c685773823b1983e256ae4ecd48a10d6e439', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/environment', 'aliases' => array(), 'dev_requirement' => true, ), 'sebastian/exporter' => array( - 'pretty_version' => '6.3.2', - 'version' => '6.3.2.0', - 'reference' => '70a298763b40b213ec087c51c739efcaa90bcd74', + 'pretty_version' => '7.0.3', + 'version' => '7.0.3.0', + 'reference' => 'c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/exporter', 'aliases' => array(), 'dev_requirement' => true, ), 'sebastian/global-state' => array( - 'pretty_version' => '7.0.2', - 'version' => '7.0.2.0', - 'reference' => '3be331570a721f9a4b5917f4209773de17f747d7', + 'pretty_version' => '8.0.3', + 'version' => '8.0.3.0', + 'reference' => 'b164d3274d6537ab462591c5755f76a8f5b1aae9', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/global-state', 'aliases' => array(), 'dev_requirement' => true, ), 'sebastian/lines-of-code' => array( - 'pretty_version' => '3.0.1', - 'version' => '3.0.1.0', - 'reference' => 'd36ad0d782e5756913e42ad87cb2890f4ffe467a', + 'pretty_version' => '4.0.1', + 'version' => '4.0.1.0', + 'reference' => 'd543b8ef219dcd8da262cbb958639a96bedba10e', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/lines-of-code', 'aliases' => array(), 'dev_requirement' => true, ), 'sebastian/object-enumerator' => array( - 'pretty_version' => '6.0.1', - 'version' => '6.0.1.0', - 'reference' => 'f5b498e631a74204185071eb41f33f38d64608aa', + 'pretty_version' => '7.0.0', + 'version' => '7.0.0.0', + 'reference' => '1effe8e9b8e068e9ae228e542d5d11b5d16db894', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/object-enumerator', 'aliases' => array(), 'dev_requirement' => true, ), 'sebastian/object-reflector' => array( - 'pretty_version' => '4.0.1', - 'version' => '4.0.1.0', - 'reference' => '6e1a43b411b2ad34146dee7524cb13a068bb35f9', + 'pretty_version' => '5.0.0', + 'version' => '5.0.0.0', + 'reference' => '4bfa827c969c98be1e527abd576533293c634f6a', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/object-reflector', 'aliases' => array(), 'dev_requirement' => true, ), 'sebastian/recursion-context' => array( - 'pretty_version' => '6.0.3', - 'version' => '6.0.3.0', - 'reference' => 'f6458abbf32a6c8174f8f26261475dc133b3d9dc', + 'pretty_version' => '7.0.1', + 'version' => '7.0.1.0', + 'reference' => '0b01998a7d5b1f122911a66bebcb8d46f0c82d8c', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/recursion-context', 'aliases' => array(), 'dev_requirement' => true, ), 'sebastian/type' => array( - 'pretty_version' => '5.1.3', - 'version' => '5.1.3.0', - 'reference' => 'f77d2d4e78738c98d9a68d2596fe5e8fa380f449', + 'pretty_version' => '6.0.4', + 'version' => '6.0.4.0', + 'reference' => '82ff822c2edc46724be9f7411d3163021f602773', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/type', 'aliases' => array(), 'dev_requirement' => true, ), 'sebastian/version' => array( - 'pretty_version' => '5.0.2', - 'version' => '5.0.2.0', - 'reference' => 'c687e3387b99f5b03b6caa64c74b63e2936ff874', + 'pretty_version' => '6.0.0', + 'version' => '6.0.0.0', + 'reference' => '3e6ccf7657d4f0a59200564b08cead899313b53c', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/version', 'aliases' => array(), @@ -1317,9 +1301,9 @@ 'dev_requirement' => false, ), 'symfony/console' => array( - 'pretty_version' => 'v7.4.14', - 'version' => '7.4.14.0', - 'reference' => '92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87', + 'pretty_version' => 'v8.1.1', + 'version' => '8.1.1.0', + 'reference' => 'b711a8ab808b6c074c6b8caef70d0fd8d6b6d07d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), @@ -1344,9 +1328,9 @@ 'dev_requirement' => false, ), 'symfony/error-handler' => array( - 'pretty_version' => 'v7.4.14', - 'version' => '7.4.14.0', - 'reference' => '4e1a093b481f323e6e326451f9760c3868430673', + 'pretty_version' => 'v8.1.0', + 'version' => '8.1.0.0', + 'reference' => 'd8aeb1abd3fef84795567850d3a567bdb5945ee5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/error-handler', 'aliases' => array(), @@ -1386,45 +1370,45 @@ 'dev_requirement' => false, ), 'symfony/finder' => array( - 'pretty_version' => 'v7.4.14', - 'version' => '7.4.14.0', - 'reference' => '13b38720174286f55d1761152b575a8d1436fc25', + 'pretty_version' => 'v8.1.1', + 'version' => '8.1.1.0', + 'reference' => 'e2989e762c70f9490fa3a00a0ac0fae5aa97a531', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/http-foundation' => array( - 'pretty_version' => 'v7.4.14', - 'version' => '7.4.14.0', - 'reference' => '06db5ae1552177bf8572f8908839f12e3c06aed3', + 'pretty_version' => 'v8.1.1', + 'version' => '8.1.1.0', + 'reference' => '6a168c8fcee806b57ac020244da14293d1f9a883', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/http-foundation', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/http-kernel' => array( - 'pretty_version' => 'v7.4.14', - 'version' => '7.4.14.0', - 'reference' => 'e99af79b1e776646eda0e1c23b7b45c184ff99be', + 'pretty_version' => 'v8.1.1', + 'version' => '8.1.1.0', + 'reference' => '89d8d6e7fbab3d9eda89ccb5ecdf44a74c4ec9d2', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/http-kernel', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/mailer' => array( - 'pretty_version' => 'v7.4.14', - 'version' => '7.4.14.0', - 'reference' => 'f88ce03ae73e3edb5c176ce1f337709996e88495', + 'pretty_version' => 'v8.1.1', + 'version' => '8.1.1.0', + 'reference' => '4fa583a7377f28d54e4de442fba76375b2e20a12', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/mailer', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/mime' => array( - 'pretty_version' => 'v7.4.13', - 'version' => '7.4.13.0', - 'reference' => 'a845722765c4f6b2ce88beaf4f4479975b186770', + 'pretty_version' => 'v8.1.0', + 'version' => '8.1.0.0', + 'reference' => 'b164ae7e3f7915aacfe9ee155f2f358502440664', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/mime', 'aliases' => array(), @@ -1502,15 +1486,6 @@ 'aliases' => array(), 'dev_requirement' => false, ), - 'symfony/polyfill-php83' => array( - 'pretty_version' => 'v1.38.2', - 'version' => '1.38.2.0', - 'reference' => '796a26abb75ce49f3a84433cd81bf1009d73d5f8', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/polyfill-php83', - 'aliases' => array(), - 'dev_requirement' => false, - ), 'symfony/polyfill-php84' => array( 'pretty_version' => 'v1.38.1', 'version' => '1.38.1.0', @@ -1529,6 +1504,15 @@ 'aliases' => array(), 'dev_requirement' => false, ), + 'symfony/polyfill-php86' => array( + 'pretty_version' => 'v1.38.0', + 'version' => '1.38.0.0', + 'reference' => 'fcec68d64f46dc84e1f6ffcf2c6dda40ff3143ad', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/polyfill-php86', + 'aliases' => array(), + 'dev_requirement' => false, + ), 'symfony/polyfill-uuid' => array( 'pretty_version' => 'v1.37.0', 'version' => '1.37.0.0', @@ -1539,18 +1523,18 @@ 'dev_requirement' => false, ), 'symfony/process' => array( - 'pretty_version' => 'v7.4.13', - 'version' => '7.4.13.0', - 'reference' => 'f5804be144caceb570f6747519999636b664f24c', + 'pretty_version' => 'v8.1.0', + 'version' => '8.1.0.0', + 'reference' => 'c4a9e58f235a6bf7f97ffbfedae2687353ac79e5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/routing' => array( - 'pretty_version' => 'v7.4.13', - 'version' => '7.4.13.0', - 'reference' => '3a162171bb008e5e0f15dce6581373a4c0e8390d', + 'pretty_version' => 'v8.1.0', + 'version' => '8.1.0.0', + 'reference' => 'fe0bfec72c8a806109fb9c3a5f2b898fe0c76eb3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/routing', 'aliases' => array(), @@ -1608,18 +1592,18 @@ ), ), 'symfony/uid' => array( - 'pretty_version' => 'v7.4.9', - 'version' => '7.4.9.0', - 'reference' => '2676b524340abcfe4d6151ec698463cebafee439', + 'pretty_version' => 'v8.1.0', + 'version' => '8.1.0.0', + 'reference' => '7393f157a55f7e70a4de0334435c55a5a8fe749a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/uid', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/var-dumper' => array( - 'pretty_version' => 'v7.4.14', - 'version' => '7.4.14.0', - 'reference' => '9a3a56a4a1e65a5cb4f8d13801fe8ab0a170e358', + 'pretty_version' => 'v8.1.1', + 'version' => '8.1.1.0', + 'reference' => '40096a2515a979f3125c5c928603995b8664c62a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/var-dumper', 'aliases' => array(), @@ -1644,9 +1628,9 @@ 'dev_requirement' => false, ), 'theseer/tokenizer' => array( - 'pretty_version' => '1.3.1', - 'version' => '1.3.1.0', - 'reference' => 'b7489ce515e168639d17feec34b8847c326b0b3c', + 'pretty_version' => '2.0.1', + 'version' => '2.0.1.0', + 'reference' => '7989e43bf381af0eac72e4f0ca5bcbfa81658be4', 'type' => 'library', 'install_path' => __DIR__ . '/../theseer/tokenizer', 'aliases' => array(), diff --git a/vendor/laravel/framework/README.md b/vendor/laravel/framework/README.md index c96e1d6f3..14cda013f 100644 --- a/vendor/laravel/framework/README.md +++ b/vendor/laravel/framework/README.md @@ -29,6 +29,8 @@ Laravel has the most extensive and thorough [documentation](https://laravel.com/ If you're not in the mood to read, [Laracasts](https://laracasts.com) contains thousands of video tutorials covering a range of topics including Laravel, modern PHP, unit testing, JavaScript, and more. Boost the skill level of yourself and your entire team by digging into our comprehensive video library. +You can also watch bite-sized lessons with real-world projects on [Laravel Learn](https://laravel.com/learn), where you will be guided through building a Laravel application from scratch while learning PHP fundamentals. + ## Contributing Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions). diff --git a/vendor/laravel/framework/composer.json b/vendor/laravel/framework/composer.json index c718fe26b..46e87b55f 100644 --- a/vendor/laravel/framework/composer.json +++ b/vendor/laravel/framework/composer.json @@ -1,21 +1,24 @@ { "name": "laravel/framework", "description": "The Laravel Framework.", - "keywords": ["framework", "laravel"], "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, + "keywords": [ + "framework", + "laravel" + ], "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, "require": { - "php": "^8.2", + "php": "^8.3", "ext-ctype": "*", "ext-filter": "*", "ext-hash": "*", @@ -24,15 +27,16 @@ "ext-session": "*", "ext-tokenizer": "*", "composer-runtime-api": "^2.2", - "brick/math": "^0.11|^0.12|^0.13|^0.14", + "brick/math": "^0.14.2 || ^0.15 || ^0.16 || ^0.17 || ^0.18", "doctrine/inflector": "^2.0.5", "dragonmantank/cron-expression": "^3.4", - "egulias/email-validator": "^3.2.1|^4.0", + "egulias/email-validator": "^4.0", "fruitcake/php-cors": "^1.3", "guzzlehttp/guzzle": "^7.8.2", + "guzzlehttp/promises": "^2.0.3", "guzzlehttp/uri-template": "^1.0", "laravel/prompts": "^0.3.0", - "laravel/serializable-closure": "^1.3|^2.0", + "laravel/serializable-closure": "^2.0.10", "league/commonmark": "^2.8.1", "league/flysystem": "^3.25.1", "league/flysystem-local": "^3.25.1", @@ -40,28 +44,55 @@ "monolog/monolog": "^3.0", "nesbot/carbon": "^3.8.4", "nunomaduro/termwind": "^2.0", - "psr/container": "^1.1.1|^2.0.1", - "psr/log": "^1.0|^2.0|^3.0", - "psr/simple-cache": "^1.0|^2.0|^3.0", + "psr/container": "^1.1.1 || ^2.0.1", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "psr/simple-cache": "^1.0 || ^2.0 || ^3.0", "ramsey/uuid": "^4.7", - "symfony/console": "^7.2.0", - "symfony/error-handler": "^7.2.0", - "symfony/finder": "^7.2.0", - "symfony/http-foundation": "^7.2.0", - "symfony/http-kernel": "^7.2.0", - "symfony/mailer": "^7.2.0", - "symfony/mime": "^7.2.0", - "symfony/polyfill-php83": "^1.33", - "symfony/polyfill-php84": "^1.34", - "symfony/polyfill-php85": "^1.34", - "symfony/process": "^7.2.0", - "symfony/routing": "^7.2.0", - "symfony/uid": "^7.2.0", - "symfony/var-dumper": "^7.2.0", + "symfony/console": "^7.4.0 || ^8.0.0", + "symfony/error-handler": "^7.4.0 || ^8.0.0", + "symfony/finder": "^7.4.0 || ^8.0.0", + "symfony/http-foundation": "^7.4.0 || ^8.0.0", + "symfony/http-kernel": "^7.4.0 || ^8.0.0", + "symfony/mailer": "^7.4.0 || ^8.0.0", + "symfony/mime": "^7.4.0 || ^8.0.0", + "symfony/polyfill-php84": "^1.36", + "symfony/polyfill-php85": "^1.36", + "symfony/polyfill-php86": "^1.36", + "symfony/process": "^7.4.5 || ^8.0.5", + "symfony/routing": "^7.4.0 || ^8.0.0", + "symfony/uid": "^7.4.0 || ^8.0.0", + "symfony/var-dumper": "^7.4.0 || ^8.0.0", "tijsverkoyen/css-to-inline-styles": "^2.2.5", "vlucas/phpdotenv": "^5.6.1", "voku/portable-ascii": "^2.0.2" }, + "require-dev": { + "ext-gmp": "*", + "ably/ably-php": "^1.0", + "aws/aws-sdk-php": "^3.322.9", + "fakerphp/faker": "^1.24", + "guzzlehttp/psr7": "^2.9", + "laravel/pint": "^1.18", + "league/flysystem-aws-s3-v3": "^3.25.1", + "league/flysystem-ftp": "^3.25.1", + "league/flysystem-path-prefixing": "^3.25.1", + "league/flysystem-read-only": "^3.25.1", + "league/flysystem-sftp-v3": "^3.25.1", + "mockery/mockery": "^1.6.10", + "opis/json-schema": "^2.4.1", + "orchestra/testbench-core": "^11.0.0", + "pda/pheanstalk": "^7.0.0 || ^8.0.0", + "php-http/discovery": "^1.15", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^11.5.50 || ^12.5.8 || ^13.0.3", + "predis/predis": "^2.3 || ^3.0", + "rector/rector": "^2.3", + "resend/resend-php": "^1.0", + "symfony/cache": "^7.4.0 || ^8.0.0", + "symfony/http-client": "^7.4.0 || ^8.0.0", + "symfony/psr-http-message-bridge": "^7.4.0 || ^8.0.0", + "symfony/translation": "^7.4.0 || ^8.0.0" + }, "replace": { "illuminate/auth": "self.version", "illuminate/broadcasting": "self.version", @@ -90,8 +121,8 @@ "illuminate/pipeline": "self.version", "illuminate/process": "self.version", "illuminate/queue": "self.version", - "illuminate/reflection": "self.version", "illuminate/redis": "self.version", + "illuminate/reflection": "self.version", "illuminate/routing": "self.version", "illuminate/session": "self.version", "illuminate/support": "self.version", @@ -101,75 +132,13 @@ "illuminate/view": "self.version", "spatie/once": "*" }, - "require-dev": { - "ext-gmp": "*", - "ably/ably-php": "^1.0", - "aws/aws-sdk-php": "^3.322.9", - "fakerphp/faker": "^1.24", - "guzzlehttp/promises": "^2.0.3", - "guzzlehttp/psr7": "^2.4", - "laravel/pint": "^1.18", - "league/flysystem-aws-s3-v3": "^3.25.1", - "league/flysystem-ftp": "^3.25.1", - "league/flysystem-path-prefixing": "^3.25.1", - "league/flysystem-read-only": "^3.25.1", - "league/flysystem-sftp-v3": "^3.25.1", - "mockery/mockery": "^1.6.10", - "opis/json-schema": "^2.4.1", - "orchestra/testbench-core": "^10.9.0", - "pda/pheanstalk": "^5.0.6|^7.0.0", - "php-http/discovery": "^1.15", - "phpstan/phpstan": "^2.1.41", - "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1", - "predis/predis": "^2.3|^3.0", - "resend/resend-php": "^0.10.0|^1.0", - "symfony/cache": "^7.2.0", - "symfony/http-client": "^7.2.0", - "symfony/psr-http-message-bridge": "^7.2.0", - "symfony/translation": "^7.2.0" - }, "conflict": { "tightenco/collect": "<5.5.33" }, "provide": { - "psr/container-implementation": "1.1|2.0", - "psr/log-implementation": "1.0|2.0|3.0", - "psr/simple-cache-implementation": "1.0|2.0|3.0" - }, - "autoload": { - "files": [ - "src/Illuminate/Collections/functions.php", - "src/Illuminate/Collections/helpers.php", - "src/Illuminate/Events/functions.php", - "src/Illuminate/Filesystem/functions.php", - "src/Illuminate/Foundation/helpers.php", - "src/Illuminate/Log/functions.php", - "src/Illuminate/Reflection/helpers.php", - "src/Illuminate/Support/functions.php", - "src/Illuminate/Support/helpers.php" - ], - "psr-4": { - "Illuminate\\": "src/Illuminate/", - "Illuminate\\Support\\": [ - "src/Illuminate/Macroable/", - "src/Illuminate/Collections/", - "src/Illuminate/Conditionable/", - "src/Illuminate/Reflection/" - ] - } - }, - "autoload-dev": { - "files": [ - "tests/Database/stubs/MigrationCreatorFakeMigration.php" - ], - "psr-4": { - "Illuminate\\Tests\\": "tests/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } + "psr/container-implementation": "1.1 || 2.0", + "psr/log-implementation": "1.0 || 2.0 || 3.0", + "psr/simple-cache-implementation": "1.0 || 2.0 || 3.0" }, "suggest": { "ext-apcu": "Required to use the APC cache driver.", @@ -180,10 +149,10 @@ "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.", "ext-pdo": "Required to use all database features.", "ext-posix": "Required to use all features of the queue worker.", - "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0|^6.0).", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0 || ^5.0 || ^6.0).", "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.322.9).", - "brianium/paratest": "Required to run tests in parallel (^7.0|^8.0).", + "brianium/paratest": "Required to run tests in parallel (^7.0 || ^8.0).", "fakerphp/faker": "Required to generate fake data using the fake() helper (^1.23).", "filp/whoops": "Required for friendly error pages in development (^2.14.3).", "laravel/tinker": "Required to use the tinker console command (^2.0).", @@ -193,32 +162,69 @@ "league/flysystem-read-only": "Required to use read-only disks (^3.25.1)", "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.25.1).", "mockery/mockery": "Required to use mocking (^1.6).", - "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (^7.0 || ^8.0).", "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).", - "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.5.3|^12.0.1).", - "predis/predis": "Required to use the predis connector (^2.3|^3.0).", + "phpunit/phpunit": "Required to use assertions and run tests (^11.5.50 || ^12.5.8 || ^13.0.3).", + "predis/predis": "Required to use the predis connector (^2.3 || ^3.0).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", - "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0|^1.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^7.2).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).", - "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).", - "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.2).", - "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.2).", - "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.2)." + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0 || ^7.0).", + "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0 || ^1.0).", + "spatie/fork": "Required to use the 'fork' concurrency driver (^1.2).", + "symfony/cache": "Required to PSR-6 cache bridge (^7.4 || ^8.0).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^7.4 || ^8.0).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.4 || ^8.0).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.4 || ^8.0).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.4 || ^8.0).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.4 || ^8.0)." + }, + "minimum-stability": "dev", + "prefer-stable": true, + "autoload": { + "psr-4": { + "Illuminate\\": "src/Illuminate/", + "Illuminate\\Support\\": [ + "src/Illuminate/Macroable/", + "src/Illuminate/Collections/", + "src/Illuminate/Conditionable/", + "src/Illuminate/Reflection/" + ] + }, + "files": [ + "src/Illuminate/Collections/functions.php", + "src/Illuminate/Collections/helpers.php", + "src/Illuminate/Events/functions.php", + "src/Illuminate/Filesystem/functions.php", + "src/Illuminate/Foundation/helpers.php", + "src/Illuminate/Log/functions.php", + "src/Illuminate/Reflection/helpers.php", + "src/Illuminate/Support/functions.php", + "src/Illuminate/Support/helpers.php" + ] + }, + "autoload-dev": { + "psr-4": { + "Illuminate\\Tests\\": "tests/" + }, + "files": [ + "tests/Database/stubs/MigrationCreatorFakeMigration.php" + ] }, "config": { - "sort-packages": true, - "audit": { - "ignore": { - "GHSA-vvj3-c3rp-c85p": "Ensure testing features are compatible with affected PHPUnit versions" - } - }, "allow-plugins": { "composer/package-versions-deprecated": true, "php-http/discovery": false - } + }, + "audit": { + "ignore": { + "GHSA-qrr6-mg7r-m243": "Ensure testing features are compatible with affected PHPUnit versions", + "GHSA-vvj3-c3rp-c85p": "Ensure testing features are compatible with affected PHPUnit versions" + } + }, + "sort-packages": true }, - "minimum-stability": "dev", - "prefer-stable": true + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/config/app.php b/vendor/laravel/framework/config/app.php index 1ced8bef0..f2d907ecf 100644 --- a/vendor/laravel/framework/config/app.php +++ b/vendor/laravel/framework/config/app.php @@ -143,7 +143,7 @@ return [ | manage Laravel's "maintenance mode" status. The "cache" driver will | allow maintenance mode to be controlled across multiple machines. | - | Supported drivers: "file", "cache" + | Supported drivers: "file", "cache", "array" | */ diff --git a/vendor/laravel/framework/config/cache.php b/vendor/laravel/framework/config/cache.php index 8c603805a..923671e14 100644 --- a/vendor/laravel/framework/config/cache.php +++ b/vendor/laravel/framework/config/cache.php @@ -27,8 +27,8 @@ return [ | same cache driver to group types of items stored in your caches. | | Supported drivers: "array", "database", "file", "memcached", - | "redis", "dynamodb", "octane", - | "failover", "null" + | "redis", "dynamodb", "storage", "octane", + | "session", "failover", "null" | */ @@ -58,6 +58,12 @@ return [ 'lock_path' => storage_path('framework/cache/data'), ], + 'storage' => [ + 'driver' => 'storage', + 'disk' => env('CACHE_STORAGE_DISK'), + 'path' => env('CACHE_STORAGE_PATH', 'framework/cache/data'), + ], + 'memcached' => [ 'driver' => 'memcached', 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), @@ -117,6 +123,6 @@ return [ | */ - 'prefix' => env('CACHE_PREFIX', Str::slug((string) env('APP_NAME', 'laravel'), '_').'_cache_'), + 'prefix' => env('CACHE_PREFIX', Str::slug((string) env('APP_NAME', 'laravel')).'-cache-'), ]; diff --git a/vendor/laravel/framework/config/database.php b/vendor/laravel/framework/config/database.php index 870d753cb..dcfe3f033 100644 --- a/vendor/laravel/framework/config/database.php +++ b/vendor/laravel/framework/config/database.php @@ -99,6 +99,14 @@ return [ 'prefix_indexes' => true, 'search_path' => 'public', 'sslmode' => 'prefer', + 'pooled' => env('DB_POOLED', false), + 'direct' => array_filter([ + 'host' => env('DB_DIRECT_HOST'), + 'port' => env('DB_DIRECT_PORT'), + 'username' => env('DB_DIRECT_USERNAME'), + 'password' => env('DB_DIRECT_PASSWORD'), + 'sslmode' => env('DB_DIRECT_SSLMODE'), + ]), ], 'sqlsrv' => [ @@ -151,7 +159,7 @@ return [ 'options' => [ 'cluster' => env('REDIS_CLUSTER', 'redis'), - 'prefix' => env('REDIS_PREFIX', Str::slug((string) env('APP_NAME', 'laravel'), '_').'_database_'), + 'prefix' => env('REDIS_PREFIX', Str::slug((string) env('APP_NAME', 'laravel')).'-database-'), 'persistent' => env('REDIS_PERSISTENT', false), ], diff --git a/vendor/laravel/framework/config/queue.php b/vendor/laravel/framework/config/queue.php index 9d5e58959..771a3362d 100644 --- a/vendor/laravel/framework/config/queue.php +++ b/vendor/laravel/framework/config/queue.php @@ -62,6 +62,13 @@ return [ 'suffix' => env('SQS_SUFFIX'), 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), 'after_commit' => false, + 'overflow' => [ + 'enabled' => env('SQS_OVERFLOW_ENABLED', false), + 'store' => env('SQS_OVERFLOW_STORE'), + 'always' => false, + 'delete_after_processing' => true, + 'flush_on_clear' => env('SQS_OVERFLOW_FLUSH_ON_CLEAR', false), + ], ], 'redis' => [ diff --git a/vendor/laravel/framework/config/session.php b/vendor/laravel/framework/config/session.php index 13d86a4ac..f348f5f8c 100644 --- a/vendor/laravel/framework/config/session.php +++ b/vendor/laravel/framework/config/session.php @@ -129,7 +129,7 @@ return [ 'cookie' => env( 'SESSION_COOKIE', - Str::slug((string) env('APP_NAME', 'laravel'), '_').'_session' + Str::snake((string) env('APP_NAME', 'laravel')).'_session' ), /* diff --git a/vendor/laravel/framework/pint.json b/vendor/laravel/framework/pint.json deleted file mode 100644 index c80a30c5c..000000000 --- a/vendor/laravel/framework/pint.json +++ /dev/null @@ -1,212 +0,0 @@ -{ - "preset": "empty", - "rules": { - "align_multiline_comment": true, - "array_indentation": true, - "array_syntax": { - "syntax": "short" - }, - "binary_operator_spaces": { - "default": "single_space" - }, - "blank_line_after_namespace": true, - "blank_line_after_opening_tag": true, - "blank_line_before_statement": { - "statements": [ - "return" - ] - }, - "blank_line_between_import_groups": true, - "blank_lines_before_namespace": true, - "braces_position": { - "control_structures_opening_brace": "same_line", - "functions_opening_brace": "next_line_unless_newline_at_signature_end", - "anonymous_functions_opening_brace": "same_line", - "classes_opening_brace": "next_line_unless_newline_at_signature_end", - "anonymous_classes_opening_brace": "next_line_unless_newline_at_signature_end", - "allow_single_line_empty_anonymous_classes": false, - "allow_single_line_anonymous_functions": false - }, - "cast_spaces": true, - "class_definition": true, - "class_reference_name_casing": true, - "clean_namespace": true, - "compact_nullable_type_declaration": true, - "concat_space": true, - "constant_case": { - "case": "lower" - }, - "control_structure_braces": true, - "declare_equal_normalize": true, - "elseif": true, - "encoding": true, - "full_opening_tag": true, - "function_declaration": true, - "heredoc_to_nowdoc": true, - "include": true, - "increment_style": { - "style": "post" - }, - "indentation_type": true, - "integer_literal_case": true, - "lambda_not_used_import": true, - "line_ending": true, - "list_syntax": { - "syntax": "short" - }, - "lowercase_cast": true, - "lowercase_keywords": true, - "lowercase_static_reference": true, - "magic_constant_casing": true, - "magic_method_casing": true, - "method_argument_space": { - "on_multiline": "ignore" - }, - "method_chaining_indentation": true, - "modernize_types_casting": true, - "multiline_whitespace_before_semicolons": { - "strategy": "no_multi_line" - }, - "native_function_casing": true, - "native_type_declaration_casing": true, - "no_alternative_syntax": true, - "no_binary_string": true, - "no_blank_lines_after_class_opening": true, - "no_blank_lines_after_phpdoc": true, - "no_closing_tag": true, - "no_empty_phpdoc": true, - "no_empty_statement": true, - "no_extra_blank_lines": { - "tokens": [ - "extra", - "throw", - "use" - ] - }, - "no_leading_import_slash": true, - "no_leading_namespace_whitespace": true, - "no_mixed_echo_print": { - "use": "echo" - }, - "no_multiline_whitespace_around_double_arrow": true, - "no_short_bool_cast": true, - "no_singleline_whitespace_before_semicolons": true, - "no_space_around_double_colon": true, - "no_spaces_around_offset": { - "positions": [ - "inside", - "outside" - ] - }, - "no_spaces_after_function_name": true, - "no_trailing_comma_in_singleline": true, - "no_trailing_whitespace": true, - "no_trailing_whitespace_in_comment": true, - "no_unneeded_braces": true, - "no_unneeded_control_parentheses": true, - "no_unneeded_import_alias": true, - "no_unset_cast": true, - "no_unused_imports": true, - "no_useless_return": true, - "no_whitespace_before_comma_in_array": true, - "no_whitespace_in_blank_line": true, - "normalize_index_brace": true, - "not_operator_with_successor_space": true, - "nullable_type_declaration_for_default_null_value": true, - "object_operator_without_whitespace": true, - "ordered_imports": { - "sort_algorithm": "alpha", - "imports_order": [ - "const", - "class", - "function" - ] - }, - "phpdoc_align": { - "align": "left", - "spacing": { - "param": 2 - } - }, - "phpdoc_indent": true, - "phpdoc_inline_tag_normalizer": true, - "phpdoc_no_access": true, - "phpdoc_no_package": true, - "phpdoc_no_useless_inheritdoc": true, - "phpdoc_order": { - "order": [ - "param", - "return", - "throws" - ] - }, - "phpdoc_return_self_reference": true, - "phpdoc_scalar": true, - "phpdoc_separation": { - "groups": [ - [ - "deprecated", - "link", - "see", - "since" - ], - [ - "author", - "copyright", - "license" - ], - [ - "category", - "package", - "subpackage" - ], - [ - "property", - "property-read", - "property-write" - ], - [ - "param", - "return" - ] - ] - }, - "phpdoc_single_line_var_spacing": true, - "phpdoc_summary": true, - "phpdoc_trim": true, - "phpdoc_types": true, - "phpdoc_var_without_name": true, - "return_type_declaration": { - "space_before": "none" - }, - "short_scalar_cast": true, - "single_blank_line_at_eof": true, - "single_class_element_per_statement": true, - "single_import_per_statement": true, - "single_line_after_imports": true, - "single_line_comment_style": true, - "single_quote": true, - "space_after_semicolon": true, - "spaces_inside_parentheses": true, - "standardize_not_equals": true, - "switch_case_semicolon_to_colon": true, - "switch_case_space": true, - "switch_continue_to_break": true, - "ternary_operator_spaces": true, - "trailing_comma_in_multiline": true, - "trim_array_spaces": true, - "type_declaration_spaces": true, - "types_spaces": true, - "unary_operator_spaces": true, - "visibility_required": { - "elements": [ - "method", - "property" - ] - }, - "whitespace_after_comma_in_array": true - }, - "notPath": [ - "tests/Foundation/fixtures/bad-syntax-strategy.php" - ] -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php b/vendor/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php index 1dd157e34..bc4cd525e 100644 --- a/vendor/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php +++ b/vendor/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php @@ -8,7 +8,7 @@ use Throwable; class AuthorizationException extends Exception { /** - * The response from the gate. + * The authorization response returned by the gate. * * @var \Illuminate\Auth\Access\Response */ diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Access/Gate.php b/vendor/laravel/framework/src/Illuminate/Auth/Access/Gate.php index eea0617a2..116af25a1 100644 --- a/vendor/laravel/framework/src/Illuminate/Auth/Access/Gate.php +++ b/vendor/laravel/framework/src/Illuminate/Auth/Access/Gate.php @@ -124,13 +124,7 @@ class Gate implements GateContract { $abilities = is_array($ability) ? $ability : func_get_args(); - foreach ($abilities as $ability) { - if (! isset($this->abilities[enum_value($ability)])) { - return false; - } - } - - return true; + return array_all($abilities, fn ($ability) => isset($this->abilities[enum_value($ability)])); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php b/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php index b7ede4c96..09c19fb99 100755 --- a/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php +++ b/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php @@ -4,7 +4,12 @@ namespace Illuminate\Auth; use Closure; use Illuminate\Contracts\Auth\Factory as FactoryContract; +use Illuminate\Support\RebindsCallbacksToSelf; use InvalidArgumentException; +use ReflectionException; +use RuntimeException; + +use function Illuminate\Support\enum_value; /** * @mixin \Illuminate\Contracts\Auth\Guard @@ -12,7 +17,7 @@ use InvalidArgumentException; */ class AuthManager implements FactoryContract { - use CreatesUserProviders; + use CreatesUserProviders, RebindsCallbacksToSelf; /** * The application instance. @@ -59,12 +64,12 @@ class AuthManager implements FactoryContract /** * Attempt to get the guard from the local cache. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return \Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard */ public function guard($name = null) { - $name = $name ?: $this->getDefaultDriver(); + $name = enum_value($name) ?: $this->getDefaultDriver(); return $this->guards[$name] ??= $this->resolve($name); } @@ -195,12 +200,12 @@ class AuthManager implements FactoryContract /** * Set the default guard driver the factory should serve. * - * @param string $name + * @param \UnitEnum|string|null $name * @return void */ public function shouldUse($name) { - $name = $name ?: $this->getDefaultDriver(); + $name = enum_value($name) ?: $this->getDefaultDriver(); $this->setDefaultDriver($name); @@ -210,12 +215,12 @@ class AuthManager implements FactoryContract /** * Set the default authentication driver name. * - * @param string $name + * @param \UnitEnum|string $name * @return void */ public function setDefaultDriver($name) { - $this->app['config']['auth.defaults.guard'] = $name; + $this->app['config']['auth.defaults.guard'] = enum_value($name); } /** @@ -264,10 +269,19 @@ class AuthManager implements FactoryContract * * @param string $driver * @param \Closure $callback + * + * @param-closure-this $this $callback + * * @return $this */ public function extend($driver, Closure $callback) { + try { + $callback = $this->bindCallbackToSelf($callback) ?? throw new RuntimeException('Unable to bind custom driver callback'); + } catch (ReflectionException $e) { + throw new RuntimeException('Unable to bind custom driver callback', previous: $e); + } + $this->customCreators[$driver] = $callback; return $this; diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php b/vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php index 3689cf027..b9bf81b46 100644 --- a/vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php +++ b/vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php @@ -74,7 +74,7 @@ class ResetPassword extends Notification protected function buildMailMessage($url) { return (new MailMessage) - ->subject(Lang::get('Reset Password Notification')) + ->subject(Lang::get('Reset your password')) ->line(Lang::get('You are receiving this email because we received a password reset request for your account.')) ->action(Lang::get('Reset Password'), $url) ->line(Lang::get('This password reset link will expire in :count minutes.', ['count' => config('auth.passwords.'.config('auth.defaults.passwords').'.expire')])) diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Notifications/VerifyEmail.php b/vendor/laravel/framework/src/Illuminate/Auth/Notifications/VerifyEmail.php index 7c4efc31c..684c1b154 100644 --- a/vendor/laravel/framework/src/Illuminate/Auth/Notifications/VerifyEmail.php +++ b/vendor/laravel/framework/src/Illuminate/Auth/Notifications/VerifyEmail.php @@ -62,7 +62,7 @@ class VerifyEmail extends Notification protected function buildMailMessage($url) { return (new MailMessage) - ->subject(Lang::get('Verify Email Address')) + ->subject(Lang::get('Verify your email address')) ->line(Lang::get('Please click the button below to verify your email address.')) ->action(Lang::get('Verify Email Address'), $url) ->line(Lang::get('If you did not create an account, no further action is required.')); diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php index 6e42bba19..6275933db 100644 --- a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php +++ b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php @@ -5,6 +5,8 @@ namespace Illuminate\Auth\Passwords; use Illuminate\Contracts\Auth\PasswordBrokerFactory as FactoryContract; use InvalidArgumentException; +use function Illuminate\Support\enum_value; + /** * @mixin \Illuminate\Contracts\Auth\PasswordBroker */ @@ -37,12 +39,12 @@ class PasswordBrokerManager implements FactoryContract /** * Attempt to get the broker from the local cache. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return \Illuminate\Contracts\Auth\PasswordBroker */ public function broker($name = null) { - $name = $name ?: $this->getDefaultDriver(); + $name = enum_value($name) ?: $this->getDefaultDriver(); return $this->brokers[$name] ?? ($this->brokers[$name] = $this->resolve($name)); } @@ -132,12 +134,12 @@ class PasswordBrokerManager implements FactoryContract /** * Set the default password broker name. * - * @param string $name + * @param \UnitEnum|string $name * @return void */ public function setDefaultDriver($name) { - $this->app['config']['auth.defaults.passwords'] = $name; + $this->app['config']['auth.defaults.passwords'] = enum_value($name); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Auth/composer.json b/vendor/laravel/framework/src/Illuminate/Auth/composer.json index 7073f8b06..bc7bf214c 100644 --- a/vendor/laravel/framework/src/Illuminate/Auth/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Auth/composer.json @@ -2,44 +2,44 @@ "name": "illuminate/auth", "description": "The Illuminate Auth package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "ext-hash": "*", - "illuminate/collections": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/http": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/queue": "^12.0", - "illuminate/support": "^12.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "ext-hash": "*", + "illuminate/collections": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/http": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/queue": "^13.0", + "illuminate/support": "^13.0" + }, + "suggest": { + "illuminate/console": "Required to use the auth:clear-resets command (^13.0).", + "illuminate/queue": "Required to fire login / logout events (^13.0).", + "illuminate/session": "Required to use the session based guard (^13.0)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Auth\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "suggest": { - "illuminate/console": "Required to use the auth:clear-resets command (^12.0).", - "illuminate/queue": "Required to fire login / logout events (^12.0).", - "illuminate/session": "Required to use the session based guard (^12.0)." - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastEvent.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastEvent.php index 2ed30c530..1ac336899 100644 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastEvent.php +++ b/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastEvent.php @@ -6,14 +6,22 @@ use Illuminate\Bus\Queueable; use Illuminate\Contracts\Broadcasting\Factory as BroadcastingFactory; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Support\Arrayable; +use Illuminate\Queue\Attributes\Backoff; +use Illuminate\Queue\Attributes\DeleteWhenMissingModels; +use Illuminate\Queue\Attributes\MaxExceptions; +use Illuminate\Queue\Attributes\ReadsQueueAttributes; +use Illuminate\Queue\Attributes\Timeout; +use Illuminate\Queue\Attributes\Tries; use Illuminate\Support\Arr; use ReflectionClass; use ReflectionProperty; use Throwable; +use function Illuminate\Support\enum_value; + class BroadcastEvent implements ShouldQueue { - use Queueable; + use Queueable, ReadsQueueAttributes; /** * The event instance. @@ -65,11 +73,12 @@ class BroadcastEvent implements ShouldQueue public function __construct($event) { $this->event = $event; - $this->tries = property_exists($event, 'tries') ? $event->tries : null; - $this->timeout = property_exists($event, 'timeout') ? $event->timeout : null; - $this->backoff = property_exists($event, 'backoff') ? $event->backoff : null; + $this->tries = $this->getAttributeValue($event, Tries::class, 'tries'); + $this->timeout = $this->getAttributeValue($event, Timeout::class, 'timeout'); + $this->backoff = $this->getAttributeValue($event, Backoff::class, 'backoff'); $this->afterCommit = property_exists($event, 'afterCommit') ? $event->afterCommit : null; - $this->maxExceptions = property_exists($event, 'maxExceptions') ? $event->maxExceptions : null; + $this->maxExceptions = $this->getAttributeValue($event, MaxExceptions::class, 'maxExceptions'); + $this->deleteWhenMissingModels = $this->getAttributeValue($event, DeleteWhenMissingModels::class, 'deleteWhenMissingModels'); } /** @@ -81,7 +90,7 @@ class BroadcastEvent implements ShouldQueue public function handle(BroadcastingFactory $manager) { $name = method_exists($this->event, 'broadcastAs') - ? $this->event->broadcastAs() + ? enum_value($this->event->broadcastAs()) : get_class($this->event); $channels = Arr::wrap($this->event->broadcastOn()); diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php index 303eb28b6..da6d7115d 100644 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php +++ b/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php @@ -18,17 +18,27 @@ use Illuminate\Contracts\Broadcasting\ShouldRescue; use Illuminate\Contracts\Bus\Dispatcher as BusDispatcherContract; use Illuminate\Contracts\Cache\Repository as Cache; use Illuminate\Contracts\Foundation\CachesRoutes; +use Illuminate\Queue\Attributes\Connection as ConnectionAttribute; +use Illuminate\Queue\Attributes\Queue as QueueAttribute; +use Illuminate\Queue\Attributes\ReadsQueueAttributes; +use Illuminate\Support\Queue\Concerns\ResolvesQueueRoutes; +use Illuminate\Support\RebindsCallbacksToSelf; use InvalidArgumentException; use Psr\Log\LoggerInterface; use Pusher\Pusher; +use ReflectionException; use RuntimeException; use Throwable; +use function Illuminate\Support\enum_value; + /** * @mixin \Illuminate\Contracts\Broadcasting\Broadcaster */ class BroadcastManager implements FactoryContract { + use ReadsQueueAttributes, RebindsCallbacksToSelf, ResolvesQueueRoutes; + /** * The application instance. * @@ -78,7 +88,7 @@ class BroadcastManager implements FactoryContract $router->match( ['get', 'post'], '/broadcasting/auth', '\\'.BroadcastController::class.'@authenticate' - )->withoutMiddleware([\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class]); + )->withoutMiddleware([\Illuminate\Foundation\Http\Middleware\PreventRequestForgery::class]); }); } @@ -100,7 +110,7 @@ class BroadcastManager implements FactoryContract $router->match( ['get', 'post'], '/broadcasting/user-auth', '\\'.BroadcastController::class.'@authenticateUser' - )->withoutMiddleware([\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class]); + )->withoutMiddleware([\Illuminate\Foundation\Http\Middleware\PreventRequestForgery::class]); }); } @@ -196,6 +206,12 @@ class BroadcastManager implements FactoryContract default => null, }; + if (is_null($queue)) { + $queue = $this->getAttributeValue($event, QueueAttribute::class, 'queue') + ?? $this->resolveQueueFromQueueRoute($event) + ?? null; + } + $broadcastEvent = new BroadcastEvent(clone $event); if ($event instanceof ShouldBeUnique) { @@ -207,7 +223,12 @@ class BroadcastManager implements FactoryContract } $push = fn () => $this->app->make('queue') - ->connection($event->connection ?? null) + ->connection( + $event->connection + ?? $this->getAttributeValue($event, ConnectionAttribute::class, 'connection') + ?? $this->resolveConnectionFromQueueRoute($event) + ?? null + ) ->pushOn($queue, $broadcastEvent); $event instanceof ShouldRescue @@ -231,25 +252,25 @@ class BroadcastManager implements FactoryContract } /** - * Get a driver instance. + * Get a broadcaster instance by name. * - * @param string|null $driver + * @param \UnitEnum|string|null $name * @return mixed */ - public function connection($driver = null) + public function connection($name = null) { - return $this->driver($driver); + return $this->driver($name); } /** * Get a driver instance. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return mixed */ public function driver($name = null) { - $name = $name ?: $this->getDefaultDriver(); + $name = enum_value($name) ?: $this->getDefaultDriver(); return $this->drivers[$name] = $this->get($name); } @@ -272,6 +293,7 @@ class BroadcastManager implements FactoryContract * @return \Illuminate\Contracts\Broadcasting\Broadcaster * * @throws \InvalidArgumentException + * @throws \RuntimeException */ protected function resolve($name) { @@ -447,29 +469,29 @@ class BroadcastManager implements FactoryContract */ public function getDefaultDriver() { - return $this->app['config']['broadcasting.default']; + return $this->app['config']['broadcasting.default'] ?? 'null'; } /** * Set the default driver name. * - * @param string $name + * @param \UnitEnum|string $name * @return void */ public function setDefaultDriver($name) { - $this->app['config']['broadcasting.default'] = $name; + $this->app['config']['broadcasting.default'] = enum_value($name); } /** * Disconnect the given driver / connection and remove it from local cache. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return void */ public function purge($name = null) { - $name ??= $this->getDefaultDriver(); + $name = enum_value($name) ?? $this->getDefaultDriver(); unset($this->drivers[$name]); } @@ -479,10 +501,19 @@ class BroadcastManager implements FactoryContract * * @param string $driver * @param \Closure $callback + * + * @param-closure-this $this $callback + * * @return $this */ public function extend($driver, Closure $callback) { + try { + $callback = $this->bindCallbackToSelf($callback) ?? throw new RuntimeException('Unable to bind custom driver callback'); + } catch (ReflectionException $e) { + throw new RuntimeException('Unable to bind custom driver callback', previous: $e); + } + $this->customCreators[$driver] = $callback; return $this; diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/composer.json b/vendor/laravel/framework/src/Illuminate/Broadcasting/composer.json index 103b02ac2..b4820d423 100644 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Broadcasting/composer.json @@ -2,44 +2,44 @@ "name": "illuminate/broadcasting", "description": "The Illuminate Broadcasting package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "psr/log": "^1.0|^2.0|^3.0", - "illuminate/bus": "^12.0", - "illuminate/collections": "^12.0", - "illuminate/container": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/queue": "^12.0", - "illuminate/support": "^12.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "illuminate/bus": "^13.0", + "illuminate/collections": "^13.0", + "illuminate/container": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/queue": "^13.0", + "illuminate/support": "^13.0", + "psr/log": "^1.0 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-hash": "Required to use the Ably and Pusher broadcast drivers.", + "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0 || ^7.0)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Broadcasting\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "suggest": { - "ext-hash": "Required to use the Ably and Pusher broadcast drivers.", - "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0)." - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Bus/Batch.php b/vendor/laravel/framework/src/Illuminate/Bus/Batch.php index 196400577..a37e8c20a 100644 --- a/vendor/laravel/framework/src/Illuminate/Bus/Batch.php +++ b/vendor/laravel/framework/src/Illuminate/Bus/Batch.php @@ -6,6 +6,7 @@ use Carbon\CarbonImmutable; use Closure; use Illuminate\Bus\Events\BatchCanceled; use Illuminate\Bus\Events\BatchFinished; +use Illuminate\Bus\Events\BatchStarted; use Illuminate\Container\Container; use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\Queue\Factory as QueueFactory; @@ -136,7 +137,7 @@ class Batch implements Arrayable, JsonSerializable /** * Get a fresh instance of the batch represented by this ID. * - * @return self + * @return self|null */ public function fresh() { @@ -147,7 +148,7 @@ class Batch implements Arrayable, JsonSerializable * Add additional jobs to the batch. * * @param \Illuminate\Support\Enumerable|object|array $jobs - * @return self + * @return self|null */ public function add($jobs) { @@ -161,10 +162,17 @@ class Batch implements Arrayable, JsonSerializable $chain = $this->prepareBatchedChain($job); - return $chain->first() - ->allOnQueue($this->options['queue'] ?? null) - ->allOnConnection($this->options['connection'] ?? null) - ->chain($chain->slice(1)->values()->all()); + $first = $chain->first(); + + if (isset($this->options['queue'])) { + $first->allOnQueue($this->options['queue']); + } + + if (isset($this->options['connection'])) { + $first->allOnConnection($this->options['connection']); + } + + return $first->chain($chain->slice(1)->values()->all()); } else { $job->withBatchId($this->id); @@ -230,6 +238,14 @@ class Batch implements Arrayable, JsonSerializable { $counts = $this->decrementPendingJobs($jobId); + if ($this->isFirstJobProcessed($counts)) { + $container = Container::getInstance(); + + if ($container->bound(Dispatcher::class)) { + $container->make(Dispatcher::class)->dispatch(new BatchStarted($this)); + } + } + if ($this->hasProgressCallbacks()) { $this->invokeCallbacks('progress'); } @@ -335,8 +351,16 @@ class Batch implements Arrayable, JsonSerializable { $counts = $this->incrementFailedJobs($jobId); + if ($this->isFirstJobProcessed($counts)) { + $container = Container::getInstance(); + + if ($container->bound(Dispatcher::class)) { + $container->make(Dispatcher::class)->dispatch(new BatchStarted($this)); + } + } + if ($counts->failedJobs === 1 && ! $this->allowsFailures()) { - $this->cancel(); + $this->cancel($e); } if ($this->allowsFailures()) { @@ -368,6 +392,16 @@ class Batch implements Arrayable, JsonSerializable return $this->repository->incrementFailedJobs($this->id, $jobId); } + /** + * Determine if this is the first job processed in the batch. + * + * @return bool + */ + protected function isFirstJobProcessed(UpdatedBatchJobCounts $counts): bool + { + return $this->totalJobs - $counts->pendingJobs + $counts->failedJobs === 1; + } + /** * Determine if the batch has "catch" callbacks. * @@ -399,16 +433,17 @@ class Batch implements Arrayable, JsonSerializable /** * Cancel the batch. * + * @param \Throwable|null $exception * @return void */ - public function cancel() + public function cancel(?Throwable $exception = null) { $this->repository->cancel($this->id); $container = Container::getInstance(); if ($container->bound(Dispatcher::class)) { - $container->make(Dispatcher::class)->dispatch(new BatchCanceled($this)); + $container->make(Dispatcher::class)->dispatch(new BatchCanceled($this, $exception)); } } diff --git a/vendor/laravel/framework/src/Illuminate/Bus/BatchRepository.php b/vendor/laravel/framework/src/Illuminate/Bus/BatchRepository.php index f4b756008..310569f21 100644 --- a/vendor/laravel/framework/src/Illuminate/Bus/BatchRepository.php +++ b/vendor/laravel/framework/src/Illuminate/Bus/BatchRepository.php @@ -85,8 +85,10 @@ interface BatchRepository /** * Execute the given Closure within a storage specific transaction. * - * @param \Closure $callback - * @return mixed + * @template TReturn + * + * @param (\Closure(): TReturn) $callback + * @return TReturn */ public function transaction(Closure $callback); diff --git a/vendor/laravel/framework/src/Illuminate/Bus/Batchable.php b/vendor/laravel/framework/src/Illuminate/Bus/Batchable.php index 4aec5a19f..15661f091 100644 --- a/vendor/laravel/framework/src/Illuminate/Bus/Batchable.php +++ b/vendor/laravel/framework/src/Illuminate/Bus/Batchable.php @@ -48,7 +48,7 @@ trait Batchable { $batch = $this->batch(); - return $batch && ! $batch->cancelled(); + return $batch && ! $batch->finished() && ! $batch->cancelled(); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php index a48dc86f7..687db9812 100644 --- a/vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php +++ b/vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php @@ -33,7 +33,7 @@ class BusServiceProvider extends ServiceProvider implements DeferrableProvider ); $this->app->alias( - Dispatcher::class, QueueingDispatcherContract::class + DispatcherContract::class, QueueingDispatcherContract::class ); } diff --git a/vendor/laravel/framework/src/Illuminate/Bus/DatabaseBatchRepository.php b/vendor/laravel/framework/src/Illuminate/Bus/DatabaseBatchRepository.php index a2c56cc13..c56ea7edf 100644 --- a/vendor/laravel/framework/src/Illuminate/Bus/DatabaseBatchRepository.php +++ b/vendor/laravel/framework/src/Illuminate/Bus/DatabaseBatchRepository.php @@ -304,8 +304,10 @@ class DatabaseBatchRepository implements PrunableBatchRepository /** * Execute the given Closure within a storage specific transaction. * - * @param \Closure $callback - * @return mixed + * @template TReturn + * + * @param (\Closure(): TReturn) $callback + * @return TReturn */ public function transaction(Closure $callback) { diff --git a/vendor/laravel/framework/src/Illuminate/Bus/DebounceLock.php b/vendor/laravel/framework/src/Illuminate/Bus/DebounceLock.php new file mode 100644 index 000000000..87f750a1b --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Bus/DebounceLock.php @@ -0,0 +1,173 @@ +cache = $cache; + } + + /** + * Store a debounce owner token for the given job. + * + * Overwrites any existing token, implementing last-writer-wins semantics. + * + * @param mixed $job + * @param int|null $debounceFor + * @param int|null $maxWait + * @return array{owner: string, maxWaitExceeded: bool} + */ + public function acquire($job, $debounceFor = null, $maxWait = null) + { + $cache = $this->resolveCache($job); + + $ttl = max(($debounceFor ?? $this->getDebounceDelay($job)) * 10, 300); + + $cache->put($key = static::getKey($job), $owner = Str::random(40), $ttl); + + return [ + 'owner' => $owner, + 'maxWaitExceeded' => $this->maxWaitExceeded( + $cache, $key, $ttl, $maxWait ?? $this->getMaxDebounceWait($job) + ), + ]; + } + + /** + * Determine if the maximum debounce wait time has been exceeded. + */ + protected function maxWaitExceeded(Cache $cache, string $key, int $ttl, ?int $maxWait): bool + { + if (is_null($maxWait)) { + return false; + } + + $timestampKey = $key.':first_dispatched_at'; + + $firstDispatchedAt = $cache->get($timestampKey); + + if (is_null($firstDispatchedAt)) { + $cache->put($timestampKey, Carbon::now()->getTimestamp(), $ttl); + + return false; + } + + $elapsed = Carbon::now()->getTimestamp() - $firstDispatchedAt; + + if ($elapsed >= $maxWait) { + $cache->forget($timestampKey); + + return true; + } + + return false; + } + + /** + * Get the current owner for the given job. + * + * @param mixed $job + * @return string|null + */ + public function getCurrentOwner($job) + { + return $this->resolveCache($job)->get(static::getKey($job)); + } + + /** + * Remove the debounce token for the given job. + * + * @param mixed $job + * @param string $owner + * @return void + */ + public function release($job, string $owner = '') + { + $key = static::getKey($job); + + $cache = $this->resolveCache($job); + + if (! empty($owner) && $cache->get($key) !== $owner) { + return; + } + + $cache->forget($key); + $cache->forget($key.':first_dispatched_at'); + } + + /** + * Get the debounce delay for the given job. + * + * @param mixed $job + * @return int|null + */ + public function getDebounceDelay($job) + { + return $this->getAttributeValue($job, DebounceFor::class, 'debounceFor'); + } + + /** + * Get the maximum debounce wait time for the given job. + * + * @param mixed $job + * @return int|null + */ + public function getMaxDebounceWait($job) + { + return $this->getAttributeInstance($job, DebounceFor::class)?->maxWait ?? null; + } + + /** + * Generate the cache key for the given job. + * + * @param mixed $job + * @return string + */ + public static function getKey($job) + { + $debounceId = method_exists($job, 'debounceId') + ? $job->debounceId() + : ($job->debounceId ?? ''); + + $jobName = method_exists($job, 'displayName') + ? hash('xxh128', $job->displayName()) + : get_class($job); + + return 'laravel_debounced_job:'.$jobName.':'.$debounceId; + } + + /** + * Resolve the cache store for the given job. + * + * @param mixed $job + * @return \Illuminate\Contracts\Cache\Repository + */ + protected function resolveCache($job) + { + return method_exists($job, 'debounceVia') + ? ($job->debounceVia() ?? $this->cache) + : $this->cache; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php b/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php index 891573219..ba4f7b681 100644 --- a/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php +++ b/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php @@ -9,13 +9,20 @@ use Illuminate\Contracts\Queue\Queue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\PendingChain; use Illuminate\Pipeline\Pipeline; +use Illuminate\Queue\Attributes\Connection; +use Illuminate\Queue\Attributes\Delay; +use Illuminate\Queue\Attributes\Queue as QueueAttribute; +use Illuminate\Queue\Attributes\ReadsQueueAttributes; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\Jobs\SyncJob; use Illuminate\Support\Collection; +use Illuminate\Support\Queue\Concerns\ResolvesQueueRoutes; use RuntimeException; class Dispatcher implements QueueingDispatcher { + use ReadsQueueAttributes, ResolvesQueueRoutes; + /** * The container implementation. * @@ -133,6 +140,43 @@ class Dispatcher implements QueueingDispatcher return $this->pipeline->send($command)->through($this->pipes)->then($callback); } + /** + * Dispatch multiple commands in bulk to their appropriate handlers on the queue. + * + * @param iterable $jobs + * @return void + */ + public function bulk($jobs) + { + $groups = []; + + foreach ($jobs as $job) { + if (! $this->queueResolver || ! $this->commandShouldBeQueued($job)) { + $this->dispatchNow($job); + + continue; + } + + $connection = $this->getAttributeValue($job, Connection::class, 'connection') + ?? $this->resolveConnectionFromQueueRoute($job) + ?? null; + + $queue = $this->getAttributeValue($job, QueueAttribute::class, 'queue') + ?? $this->resolveQueueFromQueueRoute($job) + ?? null; + + $groups[$connection.':'.$queue]['connection'] = $connection; + $groups[$connection.':'.$queue]['queue'] = $queue; + $groups[$connection.':'.$queue]['jobs'][] = $job; + } + + foreach ($groups as $group) { + ($this->queueResolver)($group['connection'])->bulk( + $group['jobs'], '', $group['queue'] + ); + } + } + /** * Attempt to find the batch with the given ID. * @@ -215,7 +259,9 @@ class Dispatcher implements QueueingDispatcher */ public function dispatchToQueue($command) { - $connection = $command->connection ?? null; + $connection = $this->getAttributeValue($command, Connection::class, 'connection') + ?? $this->resolveConnectionFromQueueRoute($command) + ?? null; $queue = ($this->queueResolver)($connection); @@ -239,11 +285,17 @@ class Dispatcher implements QueueingDispatcher */ protected function pushCommandToQueue($queue, $command) { - if (isset($command->delay)) { - return $queue->later($command->delay, $command, queue: $command->queue ?? null); + $queueName = $this->getAttributeValue($command, QueueAttribute::class, 'queue') + ?? $this->resolveQueueFromQueueRoute($command) + ?? null; + + $delay = $this->getAttributeValue($command, Delay::class, 'delay'); + + if (isset($delay)) { + return $queue->later($delay, $command, queue: $queueName); } - return $queue->push($command, queue: $command->queue ?? null); + return $queue->push($command, queue: $queueName); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Bus/DynamoBatchRepository.php b/vendor/laravel/framework/src/Illuminate/Bus/DynamoBatchRepository.php index f364cc4d7..b70f5245d 100644 --- a/vendor/laravel/framework/src/Illuminate/Bus/DynamoBatchRepository.php +++ b/vendor/laravel/framework/src/Illuminate/Bus/DynamoBatchRepository.php @@ -377,8 +377,10 @@ class DynamoBatchRepository implements BatchRepository /** * Execute the given Closure within a storage specific transaction. * - * @param \Closure $callback - * @return mixed + * @template TReturn + * + * @param (\Closure(): TReturn) $callback + * @return TReturn */ public function transaction(Closure $callback) { diff --git a/vendor/laravel/framework/src/Illuminate/Bus/Events/BatchCanceled.php b/vendor/laravel/framework/src/Illuminate/Bus/Events/BatchCanceled.php index 4610e7114..63d5b7be5 100644 --- a/vendor/laravel/framework/src/Illuminate/Bus/Events/BatchCanceled.php +++ b/vendor/laravel/framework/src/Illuminate/Bus/Events/BatchCanceled.php @@ -3,6 +3,7 @@ namespace Illuminate\Bus\Events; use Illuminate\Bus\Batch; +use Throwable; class BatchCanceled { @@ -10,9 +11,11 @@ class BatchCanceled * Create a new event instance. * * @param \Illuminate\Bus\Batch $batch The batch instance. + * @param \Throwable|null $exception The exception that caused the cancellation. */ public function __construct( public Batch $batch, + public ?Throwable $exception = null, ) { } } diff --git a/vendor/laravel/framework/src/Illuminate/Bus/Events/BatchStarted.php b/vendor/laravel/framework/src/Illuminate/Bus/Events/BatchStarted.php new file mode 100644 index 000000000..2671b36dd --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Bus/Events/BatchStarted.php @@ -0,0 +1,18 @@ +uniqueFor() - : ($job->uniqueFor ?? 0); + : ($this->getAttributeValue($job, UniqueFor::class, 'uniqueFor') ?? 0); $cache = method_exists($job, 'uniqueVia') ? ($job->uniqueVia() ?? $this->cache) : $this->cache; - return (bool) $cache->lock($this->getKey($job), $uniqueFor)->get(); + return (bool) $cache->lock(self::getKey($job), $uniqueFor)->get(); } /** @@ -54,7 +58,7 @@ class UniqueLock ? ($job->uniqueVia() ?? $this->cache) : $this->cache; - $cache->lock($this->getKey($job))->forceRelease(); + $cache->lock(self::getKey($job))->forceRelease(); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Bus/composer.json b/vendor/laravel/framework/src/Illuminate/Bus/composer.json index dc3385da5..e66d4edd0 100644 --- a/vendor/laravel/framework/src/Illuminate/Bus/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Bus/composer.json @@ -2,39 +2,39 @@ "name": "illuminate/bus", "description": "The Illuminate Bus package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "illuminate/collections": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/pipeline": "^12.0", - "illuminate/support": "^12.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "illuminate/collections": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/pipeline": "^13.0", + "illuminate/support": "^13.0" + }, + "suggest": { + "illuminate/queue": "Required to use closures when chaining jobs (^13.0)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Bus\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "suggest": { - "illuminate/queue": "Required to use closures when chaining jobs (^12.0)." - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Cache/ApcStore.php b/vendor/laravel/framework/src/Illuminate/Cache/ApcStore.php index 99bf2ed38..196eb5391 100755 --- a/vendor/laravel/framework/src/Illuminate/Cache/ApcStore.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/ApcStore.php @@ -92,6 +92,24 @@ class ApcStore extends TaggableStore return $this->put($key, $value, 0); } + /** + * Adjust the expiration time of a cached item. + * + * @param string $key + * @param int $seconds + * @return bool + */ + public function touch($key, $seconds) + { + $value = $this->apc->get($key = $this->getPrefix().$key); + + if (is_null($value)) { + return false; + } + + return $this->apc->put($key, $value, $seconds); + } + /** * Remove an item from the cache. * diff --git a/vendor/laravel/framework/src/Illuminate/Cache/ArrayStore.php b/vendor/laravel/framework/src/Illuminate/Cache/ArrayStore.php index 07af8df84..ee26b02f6 100644 --- a/vendor/laravel/framework/src/Illuminate/Cache/ArrayStore.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/ArrayStore.php @@ -2,11 +2,14 @@ namespace Illuminate\Cache; +use Illuminate\Contracts\Cache\CanFlushLocks; use Illuminate\Contracts\Cache\LockProvider; +use Illuminate\Support\Arr; use Illuminate\Support\Carbon; use Illuminate\Support\InteractsWithTime; +use RuntimeException; -class ArrayStore extends TaggableStore implements LockProvider +class ArrayStore extends TaggableStore implements CanFlushLocks, LockProvider { use InteractsWithTime, RetrievesMultipleKeys; @@ -163,6 +166,28 @@ class ArrayStore extends TaggableStore implements LockProvider return $this->put($key, $value, 0); } + /** + * Adjust the expiration time of a cached item. + * + * @param string $key + * @param int $seconds + * @return bool + */ + public function touch($key, $seconds) + { + $item = Arr::get($this->storage, $key = $this->getPrefix().$key, null); + + if (is_null($item)) { + return false; + } + + $item['expiresAt'] = $this->calculateExpiration($seconds); + + $this->storage = array_merge($this->storage, [$key => $item]); + + return true; + } + /** * Remove an item from the cache. * @@ -192,6 +217,24 @@ class ArrayStore extends TaggableStore implements LockProvider return true; } + /** + * Remove all locks from the store. + * + * @return bool + * + * @throws \RuntimeException + */ + public function flushLocks(): bool + { + if (! $this->hasSeparateLockStore()) { + throw new RuntimeException('Flushing locks is only supported when the lock store is separate from the cache store.'); + } + + $this->locks = []; + + return true; + } + /** * Get the cache key prefix. * @@ -249,6 +292,16 @@ class ArrayStore extends TaggableStore implements LockProvider return $this->lock($name, 0, $owner); } + /** + * Determine if the lock store is separate from the cache store. + * + * @return bool + */ + public function hasSeparateLockStore(): bool + { + return true; + } + /** * Unserialize the given value. * diff --git a/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php b/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php index 3d769c9d4..fc3b50ebd 100755 --- a/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php @@ -8,9 +8,14 @@ use Illuminate\Contracts\Cache\Factory as FactoryContract; use Illuminate\Contracts\Cache\Store; use Illuminate\Contracts\Events\Dispatcher as DispatcherContract; use Illuminate\Support\Arr; +use Illuminate\Support\RebindsCallbacksToSelf; use InvalidArgumentException; use Mockery; use Mockery\LegacyMockInterface; +use ReflectionException; +use RuntimeException; + +use function Illuminate\Support\enum_value; /** * @mixin \Illuminate\Cache\Repository @@ -18,6 +23,8 @@ use Mockery\LegacyMockInterface; */ class CacheManager implements FactoryContract { + use RebindsCallbacksToSelf; + /** * The application instance. * @@ -52,12 +59,12 @@ class CacheManager implements FactoryContract /** * Get a cache store instance by name, wrapped in a repository. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return \Illuminate\Contracts\Cache\Repository */ public function store($name = null) { - $name = $name ?? $this->getDefaultDriver(); + $name = enum_value($name) ?? $this->getDefaultDriver(); return $this->stores[$name] ??= $this->resolve($name); } @@ -65,7 +72,7 @@ class CacheManager implements FactoryContract /** * Get a cache driver instance. * - * @param string|null $driver + * @param \UnitEnum|string|null $driver * @return \Illuminate\Contracts\Cache\Repository */ public function driver($driver = null) @@ -76,12 +83,12 @@ class CacheManager implements FactoryContract /** * Get a memoized cache driver instance. * - * @param string|null $driver + * @param \UnitEnum|string|null $driver * @return \Illuminate\Contracts\Cache\Repository */ public function memo($driver = null) { - $driver = $driver ?? $this->getDefaultDriver(); + $driver = enum_value($driver) ?? $this->getDefaultDriver(); $bindingKey = "cache.__memoized:{$driver}"; @@ -295,6 +302,22 @@ class CacheManager implements FactoryContract ); } + /** + * Create an instance of the storage cache driver. + * + * @param array $config + * @return \Illuminate\Cache\Repository + */ + protected function createStorageDriver(array $config) + { + return $this->repository(new StorageStore( + $this->app['filesystem']->disk($config['disk'] ?? null), + $config['path'] ?? '', + $this->getPrefix($config), + $this->getSerializableClasses($config), + ), $config); + } + /** * Create an instance of the Memcached cache driver. * @@ -476,18 +499,18 @@ class CacheManager implements FactoryContract /** * Set the default cache driver name. * - * @param string $name + * @param \UnitEnum|string $name * @return void */ public function setDefaultDriver($name) { - $this->app['config']['cache.default'] = $name; + $this->app['config']['cache.default'] = enum_value($name); } /** * Unset the given driver instances. * - * @param array|string|null $name + * @param array|\UnitEnum|string|null $name * @return $this */ public function forgetDriver($name = null) @@ -495,6 +518,8 @@ class CacheManager implements FactoryContract $name ??= $this->getDefaultDriver(); foreach ((array) $name as $cacheName) { + $cacheName = enum_value($cacheName); + if (isset($this->stores[$cacheName])) { unset($this->stores[$cacheName]); } @@ -506,12 +531,12 @@ class CacheManager implements FactoryContract /** * Disconnect the given driver and remove from local cache. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return void */ public function purge($name = null) { - $name ??= $this->getDefaultDriver(); + $name = enum_value($name) ?? $this->getDefaultDriver(); unset($this->stores[$name]); } @@ -528,7 +553,13 @@ class CacheManager implements FactoryContract */ public function extend($driver, Closure $callback) { - $this->customCreators[$driver] = $callback->bindTo($this, $this); + try { + $callback = $this->bindCallbackToSelf($callback) ?? throw new RuntimeException('Unable to bind custom driver callback'); + } catch (ReflectionException $e) { + throw new RuntimeException('Unable to bind custom driver callback', previous: $e); + } + + $this->customCreators[$driver] = $callback; return $this; } @@ -546,6 +577,17 @@ class CacheManager implements FactoryContract return $this; } + /** + * Register a callback to be invoked when an unserializable class is encountered. + * + * @param callable|null $callback + * @return void + */ + public function handleUnserializableClassUsing(?callable $callback): void + { + Repository::handleUnserializableClassUsing($callback); + } + /** * Dynamically call the default driver instance. * diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php b/vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php index 629587f85..496c43878 100755 --- a/vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php @@ -2,8 +2,10 @@ namespace Illuminate\Cache\Console; +use BadMethodCallException; use Illuminate\Cache\CacheManager; use Illuminate\Console\Command; +use Illuminate\Console\Prohibitable; use Illuminate\Filesystem\Filesystem; use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputArgument; @@ -12,6 +14,8 @@ use Symfony\Component\Console\Input\InputOption; #[AsCommand(name: 'cache:clear')] class ClearCommand extends Command { + use Prohibitable; + /** * The console command name. * @@ -61,6 +65,14 @@ class ClearCommand extends Command */ public function handle() { + if ($this->isProhibited()) { + return self::FAILURE; + } + + if ($this->option('locks')) { + return $this->clearLocks(); + } + $this->laravel['events']->dispatch( 'cache:clearing', [$this->argument('store'), $this->tags()] ); @@ -84,6 +96,38 @@ class ClearCommand extends Command return self::SUCCESS; } + /** + * Clear all locks from the cache store. + * + * @return int + */ + protected function clearLocks() + { + if (! empty($this->tags())) { + $this->components->error('Cache tags cannot be used when clearing locks.'); + + return self::FAILURE; + } + + try { + $successful = $this->cache()->flushLocks(); + } catch (BadMethodCallException) { + $this->components->error('This cache store does not support clearing locks.'); + + return self::FAILURE; + } + + if (! $successful) { + $this->components->error('Failed to clear cache locks. Make sure you have the appropriate permissions.'); + + return self::FAILURE; + } + + $this->components->info('Application cache locks cleared successfully.'); + + return self::SUCCESS; + } + /** * Flush the real-time facades stored in the cache directory. * @@ -145,6 +189,7 @@ class ClearCommand extends Command { return [ ['tags', null, InputOption::VALUE_OPTIONAL, 'The cache tags you would like to clear', null], + ['locks', null, InputOption::VALUE_NONE, 'Only clear cache locks'], ]; } } diff --git a/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php b/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php index 81262e2a8..1981ad8c4 100644 --- a/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php @@ -137,24 +137,18 @@ class DatabaseLock extends Lock */ public function release() { - if ($this->isOwnedByCurrentProcess()) { - try { - $this->connection->table($this->table) - ->where('key', $this->name) - ->where('owner', $this->owner) - ->delete(); - + try { + return $this->connection->table($this->table) + ->where('key', $this->name) + ->where('owner', $this->owner) + ->delete() > 0; + } catch (Throwable $e) { + if ($this->causedByConcurrencyError($e)) { return true; - } catch (Throwable $e) { - if ($this->causedByConcurrencyError($e)) { - return true; - } - - throw $e; } - } - return false; + throw $e; + } } /** @@ -196,7 +190,10 @@ class DatabaseLock extends Lock */ protected function getCurrentOwner() { - return $this->connection->table($this->table)->where('key', $this->name)->first()?->owner; + return $this->connection->table($this->table) + ->where('key', $this->name) + ->where('expiration', '>', $this->currentTime()) + ->first()?->owner; } /** diff --git a/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php b/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php index 16138e8ec..85cb0cf1d 100755 --- a/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php @@ -3,6 +3,7 @@ namespace Illuminate\Cache; use Closure; +use Illuminate\Contracts\Cache\CanFlushLocks; use Illuminate\Contracts\Cache\LockProvider; use Illuminate\Contracts\Cache\Store; use Illuminate\Database\ConnectionInterface; @@ -14,8 +15,9 @@ use Illuminate\Support\Arr; use Illuminate\Support\Collection; use Illuminate\Support\InteractsWithTime; use Illuminate\Support\Str; +use RuntimeException; -class DatabaseStore implements LockProvider, Store +class DatabaseStore implements CanFlushLocks, LockProvider, Store { use InteractsWithTime; @@ -124,7 +126,7 @@ class DatabaseStore implements LockProvider, Store */ public function many(array $keys) { - if (count($keys) === 0) { + if ($keys === []) { return []; } @@ -220,11 +222,11 @@ class DatabaseStore implements LockProvider, Store $expiration = $this->getTime() + $seconds; if (! $this->getConnection() instanceof SqlServerConnection) { - return $this->table()->insertOrIgnore(compact('key', 'value', 'expiration')) > 0; + return $this->table()->insertOrIgnore(['key' => $key, 'value' => $value, 'expiration' => $expiration]) > 0; } try { - return $this->table()->insert(compact('key', 'value', 'expiration')); + return $this->table()->insert(['key' => $key, 'value' => $value, 'expiration' => $expiration]); } catch (QueryException) { // ... } @@ -362,6 +364,21 @@ class DatabaseStore implements LockProvider, Store return $this->lock($name, 0, $owner); } + /** + * Adjust the expiration time of a cached item. + * + * @param string $key + * @param int $seconds + * @return bool + */ + public function touch($key, $seconds) + { + return (bool) $this->table() + ->where('key', '=', $this->getPrefix().$key) + ->where('expiration', '>', $now = $this->getTime()) + ->update(['expiration' => $now + $seconds]); + } + /** * Remove an item from the cache. * @@ -394,7 +411,7 @@ class DatabaseStore implements LockProvider, Store { $this->table()->whereIn('key', (new Collection($keys))->flatMap(fn ($key) => [ $this->prefix.$key, - "{$this->prefix}illuminate:cache:flexible:created:{$key}", + $this->prefix.Repository::FLEXIBLE_CREATED_KEY_PREFIX.$key, ])->all())->delete(); return true; @@ -412,10 +429,10 @@ class DatabaseStore implements LockProvider, Store $this->table() ->whereIn('key', (new Collection($keys))->flatMap(fn ($key) => $prefixed ? [ $key, - $this->prefix.'illuminate:cache:flexible:created:'.Str::chopStart($key, $this->prefix), + $this->prefix.Repository::FLEXIBLE_CREATED_KEY_PREFIX.Str::chopStart($key, $this->prefix), ] : [ "{$this->prefix}{$key}", - "{$this->prefix}illuminate:cache:flexible:created:{$key}", + $this->prefix.Repository::FLEXIBLE_CREATED_KEY_PREFIX.$key, ])->all()) ->where('expiration', '<=', $this->getTime()) ->delete(); @@ -435,6 +452,24 @@ class DatabaseStore implements LockProvider, Store return true; } + /** + * Remove all locks from the store. + * + * @return bool + * + * @throws \RuntimeException + */ + public function flushLocks(): bool + { + if (! $this->hasSeparateLockStore()) { + throw new RuntimeException('Flushing locks is only supported when the lock store is separate from the cache store.'); + } + + $this->lockTable()->delete(); + + return true; + } + /** * Get a query builder for the cache table. * @@ -445,6 +480,16 @@ class DatabaseStore implements LockProvider, Store return $this->connection->table($this->table); } + /** + * Get a query builder for the cache locks table. + * + * @return \Illuminate\Database\Query\Builder + */ + protected function lockTable() + { + return $this->lockConnection->table($this->lockTable); + } + /** * Get the underlying database connection. * @@ -551,4 +596,14 @@ class DatabaseStore implements LockProvider, Store return unserialize($value); } + + /** + * Determine if the lock store is separate from the cache store. + * + * @return bool + */ + public function hasSeparateLockStore(): bool + { + return $this->lockTable !== $this->table; + } } diff --git a/vendor/laravel/framework/src/Illuminate/Cache/DynamoDbStore.php b/vendor/laravel/framework/src/Illuminate/Cache/DynamoDbStore.php index 1cb5b66af..64d154e93 100644 --- a/vendor/laravel/framework/src/Illuminate/Cache/DynamoDbStore.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/DynamoDbStore.php @@ -100,7 +100,7 @@ class DynamoDbStore implements LockProvider, Store */ public function many(array $keys) { - if (count($keys) === 0) { + if ($keys === []) { return []; } @@ -192,7 +192,7 @@ class DynamoDbStore implements LockProvider, Store */ public function putMany(array $values, $seconds) { - if (count($values) === 0) { + if ($values === []) { return true; } @@ -230,6 +230,8 @@ class DynamoDbStore implements LockProvider, Store * @param mixed $value * @param int $seconds * @return bool + * + * @throws \Aws\DynamoDb\Exception\DynamoDbException */ public function add($key, $value, $seconds) { @@ -448,6 +450,43 @@ class DynamoDbStore implements LockProvider, Store } } + /** + * Adjust the expiration time of a cached item. + * + * @param string $key + * @param int $seconds + * @return bool + * + * @throws DynamoDbException + */ + public function touch($key, $seconds) + { + try { + $this->dynamo->updateItem([ + 'TableName' => $this->table, + 'Key' => [$this->keyAttribute => ['S' => $this->getPrefix().$key]], + 'UpdateExpression' => 'SET #expiry = :expiry', + 'ConditionExpression' => 'attribute_exists(#key) AND #expiry > :now', + 'ExpressionAttributeNames' => [ + '#key' => $this->keyAttribute, + '#expiry' => $this->expirationAttribute, + ], + 'ExpressionAttributeValues' => [ + ':expiry' => ['N' => (string) $this->toTimestamp($seconds)], + ':now' => ['N' => (string) $this->currentTime()], + ], + ]); + } catch (DynamoDbException $e) { + if (str_contains($e->getMessage(), 'ConditionalCheckFailed')) { + return false; + } + + throw $e; + } + + return true; + } + /** * Remove an item from the cache. * diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushFailed.php b/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushFailed.php new file mode 100644 index 000000000..a22643b58 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushFailed.php @@ -0,0 +1,23 @@ +storeName = $storeName; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushed.php b/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushed.php new file mode 100644 index 000000000..383466569 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushed.php @@ -0,0 +1,23 @@ +storeName = $storeName; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushing.php b/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushing.php new file mode 100644 index 000000000..3a8b65ca9 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheLocksFlushing.php @@ -0,0 +1,23 @@ +storeName = $storeName; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/FailoverStore.php b/vendor/laravel/framework/src/Illuminate/Cache/FailoverStore.php index 9c719ae90..2d2952c2f 100644 --- a/vendor/laravel/framework/src/Illuminate/Cache/FailoverStore.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/FailoverStore.php @@ -3,12 +3,13 @@ namespace Illuminate\Cache; use Illuminate\Cache\Events\CacheFailedOver; +use Illuminate\Contracts\Cache\CanFlushLocks; use Illuminate\Contracts\Cache\LockProvider; use Illuminate\Contracts\Events\Dispatcher; use RuntimeException; use Throwable; -class FailoverStore extends TaggableStore implements LockProvider +class FailoverStore extends TaggableStore implements CanFlushLocks, LockProvider { /** * The caches which failed on the last action. @@ -150,6 +151,18 @@ class FailoverStore extends TaggableStore implements LockProvider return $this->attemptOnAllStores(__FUNCTION__, func_get_args()); } + /** + * Adjust the expiration time of a cached item. + * + * @param string $key + * @param int $seconds + * @return bool + */ + public function touch($key, $seconds) + { + return $this->attemptOnAllStores(__FUNCTION__, func_get_args()); + } + /** * Remove an item from the cache. * @@ -187,6 +200,38 @@ class FailoverStore extends TaggableStore implements LockProvider } } + /** + * Flush all of the stale locks from every backing store. + * + * @return bool + */ + public function flushLocks(): bool + { + $result = true; + + foreach ($this->stores as $store) { + $underlyingStore = $this->store($store)->getStore(); + + if ($underlyingStore instanceof CanFlushLocks) { + if (! $underlyingStore->flushLocks()) { + $result = false; + } + } + } + + return $result; + } + + /** + * Determine if the lock store is separate from the cache store. + * + * @return bool + */ + public function hasSeparateLockStore(): bool + { + return true; + } + /** * Get the cache key prefix. * diff --git a/vendor/laravel/framework/src/Illuminate/Cache/FileStore.php b/vendor/laravel/framework/src/Illuminate/Cache/FileStore.php index 8b0050a1e..2b8a2b10d 100755 --- a/vendor/laravel/framework/src/Illuminate/Cache/FileStore.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/FileStore.php @@ -3,14 +3,16 @@ namespace Illuminate\Cache; use Exception; +use Illuminate\Contracts\Cache\CanFlushLocks; use Illuminate\Contracts\Cache\LockProvider; use Illuminate\Contracts\Cache\Store; use Illuminate\Contracts\Filesystem\LockTimeoutException; use Illuminate\Filesystem\Filesystem; use Illuminate\Filesystem\LockableFile; use Illuminate\Support\InteractsWithTime; +use RuntimeException; -class FileStore implements Store, LockProvider +class FileStore implements CanFlushLocks, LockProvider, Store { use InteractsWithTime, RetrievesMultipleKeys; @@ -89,7 +91,7 @@ class FileStore implements Store, LockProvider $this->ensureCacheDirectoryExists($path = $this->path($key)); $result = $this->files->put( - $path, $this->expiration($seconds).serialize($value), true + $path, str_pad((string) $this->expiration($seconds), 10, '0', STR_PAD_LEFT).serialize($value), true ); if ($result !== false && $result > 0) { @@ -127,7 +129,7 @@ class FileStore implements Store, LockProvider if (empty($expire) || $this->currentTime() >= $expire) { $file->truncate() - ->write($this->expiration($seconds).serialize($value)) + ->write(str_pad((string) $this->expiration($seconds), 10, '0', STR_PAD_LEFT).serialize($value)) ->close(); $this->ensurePermissionsAreCorrect($path); @@ -279,7 +281,7 @@ class FileStore implements Store, LockProvider $expire = substr($contents, 0, 10); - $currentOwner = unserialize(substr($contents, 10)); + $currentOwner = $this->unserialize(substr($contents, 10)); if ($currentOwner !== $expectedOwner || $this->currentTime() >= $expire) { $file->close(); @@ -296,6 +298,24 @@ class FileStore implements Store, LockProvider return true; } + /** + * Adjust the expiration time of a cached item. + * + * @param string $key + * @param int $seconds + * @return bool + */ + public function touch($key, $seconds) + { + $payload = $this->getPayload($this->getPrefix().$key); + + if (is_null($payload['data'])) { + return false; + } + + return $this->put($key, $payload['data'], $seconds); + } + /** * Remove an item from the cache. * @@ -306,7 +326,7 @@ class FileStore implements Store, LockProvider { if ($this->files->exists($file = $this->path($key))) { return tap($this->files->delete($file), function ($forgotten) use ($key) { - if ($forgotten && $this->files->exists($file = $this->path("illuminate:cache:flexible:created:{$key}"))) { + if ($forgotten && $this->files->exists($file = $this->path(Repository::FLEXIBLE_CREATED_KEY_PREFIX.$key))) { $this->files->delete($file); } }); @@ -337,6 +357,34 @@ class FileStore implements Store, LockProvider return true; } + /** + * Remove all locks from the store. + * + * @return bool + * + * @throws \RuntimeException + */ + public function flushLocks(): bool + { + if (! $this->hasSeparateLockStore()) { + throw new RuntimeException('Flushing locks is only supported when the lock store is separate from the cache store.'); + } + + if (! $this->files->isDirectory($this->lockDirectory)) { + return false; + } + + foreach ($this->files->directories($this->lockDirectory) as $lockDirectory) { + $deleted = $this->files->deleteDirectory($lockDirectory); + + if (! $deleted || $this->files->exists($lockDirectory)) { + return false; + } + } + + return true; + } + /** * Retrieve an item and expiry time from the cache by key. * @@ -382,7 +430,7 @@ class FileStore implements Store, LockProvider // operation that may be performed on this cache on a later operation. $time = $expire - $this->currentTime(); - return compact('data', 'time'); + return ['data' => $data, 'time' => $time]; } /** @@ -491,4 +539,14 @@ class FileStore implements Store, LockProvider { return ''; } + + /** + * Determine if the lock store is separate from the cache store. + * + * @return bool + */ + public function hasSeparateLockStore(): bool + { + return $this->lockDirectory !== null && $this->lockDirectory !== $this->directory; + } } diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Lock.php b/vendor/laravel/framework/src/Illuminate/Cache/Lock.php index c13ab1b98..bfb753bac 100644 --- a/vendor/laravel/framework/src/Illuminate/Cache/Lock.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/Lock.php @@ -4,6 +4,7 @@ namespace Illuminate\Cache; use Illuminate\Contracts\Cache\Lock as LockContract; use Illuminate\Contracts\Cache\LockTimeoutException; +use Illuminate\Support\Carbon; use Illuminate\Support\InteractsWithTime; use Illuminate\Support\Sleep; use Illuminate\Support\Str; @@ -76,7 +77,7 @@ abstract class Lock implements LockContract /** * Returns the owner value written into the driver for this lock. * - * @return string + * @return string|null */ abstract protected function getCurrentOwner(); @@ -112,12 +113,12 @@ abstract class Lock implements LockContract */ public function block($seconds, $callback = null) { - $starting = ((int) now()->format('Uu')) / 1000; + $starting = ((int) Carbon::now()->format('Uu')) / 1000; $milliseconds = $seconds * 1000; while (! $this->acquire()) { - $now = ((int) now()->format('Uu')) / 1000; + $now = ((int) Carbon::now()->format('Uu')) / 1000; if (($now + $this->sleepMilliseconds - $milliseconds) >= $starting) { throw new LockTimeoutException; @@ -158,6 +159,16 @@ abstract class Lock implements LockContract return $this->owner; } + /** + * Determine if the lock is currently held by any process. + * + * @return bool + */ + public function isLocked(): bool + { + return $this->getCurrentOwner() !== null; + } + /** * Determines whether this lock is allowed to release the lock in the driver. * diff --git a/vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php b/vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php index 224d94099..0c0db4026 100755 --- a/vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php @@ -51,7 +51,7 @@ class MemcachedConnector $this->setCredentials($memcached, $credentials); } - if (count($options)) { + if ($options !== []) { $memcached->setOptions($options); } diff --git a/vendor/laravel/framework/src/Illuminate/Cache/MemcachedStore.php b/vendor/laravel/framework/src/Illuminate/Cache/MemcachedStore.php index b05560e1a..404dceed5 100755 --- a/vendor/laravel/framework/src/Illuminate/Cache/MemcachedStore.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/MemcachedStore.php @@ -202,6 +202,18 @@ class MemcachedStore extends TaggableStore implements LockProvider return $this->lock($name, 0, $owner); } + /** + * Adjust the expiration time of a cached item. + * + * @param string $key + * @param int $seconds + * @return bool + */ + public function touch($key, $seconds) + { + return $this->memcached->touch($this->getPrefix().$key, $this->calculateExpiration($seconds)); + } + /** * Remove an item from the cache. * diff --git a/vendor/laravel/framework/src/Illuminate/Cache/MemoizedStore.php b/vendor/laravel/framework/src/Illuminate/Cache/MemoizedStore.php index d794d6ba0..e802de7bd 100644 --- a/vendor/laravel/framework/src/Illuminate/Cache/MemoizedStore.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/MemoizedStore.php @@ -3,10 +3,11 @@ namespace Illuminate\Cache; use BadMethodCallException; +use Illuminate\Contracts\Cache\CanFlushLocks; use Illuminate\Contracts\Cache\LockProvider; use Illuminate\Contracts\Cache\Store; -class MemoizedStore implements LockProvider, Store +class MemoizedStore implements CanFlushLocks, LockProvider, Store { /** * The memoized cache values. @@ -66,7 +67,7 @@ class MemoizedStore implements LockProvider, Store } } - if (count($missing) > 0) { + if ($missing !== []) { $retrieved = tap($this->repository->many($missing), function ($values) { foreach ($values as $key => $value) { $this->cache[$this->prefix($key)] = $value; @@ -105,7 +106,6 @@ class MemoizedStore implements LockProvider, Store /** * Store multiple items in the cache for a given number of seconds. * - * @param array $values * @param int $seconds * @return bool */ @@ -167,6 +167,8 @@ class MemoizedStore implements LockProvider, Store * @param int $seconds * @param string|null $owner * @return \Illuminate\Contracts\Cache\Lock + * + * @throws \BadMethodCallException */ public function lock($name, $seconds = 0, $owner = null) { @@ -183,6 +185,8 @@ class MemoizedStore implements LockProvider, Store * @param string $name * @param string $owner * @return \Illuminate\Contracts\Cache\Lock + * + * @throws \BadMethodCallException */ public function restoreLock($name, $owner) { @@ -193,6 +197,46 @@ class MemoizedStore implements LockProvider, Store return $this->repository->getStore()->restoreLock(...func_get_args()); } + /** + * Flush all locks managed by the store. + * + * @throws \BadMethodCallException + */ + public function flushLocks(): bool + { + $store = $this->repository->getStore(); + + if (! $store instanceof CanFlushLocks) { + throw new BadMethodCallException('This cache store does not support flushing locks.'); + } + + return $store->flushLocks(); + } + + /** + * Determine if the lock store is separate from the cache store. + */ + public function hasSeparateLockStore(): bool + { + $store = $this->repository->getStore(); + + return $store instanceof CanFlushLocks && $store->hasSeparateLockStore(); + } + + /** + * Adjust the expiration time of a cached item. + * + * @param string $key + * @param int $seconds + * @return bool + */ + public function touch($key, $seconds) + { + unset($this->cache[$this->prefix($key)]); + + return $this->repository->touch($key, $seconds); + } + /** * Remove an item from the cache. * diff --git a/vendor/laravel/framework/src/Illuminate/Cache/NoLock.php b/vendor/laravel/framework/src/Illuminate/Cache/NoLock.php index b1b3a2d34..90aad2fcb 100644 --- a/vendor/laravel/framework/src/Illuminate/Cache/NoLock.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/NoLock.php @@ -45,6 +45,16 @@ class NoLock extends Lock // } + /** + * Determine if the lock is currently held by any process. + * + * @return bool + */ + public function isLocked(): bool + { + return false; + } + /** * Returns the owner value written into the driver for this lock. * diff --git a/vendor/laravel/framework/src/Illuminate/Cache/NullStore.php b/vendor/laravel/framework/src/Illuminate/Cache/NullStore.php index 6c35ee386..89f4b37c4 100755 --- a/vendor/laravel/framework/src/Illuminate/Cache/NullStore.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/NullStore.php @@ -2,9 +2,10 @@ namespace Illuminate\Cache; +use Illuminate\Contracts\Cache\CanFlushLocks; use Illuminate\Contracts\Cache\LockProvider; -class NullStore extends TaggableStore implements LockProvider +class NullStore extends TaggableStore implements CanFlushLocks, LockProvider { use RetrievesMultipleKeys; @@ -93,6 +94,34 @@ class NullStore extends TaggableStore implements LockProvider return $this->lock($name, 0, $owner); } + /** + * Flush all locks managed by the store. + */ + public function flushLocks(): bool + { + return true; + } + + /** + * Determine if the lock store is separate from the cache store. + */ + public function hasSeparateLockStore(): bool + { + return false; + } + + /** + * Adjust the expiration time of a cached item. + * + * @param string $key + * @param int $seconds + * @return bool + */ + public function touch($key, $seconds) + { + return false; + } + /** * Remove an item from the cache. * diff --git a/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php b/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php index 20d23cb05..66a1ce459 100644 --- a/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php @@ -289,8 +289,10 @@ class RateLimiter /** * Execute the given callback without serialization or compression when applicable. * - * @param callable $callback - * @return mixed + * @template TReturn + * + * @param (callable(): TReturn) $callback + * @return TReturn */ protected function withoutSerializationOrCompression(callable $callback) { diff --git a/vendor/laravel/framework/src/Illuminate/Cache/RateLimiting/Limit.php b/vendor/laravel/framework/src/Illuminate/Cache/RateLimiting/Limit.php index 351bbf11f..1aae4694f 100644 --- a/vendor/laravel/framework/src/Illuminate/Cache/RateLimiting/Limit.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/RateLimiting/Limit.php @@ -116,7 +116,7 @@ class Limit /** * Create a new unlimited rate limit. * - * @return static + * @return \Illuminate\Cache\RateLimiting\Unlimited */ public static function none() { diff --git a/vendor/laravel/framework/src/Illuminate/Cache/RedisLock.php b/vendor/laravel/framework/src/Illuminate/Cache/RedisLock.php index 7014b3530..579296005 100644 --- a/vendor/laravel/framework/src/Illuminate/Cache/RedisLock.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/RedisLock.php @@ -78,7 +78,7 @@ class RedisLock extends Lock /** * Returns the owner value written into the driver for this lock. * - * @return string + * @return string|null */ protected function getCurrentOwner() { diff --git a/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php b/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php index 8d061d6a1..bd0eec157 100755 --- a/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php @@ -2,6 +2,7 @@ namespace Illuminate\Cache; +use Illuminate\Contracts\Cache\CanFlushLocks; use Illuminate\Contracts\Cache\LockProvider; use Illuminate\Contracts\Redis\Factory as Redis; use Illuminate\Redis\Connections\PhpRedisClusterConnection; @@ -10,8 +11,9 @@ use Illuminate\Redis\Connections\PredisClusterConnection; use Illuminate\Redis\Connections\PredisConnection; use Illuminate\Support\LazyCollection; use Illuminate\Support\Str; +use RuntimeException; -class RedisStore extends TaggableStore implements LockProvider +class RedisStore extends TaggableStore implements CanFlushLocks, LockProvider { use RetrievesMultipleKeys { many as private manyAlias; @@ -94,7 +96,7 @@ class RedisStore extends TaggableStore implements LockProvider */ public function many(array $keys) { - if (count($keys) === 0) { + if ($keys === []) { return []; } @@ -263,6 +265,18 @@ class RedisStore extends TaggableStore implements LockProvider return $this->lock($name, 0, $owner); } + /** + * Adjust the expiration time of a cached item. + * + * @param string $key + * @param int $seconds + * @return bool + */ + public function touch($key, $seconds) + { + return (bool) $this->connection()->expire($this->getPrefix().$key, (int) max(1, $seconds)); + } + /** * Remove an item from the cache. * @@ -286,6 +300,24 @@ class RedisStore extends TaggableStore implements LockProvider return true; } + /** + * Remove all locks from the store. + * + * @return bool + * + * @throws \RuntimeException + */ + public function flushLocks(): bool + { + if (! $this->hasSeparateLockStore()) { + throw new RuntimeException('Flushing locks is only supported when the lock store is separate from the cache store.'); + } + + $this->lockConnection()->flushdb(); + + return true; + } + /** * Remove all expired tag set entries. * @@ -536,4 +568,14 @@ class RedisStore extends TaggableStore implements LockProvider return $this->unserialize($value); } + + /** + * Determine if the lock store is separate from the cache store. + * + * @return bool + */ + public function hasSeparateLockStore(): bool + { + return $this->lockConnection !== $this->connection; + } } diff --git a/vendor/laravel/framework/src/Illuminate/Cache/RedisTagSet.php b/vendor/laravel/framework/src/Illuminate/Cache/RedisTagSet.php index e65ef6efb..9203cd3ad 100644 --- a/vendor/laravel/framework/src/Illuminate/Cache/RedisTagSet.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/RedisTagSet.php @@ -66,7 +66,7 @@ class RedisTagSet extends TagSet $entries = array_unique(array_keys($entries)); - if (count($entries) === 0) { + if ($entries === []) { continue; } diff --git a/vendor/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php b/vendor/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php index fcaf1c2d2..e68ed76db 100644 --- a/vendor/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php @@ -9,18 +9,22 @@ use Illuminate\Redis\Connections\PhpRedisConnection; use Illuminate\Redis\Connections\PredisClusterConnection; use Illuminate\Redis\Connections\PredisConnection; +use function Illuminate\Support\enum_value; + class RedisTaggedCache extends TaggedCache { /** * Store an item in the cache if the key does not exist. * - * @param string $key + * @param \UnitEnum|string $key * @param mixed $value * @param \DateTimeInterface|\DateInterval|int|null $ttl * @return bool */ public function add($key, $value, $ttl = null) { + $key = enum_value($key); + $seconds = null; if ($ttl !== null) { @@ -40,13 +44,15 @@ class RedisTaggedCache extends TaggedCache /** * Store an item in the cache. * - * @param string $key + * @param \UnitEnum|string $key * @param mixed $value * @param \DateTimeInterface|\DateInterval|int|null $ttl * @return bool */ public function put($key, $value, $ttl = null) { + $key = enum_value($key); + if (is_null($ttl)) { return $this->forever($key, $value); } @@ -66,12 +72,14 @@ class RedisTaggedCache extends TaggedCache /** * Increment the value of an item in the cache. * - * @param string $key + * @param \UnitEnum|string $key * @param mixed $value * @return int|bool */ public function increment($key, $value = 1) { + $key = enum_value($key); + $this->tags->addEntry($this->itemKey($key), updateWhen: 'NX'); return parent::increment($key, $value); @@ -80,7 +88,7 @@ class RedisTaggedCache extends TaggedCache /** * Decrement the value of an item in the cache. * - * @param string $key + * @param \UnitEnum|string $key * @param mixed $value * @return int|bool */ @@ -94,12 +102,14 @@ class RedisTaggedCache extends TaggedCache /** * Store an item in the cache indefinitely. * - * @param string $key + * @param \UnitEnum|string $key * @param mixed $value * @return bool */ public function forever($key, $value) { + $key = enum_value($key); + $this->tags->addEntry($this->itemKey($key)); return parent::forever($key, $value); diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Repository.php b/vendor/laravel/framework/src/Illuminate/Cache/Repository.php index 738829005..7e7fdd23b 100755 --- a/vendor/laravel/framework/src/Illuminate/Cache/Repository.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/Repository.php @@ -10,6 +10,9 @@ use Illuminate\Cache\Events\CacheFlushed; use Illuminate\Cache\Events\CacheFlushFailed; use Illuminate\Cache\Events\CacheFlushing; use Illuminate\Cache\Events\CacheHit; +use Illuminate\Cache\Events\CacheLocksFlushed; +use Illuminate\Cache\Events\CacheLocksFlushFailed; +use Illuminate\Cache\Events\CacheLocksFlushing; use Illuminate\Cache\Events\CacheMissed; use Illuminate\Cache\Events\ForgettingKey; use Illuminate\Cache\Events\KeyForgetFailed; @@ -21,6 +24,7 @@ use Illuminate\Cache\Events\RetrievingManyKeys; use Illuminate\Cache\Events\WritingKey; use Illuminate\Cache\Events\WritingManyKeys; use Illuminate\Cache\Limiters\ConcurrencyLimiterBuilder; +use Illuminate\Contracts\Cache\CanFlushLocks; use Illuminate\Contracts\Cache\LockProvider; use Illuminate\Contracts\Cache\Repository as CacheContract; use Illuminate\Contracts\Cache\Store; @@ -43,6 +47,13 @@ class Repository implements ArrayAccess, CacheContract __call as macroCall; } + /** + * The cache key prefix used to track when a flexible cache value was last refreshed. + * + * @var string + */ + const FLEXIBLE_CREATED_KEY_PREFIX = 'illuminate:cache:flexible:created:'; + /** * The cache store implementation. * @@ -72,10 +83,14 @@ class Repository implements ArrayAccess, CacheContract protected $config = []; /** - * Create a new cache repository instance. + * The callback to invoke when an unserializable class is encountered. * - * @param \Illuminate\Contracts\Cache\Store $store - * @param array $config + * @var callable|null + */ + protected static $unserializableClassHandler; + + /** + * Create a new cache repository instance. */ public function __construct(Store $store, array $config = []) { @@ -87,7 +102,6 @@ class Repository implements ArrayAccess, CacheContract * Determine if an item exists in the cache. * * @param \UnitEnum|array|string $key - * @return bool */ public function has($key): bool { @@ -110,7 +124,6 @@ class Repository implements ArrayAccess, CacheContract * * @param \UnitEnum|array|string $key * @param mixed $default - * @return mixed */ public function get($key, $default = null): mixed { @@ -132,6 +145,8 @@ class Repository implements ArrayAccess, CacheContract $value = value($default); } else { + $value = $this->handleIncompleteClass($key, $value); + $this->event(new CacheHit($this->getName(), $key, $value)); } @@ -143,7 +158,6 @@ class Repository implements ArrayAccess, CacheContract * * Items not found in the cache will have a null value. * - * @param array $keys * @return array */ public function many(array $keys) @@ -163,8 +177,6 @@ class Repository implements ArrayAccess, CacheContract /** * {@inheritdoc} - * - * @return iterable */ public function getMultiple($keys, $default = null): iterable { @@ -199,6 +211,8 @@ class Repository implements ArrayAccess, CacheContract // If we found a valid value we will fire the "hit" event and return the value // back from this function. The "hit" event gives developers an opportunity // to listen for every possible cache "hit" throughout this applications. + $value = $this->handleIncompleteClass($key, $value); + $this->event(new CacheHit($this->getName(), $key, $value)); return $value; @@ -223,7 +237,6 @@ class Repository implements ArrayAccess, CacheContract * * @param \UnitEnum|string $key * @param (\Closure():(string|null))|string|null $default - * @return string * * @throws \InvalidArgumentException */ @@ -245,7 +258,6 @@ class Repository implements ArrayAccess, CacheContract * * @param \UnitEnum|string $key * @param (\Closure():(int|null))|int|null $default - * @return int * * @throws \InvalidArgumentException */ @@ -271,7 +283,6 @@ class Repository implements ArrayAccess, CacheContract * * @param \UnitEnum|string $key * @param (\Closure():(float|null))|float|null $default - * @return float * * @throws \InvalidArgumentException */ @@ -297,7 +308,6 @@ class Repository implements ArrayAccess, CacheContract * * @param \UnitEnum|string $key * @param (\Closure():(bool|null))|bool|null $default - * @return bool * * @throws \InvalidArgumentException */ @@ -381,7 +391,6 @@ class Repository implements ArrayAccess, CacheContract * @param \UnitEnum|array|string $key * @param mixed $value * @param \DateTimeInterface|\DateInterval|int|null $ttl - * @return bool */ public function set($key, $value, $ttl = null): bool { @@ -391,7 +400,6 @@ class Repository implements ArrayAccess, CacheContract /** * Store multiple items in the cache for a given number of seconds. * - * @param array $values * @param \DateTimeInterface|\DateInterval|int|null $ttl * @return bool */ @@ -425,7 +433,6 @@ class Repository implements ArrayAccess, CacheContract /** * Store multiple items in the cache indefinitely. * - * @param array $values * @return bool */ protected function putManyForever(array $values) @@ -443,8 +450,6 @@ class Repository implements ArrayAccess, CacheContract /** * {@inheritdoc} - * - * @return bool */ public function setMultiple($values, $ttl = null): bool { @@ -551,6 +556,21 @@ class Repository implements ArrayAccess, CacheContract * @return TCacheValue */ public function remember($key, $ttl, Closure $callback) + { + return $this->rememberWithWarmth($key, $ttl, $callback)[0]; + } + + /** + * Get an item from the cache, or execute the given Closure and store the result. + * + * @template TCacheValue + * + * @param \UnitEnum|string $key + * @param \Closure|\DateTimeInterface|\DateInterval|int|null $ttl + * @param \Closure(): TCacheValue $callback + * @return array{TCacheValue, bool} The cached value and whether it was warm. + */ + public function rememberWithWarmth($key, $ttl, Closure $callback): array { $value = $this->get($key); @@ -558,14 +578,14 @@ class Repository implements ArrayAccess, CacheContract // not we will execute the given Closure and cache the result of that for a // given number of seconds so it's available for all subsequent requests. if (! is_null($value)) { - return $value; + return [$value, true]; } $value = $callback(); $this->put($key, $value, value($ttl, $value)); - return $value; + return [$value, false]; } /** @@ -625,13 +645,13 @@ class Repository implements ArrayAccess, CacheContract [ $key => $value, - "illuminate:cache:flexible:created:{$key}" => $created, - ] = $this->many([$key, "illuminate:cache:flexible:created:{$key}"]); + self::FLEXIBLE_CREATED_KEY_PREFIX.$key => $created, + ] = $this->many([$key, self::FLEXIBLE_CREATED_KEY_PREFIX.$key]); if (in_array(null, [$value, $created], true)) { return tap(value($callback), fn ($value) => $this->putMany([ $key => $value, - "illuminate:cache:flexible:created:{$key}" => Carbon::now()->getTimestamp(), + self::FLEXIBLE_CREATED_KEY_PREFIX.$key => Carbon::now()->getTimestamp(), ], $ttl[1])); } @@ -641,26 +661,40 @@ class Repository implements ArrayAccess, CacheContract $refresh = function () use ($key, $ttl, $callback, $lock, $created) { $this->store->lock( - "illuminate:cache:flexible:lock:{$key}", + "illuminate:cache:flexible:lock:{$this->itemKey($key)}", $lock['seconds'] ?? 0, $lock['owner'] ?? null, )->get(function () use ($key, $callback, $created, $ttl) { - if ($created !== $this->get("illuminate:cache:flexible:created:{$key}")) { + if ($created !== $this->get(self::FLEXIBLE_CREATED_KEY_PREFIX.$key)) { return; } $this->putMany([ $key => value($callback), - "illuminate:cache:flexible:created:{$key}" => Carbon::now()->getTimestamp(), + self::FLEXIBLE_CREATED_KEY_PREFIX.$key => Carbon::now()->getTimestamp(), ], $ttl[1]); }); }; - defer($refresh, "illuminate:cache:flexible:{$key}", $alwaysDefer); + defer($refresh, "illuminate:cache:flexible:{$this->itemKey($key)}", $alwaysDefer); return $value; } + /** + * Set the expiration of a cached item. + * + * @param \UnitEnum|string $key + * @param \DateTimeInterface|\DateInterval|int $ttl + * @return bool + */ + public function touch($key, $ttl) + { + $key = enum_value($key); + + return $this->store->touch($this->itemKey($key), $this->getSeconds($ttl)); + } + /** * Execute a callback while holding an atomic lock on a cache mutex to prevent overlapping calls. * @@ -720,7 +754,6 @@ class Repository implements ArrayAccess, CacheContract * Remove an item from the cache. * * @param \UnitEnum|array|string $key - * @return bool */ public function delete($key): bool { @@ -729,8 +762,6 @@ class Repository implements ArrayAccess, CacheContract /** * {@inheritdoc} - * - * @return bool */ public function deleteMultiple($keys): bool { @@ -747,8 +778,6 @@ class Repository implements ArrayAccess, CacheContract /** * {@inheritdoc} - * - * @return bool */ public function clear(): bool { @@ -765,6 +794,32 @@ class Repository implements ArrayAccess, CacheContract return $result; } + /** + * Flush all locks from the cache store. + * + * @throws \BadMethodCallException + */ + public function flushLocks(): bool + { + $store = $this->getStore(); + + if (! $this->supportsFlushingLocks()) { + throw new BadMethodCallException('This cache store does not support flushing locks.'); + } + + $this->event(new CacheLocksFlushing($this->getName())); + + $result = $store->flushLocks(); + + if ($result) { + $this->event(new CacheLocksFlushed($this->getName())); + } else { + $this->event(new CacheLocksFlushFailed($this->getName())); + } + + return $result; + } + /** * Begin executing a new tags operation if the store supports it. * @@ -801,6 +856,28 @@ class Repository implements ArrayAccess, CacheContract return $key; } + /** + * Handle a cache value that contains an incomplete class. + * + * @param string $key + * @param mixed $value + * @return mixed + */ + protected function handleIncompleteClass(string $key, mixed $value): mixed + { + if (! ($value instanceof \__PHP_Incomplete_Class)) { + return $value; + } + + $class = ((array) $value)['__PHP_Incomplete_Class_Name'] ?? null; + + if (isset(static::$unserializableClassHandler)) { + (static::$unserializableClassHandler)($key, $class); + } + + return $value; + } + /** * Calculate the number of seconds for the given TTL. * @@ -840,6 +917,14 @@ class Repository implements ArrayAccess, CacheContract return method_exists($this->store, 'tags'); } + /** + * Determine if the current store supports flushing locks. + */ + public function supportsFlushingLocks(): bool + { + return $this->store instanceof CanFlushLocks; + } + /** * Get the default cache time. * @@ -877,7 +962,7 @@ class Repository implements ArrayAccess, CacheContract * Set the cache store implementation. * * @param \Illuminate\Contracts\Cache\Store $store - * @return static + * @return $this */ public function setStore($store) { @@ -910,7 +995,6 @@ class Repository implements ArrayAccess, CacheContract /** * Set the event dispatcher instance. * - * @param \Illuminate\Contracts\Events\Dispatcher $events * @return void */ public function setEventDispatcher(Dispatcher $events) @@ -918,49 +1002,56 @@ class Repository implements ArrayAccess, CacheContract $this->events = $events; } + /** + * Register a callback to be invoked when an unserializable class is encountered. + * + * @param callable|null $callback + * @return void + */ + public static function handleUnserializableClassUsing(?callable $callback): void + { + static::$unserializableClassHandler = $callback; + } + /** * Determine if a cached value exists. * - * @param \UnitEnum|string $key - * @return bool + * @param \UnitEnum|string $offset */ - public function offsetExists($key): bool + public function offsetExists($offset): bool { - return $this->has($key); + return $this->has($offset); } /** * Retrieve an item from the cache by key. * - * @param \UnitEnum|string $key - * @return mixed + * @param \UnitEnum|string $offset */ - public function offsetGet($key): mixed + public function offsetGet($offset): mixed { - return $this->get($key); + return $this->get($offset); } /** * Store an item in the cache for the default time. * - * @param \UnitEnum|string $key + * @param \UnitEnum|string $offset * @param mixed $value - * @return void */ - public function offsetSet($key, $value): void + public function offsetSet($offset, $value): void { - $this->put($key, $value, $this->default); + $this->put($offset, $value, $this->default); } /** * Remove an item from the cache. * - * @param \UnitEnum|string $key - * @return void + * @param \UnitEnum|string $offset */ - public function offsetUnset($key): void + public function offsetUnset($offset): void { - $this->forget($key); + $this->forget($offset); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Cache/SessionStore.php b/vendor/laravel/framework/src/Illuminate/Cache/SessionStore.php index 0ed5a4da0..f090b0d3c 100644 --- a/vendor/laravel/framework/src/Illuminate/Cache/SessionStore.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/SessionStore.php @@ -155,6 +155,26 @@ class SessionStore implements Store return $this->put($key, $value, 0); } + /** + * Adjust the expiration time of a cached item. + * + * @param string $key + * @param int $seconds + * @return bool + */ + public function touch($key, $seconds) + { + $value = $this->get($key); + + if (is_null($value)) { + return false; + } + + $this->put($key, $value, $seconds); + + return true; + } + /** * Remove an item from the cache. * diff --git a/vendor/laravel/framework/src/Illuminate/Cache/StorageStore.php b/vendor/laravel/framework/src/Illuminate/Cache/StorageStore.php new file mode 100644 index 000000000..194cb5a55 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Cache/StorageStore.php @@ -0,0 +1,322 @@ +disk = $disk; + $this->directory = trim($directory, '/'); + $this->prefix = $prefix; + $this->serializableClasses = $serializableClasses; + } + + /** + * Retrieve an item from the cache by key. + * + * @param string $key + * @return mixed + */ + public function get($key) + { + return $this->getPayload($key)['data'] ?? null; + } + + /** + * Store an item in the cache for a given number of seconds. + * + * @param string $key + * @param mixed $value + * @param int $seconds + * @return bool + */ + public function put($key, $value, $seconds) + { + return $this->disk->put( + $this->path($key), $this->expiration($seconds).serialize($value) + ); + } + + /** + * Store an item in the cache if the key doesn't exist. + * + * @param string $key + * @param mixed $value + * @param int $seconds + * @return bool + */ + public function add($key, $value, $seconds) + { + if (! is_null($this->get($key))) { + return false; + } + + return $this->put($key, $value, $seconds); + } + + /** + * Increment the value of an item in the cache. + * + * @param string $key + * @param mixed $value + * @return int + */ + public function increment($key, $value = 1) + { + $raw = $this->getPayload($key); + + return tap(((int) $raw['data']) + $value, function ($newValue) use ($key, $raw) { + $this->put($key, $newValue, $raw['time'] ?? 0); + }); + } + + /** + * Decrement the value of an item in the cache. + * + * @param string $key + * @param mixed $value + * @return int + */ + public function decrement($key, $value = 1) + { + return $this->increment($key, $value * -1); + } + + /** + * Store an item in the cache indefinitely. + * + * @param string $key + * @param mixed $value + * @return bool + */ + public function forever($key, $value) + { + return $this->put($key, $value, 0); + } + + /** + * Adjust the expiration time of a cached item. + * + * @param string $key + * @param int $seconds + * @return bool + */ + public function touch($key, $seconds) + { + $payload = $this->getPayload($key); + + if (is_null($payload['data'])) { + return false; + } + + return $this->put($key, $payload['data'], $seconds); + } + + /** + * Remove an item from the cache. + * + * @param string $key + * @return bool + */ + public function forget($key) + { + $forgotten = $this->disk->delete($this->path($key)); + + if ($forgotten) { + $this->disk->delete($this->path(Repository::FLEXIBLE_CREATED_KEY_PREFIX.$key)); + } + + return $forgotten; + } + + /** + * Remove all items from the cache. + * + * @return bool + */ + public function flush() + { + if ($this->directory === '') { + $files = $this->disk->allFiles(); + + return $files === [] || $this->disk->delete($files); + } + + return $this->disk->deleteDirectory($this->directory) + && $this->disk->makeDirectory($this->directory); + } + + /** + * Retrieve an item and expiry time from the cache by key. + * + * @param string $key + * @return array + */ + protected function getPayload($key) + { + $path = $this->path($key); + + try { + if (is_null($contents = $this->disk->get($path))) { + return $this->emptyPayload(); + } + + $expire = substr($contents, 0, 10); + } catch (Exception) { + return $this->emptyPayload(); + } + if ($this->currentTime() >= $expire) { + $this->forget($key); + + return $this->emptyPayload(); + } + + try { + $data = $this->unserialize(substr($contents, 10)); + } catch (Exception) { + $this->forget($key); + + return $this->emptyPayload(); + } + + $time = $expire - $this->currentTime(); + + return ['data' => $data, 'time' => $time]; + } + + /** + * Unserialize the given value. + * + * @param string $value + * @return mixed + */ + protected function unserialize($value) + { + if ($this->serializableClasses !== null) { + return unserialize($value, ['allowed_classes' => $this->serializableClasses]); + } + + return unserialize($value); + } + + /** + * Get a default empty payload for the cache. + * + * @return array + */ + protected function emptyPayload() + { + return ['data' => null, 'time' => null]; + } + + /** + * Get the full path for the given cache key. + * + * @param string $key + * @return string + */ + public function path($key) + { + $parts = array_slice(str_split($hash = sha1($this->prefix.$key), 2), 0, 2); + + return trim($this->directory.'/'.implode('/', $parts).'/'.$hash, '/'); + } + + /** + * Get the expiration time based on the given seconds. + * + * @param int $seconds + * @return int + */ + protected function expiration($seconds) + { + $time = $this->availableAt($seconds); + + return $seconds === 0 || $time > 9999999999 ? 9999999999 : $time; + } + + /** + * Get the filesystem disk instance. + * + * @return \Illuminate\Contracts\Filesystem\Filesystem + */ + public function getDisk() + { + return $this->disk; + } + + /** + * Get the working directory of the cache. + * + * @return string + */ + public function getDirectory() + { + return $this->directory; + } + + /** + * Get the cache key prefix. + * + * @return string + */ + public function getPrefix() + { + return $this->prefix; + } + + /** + * Set the cache key prefix. + * + * @param string $prefix + * @return void + */ + public function setPrefix($prefix) + { + $this->prefix = $prefix; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/TaggedCache.php b/vendor/laravel/framework/src/Illuminate/Cache/TaggedCache.php index f32de2196..bca493a94 100644 --- a/vendor/laravel/framework/src/Illuminate/Cache/TaggedCache.php +++ b/vendor/laravel/framework/src/Illuminate/Cache/TaggedCache.php @@ -6,6 +6,8 @@ use Illuminate\Cache\Events\CacheFlushed; use Illuminate\Cache\Events\CacheFlushing; use Illuminate\Contracts\Cache\Store; +use function Illuminate\Support\enum_value; + class TaggedCache extends Repository { use RetrievesMultipleKeys { @@ -51,25 +53,25 @@ class TaggedCache extends Repository /** * Increment the value of an item in the cache. * - * @param string $key + * @param \UnitEnum|string $key * @param mixed $value * @return int|bool */ public function increment($key, $value = 1) { - return $this->store->increment($this->itemKey($key), $value); + return $this->store->increment($this->itemKey(enum_value($key)), $value); } /** * Decrement the value of an item in the cache. * - * @param string $key + * @param \UnitEnum|string $key * @param mixed $value * @return int|bool */ public function decrement($key, $value = 1) { - return $this->store->decrement($this->itemKey($key), $value); + return $this->store->decrement($this->itemKey(enum_value($key)), $value); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Cache/composer.json b/vendor/laravel/framework/src/Illuminate/Cache/composer.json index 784d17f3f..f163ba48f 100755 --- a/vendor/laravel/framework/src/Illuminate/Cache/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Cache/composer.json @@ -2,48 +2,48 @@ "name": "illuminate/cache", "description": "The Illuminate Cache package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, "require": { - "php": "^8.2", - "illuminate/collections": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/support": "^12.0" + "php": "^8.3", + "illuminate/collections": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/support": "^13.0" }, "provide": { - "psr/simple-cache-implementation": "1.0|2.0|3.0" + "psr/simple-cache-implementation": "1.0 || 2.0 || 3.0" }, + "suggest": { + "ext-apcu": "Required to use the APC cache driver.", + "ext-filter": "Required to use the DynamoDb cache driver.", + "ext-memcached": "Required to use the memcache cache driver.", + "illuminate/database": "Required to use the database cache driver (^13.0).", + "illuminate/filesystem": "Required to use the file cache driver (^13.0).", + "illuminate/redis": "Required to use the redis cache driver (^13.0).", + "symfony/cache": "Required to use PSR-6 cache bridge (^7.4 || ^8.0)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Cache\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "suggest": { - "ext-apcu": "Required to use the APC cache driver.", - "ext-filter": "Required to use the DynamoDb cache driver.", - "ext-memcached": "Required to use the memcached cache driver.", - "illuminate/database": "Required to use the database cache driver (^12.0).", - "illuminate/filesystem": "Required to use the file cache driver (^12.0).", - "illuminate/redis": "Required to use the redis cache driver (^12.0).", - "symfony/cache": "Required to use PSR-6 cache bridge (^7.2)." - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Collections/Arr.php b/vendor/laravel/framework/src/Illuminate/Collections/Arr.php index d3e4d89e7..3d14d0467 100644 --- a/vendor/laravel/framework/src/Illuminate/Collections/Arr.php +++ b/vendor/laravel/framework/src/Illuminate/Collections/Arr.php @@ -11,6 +11,7 @@ use Illuminate\Support\Traits\Macroable; use InvalidArgumentException; use JsonSerializable; use Random\Randomizer; +use SortDirection; use Traversable; use WeakMap; @@ -412,7 +413,7 @@ class Arr $keys = (array) $keys; - if (count($keys) === 0) { + if ($keys === []) { return; } @@ -555,13 +556,7 @@ class Arr return false; } - foreach ($keys as $key) { - if (! static::has($array, $key)) { - return false; - } - } - - return true; + return array_all($keys, fn ($key) => static::has($array, $key)); } /** @@ -587,13 +582,7 @@ class Arr return false; } - foreach ($keys as $key) { - if (static::has($array, $key)) { - return true; - } - } - - return false; + return array_any($keys, fn ($key) => static::has($array, $key)); } /** @@ -947,7 +936,7 @@ class Arr * @param array $array * @param int|null $number * @param bool $preserveKeys - * @return mixed + * @return ($number is null ? mixed : array) * * @throws \InvalidArgumentException */ @@ -1091,7 +1080,7 @@ class Arr * @template TValue * * @param iterable $array - * @param callable|string|null|array $callback + * @param callable|string|null|array $callback * @return array */ public static function sort($array, $callback = null) @@ -1122,7 +1111,7 @@ class Arr * * @param array $array * @param int-mask-of $options - * @param bool $descending + * @param SortDirection|bool $descending * @return array */ public static function sortRecursive($array, $options = SORT_REGULAR, $descending = false) @@ -1134,13 +1123,15 @@ class Arr } if (! array_is_list($array)) { - $descending - ? krsort($array, $options) - : ksort($array, $options); + match ($descending) { + false, SortDirection::Ascending => ksort($array, $options), + true, SortDirection::Descending => krsort($array, $options), + }; } else { - $descending - ? rsort($array, $options) - : sort($array, $options); + match ($descending) { + false, SortDirection::Ascending => sort($array, $options), + true, SortDirection::Descending => rsort($array, $options), + }; } return $array; @@ -1158,7 +1149,7 @@ class Arr */ public static function sortRecursiveDesc($array, $options = SORT_REGULAR) { - return static::sortRecursive($array, $options, true); + return static::sortRecursive($array, $options, SortDirection::Descending); } /** @@ -1284,8 +1275,11 @@ class Arr /** * Filter items where the value is not null. * - * @param array $array - * @return array + * @template TKey of array-key + * @template TValue + * + * @param array $array + * @return array */ public static function whereNotNull($array) { diff --git a/vendor/laravel/framework/src/Illuminate/Collections/Collection.php b/vendor/laravel/framework/src/Illuminate/Collections/Collection.php index 1d42b2c89..18de341e4 100644 --- a/vendor/laravel/framework/src/Illuminate/Collections/Collection.php +++ b/vendor/laravel/framework/src/Illuminate/Collections/Collection.php @@ -9,6 +9,7 @@ use Illuminate\Support\Traits\EnumeratesValues; use Illuminate\Support\Traits\Macroable; use Illuminate\Support\Traits\TransformsToResourceCollection; use InvalidArgumentException; +use SortDirection; use stdClass; use Traversable; @@ -44,6 +45,17 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl $this->items = $this->getArrayableItems($items); } + /** + * Create a new instance of the collection. + * + * @param \Illuminate\Contracts\Support\Arrayable|iterable|null $items + * @return static + */ + protected function newInstance($items = []) + { + return new static($items); + } + /** * Create a collection with the given range. * @@ -52,9 +64,9 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl * @param int $step * @return static */ - public static function range($from, $to, $step = 1) + public static function range($from, $to, $step = 1, ...$args) { - return new static(range($from, $to, $step)); + return new static(range($from, $to, $step), ...$args); } /** @@ -101,9 +113,9 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl return $values->get($middle); } - return (new static([ + return $this->newInstance([ $values->get($middle - 1), $values->get($middle), - ]))->average(); + ])->average(); } /** @@ -120,7 +132,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl $collection = isset($key) ? $this->pluck($key) : $this; - $counts = new static; + $counts = $this->newInstance(); $collection->each(fn ($value) => $counts[$value] = isset($counts[$value]) ? $counts[$value] + 1 : 1); @@ -139,7 +151,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function collapse() { - return new static(Arr::collapse($this->items)); + return $this->newInstance(Arr::collapse($this->items)); } /** @@ -150,7 +162,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl public function collapseWithKeys() { if (! $this->items) { - return new static; + return $this->newInstance(); } $results = []; @@ -166,10 +178,10 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl } if (! $results) { - return new static; + return $this->newInstance(); } - return new static(array_replace(...$results)); + return $this->newInstance(array_replace(...$results)); } /** @@ -250,7 +262,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function crossJoin(...$lists) { - return new static(Arr::crossJoin( + return $this->newInstance(Arr::crossJoin( $this->items, ...array_map($this->getArrayableItems(...), $lists) )); } @@ -263,7 +275,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function diff($items) { - return new static(array_diff($this->items, $this->getArrayableItems($items))); + return $this->newInstance(array_diff($this->items, $this->getArrayableItems($items))); } /** @@ -275,7 +287,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function diffUsing($items, callable $callback) { - return new static(array_udiff($this->items, $this->getArrayableItems($items), $callback)); + return $this->newInstance(array_udiff($this->items, $this->getArrayableItems($items), $callback)); } /** @@ -286,7 +298,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function diffAssoc($items) { - return new static(array_diff_assoc($this->items, $this->getArrayableItems($items))); + return $this->newInstance(array_diff_assoc($this->items, $this->getArrayableItems($items))); } /** @@ -298,7 +310,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function diffAssocUsing($items, callable $callback) { - return new static(array_diff_uassoc($this->items, $this->getArrayableItems($items), $callback)); + return $this->newInstance(array_diff_uassoc($this->items, $this->getArrayableItems($items), $callback)); } /** @@ -309,7 +321,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function diffKeys($items) { - return new static(array_diff_key($this->items, $this->getArrayableItems($items))); + return $this->newInstance(array_diff_key($this->items, $this->getArrayableItems($items))); } /** @@ -321,7 +333,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function diffKeysUsing($items, callable $callback) { - return new static(array_diff_ukey($this->items, $this->getArrayableItems($items), $callback)); + return $this->newInstance(array_diff_ukey($this->items, $this->getArrayableItems($items), $callback)); } /** @@ -341,7 +353,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl $compare = $this->duplicateComparator($strict); - $duplicates = new static; + $duplicates = $this->newInstance(); foreach ($items as $key => $value) { if ($uniqueItems->isNotEmpty() && $compare($value, $uniqueItems->first())) { @@ -391,7 +403,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl public function except($keys) { if (is_null($keys)) { - return new static($this->items); + return $this->newInstance($this->items); } if ($keys instanceof Enumerable) { @@ -400,7 +412,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl $keys = func_get_args(); } - return new static(Arr::except($this->items, $keys)); + return $this->newInstance(Arr::except($this->items, $keys)); } /** @@ -412,10 +424,10 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl public function filter(?callable $callback = null) { if ($callback) { - return new static(Arr::where($this->items, $callback)); + return $this->newInstance(Arr::where($this->items, $callback)); } - return new static(array_filter($this->items)); + return $this->newInstance(array_filter($this->items)); } /** @@ -440,7 +452,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function flatten($depth = INF) { - return new static(Arr::flatten($this->items, $depth)); + return $this->newInstance(Arr::flatten($this->items, $depth)); } /** @@ -450,7 +462,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function flip() { - return new static(array_flip($this->items)); + return $this->newInstance(array_flip($this->items)); } /** @@ -509,19 +521,9 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl } /** - * Group an associative array by a field or using a callback. - * - * @template TGroupKey of array-key|\UnitEnum|\Stringable - * - * @param (callable(TValue, TKey): TGroupKey)|array|string $groupBy - * @param bool $preserveKeys - * @return static< - * ($groupBy is (array|string) - * ? array-key - * : (TGroupKey is \UnitEnum ? array-key : (TGroupKey is \Stringable ? string : TGroupKey))), - * static<($preserveKeys is true ? TKey : int), ($groupBy is array ? mixed : TValue)> - * > + * {@inheritDoc} */ + #[\Override] public function groupBy($groupBy, $preserveKeys = false) { if (! $this->useAsCallable($groupBy) && is_array($groupBy)) { @@ -550,14 +552,14 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl }; if (! array_key_exists($groupKey, $results)) { - $results[$groupKey] = new static; + $results[$groupKey] = $this->newInstance(); } $results[$groupKey]->offsetSet($preserveKeys ? $key : null, $value); } } - $result = new static($results); + $result = $this->newInstance($results); if (! empty($nextGroups)) { return $result->map->groupBy($nextGroups, $preserveKeys); @@ -567,13 +569,9 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl } /** - * Key an associative array by a field or using a callback. - * - * @template TNewKey of array-key|\UnitEnum - * - * @param (callable(TValue, TKey): TNewKey)|array|string $keyBy - * @return static<($keyBy is (array|string) ? array-key : (TNewKey is \UnitEnum ? array-key : TNewKey)), TValue> + * {@inheritDoc} */ + #[\Override] public function keyBy($keyBy) { $keyBy = $this->valueRetriever($keyBy); @@ -594,7 +592,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl $results[$resolvedKey] = $item; } - return new static($results); + return $this->newInstance($results); } /** @@ -657,7 +655,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function intersect($items) { - return new static(array_intersect($this->items, $this->getArrayableItems($items))); + return $this->newInstance(array_intersect($this->items, $this->getArrayableItems($items))); } /** @@ -669,7 +667,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function intersectUsing($items, callable $callback) { - return new static(array_uintersect($this->items, $this->getArrayableItems($items), $callback)); + return $this->newInstance(array_uintersect($this->items, $this->getArrayableItems($items), $callback)); } /** @@ -680,7 +678,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function intersectAssoc($items) { - return new static(array_intersect_assoc($this->items, $this->getArrayableItems($items))); + return $this->newInstance(array_intersect_assoc($this->items, $this->getArrayableItems($items))); } /** @@ -692,7 +690,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function intersectAssocUsing($items, callable $callback) { - return new static(array_intersect_uassoc($this->items, $this->getArrayableItems($items), $callback)); + return $this->newInstance(array_intersect_uassoc($this->items, $this->getArrayableItems($items), $callback)); } /** @@ -703,7 +701,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function intersectByKeys($items) { - return new static(array_intersect_key( + return $this->newInstance(array_intersect_key( $this->items, $this->getArrayableItems($items) )); } @@ -773,7 +771,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl return $this->last(); } - $collection = new static($this->items); + $collection = $this->newInstance($this->items); $finalItem = $collection->pop(); @@ -787,7 +785,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function keys() { - return new static(array_keys($this->items)); + return $this->newInstance(array_keys($this->items)); } /** @@ -813,7 +811,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function pluck($value, $key = null) { - return new static(Arr::pluck($this->items, $value, $key)); + return $this->newInstance(Arr::pluck($this->items, $value, $key)); } /** @@ -826,7 +824,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function map(callable $callback) { - return new static(Arr::map($this->items, $callback)); + return $this->newInstance(Arr::map($this->items, $callback)); } /** @@ -858,7 +856,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl $dictionary[$key][] = $value; } - return new static($dictionary); + return $this->newInstance($dictionary); } /** @@ -874,7 +872,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function mapWithKeys(callable $callback) { - return new static(Arr::mapWithKeys($this->items, $callback)); + return $this->newInstance(Arr::mapWithKeys($this->items, $callback)); } /** @@ -887,7 +885,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function merge($items) { - return new static(array_merge($this->items, $this->getArrayableItems($items))); + return $this->newInstance(array_merge($this->items, $this->getArrayableItems($items))); } /** @@ -900,7 +898,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function mergeRecursive($items) { - return new static(array_merge_recursive($this->items, $this->getArrayableItems($items))); + return $this->newInstance(array_merge_recursive($this->items, $this->getArrayableItems($items))); } /** @@ -911,7 +909,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function multiply(int $multiplier) { - $new = new static; + $new = $this->newInstance(); for ($i = 0; $i < $multiplier; $i++) { $new->push(...$this->items); @@ -930,7 +928,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function combine($values) { - return new static(array_combine($this->all(), $this->getArrayableItems($values))); + return $this->newInstance(array_combine($this->all(), $this->getArrayableItems($values))); } /** @@ -941,7 +939,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function union($items) { - return new static($this->items + $this->getArrayableItems($items)); + return $this->newInstance($this->items + $this->getArrayableItems($items)); } /** @@ -971,7 +969,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl $position++; } - return new static($new); + return $this->newInstance($new); } /** @@ -983,7 +981,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl public function only($keys) { if (is_null($keys)) { - return new static($this->items); + return $this->newInstance($this->items); } if ($keys instanceof Enumerable) { @@ -992,7 +990,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl $keys = is_array($keys) ? $keys : func_get_args(); - return new static(Arr::only($this->items, $keys)); + return $this->newInstance(Arr::only($this->items, $keys)); } /** @@ -1004,7 +1002,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl public function select($keys) { if (is_null($keys)) { - return new static($this->items); + return $this->newInstance($this->items); } if ($keys instanceof Enumerable) { @@ -1013,7 +1011,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl $keys = is_array($keys) ? $keys : func_get_args(); - return new static(Arr::select($this->items, $keys)); + return $this->newInstance(Arr::select($this->items, $keys)); } /** @@ -1025,7 +1023,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl public function pop($count = 1) { if ($count < 1) { - return new static; + return $this->newInstance(); } if ($count === 1) { @@ -1033,7 +1031,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl } if ($this->isEmpty()) { - return new static; + return $this->newInstance(); } $results = []; @@ -1044,7 +1042,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl $results[] = array_pop($this->items); } - return new static($results); + return $this->newInstance($results); } /** @@ -1100,7 +1098,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function concat($source) { - $result = new static($this); + $result = $this->newInstance($this); foreach ($source as $item) { $result->push($item); @@ -1153,10 +1151,10 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl } if (is_callable($number)) { - return new static(Arr::random($this->items, $number($this), $preserveKeys)); + return $this->newInstance(Arr::random($this->items, $number($this), $preserveKeys)); } - return new static(Arr::random($this->items, $number, $preserveKeys)); + return $this->newInstance(Arr::random($this->items, $number, $preserveKeys)); } /** @@ -1167,7 +1165,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function replace($items) { - return new static(array_replace($this->items, $this->getArrayableItems($items))); + return $this->newInstance(array_replace($this->items, $this->getArrayableItems($items))); } /** @@ -1178,7 +1176,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function replaceRecursive($items) { - return new static(array_replace_recursive($this->items, $this->getArrayableItems($items))); + return $this->newInstance(array_replace_recursive($this->items, $this->getArrayableItems($items))); } /** @@ -1188,7 +1186,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function reverse() { - return new static(array_reverse($this->items, true)); + return $this->newInstance(array_reverse($this->items, true)); } /** @@ -1274,7 +1272,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl } if ($count === 0) { - return new static; + return $this->newInstance(); } if ($count === 1) { @@ -1289,7 +1287,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl $results[] = array_shift($this->items); } - return new static($results); + return $this->newInstance($results); } /** @@ -1299,7 +1297,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function shuffle() { - return new static(Arr::shuffle($this->items)); + return $this->newInstance(Arr::shuffle($this->items)); } /** @@ -1343,7 +1341,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function skipUntil($value) { - return new static($this->lazy()->skipUntil($value)->all()); + return $this->newInstance($this->lazy()->skipUntil($value)->all()); } /** @@ -1354,7 +1352,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function skipWhile($value) { - return new static($this->lazy()->skipWhile($value)->all()); + return $this->newInstance($this->lazy()->skipWhile($value)->all()); } /** @@ -1366,7 +1364,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function slice($offset, $length = null) { - return new static(array_slice($this->items, $offset, $length, true)); + return $this->newInstance(array_slice($this->items, $offset, $length, true)); } /** @@ -1384,10 +1382,10 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl } if ($this->isEmpty()) { - return new static; + return $this->newInstance(); } - $groups = new static; + $groups = $this->newInstance(); $groupSize = floor($this->count() / $numberOfGroups); @@ -1403,7 +1401,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl } if ($size) { - $groups->push(new static(array_slice($this->items, $start, $size))); + $groups->push($this->newInstance(array_slice($this->items, $start, $size))); $start += $size; } @@ -1518,16 +1516,16 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl public function chunk($size, $preserveKeys = true) { if ($size <= 0) { - return new static; + return $this->newInstance(); } $chunks = []; foreach (array_chunk($this->items, $size, $preserveKeys) as $chunk) { - $chunks[] = new static($chunk); + $chunks[] = $this->newInstance($chunk); } - return new static($chunks); + return $this->newInstance($chunks); } /** @@ -1538,7 +1536,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function chunkWhile(callable $callback) { - return new static( + return $this->newInstance( $this->lazy()->chunkWhile($callback)->mapInto(static::class) ); } @@ -1557,13 +1555,13 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl ? uasort($items, $callback) : asort($items, $callback ?? SORT_REGULAR); - return new static($items); + return $this->newInstance($items); } /** * Sort items in descending order. * - * @param int $options + * @param int-mask-of $options * @return static */ public function sortDesc($options = SORT_REGULAR) @@ -1572,15 +1570,15 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl arsort($items, $options); - return new static($items); + return $this->newInstance($items); } /** * Sort the collection using the given callback. * - * @param array|(callable(TValue, TKey): mixed)|string $callback - * @param int $options - * @param bool $descending + * @param array|(callable(TValue, TKey): mixed)|string|int $callback + * @param int-mask-of $options + * @param SortDirection|bool $descending * @return static */ public function sortBy($callback, $options = SORT_REGULAR, $descending = false) @@ -1600,8 +1598,10 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl $results[$key] = $callback($value, $key); } - $descending ? arsort($results, $options) - : asort($results, $options); + match ($descending) { + false, SortDirection::Ascending => asort($results, $options), + true, SortDirection::Descending => arsort($results, $options), + }; // Once we have sorted all of the keys in the array, we will loop through them // and grab the corresponding model so we can set the underlying items list @@ -1610,14 +1610,14 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl $results[$key] = $this->items[$key]; } - return new static($results); + return $this->newInstance($results); } /** * Sort the collection using multiple comparisons. * - * @param array $comparisons - * @param int $options + * @param array $comparisons + * @param int-mask-of $options * @return static */ protected function sortByMany(array $comparisons = [], int $options = SORT_REGULAR) @@ -1630,15 +1630,18 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl $prop = $comparison[0]; - $ascending = Arr::get($comparison, 1, true) === true || - Arr::get($comparison, 1, true) === 'asc'; + $direction = match (Arr::get($comparison, 1, true)) { + true, 'asc', SortDirection::Ascending => SortDirection::Ascending, + false, 'desc', SortDirection::Descending => SortDirection::Descending, + default => SortDirection::Descending, // for backwards compatibility + }; if (! is_string($prop) && is_callable($prop)) { $result = $prop($a, $b); } else { $values = [data_get($a, $prop), data_get($b, $prop)]; - if (! $ascending) { + if ($direction === SortDirection::Descending) { $values = array_reverse($values); } @@ -1667,14 +1670,14 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl } }); - return new static($items); + return $this->newInstance($items); } /** * Sort the collection in descending order using the given callback. * - * @param array|(callable(TValue, TKey): mixed)|string $callback - * @param int $options + * @param array|(callable(TValue, TKey): mixed)|string|int $callback + * @param int-mask-of $options * @return static */ public function sortByDesc($callback, $options = SORT_REGULAR) @@ -1683,7 +1686,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl foreach ($callback as $index => $key) { $comparison = Arr::wrap($key); - $comparison[1] = 'desc'; + $comparison[1] = SortDirection::Descending; $callback[$index] = $comparison; } @@ -1695,28 +1698,31 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl /** * Sort the collection keys. * - * @param int $options - * @param bool $descending + * @param int-mask-of $options + * @param SortDirection|bool $descending * @return static */ public function sortKeys($options = SORT_REGULAR, $descending = false) { $items = $this->items; - $descending ? krsort($items, $options) : ksort($items, $options); + match ($descending) { + false, SortDirection::Ascending => ksort($items, $options), + true, SortDirection::Descending => krsort($items, $options), + }; - return new static($items); + return $this->newInstance($items); } /** * Sort the collection keys in descending order. * - * @param int $options + * @param int-mask-of $options * @return static */ public function sortKeysDesc($options = SORT_REGULAR) { - return $this->sortKeys($options, true); + return $this->sortKeys($options, SortDirection::Descending); } /** @@ -1731,7 +1737,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl uksort($items, $callback); - return new static($items); + return $this->newInstance($items); } /** @@ -1745,10 +1751,10 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl public function splice($offset, $length = null, $replacement = []) { if (func_num_args() === 1) { - return new static(array_splice($this->items, $offset)); + return $this->newInstance(array_splice($this->items, $offset)); } - return new static(array_splice($this->items, $offset, $length, $this->getArrayableItems($replacement))); + return $this->newInstance(array_splice($this->items, $offset, $length, $this->getArrayableItems($replacement))); } /** @@ -1774,7 +1780,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function takeUntil($value) { - return new static($this->lazy()->takeUntil($value)->all()); + return $this->newInstance($this->lazy()->takeUntil($value)->all()); } /** @@ -1785,7 +1791,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function takeWhile($value) { - return new static($this->lazy()->takeWhile($value)->all()); + return $this->newInstance($this->lazy()->takeWhile($value)->all()); } /** @@ -1813,7 +1819,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function dot($depth = INF) { - return new static(Arr::dot($this->all(), '', $depth)); + return $this->newInstance(Arr::dot($this->all(), '', $depth)); } /** @@ -1823,7 +1829,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function undot() { - return new static(Arr::undot($this->all())); + return $this->newInstance(Arr::undot($this->all())); } /** @@ -1836,7 +1842,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl public function unique($key = null, $strict = false) { if (is_null($key) && $strict === false) { - return new static(array_unique($this->items, SORT_REGULAR)); + return $this->newInstance(array_unique($this->items, SORT_REGULAR)); } $callback = $this->valueRetriever($key); @@ -1859,7 +1865,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function values() { - return new static(array_values($this->items)); + return $this->newInstance(array_values($this->items)); } /** @@ -1877,9 +1883,9 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl { $arrayableItems = array_map(fn ($items) => $this->getArrayableItems($items), func_get_args()); - $params = array_merge([fn () => new static(func_get_args()), $this->items], $arrayableItems); + $params = array_merge([fn () => $this->newInstance(func_get_args()), $this->items], $arrayableItems); - return new static(array_map(...$params)); + return $this->newInstance(array_map(...$params)); } /** @@ -1893,7 +1899,7 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl */ public function pad($size, $value) { - return new static(array_pad($this->items, $size, $value)); + return $this->newInstance(array_pad($this->items, $size, $value)); } /** @@ -1917,14 +1923,12 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl } /** - * Count the number of items in the collection by a field or using a callback. - * - * @param (callable(TValue, TKey): (array-key|\UnitEnum))|string|null $countBy - * @return static + * {@inheritDoc} */ + #[\Override] public function countBy($countBy = null) { - return new static($this->lazy()->countBy($countBy)->all()); + return $this->newInstance($this->lazy()->countBy($countBy)->all()); } /** @@ -1953,49 +1957,49 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl /** * Determine if an item exists at an offset. * - * @param TKey $key + * @param TKey $offset * @return bool */ - public function offsetExists($key): bool + public function offsetExists($offset): bool { - return isset($this->items[$key]); + return isset($this->items[$offset]); } /** * Get an item at a given offset. * - * @param TKey $key + * @param TKey $offset * @return TValue */ - public function offsetGet($key): mixed + public function offsetGet($offset): mixed { - return $this->items[$key]; + return $this->items[$offset]; } /** * Set the item at a given offset. * - * @param TKey|null $key + * @param TKey|null $offset * @param TValue $value * @return void */ - public function offsetSet($key, $value): void + public function offsetSet($offset, $value): void { - if (is_null($key)) { + if (is_null($offset)) { $this->items[] = $value; } else { - $this->items[$key] = $value; + $this->items[$offset] = $value; } } /** * Unset the item at a given offset. * - * @param TKey $key + * @param TKey $offset * @return void */ - public function offsetUnset($key): void + public function offsetUnset($offset): void { - unset($this->items[$key]); + unset($this->items[$offset]); } } diff --git a/vendor/laravel/framework/src/Illuminate/Collections/Enumerable.php b/vendor/laravel/framework/src/Illuminate/Collections/Enumerable.php index 5078f90dc..7675e7007 100644 --- a/vendor/laravel/framework/src/Illuminate/Collections/Enumerable.php +++ b/vendor/laravel/framework/src/Illuminate/Collections/Enumerable.php @@ -34,9 +34,11 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, /** * Create a new instance by invoking the callback a given amount of times. * + * @template TTimesValue + * * @param int $number - * @param callable|null $callback - * @return static + * @param (callable(int): TTimesValue)|null $callback + * @return static */ public static function times($number, ?callable $callback = null); @@ -46,7 +48,7 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, * @param int $from * @param int $to * @param int $step - * @return static + * @return static */ public static function range($from, $to, $step = 1); @@ -81,7 +83,7 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, /** * Get all items in the enumerable. * - * @return array + * @return array */ public function all(); @@ -494,7 +496,7 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, * Get a flattened array of the items in the collection. * * @param int $depth - * @return static + * @return static */ public function flatten($depth = INF); @@ -519,21 +521,26 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, /** * Group an associative array by a field or using a callback. * - * @template TGroupKey of array-key + * @template TGroupKey of array-key|\UnitEnum|\Stringable * * @param (callable(TValue, TKey): TGroupKey)|array|string $groupBy * @param bool $preserveKeys - * @return static<($groupBy is string ? array-key : ($groupBy is array ? array-key : TGroupKey)), static<($preserveKeys is true ? TKey : int), ($groupBy is array ? mixed : TValue)>> + * @return static< + * ($groupBy is (array|string) + * ? array-key + * : (TGroupKey is \UnitEnum ? array-key : (TGroupKey is \Stringable ? string : TGroupKey))), + * static<($preserveKeys is true ? TKey : int), ($groupBy is array ? mixed : TValue)> + * > */ public function groupBy($groupBy, $preserveKeys = false); /** * Key an associative array by a field or using a callback. * - * @template TNewKey of array-key + * @template TNewKey of array-key|\UnitEnum * * @param (callable(TValue, TKey): TNewKey)|array|string $keyBy - * @return static<($keyBy is string ? array-key : ($keyBy is array ? array-key : TNewKey)), TValue> + * @return static<($keyBy is (array|string) ? array-key : (TNewKey is \UnitEnum ? array-key : TNewKey)), TValue> */ public function keyBy($keyBy); @@ -632,6 +639,26 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, */ public function containsManyItems(); + /** + * Determine if the collection contains a single item, optionally matching the given criteria. + * + * @param (callable(TValue, TKey): bool)|string|null $key + * @param mixed $operator + * @param mixed $value + * @return bool + */ + public function hasSole($key = null, $operator = null, $value = null); + + /** + * Determine if the collection contains multiple items, optionally matching the given criteria. + * + * @param (callable(TValue, TKey): bool)|string|null $key + * @param mixed $operator + * @param mixed $value + * @return bool + */ + public function hasMany($key = null, $operator = null, $value = null); + /** * Join all items from the collection using a string. The final items can use a separate glue string. * @@ -778,16 +805,20 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, /** * Get the min value of a given key. * - * @param (callable(TValue):mixed)|string|null $callback - * @return mixed + * @template TMinResult = mixed + * + * @param (callable(TValue): TMinResult)|string|null $callback + * @return ($callback is callable ? ?TMinResult : ($callback is null ? ?TValue : mixed)) */ public function min($callback = null); /** * Get the max value of a given key. * - * @param (callable(TValue):mixed)|string|null $callback - * @return mixed + * @template TMaxResult = mixed + * + * @param (callable(TValue): TMaxResult)|string|null $callback + * @return ($callback is callable ? ?TMaxResult : ($callback is null ? ?TValue : mixed)) */ public function max($callback = null); @@ -842,7 +873,7 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, * Get one or a specified number of items randomly from the collection. * * @param int|null $number - * @return static|TValue + * @return ($number is null ? TValue : static) * * @throws \InvalidArgumentException */ @@ -860,6 +891,17 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, */ public function reduce(callable $callback, $initial = null); + /** + * Reduce the collection to a single value by mutating an initial value. + * + * @template TReduceIntoInitial + * + * @param TReduceIntoInitial $initial + * @param callable(TReduceIntoInitial, TValue, TKey): void $callback + * @return TReduceIntoInitial + */ + public function reduceInto($initial, callable $callback); + /** * Reduce the collection to multiple aggregate values. * @@ -899,7 +941,7 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, * * @param TValue|callable(TValue,TKey): bool $value * @param bool $strict - * @return TKey|bool + * @return TKey|false */ public function search($value, $strict = false); @@ -1038,7 +1080,7 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, /** * Sort items in descending order. * - * @param int $options + * @param int-mask-of $options * @return static */ public function sortDesc($options = SORT_REGULAR); @@ -1046,8 +1088,8 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, /** * Sort the collection using the given callback. * - * @param array|(callable(TValue, TKey): mixed)|string $callback - * @param int $options + * @param array|(callable(TValue, TKey): mixed)|string|int $callback + * @param int-mask-of $options * @param bool $descending * @return static */ @@ -1056,8 +1098,8 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, /** * Sort the collection in descending order using the given callback. * - * @param array|(callable(TValue, TKey): mixed)|string $callback - * @param int $options + * @param array|(callable(TValue, TKey): mixed)|string|int $callback + * @param int-mask-of $options * @return static */ public function sortByDesc($callback, $options = SORT_REGULAR); @@ -1065,7 +1107,7 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, /** * Sort the collection keys. * - * @param int $options + * @param int-mask-of $options * @param bool $descending * @return static */ @@ -1074,7 +1116,7 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, /** * Sort the collection keys in descending order. * - * @param int $options + * @param int-mask-of $options * @return static */ public function sortKeysDesc($options = SORT_REGULAR); @@ -1090,7 +1132,7 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, /** * Get the sum of the given values. * - * @param (callable(TValue): mixed)|string|null $callback + * @param (callable(TValue, TKey): mixed)|string|null $callback * @return mixed */ public function sum($callback = null); @@ -1231,7 +1273,7 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, /** * Count the number of items in the collection by a field or using a callback. * - * @param (callable(TValue, TKey): array-key)|string|null $countBy + * @param (callable(TValue, TKey): (array-key|\UnitEnum))|string|null $countBy * @return static */ public function countBy($countBy = null); @@ -1281,7 +1323,6 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, /** * Get the collection of items as pretty print formatted JSON. * - * * @param int $options * @return string */ diff --git a/vendor/laravel/framework/src/Illuminate/Collections/LazyCollection.php b/vendor/laravel/framework/src/Illuminate/Collections/LazyCollection.php index 028ab882f..6b6bc6710 100644 --- a/vendor/laravel/framework/src/Illuminate/Collections/LazyCollection.php +++ b/vendor/laravel/framework/src/Illuminate/Collections/LazyCollection.php @@ -41,6 +41,8 @@ class LazyCollection implements CanBeEscapedWhenCastToString, Enumerable * Create a new lazy collection instance. * * @param \Illuminate\Contracts\Support\Arrayable|iterable|(Closure(): \Generator)|self|array|null $source + * + * @throws \InvalidArgumentException */ public function __construct($source = null) { @@ -57,6 +59,17 @@ class LazyCollection implements CanBeEscapedWhenCastToString, Enumerable } } + /** + * Create a new instance of the collection. + * + * @param \Illuminate\Contracts\Support\Arrayable|iterable|(Closure(): \Generator)|self|array|null $items + * @return static + */ + protected function newInstance($items = []) + { + return new static($items); + } + /** * Create a new collection instance if the value isn't one already. * @@ -66,9 +79,9 @@ class LazyCollection implements CanBeEscapedWhenCastToString, Enumerable * @param \Illuminate\Contracts\Support\Arrayable|iterable|(Closure(): \Generator)|self|array|null $items * @return static */ - public static function make($items = []) + public static function make($items = [], ...$args) { - return new static($items); + return new static($items, ...$args); } /** @@ -81,7 +94,7 @@ class LazyCollection implements CanBeEscapedWhenCastToString, Enumerable * * @throws \InvalidArgumentException */ - public static function range($from, $to, $step = 1) + public static function range($from, $to, $step = 1, ...$args) { if ($step == 0) { throw new InvalidArgumentException('Step value cannot be zero.'); @@ -314,11 +327,9 @@ class LazyCollection implements CanBeEscapedWhenCastToString, Enumerable } /** - * Count the number of items in the collection by a field or using a callback. - * - * @param (callable(TValue, TKey): (array-key|\UnitEnum))|string|null $countBy - * @return static + * {@inheritDoc} */ + #[\Override] public function countBy($countBy = null) { $countBy = is_null($countBy) @@ -537,16 +548,6 @@ class LazyCollection implements CanBeEscapedWhenCastToString, Enumerable /** * {@inheritDoc} - * - * @template TGroupKey of array-key|\UnitEnum|\Stringable - * - * @param (callable(TValue, TKey): TGroupKey)|array|string $groupBy - * @return static< - * ($groupBy is (array|string) - * ? array-key - * : (TGroupKey is \UnitEnum ? array-key : (TGroupKey is \Stringable ? string : TGroupKey))), - * static<($preserveKeys is true ? TKey : int), ($groupBy is array ? mixed : TValue)> - * > */ #[\Override] public function groupBy($groupBy, $preserveKeys = false) @@ -555,13 +556,9 @@ class LazyCollection implements CanBeEscapedWhenCastToString, Enumerable } /** - * Key an associative array by a field or using a callback. - * - * @template TNewKey of array-key|\UnitEnum - * - * @param (callable(TValue, TKey): TNewKey)|array|string $keyBy - * @return static<($keyBy is (array|string) ? array-key : (TNewKey is \UnitEnum ? array-key : TNewKey)), TValue> + * {@inheritDoc} */ + #[\Override] public function keyBy($keyBy) { return new static(function () use ($keyBy) { @@ -570,6 +567,10 @@ class LazyCollection implements CanBeEscapedWhenCastToString, Enumerable foreach ($this as $key => $item) { $resolvedKey = $keyBy($item, $key); + if ($resolvedKey instanceof \UnitEnum) { + $resolvedKey = enum_value($resolvedKey); + } + if (is_object($resolvedKey)) { $resolvedKey = (string) $resolvedKey; } @@ -588,10 +589,11 @@ class LazyCollection implements CanBeEscapedWhenCastToString, Enumerable public function has($key) { $keys = array_flip(is_array($key) ? $key : func_get_args()); - $count = count($keys); foreach ($this as $key => $value) { - if (array_key_exists($key, $keys) && --$count == 0) { + unset($keys[$key]); + + if (empty($keys)) { return true; } } @@ -1029,7 +1031,7 @@ class LazyCollection implements CanBeEscapedWhenCastToString, Enumerable * * @param int|null $number * @param bool $preserveKeys - * @return static|TValue + * @return ($number is null ? TValue : static) * * @throws \InvalidArgumentException */ @@ -1940,7 +1942,7 @@ class LazyCollection implements CanBeEscapedWhenCastToString, Enumerable protected function now() { return class_exists(Carbon::class) - ? Carbon::now()->timestamp + ? Carbon::now()->getTimestamp() : time(); } diff --git a/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php b/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php index a475ee10b..3b2a19fd7 100644 --- a/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php +++ b/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php @@ -116,9 +116,9 @@ trait EnumeratesValues * @param \Illuminate\Contracts\Support\Arrayable|iterable|null $items * @return static */ - public static function make($items = []) + public static function make($items = [], ...$args) { - return new static($items); + return new static($items, ...$args); } /** @@ -129,11 +129,11 @@ trait EnumeratesValues * @param iterable|TWrapValue $value * @return static */ - public static function wrap($value) + public static function wrap($value, ...$args) { return $value instanceof Enumerable - ? new static($value) - : new static(Arr::wrap($value)); + ? new static($value, ...$args) + : new static(Arr::wrap($value), ...$args); } /** @@ -155,9 +155,9 @@ trait EnumeratesValues * * @return static */ - public static function empty() + public static function empty(...$args) { - return new static([]); + return new static([], ...$args); } /** @@ -169,13 +169,13 @@ trait EnumeratesValues * @param (callable(int): TTimesValue)|null $callback * @return static */ - public static function times($number, ?callable $callback = null) + public static function times($number, ?callable $callback = null, ...$args) { if ($number < 1) { - return new static; + return new static([], ...$args); } - return static::range(1, $number) + return static::range(1, $number, 1, ...$args) ->unless($callback == null) ->map($callback); } @@ -188,9 +188,9 @@ trait EnumeratesValues * @param int $flags * @return static */ - public static function fromJson($json, $depth = 512, $flags = 0) + public static function fromJson($json, $depth = 512, $flags = 0, ...$args) { - return new static(json_decode($json, true, $depth, $flags)); + return new static(json_decode($json, true, $depth, $flags), ...$args); } /** @@ -486,8 +486,10 @@ trait EnumeratesValues /** * Get the min value of a given key. * - * @param (callable(TValue):mixed)|string|null $callback - * @return mixed + * @template TMinResult = mixed + * + * @param (callable(TValue): TMinResult)|string|null $callback + * @return ($callback is callable ? ?TMinResult : ($callback is null ? ?TValue : mixed)) */ public function min($callback = null) { @@ -501,8 +503,10 @@ trait EnumeratesValues /** * Get the max value of a given key. * - * @param (callable(TValue):mixed)|string|null $callback - * @return mixed + * @template TMaxResult = mixed + * + * @param (callable(TValue): TMaxResult)|string|null $callback + * @return ($callback is callable ? ?TMaxResult : ($callback is null ? ?TValue : mixed)) */ public function max($callback = null) { @@ -545,7 +549,7 @@ trait EnumeratesValues [$passed, $failed] = Arr::partition($this->getIterator(), $callback); - return new static([new static($passed), new static($failed)]); + return $this->newInstance([$this->newInstance($passed), $this->newInstance($failed)]); } /** @@ -572,7 +576,7 @@ trait EnumeratesValues * * @template TReturnType * - * @param (callable(TValue): TReturnType)|string|null $callback + * @param (callable(TValue, TKey): TReturnType)|string|null $callback * @return ($callback is callable ? TReturnType : mixed) */ public function sum($callback = null) @@ -581,7 +585,7 @@ trait EnumeratesValues ? $this->identity() : $this->valueRetriever($callback); - return $this->reduce(fn ($result, $item) => $result + $callback($item), 0); + return $this->reduce(fn ($result, $item, $key) => $result + $callback($item, $key), 0); } /** @@ -779,13 +783,7 @@ trait EnumeratesValues { return $this->filter(function ($value) use ($type) { if (is_array($type)) { - foreach ($type as $classType) { - if ($value instanceof $classType) { - return true; - } - } - - return false; + return array_any($type, fn ($classType) => $value instanceof $classType); } return $value instanceof $type; @@ -840,7 +838,7 @@ trait EnumeratesValues * * @param callable(TReduceInitial|TReduceReturnType, TValue, TKey): TReduceReturnType $callback * @param TReduceInitial $initial - * @return TReduceReturnType + * @return TReduceInitial|TReduceReturnType */ public function reduce(callable $callback, $initial = null) { @@ -853,6 +851,24 @@ trait EnumeratesValues return $result; } + /** + * Reduce the collection to a single value by mutating an initial value. + * + * @template TReduceIntoInitial + * + * @param TReduceIntoInitial $initial + * @param callable(TReduceIntoInitial, TValue, TKey): void $callback + * @return TReduceIntoInitial + */ + public function reduceInto($initial, callable $callback) + { + foreach ($this as $key => $value) { + $callback($initial, $value, $key); + } + + return $initial; + } + /** * Reduce the collection to multiple aggregate values. * @@ -888,7 +904,7 @@ trait EnumeratesValues * * @param callable(TReduceWithKeysInitial|TReduceWithKeysReturnType, TValue, TKey): TReduceWithKeysReturnType $callback * @param TReduceWithKeysInitial $initial - * @return TReduceWithKeysReturnType + * @return TReduceWithKeysInitial|TReduceWithKeysReturnType */ public function reduceWithKeys(callable $callback, $initial = null) { diff --git a/vendor/laravel/framework/src/Illuminate/Collections/composer.json b/vendor/laravel/framework/src/Illuminate/Collections/composer.json index 2471710b3..70fb46b46 100644 --- a/vendor/laravel/framework/src/Illuminate/Collections/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Collections/composer.json @@ -2,26 +2,31 @@ "name": "illuminate/collections", "description": "The Illuminate Collections package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "illuminate/conditionable": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/macroable": "^12.0", - "symfony/polyfill-php83": "^1.33", - "symfony/polyfill-php84": "^1.33", - "symfony/polyfill-php85": "^1.33" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "illuminate/conditionable": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/macroable": "^13.0", + "symfony/polyfill-php84": "^1.36", + "symfony/polyfill-php85": "^1.36", + "symfony/polyfill-php86": "^1.36" + }, + "suggest": { + "illuminate/http": "Required to convert collections to API resources (^13.0).", + "symfony/var-dumper": "Required to use the dump method (^7.4 || ^8.0)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Support\\": "" @@ -31,17 +36,12 @@ "helpers.php" ] }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "suggest": { - "illuminate/http": "Required to convert collections to API resources (^12.0).", - "symfony/var-dumper": "Required to use the dump method (^7.2)." - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Concurrency/ConcurrencyManager.php b/vendor/laravel/framework/src/Illuminate/Concurrency/ConcurrencyManager.php index 8a7823e33..b410e7130 100644 --- a/vendor/laravel/framework/src/Illuminate/Concurrency/ConcurrencyManager.php +++ b/vendor/laravel/framework/src/Illuminate/Concurrency/ConcurrencyManager.php @@ -7,6 +7,8 @@ use Illuminate\Support\MultipleInstanceManager; use RuntimeException; use Spatie\Fork\Fork; +use function Illuminate\Support\enum_value; + /** * @mixin \Illuminate\Contracts\Concurrency\Driver */ @@ -15,12 +17,12 @@ class ConcurrencyManager extends MultipleInstanceManager /** * Get a driver instance by name. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return mixed */ public function driver($name = null) { - return $this->instance($name); + return $this->instance(enum_value($name)); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Concurrency/ForkDriver.php b/vendor/laravel/framework/src/Illuminate/Concurrency/ForkDriver.php index 732873a72..da4b5b85f 100644 --- a/vendor/laravel/framework/src/Illuminate/Concurrency/ForkDriver.php +++ b/vendor/laravel/framework/src/Illuminate/Concurrency/ForkDriver.php @@ -2,6 +2,7 @@ namespace Illuminate\Concurrency; +use Carbon\CarbonInterval; use Closure; use Illuminate\Contracts\Concurrency\Driver; use Illuminate\Support\Arr; @@ -15,14 +16,14 @@ class ForkDriver implements Driver /** * Run the given tasks concurrently and return an array containing the results. */ - public function run(Closure|array $tasks): array + public function run(Closure|array $tasks, CarbonInterval|int|null $timeout = null): array { $tasks = Arr::wrap($tasks); $keys = array_keys($tasks); $values = array_values($tasks); - /** @phpstan-ignore class.notFound */ + /** @phpstan-ignore class.notFound (spatie/fork is not installed as it is practically incompatible with Windows) */ $results = Fork::new()->run(...$values); ksort($results); diff --git a/vendor/laravel/framework/src/Illuminate/Concurrency/ProcessDriver.php b/vendor/laravel/framework/src/Illuminate/Concurrency/ProcessDriver.php index 47439a605..a770f658c 100644 --- a/vendor/laravel/framework/src/Illuminate/Concurrency/ProcessDriver.php +++ b/vendor/laravel/framework/src/Illuminate/Concurrency/ProcessDriver.php @@ -2,6 +2,7 @@ namespace Illuminate\Concurrency; +use Carbon\CarbonInterval; use Closure; use Exception; use Illuminate\Console\Application; @@ -26,18 +27,24 @@ class ProcessDriver implements Driver /** * Run the given tasks concurrently and return an array containing the results. + * + * @throws \Throwable */ - public function run(Closure|array $tasks): array + public function run(Closure|array $tasks, CarbonInterval|int|null $timeout = null): array { $command = Application::formatCommandString('invoke-serialized-closure'); - $results = $this->processFactory->pool(function (Pool $pool) use ($tasks, $command) { + $results = $this->processFactory->pool(function (Pool $pool) use ($tasks, $command, $timeout) { foreach (Arr::wrap($tasks) as $key => $task) { - $pool->as($key)->path(base_path())->env([ + $process = $pool->as($key)->path(base_path())->env([ 'LARAVEL_INVOKABLE_CLOSURE' => base64_encode( serialize(new SerializableClosure($task)) ), ])->command($command); + + if (! is_null($timeout)) { + $process->timeout($timeout); + } } })->start()->wait(); diff --git a/vendor/laravel/framework/src/Illuminate/Concurrency/SyncDriver.php b/vendor/laravel/framework/src/Illuminate/Concurrency/SyncDriver.php index a2f27bae5..1b46b8f71 100644 --- a/vendor/laravel/framework/src/Illuminate/Concurrency/SyncDriver.php +++ b/vendor/laravel/framework/src/Illuminate/Concurrency/SyncDriver.php @@ -2,6 +2,7 @@ namespace Illuminate\Concurrency; +use Carbon\CarbonInterval; use Closure; use Illuminate\Contracts\Concurrency\Driver; use Illuminate\Support\Collection; @@ -14,7 +15,7 @@ class SyncDriver implements Driver /** * Run the given tasks concurrently and return an array containing the results. */ - public function run(Closure|array $tasks): array + public function run(Closure|array $tasks, CarbonInterval|int|null $timeout = null): array { return Collection::wrap($tasks)->map( fn ($task) => $task() diff --git a/vendor/laravel/framework/src/Illuminate/Concurrency/composer.json b/vendor/laravel/framework/src/Illuminate/Concurrency/composer.json index eb4e9467f..87dfa669e 100644 --- a/vendor/laravel/framework/src/Illuminate/Concurrency/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Concurrency/composer.json @@ -2,37 +2,40 @@ "name": "illuminate/concurrency", "description": "The Illuminate Concurrency package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "illuminate/console": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/process": "^12.0", - "illuminate/support": "^12.0", - "laravel/serializable-closure": "^1.3|^2.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "illuminate/console": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/process": "^13.0", + "illuminate/support": "^13.0", + "laravel/serializable-closure": "^2.0.10" + }, + "suggest": { + "spatie/fork": "Required to use the 'fork' concurrency driver (^1.2)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Concurrency\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "11.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Conditionable/composer.json b/vendor/laravel/framework/src/Illuminate/Conditionable/composer.json index 9e0ddfbbd..39088a920 100644 --- a/vendor/laravel/framework/src/Illuminate/Conditionable/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Conditionable/composer.json @@ -2,32 +2,32 @@ "name": "illuminate/conditionable", "description": "The Illuminate Conditionable package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3" + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Support\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Config/Repository.php b/vendor/laravel/framework/src/Illuminate/Config/Repository.php index 5086b18da..7339d06f7 100644 --- a/vendor/laravel/framework/src/Illuminate/Config/Repository.php +++ b/vendor/laravel/framework/src/Illuminate/Config/Repository.php @@ -251,7 +251,7 @@ class Repository implements ArrayAccess, ConfigContract /** * Get all of the configuration items for the application. * - * @return array + * @return array */ public function all() { @@ -261,45 +261,45 @@ class Repository implements ArrayAccess, ConfigContract /** * Determine if the given configuration option exists. * - * @param string $key + * @param string $offset * @return bool */ - public function offsetExists($key): bool + public function offsetExists($offset): bool { - return $this->has($key); + return $this->has($offset); } /** * Get a configuration option. * - * @param string $key + * @param string $offset * @return mixed */ - public function offsetGet($key): mixed + public function offsetGet($offset): mixed { - return $this->get($key); + return $this->get($offset); } /** * Set a configuration option. * - * @param string $key + * @param string $offset * @param mixed $value * @return void */ - public function offsetSet($key, $value): void + public function offsetSet($offset, $value): void { - $this->set($key, $value); + $this->set($offset, $value); } /** * Unset a configuration option. * - * @param string $key + * @param string $offset * @return void */ - public function offsetUnset($key): void + public function offsetUnset($offset): void { - $this->set($key, null); + $this->set($offset, null); } } diff --git a/vendor/laravel/framework/src/Illuminate/Config/composer.json b/vendor/laravel/framework/src/Illuminate/Config/composer.json index 48db6c1db..1af592070 100755 --- a/vendor/laravel/framework/src/Illuminate/Config/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Config/composer.json @@ -2,34 +2,34 @@ "name": "illuminate/config", "description": "The Illuminate Config package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "illuminate/collections": "^12.0", - "illuminate/contracts": "^12.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "illuminate/collections": "^13.0", + "illuminate/contracts": "^13.0" + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Config\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Console/Application.php b/vendor/laravel/framework/src/Illuminate/Console/Application.php index cab3dc9e5..26c2c9213 100755 --- a/vendor/laravel/framework/src/Illuminate/Console/Application.php +++ b/vendor/laravel/framework/src/Illuminate/Console/Application.php @@ -210,26 +210,11 @@ class Application extends SymfonyApplication implements ApplicationContract } /** - * Add an array of commands to the console. - * - * @param array $commands - * @return void - */ - #[\Override] - public function addCommands(array $commands): void - { - foreach ($commands as $command) { - $this->addCommand($command); - } - } - - /** - * Add a command to the console. + * Alias for addCommand() since Symfony's add() method was deprecated. * * @param \Symfony\Component\Console\Command\Command $command * @return \Symfony\Component\Console\Command\Command|null */ - #[\Override] public function add(SymfonyCommand $command): ?SymfonyCommand { return $this->addCommand($command); @@ -253,16 +238,12 @@ class Application extends SymfonyApplication implements ApplicationContract /** * Add the command to the parent instance. * - * @param \Symfony\Component\Console\Command\Command $command + * @param \Symfony\Component\Console\Command\Command|callable $command * @return \Symfony\Component\Console\Command\Command */ - protected function addToParent(SymfonyCommand $command) + protected function addToParent(SymfonyCommand|callable $command) { - if (method_exists(SymfonyApplication::class, 'addCommand')) { - return parent::addCommand($command); - } - - return parent::add($command); + return parent::addCommand($command); } /** @@ -288,10 +269,10 @@ class Application extends SymfonyApplication implements ApplicationContract } if ($command instanceof Command) { - return $this->add($command); + return $this->addCommand($command); } - return $this->add($this->laravel->make($command)); + return $this->addCommand($this->laravel->make($command)); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Console/Attributes/Aliases.php b/vendor/laravel/framework/src/Illuminate/Console/Attributes/Aliases.php new file mode 100644 index 000000000..e3e9669d3 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Console/Attributes/Aliases.php @@ -0,0 +1,19 @@ +configureFromAttributes(); + // We will go ahead and set the name, description, and parameters on console // commands just to make things a little easier on the developer. This is // so they don't have to all be manually specified in the constructors. @@ -98,6 +107,8 @@ class Command extends SymfonyCommand parent::__construct($this->name); } + $this->configureUsageFromAttribute(); + // Once we have constructed the command, we'll set the description and other // related properties of the command. If a signature wasn't used to build // the command we'll set the arguments and the options on this command. @@ -124,6 +135,64 @@ class Command extends SymfonyCommand } } + /** + * Configure the command from class attributes. + * + * @return void + */ + protected function configureFromAttributes() + { + $reflection = new ReflectionClass($this); + + $signature = $reflection->getAttributes(Signature::class); + + if ($signature !== []) { + $signatureInstance = $signature[0]->newInstance(); + + $this->signature = $signatureInstance->signature; + + if ($signatureInstance->aliases !== null) { + $this->aliases = $signatureInstance->aliases; + } + } + + $description = $reflection->getAttributes(Description::class); + + if ($description !== []) { + $this->description = $description[0]->newInstance()->description; + } + + $help = $reflection->getAttributes(Help::class); + + if ($help !== []) { + $this->help = $help[0]->newInstance()->help; + } + + if ($reflection->getAttributes(Hidden::class) !== []) { + $this->hidden = true; + } + + $aliases = $reflection->getAttributes(Aliases::class); + + if ($aliases !== []) { + $this->aliases = $aliases[0]->newInstance()->aliases; + } + } + + /** + * Configure usage examples for the command from class attributes. + * + * @return void + */ + protected function configureUsageFromAttribute() + { + $reflection = new ReflectionClass($this); + + foreach ($reflection->getAttributes(Usage::class) as $usage) { + $this->addUsage($usage->newInstance()->usage); + } + } + /** * Configure the console command using a fluent definition. * diff --git a/vendor/laravel/framework/src/Illuminate/Console/CommandInput.php b/vendor/laravel/framework/src/Illuminate/Console/CommandInput.php new file mode 100644 index 000000000..b0930bdca --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Console/CommandInput.php @@ -0,0 +1,127 @@ +arguments = $arguments; + $this->options = $options; + } + + /** + * Get all of the input for the command. + * + * Options take precedence over arguments when keys collide. + * + * @param mixed $keys + * @return array + */ + public function all($keys = null) + { + $input = array_merge($this->options, $this->arguments); + + if (! $keys) { + return $input; + } + + $results = []; + + foreach (is_array($keys) ? $keys : func_get_args() as $key) { + Arr::set($results, $key, Arr::get($input, $key)); + } + + return $results; + } + + /** + * Retrieve data from the instance. + * + * @param string|null $key + * @param mixed $default + * @return mixed + */ + protected function data($key = null, $default = null) + { + return data_get($this->all(), $key, $default); + } + + /** + * Get all of the arguments passed to the command. + * + * @return array + */ + public function arguments() + { + return $this->arguments; + } + + /** + * Get all of the options passed to the command. + * + * @return array + */ + public function options() + { + return $this->options; + } + + /** + * Get the instance as an array. + * + * @return array + */ + public function toArray() + { + return $this->all(); + } + + /** + * Dynamically access input data. + * + * @param string $name + * @return mixed + */ + public function __get($name) + { + return $this->data($name); + } + + /** + * Determine if an input item is set. + * + * @param string $name + * @return bool + */ + public function __isset($name) + { + return $this->exists($name); + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Concerns/ConfiguresPrompts.php b/vendor/laravel/framework/src/Illuminate/Console/Concerns/ConfiguresPrompts.php index 5ccf1dad2..8ab67efde 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/Concerns/ConfiguresPrompts.php +++ b/vendor/laravel/framework/src/Illuminate/Console/Concerns/ConfiguresPrompts.php @@ -121,6 +121,8 @@ trait ConfiguresPrompts * @param bool|string $required * @param (\Closure(PResult): mixed)|null $validate * @return PResult + * + * @throws \Illuminate\Console\PromptValidationException */ protected function promptUntilValid($prompt, $required, $validate) { @@ -139,7 +141,7 @@ trait ConfiguresPrompts $error = is_callable($validate) ? $validate($result) : $this->validatePrompt($result, $validate); - if (is_string($error) && strlen($error) > 0) { + if (is_string($error) && $error !== '') { $this->components->error($error); if ($this->laravel->runningUnitTests()) { diff --git a/vendor/laravel/framework/src/Illuminate/Console/Concerns/InteractsWithIO.php b/vendor/laravel/framework/src/Illuminate/Console/Concerns/InteractsWithIO.php index db3db629a..2b1658398 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/Concerns/InteractsWithIO.php +++ b/vendor/laravel/framework/src/Illuminate/Console/Concerns/InteractsWithIO.php @@ -3,6 +3,7 @@ namespace Illuminate\Console\Concerns; use Closure; +use Illuminate\Console\CommandInput; use Illuminate\Console\OutputStyle; use Illuminate\Contracts\Support\Arrayable; use Illuminate\Support\Str; @@ -56,6 +57,20 @@ trait InteractsWithIO 'normal' => OutputInterface::VERBOSITY_NORMAL, ]; + /** + * Retrieve the command's input as a CommandInput instance or retrieve an input item. + * + * @param string|null $key + * @param mixed $default + * @return ($key is null ? \Illuminate\Console\CommandInput : mixed) + */ + public function input($key = null, $default = null) + { + $input = new CommandInput($this->arguments(), $this->options()); + + return is_null($key) ? $input : data_get($input->all(), $key, $default); + } + /** * Determine if the given argument is present. * diff --git a/vendor/laravel/framework/src/Illuminate/Console/Concerns/PromptsForMissingInput.php b/vendor/laravel/framework/src/Illuminate/Console/Concerns/PromptsForMissingInput.php index 9e5979d49..7ddf9e455 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/Concerns/PromptsForMissingInput.php +++ b/vendor/laravel/framework/src/Illuminate/Console/Concerns/PromptsForMissingInput.php @@ -21,7 +21,7 @@ trait PromptsForMissingInput * @param \Symfony\Component\Console\Output\OutputInterface $output * @return void */ - protected function interact(InputInterface $input, OutputInterface $output) + protected function interact(InputInterface $input, OutputInterface $output): void { parent::interact($input, $output); diff --git a/vendor/laravel/framework/src/Illuminate/Console/Events/SchedulePaused.php b/vendor/laravel/framework/src/Illuminate/Console/Events/SchedulePaused.php new file mode 100644 index 000000000..16e93185b --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Console/Events/SchedulePaused.php @@ -0,0 +1,7 @@ +addTestOptions(); } @@ -186,7 +186,7 @@ abstract class GeneratorCommand extends Command implements PromptsForMissingInpu $info = $this->type; - if (in_array(CreatesMatchingTest::class, class_uses_recursive($this))) { + if (isset(class_uses_recursive($this)[CreatesMatchingTest::class])) { $this->handleTestCreation($path); } diff --git a/vendor/laravel/framework/src/Illuminate/Console/OutputStyle.php b/vendor/laravel/framework/src/Illuminate/Console/OutputStyle.php index d88ac78fc..2b08d605e 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/OutputStyle.php +++ b/vendor/laravel/framework/src/Illuminate/Console/OutputStyle.php @@ -125,7 +125,7 @@ class OutputStyle extends SymfonyStyle implements NewLineAware return $this->newLineWritten; } - /* + /** * Count the number of trailing new lines in a string. * * @param string|iterable $messages diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php index 9ee9a6e46..4a754bd63 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php +++ b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php @@ -135,7 +135,7 @@ class CallbackEvent extends Event * * @throws \LogicException */ - public function withoutOverlapping($expiresAt = 1440) + public function withoutOverlapping($expiresAt = 1440, $releaseOnTerminationSignals = true) { if (! isset($this->description)) { throw new LogicException( @@ -143,7 +143,7 @@ class CallbackEvent extends Event ); } - return parent::withoutOverlapping($expiresAt); + return parent::withoutOverlapping($expiresAt, $releaseOnTerminationSignals); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php index 17ad5522d..02f713412 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php +++ b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php @@ -70,6 +70,8 @@ class CommandBuilder */ protected function ensureCorrectUser(Event $event, $command) { - return $event->user && ! windows_os() ? 'sudo -u '.$event->user.' -- sh -c \''.$command.'\'' : $command; + return $event->user && ! windows_os() + ? 'sudo -u '.$event->user.' -- sh -c '.ProcessUtils::escapeArgument($command) + : $command; } } diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CronExpressionTimezoneConverter.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CronExpressionTimezoneConverter.php index 04ee0b882..d15b8185a 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CronExpressionTimezoneConverter.php +++ b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CronExpressionTimezoneConverter.php @@ -4,6 +4,7 @@ namespace Illuminate\Console\Scheduling; use DateTimeZone; use Illuminate\Support\Carbon; +use Illuminate\Support\Collection; class CronExpressionTimezoneConverter { @@ -145,7 +146,7 @@ class CronExpressionTimezoneConverter $groups[$carry][] = $new; } - return collect($groups)->map(function ($values) { + return (new Collection($groups))->map(function ($values) { sort($values); return implode(',', $values); @@ -167,7 +168,7 @@ class CronExpressionTimezoneConverter return $field; } - $shifted = collect(explode(',', $field)) + $shifted = (new Collection(explode(',', $field))) ->map(fn ($v) => (((int) $v + $offset - $min) % $mod + $mod) % $mod + $min) ->sort(); diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php index a8bef27de..b4d04b4a3 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php +++ b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php @@ -91,6 +91,13 @@ class Event */ public $exitCode; + /** + * Indicates whether the execution was skipped due to the mutex already being reserved. + * + * @var bool + */ + public $skippedBecauseOverlapping = false; + /** * Create a new event instance. * @@ -127,10 +134,16 @@ class Event */ public function run(Container $container) { + $this->skippedBecauseOverlapping = false; + if ($this->shouldSkipDueToOverlapping()) { + $this->skippedBecauseOverlapping = true; + return; } + $this->ensureMutexIsReleasedOnSignal(); + $exitCode = $this->start($container); if (! $this->runInBackground) { @@ -236,7 +249,7 @@ class Event public function callBeforeCallbacks(Container $container) { foreach ($this->beforeCallbacks as $callback) { - $container->call($callback); + $this->callEventCallback($container, $callback); } } @@ -249,7 +262,7 @@ class Event public function callAfterCallbacks(Container $container) { foreach ($this->afterCallbacks as $callback) { - $container->call($callback); + $this->callEventCallback($container, $callback); } } @@ -289,6 +302,16 @@ class Event return $this->evenInMaintenanceMode; } + /** + * Determine if the event runs when the scheduler is paused. + * + * @return bool + */ + public function runsWhenPaused() + { + return $this->evenWhenPaused; + } + /** * Determine if the Cron expression passes. * @@ -327,13 +350,13 @@ class Event $this->lastChecked = Date::now(); foreach ($this->filters as $callback) { - if (! $app->call($callback)) { + if (! $this->callEventCallback($app, $callback)) { return false; } } foreach ($this->rejects as $callback) { - if ($app->call($callback)) { + if ($this->callEventCallback($app, $callback)) { return false; } } @@ -678,7 +701,7 @@ class Event return $this->then(function (Container $container) use ($callback) { if ($this->exitCode === 0) { - $container->call($callback); + $this->callEventCallback($container, $callback); } }); } @@ -713,7 +736,7 @@ class Event return $this->then(function (Container $container) use ($callback) { if ($this->exitCode !== 0) { - $container->call($callback); + $this->callEventCallback($container, $callback); } }); } @@ -746,10 +769,48 @@ class Event return $onlyIfOutputExists && empty($output) ? null - : $container->call($callback, ['output' => new Stringable($output)]); + : $this->callEventCallback($container, $callback, ['output' => new Stringable($output)]); }; } + /** + * Call the given event callback. + * + * @param \Illuminate\Contracts\Container\Container $container + * @param callable $callback + * @param array $parameters + * @return mixed + */ + protected function callEventCallback(Container $container, callable $callback, array $parameters = []) + { + $eventParameters = $callback instanceof Closure + ? $this->eventParametersForCallback($callback) + : []; + + return $container->call($callback, array_merge( + $eventParameters, $parameters + )); + } + + /** + * Get the event parameters for the given callback. + * + * @param \Closure $callback + * @return array + */ + protected function eventParametersForCallback(Closure $callback) + { + $parameters = $this->closureParameterTypes($callback); + + foreach ($parameters as $name => $type) { + if ($type !== null && is_a($this, $type)) { + return [$name => $this]; + } + } + + return []; + } + /** * Get the summary of the event for display. * @@ -815,7 +876,7 @@ class Event } return 'framework'.DIRECTORY_SEPARATOR.'schedule-'. - sha1($this->expression.$this->normalizeCommand($this->command ?? '')); + sha1($this->expression.self::normalizeCommand($this->command ?? '')); } /** @@ -831,6 +892,30 @@ class Event return $this; } + /** + * Ensure the mutex is released if the process receives a termination signal. + * + * @return void + */ + protected function ensureMutexIsReleasedOnSignal() + { + if (! $this->releaseOnTerminationSignals || + $this->runInBackground || + ! extension_loaded('pcntl')) { + return; + } + + pcntl_async_signals(true); + + foreach ([SIGTERM, SIGINT, SIGQUIT] as $signal) { + pcntl_signal($signal, function () { + $this->removeMutex(); + + exit(1); + }); + } + } + /** * Delete the mutex for the event. * diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php index 105f38b9e..4d12fb55f 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php +++ b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php @@ -48,6 +48,13 @@ trait ManagesAttributes */ public $evenInMaintenanceMode = false; + /** + * Indicates if the command should run even when the scheduler is paused. + * + * @var bool + */ + public $evenWhenPaused = false; + /** * Indicates if the command should not overlap itself. * @@ -55,6 +62,13 @@ trait ManagesAttributes */ public $withoutOverlapping = false; + /** + * Indicates if the mutex should be released when the process receives a termination signal. + * + * @var bool + */ + public $releaseOnTerminationSignals = true; + /** * Indicates if the command should only be allowed to run on one server for each cron expression. * @@ -97,6 +111,13 @@ trait ManagesAttributes */ public $description; + /** + * The arbitrary attributes stored with the event. + * + * @var array + */ + public $attributes = []; + /** * Set which user the command should run as. * @@ -135,19 +156,35 @@ trait ManagesAttributes return $this; } + /** + * State that the command should run even when the scheduler is paused. + * + * @return $this + */ + public function evenWhenPaused() + { + $this->evenWhenPaused = true; + + return $this; + } + /** * Do not allow the event to overlap each other. + * * The expiration time of the underlying cache lock may be specified in minutes. * * @param int $expiresAt + * @param bool $releaseOnTerminationSignals * @return $this */ - public function withoutOverlapping($expiresAt = 1440) + public function withoutOverlapping($expiresAt = 1440, $releaseOnTerminationSignals = true) { $this->withoutOverlapping = true; $this->expiresAt = $expiresAt; + $this->releaseOnTerminationSignals = $releaseOnTerminationSignals; + return $this->skip(function () { return $this->mutex->exists($this); }); @@ -230,4 +267,17 @@ trait ManagesAttributes return $this; } + + /** + * Set arbitrary attributes to store with the event. + * + * @param array $attributes + * @return $this + */ + public function withAttributes($attributes) + { + $this->attributes = array_merge_recursive($this->attributes, $attributes); + + return $this; + } } diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php index b38a0ad0b..57b972323 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php +++ b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php @@ -55,21 +55,30 @@ trait ManagesFrequencies */ private function inTimeInterval($startTime, $endTime) { - [$now, $startTime, $endTime] = [ - Carbon::now($this->timezone), - Carbon::parse($startTime, $this->timezone), - Carbon::parse($endTime, $this->timezone), - ]; + $now = Carbon::now(); - if ($endTime->lessThan($startTime)) { - if ($startTime->greaterThan($now)) { - $startTime = $startTime->subDay(1); - } else { - $endTime = $endTime->addDay(1); + return function () use ($startTime, $endTime, $now) { + $now = $now->copy(); + + if ($this->timezone) { + $now->setTimezone($this->timezone); } - } - return fn () => $now->between($startTime, $endTime); + [$startTime, $endTime] = [ + Carbon::parse($startTime, $this->timezone), + Carbon::parse($endTime, $this->timezone), + ]; + + if ($endTime->lessThan($startTime)) { + if ($startTime->greaterThan($now)) { + $startTime = $startTime->subDay(); + } else { + $endTime = $endTime->addDay(); + } + } + + return $now->between($startTime, $endTime); + }; } /** diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/PendingEventAttributes.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/PendingEventAttributes.php index 93f519c71..66996c863 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/PendingEventAttributes.php +++ b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/PendingEventAttributes.php @@ -10,7 +10,36 @@ class PendingEventAttributes use ManagesAttributes, ManagesFrequencies; /** - * The recorded macro calls to replay on each event. + * Event lifecycle and output methods that should be deferred and replayed on each event in the group. + * + * @var array + */ + public const DEFERRED_EVENT_METHODS = [ + 'before', + 'after', + 'then', + 'thenWithOutput', + 'onSuccess', + 'onSuccessWithOutput', + 'onFailure', + 'onFailureWithOutput', + 'pingBefore', + 'pingBeforeIf', + 'thenPing', + 'thenPingIf', + 'pingOnSuccess', + 'pingOnSuccessIf', + 'pingOnFailure', + 'pingOnFailureIf', + 'sendOutputTo', + 'appendOutputTo', + 'emailOutputTo', + 'emailWrittenOutputTo', + 'emailOutputOnFailure', + ]; + + /** + * The recorded macro and deferred method calls to replay on each event. * * @var array */ @@ -30,14 +59,17 @@ class PendingEventAttributes * The expiration time of the underlying cache lock may be specified in minutes. * * @param int $expiresAt + * @param bool $releaseOnTerminationSignals * @return $this */ - public function withoutOverlapping($expiresAt = 1440) + public function withoutOverlapping($expiresAt = 1440, $releaseOnTerminationSignals = true) { $this->withoutOverlapping = true; $this->expiresAt = $expiresAt; + $this->releaseOnTerminationSignals = $releaseOnTerminationSignals; + return $this; } @@ -53,6 +85,10 @@ class PendingEventAttributes $event->name($this->description); } + if ($this->attributes !== []) { + $event->attributes = $this->attributes; + } + if ($this->timezone !== null) { $event->timezone($this->timezone); } @@ -69,8 +105,12 @@ class PendingEventAttributes $event->evenInMaintenanceMode(); } + if ($this->evenWhenPaused) { + $event->evenWhenPaused(); + } + if ($this->withoutOverlapping) { - $event->withoutOverlapping($this->expiresAt); + $event->withoutOverlapping($this->expiresAt, $this->releaseOnTerminationSignals); } if ($this->onOneServer) { @@ -99,7 +139,7 @@ class PendingEventAttributes */ public function __call(string $method, array $parameters): mixed { - if (Event::hasMacro($method)) { + if (Event::hasMacro($method) || in_array($method, static::DEFERRED_EVENT_METHODS, true)) { $this->macros[] = [$method, $parameters]; return $this; diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php index b164549e5..cd1baa154 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php +++ b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php @@ -101,6 +101,20 @@ class Schedule */ protected array $groupStack = []; + /** + * Indicates if the schedule should check for the paused signal in the cache. + * + * @var bool + */ + public static $pausable = true; + + /** + * Indicates if the schedule should check for the interrupt signal in the cache. + * + * @var bool + */ + public static $interruptible = true; + /** * Create a new schedule instance. * @@ -295,7 +309,7 @@ class Schedule */ public function exec($command, array $parameters = []) { - if (count($parameters)) { + if ($parameters !== []) { $command .= ' '.$this->compileParameters($parameters); } @@ -336,16 +350,18 @@ class Schedule */ protected function mergePendingAttributes(Event $event) { - if (! empty($this->groupStack)) { - $group = array_last($this->groupStack); - - $group->mergeAttributes($event); - } - if (isset($this->attributes)) { $this->attributes->mergeAttributes($event); $this->attributes = null; + + return; + } + + if (! empty($this->groupStack)) { + $group = array_last($this->groupStack); + + $group->mergeAttributes($event); } } @@ -429,6 +445,20 @@ class Schedule return $this->events; } + /** + * Get all of the events on the schedule which run on any of the provided environments. + * + * @param list $environments + * @return \Illuminate\Console\Scheduling\Event[] + */ + public function eventsForEnvironments(array $environments): array + { + return array_values(array_filter( + $this->events(), + static fn (Event $event) => array_any($environments, $event->runsInEnvironment(...)) + )); + } + /** * Specify the cache store that should be used to store mutexes. * @@ -473,12 +503,27 @@ class Schedule return $this->dispatcher; } + /** + * Indicate that the scheduler should not poll for pause or interrupt signals. + * + * This prevents the scheduler from hitting the application cache to determine if it needs to pause or interrupt. + * + * @return void + */ + public static function withoutInterruptionPolling() + { + static::$pausable = false; + static::$interruptible = false; + } + /** * Dynamically handle calls into the schedule instance. * * @param string $method * @param array $parameters * @return mixed + * + * @throws \BadMethodCallException */ public function __call($method, $parameters) { @@ -486,7 +531,9 @@ class Schedule return $this->macroCall($method, $parameters); } - if (method_exists(PendingEventAttributes::class, $method) || Event::hasMacro($method)) { + if (method_exists(PendingEventAttributes::class, $method) + || in_array($method, PendingEventAttributes::DEFERRED_EVENT_METHODS, true) + || Event::hasMacro($method)) { $this->attributes ??= $this->groupStack ? clone array_last($this->groupStack) : new PendingEventAttributes($this); return $this->attributes->$method(...$parameters); diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleClearCacheCommand.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleClearCacheCommand.php index 10663695f..24665070d 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleClearCacheCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleClearCacheCommand.php @@ -32,7 +32,7 @@ class ScheduleClearCacheCommand extends Command { $mutexCleared = false; - foreach ($schedule->events($this->laravel) as $event) { + foreach ($schedule->events() as $event) { if ($event->mutex->exists($event)) { $this->components->info(sprintf('Deleting mutex for [%s]', $event->command)); diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleListCommand.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleListCommand.php index c1fa47830..15f4a5724 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleListCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleListCommand.php @@ -6,6 +6,7 @@ use Closure; use Cron\CronExpression; use DateTimeZone; use Illuminate\Console\Command; +use Illuminate\Support\Arr; use Illuminate\Support\Carbon; use Illuminate\Support\Collection; use ReflectionClass; @@ -23,6 +24,7 @@ class ScheduleListCommand extends Command */ protected $signature = 'schedule:list {--timezone= : The timezone that times should be displayed in} + {--environment=* : Display the tasks scheduled to run on this environment} {--next : Sort the listed tasks by their next due date} {--json : Output the scheduled tasks as JSON} '; @@ -51,7 +53,13 @@ class ScheduleListCommand extends Command */ public function handle(Schedule $schedule) { - $events = new Collection($schedule->events()); + $environments = Arr::wrap($this->option('environment')); + + $events = new Collection( + empty($environments) + ? $schedule->events() + : $schedule->eventsForEnvironments($environments) + ); if ($events->isEmpty()) { if ($this->option('json')) { @@ -96,7 +104,7 @@ class ScheduleListCommand extends Command } } - return collect(CronExpressionTimezoneConverter::forEvent($event, $timezone))->map(fn ($expression) => [ + return (new Collection(CronExpressionTimezoneConverter::forEvent($event, $timezone)))->map(fn ($expression) => [ 'expression' => $expression, 'command' => $command, 'description' => $event->description ?? null, @@ -126,13 +134,13 @@ class ScheduleListCommand extends Command $repeatExpressionSpacing = $this->getRepeatExpressionSpacing($events); $events = $events->flatMap(function ($event) use ($terminalWidth, $expressionSpacing, $repeatExpressionSpacing, $timezone) { - return collect(CronExpressionTimezoneConverter::forEvent($event, $timezone))->map( - fn ($expression) => $this->listEvent($event, $terminalWidth, $expressionSpacing, $repeatExpressionSpacing, $timezone, $expression) + return (new Collection(CronExpressionTimezoneConverter::forEvent($event, $timezone)))->map( + fn ($expression) => $this->listEvent($event, $terminalWidth, $expressionSpacing, $repeatExpressionSpacing, $timezone, $expression), ); }); $this->line( - $events->flatten()->filter()->prepend('')->push('')->toArray() + $events->flatten()->filter()->prepend('')->push('')->toArray(), ); } @@ -144,7 +152,7 @@ class ScheduleListCommand extends Command */ private function getCronExpressionSpacing($events, DateTimeZone $timezone) { - $rows = $events->flatMap(fn ($event) => collect(CronExpressionTimezoneConverter::forEvent($event, $timezone)) + $rows = $events->flatMap(fn ($event) => (new Collection(CronExpressionTimezoneConverter::forEvent($event, $timezone))) ->map(fn ($expression) => array_map(mb_strlen(...), preg_split("/\s+/", $expression)))); return (new Collection($rows[0] ?? []))->keys()->map(fn ($key) => $rows->max($key))->all(); @@ -207,7 +215,7 @@ class ScheduleListCommand extends Command $hasMutex = $event->mutex->exists($event) ? 'Has Mutex › ' : ''; $dots = str_repeat('.', max( - $terminalWidth - mb_strwidth($expression.$repeatExpression.$command.$nextDueDateLabel.$nextDueDate.$hasMutex) - 8, 0 + $terminalWidth - mb_strwidth($expression.$repeatExpression.$command.$nextDueDateLabel.$nextDueDate.$hasMutex) - 8, 0, )); // Highlight the parameters... @@ -221,12 +229,12 @@ class ScheduleListCommand extends Command $dots, $hasMutex, $nextDueDateLabel, - $nextDueDate + $nextDueDate, ), $this->output->isVerbose() && mb_strlen($description) > 1 ? sprintf( ' %s%s %s', str_repeat(' ', mb_strlen($expression) + 2), '⇁', - $description + $description, ) : '']; } @@ -279,7 +287,7 @@ class ScheduleListCommand extends Command $nextDueDate = Carbon::instance( (new CronExpression($event->expression)) ->getNextRunDate(Carbon::now()->setTimezone($event->timezone)) - ->setTimezone($timezone) + ->setTimezone($timezone), ); if (! $event->isRepeatable()) { @@ -289,7 +297,7 @@ class ScheduleListCommand extends Command $previousDueDate = Carbon::instance( (new CronExpression($event->expression)) ->getPreviousRunDate(Carbon::now()->setTimezone($event->timezone), allowCurrentDate: true) - ->setTimezone($timezone) + ->setTimezone($timezone), ); $now = Carbon::now()->setTimezone($event->timezone); @@ -335,7 +343,7 @@ class ScheduleListCommand extends Command return sprintf( '%s:%s', str_replace($this->laravel->basePath().DIRECTORY_SEPARATOR, '', $function->getFileName() ?: ''), - $function->getStartLine() + $function->getStartLine(), ); } diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/SchedulePauseCommand.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/SchedulePauseCommand.php new file mode 100644 index 000000000..f4d314305 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/SchedulePauseCommand.php @@ -0,0 +1,42 @@ +components->error('Schedule pausing is currently disabled.'); + + return 1; + } + + $cache->forever('illuminate:schedule:paused', true); + + $dispatcher->dispatch(new SchedulePaused); + + $this->components->info('Scheduled task processing has been paused.'); + + return 0; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleResumeCommand.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleResumeCommand.php new file mode 100644 index 000000000..6140cfe22 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleResumeCommand.php @@ -0,0 +1,43 @@ + + */ + protected $aliases = ['schedule:continue']; + + /** + * Execute the console command. + * + * @return int + */ + public function handle(Cache $cache, Dispatcher $dispatcher) + { + $cache->forget('illuminate:schedule:paused'); + + $dispatcher->dispatch(new ScheduleResumed); + + $this->components->info('Scheduled task processing has resumed.'); + + return 0; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php index 17ef409a1..4e7af5d72 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php @@ -117,7 +117,15 @@ class ScheduleRunCommand extends Command $this->clearInterruptSignal(); } + $paused = $this->isPaused(); + foreach ($events as $event) { + if ($paused && ! $event->runsWhenPaused()) { + $this->dispatcher->dispatch(new ScheduledTaskSkipped($event)); + + continue; + } + if (! $event->filtersPass($this->laravel)) { $this->dispatcher->dispatch(new ScheduledTaskSkipped($event)); @@ -232,7 +240,11 @@ class ScheduleRunCommand extends Command { $hasEnteredMaintenanceMode = false; - while (Date::now()->lte($this->startedAt->endOfMinute())) { + $endOfMinute = $this->startedAt->copy()->endOfMinute(); + + while (Date::now()->lte($endOfMinute)) { + $paused = $this->isPaused(); + foreach ($events as $event) { if ($this->shouldInterrupt()) { return; @@ -242,12 +254,22 @@ class ScheduleRunCommand extends Command continue; } + if (Date::now()->gt($endOfMinute)) { + return; + } + $hasEnteredMaintenanceMode = $hasEnteredMaintenanceMode || $this->laravel->isDownForMaintenance(); if ($hasEnteredMaintenanceMode && ! $event->runsInMaintenanceMode()) { continue; } + if ($paused && ! $event->runsWhenPaused()) { + $this->dispatcher->dispatch(new ScheduledTaskSkipped($event)); + + continue; + } + if (! $event->filtersPass($this->laravel)) { $this->dispatcher->dispatch(new ScheduledTaskSkipped($event)); @@ -267,6 +289,20 @@ class ScheduleRunCommand extends Command } } + /** + * Determine if the schedule is paused. + * + * @return bool + */ + protected function isPaused() + { + if (! Schedule::$pausable) { + return false; + } + + return $this->cache->get('illuminate:schedule:paused', false); + } + /** * Determine if the schedule run should be interrupted. * @@ -274,6 +310,10 @@ class ScheduleRunCommand extends Command */ protected function shouldInterrupt() { + if (! Schedule::$interruptible) { + return false; + } + return $this->cache->get('illuminate:schedule:interrupt', false); } diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleWorkCommand.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleWorkCommand.php index 26c8c317b..307271ce0 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleWorkCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleWorkCommand.php @@ -29,10 +29,24 @@ class ScheduleWorkCommand extends Command */ protected $description = 'Start the schedule worker'; + /** + * The "schedule:run" executions that are currently running. + * + * @var \Symfony\Component\Process\Process[] + */ + protected $executions = []; + + /** + * Indicates if the schedule worker should exit. + * + * @var bool + */ + protected $shouldQuit = false; + /** * Execute the console command. * - * @return never + * @return int */ public function handle() { @@ -41,8 +55,6 @@ class ScheduleWorkCommand extends Command $this->getLaravel()->environment('local') ? OutputInterface::VERBOSITY_NORMAL : OutputInterface::VERBOSITY_VERBOSE ); - [$lastExecutionStartedAt, $executions] = [Carbon::now()->subMinutes(10), []]; - $command = Application::formatCommandString('schedule:run'); if ($this->option('whisper')) { @@ -53,28 +65,73 @@ class ScheduleWorkCommand extends Command $command .= ' >> '.ProcessUtils::escapeArgument($this->option('run-output-file')).' 2>&1'; } - while (true) { - usleep(100 * 1000); + $this->listenForSignals(); - if (Carbon::now()->second === 0 && + return $this->work($command); + } + + /** + * Run the schedule worker loop until it is signalled to stop. + * + * @param string $command + * @return int + */ + protected function work($command) + { + $lastExecutionStartedAt = Carbon::now()->subMinutes(10); + + while (true) { + $this->sleep(); + + // Once a stop signal has been received we stop scheduling new runs so + // that the worker can stop any in-flight executions before exiting + // which lets the current tasks execute instead of being stopped. + if (! $this->shouldQuit && + Carbon::now()->second === 0 && ! Carbon::now()->startOfMinute()->equalTo($lastExecutionStartedAt)) { - $executions[] = $execution = Process::fromShellCommandline($command, base_path()); + $this->executions[] = $execution = Process::fromShellCommandline($command, base_path()); $execution->start(); $lastExecutionStartedAt = Carbon::now()->startOfMinute(); } - foreach ($executions as $key => $execution) { + foreach ($this->executions as $key => $execution) { $output = $execution->getIncrementalOutput(). $execution->getIncrementalErrorOutput(); $this->output->write(ltrim($output, "\n")); if (! $execution->isRunning()) { - unset($executions[$key]); + unset($this->executions[$key]); } } + + if ($this->shouldQuit && empty($this->executions)) { + return static::SUCCESS; + } } } + + /** + * Listen for the signals that should terminate the schedule worker. + * + * @return void + */ + protected function listenForSignals() + { + $this->trap(fn () => [SIGINT, SIGTERM, SIGQUIT], function () { + $this->shouldQuit = true; + }); + } + + /** + * Sleep for a short period before the next worker tick. + * + * @return void + */ + protected function sleep() + { + usleep(100 * 1000); + } } diff --git a/vendor/laravel/framework/src/Illuminate/Console/View/Components/Task.php b/vendor/laravel/framework/src/Illuminate/Console/View/Components/Task.php index fb4ab8d3a..9c10a85c8 100644 --- a/vendor/laravel/framework/src/Illuminate/Console/View/Components/Task.php +++ b/vendor/laravel/framework/src/Illuminate/Console/View/Components/Task.php @@ -20,6 +20,8 @@ class Task extends Component * @param (callable(): bool)|null $task * @param int $verbosity * @return void + * + * @throws \Throwable */ public function render($description, $task = null, $verbosity = OutputInterface::VERBOSITY_NORMAL) { diff --git a/vendor/laravel/framework/src/Illuminate/Console/composer.json b/vendor/laravel/framework/src/Illuminate/Console/composer.json index 4cdc7c576..2ac0ac5e2 100755 --- a/vendor/laravel/framework/src/Illuminate/Console/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Console/composer.json @@ -2,52 +2,52 @@ "name": "illuminate/console", "description": "The Illuminate Console package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, "require": { - "php": "^8.2", + "php": "^8.3", "ext-mbstring": "*", - "illuminate/collections": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/support": "^12.0", - "illuminate/view": "^12.0", + "illuminate/collections": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/support": "^13.0", + "illuminate/view": "^13.0", "laravel/prompts": "^0.3.0", "nunomaduro/termwind": "^2.0", - "symfony/console": "^7.2.0", - "symfony/polyfill-php83": "^1.33", - "symfony/process": "^7.2.0" - }, - "autoload": { - "psr-4": { - "Illuminate\\Console\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } + "symfony/console": "^7.4.0 || ^8.0.0", + "symfony/polyfill-php84": "^1.37", + "symfony/process": "^7.4.5 || ^8.0.5" }, "suggest": { "ext-pcntl": "Required to use signal trapping.", "dragonmantank/cron-expression": "Required to use scheduler (^3.3.2).", "guzzlehttp/guzzle": "Required to use the ping methods on schedules (^7.8).", - "illuminate/bus": "Required to use the scheduled job dispatcher (^12.0).", - "illuminate/container": "Required to use the scheduler (^12.0).", - "illuminate/filesystem": "Required to use the generator command (^12.0).", - "illuminate/queue": "Required to use closures for scheduled jobs (^12.0)." + "illuminate/bus": "Required to use the scheduled job dispatcher (^13.0).", + "illuminate/container": "Required to use the scheduler (^13.0).", + "illuminate/filesystem": "Required to use the generator command (^13.0).", + "illuminate/queue": "Required to use closures for scheduled jobs (^13.0)." + }, + "minimum-stability": "dev", + "autoload": { + "psr-4": { + "Illuminate\\Console\\": "" + } }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Container/Attributes/Auth.php b/vendor/laravel/framework/src/Illuminate/Container/Attributes/Auth.php index 4cf0c1a4c..be6d69c0c 100644 --- a/vendor/laravel/framework/src/Illuminate/Container/Attributes/Auth.php +++ b/vendor/laravel/framework/src/Illuminate/Container/Attributes/Auth.php @@ -5,6 +5,7 @@ namespace Illuminate\Container\Attributes; use Attribute; use Illuminate\Contracts\Container\Container; use Illuminate\Contracts\Container\ContextualAttribute; +use UnitEnum; #[Attribute(Attribute::TARGET_PARAMETER)] class Auth implements ContextualAttribute @@ -12,7 +13,7 @@ class Auth implements ContextualAttribute /** * Create a new class instance. */ - public function __construct(public ?string $guard = null) + public function __construct(public UnitEnum|string|null $guard = null) { } diff --git a/vendor/laravel/framework/src/Illuminate/Container/Attributes/Authenticated.php b/vendor/laravel/framework/src/Illuminate/Container/Attributes/Authenticated.php index ffbba4553..a2b2d6d3e 100644 --- a/vendor/laravel/framework/src/Illuminate/Container/Attributes/Authenticated.php +++ b/vendor/laravel/framework/src/Illuminate/Container/Attributes/Authenticated.php @@ -5,6 +5,7 @@ namespace Illuminate\Container\Attributes; use Attribute; use Illuminate\Contracts\Container\Container; use Illuminate\Contracts\Container\ContextualAttribute; +use UnitEnum; #[Attribute(Attribute::TARGET_PARAMETER)] class Authenticated implements ContextualAttribute @@ -12,7 +13,7 @@ class Authenticated implements ContextualAttribute /** * Create a new class instance. */ - public function __construct(public ?string $guard = null) + public function __construct(public UnitEnum|string|null $guard = null) { } diff --git a/vendor/laravel/framework/src/Illuminate/Container/Attributes/Bind.php b/vendor/laravel/framework/src/Illuminate/Container/Attributes/Bind.php index 3e74b944b..4e3482ad1 100644 --- a/vendor/laravel/framework/src/Illuminate/Container/Attributes/Bind.php +++ b/vendor/laravel/framework/src/Illuminate/Container/Attributes/Bind.php @@ -29,7 +29,7 @@ class Bind * Create a new attribute instance. * * @param class-string $concrete - * @param non-empty-array|non-empty-string|\UnitEnum $environments + * @param non-empty-array|non-empty-string|\UnitEnum $environments * * @throws \InvalidArgumentException */ diff --git a/vendor/laravel/framework/src/Illuminate/Container/Attributes/Cache.php b/vendor/laravel/framework/src/Illuminate/Container/Attributes/Cache.php index 2b7b1f78e..92058850d 100644 --- a/vendor/laravel/framework/src/Illuminate/Container/Attributes/Cache.php +++ b/vendor/laravel/framework/src/Illuminate/Container/Attributes/Cache.php @@ -5,6 +5,7 @@ namespace Illuminate\Container\Attributes; use Attribute; use Illuminate\Contracts\Container\Container; use Illuminate\Contracts\Container\ContextualAttribute; +use UnitEnum; #[Attribute(Attribute::TARGET_PARAMETER)] class Cache implements ContextualAttribute @@ -12,8 +13,10 @@ class Cache implements ContextualAttribute /** * Create a new class instance. */ - public function __construct(public ?string $store = null) - { + public function __construct( + public UnitEnum|string|null $store = null, + public bool $memo = false, + ) { } /** @@ -25,6 +28,8 @@ class Cache implements ContextualAttribute */ public static function resolve(self $attribute, Container $container) { - return $container->make('cache')->store($attribute->store); + return $attribute->memo + ? $container->make('cache')->memo($attribute->store) + : $container->make('cache')->store($attribute->store); } } diff --git a/vendor/laravel/framework/src/Illuminate/Container/Attributes/Log.php b/vendor/laravel/framework/src/Illuminate/Container/Attributes/Log.php index 07673e703..9840f26ef 100644 --- a/vendor/laravel/framework/src/Illuminate/Container/Attributes/Log.php +++ b/vendor/laravel/framework/src/Illuminate/Container/Attributes/Log.php @@ -5,15 +5,23 @@ namespace Illuminate\Container\Attributes; use Attribute; use Illuminate\Contracts\Container\Container; use Illuminate\Contracts\Container\ContextualAttribute; +use UnitEnum; + +use function Illuminate\Support\enum_value; #[Attribute(Attribute::TARGET_PARAMETER)] class Log implements ContextualAttribute { /** * Create a new class instance. + * + * @param UnitEnum|string|null $channel The log configuration's channel name. + * @param UnitEnum|string|null $name The name to prefix all logs with. Only to be used with Monolog drivers. */ - public function __construct(public ?string $channel = null) - { + public function __construct( + public UnitEnum|string|null $channel = null, + public UnitEnum|string|null $name = null, + ) { } /** @@ -25,6 +33,12 @@ class Log implements ContextualAttribute */ public static function resolve(self $attribute, Container $container) { - return $container->make('log')->channel($attribute->channel); + $logger = $container->make('log')->channel(enum_value($attribute->channel)); + + if ($attribute->name !== null) { + $logger = $logger->withName(enum_value($attribute->name)); + } + + return $logger; } } diff --git a/vendor/laravel/framework/src/Illuminate/Container/Attributes/RouteParameter.php b/vendor/laravel/framework/src/Illuminate/Container/Attributes/RouteParameter.php index 32afced0e..3b430f845 100644 --- a/vendor/laravel/framework/src/Illuminate/Container/Attributes/RouteParameter.php +++ b/vendor/laravel/framework/src/Illuminate/Container/Attributes/RouteParameter.php @@ -5,6 +5,7 @@ namespace Illuminate\Container\Attributes; use Attribute; use Illuminate\Contracts\Container\Container; use Illuminate\Contracts\Container\ContextualAttribute; +use ReflectionParameter; #[Attribute(Attribute::TARGET_PARAMETER)] class RouteParameter implements ContextualAttribute @@ -12,7 +13,7 @@ class RouteParameter implements ContextualAttribute /** * Create a new class instance. */ - public function __construct(public string $parameter) + public function __construct(public ?string $parameter = null) { } @@ -23,8 +24,8 @@ class RouteParameter implements ContextualAttribute * @param \Illuminate\Contracts\Container\Container $container * @return mixed */ - public static function resolve(self $attribute, Container $container) + public static function resolve(self $attribute, Container $container, ReflectionParameter $parameter) { - return $container->make('request')->route($attribute->parameter); + return $container->make('request')->route($attribute->parameter ?? $parameter->getName()); } } diff --git a/vendor/laravel/framework/src/Illuminate/Container/Attributes/Storage.php b/vendor/laravel/framework/src/Illuminate/Container/Attributes/Storage.php index b9a16d198..e80e9d377 100644 --- a/vendor/laravel/framework/src/Illuminate/Container/Attributes/Storage.php +++ b/vendor/laravel/framework/src/Illuminate/Container/Attributes/Storage.php @@ -5,6 +5,7 @@ namespace Illuminate\Container\Attributes; use Attribute; use Illuminate\Contracts\Container\Container; use Illuminate\Contracts\Container\ContextualAttribute; +use UnitEnum; #[Attribute(Attribute::TARGET_PARAMETER)] class Storage implements ContextualAttribute @@ -12,7 +13,7 @@ class Storage implements ContextualAttribute /** * Create a new class instance. */ - public function __construct(public ?string $disk = null) + public function __construct(public UnitEnum|string|null $disk = null) { } diff --git a/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php b/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php index 9293a818d..806cfbceb 100644 --- a/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php +++ b/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php @@ -175,7 +175,7 @@ class BoundMethod unset($parameters[$paramName]); } elseif ($attribute = Util::getContextualAttributeFromDependency($parameter)) { - $pendingDependencies[] = $container->resolveFromAttribute($attribute); + $pendingDependencies[] = $container->resolveFromAttribute($attribute, $parameter); } elseif (! is_null($className = Util::getParameterClassName($parameter))) { if (array_key_exists($className, $parameters)) { $pendingDependencies[] = $parameters[$className]; @@ -187,6 +187,8 @@ class BoundMethod $pendingDependencies = array_merge($pendingDependencies, is_array($variadicDependencies) ? $variadicDependencies : [$variadicDependencies]); + } elseif ($parameter->isDefaultValueAvailable() && ! $container->bound($className)) { + $pendingDependencies[] = $parameter->getDefaultValue(); } else { $pendingDependencies[] = $container->make($className); } diff --git a/vendor/laravel/framework/src/Illuminate/Container/Container.php b/vendor/laravel/framework/src/Illuminate/Container/Container.php index 88e611e1b..5633559a6 100755 --- a/vendor/laravel/framework/src/Illuminate/Container/Container.php +++ b/vendor/laravel/framework/src/Illuminate/Container/Container.php @@ -871,6 +871,9 @@ class Container implements ArrayAccess, ContainerContract * * @param string|class-string $id * @return ($id is class-string ? TClass : mixed) + * + * @throws \Illuminate\Contracts\Container\CircularDependencyException + * @throws \Illuminate\Container\EntryNotFoundException */ public function get(string $id) { @@ -1226,7 +1229,7 @@ class Container implements ArrayAccess, ContainerContract $result = null; if (! is_null($attribute = Util::getContextualAttributeFromDependency($dependency))) { - $result = $this->resolveFromAttribute($attribute); + $result = $this->resolveFromAttribute($attribute, $dependency); } // If the class is null, it means the dependency is a string or some other @@ -1372,8 +1375,10 @@ class Container implements ArrayAccess, ContainerContract * Resolve a dependency based on an attribute. * * @return mixed + * + * @throws \Illuminate\Contracts\Container\BindingResolutionException */ - public function resolveFromAttribute(ReflectionAttribute $attribute) + public function resolveFromAttribute(ReflectionAttribute $attribute, ReflectionParameter $parameter) { $handler = $this->contextualAttributes[$attribute->getName()] ?? null; @@ -1387,7 +1392,7 @@ class Container implements ArrayAccess, ContainerContract throw new BindingResolutionException("Contextual binding attribute [{$attribute->getName()}] has no registered handler."); } - return $handler($instance, $this); + return $handler($instance, $this, $parameter); } /** @@ -1788,42 +1793,42 @@ class Container implements ArrayAccess, ContainerContract /** * Determine if a given offset exists. * - * @param string $key + * @param string $offset */ - public function offsetExists($key): bool + public function offsetExists($offset): bool { - return $this->bound($key); + return $this->bound($offset); } /** * Get the value at a given offset. * - * @param string $key + * @param string $offset */ - public function offsetGet($key): mixed + public function offsetGet($offset): mixed { - return $this->make($key); + return $this->make($offset); } /** * Set the value at a given offset. * - * @param string $key + * @param string $offset * @param mixed $value */ - public function offsetSet($key, $value): void + public function offsetSet($offset, $value): void { - $this->bind($key, $value instanceof Closure ? $value : fn () => $value); + $this->bind($offset, $value instanceof Closure ? $value : fn () => $value); } /** * Unset the value at a given offset. * - * @param string $key + * @param string $offset */ - public function offsetUnset($key): void + public function offsetUnset($offset): void { - unset($this->bindings[$key], $this->instances[$key], $this->resolved[$key]); + unset($this->bindings[$offset], $this->instances[$offset], $this->resolved[$offset]); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Container/composer.json b/vendor/laravel/framework/src/Illuminate/Container/composer.json index fa80d1589..7f8e1ff14 100755 --- a/vendor/laravel/framework/src/Illuminate/Container/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Container/composer.json @@ -2,24 +2,27 @@ "name": "illuminate/container", "description": "The Illuminate Container package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, "require": { - "php": "^8.2", - "illuminate/contracts": "^12.0", - "illuminate/reflection": "^12.0", - "psr/container": "^1.1.1|^2.0.1", - "symfony/polyfill-php84": "^1.33", - "symfony/polyfill-php85": "^1.33" + "php": "^8.3", + "illuminate/contracts": "^13.0", + "illuminate/reflection": "^13.0", + "psr/container": "^1.1.1 || ^2.0.1", + "symfony/polyfill-php84": "^1.36", + "symfony/polyfill-php85": "^1.36" + }, + "provide": { + "psr/container-implementation": "1.1 || 2.0" }, "suggest": { "illuminate/auth": "Required to use the Auth attribute", @@ -29,21 +32,18 @@ "illuminate/filesystem": "Required to use the Storage attribute", "illuminate/log": "Required to use the Log or Context attributes" }, - "provide": { - "psr/container-implementation": "1.1|2.0" - }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Container\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Auth/Factory.php b/vendor/laravel/framework/src/Illuminate/Contracts/Auth/Factory.php index d76ee7648..d5b04b5e6 100644 --- a/vendor/laravel/framework/src/Illuminate/Contracts/Auth/Factory.php +++ b/vendor/laravel/framework/src/Illuminate/Contracts/Auth/Factory.php @@ -7,7 +7,7 @@ interface Factory /** * Get a guard instance by name. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return \Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard */ public function guard($name = null); @@ -15,7 +15,7 @@ interface Factory /** * Set the default guard the factory should serve. * - * @param string $name + * @param \UnitEnum|string|null $name * @return void */ public function shouldUse($name); diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Auth/MustVerifyEmail.php b/vendor/laravel/framework/src/Illuminate/Contracts/Auth/MustVerifyEmail.php index 5b8b10558..b716ecb4f 100644 --- a/vendor/laravel/framework/src/Illuminate/Contracts/Auth/MustVerifyEmail.php +++ b/vendor/laravel/framework/src/Illuminate/Contracts/Auth/MustVerifyEmail.php @@ -18,6 +18,13 @@ interface MustVerifyEmail */ public function markEmailAsVerified(); + /** + * Mark the given user's email as unverified. + * + * @return bool + */ + public function markEmailAsUnverified(); + /** * Send the email verification notification. * diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php b/vendor/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php index 3793174da..f12739900 100644 --- a/vendor/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php +++ b/vendor/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php @@ -32,6 +32,23 @@ interface Dispatcher */ public function dispatchNow($command, $handler = null); + /** + * Dispatch a command to its appropriate handler after the current process. + * + * @param mixed $command + * @param mixed $handler + * @return void + */ + public function dispatchAfterResponse($command, $handler = null); + + /** + * Create a new chain of queueable jobs. + * + * @param \Illuminate\Support\Collection|array|null $jobs + * @return mixed + */ + public function chain($jobs = null); + /** * Determine if the given command has a handler. * diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Cache/CanFlushLocks.php b/vendor/laravel/framework/src/Illuminate/Contracts/Cache/CanFlushLocks.php new file mode 100644 index 000000000..71277973d --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Contracts/Cache/CanFlushLocks.php @@ -0,0 +1,20 @@ + */ public function all(); diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php b/vendor/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php index 3b6594a2b..3b7ad3719 100644 --- a/vendor/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php +++ b/vendor/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php @@ -4,6 +4,11 @@ namespace Illuminate\Contracts\Debug; use Throwable; +/** + * @method bool isReporting(\Throwable $e) + * @method array buildContextForException() + * @method bool shouldStopRetries(\Throwable $e) + */ interface ExceptionHandler { /** diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Events/ShouldBeDiscovered.php b/vendor/laravel/framework/src/Illuminate/Contracts/Events/ShouldBeDiscovered.php new file mode 100644 index 000000000..eb7cea0a7 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Contracts/Events/ShouldBeDiscovered.php @@ -0,0 +1,11 @@ +)|array $schemas + * @return \Illuminate\JsonSchema\Types\AnyOfType + */ + public function anyOf(Closure|array $schemas); } diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Mail/Factory.php b/vendor/laravel/framework/src/Illuminate/Contracts/Mail/Factory.php index fe45a2fd9..c84821795 100644 --- a/vendor/laravel/framework/src/Illuminate/Contracts/Mail/Factory.php +++ b/vendor/laravel/framework/src/Illuminate/Contracts/Mail/Factory.php @@ -7,7 +7,7 @@ interface Factory /** * Get a mailer instance by name. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return \Illuminate\Contracts\Mail\Mailer */ public function mailer($name = null); diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Mail/Mailable.php b/vendor/laravel/framework/src/Illuminate/Contracts/Mail/Mailable.php index b7fdd42ef..a60ecc8b3 100644 --- a/vendor/laravel/framework/src/Illuminate/Contracts/Mail/Mailable.php +++ b/vendor/laravel/framework/src/Illuminate/Contracts/Mail/Mailable.php @@ -36,7 +36,7 @@ interface Mailable * * @param object|array|string $address * @param string|null $name - * @return self + * @return $this */ public function cc($address, $name = null); diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php b/vendor/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php index f26e37cfa..a15ab969d 100644 --- a/vendor/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php +++ b/vendor/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php @@ -12,6 +12,14 @@ interface Mailer */ public function to($users); + /** + * Begin the process of mailing a mailable class instance. + * + * @param mixed $users + * @return \Illuminate\Mail\PendingMail + */ + public function cc($users); + /** * Begin the process of mailing a mailable class instance. * diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Pagination/CursorPaginator.php b/vendor/laravel/framework/src/Illuminate/Contracts/Pagination/CursorPaginator.php index 96c6cd1bd..baf6628da 100644 --- a/vendor/laravel/framework/src/Illuminate/Contracts/Pagination/CursorPaginator.php +++ b/vendor/laravel/framework/src/Illuminate/Contracts/Pagination/CursorPaginator.php @@ -32,7 +32,7 @@ interface CursorPaginator * Get / set the URL fragment to be appended to URLs. * * @param string|null $fragment - * @return $this|string|null + * @return ($fragment is null ? string|null : $this) */ public function fragment($fragment = null); diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Pagination/Paginator.php b/vendor/laravel/framework/src/Illuminate/Contracts/Pagination/Paginator.php index 409ea1d60..2a477f8cb 100644 --- a/vendor/laravel/framework/src/Illuminate/Contracts/Pagination/Paginator.php +++ b/vendor/laravel/framework/src/Illuminate/Contracts/Pagination/Paginator.php @@ -32,7 +32,7 @@ interface Paginator * Get / set the URL fragment to be appended to URLs. * * @param string|null $fragment - * @return $this|string|null + * @return ($fragment is null ? string|null : $this) */ public function fragment($fragment = null); diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Process/InvokedProcess.php b/vendor/laravel/framework/src/Illuminate/Contracts/Process/InvokedProcess.php index 99746d783..327a9d4f6 100644 --- a/vendor/laravel/framework/src/Illuminate/Contracts/Process/InvokedProcess.php +++ b/vendor/laravel/framework/src/Illuminate/Contracts/Process/InvokedProcess.php @@ -11,6 +11,13 @@ interface InvokedProcess */ public function id(); + /** + * Get the command line for the process. + * + * @return string + */ + public function command(); + /** * Send a signal to the process. * diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php b/vendor/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php index 9a0bdeb12..606f803de 100644 --- a/vendor/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php +++ b/vendor/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php @@ -7,7 +7,7 @@ interface Factory /** * Resolve a queue connection instance. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return \Illuminate\Contracts\Queue\Queue */ public function connection($name = null); diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Queue/Interruptible.php b/vendor/laravel/framework/src/Illuminate/Contracts/Queue/Interruptible.php new file mode 100644 index 000000000..81a924e62 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Contracts/Queue/Interruptible.php @@ -0,0 +1,14 @@ +'); + /** * Create a new streamed response instance. * diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Translation/Loader.php b/vendor/laravel/framework/src/Illuminate/Contracts/Translation/Loader.php index b08418d13..6f43109e8 100755 --- a/vendor/laravel/framework/src/Illuminate/Contracts/Translation/Loader.php +++ b/vendor/laravel/framework/src/Illuminate/Contracts/Translation/Loader.php @@ -34,7 +34,7 @@ interface Loader /** * Get an array of all the registered namespaces. * - * @return array + * @return array */ public function namespaces(); } diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/composer.json b/vendor/laravel/framework/src/Illuminate/Contracts/composer.json index 01e8f8495..40ff7cbfa 100644 --- a/vendor/laravel/framework/src/Illuminate/Contracts/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Contracts/composer.json @@ -2,34 +2,34 @@ "name": "illuminate/contracts", "description": "The Illuminate Contracts package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "psr/container": "^1.1.1|^2.0.1", - "psr/simple-cache": "^1.0|^2.0|^3.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "psr/container": "^1.1.1 || ^2.0.1", + "psr/simple-cache": "^1.0 || ^2.0 || ^3.0" + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Contracts\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Cookie/composer.json b/vendor/laravel/framework/src/Illuminate/Cookie/composer.json index 7184c3d2e..f38e13957 100755 --- a/vendor/laravel/framework/src/Illuminate/Cookie/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Cookie/composer.json @@ -2,39 +2,39 @@ "name": "illuminate/cookie", "description": "The Illuminate Cookie package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "ext-hash": "*", - "illuminate/collections": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/support": "^12.0", - "symfony/http-foundation": "^7.2.0", - "symfony/http-kernel": "^7.2.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "ext-hash": "*", + "illuminate/collections": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/support": "^13.0", + "symfony/http-foundation": "^7.4.0 || ^8.0.0", + "symfony/http-kernel": "^7.4.0 || ^8.0.0" + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Cookie\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php b/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php index 1b21cc240..0f3295f10 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php @@ -18,6 +18,7 @@ use Illuminate\Support\Str; use Illuminate\Support\Traits\Conditionable; use InvalidArgumentException; use RuntimeException; +use SortDirection; /** * @template TValue @@ -144,7 +145,7 @@ trait BuildsQueries */ public function chunkByIdDesc($count, callable $callback, $column = null, $alias = null) { - return $this->orderedChunkById($count, $callback, $column, $alias, descending: true); + return $this->orderedChunkById($count, $callback, $column, $alias, descending: SortDirection::Descending); } /** @@ -154,7 +155,7 @@ trait BuildsQueries * @param callable(\Illuminate\Support\Collection, int): mixed $callback * @param string|null $column * @param string|null $alias - * @param bool $descending + * @param SortDirection|bool $descending * @return bool * * @throws \RuntimeException @@ -185,11 +186,10 @@ trait BuildsQueries // We'll execute the query for the given page and get the results. If there are // no results we can just break and return from here. When there are results // we will call the callback with the current chunk of these results here. - if ($descending) { - $results = $clone->forPageBeforeId($limit, $lastId, $column)->get(); - } else { - $results = $clone->forPageAfterId($limit, $lastId, $column)->get(); - } + $results = match ($descending) { + SortDirection::Ascending, false => $clone->forPageAfterId($limit, $lastId, $column)->get(), + SortDirection::Descending, true => $clone->forPageBeforeId($limit, $lastId, $column)->get(), + }; $countResults = $results->count(); @@ -302,7 +302,7 @@ trait BuildsQueries */ public function lazyByIdDesc($chunkSize = 1000, $column = null, $alias = null) { - return $this->orderedLazyById($chunkSize, $column, $alias, true); + return $this->orderedLazyById($chunkSize, $column, $alias, SortDirection::Descending); } /** @@ -311,10 +311,11 @@ trait BuildsQueries * @param int $chunkSize * @param string|null $column * @param string|null $alias - * @param bool $descending + * @param SortDirection|bool $descending * @return \Illuminate\Support\LazyCollection * * @throws \InvalidArgumentException + * @throws \RuntimeException */ protected function orderedLazyById($chunkSize = 1000, $column = null, $alias = null, $descending = false) { @@ -332,11 +333,10 @@ trait BuildsQueries while (true) { $clone = clone $this; - if ($descending) { - $results = $clone->forPageBeforeId($chunkSize, $lastId, $column)->get(); - } else { - $results = $clone->forPageAfterId($chunkSize, $lastId, $column)->get(); - } + $results = match ($descending) { + SortDirection::Ascending, false => $clone->forPageAfterId($chunkSize, $lastId, $column)->get(), + SortDirection::Descending, true => $clone->forPageBeforeId($chunkSize, $lastId, $column)->get(), + }; foreach ($results as $result) { yield $result; @@ -549,9 +549,9 @@ trait BuildsQueries */ protected function paginator($items, $total, $perPage, $currentPage, $options) { - return Container::getInstance()->makeWith(LengthAwarePaginator::class, compact( - 'items', 'total', 'perPage', 'currentPage', 'options' - )); + return Container::getInstance()->makeWith(LengthAwarePaginator::class, [ + 'items' => $items, 'total' => $total, 'perPage' => $perPage, 'currentPage' => $currentPage, 'options' => $options, + ]); } /** @@ -565,9 +565,9 @@ trait BuildsQueries */ protected function simplePaginator($items, $perPage, $currentPage, $options) { - return Container::getInstance()->makeWith(Paginator::class, compact( - 'items', 'perPage', 'currentPage', 'options' - )); + return Container::getInstance()->makeWith(Paginator::class, [ + 'items' => $items, 'perPage' => $perPage, 'currentPage' => $currentPage, 'options' => $options, + ]); } /** @@ -581,9 +581,9 @@ trait BuildsQueries */ protected function cursorPaginator($items, $perPage, $cursor, $options) { - return Container::getInstance()->makeWith(CursorPaginator::class, compact( - 'items', 'perPage', 'cursor', 'options' - )); + return Container::getInstance()->makeWith(CursorPaginator::class, [ + 'items' => $items, 'perPage' => $perPage, 'cursor' => $cursor, 'options' => $options, + ]); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsWhereDateClauses.php b/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsWhereDateClauses.php index 06da84427..74a6d106f 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsWhereDateClauses.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsWhereDateClauses.php @@ -2,8 +2,8 @@ namespace Illuminate\Database\Concerns; -use Carbon\Carbon; use Illuminate\Support\Arr; +use Illuminate\Support\Carbon; trait BuildsWhereDateClauses { @@ -109,7 +109,7 @@ trait BuildsWhereDateClauses $value = Carbon::now(); foreach (Arr::wrap($columns) as $column) { - $this->wheres[] = compact('type', 'column', 'boolean', 'operator', 'value'); + $this->wheres[] = ['type' => $type, 'column' => $column, 'boolean' => $boolean, 'operator' => $operator, 'value' => $value]; $this->addBinding($value); } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Connection.php b/vendor/laravel/framework/src/Illuminate/Database/Connection.php index cfab16cbc..5ee88506f 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Connection.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Connection.php @@ -56,6 +56,20 @@ class Connection implements ConnectionInterface */ protected $readPdoConfig = []; + /** + * The active PDO connection used for direct connections. + * + * @var \PDO|(\Closure(): \PDO) + */ + protected $directPdo; + + /** + * The database connection configuration options for direct connections. + * + * @var array + */ + protected $directPdoConfig = []; + /** * The name of the connected database. * @@ -213,7 +227,7 @@ class Connection implements ConnectionInterface /** * The last retrieved PDO read / write type. * - * @var null|'read'|'write' + * @var null|'read'|'write'|'direct' */ protected $latestPdoTypeRetrieved = null; @@ -404,11 +418,12 @@ class Connection implements ConnectionInterface * @param string $query * @param array $bindings * @param bool $useReadPdo + * @param array $fetchUsing * @return array */ - public function select($query, $bindings = [], $useReadPdo = true) + public function select($query, $bindings = [], $useReadPdo = true, array $fetchUsing = []) { - return $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo) { + return $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo, $fetchUsing) { if ($this->pretending()) { return []; } @@ -424,7 +439,7 @@ class Connection implements ConnectionInterface $statement->execute(); - return $statement->fetchAll(); + return $statement->fetchAll(...$fetchUsing); }); } @@ -434,11 +449,12 @@ class Connection implements ConnectionInterface * @param string $query * @param array $bindings * @param bool $useReadPdo + * @param array $fetchUsing * @return array */ - public function selectResultSets($query, $bindings = [], $useReadPdo = true) + public function selectResultSets($query, $bindings = [], $useReadPdo = true, array $fetchUsing = []) { - return $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo) { + return $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo, $fetchUsing) { if ($this->pretending()) { return []; } @@ -454,7 +470,7 @@ class Connection implements ConnectionInterface $sets = []; do { - $sets[] = $statement->fetchAll(); + $sets[] = $statement->fetchAll(...$fetchUsing); } while ($statement->nextRowset()); return $sets; @@ -467,9 +483,10 @@ class Connection implements ConnectionInterface * @param string $query * @param array $bindings * @param bool $useReadPdo + * @param array $fetchUsing * @return \Generator */ - public function cursor($query, $bindings = [], $useReadPdo = true) + public function cursor($query, $bindings = [], $useReadPdo = true, array $fetchUsing = []) { $statement = $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo) { if ($this->pretending()) { @@ -494,7 +511,7 @@ class Connection implements ConnectionInterface return $statement; }); - while ($record = $statement->fetch()) { + while ($record = $statement->fetch(...$fetchUsing)) { yield $record; } } @@ -619,7 +636,7 @@ class Connection implements ConnectionInterface /** * Run a raw, unprepared query against the PDO connection. * - * @param string $query + * @param literal-string $query * @return bool */ public function unprepared($query) @@ -676,8 +693,10 @@ class Connection implements ConnectionInterface /** * Execute the given callback without "pretending". * - * @param \Closure $callback - * @return mixed + * @template TReturn + * + * @param \Closure(): TReturn $callback + * @return TReturn */ public function withoutPretending(Closure $callback) { @@ -831,11 +850,11 @@ class Connection implements ConnectionInterface // message to include the bindings with SQL, which will make this exception a // lot more helpful to the developer instead of just the database's errors. catch (Exception $e) { - $exceptionType = $this->isUniqueConstraintError($e) + $exceptionType = ($isUniqueConstraintError = $this->isUniqueConstraintError($e)) ? UniqueConstraintViolationException::class : QueryException::class; - throw new $exceptionType( + $exception = new $exceptionType( $this->getNameWithReadWriteType(), $query, $this->prepareBindings($bindings), @@ -843,6 +862,14 @@ class Connection implements ConnectionInterface $this->getConnectionDetails(), $this->latestReadWriteTypeUsed(), ); + + if ($isUniqueConstraintError) { + ['index' => $index, 'columns' => $columns] = $this->parseUniqueConstraintViolation($e); + + $exception->setIndex($index)->setColumns($columns); + } + + throw $exception; } } @@ -857,6 +884,17 @@ class Connection implements ConnectionInterface return false; } + /** + * Extract the index and columns that caused a unique constraint violation. + * + * @param Exception $exception + * @return array{index: string|null, columns: list} + */ + protected function parseUniqueConstraintViolation(Exception $exception): array + { + return ['index' => null, 'columns' => []]; + } + /** * Log a query in the connection's query log. * @@ -878,7 +916,7 @@ class Connection implements ConnectionInterface : $query; if ($this->loggingQueries) { - $this->queryLog[] = compact('query', 'bindings', 'time', 'readWriteType'); + $this->queryLog[] = ['query' => $query, 'bindings' => $bindings, 'time' => $time, 'readWriteType' => $readWriteType]; } } @@ -1037,7 +1075,9 @@ class Connection implements ConnectionInterface */ public function disconnect() { - $this->setPdo(null)->setReadPdo(null); + $this->transactionsManager?->rollback($this->getName(), 0); + + $this->setPdo(null)->setReadPdo(null)->setDirectPdo(null); } /** @@ -1108,7 +1148,7 @@ class Connection implements ConnectionInterface /** * Get a new raw query expression. * - * @param mixed $value + * @param literal-string|int|float $value * @return \Illuminate\Contracts\Database\Query\Expression */ public function raw($value) @@ -1305,6 +1345,32 @@ class Connection implements ConnectionInterface return $this->readPdo; } + /** + * Get the current PDO connection used for direct connections. + * + * @return \PDO + */ + public function getDirectPdo() + { + $this->latestPdoTypeRetrieved = 'direct'; + + if ($this->directPdo instanceof Closure) { + return $this->directPdo = call_user_func($this->directPdo); + } + + return $this->directPdo ?: $this->getPdo(); + } + + /** + * Get the current direct PDO connection parameter without executing any reconnect logic. + * + * @return \PDO|\Closure|null + */ + public function getRawDirectPdo() + { + return $this->directPdo; + } + /** * Set the PDO connection. * @@ -1346,6 +1412,52 @@ class Connection implements ConnectionInterface return $this; } + /** + * Set the PDO connection used for direct connections. + * + * @param \PDO|\Closure|null $pdo + * @return $this + */ + public function setDirectPdo($pdo) + { + $this->directPdo = $pdo; + + return $this; + } + + /** + * Set the direct PDO connection configuration. + * + * @param array $config + * @return $this + */ + public function setDirectPdoConfig(array $config) + { + $this->directPdoConfig = $config; + + return $this; + } + + /** + * Get the direct PDO connection configuration. + * + * @return array + */ + public function getDirectPdoConfig() + { + return $this->directPdoConfig; + } + + /** + * Determine if this connection has a direct PDO connection configured. + * + * @return bool + */ + public function hasDirectConnection() + { + return ! empty($this->directPdoConfig); + } + /** * Set the reconnect instance on the connection. * @@ -1399,9 +1511,11 @@ class Connection implements ConnectionInterface */ protected function getConnectionDetails() { - $config = $this->latestReadWriteTypeUsed() === 'read' - ? $this->readPdoConfig - : $this->config; + $config = match ($this->latestReadWriteTypeUsed()) { + 'read' => $this->readPdoConfig, + 'direct' => $this->directPdoConfig, + default => $this->config, + }; return [ 'driver' => $this->getDriverName(), @@ -1683,7 +1797,7 @@ class Connection implements ConnectionInterface /** * Retrieve the latest read / write type used. * - * @return 'read'|'write'|null + * @return 'read'|'write'|'direct'|null */ protected function latestReadWriteTypeUsed() { @@ -1716,8 +1830,10 @@ class Connection implements ConnectionInterface /** * Execute the given callback without table prefix. * - * @param \Closure $callback - * @return mixed + * @template TReturn + * + * @param (\Closure($this): TReturn) $callback + * @return TReturn */ public function withoutTablePrefix(Closure $callback): mixed { diff --git a/vendor/laravel/framework/src/Illuminate/Database/ConnectionInterface.php b/vendor/laravel/framework/src/Illuminate/Database/ConnectionInterface.php index b28c63f9c..360d1cd16 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/ConnectionInterface.php +++ b/vendor/laravel/framework/src/Illuminate/Database/ConnectionInterface.php @@ -18,7 +18,7 @@ interface ConnectionInterface /** * Get a new raw query expression. * - * @param mixed $value + * @param literal-string|int|float $value * @return \Illuminate\Contracts\Database\Query\Expression */ public function raw($value); @@ -51,9 +51,10 @@ interface ConnectionInterface * @param string $query * @param array $bindings * @param bool $useReadPdo + * @param array $fetchUsing * @return array */ - public function select($query, $bindings = [], $useReadPdo = true); + public function select($query, $bindings = [], $useReadPdo = true, array $fetchUsing = []); /** * Run a select statement against the database and returns a generator. @@ -61,9 +62,10 @@ interface ConnectionInterface * @param string $query * @param array $bindings * @param bool $useReadPdo + * @param array $fetchUsing * @return \Generator */ - public function cursor($query, $bindings = [], $useReadPdo = true); + public function cursor($query, $bindings = [], $useReadPdo = true, array $fetchUsing = []); /** * Run an insert statement against the database. @@ -113,7 +115,7 @@ interface ConnectionInterface /** * Run a raw, unprepared query against the PDO connection. * - * @param string $query + * @param literal-string $query * @return bool */ public function unprepared($query); @@ -129,9 +131,11 @@ interface ConnectionInterface /** * Execute a Closure within a transaction. * - * @param \Closure $callback + * @template TReturn + * + * @param (\Closure(static): TReturn) $callback * @param int $attempts - * @return mixed + * @return TReturn * * @throws \Throwable */ diff --git a/vendor/laravel/framework/src/Illuminate/Database/Connectors/Concerns/ConfiguresPooledConnections.php b/vendor/laravel/framework/src/Illuminate/Database/Connectors/Concerns/ConfiguresPooledConnections.php new file mode 100644 index 000000000..a4cf1fdf8 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Database/Connectors/Concerns/ConfiguresPooledConnections.php @@ -0,0 +1,126 @@ +mergeDirectConfig( + $config, $this->getReadWriteConfig($config, 'direct') + ); + } + + /** + * Merge a configuration for a direct connection. + * + * @param array $config + * @param array $merge + * @return array + */ + protected function mergeDirectConfig(array $config, array $merge) + { + $direct = Arr::except(array_merge($config, $merge), [ + 'read', 'write', 'direct', 'pooled', 'connect_via_database', 'connect_via_port', + ]); + + if (! isset($direct['options']) || ! is_array($direct['options'])) { + $direct['options'] = []; + } + + $directEmulatePreparesConfigured = isset($merge['options']) && + is_array($merge['options']) && + array_key_exists(PDO::ATTR_EMULATE_PREPARES, $merge['options']); + + if (! $directEmulatePreparesConfigured) { + $direct['options'][PDO::ATTR_EMULATE_PREPARES] = false; + } + + return $direct; + } + + /** + * Ensure pooled PostgreSQL connections are configured correctly. + * + * @param array $config + * @return array + */ + protected function ensurePooledPostgresIsProperlyConfigured(array $config) + { + $hasDirectConnection = ! empty($config['direct']); + + if (! $hasDirectConnection && ($config['pooled'] ?? false) !== true) { + return $config; + } + + if ($hasDirectConnection) { + $config['pooled'] = true; + } + + if (! $hasDirectConnection && ($config['pooled'] ?? false) === true) { + trigger_error( + "Database connection [{$config['name']}] sets 'pooled' => true without a 'direct' endpoint; migrations and DDL will still traverse the transaction pooler.", + E_USER_WARNING + ); + } + + $config = $this->withEmulatedPrepares($config); + + foreach (['read', 'write'] as $type) { + if (! isset($config[$type])) { + continue; + } + + if (isset($config[$type][0])) { + foreach ($config[$type] as $index => $connection) { + if (isset($connection['options'])) { + $config[$type][$index] = $this->withEmulatedPrepares($connection); + } + } + } elseif (isset($config[$type]['options'])) { + $config[$type] = $this->withEmulatedPrepares($config[$type]); + } + } + + return $config; + } + + /** + * Stamp emulated prepares onto a connection configuration when not explicit. + * + * @param array $config + * @return array + */ + protected function withEmulatedPrepares(array $config) + { + if (! isset($config['options']) || ! is_array($config['options'])) { + $config['options'] = []; + } + + if (! array_key_exists(PDO::ATTR_EMULATE_PREPARES, $config['options'] ?? [])) { + $config['options'][PDO::ATTR_EMULATE_PREPARES] = true; + } + + return $config; + } + + /** + * Determine if the configuration has a direct PostgreSQL connection. + * + * @param array $config + * @return bool + */ + protected function hasDirectConnection(array $config) + { + return ($config['driver'] ?? null) === 'pgsql' && ! empty($config['direct']); + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php b/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php index 7017c0aa5..cfeb0916a 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php @@ -4,6 +4,7 @@ namespace Illuminate\Database\Connectors; use Illuminate\Contracts\Container\Container; use Illuminate\Database\Connection; +use Illuminate\Database\Connectors\Concerns\ConfiguresPooledConnections; use Illuminate\Database\MariaDbConnection; use Illuminate\Database\MySqlConnection; use Illuminate\Database\PostgresConnection; @@ -15,6 +16,8 @@ use PDOException; class ConnectionFactory { + use ConfiguresPooledConnections; + /** * The IoC container instance. * @@ -43,6 +46,10 @@ class ConnectionFactory { $config = $this->parseConfig($config, $name); + if (($config['driver'] ?? null) === 'pgsql') { + $config = $this->ensurePooledPostgresIsProperlyConfigured($config); + } + if (isset($config['read'])) { return $this->createReadWriteConnection($config); } @@ -72,9 +79,16 @@ class ConnectionFactory { $pdo = $this->createPdoResolver($config); - return $this->createConnection( + $connection = $this->createConnection( $config['driver'], $pdo, $config['database'], $config['prefix'], $config ); + + if ($this->hasDirectConnection($config)) { + $connection->setDirectPdo($this->createDirectPdo($config)) + ->setDirectPdoConfig($this->getDirectConfig($config)); + } + + return $connection; } /** @@ -87,9 +101,16 @@ class ConnectionFactory { $connection = $this->createSingleConnection($this->getWriteConfig($config)); - return $connection + $connection ->setReadPdo($this->createReadPdo($config)) ->setReadPdoConfig($this->getReadConfig($config)); + + if ($this->hasDirectConnection($config)) { + $connection->setDirectPdo($this->createDirectPdo($config)) + ->setDirectPdoConfig($this->getDirectConfig($config)); + } + + return $connection; } /** @@ -155,6 +176,17 @@ class ConnectionFactory return Arr::except(array_merge($config, $merge), ['read', 'write']); } + /** + * Create a new PDO instance for direct connections. + * + * @param array $config + * @return \Closure + */ + protected function createDirectPdo(array $config) + { + return $this->createPdoResolver($this->getDirectConfig($config)); + } + /** * Create a new Closure that resolves to a PDO instance. * @@ -179,18 +211,20 @@ class ConnectionFactory protected function createPdoResolverWithHosts(array $config) { return function () use ($config) { + $exception = null; + foreach (Arr::shuffle($this->parseHosts($config)) as $host) { $config['host'] = $host; try { return $this->createConnector($config)->connect($config); } catch (PDOException $e) { - continue; + $exception = $e; } } - if (isset($e)) { - throw $e; + if ($exception !== null) { + throw $exception; } }; } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php b/vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php index 858549ec5..3b07715de 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php @@ -46,12 +46,13 @@ class SQLiteConnector extends Connector implements ConnectorInterface // querying. In-memory databases shall be anonymous (:memory:) or named. if ($path === ':memory:' || str_contains($path, '?mode=memory') || - str_contains($path, '&mode=memory') + str_contains($path, '&mode=memory') || + str_starts_with($path, 'file:') ) { return $path; } - $path = realpath($path) ?: realpath(base_path($path)); + $path = realpath($path) ?: (function_exists('base_path') ? realpath(base_path($path)) : false); // Here we'll verify that the SQLite database exists before going any further // as the developer probably wants to know if the database exists and this diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Concerns/InteractsWithPooledConnections.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Concerns/InteractsWithPooledConnections.php new file mode 100644 index 000000000..8e4c42441 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Database/Console/Concerns/InteractsWithPooledConnections.php @@ -0,0 +1,26 @@ +getDefaultConnection(); + + $connection = $connections->connection($name); + + return $connection->hasDirectConnection() && ! Str::endsWith($name, ['::read', '::write', '::direct']) + ? $connections->connection($name.'::direct') + : $connection; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/DbCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/DbCommand.php index 301760735..92218054f 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/DbCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Console/DbCommand.php @@ -3,6 +3,7 @@ namespace Illuminate\Database\Console; use Illuminate\Console\Command; +use Illuminate\Support\Arr; use Illuminate\Support\ConfigurationUrlParser; use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Process\Exception\ProcessFailedException; @@ -19,7 +20,8 @@ class DbCommand extends Command */ protected $signature = 'db {connection? : The database connection that should be used} {--read : Connect to the read connection} - {--write : Connect to the write connection}'; + {--write : Connect to the write connection} + {--pooled : Connect to the pooled connection}'; /** * The console command description. @@ -86,22 +88,48 @@ class DbCommand extends Command } if ($this->option('read')) { - if (is_array($connection['read']['host'])) { - $connection['read']['host'] = $connection['read']['host'][0]; - } - - $connection = array_merge($connection, $connection['read']); + $connection = $this->mergeConnectionConfiguration($connection, 'read'); } elseif ($this->option('write')) { - if (is_array($connection['write']['host'])) { - $connection['write']['host'] = $connection['write']['host'][0]; - } - - $connection = array_merge($connection, $connection['write']); + $connection = $this->mergeConnectionConfiguration($connection, 'write'); + } elseif (! $this->option('pooled') && ($connection['driver'] ?? null) === 'pgsql' && ($connection['pooled'] ?? false) === true && ! empty($connection['direct'])) { + $connection = $this->mergeConnectionConfiguration($connection, 'direct'); } return $connection; } + /** + * Merge a nested connection configuration onto the base connection. + * + * @param array $connection + * @param string $type + * @return array + */ + protected function mergeConnectionConfiguration(array $connection, $type) + { + if (empty($connection[$type])) { + return $connection; + } + + $merge = $connection[$type]; + + if (isset($merge[0]) && is_array($merge[0])) { + $merge = $merge[0]; + } + + if (is_array($merge['host'] ?? null)) { + $merge['host'] = $merge['host'][0]; + } + + $connection = array_merge($connection, $merge); + + if (is_array($connection['host'] ?? null)) { + $connection['host'] = $connection['host'][0]; + } + + return Arr::except($connection, ['read', 'write', 'direct', 'pooled']); + } + /** * Get the arguments for the database client command. * diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/DumpCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/DumpCommand.php index fea8fc055..489083fd0 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/DumpCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Console/DumpCommand.php @@ -26,7 +26,8 @@ class DumpCommand extends Command protected $signature = 'schema:dump {--database= : The database connection to use} {--path= : The path where the schema dump file should be stored} - {--prune : Delete all existing migration files}'; + {--prune : Delete all existing migration files} + {--without-migration-data : Dump the schema without the migration data}'; /** * The console command description. @@ -83,6 +84,10 @@ class DumpCommand extends Command $migrationTable = is_array($migrations) ? ($migrations['table'] ?? 'migrations') : $migrations; + if ($this->option('without-migration-data')) { + $migrationTable = null; + } + return $connection->getSchemaState() ->withMigrationTable($migrationTable) ->handleOutputUsing(function ($type, $buffer) { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php index 497836c65..e3116ca3d 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php @@ -77,6 +77,8 @@ class MigrateCommand extends BaseCommand implements Isolatable * Execute the console command. * * @return int + * + * @throws \Throwable */ public function handle() { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/PruneCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/PruneCommand.php index 742762429..62b7bc86b 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/PruneCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Console/PruneCommand.php @@ -112,6 +112,8 @@ class PruneCommand extends Command * Determine the models that should be pruned. * * @return \Illuminate\Support\Collection + * + * @throws \InvalidArgumentException */ protected function models() { @@ -119,7 +121,7 @@ class PruneCommand extends Command $except = $this->option('except'); if ($models && $except) { - throw new InvalidArgumentException('The --models and --except options cannot be combined.'); + throw new InvalidArgumentException('The --model and --except options cannot be combined.'); } if ($models) { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/ShowCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/ShowCommand.php index 64c80572b..aaf2e942d 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/ShowCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Console/ShowCommand.php @@ -4,6 +4,7 @@ namespace Illuminate\Database\Console; use Illuminate\Database\ConnectionInterface; use Illuminate\Database\ConnectionResolverInterface; +use Illuminate\Database\Console\Concerns\InteractsWithPooledConnections; use Illuminate\Database\Schema\Builder; use Illuminate\Support\Arr; use Illuminate\Support\Collection; @@ -13,6 +14,8 @@ use Symfony\Component\Console\Attribute\AsCommand; #[AsCommand(name: 'db:show')] class ShowCommand extends DatabaseInspectionCommand { + use InteractsWithPooledConnections; + /** * The name and signature of the console command. * @@ -39,7 +42,7 @@ class ShowCommand extends DatabaseInspectionCommand */ public function handle(ConnectionResolverInterface $connections) { - $connection = $connections->connection($database = $this->input->getOption('database')); + $connection = $this->resolveDirectConnectionIfPossible($connections, $database = $this->input->getOption('database')); $schema = $connection->getSchemaBuilder(); diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/ShowModelCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/ShowModelCommand.php index 35eaf69f8..463b0b73e 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/ShowModelCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Console/ShowModelCommand.php @@ -5,6 +5,7 @@ namespace Illuminate\Database\Console; use Illuminate\Console\Concerns\FindsAvailableModels; use Illuminate\Contracts\Console\PromptsForMissingInput; use Illuminate\Contracts\Container\BindingResolutionException; +use Illuminate\Database\Eloquent\ModelInfo; use Illuminate\Database\Eloquent\ModelInspector; use Illuminate\Support\Collection; use Symfony\Component\Console\Attribute\AsCommand; @@ -58,16 +59,7 @@ class ShowModelCommand extends DatabaseInspectionCommand implements PromptsForMi return 1; } - $this->display( - $info['class'], - $info['database'], - $info['table'], - $info['policy'], - $info['attributes'], - $info['relations'], - $info['events'], - $info['observers'] - ); + $this->display($info); return 0; } @@ -75,74 +67,41 @@ class ShowModelCommand extends DatabaseInspectionCommand implements PromptsForMi /** * Render the model information. * - * @param class-string<\Illuminate\Database\Eloquent\Model> $class - * @param string $database - * @param string $table - * @param class-string|null $policy - * @param \Illuminate\Support\Collection $attributes - * @param \Illuminate\Support\Collection $relations - * @param \Illuminate\Support\Collection $events - * @param \Illuminate\Support\Collection $observers * @return void */ - protected function display($class, $database, $table, $policy, $attributes, $relations, $events, $observers) + protected function display(ModelInfo $modelData) { $this->option('json') - ? $this->displayJson($class, $database, $table, $policy, $attributes, $relations, $events, $observers) - : $this->displayCli($class, $database, $table, $policy, $attributes, $relations, $events, $observers); + ? $this->displayJson($modelData) + : $this->displayCli($modelData); } /** * Render the model information as JSON. * - * @param class-string<\Illuminate\Database\Eloquent\Model> $class - * @param string $database - * @param string $table - * @param class-string|null $policy - * @param \Illuminate\Support\Collection $attributes - * @param \Illuminate\Support\Collection $relations - * @param \Illuminate\Support\Collection $events - * @param \Illuminate\Support\Collection $observers * @return void */ - protected function displayJson($class, $database, $table, $policy, $attributes, $relations, $events, $observers) + protected function displayJson(ModelInfo $modelData) { $this->output->writeln( - (new Collection([ - 'class' => $class, - 'database' => $database, - 'table' => $table, - 'policy' => $policy, - 'attributes' => $attributes, - 'relations' => $relations, - 'events' => $events, - 'observers' => $observers, - ]))->toJson() + (new Collection($modelData))->toJson() ); } /** * Render the model information for the CLI. * - * @param class-string<\Illuminate\Database\Eloquent\Model> $class - * @param string $database - * @param string $table - * @param class-string|null $policy - * @param \Illuminate\Support\Collection $attributes - * @param \Illuminate\Support\Collection $relations - * @param \Illuminate\Support\Collection $events - * @param \Illuminate\Support\Collection $observers * @return void */ - protected function displayCli($class, $database, $table, $policy, $attributes, $relations, $events, $observers) + protected function displayCli(ModelInfo $modelData) { $this->newLine(); - $this->components->twoColumnDetail(''.$class.''); - $this->components->twoColumnDetail('Database', $database); - $this->components->twoColumnDetail('Table', $table); + $this->components->twoColumnDetail(''.$modelData->class.''); + $this->components->twoColumnDetail('Database', $modelData->database); + $this->components->twoColumnDetail('Table', $modelData->table); - if ($policy) { + if ($policy = $modelData->policy ?? false) { $this->components->twoColumnDetail('Policy', $policy); } @@ -153,7 +112,7 @@ class ShowModelCommand extends DatabaseInspectionCommand implements PromptsForMi 'type / cast', ); - foreach ($attributes as $attribute) { + foreach ($modelData->attributes as $attribute) { $first = trim(sprintf( '%s %s', $attribute['name'], @@ -182,7 +141,7 @@ class ShowModelCommand extends DatabaseInspectionCommand implements PromptsForMi $this->components->twoColumnDetail('Relations'); - foreach ($relations as $relation) { + foreach ($modelData->relations as $relation) { $this->components->twoColumnDetail( sprintf('%s %s', $relation['name'], $relation['type']), $relation['related'] @@ -193,8 +152,8 @@ class ShowModelCommand extends DatabaseInspectionCommand implements PromptsForMi $this->components->twoColumnDetail('Events'); - if ($events->count()) { - foreach ($events as $event) { + if ($modelData->events->count()) { + foreach ($modelData->events as $event) { $this->components->twoColumnDetail( sprintf('%s', $event['event']), sprintf('%s', $event['class']), @@ -206,8 +165,8 @@ class ShowModelCommand extends DatabaseInspectionCommand implements PromptsForMi $this->components->twoColumnDetail('Observers'); - if ($observers->count()) { - foreach ($observers as $observer) { + if ($modelData->observers->count()) { + foreach ($modelData->observers as $observer) { $this->components->twoColumnDetail( sprintf('%s', $observer['event']), implode(', ', $observer['observer']) diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/TableCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/TableCommand.php index ecfa00a9e..40d23f7cf 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/TableCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Console/TableCommand.php @@ -3,6 +3,7 @@ namespace Illuminate\Database\Console; use Illuminate\Database\ConnectionResolverInterface; +use Illuminate\Database\Console\Concerns\InteractsWithPooledConnections; use Illuminate\Database\Schema\Builder; use Illuminate\Support\Arr; use Illuminate\Support\Collection; @@ -14,6 +15,8 @@ use function Laravel\Prompts\search; #[AsCommand(name: 'db:table')] class TableCommand extends DatabaseInspectionCommand { + use InteractsWithPooledConnections; + /** * The name and signature of the console command. * @@ -38,7 +41,7 @@ class TableCommand extends DatabaseInspectionCommand */ public function handle(ConnectionResolverInterface $connections) { - $connection = $connections->connection($this->input->getOption('database')); + $connection = $this->resolveDirectConnectionIfPossible($connections, $this->input->getOption('database')); $tables = (new Collection($connection->getSchemaBuilder()->getTables())) ->keyBy('schema_qualified_name')->all(); diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/WipeCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/WipeCommand.php index d638db41d..fba1c7815 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/WipeCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Console/WipeCommand.php @@ -5,13 +5,14 @@ namespace Illuminate\Database\Console; use Illuminate\Console\Command; use Illuminate\Console\ConfirmableTrait; use Illuminate\Console\Prohibitable; +use Illuminate\Database\Console\Concerns\InteractsWithPooledConnections; use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputOption; #[AsCommand(name: 'db:wipe')] class WipeCommand extends Command { - use ConfirmableTrait, Prohibitable; + use ConfirmableTrait, Prohibitable, InteractsWithPooledConnections; /** * The console command name. @@ -70,7 +71,7 @@ class WipeCommand extends Command */ protected function dropAllTables($database) { - $this->laravel['db']->connection($database) + $this->resolveDirectConnectionIfPossible($this->laravel['db'], $database) ->getSchemaBuilder() ->dropAllTables(); } @@ -83,7 +84,7 @@ class WipeCommand extends Command */ protected function dropAllViews($database) { - $this->laravel['db']->connection($database) + $this->resolveDirectConnectionIfPossible($this->laravel['db'], $database) ->getSchemaBuilder() ->dropAllViews(); } @@ -96,7 +97,7 @@ class WipeCommand extends Command */ protected function dropAllTypes($database) { - $this->laravel['db']->connection($database) + $this->resolveDirectConnectionIfPossible($this->laravel['db'], $database) ->getSchemaBuilder() ->dropAllTypes(); } @@ -109,7 +110,7 @@ class WipeCommand extends Command */ protected function flushDatabaseConnection($database) { - $this->laravel['db']->connection($database)->disconnect(); + $this->resolveDirectConnectionIfPossible($this->laravel['db'], $database)->disconnect(); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php b/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php index 6ab6702f7..7b227b014 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php +++ b/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php @@ -12,6 +12,7 @@ use Illuminate\Support\Traits\Macroable; use InvalidArgumentException; use PDO; use RuntimeException; +use UnitEnum; use function Illuminate\Support\enum_value; @@ -143,11 +144,15 @@ class DatabaseManager implements ConnectionResolverInterface * @param array $config * @param bool $force * @return \Illuminate\Database\ConnectionInterface + * + * @throws \RuntimeException */ - public function connectUsing(string $name, array $config, bool $force = false) + public function connectUsing(UnitEnum|string $name, array $config, bool $force = false) { + $name = enum_value($name); + if ($force) { - $this->purge($name = enum_value($name)); + $this->purge($name); } if (isset($this->connections[$name])) { @@ -171,7 +176,7 @@ class DatabaseManager implements ConnectionResolverInterface */ protected function parseConnectionName($name) { - return Str::endsWith($name, ['::read', '::write']) + return Str::endsWith($name, ['::read', '::write', '::direct']) ? explode('::', $name, 2) : [$name, null]; } @@ -285,6 +290,9 @@ class DatabaseManager implements ConnectionResolverInterface $connection->setPdo($connection->getReadPdo()); } elseif ($type === 'write') { $connection->setReadPdo($connection->getPdo()); + } elseif ($type === 'direct') { + $connection->setPdo($connection->getDirectPdo()) + ->setReadPdo($connection->getDirectPdo()); } return $connection; @@ -338,9 +346,11 @@ class DatabaseManager implements ConnectionResolverInterface /** * Set the default database connection for the callback execution. * + * @template TReturn + * * @param \UnitEnum|string $name - * @param callable $callback - * @return mixed + * @param (callable(): TReturn) $callback + * @return TReturn */ public function usingConnection($name, callable $callback) { @@ -371,7 +381,8 @@ class DatabaseManager implements ConnectionResolverInterface return $this->connections[$name] ->setPdo($fresh->getRawPdo()) - ->setReadPdo($fresh->getRawReadPdo()); + ->setReadPdo($fresh->getRawReadPdo()) + ->setDirectPdo($fresh->getRawDirectPdo()); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Database/DatabaseTransactionsManager.php b/vendor/laravel/framework/src/Illuminate/Database/DatabaseTransactionsManager.php index 9713c66d8..faa032d44 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/DatabaseTransactionsManager.php +++ b/vendor/laravel/framework/src/Illuminate/Database/DatabaseTransactionsManager.php @@ -159,7 +159,7 @@ class DatabaseTransactionsManager protected function removeAllTransactionsForConnection($connection) { if ($this->currentTransaction) { - for ($currentTransaction = $this->currentTransaction[$connection]; isset($currentTransaction); $currentTransaction = $currentTransaction->parent) { + for ($currentTransaction = $this->currentTransaction[$connection] ?? null; isset($currentTransaction); $currentTransaction = $currentTransaction->parent) { $currentTransaction->executeCallbacksForRollback(); } } @@ -248,7 +248,7 @@ class DatabaseTransactionsManager /** * Get all of the pending transactions. * - * @return \Illuminate\Support\Collection + * @return \Illuminate\Support\Collection */ public function getPendingTransactions() { @@ -258,7 +258,7 @@ class DatabaseTransactionsManager /** * Get all of the committed transactions. * - * @return \Illuminate\Support\Collection + * @return \Illuminate\Support\Collection */ public function getCommittedTransactions() { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Appends.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Appends.php new file mode 100644 index 000000000..b88932345 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Appends.php @@ -0,0 +1,24 @@ + + */ + public array $columns; + + /** + * Create a new attribute instance. + * + * @param array|string ...$columns + */ + public function __construct(array|string ...$columns) + { + $this->columns = is_array($columns[0]) ? $columns[0] : $columns; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Connection.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Connection.php new file mode 100644 index 000000000..cc182ac45 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Connection.php @@ -0,0 +1,19 @@ + + */ + public array $columns; + + /** + * Create a new attribute instance. + * + * @param array|string ...$columns + */ + public function __construct(array|string ...$columns) + { + $this->columns = is_array($columns[0]) ? $columns[0] : $columns; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Guarded.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Guarded.php new file mode 100644 index 000000000..fe96b962f --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Guarded.php @@ -0,0 +1,24 @@ + + */ + public array $columns; + + /** + * Create a new attribute instance. + * + * @param array|string ...$columns + */ + public function __construct(array|string ...$columns) + { + $this->columns = is_array($columns[0]) ? $columns[0] : $columns; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Hidden.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Hidden.php new file mode 100644 index 000000000..9bf2d3849 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Hidden.php @@ -0,0 +1,24 @@ + + */ + public array $columns; + + /** + * Create a new attribute instance. + * + * @param array|string ...$columns + */ + public function __construct(array|string ...$columns) + { + $this->columns = is_array($columns[0]) ? $columns[0] : $columns; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Table.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Table.php new file mode 100644 index 000000000..217a45ac4 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Table.php @@ -0,0 +1,29 @@ + + */ + public array $relations; + + /** + * Create a new attribute instance. + * + * @param array|string ...$relations + */ + public function __construct(array|string ...$relations) + { + $this->relations = is_array($relations[0]) ? $relations[0] : $relations; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Unguarded.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Unguarded.php new file mode 100644 index 000000000..005105e47 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/Unguarded.php @@ -0,0 +1,11 @@ + + */ + public array $columns; + + /** + * Create a new attribute instance. + * + * @param array|string ...$columns + */ + public function __construct(array|string ...$columns) + { + $this->columns = is_array($columns[0]) ? $columns[0] : $columns; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/WithoutIncrementing.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/WithoutIncrementing.php new file mode 100644 index 000000000..50c76035f --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Attributes/WithoutIncrementing.php @@ -0,0 +1,17 @@ +eagerLoad = array_merge($this->eagerLoad, $query->getEagerLoads()); + $this->withoutGlobalScopes( + $query->removedScopes() + ); $this->query->addNestedWhereQuery($query->getQuery(), $boolean); } else { $this->query->where(...func_get_args()); @@ -526,7 +530,7 @@ class Builder implements BuilderContract $values = [$values]; } - $this->model->unguarded(function () use (&$values) { + $this->model::unguarded(function () use (&$values) { foreach ($values as $key => $rowValues) { $values[$key] = tap( $this->newModelInstance($rowValues), @@ -684,16 +688,16 @@ class Builder implements BuilderContract * Get the first record matching the attributes or instantiate it. * * @param array $attributes - * @param array $values + * @param (\Closure(): array)|array $values * @return TModel */ - public function firstOrNew(array $attributes = [], array $values = []) + public function firstOrNew(array $attributes = [], Closure|array $values = []) { if (! is_null($instance = $this->where($attributes)->first())) { return $instance; } - return $this->newModelInstance(array_merge($attributes, $values)); + return $this->newModelInstance(array_merge($attributes, value($values))); } /** @@ -718,6 +722,8 @@ class Builder implements BuilderContract * @param array $attributes * @param (\Closure(): array)|array $values * @return TModel + * + * @throws \Illuminate\Database\UniqueConstraintViolationException */ public function createOrFirst(array $attributes = [], Closure|array $values = []) { @@ -732,14 +738,14 @@ class Builder implements BuilderContract * Create or update a record matching the attributes, and fill it with values. * * @param array $attributes - * @param array $values + * @param (\Closure(): array)|array $values * @return TModel */ - public function updateOrCreate(array $attributes, array $values = []) + public function updateOrCreate(array $attributes, Closure|array $values = []) { return tap($this->firstOrCreate($attributes, $values), function ($instance) use ($values) { if (! $instance->wasRecentlyCreated) { - $instance->fill($values)->save(); + $instance->fill(value($values))->save(); } }); } @@ -959,7 +965,7 @@ class Builder implements BuilderContract */ public function getRelation($name) { - // We want to run a relationship query without any constrains so that we will + // We want to do a relationship query without any constraints so that we will // not have to remove these where clauses manually which gets really hacky // and error prone. We don't want constraints because we add eager ones. $relation = Relation::noConstraints(function () use ($name) { @@ -1066,7 +1072,7 @@ class Builder implements BuilderContract protected function enforceOrderBy() { if (empty($this->query->orders) && empty($this->query->unionOrders)) { - $this->orderBy($this->model->getQualifiedKeyName(), 'asc'); + $this->orderBy($this->model->getQualifiedKeyName(), SortDirection::Ascending); } } @@ -1239,7 +1245,7 @@ class Builder implements BuilderContract */ public function forceCreate(array $attributes) { - return $this->model->unguarded(function () use ($attributes) { + return $this->model::unguarded(function () use ($attributes) { return $this->newModelInstance()->create($attributes); }); } @@ -1350,6 +1356,34 @@ class Builder implements BuilderContract ); } + /** + * Increment the given column's values by the given amounts. + * + * @param array $columns + * @param array $extra + * @return int + */ + public function incrementEach(array $columns, array $extra = []) + { + return $this->toBase()->incrementEach( + $columns, $this->addUpdatedAtColumn($extra) + ); + } + + /** + * Decrement the given column's values by the given amounts. + * + * @param array $columns + * @param array $extra + * @return int + */ + public function decrementEach(array $columns, array $extra = []) + { + return $this->toBase()->decrementEach( + $columns, $this->addUpdatedAtColumn($extra) + ); + } + /** * Add the "updated at" column to an array of values. * @@ -2282,6 +2316,8 @@ class Builder implements BuilderContract * @param string $mixin * @param bool $replace * @return void + * + * @throws \ReflectionException */ protected static function registerMixin($mixin, $replace) { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Casts/AsBinary.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Casts/AsBinary.php index 8a699746d..4f6315477 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Casts/AsBinary.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Casts/AsBinary.php @@ -14,6 +14,8 @@ class AsBinary implements Castable * * @param array{string} $arguments * @return \Illuminate\Contracts\Database\Eloquent\CastsAttributes + * + * @throws \InvalidArgumentException */ public static function castUsing(array $arguments) { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Casts/AsCollection.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Casts/AsCollection.php index 5f7d0845c..c6b0ffe4b 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Casts/AsCollection.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Casts/AsCollection.php @@ -15,6 +15,8 @@ class AsCollection implements Castable * * @param array $arguments * @return \Illuminate\Contracts\Database\Eloquent\CastsAttributes<\Illuminate\Support\Collection, iterable> + * + * @throws \InvalidArgumentException */ public static function castUsing(array $arguments) { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Casts/AsEncryptedCollection.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Casts/AsEncryptedCollection.php index ab122ef3a..a9078c2b3 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Casts/AsEncryptedCollection.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Casts/AsEncryptedCollection.php @@ -16,6 +16,8 @@ class AsEncryptedCollection implements Castable * * @param array $arguments * @return \Illuminate\Contracts\Database\Eloquent\CastsAttributes<\Illuminate\Support\Collection, iterable> + * + * @throws \InvalidArgumentException */ public static function castUsing(array $arguments) { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Casts/Attribute.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Casts/Attribute.php index 26d13ba3f..41a85a661 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Casts/Attribute.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Casts/Attribute.php @@ -81,7 +81,7 @@ class Attribute /** * Disable object caching for the attribute. * - * @return static + * @return $this */ public function withoutObjectCaching() { @@ -93,7 +93,7 @@ class Attribute /** * Enable caching for the attribute. * - * @return static + * @return $this */ public function shouldCache() { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php index 759ba7a6d..865202f47 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php @@ -2,6 +2,11 @@ namespace Illuminate\Database\Eloquent\Concerns; +use Illuminate\Database\Eloquent\Attributes\Fillable; +use Illuminate\Database\Eloquent\Attributes\Guarded; +use Illuminate\Database\Eloquent\Attributes\Initialize; +use Illuminate\Database\Eloquent\Attributes\Unguarded; + trait GuardsAttributes { /** @@ -32,6 +37,25 @@ trait GuardsAttributes */ protected static $guardableColumns = []; + /** + * Initialize the GuardsAttributes trait. + * + * @return void + */ + #[Initialize] + public function initializeGuardsAttributes() + { + $this->mergeFillable(static::resolveClassAttribute(Fillable::class, 'columns') ?? []); + + if ($this->guarded === ['*']) { + if (static::resolveClassAttribute(Unguarded::class) !== null) { + $this->guarded = []; + } else { + $this->guarded = static::resolveClassAttribute(Guarded::class, 'columns') ?? ['*']; + } + } + } + /** * Get the fillable attributes for the model. * @@ -63,6 +87,10 @@ trait GuardsAttributes */ public function mergeFillable(array $fillable) { + if ($fillable === []) { + return $this; + } + $this->fillable = array_values(array_unique(array_merge($this->fillable, $fillable))); return $this; diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php index 64690d4cd..075113972 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php @@ -13,6 +13,10 @@ use DateTimeInterface; use Illuminate\Contracts\Database\Eloquent\Castable; use Illuminate\Contracts\Database\Eloquent\CastsInboundAttributes; use Illuminate\Contracts\Support\Arrayable; +use Illuminate\Database\Eloquent\Attributes\Appends; +use Illuminate\Database\Eloquent\Attributes\DateFormat; +use Illuminate\Database\Eloquent\Attributes\Initialize; +use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Casts\AsArrayObject; use Illuminate\Database\Eloquent\Casts\AsCollection; use Illuminate\Database\Eloquent\Casts\AsEncryptedArrayObject; @@ -205,6 +209,12 @@ trait HasAttributes $this->casts = $this->ensureCastsAreStringValues( array_merge($this->casts, $this->casts()), ); + + $this->dateFormat ??= static::resolveClassAttribute(DateFormat::class, 'format') + ?? static::resolveClassAttribute(Table::class)->dateFormat + ?? null; + + $this->mergeAppends(static::resolveClassAttribute(Appends::class, 'columns') ?? []); } /** @@ -363,12 +373,14 @@ trait HasAttributes */ protected function getArrayableAppends() { - if (! count($this->appends)) { + $appends = $this->getAppends(); + + if (! count($appends)) { return []; } return $this->getArrayableItems( - array_combine($this->appends, $this->appends) + array_combine($appends, $appends) ); } @@ -596,6 +608,8 @@ trait HasAttributes * * @param string $key * @return mixed + * + * @throws \Illuminate\Database\LazyLoadingViolationException */ protected function handleLazyLoadingViolation($key) { @@ -792,6 +806,8 @@ trait HasAttributes * * @param array $casts * @return array + * + * @throws \InvalidArgumentException */ protected function ensureCastsAreStringValues($casts) { @@ -1308,6 +1324,8 @@ trait HasAttributes * @param string $expectedEnum * @param \UnitEnum $value * @return string|int + * + * @throws \ValueError */ protected function getStorableEnumValue($expectedEnum, $value) { @@ -1358,6 +1376,8 @@ trait HasAttributes * @param string $key * @param mixed $value * @return string + * + * @throws \Illuminate\Database\Eloquent\JsonEncodingException */ protected function castAttributeAsJson($key, $value) { @@ -1466,7 +1486,9 @@ trait HasAttributes * * @param string $key * @param mixed $value - * @return string + * @return string|null + * + * @throws \RuntimeException */ protected function castAttributeAsHashedString($key, #[\SensitiveParameter] $value) { @@ -1508,11 +1530,13 @@ trait HasAttributes * @param float|string $value * @param int $decimals * @return string + * + * @throws \Illuminate\Support\Exceptions\MathException */ protected function asDecimal($value, $decimals) { try { - return (string) BigDecimal::of((string) $value)->toScale($decimals, RoundingMode::HALF_UP); + return (string) BigDecimal::of((string) $value)->toScale($decimals, RoundingMode::HalfUp); } catch (BrickMathException $e) { throw new MathException('Unable to cast value to a decimal.', previous: $e); } @@ -1698,7 +1722,7 @@ trait HasAttributes /** * Get the attributes that should be cast. * - * @return array + * @return array */ protected function casts() { @@ -1907,7 +1931,7 @@ trait HasAttributes } /** - * Merge the a cast class and attribute cast attribute back into the model. + * Merge the cast class and attribute cast attribute back into the model. * * @return void */ @@ -2460,6 +2484,10 @@ trait HasAttributes */ public function mergeAppends(array $appends) { + if ($appends === []) { + return $this; + } + $this->appends = array_values(array_unique(array_merge($this->appends, $appends))); return $this; @@ -2473,7 +2501,7 @@ trait HasAttributes */ public function hasAppended($attribute) { - return in_array($attribute, $this->appends); + return in_array($attribute, $this->getAppends()); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php index cc0368e67..e449d5016 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php @@ -398,7 +398,7 @@ trait HasEvents /** * Get the event map for the model. * - * @return array + * @return array */ public function dispatchesEvents() { @@ -439,8 +439,10 @@ trait HasEvents /** * Execute a callback without firing any model events for any model type. * - * @param callable $callback - * @return mixed + * @template TReturn + * + * @param callable(): TReturn $callback + * @return TReturn */ public static function withoutEvents(callable $callback) { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php index 635ac8d1f..243415b14 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php @@ -4,6 +4,7 @@ namespace Illuminate\Database\Eloquent\Concerns; use Closure; use Illuminate\Database\Eloquent\Attributes\ScopedBy; +use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Scope; use Illuminate\Support\Arr; use Illuminate\Support\Collection; @@ -38,8 +39,15 @@ trait HasGlobalScopes $attributes->push(...$trait->getAttributes(ScopedBy::class, ReflectionAttribute::IS_INSTANCEOF)); } + $isEloquentGrandchild = is_subclass_of(static::class, Model::class) + && get_parent_class(static::class) !== Model::class; + return $attributes->map(fn ($attribute) => $attribute->getArguments()) ->flatten() + ->when($isEloquentGrandchild, function (Collection $attributes) { + return (new Collection(get_parent_class(static::class)::resolveGlobalScopeAttributes())) + ->merge($attributes); + }) ->all(); } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php index 4e56f04e3..3659aa574 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php @@ -4,6 +4,8 @@ namespace Illuminate\Database\Eloquent\Concerns; use Closure; use Illuminate\Database\ClassMorphViolationException; +use Illuminate\Database\Eloquent\Attributes\Initialize; +use Illuminate\Database\Eloquent\Attributes\Touches; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Collection as EloquentCollection; use Illuminate\Database\Eloquent\Model; @@ -69,6 +71,19 @@ trait HasRelationships */ protected static $relationResolvers = []; + /** + * Initialize the HasRelationships trait. + * + * @return void + */ + #[Initialize] + public function initializeHasRelationships() + { + if (empty($this->touches)) { + $this->touches = static::resolveClassAttribute(Touches::class, 'relations') ?? []; + } + } + /** * Get the dynamic relation resolver if defined or inherited, or return null. * @@ -663,15 +678,17 @@ trait HasRelationships * Define a many-to-many relationship. * * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @template TPivotModel of \Illuminate\Database\Eloquent\Relations\Pivot = \Illuminate\Database\Eloquent\Relations\Pivot + * @template TPivotTable of string|null * * @param class-string $related - * @param string|class-string<\Illuminate\Database\Eloquent\Model>|null $table + * @param class-string|TPivotTable $table * @param string|null $foreignPivotKey * @param string|null $relatedPivotKey * @param string|null $parentKey * @param string|null $relatedKey * @param string|null $relation - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany + * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function belongsToMany( $related, @@ -1002,6 +1019,8 @@ trait HasRelationships * Get the class name for polymorphic relations. * * @return string + * + * @throws \Illuminate\Database\ClassMorphViolationException */ public function getMorphClass() { @@ -1034,7 +1053,7 @@ trait HasRelationships { return tap(new $class, function ($instance) { if (! $instance->getConnectionName()) { - $instance->setConnection($this->connection); + $instance->setConnection($this->getConnectionName()); } }); } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php index 7f934959d..a21c7960e 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php @@ -2,6 +2,9 @@ namespace Illuminate\Database\Eloquent\Concerns; +use Illuminate\Database\Eloquent\Attributes\Initialize; +use Illuminate\Database\Eloquent\Attributes\Table; +use Illuminate\Database\Eloquent\Attributes\WithoutTimestamps; use Illuminate\Support\Arr; use Illuminate\Support\Facades\Date; @@ -21,6 +24,23 @@ trait HasTimestamps */ protected static $ignoreTimestampsOn = []; + /** + * Initialize the HasTimestamps trait. + * + * @return void + */ + #[Initialize] + public function initializeHasTimestamps() + { + if ($this->timestamps === true) { + if (static::resolveClassAttribute(WithoutTimestamps::class) !== null) { + $this->timestamps = false; + } elseif (($table = static::resolveClassAttribute(Table::class)) && $table->timestamps !== null) { + $this->timestamps = $table->timestamps; + } + } + } + /** * Update the model's update timestamp. * @@ -186,8 +206,10 @@ trait HasTimestamps /** * Disable timestamps for the current class during the given callback scope. * - * @param callable $callback - * @return mixed + * @template TReturn + * + * @param (callable(): TReturn) $callback + * @return TReturn */ public static function withoutTimestamps(callable $callback) { @@ -197,9 +219,11 @@ trait HasTimestamps /** * Disable timestamps for the given model classes during the given callback scope. * + * @template TReturn + * * @param array $models - * @param callable $callback - * @return mixed + * @param callable(): TReturn $callback + * @return TReturn */ public static function withoutTimestampsOn($models, $callback) { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasUniqueIds.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasUniqueIds.php index 5392ca095..5b7f43565 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasUniqueIds.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasUniqueIds.php @@ -5,14 +5,14 @@ namespace Illuminate\Database\Eloquent\Concerns; trait HasUniqueIds { /** - * Indicates if the model uses unique ids. + * Indicates if the model uses unique IDs. * * @var bool */ public $usesUniqueIds = false; /** - * Determine if the model uses unique ids. + * Determine if the model uses unique IDs. * * @return bool */ @@ -38,7 +38,7 @@ trait HasUniqueIds /** * Generate a new key for the model. * - * @return string + * @return string|null */ public function newUniqueId() { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php index dde5ea035..0e868b1fc 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php @@ -2,6 +2,10 @@ namespace Illuminate\Database\Eloquent\Concerns; +use Illuminate\Database\Eloquent\Attributes\Hidden; +use Illuminate\Database\Eloquent\Attributes\Initialize; +use Illuminate\Database\Eloquent\Attributes\Visible; + trait HidesAttributes { /** @@ -18,6 +22,18 @@ trait HidesAttributes */ protected $visible = []; + /** + * Initialize the HidesAttributes trait. + * + * @return void + */ + #[Initialize] + public function initializeHidesAttributes() + { + $this->mergeHidden(static::resolveClassAttribute(Hidden::class, 'columns') ?? []); + $this->mergeVisible(static::resolveClassAttribute(Visible::class, 'columns') ?? []); + } + /** * Get the hidden attributes for the model. * @@ -49,6 +65,10 @@ trait HidesAttributes */ public function mergeHidden(array $hidden) { + if ($hidden === []) { + return $this; + } + $this->hidden = array_values(array_unique(array_merge($this->hidden, $hidden))); return $this; @@ -85,6 +105,10 @@ trait HidesAttributes */ public function mergeVisible(array $visible) { + if ($visible === []) { + return $this; + } + $this->visible = array_values(array_unique(array_merge($this->visible, $visible))); return $this; diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php index 8a6ee381c..23657aebb 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php @@ -729,6 +729,7 @@ trait QueriesRelationships * @param string $boolean * @return $this * + * @throws \InvalidArgumentException * @throws \Illuminate\Database\Eloquent\RelationNotFoundException */ public function whereBelongsTo($related, $relationshipName = null, $boolean = 'and') @@ -774,8 +775,6 @@ trait QueriesRelationships * @param \Illuminate\Database\Eloquent\Model $related * @param string|null $relationshipName * @return $this - * - * @throws \RuntimeException */ public function orWhereBelongsTo($related, $relationshipName = null) { @@ -790,6 +789,7 @@ trait QueriesRelationships * @param string $boolean * @return $this * + * @throws \InvalidArgumentException * @throws \Illuminate\Database\Eloquent\RelationNotFoundException */ public function whereAttachedTo($related, $relationshipName = null, $boolean = 'and') diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/TransformsToResource.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/TransformsToResource.php index 35e3f98cf..86fa6c641 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/TransformsToResource.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/TransformsToResource.php @@ -29,6 +29,8 @@ trait TransformsToResource * Guess the resource class for the model. * * @return \Illuminate\Http\Resources\Json\JsonResource + * + * @throws \LogicException */ protected function guessResource(): JsonResource { @@ -69,7 +71,7 @@ trait TransformsToResource $potentialResource = sprintf( '%s\\Http\\Resources\\%s%s', Str::before($modelClass, '\\Models'), - strlen($relativeNamespace) > 0 ? $relativeNamespace.'\\' : '', + (string) $relativeNamespace !== '' ? $relativeNamespace.'\\' : '', class_basename($modelClass) ); diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factories/Attributes/UseModel.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factories/Attributes/UseModel.php new file mode 100644 index 000000000..0f7c10db1 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factories/Attributes/UseModel.php @@ -0,0 +1,19 @@ +|false> + */ + protected static $cachedModelAttributes = []; + /** * Create a new factory instance. * @@ -357,7 +366,7 @@ abstract class Factory /** * Set the connection name on the results and store them. * - * @param \Illuminate\Support\Collection $results + * @param \Illuminate\Support\Collection $results * @return void */ protected function store(Collection $results) @@ -382,7 +391,7 @@ abstract class Factory /** * Create the children for the given model. * - * @param \Illuminate\Database\Eloquent\Model $model + * @param TModel $model * @return void */ protected function createChildren(Model $model) @@ -505,7 +514,7 @@ abstract class Factory * Make an instance of the model with the given attributes. * * @param \Illuminate\Database\Eloquent\Model|null $parent - * @return \Illuminate\Database\Eloquent\Model + * @return TModel */ protected function makeInstance(?Model $parent) { @@ -715,6 +724,14 @@ abstract class Factory */ public function hasAttached($factory, $pivot = [], $relationship = null) { + if (is_array($pivot) && $pivot !== [] && array_is_list($pivot) && array_all($pivot, fn ($p) => is_array($p))) { + $factory = $factory instanceof Factory && $factory->count === null + ? $factory->count(count($pivot)) + : $factory; + + $pivot = new Sequence(...$pivot); + } + return $this->newInstance([ 'has' => $this->has->concat([new BelongsToManyRelationship( $factory, @@ -935,6 +952,18 @@ abstract class Factory */ public function modelName() { + if (! array_key_exists(static::class, static::$cachedModelAttributes)) { + $attribute = (new ReflectionClass($this))->getAttributes(UseModel::class); + + static::$cachedModelAttributes[static::class] = $attribute !== [] + ? $attribute[0]->newInstance()->class + : false; + } + + if (static::$cachedModelAttributes[static::class]) { + return static::$cachedModelAttributes[static::class]; + } + if ($this->model !== null) { return $this->model; } @@ -1127,6 +1156,10 @@ abstract class Factory if (str_starts_with($method, 'for')) { return $this->for($factory->state($parameters[0] ?? []), $relationship); } elseif (str_starts_with($method, 'has')) { + if (count($parameters) > 1 && array_all($parameters, fn ($p) => is_array($p))) { + return $this->has($factory->forEachSequence(...$parameters), $relationship); + } + return $this->has( $factory ->count(is_numeric($parameters[0] ?? null) ? $parameters[0] : 1) diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/HasCollection.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/HasCollection.php index d430f0099..e0aeb104a 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/HasCollection.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/HasCollection.php @@ -43,14 +43,16 @@ trait HasCollection */ public function resolveCollectionFromAttribute() { - $reflectionClass = new ReflectionClass(static::class); + $reflection = new ReflectionClass(static::class); - $attributes = $reflectionClass->getAttributes(CollectedBy::class); + do { + $attributes = $reflection->getAttributes(CollectedBy::class); - if (! isset($attributes[0]) || ! isset($attributes[0]->getArguments()[0])) { - return; - } + if (isset($attributes[0], $attributes[0]->getArguments()[0])) { + return $attributes[0]->getArguments()[0]; + } + } while ($reflection = $reflection->getParentClass()); - return $attributes[0]->getArguments()[0]; + return null; } } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/MassPrunable.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/MassPrunable.php index 6111ffd86..3edb605ac 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/MassPrunable.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/MassPrunable.php @@ -42,6 +42,8 @@ trait MassPrunable * Get the prunable model query. * * @return \Illuminate\Database\Eloquent\Builder + * + * @throws \LogicException */ public function prunable() { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php index d0b990bcb..fa5d1422c 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php @@ -4,6 +4,7 @@ namespace Illuminate\Database\Eloquent; use ArrayAccess; use Closure; +use Exception; use Illuminate\Contracts\Broadcasting\HasBroadcastChannel; use Illuminate\Contracts\Queue\QueueableCollection; use Illuminate\Contracts\Queue\QueueableEntity; @@ -13,9 +14,12 @@ use Illuminate\Contracts\Support\CanBeEscapedWhenCastToString; use Illuminate\Contracts\Support\Jsonable; use Illuminate\Database\ConnectionResolverInterface as Resolver; use Illuminate\Database\Eloquent\Attributes\Boot; +use Illuminate\Database\Eloquent\Attributes\Connection; use Illuminate\Database\Eloquent\Attributes\Initialize; use Illuminate\Database\Eloquent\Attributes\Scope as LocalScope; +use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Attributes\UseEloquentBuilder; +use Illuminate\Database\Eloquent\Attributes\WithoutIncrementing; use Illuminate\Database\Eloquent\Collection as EloquentCollection; use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\Concerns\AsPivot; @@ -149,6 +153,13 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt */ protected static $dispatcher; + /** + * The models that are currently being booted. + * + * @var array + */ + protected static $booting = []; + /** * The array of booted models. * @@ -275,6 +286,13 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt */ protected static array $isMassPrunable; + /** + * Cache of resolved class attributes. + * + * @var array, array> + */ + protected static array $classAttributes = []; + /** * The name of the "created at" column. * @@ -297,11 +315,9 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt public function __construct(array $attributes = []) { $this->bootIfNotBooted(); - $this->initializeTraits(); - + $this->initializeModelAttributes(); $this->syncOriginal(); - $this->fill($attributes); } @@ -309,16 +325,26 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt * Check if the model needs to be booted and if so, do it. * * @return void + * + * @throws \LogicException */ protected function bootIfNotBooted() { if (! isset(static::$booted[static::class])) { - static::$booted[static::class] = true; + if (isset(static::$booting[static::class])) { + throw new LogicException('The ['.__METHOD__.'] method may not be called on model ['.static::class.'] while it is being booted.'); + } + + static::$booting[static::class] = true; $this->fireModelEvent('booting', false); static::booting(); static::boot(); + + static::$booted[static::class] = true; + unset(static::$booting[static::class]); + static::booted(); static::$bootedCallbacks[static::class] ??= []; @@ -400,6 +426,43 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt } } + /** + * Initialize the model attributes from class attributes. + * + * @return void + */ + public function initializeModelAttributes() + { + $table = static::resolveClassAttribute(Table::class); + + $reflection = new ReflectionClass(static::class); + + $declaresTable = $reflection->hasProperty('table') + && $reflection->getProperty('table')->getDeclaringClass()->getName() === static::class; + + if (! $declaresTable && $reflection->getAttributes(Table::class) !== []) { + $this->table = $table->name ?? null; + } else { + $this->table ??= $table->name ?? null; + } + + $this->connection ??= static::resolveClassAttribute(Connection::class, 'name'); + + if ($this->primaryKey === 'id' && $table && $table->key !== null) { + $this->primaryKey = $table->key; + } + + if ($this->keyType === 'int' && $table && $table->keyType !== null) { + $this->keyType = $table->keyType; + } + + if (static::resolveClassAttribute(WithoutIncrementing::class) !== null) { + $this->incrementing = false; + } elseif ($table && $table->incrementing !== null) { + $this->incrementing = $table->incrementing; + } + } + /** * Perform any actions required after the model boots. * @@ -432,7 +495,7 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt { static::$booted = []; static::$bootedCallbacks = []; - + static::$classAttributes = []; static::$globalScopes = []; } @@ -475,7 +538,14 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt { $class = $class ?: static::class; - if (! get_class_vars($class)['timestamps'] || ! $class::UPDATED_AT) { + if (! $class::UPDATED_AT) { + return true; + } + + $timestamps = static::resolveClassAttribute(Table::class, 'timestamps', $class) + ?? get_class_vars($class)['timestamps']; + + if (! $timestamps) { return true; } @@ -581,8 +651,10 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt /** * Execute a callback without broadcasting any model events for all model types. * - * @param callable $callback - * @return mixed + * @template TReturn + * + * @param callable(): TReturn $callback + * @return TReturn */ public static function withoutBroadcasting(callable $callback) { @@ -1154,6 +1226,76 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt ); } + /** + * Increment each given column's value by the given amounts. + * + * @param array $columns + * @param array $extra + * @return int + */ + protected function incrementEach(array $columns, array $extra = []) + { + return $this->incrementOrDecrementEach($columns, $extra, 'incrementEach'); + } + + /** + * Decrement each given column's value by the given amounts. + * + * @param array $columns + * @param array $extra + * @return int + */ + protected function decrementEach(array $columns, array $extra = []) + { + return $this->incrementOrDecrementEach($columns, $extra, 'decrementEach'); + } + + /** + * Run the incrementEach or decrementEach method on the model. + * + * @param array $columns + * @param array $extra + * @param string $method + * @return int + */ + protected function incrementOrDecrementEach(array $columns, array $extra, string $method) + { + if (! $this->exists) { + return $this->newQueryWithoutRelationships()->{$method}($columns, $extra); + } + + $isIncrement = $method === 'incrementEach'; + $singleMethod = $isIncrement ? 'increment' : 'decrement'; + + foreach ($columns as $column => $amount) { + $this->{$column} = $this->isClassDeviable($column) + ? $this->deviateClassCastableAttribute($singleMethod, $column, $amount) + : $this->{$column} + ($isIncrement ? $amount : $amount * -1); + } + + $this->forceFill($extra); + + if ($this->fireModelEvent('updating') === false) { + return false; + } + + $dbColumns = $columns; + + foreach ($dbColumns as $column => $amount) { + if ($this->isClassDeviable($column)) { + $dbColumns[$column] = (clone $this)->setAttribute($column, $amount)->getAttributeFromArray($column); + } + } + + return tap($this->setKeysForSaveQuery($this->newQueryWithoutScopes())->{$method}($dbColumns, $extra), function () use ($columns) { + $this->syncChanges(); + + $this->fireModelEvent('updated', false); + + $this->syncOriginalAttributes(array_keys($columns)); + }); + } + /** * Save the model and all of its relationships. * @@ -1255,6 +1397,41 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt return $saved; } + /** + * Save the model to the database, ignoring specific unique constraint conflicts. + * + * @param array $options + * @param array|string|null $uniqueBy + * @return bool + */ + public function saveOrIgnore(array $options = [], array|string|null $uniqueBy = null) + { + if ($this->exists) { + throw new LogicException('Cannot use saveOrIgnore on an existing model.'); + } + + $this->mergeAttributesFromCachedCasts(); + + $query = $this->newModelQuery(); + + if ($this->fireModelEvent('saving') === false) { + return false; + } + + $saved = $this->performInsertOrIgnore($query, $uniqueBy); + + if (! $this->getConnectionName() && + $connection = $query->getConnection()) { + $this->setConnection($connection->getName()); + } + + if ($saved) { + $this->finishSave($options); + } + + return $saved; + } + /** * Save the model to the database within a transaction. * @@ -1424,6 +1601,55 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt return true; } + /** + * Perform a model insert operation, ignoring specific unique constraint conflicts. + * + * @param \Illuminate\Database\Eloquent\Builder $query + * @param array|string|null $uniqueBy + * @return bool + */ + protected function performInsertOrIgnore(Builder $query, array|string|null $uniqueBy) + { + if ($this->usesUniqueIds()) { + $this->setUniqueIds(); + } + + if ($this->fireModelEvent('creating') === false) { + return false; + } + + if ($this->usesTimestamps()) { + $this->updateTimestamps(); + } + + $attributes = $this->getAttributesForInsert(); + + if (empty($attributes)) { + return true; + } + + $result = $query->toBase()->insertOrIgnoreReturning($attributes, ['*'], $uniqueBy); + + if ($result->isEmpty()) { + return false; + } + + if ($this->getIncrementing()) { + $this->setAttribute( + $keyName = $this->getKeyName(), + $result->first()->{$keyName} + ); + } + + $this->exists = true; + + $this->wasRecentlyCreated = true; + + $this->fireModelEvent('created', false); + + return true; + } + /** * Insert the given attributes and set the ID on the model. * @@ -1456,7 +1682,7 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt $ids = is_array($ids) ? $ids : func_get_args(); - if (count($ids) === 0) { + if ($ids === []) { return 0; } @@ -1867,7 +2093,7 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt $this->load((new BaseCollection($this->relations))->reject( fn ($relation) => $relation instanceof Pivot - || (is_object($relation) && in_array(AsPivot::class, class_uses_recursive($relation), true)) + || (is_object($relation) && isset(class_uses_recursive($relation)[AsPivot::class])) )->keys()->all()); $this->syncOriginal(); @@ -2337,7 +2563,7 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt */ public static function isSoftDeletable(): bool { - return static::$isSoftDeletable[static::class] ??= in_array(SoftDeletes::class, class_uses_recursive(static::class)); + return static::$isSoftDeletable[static::class] ??= isset(class_uses_recursive(static::class)[SoftDeletes::class]); } /** @@ -2345,7 +2571,7 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt */ protected function isPrunable(): bool { - return self::$isPrunable[static::class] ??= in_array(Prunable::class, class_uses_recursive(static::class)) || static::isMassPrunable(); + return self::$isPrunable[static::class] ??= isset(class_uses_recursive(static::class)[Prunable::class]) || static::isMassPrunable(); } /** @@ -2353,7 +2579,7 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt */ protected function isMassPrunable(): bool { - return self::$isMassPrunable[static::class] ??= in_array(MassPrunable::class, class_uses_recursive(static::class)); + return self::$isMassPrunable[static::class] ??= isset(class_uses_recursive(static::class)[MassPrunable::class]); } /** @@ -2416,6 +2642,45 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt return str_replace('\\', '.', get_class($this)).'.'.$this->getKey(); } + /** + * Resolve a class attribute value from the model. + * + * @template TAttribute of object + * + * @param class-string $attributeClass + * @param string|null $property + * @param string|null $class + * @return mixed + */ + protected static function resolveClassAttribute(string $attributeClass, ?string $property = null, ?string $class = null) + { + $class ??= static::class; + + $cacheKey = $class.'@'.$attributeClass; + + if (array_key_exists($cacheKey, static::$classAttributes)) { + return static::$classAttributes[$cacheKey]; + } + + try { + $reflection = new ReflectionClass($class); + + do { + $attributes = $reflection->getAttributes($attributeClass); + + if (count($attributes) > 0) { + $instance = $attributes[0]->newInstance(); + + return static::$classAttributes[$cacheKey] = $property ? $instance->{$property} : $instance; + } + } while ($reflection = $reflection->getParentClass()); + } catch (Exception) { + // + } + + return static::$classAttributes[$cacheKey] = null; + } + /** * Dynamically retrieve attributes on the model. * @@ -2528,7 +2793,7 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt */ public function __call($method, $parameters) { - if (in_array($method, ['increment', 'decrement', 'incrementQuietly', 'decrementQuietly'])) { + if (in_array($method, ['increment', 'decrement', 'incrementQuietly', 'decrementQuietly', 'incrementEach', 'decrementEach'])) { return $this->$method(...$parameters); } @@ -2620,8 +2885,8 @@ abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToSt public function __wakeup() { $this->bootIfNotBooted(); - $this->initializeTraits(); + $this->initializeModelAttributes(); if (static::isAutomaticallyEagerLoadingRelationships()) { $this->withRelationshipAutoloading(); diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelInfo.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelInfo.php new file mode 100644 index 000000000..0c476a54a --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelInfo.php @@ -0,0 +1,117 @@ + + * + * @internal + */ +class ModelInfo implements Arrayable, ArrayAccess +{ + /** + * @template TModel of \Illuminate\Database\Eloquent\Model + * + * @param class-string $class The model's fully-qualified class. + * @param string $database The database connection name. + * @param string $table The database table name. + * @param class-string|null $policy The policy that applies to the model. + * @param \Illuminate\Support\Collection> $attributes The attributes available on the model. + * @param \Illuminate\Support\Collection}> $relations The relations defined on the model. + * @param \Illuminate\Support\Collection $events The events that the model dispatches. + * @param \Illuminate\Support\Collection}> $observers The observers registered for the model. + * @param class-string<\Illuminate\Database\Eloquent\Collection> $collection The Collection class that collects the models. + * @param class-string<\Illuminate\Database\Eloquent\Builder> $builder The Builder class registered for the model. + * @param \Illuminate\Http\Resources\Json\JsonResource|null $resource The JSON resource that represents the model. + */ + public function __construct( + public $class, + public $database, + public $table, + public $policy, + public $attributes, + public $relations, + public $events, + public $observers, + public $collection, + public $builder, + public $resource + ) { + } + + /** + * Convert the model info to an array. + * + * @return array{ + * "class": class-string<\Illuminate\Database\Eloquent\Model>, + * database: string, + * table: string, + * policy: class-string|null, + * attributes: \Illuminate\Support\Collection>, + * relations: \Illuminate\Support\Collection}>, + * events: \Illuminate\Support\Collection, + * observers: \Illuminate\Support\Collection}>, collection: class-string<\Illuminate\Database\Eloquent\Collection<\Illuminate\Database\Eloquent\Model>>, + * builder: class-string<\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>>, + * resource: \Illuminate\Http\Resources\Json\JsonResource|null + * } + */ + public function toArray() + { + return [ + 'class' => $this->class, + 'database' => $this->database, + 'table' => $this->table, + 'policy' => $this->policy, + 'attributes' => $this->attributes, + 'relations' => $this->relations, + 'events' => $this->events, + 'observers' => $this->observers, + 'collection' => $this->collection, + 'builder' => $this->builder, + 'resource' => $this->resource, + ]; + } + + /** + * Determine if the given offset exists. + */ + public function offsetExists(mixed $offset): bool + { + return property_exists($this, $offset); + } + + /** + * Get the value for a given offset. + * + * @throws \InvalidArgumentException + */ + public function offsetGet(mixed $offset): mixed + { + return property_exists($this, $offset) ? $this->{$offset} : throw new InvalidArgumentException("Property {$offset} does not exist."); + } + + /** + * Set the value at the given offset. + * + * @throws \LogicException + */ + public function offsetSet(mixed $offset, mixed $value): void + { + throw new LogicException(self::class.' may not be mutated using array access.'); + } + + /** + * Unset the value at the given offset. + * + * @throws \LogicException + */ + public function offsetUnset(mixed $offset): void + { + throw new LogicException(self::class.' may not be mutated using array access.'); + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelInspector.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelInspector.php index 9fa82c872..b89d6bccf 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelInspector.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelInspector.php @@ -49,7 +49,7 @@ class ModelInspector * * @param class-string<\Illuminate\Database\Eloquent\Model>|string $model * @param string|null $connection - * @return array{"class": class-string<\Illuminate\Database\Eloquent\Model>, database: string, table: string, policy: class-string|null, attributes: \Illuminate\Support\Collection, relations: \Illuminate\Support\Collection, events: \Illuminate\Support\Collection, observers: \Illuminate\Support\Collection, collection: class-string<\Illuminate\Database\Eloquent\Collection<\Illuminate\Database\Eloquent\Model>>, builder: class-string<\Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model>>, "resource": class-string<\Illuminate\Http\Resources\Json\JsonResource>|null} + * @return \Illuminate\Database\Eloquent\ModelInfo * * @throws \Illuminate\Contracts\Container\BindingResolutionException */ @@ -64,19 +64,19 @@ class ModelInspector $model->setConnection($connection); } - return [ - 'class' => get_class($model), - 'database' => $model->getConnection()->getName(), - 'table' => $model->getConnection()->getTablePrefix().$model->getTable(), - 'policy' => $this->getPolicy($model), - 'attributes' => $this->getAttributes($model), - 'relations' => $this->getRelations($model), - 'events' => $this->getEvents($model), - 'observers' => $this->getObservers($model), - 'collection' => $this->getCollectedBy($model), - 'builder' => $this->getBuilder($model), - 'resource' => $this->getResource($model), - ]; + return new ModelInfo( + class: $model::class, + database: $model->getConnection()->getName(), + table: $model->getConnection()->getTablePrefix().$model->getTable(), + policy: $this->getPolicy($model), + attributes: $this->getAttributes($model), + relations: $this->getRelations($model), + events: $this->getEvents($model), + observers: $this->getObservers($model), + collection: $this->getCollectedBy($model), + builder: $this->getBuilder($model), + resource: $this->getResource($model), + ); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php index 3ef8dfde2..96950a25e 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php @@ -41,7 +41,7 @@ class ModelNotFoundException extends RecordsNotFoundException $this->message = "No query results for model [{$model}]"; - if (count($this->ids) > 0) { + if ($this->ids !== []) { $this->message .= ' '.implode(', ', $this->ids); } else { $this->message .= '.'; diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/PendingHasThroughRelationship.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/PendingHasThroughRelationship.php index ec79b38bd..9f3b757fb 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/PendingHasThroughRelationship.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/PendingHasThroughRelationship.php @@ -103,6 +103,8 @@ class PendingHasThroughRelationship * @param string $method * @param array $parameters * @return mixed + * + * @throws \BadMethodCallException */ public function __call($method, $parameters) { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Prunable.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Prunable.php index 1eba87174..15423dd63 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Prunable.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Prunable.php @@ -14,6 +14,8 @@ trait Prunable * * @param int $chunkSize * @return int + * + * @throws \Throwable */ public function pruneAll(int $chunkSize = 1000) { @@ -49,6 +51,8 @@ trait Prunable * Get the prunable model query. * * @return \Illuminate\Database\Eloquent\Builder + * + * @throws \LogicException */ public function prunable() { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php index 5e0befeb0..c177b74ef 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php @@ -17,6 +17,7 @@ use Illuminate\Support\Arr; use Illuminate\Support\Collection as BaseCollection; use Illuminate\Support\Str; use InvalidArgumentException; +use SortDirection; /** * @template TRelatedModel of \Illuminate\Database\Eloquent\Model @@ -194,7 +195,7 @@ class BelongsToMany extends Relation return $table; } - if (in_array(AsPivot::class, class_uses_recursive($model))) { + if (isset(class_uses_recursive($model)[AsPivot::class])) { $this->using($table); } @@ -492,7 +493,7 @@ class BelongsToMany extends Relation throw new InvalidArgumentException('The provided value may not be null.'); } - $this->pivotValues[] = compact('column', 'value'); + $this->pivotValues[] = ['column' => $column, 'value' => $value]; return $this->wherePivot($column, '=', $value); } @@ -588,10 +589,10 @@ class BelongsToMany extends Relation * Add an "order by" clause for a pivot table column. * * @param string|\Illuminate\Contracts\Database\Query\Expression $column - * @param string $direction + * @param SortDirection|'asc'|'desc' $direction * @return $this */ - public function orderByPivot($column, $direction = 'asc') + public function orderByPivot($column, $direction = SortDirection::Ascending) { return $this->orderBy($this->qualifyPivotColumn($column), $direction); } @@ -604,7 +605,7 @@ class BelongsToMany extends Relation */ public function orderByPivotDesc($column) { - return $this->orderBy($this->qualifyPivotColumn($column), 'desc'); + return $this->orderBy($this->qualifyPivotColumn($column), SortDirection::Descending); } /** @@ -631,13 +632,13 @@ class BelongsToMany extends Relation * Get the first related model record matching the attributes or instantiate it. * * @param array $attributes - * @param array $values + * @param (\Closure(): array)|array $values * @return TRelatedModel&object{pivot: TPivotModel} */ - public function firstOrNew(array $attributes = [], array $values = []) + public function firstOrNew(array $attributes = [], Closure|array $values = []) { if (is_null($instance = $this->related->where($attributes)->first())) { - $instance = $this->related->newInstance(array_merge($attributes, $values)); + $instance = $this->related->newInstance(array_merge($attributes, value($values))); } return $instance; @@ -677,6 +678,8 @@ class BelongsToMany extends Relation * @param array $joining * @param bool $touch * @return TRelatedModel&object{pivot: TPivotModel} + * + * @throws \Illuminate\Database\UniqueConstraintViolationException */ public function createOrFirst(array $attributes = [], Closure|array $values = [], array $joining = [], $touch = true) { @@ -699,16 +702,16 @@ class BelongsToMany extends Relation * Create or update a related record matching the attributes, and fill it with values. * * @param array $attributes - * @param array $values + * @param (\Closure(): array)|array $values * @param array $joining * @param bool $touch * @return TRelatedModel&object{pivot: TPivotModel} */ - public function updateOrCreate(array $attributes, array $values = [], array $joining = [], $touch = true) + public function updateOrCreate(array $attributes, Closure|array $values = [], array $joining = [], $touch = true) { return tap($this->firstOrCreate($attributes, $values, $joining, $touch), function ($instance) use ($values) { if (! $instance->wasRecentlyCreated) { - $instance->fill($values); + $instance->fill(value($values)); $instance->save(['touch' => false]); } @@ -1074,7 +1077,7 @@ class BelongsToMany extends Relation */ public function chunkByIdDesc($count, callable $callback, $column = null, $alias = null) { - return $this->orderedChunkById($count, $callback, $column, $alias, descending: true); + return $this->orderedChunkById($count, $callback, $column, $alias, descending: SortDirection::Descending); } /** @@ -1104,7 +1107,7 @@ class BelongsToMany extends Relation * @param callable $callback * @param string|null $column * @param string|null $alias - * @param bool $descending + * @param SortDirection|bool $descending * @return bool */ public function orderedChunkById($count, callable $callback, $column = null, $alias = null, $descending = false) @@ -1684,7 +1687,7 @@ class BelongsToMany extends Relation /** * Get the pivot columns for this relationship. * - * @return array + * @return array */ public function getPivotColumns() { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/AsPivot.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/AsPivot.php index baea9e7c1..610592e5a 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/AsPivot.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/AsPivot.php @@ -3,6 +3,7 @@ namespace Illuminate\Database\Eloquent\Relations\Concerns; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Relations\MorphPivot; use Illuminate\Support\Str; trait AsPivot @@ -166,13 +167,13 @@ trait AsPivot */ public function getTable() { - if (! isset($this->table)) { + if (! isset($this->table) && (! $this instanceof MorphPivot)) { $this->setTable(str_replace( '\\', '', Str::snake(Str::singular(class_basename($this))) )); } - return $this->table; + return parent::getTable(); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php index baa67e4b1..48e1163c2 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php @@ -35,7 +35,7 @@ trait InteractsWithPivotTable array_keys($records) )); - if (count($detach) > 0) { + if ($detach !== []) { $this->detach($detach, false); $changes['detached'] = $this->castKeys($detach); @@ -46,7 +46,7 @@ trait InteractsWithPivotTable // this change list and get ready to return these results to the callers. $attach = array_diff_key($records, array_flip($detach)); - if (count($attach) > 0) { + if ($attach !== []) { $this->attach($attach, [], false); $changes['attached'] = array_keys($attach); @@ -119,7 +119,7 @@ trait InteractsWithPivotTable if ($detaching) { $detach = array_diff($current, array_keys($records)); - if (count($detach) > 0) { + if ($detach !== []) { $this->detach($detach, false); $changes['detached'] = $this->castKeys($detach); diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php index 6def355d4..2cf725ceb 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php @@ -240,13 +240,13 @@ abstract class HasOneOrMany extends Relation * Get the first related model record matching the attributes or instantiate it. * * @param array $attributes - * @param array $values + * @param (\Closure(): array)|array $values * @return TRelatedModel */ - public function firstOrNew(array $attributes = [], array $values = []) + public function firstOrNew(array $attributes = [], Closure|array $values = []) { if (is_null($instance = $this->where($attributes)->first())) { - $instance = $this->related->newInstance(array_merge($attributes, $values)); + $instance = $this->related->newInstance(array_merge($attributes, value($values))); $this->setForeignAttributesForCreate($instance); } @@ -276,6 +276,8 @@ abstract class HasOneOrMany extends Relation * @param array $attributes * @param (\Closure(): array)|array $values * @return TRelatedModel + * + * @throws \Illuminate\Database\UniqueConstraintViolationException */ public function createOrFirst(array $attributes = [], Closure|array $values = []) { @@ -290,14 +292,14 @@ abstract class HasOneOrMany extends Relation * Create or update a related record matching the attributes, and fill it with values. * * @param array $attributes - * @param array $values + * @param (\Closure(): array)|array $values * @return TRelatedModel */ - public function updateOrCreate(array $attributes, array $values = []) + public function updateOrCreate(array $attributes, Closure|array $values = []) { return tap($this->firstOrCreate($attributes, $values), function ($instance) use ($values) { if (! $instance->wasRecentlyCreated) { - $instance->fill($values)->save(); + $instance->fill(value($values))->save(); } }); } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrManyThrough.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrManyThrough.php index 1a0d27ed5..4961e4c3c 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrManyThrough.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrManyThrough.php @@ -238,6 +238,8 @@ abstract class HasOneOrManyThrough extends Relation * @param array $attributes * @param (\Closure(): array)|array $values * @return TRelatedModel + * + * @throws \Illuminate\Database\UniqueConstraintViolationException */ public function createOrFirst(array $attributes = [], Closure|array $values = []) { @@ -591,9 +593,9 @@ abstract class HasOneOrManyThrough extends Relation */ public function eachById(callable $callback, $count = 1000, $column = null, $alias = null) { - $column = $column ?? $this->getRelated()->getQualifiedKeyName(); + $column ??= $this->getRelated()->getQualifiedKeyName(); - $alias = $alias ?? $this->getRelated()->getKeyName(); + $alias ??= $this->getRelated()->getKeyName(); return $this->prepareQueryBuilder()->eachById($callback, $count, $column, $alias); } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php index 7c32befcd..fa0bf3054 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php @@ -23,9 +23,9 @@ abstract class MorphOneOrMany extends HasOneOrMany protected $morphType; /** - * The class name of the parent model. + * The morph class of the parent model. * - * @var class-string + * @var class-string|string */ protected $morphClass; @@ -156,9 +156,9 @@ abstract class MorphOneOrMany extends HasOneOrMany } /** - * Get the class name of the parent model. + * Get the morph class of the parent model. * - * @return class-string + * @return class-string|string */ public function getMorphClass() { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php index 01aea3395..2db5cc3c6 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php @@ -18,7 +18,7 @@ class MorphPivot extends Pivot * * Explicitly define this so it's not included in saved attributes. * - * @var class-string + * @var class-string|string */ protected $morphClass; @@ -100,7 +100,7 @@ class MorphPivot extends Pivot /** * Set the morph class for the pivot. * - * @param class-string $morphClass + * @param class-string|string $morphClass * @return \Illuminate\Database\Eloquent\Relations\MorphPivot */ public function setMorphClass($morphClass) diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php index 8fe672d3e..94ae92b59 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php @@ -226,7 +226,7 @@ class MorphTo extends BelongsTo protected function matchToMorphParents($type, EloquentCollection $results) { foreach ($results as $result) { - $ownerKey = ! is_null($this->ownerKey) ? $this->getDictionaryKey($result->{$this->ownerKey}) : $result->getKey(); + $ownerKey = $this->getDictionaryKey(! is_null($this->ownerKey) ? $result->{$this->ownerKey} : $result->getKey()); if ($ownerKey !== null && isset($this->dictionary[$type][$ownerKey])) { foreach ($this->dictionary[$type][$ownerKey] as $model) { @@ -448,7 +448,7 @@ class MorphTo extends BelongsTo $result = parent::__call($method, $parameters); if (in_array($method, ['select', 'selectRaw', 'selectSub', 'addSelect', 'withoutGlobalScopes'])) { - $this->macroBuffer[] = compact('method', 'parameters'); + $this->macroBuffer[] = ['method' => $method, 'parameters' => $parameters]; } return $result; @@ -458,7 +458,7 @@ class MorphTo extends BelongsTo // we'll assume that we want to call a query macro (e.g. withTrashed) that only // exists on related models. We will just store the call and replay it later. catch (BadMethodCallException) { - $this->macroBuffer[] = compact('method', 'parameters'); + $this->macroBuffer[] = ['method' => $method, 'parameters' => $parameters]; return $this; } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php index dd0680c98..3237acc9d 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php @@ -25,9 +25,9 @@ class MorphToMany extends BelongsToMany protected $morphType; /** - * The class name of the morph type constraint. + * The morph class of the morph type constraint. * - * @var class-string + * @var class-string|string */ protected $morphClass; @@ -214,7 +214,7 @@ class MorphToMany extends BelongsToMany /** * Get the class name of the parent model. * - * @return class-string + * @return class-string|string */ public function getMorphClass() { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php index cfb1d9b97..543d731e9 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php @@ -2,14 +2,15 @@ namespace Illuminate\Database\Eloquent; +/** + * @template TModel of \Illuminate\Database\Eloquent\Model + */ interface Scope { /** * Apply the scope to a given Eloquent query builder. * - * @template TModel of \Illuminate\Database\Eloquent\Model - * - * @param \Illuminate\Database\Eloquent\Builder $builder + * @param \Illuminate\Database\Eloquent\Builder $builder * @param TModel $model * @return void */ diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php index bdb497274..d5bc17083 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php @@ -93,7 +93,7 @@ trait SoftDeletes $ids = is_array($ids) ? $ids : func_get_args(); - if (count($ids) === 0) { + if ($ids === []) { return 0; } @@ -104,7 +104,7 @@ trait SoftDeletes $count = 0; - foreach ($instance->withTrashed()->whereIn($key, $ids)->get() as $model) { + foreach ($instance::withTrashed()->whereIn($key, $ids)->get() as $model) { if ($model->forceDelete()) { $count++; } @@ -180,7 +180,9 @@ trait SoftDeletes $result = $this->save(); - $this->fireModelEvent('restored', false); + if ($result) { + $this->fireModelEvent('restored', false); + } return $result; } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php index d1ef0d22b..e03c8f76e 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php @@ -2,6 +2,11 @@ namespace Illuminate\Database\Eloquent; +/** + * @template TModel of \Illuminate\Database\Eloquent\Model + * + * @implements \Illuminate\Database\Eloquent\Scope + */ class SoftDeletingScope implements Scope { /** @@ -14,8 +19,6 @@ class SoftDeletingScope implements Scope /** * Apply the scope to a given Eloquent query builder. * - * @template TModel of \Illuminate\Database\Eloquent\Model - * * @param \Illuminate\Database\Eloquent\Builder $builder * @param TModel $model * @return void @@ -54,7 +57,7 @@ class SoftDeletingScope implements Scope */ protected function getDeletedAtColumn(Builder $builder) { - if (count((array) $builder->getQuery()->joins) > 0) { + if ((array) $builder->getQuery()->joins !== []) { return $builder->getModel()->getQualifiedDeletedAtColumn(); } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Events/MigrationEvent.php b/vendor/laravel/framework/src/Illuminate/Database/Events/MigrationEvent.php index 83f10871a..2481ebd18 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Events/MigrationEvent.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Events/MigrationEvent.php @@ -21,15 +21,24 @@ abstract class MigrationEvent implements MigrationEventContract */ public $method; + /** + * The migration name. + * + * @var string|null + */ + public $name; + /** * Create a new event instance. * * @param \Illuminate\Database\Migrations\Migration $migration * @param string $method + * @param string|null $name */ - public function __construct(Migration $migration, $method) + public function __construct(Migration $migration, $method, $name = null) { $this->method = $method; $this->migration = $migration; + $this->name = $name; } } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php b/vendor/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php index d9209dfd5..49b620734 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php @@ -42,7 +42,7 @@ class QueryExecuted /** * The PDO read / write type for the executed query. * - * @var null|'read'|'write' + * @var null|'read'|'write'|'direct' */ public $readWriteType; @@ -53,7 +53,7 @@ class QueryExecuted * @param array $bindings * @param float|null $time * @param \Illuminate\Database\Connection $connection - * @param null|'read'|'write' $readWriteType + * @param null|'read'|'write'|'direct' $readWriteType */ public function __construct($sql, $bindings, $time, $connection, $readWriteType = null) { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php b/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php index 45c4389d2..22fd6ff76 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php @@ -56,7 +56,7 @@ class DatabaseMigrationRepository implements MigrationRepositoryInterface * Get the list of migrations. * * @param int $steps - * @return array{id: int, migration: string, batch: int}[] + * @return object{id: int, migration: string, batch: int}[] */ public function getMigrations($steps) { @@ -73,7 +73,7 @@ class DatabaseMigrationRepository implements MigrationRepositoryInterface * Get the list of the migrations by batch number. * * @param int $batch - * @return array{id: int, migration: string, batch: int}[] + * @return object{id: int, migration: string, batch: int}[] */ public function getMigrationsByBatch($batch) { @@ -87,7 +87,7 @@ class DatabaseMigrationRepository implements MigrationRepositoryInterface /** * Get the last migration batch. * - * @return array{id: int, migration: string, batch: int}[] + * @return object{id: int, migration: string, batch: int}[] */ public function getLast() { @@ -99,7 +99,7 @@ class DatabaseMigrationRepository implements MigrationRepositoryInterface /** * Get the completed migrations with their batch numbers. * - * @return array[] + * @return array */ public function getMigrationBatches() { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php b/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php index 49cc08e21..2e9edb5d5 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php @@ -15,7 +15,7 @@ interface MigrationRepositoryInterface * Get the list of migrations. * * @param int $steps - * @return array{id: int, migration: string, batch: int}[] + * @return object{id: int, migration: string, batch: int}[] */ public function getMigrations($steps); @@ -23,21 +23,21 @@ interface MigrationRepositoryInterface * Get the list of the migrations by batch. * * @param int $batch - * @return array{id: int, migration: string, batch: int}[] + * @return object{id: int, migration: string, batch: int}[] */ public function getMigrationsByBatch($batch); /** * Get the last migration batch. * - * @return array{id: int, migration: string, batch: int}[] + * @return object{id: int, migration: string, batch: int}[] */ public function getLast(); /** * Get the completed migrations with their batch numbers. * - * @return array[] + * @return array */ public function getMigrationBatches(); @@ -53,7 +53,7 @@ interface MigrationRepositoryInterface /** * Remove a migration from the log. * - * @param objectt{id?: int, migration: string, batch?: int} $migration + * @param object{id?: int, migration: string, batch?: int} $migration * @return void */ public function delete($migration); diff --git a/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php b/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php index 91084fc91..d180d1685 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php @@ -62,7 +62,7 @@ class Migrator /** * The name of the default connection. * - * @var string + * @var string|null */ protected $connection; @@ -183,7 +183,7 @@ class Migrator // First we will just make sure that there are any migrations to run. If there // aren't, we will just make a note of it to the developer so they're aware // that all of the migrations have been run against this database system. - if (count($migrations) === 0) { + if ($migrations === []) { $this->fireMigrationEvent(new NoPendingMigrations('up')); $this->write(Info::class, 'Nothing to migrate'); @@ -250,7 +250,7 @@ class Migrator $this->write(Task::class, $name, fn () => MigrationResult::Skipped->value); } else { - $this->write(Task::class, $name, fn () => $this->runMigration($migration, 'up')); + $this->write(Task::class, $name, fn () => $this->runMigration($migration, 'up', $name)); // Once we have run a migrations class, we will log that it was run in this // repository so that we don't try to run it next time we do a migration @@ -290,7 +290,7 @@ class Migrator * Get the migrations for a rollback operation. * * @param array $options - * @return array{id: int, migration: string, batch: int}[] + * @return object{id: int, migration: string, batch: int}[] */ protected function getMigrationsForRollback(array $options) { @@ -362,7 +362,7 @@ class Migrator // the database back into its "empty" state ready for the migrations. $migrations = array_reverse($this->repository->getRan()); - if (count($migrations) === 0) { + if ($migrations === []) { $this->write(Info::class, 'Nothing to rollback.'); return []; @@ -389,7 +389,7 @@ class Migrator $migrations = (new Collection($migrations))->map(fn ($m) => (object) ['migration' => $m])->all(); return $this->rollbackMigrations( - $migrations, $paths, compact('pretend') + $migrations, $paths, ['pretend' => $pretend] ); } @@ -414,7 +414,7 @@ class Migrator return $this->pretendToRun($instance, 'down'); } - $this->write(Task::class, $name, fn () => $this->runMigration($instance, 'down')); + $this->write(Task::class, $name, fn () => $this->runMigration($instance, 'down', $name)); // Once we have successfully run the migration "down" we will remove it from // the migration repository so it will be considered to have not been run @@ -429,19 +429,19 @@ class Migrator * @param string $method * @return void */ - protected function runMigration($migration, $method) + protected function runMigration($migration, $method, $name = null) { $connection = $this->resolveConnection( $migration->getConnection() ); - $callback = function () use ($connection, $migration, $method) { + $callback = function () use ($connection, $migration, $method, $name) { if (method_exists($migration, $method)) { - $this->fireMigrationEvent(new MigrationStarted($migration, $method)); + $this->fireMigrationEvent(new MigrationStarted($migration, $method, $name)); $this->runMethod($connection, $migration, $method); - $this->fireMigrationEvent(new MigrationEnded($migration, $method)); + $this->fireMigrationEvent(new MigrationEnded($migration, $method, $name)); } }; @@ -512,7 +512,7 @@ class Migrator $previousConnection = $this->resolver->getDefaultConnection(); try { - $this->resolver->setDefaultConnection($connection->getName()); + $this->resolver->setDefaultConnection($connection->getNameWithReadWriteType()); $migration->{$method}(); } finally { @@ -645,7 +645,7 @@ class Migrator /** * Get the default connection name. * - * @return string + * @return string|null */ public function getConnection() { @@ -659,34 +659,52 @@ class Migrator * * @param string $name * @param (callable(): TReturn) $callback - * @return mixed + * @return TReturn */ public function usingConnection($name, callable $callback) { - $previousConnection = $this->resolver->getDefaultConnection(); + $previousConnection = $this->connection; + $previousDefaultConnection = $this->resolver->getDefaultConnection(); $this->setConnection($name); try { return $callback(); } finally { - $this->setConnection($previousConnection); + $this->repository->setSource($previousConnection); + $this->resolver->setDefaultConnection($previousDefaultConnection); + + $this->connection = $previousConnection; } } /** * Set the default connection name. * - * @param string $name + * @param string|null $name * @return void */ public function setConnection($name) { - if (! is_null($name)) { - $this->resolver->setDefaultConnection($name); + if (is_null($name)) { + $defaultName = $this->resolver->getDefaultConnection(); + $directName = $this->directConnectionName($defaultName); + + // Using "null" connection, default is "null", and no direct connection... + if ($directName === $defaultName) { + $this->repository->setSource(null); + $this->connection = null; + + return; + } + + $name = $directName; + } else { + $name = $this->directConnectionName($name); } $this->repository->setSource($name); + $this->resolver->setDefaultConnection($name); $this->connection = $name; } @@ -694,7 +712,7 @@ class Migrator /** * Resolve the database connection instance. * - * @param string $connection + * @param string|null $connection * @return \Illuminate\Database\Connection */ public function resolveConnection($connection) @@ -706,10 +724,31 @@ class Migrator $connection ?: $this->connection ); } else { - return $this->resolver->connection($connection ?: $this->connection); + return $this->resolver->connection( + $this->directConnectionName($connection ?: $this->connection) + ); } } + /** + * Resolve the direct connection variant when one is configured. + * + * @param string|null $name + * @return string + */ + protected function directConnectionName($name) + { + $name ??= $this->resolver->getDefaultConnection(); + + if (Str::endsWith($name, ['::read', '::write', '::direct'])) { + return $name; + } + + return $this->resolver->connection($name)->hasDirectConnection() + ? $name.'::direct' + : $name; + } + /** * Set a connection resolver callback. * diff --git a/vendor/laravel/framework/src/Illuminate/Database/MySqlConnection.php b/vendor/laravel/framework/src/Illuminate/Database/MySqlConnection.php index ab541c9aa..bb9c98478 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/MySqlConnection.php +++ b/vendor/laravel/framework/src/Illuminate/Database/MySqlConnection.php @@ -82,6 +82,23 @@ class MySqlConnection extends Connection return (bool) preg_match('#Integrity constraint violation: 1062#i', $exception->getMessage()); } + /** + * Extract the index that caused a unique constraint violation. + * + * @param Exception $exception + * @return array{index: string|null, columns: list} + */ + protected function parseUniqueConstraintViolation(Exception $exception): array + { + preg_match( + '#Duplicate entry \'.*?\' for key \'(?:.*?\.)?(.+?)\'#i', + $exception->getMessage(), + $matches + ); + + return ['columns' => [], 'index' => $matches[1] ?? null]; + } + /** * Get the connection's last insert ID. * diff --git a/vendor/laravel/framework/src/Illuminate/Database/PostgresConnection.php b/vendor/laravel/framework/src/Illuminate/Database/PostgresConnection.php index f80b5dce5..cd07765bd 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/PostgresConnection.php +++ b/vendor/laravel/framework/src/Illuminate/Database/PostgresConnection.php @@ -2,6 +2,7 @@ namespace Illuminate\Database; +use DateTimeInterface; use Exception; use Illuminate\Database\Query\Grammars\PostgresGrammar as QueryGrammar; use Illuminate\Database\Query\Processors\PostgresProcessor; @@ -9,6 +10,7 @@ use Illuminate\Database\Schema\Grammars\PostgresGrammar as SchemaGrammar; use Illuminate\Database\Schema\PostgresBuilder; use Illuminate\Database\Schema\PostgresSchemaState; use Illuminate\Filesystem\Filesystem; +use PDO; class PostgresConnection extends Connection { @@ -20,6 +22,29 @@ class PostgresConnection extends Connection return 'PostgreSQL'; } + /** + * Prepare the query bindings for execution. + * + * @param array $bindings + * @return array + */ + public function prepareBindings(array $bindings) + { + $grammar = $this->getQueryGrammar(); + + foreach ($bindings as $key => $value) { + if ($value instanceof DateTimeInterface) { + $bindings[$key] = $value->format($grammar->getDateFormat()); + } elseif (is_bool($value)) { + $bindings[$key] = $this->usesEmulatedPrepares() + ? ($value ? 'true' : 'false') + : (int) $value; + } + } + + return $bindings; + } + /** * Escape a binary value for safe SQL embedding. * @@ -55,6 +80,27 @@ class PostgresConnection extends Connection return '23505' === $exception->getCode(); } + /** + * Extract the index and columns that caused a unique constraint violation. + * + * @param Exception $exception + * @return array{index: string|null, columns: list} + */ + protected function parseUniqueConstraintViolation(Exception $exception): array + { + [$index, $columns] = [null, []]; + + if (preg_match('#unique constraint "([^"]+)"#i', $message = $exception->getMessage(), $matches)) { + $index = $matches[1]; + } + + if (preg_match('#Key \(([^)]+)\)=#i', $message, $matches)) { + $columns = array_map(trim(...), explode(',', $matches[1])); + } + + return ['columns' => $columns, 'index' => $index]; + } + /** * Get the default query grammar instance. * @@ -110,4 +156,21 @@ class PostgresConnection extends Connection { return new PostgresProcessor; } + + /** + * Determine if the active PDO configuration uses emulated prepares. + * + * @return bool + */ + protected function usesEmulatedPrepares() + { + // Binding preparation runs after query routing has selected the PDO variant... + $config = match ($this->latestReadWriteTypeUsed()) { + 'read' => $this->readPdoConfig, + 'direct' => $this->directPdoConfig, + default => $this->config, + }; + + return (bool) ($config['options'][PDO::ATTR_EMULATE_PREPARES] ?? false); + } } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php index 7b20d5ee2..236b7b790 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php @@ -29,6 +29,7 @@ use Illuminate\Support\Traits\Macroable; use InvalidArgumentException; use LogicException; use RuntimeException; +use SortDirection; use UnitEnum; use function Illuminate\Support\enum_value; @@ -270,6 +271,13 @@ class Builder implements BuilderContract */ public $useWritePdo = false; + /** + * The custom arguments for the PDOStatement::fetchAll / fetch functions. + * + * @var array + */ + public array $fetchUsing = []; + /** * Create a new query builder instance. */ @@ -328,7 +336,7 @@ class Builder implements BuilderContract /** * Add a select expression to the query. * - * @param \Illuminate\Contracts\Database\Query\Expression|string $expression + * @param \Illuminate\Contracts\Database\Query\Expression|literal-string $expression * @param string $as * @return $this */ @@ -342,7 +350,7 @@ class Builder implements BuilderContract /** * Add a new "raw" select expression to the query. * - * @param string $expression + * @param literal-string $expression * @return $this */ public function selectRaw($expression, array $bindings = []) @@ -375,7 +383,7 @@ class Builder implements BuilderContract /** * Add a raw "from" clause to the query. * - * @param string $expression + * @param literal-string $expression * @param mixed $bindings * @return $this */ @@ -487,6 +495,8 @@ class Builder implements BuilderContract * @param \Illuminate\Support\Collection|\Illuminate\Contracts\Support\Arrayable|array|string $vector * @param string|null $as * @return $this + * + * @throws \JsonException */ public function selectVectorDistance($column, $vector, $as = null) { @@ -522,7 +532,7 @@ class Builder implements BuilderContract { $columns = func_get_args(); - if (count($columns) > 0) { + if ($columns !== []) { $this->distinct = is_array($columns[0]) || is_bool($columns[0]) ? $columns[0] : $columns; } else { $this->distinct = true; @@ -824,6 +834,49 @@ class Builder implements BuilderContract return $this; } + /** + * Add a straight join to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $table + * @param \Closure|string $first + * @param string|null $operator + * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second + * @return $this + */ + public function straightJoin($table, $first, $operator = null, $second = null) + { + return $this->join($table, $first, $operator, $second, 'straight_join'); + } + + /** + * Add a "straight join where" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $table + * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first + * @param string $operator + * @param \Illuminate\Contracts\Database\Query\Expression|string $second + * @return $this + */ + public function straightJoinWhere($table, $first, $operator, $second) + { + return $this->joinWhere($table, $first, $operator, $second, 'straight_join'); + } + + /** + * Add a subquery straight join to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query + * @param string $as + * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first + * @param string|null $operator + * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second + * @return $this + */ + public function straightJoinSub($query, $as, $first, $operator = null, $second = null) + { + return $this->joinSub($query, $as, $first, $operator, $second, 'straight_join'); + } + /** * Get a new "join" clause. * @@ -880,7 +933,7 @@ class Builder implements BuilderContract if ($column instanceof ConditionExpression) { $type = 'Expression'; - $this->wheres[] = compact('type', 'column', 'boolean'); + $this->wheres[] = ['type' => $type, 'column' => $column, 'boolean' => $boolean]; return $this; } @@ -965,9 +1018,9 @@ class Builder implements BuilderContract // Now that we are working with just a simple query we can put the elements // in our array and add the query binding to our array of bindings that // will be bound to each SQL statements when it is finally executed. - $this->wheres[] = compact( - 'type', 'column', 'operator', 'value', 'boolean' - ); + $this->wheres[] = [ + 'type' => $type, 'column' => $column, 'operator' => $operator, 'value' => $value, 'boolean' => $boolean, + ]; if (! $value instanceof ExpressionContract) { $this->addBinding($this->flattenValue($value), 'where'); @@ -1137,9 +1190,9 @@ class Builder implements BuilderContract // once the query is about to be executed and run against the database. $type = 'Column'; - $this->wheres[] = compact( - 'type', 'first', 'operator', 'second', 'boolean' - ); + $this->wheres[] = [ + 'type' => $type, 'first' => $first, 'operator' => $operator, 'second' => $second, 'boolean' => $boolean, + ]; return $this; } @@ -1189,6 +1242,8 @@ class Builder implements BuilderContract * @param float $maxDistance * @param string $boolean * @return $this + * + * @throws \JsonException */ public function whereVectorDistanceLessThan($column, $vector, $maxDistance, $boolean = 'and') { @@ -1229,7 +1284,7 @@ class Builder implements BuilderContract /** * Add a raw "where" clause to the query. * - * @param \Illuminate\Contracts\Database\Query\Expression|string $sql + * @param \Illuminate\Contracts\Database\Query\Expression|literal-string $sql * @param mixed $bindings * @param string $boolean * @return $this @@ -1246,7 +1301,7 @@ class Builder implements BuilderContract /** * Add a raw "or where" clause to the query. * - * @param string $sql + * @param literal-string $sql * @param mixed $bindings * @return $this */ @@ -1269,7 +1324,7 @@ class Builder implements BuilderContract { $type = 'Like'; - $this->wheres[] = compact('type', 'column', 'value', 'caseSensitive', 'boolean', 'not'); + $this->wheres[] = ['type' => $type, 'column' => $column, 'value' => $value, 'caseSensitive' => $caseSensitive, 'boolean' => $boolean, 'not' => $not]; if (method_exists($this->grammar, 'prepareWhereLikeBinding')) { $value = $this->grammar->prepareWhereLikeBinding($value, $caseSensitive); @@ -1332,7 +1387,7 @@ class Builder implements BuilderContract { $type = 'NullSafeEquals'; - $this->wheres[] = compact('type', 'column', 'value', 'boolean'); + $this->wheres[] = ['type' => $type, 'column' => $column, 'value' => $value, 'boolean' => $boolean]; if (! $value instanceof ExpressionContract) { $this->addBinding($this->flattenValue($value), 'where'); @@ -1361,6 +1416,8 @@ class Builder implements BuilderContract * @param string $boolean * @param bool $not * @return $this + * + * @throws \InvalidArgumentException */ public function whereIn($column, $values, $boolean = 'and', $not = false) { @@ -1384,7 +1441,7 @@ class Builder implements BuilderContract $values = $values->toArray(); } - $this->wheres[] = compact('type', 'column', 'values', 'boolean'); + $this->wheres[] = ['type' => $type, 'column' => $column, 'values' => $values, 'boolean' => $boolean]; if (count($values) !== count(Arr::flatten($values, 1))) { throw new InvalidArgumentException('Nested arrays may not be passed to whereIn method.'); @@ -1458,7 +1515,7 @@ class Builder implements BuilderContract $value = (int) ($value instanceof BackedEnum ? $value->value : $value); } - $this->wheres[] = compact('type', 'column', 'values', 'boolean'); + $this->wheres[] = ['type' => $type, 'column' => $column, 'values' => $values, 'boolean' => $boolean]; return $this; } @@ -1513,7 +1570,7 @@ class Builder implements BuilderContract $type = $not ? 'NotNull' : 'Null'; foreach (Arr::wrap($columns) as $column) { - $this->wheres[] = compact('type', 'column', 'boolean'); + $this->wheres[] = ['type' => $type, 'column' => $column, 'boolean' => $boolean]; } return $this; @@ -1565,7 +1622,7 @@ class Builder implements BuilderContract $values = $this->resolveDatePeriodBounds($values); } - $this->wheres[] = compact('type', 'column', 'values', 'boolean', 'not'); + $this->wheres[] = ['type' => $type, 'column' => $column, 'values' => $values, 'boolean' => $boolean, 'not' => $not]; $this->addBinding(array_slice($this->cleanBindings(Arr::flatten($values)), 0, 2), 'where'); @@ -1591,7 +1648,7 @@ class Builder implements BuilderContract ->whereBetweenColumns(new Expression('('.$sub.')'), $values, $boolean, $not); } - $this->wheres[] = compact('type', 'column', 'values', 'boolean', 'not'); + $this->wheres[] = ['type' => $type, 'column' => $column, 'values' => $values, 'boolean' => $boolean, 'not' => $not]; return $this; } @@ -1677,7 +1734,7 @@ class Builder implements BuilderContract { $type = 'valueBetween'; - $this->wheres[] = compact('type', 'value', 'columns', 'boolean', 'not'); + $this->wheres[] = ['type' => $type, 'value' => $value, 'columns' => $columns, 'boolean' => $boolean, 'not' => $not]; $this->addBinding($value, 'where'); @@ -1992,7 +2049,7 @@ class Builder implements BuilderContract */ protected function addDateBasedWhere($type, $column, $operator, $value, $boolean = 'and') { - $this->wheres[] = compact('column', 'type', 'boolean', 'operator', 'value'); + $this->wheres[] = ['column' => $column, 'type' => $type, 'boolean' => $boolean, 'operator' => $operator, 'value' => $value]; if (! $value instanceof ExpressionContract) { $this->addBinding($value, 'where'); @@ -2036,7 +2093,7 @@ class Builder implements BuilderContract if (count($query->wheres)) { $type = 'Nested'; - $this->wheres[] = compact('type', 'query', 'boolean'); + $this->wheres[] = ['type' => $type, 'query' => $query, 'boolean' => $boolean]; $this->addBinding($query->getRawBindings()['where'], 'where'); } @@ -2066,9 +2123,9 @@ class Builder implements BuilderContract $query = $callback instanceof EloquentBuilder ? $callback->toBase() : $callback; } - $this->wheres[] = compact( - 'type', 'column', 'operator', 'query', 'boolean' - ); + $this->wheres[] = [ + 'type' => $type, 'column' => $column, 'operator' => $operator, 'query' => $query, 'boolean' => $boolean, + ]; $this->addBinding($query->getBindings(), 'where'); @@ -2145,7 +2202,7 @@ class Builder implements BuilderContract { $type = $not ? 'NotExists' : 'Exists'; - $this->wheres[] = compact('type', 'query', 'boolean'); + $this->wheres[] = ['type' => $type, 'query' => $query, 'boolean' => $boolean]; $this->addBinding($query->getBindings(), 'where'); @@ -2171,7 +2228,7 @@ class Builder implements BuilderContract $type = 'RowValues'; - $this->wheres[] = compact('type', 'columns', 'operator', 'values', 'boolean'); + $this->wheres[] = ['type' => $type, 'columns' => $columns, 'operator' => $operator, 'values' => $values, 'boolean' => $boolean]; $this->addBinding($this->cleanBindings($values)); @@ -2204,7 +2261,7 @@ class Builder implements BuilderContract { $type = 'JsonContains'; - $this->wheres[] = compact('type', 'column', 'value', 'boolean', 'not'); + $this->wheres[] = ['type' => $type, 'column' => $column, 'value' => $value, 'boolean' => $boolean, 'not' => $not]; if (! $value instanceof ExpressionContract) { $this->addBinding($this->grammar->prepareBindingForJsonContains($value)); @@ -2263,7 +2320,7 @@ class Builder implements BuilderContract { $type = 'JsonOverlaps'; - $this->wheres[] = compact('type', 'column', 'value', 'boolean', 'not'); + $this->wheres[] = ['type' => $type, 'column' => $column, 'value' => $value, 'boolean' => $boolean, 'not' => $not]; if (! $value instanceof ExpressionContract) { $this->addBinding($this->grammar->prepareBindingForJsonContains($value)); @@ -2321,7 +2378,7 @@ class Builder implements BuilderContract { $type = 'JsonContainsKey'; - $this->wheres[] = compact('type', 'column', 'boolean', 'not'); + $this->wheres[] = ['type' => $type, 'column' => $column, 'boolean' => $boolean, 'not' => $not]; return $this; } @@ -2384,7 +2441,7 @@ class Builder implements BuilderContract [$value, $operator] = [$operator, '=']; } - $this->wheres[] = compact('type', 'column', 'operator', 'value', 'boolean'); + $this->wheres[] = ['type' => $type, 'column' => $column, 'operator' => $operator, 'value' => $value, 'boolean' => $boolean]; if (! $value instanceof ExpressionContract) { $this->addBinding((int) $this->flattenValue($value)); @@ -2486,7 +2543,7 @@ class Builder implements BuilderContract $columns = (array) $columns; - $this->wheres[] = compact('type', 'columns', 'value', 'options', 'boolean'); + $this->wheres[] = ['type' => $type, 'columns' => $columns, 'value' => $value, 'options' => $options, 'boolean' => $boolean]; $this->addBinding($value); @@ -2627,7 +2684,7 @@ class Builder implements BuilderContract /** * Add a raw "groupBy" clause to the query. * - * @param string $sql + * @param literal-string $sql * @return $this */ public function groupByRaw($sql, array $bindings = []) @@ -2655,7 +2712,7 @@ class Builder implements BuilderContract if ($column instanceof ConditionExpression) { $type = 'Expression'; - $this->havings[] = compact('type', 'column', 'boolean'); + $this->havings[] = ['type' => $type, 'column' => $column, 'boolean' => $boolean]; return $this; } @@ -2682,7 +2739,7 @@ class Builder implements BuilderContract $type = 'Bitwise'; } - $this->havings[] = compact('type', 'column', 'operator', 'value', 'boolean'); + $this->havings[] = ['type' => $type, 'column' => $column, 'operator' => $operator, 'value' => $value, 'boolean' => $boolean]; if (! $value instanceof ExpressionContract) { $this->addBinding($this->flattenValue($value), 'having'); @@ -2733,7 +2790,7 @@ class Builder implements BuilderContract if (count($query->havings)) { $type = 'Nested'; - $this->havings[] = compact('type', 'query', 'boolean'); + $this->havings[] = ['type' => $type, 'query' => $query, 'boolean' => $boolean]; $this->addBinding($query->getRawBindings()['having'], 'having'); } @@ -2754,7 +2811,7 @@ class Builder implements BuilderContract $type = $not ? 'NotNull' : 'Null'; foreach (Arr::wrap($columns) as $column) { - $this->havings[] = compact('type', 'column', 'boolean'); + $this->havings[] = ['type' => $type, 'column' => $column, 'boolean' => $boolean]; } return $this; @@ -2810,7 +2867,7 @@ class Builder implements BuilderContract $values = $this->resolveDatePeriodBounds($values); } - $this->havings[] = compact('type', 'column', 'values', 'boolean', 'not'); + $this->havings[] = ['type' => $type, 'column' => $column, 'values' => $values, 'boolean' => $boolean, 'not' => $not]; $this->addBinding(array_slice($this->cleanBindings(Arr::flatten($values)), 0, 2), 'having'); @@ -2880,7 +2937,7 @@ class Builder implements BuilderContract /** * Add a raw "having" clause to the query. * - * @param string $sql + * @param literal-string $sql * @param string $boolean * @return $this */ @@ -2888,7 +2945,7 @@ class Builder implements BuilderContract { $type = 'Raw'; - $this->havings[] = compact('type', 'sql', 'boolean'); + $this->havings[] = ['type' => $type, 'sql' => $sql, 'boolean' => $boolean]; $this->addBinding($bindings, 'having'); @@ -2898,7 +2955,7 @@ class Builder implements BuilderContract /** * Add a raw "or having" clause to the query. * - * @param string $sql + * @param literal-string $sql * @return $this */ public function orHavingRaw($sql, array $bindings = []) @@ -2910,12 +2967,12 @@ class Builder implements BuilderContract * Add an "order by" clause to the query. * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|\Illuminate\Contracts\Database\Query\Expression|string $column - * @param string $direction + * @param SortDirection|'asc'|'desc' $direction * @return $this * * @throws \InvalidArgumentException */ - public function orderBy($column, $direction = 'asc') + public function orderBy($column, $direction = SortDirection::Ascending) { if ($this->isQueryable($column)) { [$query, $bindings] = $this->createSub($column); @@ -2925,11 +2982,15 @@ class Builder implements BuilderContract $this->addBinding($bindings, $this->unions ? 'unionOrder' : 'order'); } - $direction = strtolower($direction); - - if (! in_array($direction, ['asc', 'desc'], true)) { - throw new InvalidArgumentException('Order direction must be "asc" or "desc".'); - } + $direction = match (true) { + $direction instanceof SortDirection => match ($direction) { + SortDirection::Ascending => 'asc', + SortDirection::Descending => 'desc', + }, + strtolower($direction) === 'asc' => 'asc', + strtolower($direction) === 'desc' => 'desc', + default => throw new InvalidArgumentException('Order direction must be a SortDirection, "asc" or "desc".'), + }; $this->{$this->unions ? 'unionOrders' : 'orders'}[] = [ 'column' => $column, @@ -2947,7 +3008,7 @@ class Builder implements BuilderContract */ public function orderByDesc($column) { - return $this->orderBy($column, 'desc'); + return $this->orderBy($column, SortDirection::Descending); } /** @@ -2958,7 +3019,7 @@ class Builder implements BuilderContract */ public function latest($column = 'created_at') { - return $this->orderBy($column, 'desc'); + return $this->orderBy($column, SortDirection::Descending); } /** @@ -2969,7 +3030,7 @@ class Builder implements BuilderContract */ public function oldest($column = 'created_at') { - return $this->orderBy($column, 'asc'); + return $this->orderBy($column, SortDirection::Ascending); } /** @@ -2978,6 +3039,8 @@ class Builder implements BuilderContract * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param \Illuminate\Support\Collection|\Illuminate\Contracts\Support\Arrayable|array $vector * @return $this + * + * @throws \JsonException */ public function orderByVectorDistance($column, $vector) { @@ -3049,7 +3112,7 @@ class Builder implements BuilderContract /** * Add a raw "order by" clause to the query. * - * @param string $sql + * @param literal-string $sql * @param array $bindings * @return $this */ @@ -3057,7 +3120,7 @@ class Builder implements BuilderContract { $type = 'Raw'; - $this->{$this->unions ? 'unionOrders' : 'orders'}[] = compact('type', 'sql'); + $this->{$this->unions ? 'unionOrders' : 'orders'}[] = ['type' => $type, 'sql' => $sql]; $this->addBinding($bindings, $this->unions ? 'unionOrder' : 'order'); @@ -3128,7 +3191,7 @@ class Builder implements BuilderContract public function groupLimit($value, $column) { if ($value >= 0) { - $this->groupLimit = compact('value', 'column'); + $this->groupLimit = ['value' => $value, 'column' => $column]; } return $this; @@ -3164,7 +3227,7 @@ class Builder implements BuilderContract $this->where($column, '<', $lastId); } - return $this->orderBy($column, 'desc') + return $this->orderBy($column, SortDirection::Descending) ->limit($perPage); } @@ -3186,7 +3249,7 @@ class Builder implements BuilderContract $this->where($column, '>', $lastId); } - return $this->orderBy($column, 'asc') + return $this->orderBy($column, SortDirection::Ascending) ->limit($perPage); } @@ -3194,10 +3257,10 @@ class Builder implements BuilderContract * Remove all existing orders and optionally add a new order. * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Contracts\Database\Query\Expression|string|null $column - * @param string $direction + * @param SortDirection|'asc'|'desc' $direction * @return $this */ - public function reorder($column = null, $direction = 'asc') + public function reorder($column = null, $direction = SortDirection::Ascending) { $this->orders = null; $this->unionOrders = null; @@ -3219,7 +3282,7 @@ class Builder implements BuilderContract */ public function reorderDesc($column) { - return $this->reorder($column, 'desc'); + return $this->reorder($column, SortDirection::Descending); } /** @@ -3249,7 +3312,7 @@ class Builder implements BuilderContract $query($query = $this->newQuery()); } - $this->unions[] = compact('query', 'all'); + $this->unions[] = ['query' => $query, 'all' => $all]; $this->addBinding($query->getBindings(), 'union'); @@ -3447,19 +3510,20 @@ class Builder implements BuilderContract { $result = (array) $this->first([$column]); - return count($result) > 0 ? array_first($result) : null; + return $result !== [] ? array_first($result) : null; } /** * Get a single expression value from the first result of a query. * + * @param literal-string $expression * @return mixed */ public function rawValue(string $expression, array $bindings = []) { $result = (array) $this->selectRaw($expression, $bindings)->first(); - return count($result) > 0 ? array_first($result) : null; + return $result !== [] ? array_first($result) : null; } /** @@ -3486,9 +3550,13 @@ class Builder implements BuilderContract */ public function get($columns = ['*']) { - $items = new Collection($this->onceWithColumns(Arr::wrap($columns), function () { - return $this->processor->processSelect($this, $this->runSelect()); - })); + $original = $this->columns; + + $this->columns ??= Arr::wrap($columns); + + $items = new Collection($this->processor->processSelect($this, $this->runSelect())); + + $this->columns = $original; return $this->applyAfterQueryCallbacks( isset($this->groupLimit) ? $this->withoutGroupLimitKeys($items) : $items @@ -3503,7 +3571,7 @@ class Builder implements BuilderContract protected function runSelect() { return $this->connection->select( - $this->toSql(), $this->getBindings(), ! $this->useWritePdo + $this->toSql(), $this->getBindings(), ! $this->useWritePdo, $this->fetchUsing ); } @@ -3723,7 +3791,7 @@ class Builder implements BuilderContract return (new LazyCollection(function () { yield from $this->connection->cursor( - $this->toSql(), $this->getBindings(), ! $this->useWritePdo + $this->toSql(), $this->getBindings(), ! $this->useWritePdo, $this->fetchUsing ); }))->map(function ($item) { return $this->applyAfterQueryCallbacks(new Collection([$item]))->first(); @@ -3753,17 +3821,18 @@ class Builder implements BuilderContract */ public function pluck($column, $key = null) { + $original = $this->columns; + // First, we will need to select the results of the query accounting for the // given columns / key. Once we have the results, we will be able to take // the results and get the exact data that was requested for the query. - $queryResult = $this->onceWithColumns( - is_null($key) || $key === $column ? [$column] : [$column, $key], - function () { - return $this->processor->processSelect( - $this, $this->runSelect() - ); - } - ); + $this->columns ??= is_null($key) || $key === $column + ? [$column] + : [$column, $key]; + + $queryResult = $this->processor->processSelect($this, $this->runSelect()); + + $this->columns = $original; if (empty($queryResult)) { return new Collection; @@ -4047,7 +4116,7 @@ class Builder implements BuilderContract */ protected function setAggregate($function, $columns) { - $this->aggregate = compact('function', 'columns'); + $this->aggregate = ['function' => $function, 'columns' => $columns]; if (empty($this->groups)) { $this->orders = null; @@ -4058,32 +4127,6 @@ class Builder implements BuilderContract return $this; } - /** - * Execute the given callback while selecting the given columns. - * - * After running the callback, the columns are reset to the original value. - * - * @template TResult - * - * @param array $columns - * @param callable(): TResult $callback - * @return TResult - */ - protected function onceWithColumns($columns, $callback) - { - $original = $this->columns; - - if (is_null($original)) { - $this->columns = $columns; - } - - $result = $callback(); - - $this->columns = $original; - - return $result; - } - /** * Insert new records into the database. * @@ -4153,6 +4196,50 @@ class Builder implements BuilderContract ); } + /** + * Insert new records into the database and returning specified columns with optional ignoring specific conflicts. + * + * @param non-empty-array $returning + * @param non-empty-string|non-empty-array|null $uniqueBy + * @return \Illuminate\Support\Collection + */ + public function insertOrIgnoreReturning(array $values, array $returning = ['*'], array|string|null $uniqueBy = null) + { + if (empty($values)) { + return new Collection; + } + + if ($uniqueBy === [] || $uniqueBy === '') { + throw new InvalidArgumentException('The unique columns must not be empty.'); + } + + if ($returning === []) { + throw new InvalidArgumentException('The returning columns must not be empty.'); + } + + if (! is_array(array_first($values))) { + $values = [$values]; + } else { + foreach ($values as $key => $value) { + ksort($value); + + $values[$key] = $value; + } + } + + $this->applyBeforeQueryCallbacks(); + + $sql = $this->grammar->compileInsertOrIgnoreReturning($this, $values, $returning, $uniqueBy === null ? null : Arr::wrap($uniqueBy)); + + $result = new Collection( + $this->connection->selectFromWriteConnection($sql, $this->cleanBindings(Arr::flatten($values, 1))) + ); + + $this->connection->recordsHaveBeenModified($result->isNotEmpty()); + + return $result; + } + /** * Insert a new record and get the value of the primary key. * @@ -4240,6 +4327,8 @@ class Builder implements BuilderContract * Update records in a PostgreSQL database using the update from syntax. * * @return int + * + * @throws \LogicException */ public function updateFrom(array $values) { @@ -4283,10 +4372,15 @@ class Builder implements BuilderContract /** * Insert new records or update the existing ones. * + * @param non-empty-string|non-empty-array $uniqueBy * @return int */ public function upsert(array $values, array|string $uniqueBy, ?array $update = null) { + if ($uniqueBy === [] || $uniqueBy === '') { + throw new InvalidArgumentException('The unique columns must not be empty.'); + } + if (empty($values)) { return 0; } elseif ($update === []) { @@ -4479,7 +4573,7 @@ class Builder implements BuilderContract /** * Create a raw database expression. * - * @param mixed $value + * @param literal-string|int|float $value * @return \Illuminate\Contracts\Database\Query\Expression */ public function raw($value) @@ -4676,6 +4770,8 @@ class Builder implements BuilderContract * Ensure the database connection supports vector queries. * * @return void + * + * @throws \RuntimeException */ protected function ensureConnectionSupportsVectors() { @@ -4716,6 +4812,19 @@ class Builder implements BuilderContract return $this; } + /** + * Specify arguments for the PDOStatement::fetchAll / fetch functions. + * + * @param mixed ...$fetchUsing + * @return $this + */ + public function fetchUsing(...$fetchUsing) + { + $this->fetchUsing = $fetchUsing; + + return $this; + } + /** * Determine if the value is a query builder instance or a Closure. * diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Expression.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Expression.php index 839dea833..cf55887ac 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Expression.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Query/Expression.php @@ -6,7 +6,7 @@ use Illuminate\Contracts\Database\Query\Expression as ExpressionContract; use Illuminate\Database\Grammar; /** - * @template TValue of string|int|float + * @template TValue of literal-string|int|float */ class Expression implements ExpressionContract { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php index 875710446..b61986f41 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php @@ -139,7 +139,7 @@ class Grammar extends BaseGrammar $column = 'distinct '.$column; } - return 'select '.$aggregate['function'].'('.$column.') as aggregate'; + return 'select '.$aggregate['function'].'('.$column.') as '.$this->wrap('aggregate'); } /** @@ -199,7 +199,9 @@ class Grammar extends BaseGrammar return $this->compileJoinLateral($join, $tableAndNestedJoins); } - return trim("{$join->type} join {$tableAndNestedJoins} {$this->compileWheres($join)}"); + $joinWord = ($join->type === 'straight_join' && $this->supportsStraightJoins()) ? '' : ' join'; + + return trim("{$join->type}{$joinWord} {$tableAndNestedJoins} {$this->compileWheres($join)}"); })->implode(' '); } @@ -217,6 +219,18 @@ class Grammar extends BaseGrammar throw new RuntimeException('This database engine does not support lateral joins.'); } + /** + * Determine if the grammar supports straight joins. + * + * @return bool + * + * @throws \RuntimeException + */ + protected function supportsStraightJoins() + { + throw new RuntimeException('This database engine does not support straight joins.'); + } + /** * Compile the "where" portions of the query. * @@ -315,6 +329,8 @@ class Grammar extends BaseGrammar * @param \Illuminate\Database\Query\Builder $query * @param array $where * @return string + * + * @throws \RuntimeException */ protected function whereLike(Builder $query, $where) { @@ -811,6 +827,8 @@ class Grammar extends BaseGrammar * @param \Illuminate\Database\Query\Builder $query * @param array $where * @return string + * + * @throws \RuntimeException */ public function whereFullText(Builder $query, $where) { @@ -1255,6 +1273,22 @@ class Grammar extends BaseGrammar throw new RuntimeException('This database engine does not support inserting while ignoring errors.'); } + /** + * Compile an insert or ignore statement with a returning clause into SQL. + * + * @param \Illuminate\Database\Query\Builder $query + * @param array $values + * @param array $returning + * @param array|null $uniqueBy + * @return string + * + * @throws \RuntimeException + */ + public function compileInsertOrIgnoreReturning(Builder $query, array $values, array $returning, ?array $uniqueBy) + { + throw new RuntimeException('This database engine does not support insert or ignore with returning.'); + } + /** * Compile an insert and get ID statement into SQL. * @@ -1587,6 +1621,7 @@ class Grammar extends BaseGrammar $bindings = array_map(fn ($value) => $this->escape($value, is_resource($value) || gettype($value) === 'resource (closed)'), $bindings); $query = ''; + $bindingIndex = 0; $isStringLiteral = false; @@ -1604,7 +1639,7 @@ class Grammar extends BaseGrammar $query .= $char; $isStringLiteral = ! $isStringLiteral; } elseif ($char === '?' && ! $isStringLiteral) { // Substitutable binding... - $query .= array_shift($bindings) ?? '?'; + $query .= $bindings[$bindingIndex++] ?? '?'; } else { // Normal character... $query .= $char; } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php index a574bd846..7a8410973 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php @@ -446,6 +446,14 @@ class MySqlGrammar extends Grammar return trim("{$join->type} join lateral {$expression} on true"); } + /** + * {@inheritdoc} + */ + protected function supportsStraightJoins() + { + return true; + } + /** * Prepare a JSON column being updated using the JSON_SET function. * @@ -513,7 +521,7 @@ class MySqlGrammar extends Grammar } /** - * Compile a delete query that does not use joins. + * Compile a delete statement without joins into SQL. * * @param \Illuminate\Database\Query\Builder $query * @param string $table @@ -524,9 +532,33 @@ class MySqlGrammar extends Grammar { $sql = parent::compileDeleteWithoutJoins($query, $table, $where); - // When using MySQL, delete statements may contain order by statements and limits - // so we will compile both of those here. Once we have finished compiling this - // we will return the completed SQL statement so it will be executed for us. + if (! empty($query->orders)) { + $sql .= ' '.$this->compileOrders($query, $query->orders); + } + + if (isset($query->limit)) { + $sql .= ' '.$this->compileLimit($query, $query->limit); + } + + return $sql; + } + + /** + * Compile a delete statement with joins into SQL. + * + * Adds ORDER BY and LIMIT if present, for platforms that allow them (e.g., PlanetScale). + * + * Standard MySQL does not support ORDER BY or LIMIT with joined deletes and will throw a syntax error. + * + * @param \Illuminate\Database\Query\Builder $query + * @param string $table + * @param string $where + * @return string + */ + protected function compileDeleteWithJoins(Builder $query, $table, $where) + { + $sql = parent::compileDeleteWithJoins($query, $table, $where); + if (! empty($query->orders)) { $sql .= ' '.$this->compileOrders($query, $query->orders); } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php index 67f6458b9..3aa18bf08 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php @@ -373,6 +373,25 @@ class PostgresGrammar extends Grammar return $this->compileInsert($query, $values).' on conflict do nothing'; } + /** + * Compile an insert or ignore statement with a returning clause into SQL. + * + * @param \Illuminate\Database\Query\Builder $query + * @param array $values + * @param array $returning + * @param array|null $uniqueBy + * @return string + */ + public function compileInsertOrIgnoreReturning(Builder $query, array $values, array $returning, ?array $uniqueBy) + { + $insert = $this->compileInsert($query, $values); + + return match ($uniqueBy) { + null => "{$insert} on conflict do nothing returning {$this->columnize($returning)}", + default => "{$insert} on conflict ({$this->columnize($uniqueBy)}) do nothing returning {$this->columnize($returning)}", + }; + } + /** * Compile an insert ignore statement using a subquery into SQL. * diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php index 13cda32be..97a704080 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php @@ -288,6 +288,25 @@ class SQLiteGrammar extends Grammar return Str::replaceFirst('insert', 'insert or ignore', $this->compileInsert($query, $values)); } + /** + * Compile an insert or ignore statement with a returning clause into SQL. + * + * @param \Illuminate\Database\Query\Builder $query + * @param array $values + * @param array $returning + * @param array|null $uniqueBy + * @return string + */ + public function compileInsertOrIgnoreReturning(Builder $query, array $values, array $returning, ?array $uniqueBy) + { + $insert = $this->compileInsert($query, $values); + + return match ($uniqueBy) { + null => "{$insert} on conflict do nothing returning {$this->columnize($returning)}", + default => "{$insert} on conflict ({$this->columnize($uniqueBy)}) do nothing returning {$this->columnize($returning)}", + }; + } + /** * Compile an insert ignore statement using a subquery into SQL. * diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php index 46f692e49..410bdee04 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php @@ -82,7 +82,7 @@ class Processor * Process the results of a views query. * * @param list> $results - * @return list + * @return list */ public function processViews($results) { @@ -102,7 +102,7 @@ class Processor * Process the results of a types query. * * @param list> $results - * @return list + * @return list */ public function processTypes($results) { @@ -113,7 +113,7 @@ class Processor * Process the results of a columns query. * * @param list> $results - * @return list + * @return list */ public function processColumns($results) { @@ -124,7 +124,7 @@ class Processor * Process the results of an indexes query. * * @param list> $results - * @return list, type: string, unique: bool, primary: bool}> + * @return list, type: string|null, unique: bool, primary: bool}> */ public function processIndexes($results) { @@ -135,7 +135,7 @@ class Processor * Process the results of a foreign keys query. * * @param list> $results - * @return list, foreign_schema: string, foreign_table: string, foreign_columns: list, on_update: string, on_delete: string}> + * @return list, foreign_schema: string|null, foreign_table: string, foreign_columns: list, on_update: string|null, on_delete: string|null}> */ public function processForeignKeys($results) { diff --git a/vendor/laravel/framework/src/Illuminate/Database/QueryException.php b/vendor/laravel/framework/src/Illuminate/Database/QueryException.php index ba46baa97..90877435c 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/QueryException.php +++ b/vendor/laravel/framework/src/Illuminate/Database/QueryException.php @@ -33,7 +33,7 @@ class QueryException extends PDOException /** * The PDO read / write type for the executed query. * - * @var null|'read'|'write' + * @var null|'read'|'write'|'direct' */ public $readWriteType; @@ -52,7 +52,7 @@ class QueryException extends PDOException * @param array $bindings * @param \Throwable $previous * @param array $connectionDetails - * @param null|'read'|'write' $readWriteType + * @param null|'read'|'write'|'direct' $readWriteType */ public function __construct($connectionName, $sql, array $bindings, Throwable $previous, array $connectionDetails = [], $readWriteType = null) { diff --git a/vendor/laravel/framework/src/Illuminate/Database/SQLiteConnection.php b/vendor/laravel/framework/src/Illuminate/Database/SQLiteConnection.php index db8afd79e..99d0f5e2c 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/SQLiteConnection.php +++ b/vendor/laravel/framework/src/Illuminate/Database/SQLiteConnection.php @@ -62,6 +62,28 @@ class SQLiteConnection extends Connection return (bool) preg_match('#(column(s)? .* (is|are) not unique|UNIQUE constraint failed: .*)#i', $exception->getMessage()); } + /** + * Extract the columns that caused a unique constraint violation. + * + * @param Exception $exception + * @return array{index: null, columns: list} + */ + protected function parseUniqueConstraintViolation(Exception $exception): array + { + preg_match('#UNIQUE constraint failed: (.+)#i', $exception->getMessage(), $matches); + + $columns = []; + + if (isset($matches[1])) { + $columns = array_map( + static fn ($col) => last(explode('.', trim($col))), + explode(',', $matches[1]) + ); + } + + return ['columns' => $columns, 'index' => null]; + } + /** * Get the default query grammar instance. * diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php index b52fa00aa..9213a27d5 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php @@ -7,6 +7,7 @@ use Illuminate\Database\Connection; use Illuminate\Database\Eloquent\Concerns\HasUlids; use Illuminate\Database\Query\Expression; use Illuminate\Database\Schema\Grammars\Grammar; +use Illuminate\Database\Schema\Grammars\MariaDbGrammar; use Illuminate\Database\Schema\Grammars\MySqlGrammar; use Illuminate\Database\Schema\Grammars\SQLiteGrammar; use Illuminate\Support\Collection; @@ -273,7 +274,7 @@ class Blueprint { foreach ($this->columns as $column) { foreach ($this->grammar->getFluentCommands() as $commandName) { - $this->addCommand($commandName, compact('column')); + $this->addCommand($commandName, ['column' => $column]); } } } @@ -422,7 +423,7 @@ class Blueprint { $columns = is_array($columns) ? $columns : func_get_args(); - return $this->addCommand('dropColumn', compact('columns')); + return $this->addCommand('dropColumn', ['columns' => $columns]); } /** @@ -434,7 +435,7 @@ class Blueprint */ public function renameColumn($from, $to) { - return $this->addCommand('renameColumn', compact('from', 'to')); + return $this->addCommand('renameColumn', ['from' => $from, 'to' => $to]); } /** @@ -557,7 +558,7 @@ class Blueprint */ public function renameIndex($from, $to) { - return $this->addCommand('renameIndex', compact('from', 'to')); + return $this->addCommand('renameIndex', ['from' => $from, 'to' => $to]); } /** @@ -634,7 +635,7 @@ class Blueprint */ public function rename($to) { - return $this->addCommand('rename', compact('to')); + return $this->addCommand('rename', ['to' => $to]); } /** @@ -711,7 +712,11 @@ class Blueprint */ public function vectorIndex($column, $name = null) { - return $this->indexCommand('vectorIndex', $column, $name, 'hnsw', 'vector_cosine_ops'); + [$algorithm, $operatorClass] = $this->grammar instanceof MariaDbGrammar + ? [null, 'M=6 DISTANCE=cosine'] + : ['hnsw', 'vector_cosine_ops']; + + return $this->indexCommand('vectorIndex', $column, $name, $algorithm, $operatorClass); } /** @@ -832,7 +837,7 @@ class Blueprint { $length = ! is_null($length) ? $length : Builder::$defaultStringLength; - return $this->addColumn('char', $column, compact('length')); + return $this->addColumn('char', $column, ['length' => $length]); } /** @@ -846,7 +851,7 @@ class Blueprint { $length = $length ?: Builder::$defaultStringLength; - return $this->addColumn('string', $column, compact('length')); + return $this->addColumn('string', $column, ['length' => $length]); } /** @@ -904,7 +909,7 @@ class Blueprint */ public function integer($column, $autoIncrement = false, $unsigned = false) { - return $this->addColumn('integer', $column, compact('autoIncrement', 'unsigned')); + return $this->addColumn('integer', $column, ['autoIncrement' => $autoIncrement, 'unsigned' => $unsigned]); } /** @@ -918,7 +923,7 @@ class Blueprint */ public function tinyInteger($column, $autoIncrement = false, $unsigned = false) { - return $this->addColumn('tinyInteger', $column, compact('autoIncrement', 'unsigned')); + return $this->addColumn('tinyInteger', $column, ['autoIncrement' => $autoIncrement, 'unsigned' => $unsigned]); } /** @@ -932,7 +937,7 @@ class Blueprint */ public function smallInteger($column, $autoIncrement = false, $unsigned = false) { - return $this->addColumn('smallInteger', $column, compact('autoIncrement', 'unsigned')); + return $this->addColumn('smallInteger', $column, ['autoIncrement' => $autoIncrement, 'unsigned' => $unsigned]); } /** @@ -946,7 +951,7 @@ class Blueprint */ public function mediumInteger($column, $autoIncrement = false, $unsigned = false) { - return $this->addColumn('mediumInteger', $column, compact('autoIncrement', 'unsigned')); + return $this->addColumn('mediumInteger', $column, ['autoIncrement' => $autoIncrement, 'unsigned' => $unsigned]); } /** @@ -960,7 +965,7 @@ class Blueprint */ public function bigInteger($column, $autoIncrement = false, $unsigned = false) { - return $this->addColumn('bigInteger', $column, compact('autoIncrement', 'unsigned')); + return $this->addColumn('bigInteger', $column, ['autoIncrement' => $autoIncrement, 'unsigned' => $unsigned]); } /** @@ -1060,9 +1065,7 @@ class Blueprint ->referencesModelColumn($model->getKeyName()); } - $modelTraits = class_uses_recursive($model); - - if (in_array(HasUlids::class, $modelTraits, true)) { + if (isset(class_uses_recursive($model)[HasUlids::class])) { return $this->foreignUlid($column, 26) ->table($model->getTable()) ->referencesModelColumn($model->getKeyName()); @@ -1073,6 +1076,24 @@ class Blueprint ->referencesModelColumn($model->getKeyName()); } + /** + * Create a foreign UUID column for the given model. + * + * @param \Illuminate\Database\Eloquent\Model|string $model + * @param string|null $column + * @return \Illuminate\Database\Schema\ForeignIdColumnDefinition + */ + public function foreignUuidFor($model, $column = null) + { + if (is_string($model)) { + $model = new $model; + } + + return $this->foreignUuid($column ?: $model->getForeignKey()) + ->table($model->getTable()) + ->referencesModelColumn($model->getKeyName()); + } + /** * Create a new float column on the table. * @@ -1082,7 +1103,7 @@ class Blueprint */ public function float($column, $precision = 53) { - return $this->addColumn('float', $column, compact('precision')); + return $this->addColumn('float', $column, ['precision' => $precision]); } /** @@ -1106,7 +1127,7 @@ class Blueprint */ public function decimal($column, $total = 8, $places = 2) { - return $this->addColumn('decimal', $column, compact('total', 'places')); + return $this->addColumn('decimal', $column, ['total' => $total, 'places' => $places]); } /** @@ -1131,7 +1152,7 @@ class Blueprint { $allowed = array_map(fn ($value) => enum_value($value), $allowed); - return $this->addColumn('enum', $column, compact('allowed')); + return $this->addColumn('enum', $column, ['allowed' => $allowed]); } /** @@ -1143,7 +1164,7 @@ class Blueprint */ public function set($column, array $allowed) { - return $this->addColumn('set', $column, compact('allowed')); + return $this->addColumn('set', $column, ['allowed' => $allowed]); } /** @@ -1190,7 +1211,7 @@ class Blueprint { $precision ??= $this->defaultTimePrecision(); - return $this->addColumn('dateTime', $column, compact('precision')); + return $this->addColumn('dateTime', $column, ['precision' => $precision]); } /** @@ -1204,7 +1225,7 @@ class Blueprint { $precision ??= $this->defaultTimePrecision(); - return $this->addColumn('dateTimeTz', $column, compact('precision')); + return $this->addColumn('dateTimeTz', $column, ['precision' => $precision]); } /** @@ -1218,7 +1239,7 @@ class Blueprint { $precision ??= $this->defaultTimePrecision(); - return $this->addColumn('time', $column, compact('precision')); + return $this->addColumn('time', $column, ['precision' => $precision]); } /** @@ -1232,7 +1253,7 @@ class Blueprint { $precision ??= $this->defaultTimePrecision(); - return $this->addColumn('timeTz', $column, compact('precision')); + return $this->addColumn('timeTz', $column, ['precision' => $precision]); } /** @@ -1246,7 +1267,7 @@ class Blueprint { $precision ??= $this->defaultTimePrecision(); - return $this->addColumn('timestamp', $column, compact('precision')); + return $this->addColumn('timestamp', $column, ['precision' => $precision]); } /** @@ -1260,7 +1281,7 @@ class Blueprint { $precision ??= $this->defaultTimePrecision(); - return $this->addColumn('timestampTz', $column, compact('precision')); + return $this->addColumn('timestampTz', $column, ['precision' => $precision]); } /** @@ -1364,7 +1385,7 @@ class Blueprint */ public function softDeletesDatetime($column = 'deleted_at', $precision = null) { - return $this->datetime($column, $precision)->nullable(); + return $this->dateTime($column, $precision)->nullable(); } /** @@ -1388,7 +1409,7 @@ class Blueprint */ public function binary($column, $length = null, $fixed = false) { - return $this->addColumn('binary', $column, compact('length', 'fixed')); + return $this->addColumn('binary', $column, ['length' => $length, 'fixed' => $fixed]); } /** @@ -1403,7 +1424,7 @@ class Blueprint } /** - * Create a new UUID column on the table with a foreign key constraint. + * Create a new UUID foreign ID column on the table. * * @param string $column * @return \Illuminate\Database\Schema\ForeignIdColumnDefinition @@ -1429,7 +1450,7 @@ class Blueprint } /** - * Create a new ULID column on the table with a foreign key constraint. + * Create a new ULID foreign ID column on the table. * * @param string $column * @param int|null $length @@ -1476,7 +1497,7 @@ class Blueprint */ public function geometry($column, $subtype = null, $srid = 0) { - return $this->addColumn('geometry', $column, compact('subtype', 'srid')); + return $this->addColumn('geometry', $column, ['subtype' => $subtype, 'srid' => $srid]); } /** @@ -1489,7 +1510,7 @@ class Blueprint */ public function geography($column, $subtype = null, $srid = 4326) { - return $this->addColumn('geography', $column, compact('subtype', 'srid')); + return $this->addColumn('geography', $column, ['subtype' => $subtype, 'srid' => $srid]); } /** @@ -1501,7 +1522,7 @@ class Blueprint */ public function computed($column, $expression) { - return $this->addColumn('computed', $column, compact('expression')); + return $this->addColumn('computed', $column, ['expression' => $expression]); } /** @@ -1513,7 +1534,7 @@ class Blueprint */ public function vector($column, $dimensions = null) { - $options = $dimensions ? compact('dimensions') : []; + $options = $dimensions ? ['dimensions' => $dimensions] : []; return $this->addColumn('vector', $column, $options); } @@ -1706,7 +1727,7 @@ class Blueprint */ public function rawColumn($column, $definition) { - return $this->addColumn('raw', $column, compact('definition')); + return $this->addColumn('raw', $column, ['definition' => $definition]); } /** @@ -1717,7 +1738,7 @@ class Blueprint */ public function comment($comment) { - return $this->addCommand('tableComment', compact('comment')); + return $this->addCommand('tableComment', ['comment' => $comment]); } /** @@ -1740,7 +1761,7 @@ class Blueprint $index = $index ?: $this->createIndexName($type, $columns); return $this->addCommand( - $type, compact('index', 'columns', 'algorithm', 'operatorClass') + $type, ['index' => $index, 'columns' => $columns, 'algorithm' => $algorithm, 'operatorClass' => $operatorClass] ); } @@ -1799,7 +1820,7 @@ class Blueprint public function addColumn($type, $name, array $parameters = []) { return $this->addColumnDefinition(new ColumnDefinition( - array_merge(compact('type', 'name'), $parameters) + array_merge(['type' => $type, 'name' => $name], $parameters) )); } @@ -1884,7 +1905,7 @@ class Blueprint */ protected function createCommand($name, array $parameters = []) { - return new Fluent(array_merge(compact('name'), $parameters)); + return new Fluent(array_merge(['name' => $name], $parameters)); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/BlueprintState.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/BlueprintState.php index a4ad1149d..3f32cabdb 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/BlueprintState.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/BlueprintState.php @@ -145,7 +145,7 @@ class BlueprintState return $this->foreignKeys; } - /* + /** * Update the blueprint's state. * * @param \Illuminate\Support\Fluent $command diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php index 016401861..e798145f8 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php @@ -251,7 +251,7 @@ class Builder * Get the user-defined types that belong to the connection. * * @param string|string[]|null $schema - * @return list + * @return list */ public function getTypes($schema = null) { @@ -285,13 +285,7 @@ class Builder { $tableColumns = array_map(strtolower(...), $this->getColumnListing($table)); - foreach ($columns as $column) { - if (! in_array(strtolower($column), $tableColumns)) { - return false; - } - } - - return true; + return array_all($columns, fn ($column) => in_array(strtolower($column), $tableColumns)); } /** @@ -363,6 +357,8 @@ class Builder * @param string $column * @param bool $fullDefinition * @return string + * + * @throws \InvalidArgumentException */ public function getColumnType($table, $column, $fullDefinition = false) { @@ -392,7 +388,7 @@ class Builder * Get the columns for a given table. * * @param string $table - * @return list + * @return list */ public function getColumns($table) { @@ -463,11 +459,29 @@ class Builder return false; } + /** + * Determine if the table has a given foreign key. + * + * @param string $table + * @param array|string $foreignKey + * @return bool + */ + public function hasForeignKey($table, $foreignKey) + { + foreach ($this->getForeignKeys($table) as $value) { + if ($value['name'] === $foreignKey || $value['columns'] === $foreignKey) { + return true; + } + } + + return false; + } + /** * Get the foreign keys for a given table. * * @param string $table - * @return array + * @return list, foreign_schema: string|null, foreign_table: string, foreign_columns: list, on_update: string|null, on_delete: string|null}> */ public function getForeignKeys($table) { @@ -660,6 +674,8 @@ class Builder * @param string $name * @param string|null $schema * @return void + * + * @throws \RuntimeException */ public function ensureExtensionExists($name, $schema = null) { @@ -701,7 +717,7 @@ class Builder return call_user_func($this->resolver, $connection, $table, $callback); } - return Container::getInstance()->make(Blueprint::class, compact('connection', 'table', 'callback')); + return Container::getInstance()->make(Blueprint::class, ['connection' => $connection, 'table' => $table, 'callback' => $callback]); } /** @@ -730,6 +746,8 @@ class Builder * @param string $reference * @param string|bool|null $withDefaultSchema * @return array{string|null, string} + * + * @throws \InvalidArgumentException */ public function parseSchemaAndTable($reference, $withDefaultSchema = null) { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/ForeignKeyDefinition.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/ForeignKeyDefinition.php index cd1789656..310c3728d 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/ForeignKeyDefinition.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/ForeignKeyDefinition.php @@ -9,8 +9,8 @@ use Illuminate\Support\Fluent; * @method ForeignKeyDefinition initiallyImmediate(bool $value = true) Set the default time to check the constraint (PostgreSQL) * @method ForeignKeyDefinition lock(('none'|'shared'|'default'|'exclusive') $value) Specify the DDL lock mode for the foreign key operation (MySQL) * @method ForeignKeyDefinition on(string $table) Specify the referenced table - * @method ForeignKeyDefinition onDelete(('cascade'|'restrict'|'set null'|'no action') $action) Add an ON DELETE action - * @method ForeignKeyDefinition onUpdate(('cascade'|'restrict'|'set null'|'no action') $action) Add an ON UPDATE action + * @method ForeignKeyDefinition onDelete(string $action) Add an ON DELETE action + * @method ForeignKeyDefinition onUpdate(string $action) Add an ON UPDATE action * @method ForeignKeyDefinition references(string|string[] $columns) Specify the referenced column(s) */ class ForeignKeyDefinition extends Fluent diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php index 56471c476..8b6bf6b12 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php @@ -67,6 +67,8 @@ abstract class Grammar extends BaseGrammar * Compile the query to determine the schemas. * * @return string + * + * @throws \RuntimeException */ public function compileSchemas() { @@ -284,6 +286,8 @@ abstract class Grammar extends BaseGrammar * @param \Illuminate\Database\Schema\Blueprint $blueprint * @param \Illuminate\Support\Fluent $command * @return string + * + * @throws \RuntimeException */ public function compileDropForeign(Blueprint $blueprint, Fluent $command) { @@ -434,7 +438,7 @@ abstract class Grammar extends BaseGrammar }); } - /* + /** * Determine if a command with a given name exists on the blueprint. * * @param \Illuminate\Database\Schema\Blueprint $blueprint diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/MariaDbGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/MariaDbGrammar.php index ec15f50c7..8c34233e4 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/MariaDbGrammar.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/MariaDbGrammar.php @@ -52,6 +52,26 @@ class MariaDbGrammar extends MySqlGrammar ); } + /** + * Compile a vector index key command. + * + * @param \Illuminate\Database\Schema\Blueprint $blueprint + * @param \Illuminate\Support\Fluent $command + * @return string + */ + public function compileVectorIndex(Blueprint $blueprint, Fluent $command) + { + return sprintf( + 'alter table %s add %s %s(%s) %s%s', + $this->wrapTable($blueprint), + 'vector index', + $this->wrap($command->index), + $this->columnize($command->columns), + $command->operatorClass ?? '', + $command->lock ? ', lock='.$command->lock : '' + ); + } + /** * Wrap the given JSON selector. * diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php index 11190cbd2..18004d196 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php @@ -1271,6 +1271,8 @@ class PostgresGrammar extends Grammar * @param \Illuminate\Database\Schema\Blueprint $blueprint * @param \Illuminate\Support\Fluent $column * @return string|null + * + * @throws \LogicException */ protected function modifyVirtualAs(Blueprint $blueprint, Fluent $column) { @@ -1295,6 +1297,8 @@ class PostgresGrammar extends Grammar * @param \Illuminate\Database\Schema\Blueprint $blueprint * @param \Illuminate\Support\Fluent $column * @return string|null + * + * @throws \LogicException */ protected function modifyStoredAs(Blueprint $blueprint, Fluent $column) { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php index 8908836dd..c472266c4 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php @@ -598,6 +598,8 @@ class SQLiteGrammar extends Grammar * @param \Illuminate\Database\Schema\Blueprint $blueprint * @param \Illuminate\Support\Fluent $command * @return array + * + * @throws \RuntimeException */ public function compileDropForeign(Blueprint $blueprint, Fluent $command) { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/MariaDbSchemaState.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/MariaDbSchemaState.php index af56d8ead..25c1d3c61 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/MariaDbSchemaState.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/MariaDbSchemaState.php @@ -2,6 +2,8 @@ namespace Illuminate\Database\Schema; +use Symfony\Component\Process\Exception\ProcessFailedException; + class MariaDbSchemaState extends MySqlSchemaState { /** @@ -36,4 +38,29 @@ class MariaDbSchemaState extends MySqlSchemaState return $command.' "${:LARAVEL_LOAD_DATABASE}"'; } + + /** + * Detect the MariaDB client version. + * + * @return array{version: string, isMariaDb: bool} + */ + protected function detectClientVersion(): array + { + // Minimum version of MariaDB that supports the mariadb command... + $version = '10.5.2'; + + try { + $versionOutput = $this->makeProcess('mariadb --version')->mustRun()->getOutput(); + + if (preg_match('/(\d+\.\d+\.\d+)/', $versionOutput, $matches)) { + $version = $matches[1]; + } + } catch (ProcessFailedException) { + } + + return [ + 'isMariaDb' => true, + 'version' => $version, + ]; + } } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php index 667641122..383b81e1c 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php @@ -49,7 +49,7 @@ class MySqlBuilder extends Builder /** * Get the names of current schemas for the connection. * - * @return string[]|null + * @return string[] */ public function getCurrentSchemaListing() { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlSchemaState.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlSchemaState.php index 87454086f..a053913cd 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlSchemaState.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlSchemaState.php @@ -173,6 +173,8 @@ class MySqlSchemaState extends SchemaState * @param array $variables * @param int $depth * @return \Symfony\Component\Process\Process + * + * @throws \Throwable */ protected function executeDumpProcess(Process $process, $output, array $variables, int $depth = 0) { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/PostgresSchemaState.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/PostgresSchemaState.php index 25da812e6..ae0e6ff09 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/PostgresSchemaState.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/PostgresSchemaState.php @@ -82,14 +82,25 @@ class PostgresSchemaState extends SchemaState */ protected function baseVariables(array $config) { + if ($this->connection->hasDirectConnection()) { + $config = $this->connection->getDirectPdoConfig(); + } + $config['host'] ??= ''; - return [ + $variables = [ 'LARAVEL_LOAD_HOST' => is_array($config['host']) ? $config['host'][0] : $config['host'], 'LARAVEL_LOAD_PORT' => $config['port'] ?? '', 'LARAVEL_LOAD_USER' => $config['username'], 'PGPASSWORD' => $config['password'], - 'LARAVEL_LOAD_DATABASE' => $config['database'], ]; + + if (! empty($config['sslmode'])) { + $variables['PGSSLMODE'] = $config['sslmode']; + } + + $variables['LARAVEL_LOAD_DATABASE'] = $config['database']; + + return $variables; } } diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php index 040f1623f..145238ce8 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php @@ -55,7 +55,7 @@ class SQLiteBuilder extends Builder return $this->connection->getPostProcessor()->processTables( $this->connection->selectFromWriteConnection( - $this->grammar->compileTables($schema, $withSize) + $this->grammar->compileTables($schema) ) ); } @@ -164,7 +164,7 @@ class SQLiteBuilder extends Builder /** * Get the names of current schemas for the connection. * - * @return string[]|null + * @return string[] */ public function getCurrentSchemaListing() { diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/SchemaState.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/SchemaState.php index be792138f..665e1a5d9 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/SchemaState.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/SchemaState.php @@ -25,7 +25,7 @@ abstract class SchemaState /** * The name of the application's migration table. * - * @var string + * @var string|null */ protected $migrationTable = 'migrations'; @@ -100,7 +100,8 @@ abstract class SchemaState */ public function hasMigrationTable(): bool { - return $this->connection->getSchemaBuilder()->hasTable($this->migrationTable); + return $this->migrationTable && + $this->connection->getSchemaBuilder()->hasTable($this->migrationTable); } /** @@ -116,10 +117,10 @@ abstract class SchemaState /** * Specify the name of the application's migration table. * - * @param string $table + * @param string|null $table * @return $this */ - public function withMigrationTable(string $table) + public function withMigrationTable(?string $table) { $this->migrationTable = $table; diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/SqliteSchemaState.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/SqliteSchemaState.php index 3d954a39d..276894f4a 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/SqliteSchemaState.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Schema/SqliteSchemaState.php @@ -46,7 +46,7 @@ class SqliteSchemaState extends SchemaState ])); $migrations = (new Collection(preg_split("/\r\n|\n|\r/", $process->getOutput()))) - ->filter(fn ($line) => preg_match('/^\s*(--|INSERT\s)/iu', $line) === 1 && strlen($line) > 0) + ->filter(fn ($line) => preg_match('/^\s*(--|INSERT\s)/iu', $line) === 1 && $line !== '') ->all(); $this->files->append($path, implode(PHP_EOL, $migrations).PHP_EOL); diff --git a/vendor/laravel/framework/src/Illuminate/Database/Seeder.php b/vendor/laravel/framework/src/Illuminate/Database/Seeder.php index cac50afb5..8031ce07e 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/Seeder.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Seeder.php @@ -184,9 +184,7 @@ abstract class Seeder ? $this->container->call([$this, 'run'], $parameters) : $this->run(...$parameters); - $uses = array_flip(class_uses_recursive(static::class)); - - if (isset($uses[WithoutModelEvents::class])) { + if (isset(class_uses_recursive(static::class)[WithoutModelEvents::class])) { $callback = $this->withoutModelEvents($callback); } diff --git a/vendor/laravel/framework/src/Illuminate/Database/SqlServerConnection.php b/vendor/laravel/framework/src/Illuminate/Database/SqlServerConnection.php index 7b3d0c5f0..583ddc352 100755 --- a/vendor/laravel/framework/src/Illuminate/Database/SqlServerConnection.php +++ b/vendor/laravel/framework/src/Illuminate/Database/SqlServerConnection.php @@ -25,9 +25,11 @@ class SqlServerConnection extends Connection /** * Execute a Closure within a transaction. * - * @param \Closure $callback + * @template TReturn + * + * @param (\Closure(static): TReturn) $callback * @param int $attempts - * @return mixed + * @return TReturn * * @throws \Throwable */ @@ -81,9 +83,28 @@ class SqlServerConnection extends Connection * @param \Exception $exception * @return bool */ - protected function isUniqueConstraintError(Exception $exception) + protected function isUniqueConstraintError(Exception $exception): bool { - return (bool) preg_match('#Cannot insert duplicate key row in object#i', $exception->getMessage()); + return (bool) preg_match('#Cannot insert duplicate key(?: row)? in object#i', $exception->getMessage()); + } + + /** + * Extract the index that caused a unique constraint violation. + * + * @param Exception $exception + * @return array{index: string|null, columns: list} + */ + protected function parseUniqueConstraintViolation(Exception $exception): array + { + $index = null; + + if (preg_match('#with unique index \'([^\']+)\'#i', $message = $exception->getMessage(), $matches)) { + $index = $matches[1]; + } elseif (preg_match('#Violation of [A-Z ]+ constraint \'([^\']+)\'#i', $message, $matches)) { + $index = $matches[1]; + } + + return ['columns' => [], 'index' => $index]; } /** diff --git a/vendor/laravel/framework/src/Illuminate/Database/UniqueConstraintViolationException.php b/vendor/laravel/framework/src/Illuminate/Database/UniqueConstraintViolationException.php index 13b705b77..6ea79edb3 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/UniqueConstraintViolationException.php +++ b/vendor/laravel/framework/src/Illuminate/Database/UniqueConstraintViolationException.php @@ -4,4 +4,43 @@ namespace Illuminate\Database; class UniqueConstraintViolationException extends QueryException { + /** + * The unique index which prevented the query. + * + * @var string|null + */ + public ?string $index = null; + + /** + * The columns which caused the violation. + * + * @var list + */ + public array $columns = []; + + /** + * Set the unique index which caused the violation. + * + * @param string|null $index + * @return $this + */ + public function setIndex(?string $index): self + { + $this->index = $index; + + return $this; + } + + /** + * Set the columns that caused the violation. + * + * @param list $columns + * @return $this + */ + public function setColumns(array $columns): self + { + $this->columns = $columns; + + return $this; + } } diff --git a/vendor/laravel/framework/src/Illuminate/Database/composer.json b/vendor/laravel/framework/src/Illuminate/Database/composer.json index c22793ee0..1cb85aead 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Database/composer.json @@ -2,54 +2,59 @@ "name": "illuminate/database", "description": "The Illuminate Database package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "keywords": ["laravel", "database", "sql", "orm"], + "keywords": [ + "laravel", + "database", + "sql", + "orm" + ], "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "ext-pdo": "*", - "brick/math": "^0.11|^0.12|^0.13|^0.14", - "illuminate/collections": "^12.0", - "illuminate/container": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/support": "^12.0", - "laravel/serializable-closure": "^1.3|^2.0", - "symfony/polyfill-php83": "^1.33", - "symfony/polyfill-php84": "^1.34", - "symfony/polyfill-php85": "^1.34" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "ext-pdo": "*", + "brick/math": "^0.14.2 || ^0.15 || ^0.16 || ^0.17 || ^0.18", + "illuminate/collections": "^13.0", + "illuminate/container": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/support": "^13.0", + "laravel/serializable-closure": "^2.0.10", + "symfony/polyfill-php84": "^1.36", + "symfony/polyfill-php85": "^1.36", + "symfony/polyfill-php86": "^1.36" + }, + "suggest": { + "ext-filter": "Required to use the Postgres database driver.", + "fakerphp/faker": "Required to use the eloquent factory builder (^1.24).", + "illuminate/console": "Required to use the database commands (^13.0).", + "illuminate/events": "Required to use the observers with Eloquent (^13.0).", + "illuminate/filesystem": "Required to use the migrations (^13.0).", + "illuminate/http": "Required to convert Eloquent models to API resources (^13.0).", + "illuminate/pagination": "Required to paginate the result set (^13.0).", + "symfony/finder": "Required to use Eloquent model factories (^7.4 || ^8.0)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Database\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "suggest": { - "ext-filter": "Required to use the Postgres database driver.", - "fakerphp/faker": "Required to use the eloquent factory builder (^1.24).", - "illuminate/console": "Required to use the database commands (^12.0).", - "illuminate/events": "Required to use the observers with Eloquent (^12.0).", - "illuminate/filesystem": "Required to use the migrations (^12.0).", - "illuminate/http": "Required to convert Eloquent models to API resources (^12.0).", - "illuminate/pagination": "Required to paginate the result set (^12.0).", - "symfony/finder": "Required to use Eloquent model factories (^7.2)." - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php b/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php index 3771c5b1b..4c7d3b92e 100755 --- a/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php +++ b/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php @@ -121,7 +121,7 @@ class Encrypter implements EncrypterContract, StringEncrypter ? '' // For AEAD-algorithms, the tag / MAC is returned by openssl_encrypt... : $this->hash($iv, $value, $this->key); - $json = json_encode(compact('iv', 'value', 'mac', 'tag'), JSON_UNESCAPED_SLASHES); + $json = json_encode(['iv' => $iv, 'value' => $value, 'mac' => $mac, 'tag' => $tag], JSON_UNESCAPED_SLASHES); if (json_last_error() !== JSON_ERROR_NONE) { throw new EncryptException('Could not encrypt the data.'); @@ -162,16 +162,19 @@ class Encrypter implements EncrypterContract, StringEncrypter $tag = empty($payload['tag']) ? null : base64_decode($payload['tag']) ); - $foundValidMac = false; + [$keys, $validKey] = [$this->getAllKeys(), null]; // Here we will decrypt the value. If we are able to successfully decrypt it // we will then unserialize it and return it out to the caller. If we are // unable to decrypt this value we will throw out an exception message. - foreach ($this->getAllKeys() as $key) { - if ( - $this->shouldValidateMac() && - ! ($foundValidMac = $foundValidMac || $this->validMacForKey($payload, $key)) - ) { + foreach ($keys as $key) { + if ($this->shouldValidateMac()) { + $validMac = $this->validMacForKey($payload, $key); + + if ($validMac && $validKey === null) { + $validKey = $key; + } + continue; } @@ -184,10 +187,16 @@ class Encrypter implements EncrypterContract, StringEncrypter } } - if ($this->shouldValidateMac() && ! $foundValidMac) { + if ($this->shouldValidateMac() && $validKey === null) { throw new DecryptException('The MAC is invalid.'); } + if ($this->shouldValidateMac()) { + $decrypted = \openssl_decrypt( + $payload['value'], strtolower($this->cipher), $validKey, 0, $iv, $tag ?? '' + ); + } + if (($decrypted ?? false) === false) { throw new DecryptException('Could not decrypt the data.'); } diff --git a/vendor/laravel/framework/src/Illuminate/Encryption/composer.json b/vendor/laravel/framework/src/Illuminate/Encryption/composer.json index 1c430e9c3..3684a097d 100644 --- a/vendor/laravel/framework/src/Illuminate/Encryption/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Encryption/composer.json @@ -2,37 +2,37 @@ "name": "illuminate/encryption", "description": "The Illuminate Encryption package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, "require": { - "php": "^8.2", + "php": "^8.3", "ext-hash": "*", "ext-mbstring": "*", "ext-openssl": "*", - "illuminate/contracts": "^12.0", - "illuminate/support": "^12.0" + "illuminate/contracts": "^13.0", + "illuminate/support": "^13.0" }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Encryption\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Events/CallQueuedListener.php b/vendor/laravel/framework/src/Illuminate/Events/CallQueuedListener.php index e224776e3..aa6d53c36 100644 --- a/vendor/laravel/framework/src/Illuminate/Events/CallQueuedListener.php +++ b/vendor/laravel/framework/src/Illuminate/Events/CallQueuedListener.php @@ -83,6 +83,13 @@ class CallQueuedListener implements ShouldQueue */ public $shouldBeEncrypted = false; + /** + * Indicates if the job should be deleted when models are missing. + * + * @var bool + */ + public $deleteWhenMissingModels; + /** * Indicates if the listener should be unique. */ @@ -191,7 +198,7 @@ class CallQueuedListener implements ShouldQueue */ protected function setJobInstanceIfNecessary(Job $job, $instance) { - if (in_array(InteractsWithQueue::class, class_uses_recursive($instance))) { + if (isset(class_uses_recursive($instance)[InteractsWithQueue::class])) { $instance->setJob($job); } diff --git a/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php b/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php index 3a0d2893b..01fc1abaa 100755 --- a/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php +++ b/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php @@ -18,10 +18,22 @@ use Illuminate\Contracts\Queue\ShouldBeUnique; use Illuminate\Contracts\Queue\ShouldBeUniqueUntilProcessing; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Queue\ShouldQueueAfterCommit; +use Illuminate\Queue\Attributes\Backoff; +use Illuminate\Queue\Attributes\Connection; +use Illuminate\Queue\Attributes\Delay; +use Illuminate\Queue\Attributes\DeleteWhenMissingModels; +use Illuminate\Queue\Attributes\FailOnTimeout; +use Illuminate\Queue\Attributes\MaxExceptions; +use Illuminate\Queue\Attributes\Queue as QueueAttribute; +use Illuminate\Queue\Attributes\Timeout; +use Illuminate\Queue\Attributes\Tries; +use Illuminate\Queue\Attributes\UniqueFor; use Illuminate\Support\Arr; use Illuminate\Support\Collection; +use Illuminate\Support\Queue\Concerns\ResolvesQueueRoutes; use Illuminate\Support\Str; use Illuminate\Support\Traits\Macroable; +use Illuminate\Support\Traits\ReadsClassAttributes; use Illuminate\Support\Traits\ReflectsClosures; use ReflectionClass; @@ -29,7 +41,7 @@ use function Illuminate\Support\enum_value; class Dispatcher implements DispatcherContract { - use Macroable, ReflectsClosures; + use Macroable, ReadsClassAttributes, ReflectsClosures, ResolvesQueueRoutes; /** * The IoC container instance. @@ -96,8 +108,6 @@ class Dispatcher implements DispatcherContract /** * Create a new event dispatcher instance. - * - * @param \Illuminate\Contracts\Container\Container|null $container */ public function __construct(?ContainerContract $container = null) { @@ -357,7 +367,6 @@ class Dispatcher implements DispatcherContract /** * Determine if the payload has a broadcastable event. * - * @param array $payload * @return bool */ protected function shouldBroadcast(array $payload) @@ -434,7 +443,6 @@ class Dispatcher implements DispatcherContract * Add the listeners for the event's interfaces to the given array. * * @param string $eventName - * @param array $listeners * @return array */ protected function addInterfaceListeners($eventName, array $listeners = []) @@ -453,7 +461,6 @@ class Dispatcher implements DispatcherContract /** * Prepare the listeners for a given event. * - * @param string $eventName * @return \Closure[] */ protected function prepareListeners(string $eventName) @@ -659,17 +666,25 @@ class Dispatcher implements DispatcherContract return; } - $connection = $this->resolveQueue()->connection(method_exists($listener, 'viaConnection') + $connectionName = method_exists($listener, 'viaConnection') ? (isset($arguments[0]) ? $listener->viaConnection($arguments[0]) : $listener->viaConnection()) - : $listener->connection ?? null); + : $this->getAttributeValue($listener, Connection::class, 'connection'); + + $connection = $this->resolveQueue()->connection( + $connectionName ?? $this->resolveConnectionFromQueueRoute($listener) ?? null + ); $queue = method_exists($listener, 'viaQueue') ? (isset($arguments[0]) ? $listener->viaQueue($arguments[0]) : $listener->viaQueue()) - : $listener->queue ?? null; + : $this->getAttributeValue($listener, QueueAttribute::class, 'queue'); $delay = method_exists($listener, 'withDelay') ? (isset($arguments[0]) ? $listener->withDelay($arguments[0]) : $listener->withDelay()) - : $listener->delay ?? null; + : $this->getAttributeValue($listener, Delay::class, 'delay'); + + if (is_null($queue)) { + $queue = $this->resolveQueueFromQueueRoute($listener) ?? null; + } is_null($delay) ? $connection->pushOn(enum_value($queue), $job) @@ -685,6 +700,8 @@ class Dispatcher implements DispatcherContract * @param string $method * @param array $arguments * @return array{TListener, mixed} + * + * @throws \ReflectionException */ protected function createListenerAndJob($class, $method, $arguments) { @@ -713,13 +730,14 @@ class Dispatcher implements DispatcherContract $job->afterCommit = property_exists($listener, 'afterCommit') ? $listener->afterCommit : null; } - $job->backoff = method_exists($listener, 'backoff') ? $listener->backoff(...$data) : ($listener->backoff ?? null); - $job->maxExceptions = $listener->maxExceptions ?? null; + $job->backoff = method_exists($listener, 'backoff') ? $listener->backoff(...$data) : $this->getAttributeValue($listener, Backoff::class, 'backoff'); + $job->maxExceptions = $this->getAttributeValue($listener, MaxExceptions::class, 'maxExceptions'); $job->retryUntil = method_exists($listener, 'retryUntil') ? $listener->retryUntil(...$data) : null; $job->shouldBeEncrypted = $listener instanceof ShouldBeEncrypted; - $job->timeout = $listener->timeout ?? null; - $job->failOnTimeout = $listener->failOnTimeout ?? false; - $job->tries = method_exists($listener, 'tries') ? $listener->tries(...$data) : ($listener->tries ?? null); + $job->timeout = $this->getAttributeValue($listener, Timeout::class, 'timeout'); + $job->failOnTimeout = $this->getAttributeValue($listener, FailOnTimeout::class, 'failOnTimeout') ?? false; + $job->deleteWhenMissingModels = $this->getAttributeValue($listener, DeleteWhenMissingModels::class, 'deleteWhenMissingModels') ?? false; + $job->tries = method_exists($listener, 'tries') ? $listener->tries(...$data) : $this->getAttributeValue($listener, Tries::class, 'tries'); $job->messageGroup = method_exists($listener, 'messageGroup') ? $listener->messageGroup(...$data) : ($listener->messageGroup ?? null); $job->withDeduplicator(method_exists($listener, 'deduplicator') ? $listener->deduplicator(...$data) @@ -741,7 +759,7 @@ class Dispatcher implements DispatcherContract $job->uniqueFor = method_exists($listener, 'uniqueFor') ? $listener->uniqueFor(...$data) - : ($listener->uniqueFor ?? 0); + : ($this->getAttributeValue($listener, UniqueFor::class, 'uniqueFor') ?? 0); } }); } @@ -866,7 +884,6 @@ class Dispatcher implements DispatcherContract /** * Determine if the given event should be deferred. * - * @param string $event * @return bool */ protected function shouldDeferEvent(string $event) @@ -877,7 +894,7 @@ class Dispatcher implements DispatcherContract /** * Gets the raw, unprepared listeners. * - * @return array + * @return array */ public function getRawListeners() { diff --git a/vendor/laravel/framework/src/Illuminate/Events/composer.json b/vendor/laravel/framework/src/Illuminate/Events/composer.json index 801895fd8..544e32e32 100755 --- a/vendor/laravel/framework/src/Illuminate/Events/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Events/composer.json @@ -2,26 +2,27 @@ "name": "illuminate/events", "description": "The Illuminate Events package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "illuminate/bus": "^12.0", - "illuminate/collections": "^12.0", - "illuminate/container": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/support": "^12.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "illuminate/bus": "^13.0", + "illuminate/collections": "^13.0", + "illuminate/container": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/support": "^13.0" + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Events\\": "" @@ -30,13 +31,12 @@ "functions.php" ] }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php b/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php index 57533ba4b..9d2e39642 100644 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php +++ b/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php @@ -6,6 +6,7 @@ use Aws\S3\S3Client; use Closure; use Illuminate\Contracts\Filesystem\Factory as FactoryContract; use Illuminate\Support\Arr; +use Illuminate\Support\RebindsCallbacksToSelf; use InvalidArgumentException; use League\Flysystem\AwsS3V3\AwsS3V3Adapter as S3Adapter; use League\Flysystem\AwsS3V3\PortableVisibilityConverter as AwsS3PortableVisibilityConverter; @@ -20,6 +21,8 @@ use League\Flysystem\PhpseclibV3\SftpConnectionProvider; use League\Flysystem\ReadOnly\ReadOnlyFilesystemAdapter; use League\Flysystem\UnixVisibility\PortableVisibilityConverter; use League\Flysystem\Visibility; +use ReflectionException; +use RuntimeException; use function Illuminate\Support\enum_value; @@ -29,6 +32,8 @@ use function Illuminate\Support\enum_value; */ class FilesystemManager implements FactoryContract { + use RebindsCallbacksToSelf; + /** * The application instance. * @@ -63,7 +68,7 @@ class FilesystemManager implements FactoryContract /** * Get a filesystem instance. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return \Illuminate\Contracts\Filesystem\Filesystem */ public function drive($name = null) @@ -432,10 +437,19 @@ class FilesystemManager implements FactoryContract * * @param string $driver * @param \Closure $callback + * + * @param-closure-this $this $callback + * * @return $this */ public function extend($driver, Closure $callback) { + try { + $callback = $this->bindCallbackToSelf($callback) ?? throw new RuntimeException('Unable to bind custom driver callback'); + } catch (ReflectionException $e) { + throw new RuntimeException('Unable to bind custom driver callback', previous: $e); + } + $this->customCreators[$driver] = $callback; return $this; diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php index 241538f00..304703cc0 100644 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php +++ b/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php @@ -6,6 +6,7 @@ use Illuminate\Contracts\Foundation\CachesRoutes; use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; use Illuminate\Support\ServiceProvider; +use InvalidArgumentException; class FilesystemServiceProvider extends ServiceProvider { @@ -76,6 +77,8 @@ class FilesystemServiceProvider extends ServiceProvider * Register protected file serving. * * @return void + * + * @throws \InvalidArgumentException */ protected function serveFiles() { @@ -83,16 +86,26 @@ class FilesystemServiceProvider extends ServiceProvider return; } + $served = []; + foreach ($this->app['config']['filesystems.disks'] ?? [] as $disk => $config) { if (! $this->shouldServeFiles($config)) { continue; } - $this->app->booted(function ($app) use ($disk, $config) { + $this->app->booted(function ($app) use ($disk, $config, &$served) { $uri = isset($config['url']) ? rtrim(parse_url($config['url'])['path'], '/') : '/storage'; + if (isset($served[$uri])) { + throw new InvalidArgumentException( + "The [{$disk}] disk conflicts with the [{$served[$uri]}] disk at [{$uri}]. Each served disk must have a unique URL." + ); + } + + $served[$uri] = $disk; + $isProduction = $app->isProduction(); Route::get($uri.'/{path}', function (Request $request, string $path) use ($disk, $config, $isProduction) { diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/LocalFilesystemAdapter.php b/vendor/laravel/framework/src/Illuminate/Filesystem/LocalFilesystemAdapter.php index dc9aa2d6c..dcfb30bc6 100644 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/LocalFilesystemAdapter.php +++ b/vendor/laravel/framework/src/Illuminate/Filesystem/LocalFilesystemAdapter.php @@ -62,6 +62,8 @@ class LocalFilesystemAdapter extends FilesystemAdapter * @param \DateTimeInterface $expiration * @param array $options * @return string + * + * @throws \RuntimeException */ public function temporaryUrl($path, $expiration, array $options = []) { @@ -92,6 +94,8 @@ class LocalFilesystemAdapter extends FilesystemAdapter * @param \DateTimeInterface $expiration * @param array $options * @return array + * + * @throws \RuntimeException */ public function temporaryUploadUrl($path, $expiration, array $options = []) { diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/ReceiveFile.php b/vendor/laravel/framework/src/Illuminate/Filesystem/ReceiveFile.php index bc488d1eb..8f7616ef2 100644 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/ReceiveFile.php +++ b/vendor/laravel/framework/src/Illuminate/Filesystem/ReceiveFile.php @@ -34,7 +34,7 @@ class ReceiveFile Storage::disk($this->disk)->put($path, $request->getContent()); return response()->noContent(); - } catch (PathTraversalDetected $e) { + } catch (PathTraversalDetected) { abort(404); } } diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/ServeFile.php b/vendor/laravel/framework/src/Illuminate/Filesystem/ServeFile.php index e8732cb14..4e0c653c9 100644 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/ServeFile.php +++ b/vendor/laravel/framework/src/Illuminate/Filesystem/ServeFile.php @@ -44,7 +44,7 @@ class ServeFile } } ); - } catch (PathTraversalDetected $e) { + } catch (PathTraversalDetected) { abort(404); } } diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/composer.json b/vendor/laravel/framework/src/Illuminate/Filesystem/composer.json index f5fa95db7..57a6abddf 100644 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Filesystem/composer.json @@ -2,25 +2,39 @@ "name": "illuminate/filesystem", "description": "The Illuminate Filesystem package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "illuminate/collections": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/support": "^12.0", - "symfony/finder": "^7.2.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "illuminate/collections": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/support": "^13.0", + "symfony/finder": "^7.4.0 || ^8.0.0" + }, + "suggest": { + "ext-fileinfo": "Required to use the Filesystem class.", + "ext-ftp": "Required to use the Flysystem FTP driver.", + "ext-hash": "Required to use the Filesystem class.", + "illuminate/http": "Required for handling uploaded files (^13.0).", + "league/flysystem": "Required to use the Flysystem local driver (^3.25.1).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.25.1).", + "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.25.1).", + "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.25.1).", + "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^7.4 || ^8.0).", + "symfony/mime": "Required to enable support for guessing extensions (^7.4 || ^8.0)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Filesystem\\": "" @@ -29,26 +43,12 @@ "functions.php" ] }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "suggest": { - "ext-fileinfo": "Required to use the Filesystem class.", - "ext-ftp": "Required to use the Flysystem FTP driver.", - "ext-hash": "Required to use the Filesystem class.", - "illuminate/http": "Required for handling uploaded files (^12.0).", - "league/flysystem": "Required to use the Flysystem local driver (^3.25.1).", - "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.25.1).", - "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.25.1).", - "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.25.1).", - "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).", - "symfony/mime": "Required to enable support for guessing extensions (^7.2)." - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Application.php b/vendor/laravel/framework/src/Illuminate/Foundation/Application.php index 432f3b4ef..62ad103b1 100755 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Application.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Application.php @@ -45,7 +45,7 @@ class Application extends Container implements ApplicationContract, CachesConfig * * @var string */ - const VERSION = '12.63.0'; + const VERSION = '13.19.0'; /** * The base path for the Laravel installation. @@ -748,7 +748,7 @@ class Application extends Container implements ApplicationContract, CachesConfig */ public function environment(...$environments) { - if (count($environments) > 0) { + if ($environments !== []) { $patterns = is_array($environments[0]) ? $environments[0] : $environments; return Str::is($patterns, $this['env']); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/ArrayMaintenanceMode.php b/vendor/laravel/framework/src/Illuminate/Foundation/ArrayMaintenanceMode.php new file mode 100644 index 000000000..b9f9065a4 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Foundation/ArrayMaintenanceMode.php @@ -0,0 +1,65 @@ +active = true; + $this->payload = $payload; + } + + /** + * Take the application out of maintenance. + * + * @return void + */ + public function deactivate(): void + { + $this->active = false; + $this->payload = []; + } + + /** + * Determine if the application is currently down for maintenance. + * + * @return bool + */ + public function active(): bool + { + return $this->active; + } + + /** + * Get the data array which was provided when the application was placed into maintenance. + * + * @return array + */ + public function data(): array + { + return $this->payload; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php index 3f7929106..3608d962d 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php @@ -125,6 +125,7 @@ class HandleExceptions protected function shouldIgnoreDeprecationErrors() { return ! class_exists(LogManager::class) + || is_null(static::$app) || ! static::$app->hasBeenBootstrapped() || (static::$app->runningUnitTests() && ! Env::get('LOG_DEPRECATIONS_WHILE_TESTING')); } diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php index 1dffdb06b..462565d5e 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php @@ -2,16 +2,22 @@ namespace Illuminate\Foundation\Bus; +use Illuminate\Bus\DebounceLock; use Illuminate\Bus\UniqueLock; use Illuminate\Container\Container; use Illuminate\Contracts\Bus\Dispatcher; use Illuminate\Contracts\Cache\Repository as Cache; +use Illuminate\Contracts\Queue\PreparesForDispatch; use Illuminate\Contracts\Queue\ShouldBeUnique; use Illuminate\Foundation\Queue\InteractsWithUniqueJobs; +use Illuminate\Queue\Attributes\DebounceFor; +use Illuminate\Queue\Attributes\ReadsQueueAttributes; +use Illuminate\Support\Traits\Conditionable; +use LogicException; class PendingDispatch { - use InteractsWithUniqueJobs; + use Conditionable, InteractsWithUniqueJobs, ReadsQueueAttributes; /** * The job. @@ -201,6 +207,10 @@ class PendingDispatch */ protected function shouldDispatch() { + if ($this->job instanceof PreparesForDispatch && $this->job->prepareForDispatch() === false) { + return false; + } + if (! $this->job instanceof ShouldBeUnique) { return true; } @@ -209,6 +219,38 @@ class PendingDispatch ->acquire($this->job); } + /** + * Acquire a debounce lock for the job and set its delay. + * + * @return void + * + * @throws LogicException + */ + protected function acquireDebounceLock() + { + $debounceFor = $this->getAttributeValue($this->job, DebounceFor::class, 'debounceFor'); + + if ($debounceFor === null) { + return; + } + + $lock = new DebounceLock(Container::getInstance()->make(Cache::class)); + + if ($this->job instanceof ShouldBeUnique) { + throw new LogicException('A debounced job cannot also implement ShouldBeUnique.'); + } + + $result = $lock->acquire( + $this->job, $debounceFor + ); + + $this->job->debounceOwner = $result['owner']; + + if (is_null($this->job->delay)) { + $this->job->delay = $result['maxWaitExceeded'] ? 0 : $debounceFor; + } + } + /** * Get the underlying job instance. * @@ -246,7 +288,11 @@ class PendingDispatch $this->removeUniqueJobInformationFromContext($this->job); return; - } elseif ($this->afterResponse) { + } + + $this->acquireDebounceLock(); + + if ($this->afterResponse) { app(Dispatcher::class)->dispatchAfterResponse($this->job); } else { app(Dispatcher::class)->dispatch($this->job); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Cloud.php b/vendor/laravel/framework/src/Illuminate/Foundation/Cloud.php index c9a668b10..5bad6167a 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Cloud.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Cloud.php @@ -59,18 +59,26 @@ class Cloud $disks = json_decode($_SERVER['LARAVEL_CLOUD_DISK_CONFIG'], true); foreach ($disks as $disk) { - $app['config']->set('filesystems.disks.'.$disk['disk'], [ - 'driver' => 's3', - 'key' => $disk['access_key_id'], - 'secret' => $disk['access_key_secret'], - 'bucket' => $disk['bucket'], - 'url' => $disk['url'], - 'endpoint' => $disk['endpoint'], - 'region' => 'auto', - 'use_path_style_endpoint' => false, - 'throw' => false, - 'report' => false, - ]); + if ($disk['scoped_disk'] ?? false) { + $app['config']->set('filesystems.disks.'.$disk['disk'], [ + 'driver' => 'scoped', + 'disk' => $disk['scoped_disk'], + 'prefix' => $disk['prefix'] ?? '', + ]); + } else { + $app['config']->set('filesystems.disks.'.$disk['disk'], [ + 'driver' => 's3', + 'key' => $disk['access_key_id'], + 'secret' => $disk['access_key_secret'], + 'bucket' => $disk['bucket'], + 'url' => $disk['url'], + 'endpoint' => $disk['endpoint'], + 'region' => 'auto', + 'use_path_style_endpoint' => false, + 'throw' => false, + 'report' => false, + ]); + } if ($disk['is_default'] ?? false) { $app['config']->set('filesystems.default', $disk['disk']); @@ -114,7 +122,7 @@ class Cloud } Migrator::resolveConnectionsUsing(function ($resolver, $connection) use ($app) { - $connection = $connection ?? $app['config']->get('database.default'); + $connection ??= $app['config']->get('database.default'); return $resolver->connection( $connection === 'pgsql' ? 'pgsql-unpooled' : $connection @@ -124,6 +132,8 @@ class Cloud /** * Configure managed queues if applicable. + * + * @throws \JsonException */ public static function configureManagedQueues(Application $app): void { @@ -176,7 +186,7 @@ class Cloud 'includeStacktraces' => true, ]); - $app['config']->set('logging.channels.laravel-cloud-socket', [ + $channel = [ 'driver' => 'monolog', 'level' => $_ENV['LOG_LEVEL'] ?? $_SERVER['LOG_LEVEL'] ?? 'debug', 'handler' => SocketHandler::class, @@ -188,7 +198,13 @@ class Cloud 'connectionString' => Cloud::socket(), 'persistent' => true, ], - ]); + ]; + + $app['config']->set('logging.channels.laravel-cloud-socket', $channel); + + if (! $app['config']->has('logging.channels.cloud')) { + $app['config']->set('logging.channels.cloud', $channel); + } } /** diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/CloudJob.php b/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/CloudJob.php index 31e082946..2046a4cfd 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/CloudJob.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/CloudJob.php @@ -16,6 +16,7 @@ class CloudJob extends SqsJob * @param string $connectionName * @param string $queue * @param callable(string, int|null): void $reporter + * @param array $overflowStorage */ public function __construct( Container $container, @@ -24,8 +25,9 @@ class CloudJob extends SqsJob $connectionName, $queue, protected $reporter, + array $overflowStorage = [], ) { - parent::__construct($container, $sqs, $job, $connectionName, $queue); + parent::__construct($container, $sqs, $job, $connectionName, $queue, $overflowStorage); } /** @@ -39,6 +41,9 @@ class CloudJob extends SqsJob Job::delete(); $this->report('processed'); + + // Only reached once the agent has accepted the outcome (report() throws otherwise)... + $this->deleteOverflowPayload(); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/Events.php b/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/Events.php index 2d90ccad5..ec865f99e 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/Events.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/Events.php @@ -55,8 +55,6 @@ class Events /** * Write the payload to the socket. - * - * @param list> $payloads */ protected function write(string $payload): void { @@ -101,6 +99,8 @@ class Events * Format the payload. * * @param list> $payloads + * + * @throws \JsonException */ protected function format(array $payloads): string { diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/FailedJobProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/FailedJobProvider.php index aa4133da9..c28cd9d41 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/FailedJobProvider.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/FailedJobProvider.php @@ -103,6 +103,8 @@ class FailedJobProvider implements FailedJobProviderInterface, CountableFailedJo * * @param mixed $id * @return object|null + * + * @throws \JsonException */ public function find($id) { diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/JsonFormatter.php b/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/JsonFormatter.php new file mode 100644 index 000000000..c56898a90 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/JsonFormatter.php @@ -0,0 +1,30 @@ +bound('request')) { + $requestId = $app->make('request')->header('Cloud-Request-ID'); + + if ($requestId !== null) { + $normalized['cloud_request_id'] = $requestId; + } + } + + return $normalized; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/Queue.php b/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/Queue.php index 332f5a886..a1b95fff5 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/Queue.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Cloud/Queue.php @@ -241,6 +241,7 @@ class Queue implements QueueContract, ClearableQueue fn (string $status, ?int $delay) => $this->reportJobStatusToAgent( $messageId, $receiptHandle, $status, $delay ), + $this->config['connection']['overflow'] ?? [], ); } diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Configuration/ApplicationBuilder.php b/vendor/laravel/framework/src/Illuminate/Foundation/Configuration/ApplicationBuilder.php index 8d7bfa1c2..d93ed8f81 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Configuration/ApplicationBuilder.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Configuration/ApplicationBuilder.php @@ -13,6 +13,8 @@ use Illuminate\Foundation\Events\DiagnosingHealth; use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance; use Illuminate\Foundation\Support\Providers\EventServiceProvider as AppEventServiceProvider; use Illuminate\Foundation\Support\Providers\RouteServiceProvider as AppRouteServiceProvider; +use Illuminate\Http\Middleware\PrefersJsonResponses; +use Illuminate\Http\Request; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Broadcast; use Illuminate\Support\Facades\Event; @@ -145,6 +147,7 @@ class ApplicationBuilder * @param string|null $commands * @param string|null $channels * @param string|null $pages + * @param string|null $health * @param string $apiPrefix * @param callable|null $then * @return $this @@ -194,6 +197,8 @@ class ApplicationBuilder * @param string $apiPrefix * @param callable|null $then * @return \Closure + * + * @throws \Throwable */ protected function buildRoutingCallback(array|string|null $web, array|string|null $api, @@ -216,7 +221,7 @@ class ApplicationBuilder } if (is_string($health)) { - Route::get($health, function () { + Route::get($health, function (Request $request) { $exception = null; try { @@ -231,9 +236,17 @@ class ApplicationBuilder $exception = $e->getMessage(); } + $status = $exception ? 500 : 200; + + if ($request->expectsJson()) { + return response()->json([ + 'status' => $exception ? 'down' : 'up', + ], $status); + } + return response(View::file(__DIR__.'/../resources/health-up.blade.php', [ 'exception' => $exception, - ]), status: $exception ? 500 : 200); + ]), status: $status); }); } @@ -361,7 +374,13 @@ class ApplicationBuilder */ public function withSchedule(callable $callback) { - Artisan::starting(fn () => $callback($this->app->make(Schedule::class))); + Artisan::starting(function () use ($callback) { + $this->app->afterResolving(Schedule::class, fn ($schedule) => $callback($schedule)); + + if ($this->app->resolved(Schedule::class)) { + $callback($this->app->make(Schedule::class)); + } + }); return $this; } @@ -442,6 +461,25 @@ class ApplicationBuilder }); } + /** + * Globally prefer JSON responses when the incoming "Accept" header is broad. + * + * @param bool $prefer + * @return $this + */ + public function prefersJsonResponses(bool $prefer = true) + { + if (! $prefer) { + return $this; + } + + $this->app->booted(function () { + $this->app->make(HttpKernel::class)->prependMiddleware(PrefersJsonResponses::class); + }); + + return $this; + } + /** * Register a callback to be invoked when the application's service providers are registered. * diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Configuration/Exceptions.php b/vendor/laravel/framework/src/Illuminate/Foundation/Configuration/Exceptions.php index aa92d688a..cc463c3da 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Configuration/Exceptions.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Configuration/Exceptions.php @@ -150,6 +150,21 @@ class Exceptions return $this; } + /** + * Indicate that the given exception type should stop job retries. + * + * @param array|string $class + * @return $this + */ + public function dontRetry(array|string $class) + { + foreach (Arr::wrap($class) as $exceptionClass) { + $this->handler->dontRetry($exceptionClass); + } + + return $this; + } + /** * Register a callback to determine if an exception should not be reported. * @@ -163,6 +178,19 @@ class Exceptions return $this; } + /** + * Register a callback to determine if an exception should stop job retries. + * + * @param (\Closure(\Throwable): bool) $dontRetryWhen + * @return $this + */ + public function dontRetryWhen(Closure $dontRetryWhen) + { + $this->handler->dontRetryWhen($dontRetryWhen); + + return $this; + } + /** * Do not report duplicate exceptions. * diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Configuration/Middleware.php b/vendor/laravel/framework/src/Illuminate/Foundation/Configuration/Middleware.php index a458bf88e..c4d90bb98 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Configuration/Middleware.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Configuration/Middleware.php @@ -8,9 +8,9 @@ use Illuminate\Auth\Middleware\Authenticate; use Illuminate\Auth\Middleware\RedirectIfAuthenticated; use Illuminate\Cookie\Middleware\EncryptCookies; use Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull; +use Illuminate\Foundation\Http\Middleware\PreventRequestForgery; use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance; use Illuminate\Foundation\Http\Middleware\TrimStrings; -use Illuminate\Foundation\Http\Middleware\ValidateCsrfToken; use Illuminate\Http\Middleware\TrustHosts; use Illuminate\Http\Middleware\TrustProxies; use Illuminate\Routing\Middleware\ValidateSignature; @@ -487,7 +487,7 @@ class Middleware \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, - \Illuminate\Foundation\Http\Middleware\ValidateCsrfToken::class, + \Illuminate\Foundation\Http\Middleware\PreventRequestForgery::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, $this->authenticatedSessions ? 'auth.session' : null, ])), @@ -533,11 +533,15 @@ class Middleware /** * Configure where guests are redirected by the "auth" middleware. * - * @param callable|string $redirect + * @param callable|string|null $redirect * @return $this */ - public function redirectGuestsTo(callable|string $redirect) + public function redirectGuestsTo(callable|string|null $redirect) { + if (is_null($redirect)) { + $redirect = fn () => null; + } + return $this->redirectTo(guests: $redirect); } @@ -590,17 +594,37 @@ class Middleware return $this; } + /** + * Configure the request forgery prevention middleware. + * + * @param array $except + * @param bool $originOnly + * @param bool $allowSameSite + * @return $this + */ + public function preventRequestForgery(array $except = [], bool $originOnly = false, bool $allowSameSite = false) + { + if (! empty($except)) { + PreventRequestForgery::except($except); + } + + PreventRequestForgery::useOriginOnly($originOnly); + PreventRequestForgery::allowSameSite($allowSameSite); + + return $this; + } + /** * Configure the CSRF token validation middleware. * + * @deprecated Use preventRequestForgery() instead. + * * @param array $except * @return $this */ public function validateCsrfTokens(array $except = []) { - ValidateCsrfToken::except($except); - - return $this; + return $this->preventRequestForgery($except); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/BroadcastingInstallCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/BroadcastingInstallCommand.php index 4c32db5d8..33bc8eec3 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/BroadcastingInstallCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Console/BroadcastingInstallCommand.php @@ -407,12 +407,12 @@ class BroadcastingInstallCommand extends Command if (file_exists(base_path('pnpm-lock.yaml'))) { $commands = [ - 'pnpm add --save-dev laravel-echo pusher-js', + 'pnpm add --save-dev laravel-echo pusher-js --ignore-scripts', 'pnpm run build', ]; } elseif (file_exists(base_path('yarn.lock'))) { $commands = [ - 'yarn add --dev laravel-echo pusher-js', + 'yarn add --dev laravel-echo pusher-js --ignore-scripts', 'yarn run build', ]; } elseif (file_exists(base_path('bun.lock')) || file_exists(base_path('bun.lockb'))) { @@ -422,7 +422,7 @@ class BroadcastingInstallCommand extends Command ]; } else { $commands = [ - 'npm install --save-dev laravel-echo pusher-js', + 'npm install --save-dev laravel-echo pusher-js --ignore-scripts', 'npm run build', ]; } diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ChannelListCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ChannelListCommand.php index 7063f1add..a57aa1e02 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ChannelListCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ChannelListCommand.php @@ -78,7 +78,7 @@ class ChannelListCommand extends Command return mb_strlen($channelName); }); - $terminalWidth = $this->getTerminalWidth(); + $terminalWidth = self::getTerminalWidth(); $channelCount = $this->determineChannelCountOutput($channels, $terminalWidth); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/DevCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/DevCommand.php new file mode 100644 index 000000000..f269c7560 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Console/DevCommand.php @@ -0,0 +1,90 @@ +isProhibited()) { + return self::FAILURE; + } + + $devCommands = DevCommands::commands(); + + $commands = array_column($devCommands, 'command'); + $colors = array_column($devCommands, 'color'); + $names = array_column($devCommands, 'name'); + + $longestName = max(array_map(strlen(...), $names)); + + $columns = getenv('COLUMNS'); + + putenv('COLUMNS='.max(terminal()->width() - $longestName - 4, 1)); + + $this->line(''); + + foreach ($devCommands as $devCommand) { + $this->line( + sprintf( + '[%s]%s%s', + $devCommand['color'], + $devCommand['name'], + str_repeat(' ', ($longestName - strlen($devCommand['name'])) + 1), + $devCommand['command'], + ), + ); + } + + $this->line(''); + + $command = $packageManager->getExecCommand(sprintf( + 'concurrently -c "%s" "%s" --names=%s --kill-others-on-fail', + implode(',', $colors), + implode('" "', $commands), + implode(',', $names) + )); + + if (extension_loaded('pcntl')) { + pcntl_exec('/usr/bin/env', ['sh', '-c', $command]); + } + + passthru($command, $exitCode); + + $columns === false ? putenv('COLUMNS') : putenv("COLUMNS={$columns}"); + + return $exitCode; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/DevListCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/DevListCommand.php new file mode 100644 index 000000000..d94fea793 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Console/DevListCommand.php @@ -0,0 +1,197 @@ + array_merge($command, [ + 'source' => $this->formatSource($command['source']), + ]), $this->filterCommands(DevCommands::commands())); + + if ($this->option('json') || ! $this->input->isInteractive()) { + $this->output->writeln(json_encode($devCommands)); + + return empty($devCommands) && $this->isFiltering() ? self::FAILURE : self::SUCCESS; + } + + $this->newLine(); + + if (empty($devCommands)) { + if ($this->isFiltering()) { + $this->components->error("Your application doesn't have any dev processes matching the given criteria."); + + return self::FAILURE; + } + + $this->components->warn("Your application doesn't have any dev processes."); + + return self::SUCCESS; + } + + $names = array_column($devCommands, 'name'); + $longestName = max(array_map(strlen(...), $names)); + + $columns = Prompt::terminal()->cols(); + + foreach ($devCommands as $devCommand) { + $label = str_pad($devCommand['name'], $longestName); + $command = $devCommand['command']; + $source = ' '.$devCommand['source']; + $textWidth = mb_strwidth($label) + mb_strwidth($command) + mb_strwidth($source); + $spaceBuffer = 6; + + $dots = str_repeat('.', max(0, $columns - $textWidth - $spaceBuffer)); + + // Truncate source if it doesn't fit, but ensure command is always fully visible. + if ($textWidth + $spaceBuffer > $columns) { + $availableSourceWidth = max( + 0, + $columns - mb_strwidth($label) - mb_strwidth($command) - mb_strwidth($dots) - $spaceBuffer + ); + + $source = str($source)->limit($availableSourceWidth - 1, '…')->toString(); + } + + $this->line( + sprintf( + ' %s %s %s%s', + $devCommand['color'], + $label, + $command, + $dots, + $source, + ), + ); + } + + $countText = 'Showing ['.count($devCommands).'] dev '.(count($devCommands) === 1 ? 'command' : 'commands').' '; + + $countSpaces = max(0, $columns - mb_strwidth($countText) - 1); + $spaces = str_repeat(' ', $countSpaces); + + $this->newLine(); + $this->line($spaces.''.$countText.''); + $this->newLine(); + + return self::SUCCESS; + } + + /** + * Determine if the given command is registered by a vendor package. + * + * @param array $command + * @return bool + */ + protected function isVendorCommand(array $command): bool + { + return $command['priority'] === DevCommand::PRIORITY_VENDOR; + } + + /** + * Determine if any filtering options are active. + * + * @return bool + */ + protected function isFiltering(): bool + { + return $this->option('filter') || $this->option('except-vendor') || $this->option('only-vendor'); + } + + /** + * Filter the given commands based on the provided options. + * + * @param array $commands + * @return array + */ + protected function filterCommands(array $commands): array + { + if ($this->option('filter')) { + $commands = array_filter( + $commands, + fn ($command) => str_contains($command['name'], $this->option('filter')) || str_contains($command['command'], $this->option('filter')), + ); + } + + if ($this->option('except-vendor')) { + $commands = array_filter( + $commands, + fn ($command) => ! $this->isVendorCommand($command), + ); + } + + if ($this->option('only-vendor')) { + $commands = array_filter( + $commands, + $this->isVendorCommand(...), + ); + } + + return array_values($commands); + } + + /** + * Format the source information for display. + * + * @param array{'file': string, 'line': int, 'class'?: string, 'function'?: string} $source + * @return string + */ + protected function formatSource($source): string + { + $file = $source['file'] ?? null; + $line = $source['line'] ?? null; + $class = $source['class'] ?? null; + $function = $source['function'] ?? null; + + if ($class) { + return "{$class}@{$function}"; + } + + return implode(':', array_filter([$file, $line])); + } + + /** + * Get the console command options. + * + * @return array + */ + protected function getOptions() + { + return [ + ['json', null, InputOption::VALUE_NONE, 'Output the dev process list as JSON'], + ['filter', null, InputOption::VALUE_REQUIRED, 'Filter the dev processes by name or command'], + ['except-vendor', null, InputOption::VALUE_NONE, 'Do not display dev processes registered by vendor packages'], + ['only-vendor', null, InputOption::VALUE_NONE, 'Only display dev processes registered by vendor packages'], + ]; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/DocsCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/DocsCommand.php index 9edca71de..70f59f155 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/DocsCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Console/DocsCommand.php @@ -82,7 +82,7 @@ class DocsCommand extends Command * * @return void */ - protected function configure() + protected function configure(): void { parent::configure(); @@ -97,6 +97,8 @@ class DocsCommand extends Command * @param \Illuminate\Http\Client\Factory $http * @param \Illuminate\Contracts\Cache\Repository $cache * @return int + * + * @throws \Symfony\Component\Process\Exception\ProcessFailedException */ public function handle(Http $http, Cache $cache) { @@ -368,6 +370,8 @@ class DocsCommand extends Command * * @param string $url * @return void + * + * @throws \Symfony\Component\Process\Exception\ProcessFailedException */ protected function openViaBuiltInStrategy($url) { diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php index d9b1dd5fa..efd3bc70c 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php @@ -67,6 +67,8 @@ class DownCommand extends Command $this->components->info('You may bypass maintenance mode via ['.config('app.url')."/{$downFilePayload['secret']}]."); } } catch (Exception $e) { + report($e); + $this->components->error(sprintf( 'Failed to enter maintenance mode: %s.', $e->getMessage(), diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php index 467fd2acd..74f5362e2 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php @@ -4,13 +4,14 @@ namespace Illuminate\Foundation\Console; use Illuminate\Console\Command; use Illuminate\Console\ConfirmableTrait; +use Illuminate\Console\Prohibitable; use Illuminate\Encryption\Encrypter; use Symfony\Component\Console\Attribute\AsCommand; #[AsCommand(name: 'key:generate')] class KeyGenerateCommand extends Command { - use ConfirmableTrait; + use ConfirmableTrait, Prohibitable; /** * The name and signature of the console command. @@ -35,6 +36,10 @@ class KeyGenerateCommand extends Command */ public function handle() { + if ($this->isProhibited()) { + return; + } + $key = $this->generateRandomKey(); if ($this->option('show')) { diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php index 0f7d08ff5..fa86f4a32 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php @@ -142,7 +142,7 @@ class RouteListCommand extends Command return $this->filterRoute([ 'domain' => $route->domain(), 'method' => implode('|', $route->methods()), - 'uri' => $route->uri(), + 'uri' => $this->resolveUri($route), 'name' => $route->getName(), 'action' => ltrim($route->getActionName(), '\\'), 'middleware' => $this->getMiddleware($route), @@ -201,6 +201,23 @@ class RouteListCommand extends Command ); } + /** + * Get the URI for the given route, including any binding fields. + * + * @param \Illuminate\Routing\Route $route + * @return string + */ + protected function resolveUri(Route $route) + { + $uri = $route->uri(); + + foreach ($route->bindingFields() as $parameter => $field) { + $uri = str_replace("{{$parameter}}", "{{$parameter}:{$field}}", $uri); + } + + return $uri; + } + /** * Get the middleware for the route. * @@ -219,6 +236,8 @@ class RouteListCommand extends Command * * @param \Illuminate\Routing\Route $route * @return string|null + * + * @throws \ReflectionException */ protected function getClosurePath(Route $route) { @@ -382,7 +401,7 @@ class RouteListCommand extends Command $maxMethod = mb_strlen($routes->max('method')); - $terminalWidth = $this->getTerminalWidth(); + $terminalWidth = self::getTerminalWidth(); $routeCount = $this->determineRouteCountOutput($routes, $terminalWidth); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php index 125a52cf1..7033275e2 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php @@ -95,7 +95,7 @@ class ServeCommand extends Command /** {@inheritdoc} */ #[\Override] - protected function initialize(InputInterface $input, OutputInterface $output) + protected function initialize(InputInterface $input, OutputInterface $output): void { $this->phpServerWorkers = transform((int) env('PHP_CLI_SERVER_WORKERS', 1), function (int $workers) { if ($workers < 2) { @@ -133,7 +133,7 @@ class ServeCommand extends Command $environmentLastModified = $hasEnvironment ? filemtime($environmentFile) - : now()->addDays(30)->getTimestamp(); + : Carbon::now()->addDays(30)->getTimestamp(); $process = $this->startProcess($hasEnvironment); @@ -185,7 +185,7 @@ class ServeCommand extends Command return [$key => $value]; } - return in_array($key, static::$passthroughVariables) ? [$key => $value] : [$key => false]; + return $this->shouldPassThroughEnvironmentVariable($key) ? [$key => $value] : [$key => false]; })->merge(['PHP_CLI_SERVER_WORKERS' => $this->phpServerWorkers])->all()); $this->trap(fn () => [SIGTERM, SIGINT, SIGHUP, SIGUSR1, SIGUSR2, SIGQUIT], function ($signal) use ($process) { @@ -283,6 +283,21 @@ class ServeCommand extends Command ($this->input->getOption('tries') > $this->portOffset); } + /** + * Determine if the environment variable should be passed to the PHP server process. + * + * @param string $key + * @return bool + */ + protected function shouldPassThroughEnvironmentVariable($key) + { + if (PHP_OS_FAMILY === 'Windows') { + return in_array(strtoupper($key), array_map(strtoupper(...), static::$passthroughVariables), true); + } + + return in_array($key, static::$passthroughVariables, true); + } + /** * Returns a "callable" to handle the process output. * @@ -408,6 +423,8 @@ class ServeCommand extends Command * * @param string $line * @return int + * + * @throws \InvalidArgumentException */ public static function getRequestPortFromLine($line) { diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php index c1b0e55c0..8bc9b54b2 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php @@ -48,6 +48,8 @@ class UpCommand extends Command $this->components->info('Application is now live.'); } catch (Exception $e) { + report($e); + $this->components->error(sprintf( 'Failed to disable maintenance mode: %s.', $e->getMessage(), diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php index ac47419e5..cbb4f1b77 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php @@ -6,6 +6,7 @@ use Illuminate\Console\Command; use Illuminate\Filesystem\Filesystem; use Illuminate\Foundation\Events\VendorTagPublished; use Illuminate\Support\Arr; +use Illuminate\Support\Carbon; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Str; use League\Flysystem\Filesystem as Flysystem; @@ -94,7 +95,7 @@ class VendorPublishCommand extends Command */ public function handle() { - $this->publishedAt = now(); + $this->publishedAt = Carbon::now(); $this->determineWhatShouldBePublished(); @@ -140,11 +141,11 @@ class VendorPublishCommand extends Command ) : search( label: "Which provider or tag's files would you like to publish?", - placeholder: 'Search...', options: fn ($search) => array_values(array_filter( $choices, fn ($choice) => str_contains(strtolower($choice), strtolower($search)) )), + placeholder: 'Search...', scroll: 15, ); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/console.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/console.stub index 055b7d837..d5dee5e33 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/console.stub +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/console.stub @@ -2,24 +2,14 @@ namespace {{ namespace }}; +use Illuminate\Console\Attributes\Description; +use Illuminate\Console\Attributes\Signature; use Illuminate\Console\Command; +#[Signature('{{ command }}')] +#[Description('Command description')] class {{ class }} extends Command { - /** - * The name and signature of the console command. - * - * @var string - */ - protected $signature = '{{ command }}'; - - /** - * The console command description. - * - * @var string - */ - protected $description = 'Command description'; - /** * Execute the console command. */ diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/maintenance-mode.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/maintenance-mode.stub index a90b8cde8..f163be0b7 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/maintenance-mode.stub +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/maintenance-mode.stub @@ -8,6 +8,21 @@ if (! file_exists($down = __DIR__.'/down')) { // Decode the "down" file's JSON... $data = json_decode(file_get_contents($down), true); +$expectsJson = (function () { + $acceptable = array_map('trim', explode(',', $_SERVER['HTTP_ACCEPT'] ?? '')); + + $firstAcceptable = strtolower(strtok($acceptable[0] ?? '', ';')); + + if (str_contains($firstAcceptable, '/json') || str_contains($firstAcceptable, '+json')) { + return true; + } + + return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && + strcasecmp($_SERVER['HTTP_X_REQUESTED_WITH'], 'XMLHttpRequest') === 0 && + (! isset($_SERVER['HTTP_X_PJAX']) || strcasecmp($_SERVER['HTTP_X_PJAX'], 'true') !== 0) && + in_array($firstAcceptable, ['', '*/*', '*'], true); +})(); + // Allow framework to handle request if no prerendered template... if (! isset($data['template'])) { return; @@ -54,6 +69,11 @@ if (isset($_COOKIE['laravel_maintenance']) && isset($data['secret'])) { } } +// Allow framework to handle requests expecting a JSON response... +if ($expectsJson) { + return; +} + // Redirect to the proper path if necessary... if (isset($data['redirect']) && $_SERVER['REQUEST_URI'] !== $data['redirect']) { http_response_code(302); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/model.pivot.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/model.pivot.stub index 35a674ad2..6c3bfc487 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/model.pivot.stub +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/model.pivot.stub @@ -2,9 +2,10 @@ namespace {{ namespace }}; +{{ factoryImport }} use Illuminate\Database\Eloquent\Relations\Pivot; class {{ class }} extends Pivot { - // + {{ factory }} } diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/DevCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/DevCommand.php new file mode 100644 index 000000000..5cd4567a0 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Foundation/DevCommand.php @@ -0,0 +1,166 @@ +name ??= self::nameFromCommand($command); + } + + /** + * Derive the name from a command string. + * + * @param string $command + * @return string + */ + public static function nameFromCommand(string $command): string + { + return strstr($command, ' ', true) ?: $command; + } + + /** + * Get the command name. + * + * @return string + */ + public function name(): string + { + return $this->name; + } + + /** + * Get the command priority. + * + * @return int + */ + public function priority(): int + { + return $this->priority; + } + + /** + * Set the command color. + * + * @param string $color + * @return self + */ + public function color(string $color): self + { + $this->color = $color; + + return $this; + } + + /** + * Set the command color to blue. + * + * @return self + */ + public function blue(): self + { + return $this->color(DevCommandColor::BLUE->value); + } + + /** + * Set the command color to purple. + * + * @return self + */ + public function purple(): self + { + return $this->color(DevCommandColor::PURPLE->value); + } + + /** + * Set the command color to pink. + * + * @return self + */ + public function pink(): self + { + return $this->color(DevCommandColor::PINK->value); + } + + /** + * Set the command color to orange. + * + * @return self + */ + public function orange(): self + { + return $this->color(DevCommandColor::ORANGE->value); + } + + /** + * Set the command color to green. + * + * @return self + */ + public function green(): self + { + return $this->color(DevCommandColor::GREEN->value); + } + + /** + * Set the command color to yellow. + * + * @return self + */ + public function yellow(): self + { + return $this->color(DevCommandColor::YELLOW->value); + } + + /** + * Get the command as an array. + * + * @return array{command: string, name: string, color: string|null, source: array{'file': string, 'line': int, 'class'?: string, 'function'?: string}, priority: int} + */ + public function toArray(): array + { + return [ + 'command' => $this->command, + 'name' => $this->name, + 'color' => $this->color, + 'source' => $this->source, + 'priority' => $this->priority, + ]; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/DevCommandColor.php b/vendor/laravel/framework/src/Illuminate/Foundation/DevCommandColor.php new file mode 100644 index 000000000..7a67b3ad0 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Foundation/DevCommandColor.php @@ -0,0 +1,13 @@ + + */ + protected static $only = []; + + /** + * The names of commands that should be excluded when running the "dev" command. + * + * @var array + */ + protected static $except = []; + + /** + * Register the default development commands. + * + * @return void + */ + public static function registerDefaults() + { + if (! app()->runningInConsole()) { + return; + } + + self::artisan('serve --host=localhost', 'server'); + self::artisan('queue:listen --tries=1 --timeout=0', 'queue'); + self::artisan('pail --timeout=0', 'logs'); + self::node('dev', 'vite'); + } + + /** + * Register a development command. + * + * @param string $command + * @param string|null $name + * @return DevCommand + */ + public static function register(string $command, ?string $name = null): DevCommand + { + if (! app()->runningInConsole()) { + return new DevCommand('', [], ''); + } + + $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); + $source = self::resolveSource($trace); + $priority = self::resolvePriority($trace); + + $devCommand = new DevCommand($command, $source, $name, $priority); + + $existing = self::$commands[$devCommand->name()] ?? null; + + if (! $existing || $devCommand->priority() >= $existing->priority()) { + self::$commands[$devCommand->name()] = $devCommand; + } + + return $devCommand; + } + + /** + * Registers an Artisan command, automatically prefixing it with "php artisan". + * + * @param string $command + * @param string|null $name + * @return DevCommand + */ + public static function artisan(string $command, ?string $name = null): DevCommand + { + return self::register("php artisan {$command}", $name ?? DevCommand::nameFromCommand($command)); + } + + /** + * Registers a Node command, automatically prefixing it with the detected package manager's run command. + * + * @param string $command + * @param string|null $name + * @return DevCommand + */ + public static function node(string $command, ?string $name = null): DevCommand + { + return self::register(self::getPackageManager()->getRunCommand($command), $name ?? DevCommand::nameFromCommand($command)); + } + + /** + * Registers a Node command, automatically prefixing it with the detected package manager's exec command. + * + * @param string $command + * @param string|null $name + * @return DevCommand + */ + public static function nodeExec(string $command, ?string $name = null): DevCommand + { + return self::register(self::getPackageManager()->getExecCommand($command), $name ?? DevCommand::nameFromCommand($command)); + } + + /** + * Get the registered development commands. + * + * @return array{'name': string, 'command': string, 'source': array{'file': string, 'line': int, 'class'?: string, 'function'?: string}, 'color': string}[] + */ + public static function commands(): array + { + $commands = []; + + foreach (self::$commands as $command) { + $cmd = $command->toArray(); + + if ((! empty(self::$only) && ! in_array($cmd['name'], self::$only)) || in_array($cmd['name'], self::$except)) { + continue; + } + + $commands[] = $cmd; + } + + return self::fillInEmptyColors($commands); + } + + /** + * Fill in any empty colors in the given commands array, ensuring each command has a color assigned. + * + * @param array $commands + * @return array + */ + protected static function fillInEmptyColors(array $commands): array + { + foreach ($commands as &$command) { + if (empty($command['color'])) { + $command['color'] = self::getColor($commands); + } + } + + return $commands; + } + + /** + * Get a color for a command, ensuring that colors are reused only after all available colors have been used at least once. + * + * @param array $commands + * @return string + */ + protected static function getColor(array $commands): string + { + $available = array_values(array_diff( + $colors = array_map(fn ($color) => $color->value, DevCommandColor::cases()), + $existing = array_values(array_filter(array_column($commands, 'color'))) + )); + + return $available[0] ?? $colors[self::$colorCount++ % count($colors)]; + } + + /** + * Resolve the first external caller frame from a debug backtrace. + * + * @param array $trace + * @return array{'file': string, 'line': int, 'class'?: string, 'function'?: string} + */ + protected static function resolveSource(array $trace): array + { + foreach ($trace as $frame) { + if (($frame['file'] ?? null) === __FILE__) { + continue; + } + + if (($frame['class'] ?? null) === self::class) { + continue; + } + + return $frame; + } + + return []; + } + + /** + * Determine the registration priority from a debug backtrace. + * + * @param array $trace + * @return int + */ + protected static function resolvePriority(array $trace): int + { + foreach ($trace as $frame) { + $file = $frame['file'] ?? null; + $class = $frame['class'] ?? null; + + if ($file === __FILE__) { + continue; + } + + if ($class === self::class && ($frame['function'] ?? null) === 'registerDefaults') { + return DevCommand::PRIORITY_DEFAULT; + } + + if (! $file && $class) { + $file = (new ReflectionClass($class))->getFileName(); + } + + if (! $file || $file === base_path('artisan')) { + continue; + } + + if (! str_contains($file, base_path('vendor'))) { + return DevCommand::PRIORITY_USERLAND; + } + } + + return DevCommand::PRIORITY_VENDOR; + } + + /** + * Set the commands that should be included when running the "dev" command. + * + * @param string ...$names + * @return void + */ + public static function only(...$names): void + { + self::$only = $names; + } + + /** + * Set the commands that should be excluded when running the "dev" command. + * + * @param string ...$names + * @return void + */ + public static function except(...$names): void + { + self::$except = $names; + } + + /** + * Resolve and return the NodePackageManager instance. + * + * @return NodePackageManager + */ + protected static function getPackageManager(): NodePackageManager + { + return self::$packageManager ??= new NodePackageManager(); + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Events/DiscoverEvents.php b/vendor/laravel/framework/src/Illuminate/Foundation/Events/DiscoverEvents.php index 35f244837..3601d2a28 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Events/DiscoverEvents.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Events/DiscoverEvents.php @@ -2,6 +2,7 @@ namespace Illuminate\Foundation\Events; +use Illuminate\Contracts\Events\ShouldBeDiscovered; use Illuminate\Support\Arr; use Illuminate\Support\Collection; use Illuminate\Support\Reflector; @@ -77,6 +78,11 @@ class DiscoverEvents continue; } + if ($listener->implementsInterface(ShouldBeDiscovered::class) && + $listener->getName()::shouldBeDiscovered() === false) { + continue; + } + foreach ($listener->getMethods(ReflectionMethod::IS_PUBLIC) as $method) { if ((! Str::is('handle*', $method->name) && ! Str::is('__invoke', $method->name)) || ! isset($method->getParameters()[0])) { diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php index 57dfc30f4..6f5930a31 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php @@ -17,11 +17,11 @@ use Illuminate\Contracts\Debug\ShouldntReport; use Illuminate\Contracts\Foundation\ExceptionRenderer; use Illuminate\Contracts\Support\Responsable; use Illuminate\Database\Eloquent\ModelNotFoundException; -use Illuminate\Database\MultipleRecordsFoundException; use Illuminate\Database\RecordNotFoundException; use Illuminate\Database\RecordsNotFoundException; use Illuminate\Foundation\Exceptions\Renderer\Renderer; use Illuminate\Http\Exceptions\HttpResponseException; +use Illuminate\Http\Exceptions\OriginMismatchException; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Response; use Illuminate\Routing\Exceptions\BackedEnumCaseNotFoundException; @@ -78,6 +78,20 @@ class Handler implements ExceptionHandlerContract */ protected $dontReportCallbacks = []; + /** + * A list of the exception types that should stop job retries. + * + * @var array> + */ + protected $dontRetry = []; + + /** + * The callbacks that inspect exceptions to determine if they should stop job retries. + * + * @var array + */ + protected $dontRetryCallbacks = []; + /** * The callbacks that should be used during reporting. * @@ -106,6 +120,13 @@ class Handler implements ExceptionHandlerContract */ protected $contextCallbacks = []; + /** + * The exception currently being reported. + * + * @var \Throwable|null + */ + protected ?Throwable $currentlyReporting = null; + /** * The callbacks that should be used during rendering. * @@ -153,7 +174,7 @@ class Handler implements ExceptionHandlerContract HttpException::class, HttpResponseException::class, ModelNotFoundException::class, - MultipleRecordsFoundException::class, + OriginMismatchException::class, RecordNotFoundException::class, RecordsNotFoundException::class, RequestExceptionInterface::class, @@ -317,6 +338,59 @@ class Handler implements ExceptionHandlerContract return $this; } + /** + * Indicate that the given exception type should stop job retries. + * + * @param array|string $exceptions + * @return $this + */ + public function dontRetry(array|string $exceptions) + { + $exceptions = Arr::wrap($exceptions); + + $this->dontRetry = array_values(array_unique(array_merge($this->dontRetry, $exceptions))); + + return $this; + } + + /** + * Register a callback to determine if an exception should stop job retries. + * + * @param (callable(\Throwable): bool) $dontRetryWhen + * @return $this + */ + public function dontRetryWhen(callable $dontRetryWhen) + { + if (! $dontRetryWhen instanceof Closure) { + $dontRetryWhen = Closure::fromCallable($dontRetryWhen); + } + + $this->dontRetryCallbacks[] = $dontRetryWhen; + + return $this; + } + + /** + * Determine if the exception should stop job retries. + * + * @param \Throwable $e + * @return bool + */ + public function shouldStopRetries(Throwable $e) + { + if (! is_null(Arr::first($this->dontRetry, fn ($type) => $e instanceof $type))) { + return true; + } + + foreach ($this->dontRetryCallbacks as $dontRetryCallback) { + if ($dontRetryCallback($e) === true) { + return true; + } + } + + return false; + } + /** * Indicate that the given attributes should never be flashed to the session on validation errors. * @@ -396,11 +470,27 @@ class Handler implements ExceptionHandlerContract $level = $this->mapLogLevel($e); - $context = $this->buildExceptionContext($e); + $originallyReporting = $this->currentlyReporting; - method_exists($logger, $level) - ? $logger->{$level}($e->getMessage(), $context) - : $logger->log($level, $e->getMessage(), $context); + $this->currentlyReporting = $e; + + try { + $context = $this->buildExceptionContext($e); + + method_exists($logger, $level) + ? $logger->{$level}($e->getMessage(), $context) + : $logger->log($level, $e->getMessage(), $context); + } finally { + $this->currentlyReporting = $originallyReporting; + } + } + + /** + * Determine if a given exception is being reported. + */ + public function isReporting(Throwable $e): bool + { + return $this->currentlyReporting === $e; } /** @@ -532,12 +622,22 @@ class Handler implements ExceptionHandlerContract protected function buildExceptionContext(Throwable $e) { return array_merge( - $this->exceptionContext($e), + $this->buildContextForException($e), $this->context(), ['exception' => $e] ); } + /** + * Creates the context for an exception. + * + * @return array + */ + public function buildContextForException(Throwable $e) + { + return $this->exceptionContext($e); + } + /** * Get the default exception context variables for logging. * @@ -670,6 +770,7 @@ class Handler implements ExceptionHandlerContract $e->status(), $e->response()?->message() ?: (Response::$statusTexts[$e->status()] ?? 'Whoops, looks like something went wrong.'), $e ), $e instanceof AuthorizationException && ! $e->hasStatus() => new AccessDeniedHttpException($e->getMessage(), $e), + $e instanceof OriginMismatchException => new HttpException(403, $e->getMessage(), $e), $e instanceof TokenMismatchException => new HttpException(419, $e->getMessage(), $e), $e instanceof RequestExceptionInterface => new BadRequestHttpException('Bad request.', $e), $e instanceof RecordNotFoundException => new NotFoundHttpException('Not found.', $e), @@ -747,9 +848,17 @@ class Handler implements ExceptionHandlerContract */ protected function unauthenticated($request, AuthenticationException $exception) { - return $this->shouldReturnJson($request, $exception) - ? response()->json(['message' => $exception->getMessage()], 401) - : redirect()->guest($exception->redirectTo($request) ?? route('login')); + if ($this->shouldReturnJson($request, $exception)) { + return response()->json(['message' => $exception->getMessage()], 401); + } + + $redirectTo = $exception->redirectTo($request); + + if (! $redirectTo) { + return response()->noContent(401); + } + + return redirect()->guest($redirectTo); } /** @@ -916,6 +1025,8 @@ class Handler implements ExceptionHandlerContract * * @param \Symfony\Component\HttpKernel\Exception\HttpExceptionInterface $e * @return \Symfony\Component\HttpFoundation\Response + * + * @throws \Throwable */ protected function renderHttpException(HttpExceptionInterface $e) { diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Renderer/Exception.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Renderer/Exception.php index 2680fda7f..51faa502a 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Renderer/Exception.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Renderer/Exception.php @@ -106,6 +106,18 @@ class Exception return $this->exception->getStatusCode(); } + /** + * Get the previous exceptions in the chain. + * + * @return \Illuminate\Support\Collection + */ + public function previousExceptions() + { + return once(fn () => (new Collection($this->exception->getAllPrevious()))->map( + fn ($previous) => new static($previous, $this->request, $this->listener, $this->basePath), + )); + } + /** * Get the exception's frames. * diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Renderer/Frame.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Renderer/Frame.php index 6e037f189..3f49e6c3b 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Renderer/Frame.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Renderer/Frame.php @@ -170,7 +170,7 @@ class Frame */ public function args() { - if (! isset($this->frame['args']) || ! is_array($this->frame['args']) || count($this->frame['args']) === 0) { + if (! isset($this->frame['args']) || ! is_array($this->frame['args']) || $this->frame['args'] === []) { return []; } diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Renderer/Listener.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Renderer/Listener.php index ad6ffe402..2e53146d5 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Renderer/Listener.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Renderer/Listener.php @@ -59,15 +59,25 @@ class Listener */ public function onQueryExecuted(QueryExecuted $event) { - if (count($this->queries) === 101) { + if (count($this->queries) >= 100) { return; } + $sql = strlen($event->sql) <= 2000 + ? $event->sql + : mb_strcut($event->sql, 0, 2000); + + $bindings = $event->connection->prepareBindings($event->bindings); + + $bindingCount = substr_count($sql, '?'); + $this->queries[] = [ 'connectionName' => $event->connectionName, 'time' => $event->time, - 'sql' => $event->sql, - 'bindings' => $event->connection->prepareBindings($event->bindings), + 'sql' => $sql, + 'bindings' => count($bindings) <= $bindingCount + ? $bindings + : array_slice($bindings, 0, $bindingCount), ]; } } diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/minimal.blade.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/minimal.blade.php index 99cc78b08..44acf0380 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/minimal.blade.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/minimal.blade.php @@ -16,15 +16,15 @@ } - -
+ +
-

+

@yield('code')

-
+
@yield('message')
diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Attributes/ErrorBag.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Attributes/ErrorBag.php new file mode 100644 index 000000000..a800e68b6 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Attributes/ErrorBag.php @@ -0,0 +1,19 @@ +validator; } + $this->configureFromAttributes(); + $factory = $this->container->make(ValidationFactory::class); if (method_exists($this, 'validator')) { - $validator = $this->container->call($this->validator(...), compact('factory')); + $validator = $this->container->call($this->validator(...), ['factory' => $factory]); } else { $validator = $this->createDefaultValidator($factory); } @@ -102,11 +118,49 @@ class FormRequest extends Request implements ValidatesWhenResolved )); } + if ($this->shouldFailOnUnknownFields()) { + $validator->after(function (Validator $validator) { + $this->validateNoUnknownFields($validator); + }); + } + $this->setValidator($validator); return $this->validator; } + /** + * Configure the form request from class attributes. + * + * @return void + */ + protected function configureFromAttributes() + { + $reflection = new ReflectionClass($this); + + if ($reflection->getAttributes(StopOnFirstFailure::class) !== []) { + $this->stopOnFirstFailure = true; + } + + $redirectTo = $reflection->getAttributes(RedirectTo::class); + + if ($redirectTo !== []) { + $this->redirect = $redirectTo[0]->newInstance()->url; + } + + $redirectToRoute = $reflection->getAttributes(RedirectToRoute::class); + + if ($redirectToRoute !== []) { + $this->redirectRoute = $redirectToRoute[0]->newInstance()->route; + } + + $errorBag = $reflection->getAttributes(ErrorBag::class); + + if ($errorBag !== []) { + $this->errorBag = $errorBag[0]->newInstance()->name; + } + } + /** * Create the default validator instance. * @@ -153,6 +207,72 @@ class FormRequest extends Request implements ValidatesWhenResolved return method_exists($this, 'rules') ? $this->container->call([$this, 'rules']) : []; } + /** + * Determine if fields not present in rules should fail validation. + * + * @return bool + */ + protected function shouldFailOnUnknownFields(): bool + { + $failOnUnknownFields = (new ReflectionClass($this))->getAttributes(FailOnUnknownFields::class); + + return $failOnUnknownFields !== [] + ? $failOnUnknownFields[0]->newInstance()->value + : static::$globalFailOnUnknownFields; + } + + /** + * Validate that no unknown fields were sent as input. + * + * @param \Illuminate\Contracts\Validation\Validator $validator + * @return void + */ + protected function validateNoUnknownFields(Validator $validator): void + { + $allowedKeys = array_keys($this->validationRules()); + + $input = $this->isJson() ? $this->json()->all() : $this->request->all(); + + foreach (array_keys(Arr::dot($input)) as $inputKey) { + if (! $this->isKnownField($inputKey, $allowedKeys)) { + $validator->errors()->add($inputKey, trans('validation.prohibited', [ + 'attribute' => str_replace('_', ' ', $inputKey), + ])); + } + } + } + + /** + * Determine if the given input key is an allowed key based on the validation rules. + * + * @param string $inputKey + * @param array $allowedKeys + * @return bool + */ + protected function isKnownField(string $inputKey, array $allowedKeys): bool + { + foreach ($allowedKeys as $ruleKey) { + if ($ruleKey === $inputKey) { + return true; + } + + if (str_ends_with($inputKey, '_confirmation') && + $ruleKey === substr($inputKey, 0, -13)) { + return true; + } + + if (str_contains($ruleKey, '*')) { + $pattern = '/^'.str_replace('\*', '[^.]+', preg_quote($ruleKey, '/')).'$/'; + + if (preg_match($pattern, $inputKey)) { + return true; + } + } + } + + return false; + } + /** * Handle a failed validation attempt. * @@ -179,15 +299,12 @@ class FormRequest extends Request implements ValidatesWhenResolved { $url = $this->redirector->getUrlGenerator(); - if ($this->redirect) { - return $url->to($this->redirect); - } elseif ($this->redirectRoute) { - return $url->route($this->redirectRoute); - } elseif ($this->redirectAction) { - return $url->action($this->redirectAction); - } - - return $url->previous(); + return match (true) { + ! empty($this->redirect) => $url->to($this->redirect), + ! empty($this->redirectRoute) => $url->route($this->redirectRoute), + ! empty($this->redirectAction) => $url->action($this->redirectAction), + default => $url->previous(), + }; } /** @@ -223,8 +340,10 @@ class FormRequest extends Request implements ValidatesWhenResolved /** * Get a validated input container for the validated input. * - * @param array|null $keys - * @return \Illuminate\Support\ValidatedInput|array + * @param array|null $keys + * @return ($keys is array ? array : \Illuminate\Support\ValidatedInput) + * + * @throws \Illuminate\Validation\ValidationException */ public function safe(?array $keys = null) { @@ -265,6 +384,17 @@ class FormRequest extends Request implements ValidatesWhenResolved return []; } + /** + * Enable or disable unknown-field rejection globally for all form requests. + * + * @param bool $value + * @return void + */ + public static function failOnUnknownFields(bool $value = true): void + { + static::$globalFailOnUnknownFields = $value; + } + /** * Set the Validator instance. * @@ -303,4 +433,14 @@ class FormRequest extends Request implements ValidatesWhenResolved return $this; } + + /** + * Flush the global state of the form request. + * + * @return void + */ + public static function flushState(): void + { + static::$globalFailOnUnknownFields = false; + } } diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php index 3760a4d8c..deaf8d361 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php @@ -577,7 +577,7 @@ class Kernel implements KernelContract /** * Get the application's global middleware. * - * @return array + * @return array */ public function getGlobalMiddleware() { diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestForgery.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestForgery.php new file mode 100644 index 000000000..dc2474267 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestForgery.php @@ -0,0 +1,321 @@ + + */ + protected $except = []; + + /** + * The globally ignored URIs that should be excluded from CSRF verification. + * + * @var array + */ + protected static $neverVerify = []; + + /** + * Indicates whether the XSRF-TOKEN cookie should be set on the response. + * + * @var bool + */ + protected $addHttpCookie = true; + + /** + * Indicates whether requests from the same site should be allowed. + * + * @var bool + */ + protected static $allowSameSite = false; + + /** + * Indicates whether only origin verification should be used. + * + * @var bool + */ + protected static $originOnly = false; + + /** + * Create a new middleware instance. + * + * @param \Illuminate\Contracts\Foundation\Application $app + * @param \Illuminate\Contracts\Encryption\Encrypter $encrypter + */ + public function __construct(Application $app, Encrypter $encrypter) + { + $this->app = $app; + $this->encrypter = $encrypter; + } + + /** + * Handle an incoming request. + * + * @param \Illuminate\Http\Request $request + * @param \Closure $next + * @return mixed + * + * @throws \Illuminate\Session\TokenMismatchException + * @throws \Illuminate\Http\Exceptions\OriginMismatchException + */ + public function handle($request, Closure $next) + { + if ( + $this->isReading($request) || + $this->runningUnitTests() || + $this->inExceptArray($request) || + $this->hasValidOrigin($request) || + $this->tokensMatch($request) + ) { + return tap($next($request), function ($response) use ($request) { + if ($this->shouldAddXsrfTokenCookie()) { + $this->addCookieToResponse($request, $response); + } + }); + } + + throw new TokenMismatchException('CSRF token mismatch.'); + } + + /** + * Determine if the HTTP request uses a ‘read’ verb. + * + * @param \Illuminate\Http\Request $request + * @return bool + */ + protected function isReading($request) + { + return in_array($request->method(), ['HEAD', 'GET', 'OPTIONS']); + } + + /** + * Determine if the application is running unit tests. + * + * @return bool + */ + protected function runningUnitTests() + { + return $this->app->runningInConsole() && $this->app->runningUnitTests(); + } + + /** + * Determine if the request has a valid origin based on the Sec-Fetch-Site header. + * + * @param \Illuminate\Http\Request $request + * @return bool + * + * @throws \Illuminate\Http\Exceptions\OriginMismatchException + */ + protected function hasValidOrigin($request) + { + $secFetchSite = $request->header('Sec-Fetch-Site'); + + if ($secFetchSite === 'same-origin') { + return true; + } + + if ($secFetchSite === 'same-site' && static::$allowSameSite) { + return true; + } + + if (static::$originOnly) { + throw new OriginMismatchException('Origin mismatch.'); + } + + return false; + } + + /** + * Determine if the session and input CSRF tokens match. + * + * @param \Illuminate\Http\Request $request + * @return bool + */ + protected function tokensMatch($request) + { + $token = $this->getTokenFromRequest($request); + + return is_string($request->session()->token()) && + is_string($token) && + hash_equals($request->session()->token(), $token); + } + + /** + * Get the CSRF token from the request. + * + * @param \Illuminate\Http\Request $request + * @return string|null + */ + protected function getTokenFromRequest($request) + { + $token = $request->input('_token') ?: $request->header('X-CSRF-TOKEN'); + + if (! $token && $header = $request->header('X-XSRF-TOKEN')) { + try { + $token = CookieValuePrefix::remove($this->encrypter->decrypt($header, static::serialized())); + } catch (DecryptException) { + $token = ''; + } + } + + return $token; + } + + /** + * Determine if the cookie should be added to the response. + * + * @return bool + */ + public function shouldAddXsrfTokenCookie() + { + if (static::$originOnly) { + return false; + } + + return $this->addHttpCookie; + } + + /** + * Add the CSRF token to the response cookies. + * + * @param \Illuminate\Http\Request $request + * @param \Symfony\Component\HttpFoundation\Response $response + * @return \Symfony\Component\HttpFoundation\Response + */ + protected function addCookieToResponse($request, $response) + { + $config = config('session'); + + if ($response instanceof Responsable) { + $response = $response->toResponse($request); + } + + $response->headers->setCookie($this->newCookie($request, $config)); + + return $response; + } + + /** + * Create a new "XSRF-TOKEN" cookie that contains the CSRF token. + * + * @param \Illuminate\Http\Request $request + * @param array $config + * @return \Symfony\Component\HttpFoundation\Cookie + */ + protected function newCookie($request, $config) + { + return new Cookie( + 'XSRF-TOKEN', + $request->session()->token(), + $this->availableAt(60 * $config['lifetime']), + $config['path'], + $config['domain'], + $config['secure'], + false, + false, + $config['same_site'] ?? null, + $config['partitioned'] ?? false + ); + } + + /** + * Indicate that the given URIs should be excluded from CSRF verification. + * + * @param array|string $uris + * @return void + */ + public static function except($uris) + { + static::$neverVerify = array_values(array_unique( + array_merge(static::$neverVerify, Arr::wrap($uris)) + )); + } + + /** + * Indicate that requests from the same site should be allowed. + * + * @param bool $allow + * @return void + */ + public static function allowSameSite($allow = true) + { + static::$allowSameSite = $allow; + } + + /** + * Indicate that only origin verification should be used. + * + * @param bool $originOnly + * @return void + */ + public static function useOriginOnly($originOnly = true) + { + static::$originOnly = $originOnly; + } + + /** + * Get the URIs that should be excluded. + * + * @return array + */ + public function getExcludedPaths() + { + return array_merge($this->except, static::$neverVerify); + } + + /** + * Determine if the cookie contents should be serialized. + * + * @return bool + */ + public static function serialized() + { + return EncryptCookies::serialized('XSRF-TOKEN'); + } + + /** + * Flush the state of the middleware. + * + * @return void + */ + public static function flushState() + { + static::$neverVerify = []; + static::$allowSameSite = false; + static::$originOnly = false; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php index c3944d6c7..beaadb3f5 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php @@ -80,7 +80,7 @@ class PreventRequestsDuringMaintenance return $next($request); } - if (isset($data['redirect'])) { + if (isset($data['redirect']) && ! $request->expectsJson()) { $path = $data['redirect'] === '/' ? $data['redirect'] : trim($data['redirect'], '/'); @@ -90,7 +90,7 @@ class PreventRequestsDuringMaintenance } } - if (isset($data['template'])) { + if (isset($data['template']) && ! $request->expectsJson()) { return response( $data['template'], $data['status'] ?? 503, diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidateCsrfToken.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidateCsrfToken.php index f49d6141f..544fa77d9 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidateCsrfToken.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidateCsrfToken.php @@ -3,9 +3,9 @@ namespace Illuminate\Foundation\Http\Middleware; /** - * Alias of VerifyCsrfToken for consistency. + * @deprecated Use PreventRequestForgery instead. */ -class ValidateCsrfToken extends VerifyCsrfToken +class ValidateCsrfToken extends PreventRequestForgery { // } diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php index 7a47b4fbe..8c267c6b7 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php @@ -2,248 +2,10 @@ namespace Illuminate\Foundation\Http\Middleware; -use Closure; -use Illuminate\Contracts\Encryption\DecryptException; -use Illuminate\Contracts\Encryption\Encrypter; -use Illuminate\Contracts\Foundation\Application; -use Illuminate\Contracts\Support\Responsable; -use Illuminate\Cookie\CookieValuePrefix; -use Illuminate\Cookie\Middleware\EncryptCookies; -use Illuminate\Foundation\Http\Middleware\Concerns\ExcludesPaths; -use Illuminate\Session\TokenMismatchException; -use Illuminate\Support\Arr; -use Illuminate\Support\InteractsWithTime; -use Symfony\Component\HttpFoundation\Cookie; - -class VerifyCsrfToken +/** + * @deprecated Use PreventRequestForgery instead. + */ +class VerifyCsrfToken extends PreventRequestForgery { - use InteractsWithTime, - ExcludesPaths; - - /** - * The application instance. - * - * @var \Illuminate\Contracts\Foundation\Application - */ - protected $app; - - /** - * The encrypter implementation. - * - * @var \Illuminate\Contracts\Encryption\Encrypter - */ - protected $encrypter; - - /** - * The URIs that should be excluded. - * - * @var array - */ - protected $except = []; - - /** - * The globally ignored URIs that should be excluded from CSRF verification. - * - * @var array - */ - protected static $neverVerify = []; - - /** - * Indicates whether the XSRF-TOKEN cookie should be set on the response. - * - * @var bool - */ - protected $addHttpCookie = true; - - /** - * Create a new middleware instance. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @param \Illuminate\Contracts\Encryption\Encrypter $encrypter - */ - public function __construct(Application $app, Encrypter $encrypter) - { - $this->app = $app; - $this->encrypter = $encrypter; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - * - * @throws \Illuminate\Session\TokenMismatchException - */ - public function handle($request, Closure $next) - { - if ( - $this->isReading($request) || - $this->runningUnitTests() || - $this->inExceptArray($request) || - $this->tokensMatch($request) - ) { - return tap($next($request), function ($response) use ($request) { - if ($this->shouldAddXsrfTokenCookie()) { - $this->addCookieToResponse($request, $response); - } - }); - } - - throw new TokenMismatchException('CSRF token mismatch.'); - } - - /** - * Determine if the HTTP request uses a ‘read’ verb. - * - * @param \Illuminate\Http\Request $request - * @return bool - */ - protected function isReading($request) - { - return in_array($request->method(), ['HEAD', 'GET', 'OPTIONS']); - } - - /** - * Determine if the application is running unit tests. - * - * @return bool - */ - protected function runningUnitTests() - { - return $this->app->runningInConsole() && $this->app->runningUnitTests(); - } - - /** - * Get the URIs that should be excluded. - * - * @return array - */ - public function getExcludedPaths() - { - return array_merge($this->except, static::$neverVerify); - } - - /** - * Determine if the session and input CSRF tokens match. - * - * @param \Illuminate\Http\Request $request - * @return bool - */ - protected function tokensMatch($request) - { - $token = $this->getTokenFromRequest($request); - - return is_string($request->session()->token()) && - is_string($token) && - hash_equals($request->session()->token(), $token); - } - - /** - * Get the CSRF token from the request. - * - * @param \Illuminate\Http\Request $request - * @return string|null - */ - protected function getTokenFromRequest($request) - { - $token = $request->input('_token') ?: $request->header('X-CSRF-TOKEN'); - - if (! $token && $header = $request->header('X-XSRF-TOKEN')) { - try { - $token = CookieValuePrefix::remove($this->encrypter->decrypt($header, static::serialized())); - } catch (DecryptException) { - $token = ''; - } - } - - return $token; - } - - /** - * Determine if the cookie should be added to the response. - * - * @return bool - */ - public function shouldAddXsrfTokenCookie() - { - return $this->addHttpCookie; - } - - /** - * Add the CSRF token to the response cookies. - * - * @param \Illuminate\Http\Request $request - * @param \Symfony\Component\HttpFoundation\Response $response - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function addCookieToResponse($request, $response) - { - $config = config('session'); - - if ($response instanceof Responsable) { - $response = $response->toResponse($request); - } - - $response->headers->setCookie($this->newCookie($request, $config)); - - return $response; - } - - /** - * Create a new "XSRF-TOKEN" cookie that contains the CSRF token. - * - * @param \Illuminate\Http\Request $request - * @param array $config - * @return \Symfony\Component\HttpFoundation\Cookie - */ - protected function newCookie($request, $config) - { - return new Cookie( - 'XSRF-TOKEN', - $request->session()->token(), - $this->availableAt(60 * $config['lifetime']), - $config['path'], - $config['domain'], - $config['secure'], - false, - false, - $config['same_site'] ?? null, - $config['partitioned'] ?? false - ); - } - - /** - * Indicate that the given URIs should be excluded from CSRF verification. - * - * @param array|string $uris - * @return void - */ - public static function except($uris) - { - static::$neverVerify = array_values(array_unique( - array_merge(static::$neverVerify, Arr::wrap($uris)) - )); - } - - /** - * Determine if the cookie contents should be serialized. - * - * @return bool - */ - public static function serialized() - { - return EncryptCookies::serialized('XSRF-TOKEN'); - } - - /** - * Flush the state of the middleware. - * - * @return void - */ - public static function flushState() - { - static::$neverVerify = []; - } + // } diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/MaintenanceModeManager.php b/vendor/laravel/framework/src/Illuminate/Foundation/MaintenanceModeManager.php index 4d233f44f..bd859f353 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/MaintenanceModeManager.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/MaintenanceModeManager.php @@ -16,6 +16,16 @@ class MaintenanceModeManager extends Manager return new FileBasedMaintenanceMode(); } + /** + * Create an instance of the array based maintenance driver. + * + * @return \Illuminate\Foundation\ArrayMaintenanceMode + */ + protected function createArrayDriver(): ArrayMaintenanceMode + { + return new ArrayMaintenanceMode(); + } + /** * Create an instance of the cache based maintenance driver. * diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php index 0ac742bb9..2ef5fe5c4 100755 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php @@ -12,6 +12,8 @@ use Illuminate\Console\Scheduling\ScheduleClearCacheCommand; use Illuminate\Console\Scheduling\ScheduleFinishCommand; use Illuminate\Console\Scheduling\ScheduleInterruptCommand; use Illuminate\Console\Scheduling\ScheduleListCommand; +use Illuminate\Console\Scheduling\SchedulePauseCommand; +use Illuminate\Console\Scheduling\ScheduleResumeCommand; use Illuminate\Console\Scheduling\ScheduleRunCommand; use Illuminate\Console\Scheduling\ScheduleTestCommand; use Illuminate\Console\Scheduling\ScheduleWorkCommand; @@ -43,6 +45,8 @@ use Illuminate\Foundation\Console\ConfigMakeCommand; use Illuminate\Foundation\Console\ConfigPublishCommand; use Illuminate\Foundation\Console\ConfigShowCommand; use Illuminate\Foundation\Console\ConsoleMakeCommand; +use Illuminate\Foundation\Console\DevCommand; +use Illuminate\Foundation\Console\DevListCommand; use Illuminate\Foundation\Console\DocsCommand; use Illuminate\Foundation\Console\DownCommand; use Illuminate\Foundation\Console\EnumMakeCommand; @@ -89,6 +93,7 @@ use Illuminate\Foundation\Console\VendorPublishCommand; use Illuminate\Foundation\Console\ViewCacheCommand; use Illuminate\Foundation\Console\ViewClearCommand; use Illuminate\Foundation\Console\ViewMakeCommand; +use Illuminate\Foundation\DevCommands; use Illuminate\Notifications\Console\NotificationTableCommand; use Illuminate\Queue\Console\BatchesTableCommand; use Illuminate\Queue\Console\ClearCommand as QueueClearCommand; @@ -174,6 +179,8 @@ class ArtisanServiceProvider extends ServiceProvider implements DeferrableProvid 'ScheduleTest' => ScheduleTestCommand::class, 'ScheduleWork' => ScheduleWorkCommand::class, 'ScheduleInterrupt' => ScheduleInterruptCommand::class, + 'SchedulePause' => SchedulePauseCommand::class, + 'ScheduleResume' => ScheduleResumeCommand::class, 'ShowModel' => ShowModelCommand::class, 'StorageLink' => StorageLinkCommand::class, 'StorageUnlink' => StorageUnlinkCommand::class, @@ -200,6 +207,8 @@ class ArtisanServiceProvider extends ServiceProvider implements DeferrableProvid 'ConfigPublish' => ConfigPublishCommand::class, 'ConsoleMake' => ConsoleMakeCommand::class, 'ControllerMake' => ControllerMakeCommand::class, + 'Dev' => DevCommand::class, + 'DevList' => DevListCommand::class, 'Docs' => DocsCommand::class, 'EnumMake' => EnumMakeCommand::class, 'EventGenerate' => EventGenerateCommand::class, @@ -255,6 +264,16 @@ class ArtisanServiceProvider extends ServiceProvider implements DeferrableProvid }); } + /** + * Bootstrap the application services. + * + * @return void + */ + public function boot() + { + DevCommands::registerDefaults(); + } + /** * Register the given commands. * diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php index cc87318f9..691915ab5 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php @@ -142,6 +142,8 @@ class FoundationServiceProvider extends AggregateServiceProvider * Register the "validate" macro on the request. * * @return void + * + * @throws \Illuminate\Validation\ValidationException */ public function registerRequestValidation() { diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Routing/PrecognitionControllerDispatcher.php b/vendor/laravel/framework/src/Illuminate/Foundation/Routing/PrecognitionControllerDispatcher.php index 7ed860560..b055d44f0 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Routing/PrecognitionControllerDispatcher.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Routing/PrecognitionControllerDispatcher.php @@ -31,6 +31,8 @@ class PrecognitionControllerDispatcher extends ControllerDispatcher * @param object $controller * @param string $method * @return $this + * + * @throws \RuntimeException */ protected function ensureMethodExists($controller, $method) { diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/Seed.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/Seed.php new file mode 100644 index 000000000..2f1cd24d3 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Attributes/Seed.php @@ -0,0 +1,17 @@ + is_array($row))) { + foreach ($data as $row) { + $this->assertDatabaseHas($table, $row, $connection); + } + + return $this; + } + if ($table instanceof Model) { $data = [ $table->getKeyName() => $table->getKey(), @@ -65,6 +73,14 @@ trait InteractsWithDatabase return $this; } + if ($data !== [] && array_is_list($data) && array_all($data, fn ($row) => is_array($row))) { + foreach ($data as $row) { + $this->assertDatabaseMissing($table, $row, $connection); + } + + return $this; + } + if ($table instanceof Model) { $data = [ $table->getKeyName() => $table->getKey(), @@ -99,14 +115,22 @@ trait InteractsWithDatabase } /** - * Assert that the given table has no entries. + * Assert that the given table or tables has no entries. * - * @param \Illuminate\Database\Eloquent\Model|class-string<\Illuminate\Database\Eloquent\Model>|string $table + * @param iterable<\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Model|class-string<\Illuminate\Database\Eloquent\Model>|string $table * @param string|null $connection * @return $this */ protected function assertDatabaseEmpty($table, $connection = null) { + if (is_iterable($table)) { + foreach ($table as $item) { + $this->assertDatabaseEmpty($item, $connection); + } + + return $this; + } + $this->assertThat( $this->getTable($table), new CountInDatabase($this->getConnection($connection, $table), 0) ); @@ -127,7 +151,7 @@ trait InteractsWithDatabase { if (is_iterable($table)) { foreach ($table as $item) { - $this->assertSoftDeleted($item, $data, $connection); + $this->assertSoftDeleted($item, $data, $connection, $deletedAtColumn); } return $this; @@ -142,6 +166,14 @@ trait InteractsWithDatabase ); } + if ($data !== [] && array_is_list($data) && array_all($data, fn ($row) => is_array($row))) { + foreach ($data as $row) { + $this->assertSoftDeleted($table, $row, $connection, $deletedAtColumn); + } + + return $this; + } + $this->assertThat( $this->getTable($table), new SoftDeletedInDatabase( @@ -167,7 +199,7 @@ trait InteractsWithDatabase { if (is_iterable($table)) { foreach ($table as $item) { - $this->assertNotSoftDeleted($item, $data, $connection); + $this->assertNotSoftDeleted($item, $data, $connection, $deletedAtColumn); } return $this; @@ -182,6 +214,14 @@ trait InteractsWithDatabase ); } + if ($data !== [] && array_is_list($data) && array_all($data, fn ($row) => is_array($row))) { + foreach ($data as $row) { + $this->assertNotSoftDeleted($table, $row, $connection, $deletedAtColumn); + } + + return $this; + } + $this->assertThat( $this->getTable($table), new NotSoftDeletedInDatabase( diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDeprecationHandling.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDeprecationHandling.php index 6b9300ac3..0ad9293b1 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDeprecationHandling.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDeprecationHandling.php @@ -31,6 +31,8 @@ trait InteractsWithDeprecationHandling * Disable deprecation handling for the test. * * @return $this + * + * @throws \ErrorException */ protected function withoutDeprecationHandling() { diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithTestCaseLifecycle.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithTestCaseLifecycle.php index 4d7284e28..8a1145c0c 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithTestCaseLifecycle.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithTestCaseLifecycle.php @@ -11,10 +11,13 @@ use Illuminate\Database\Migrations\Migrator; use Illuminate\Foundation\Bootstrap\HandleExceptions; use Illuminate\Foundation\Bootstrap\RegisterProviders; use Illuminate\Foundation\Console\AboutCommand; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull; +use Illuminate\Foundation\Http\Middleware\PreventRequestForgery; use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance; use Illuminate\Foundation\Http\Middleware\TrimStrings; -use Illuminate\Foundation\Http\Middleware\ValidateCsrfToken; +use Illuminate\Foundation\Testing\Attributes\SetUp; +use Illuminate\Foundation\Testing\Attributes\TearDown; use Illuminate\Foundation\Testing\DatabaseMigrations; use Illuminate\Foundation\Testing\DatabaseTransactions; use Illuminate\Foundation\Testing\DatabaseTruncation; @@ -34,6 +37,7 @@ use Illuminate\Support\Carbon; use Illuminate\Support\EncodedHtmlString; use Illuminate\Support\Facades\Facade; use Illuminate\Support\Facades\ParallelTesting; +use Illuminate\Support\Lottery; use Illuminate\Support\Once; use Illuminate\Support\Sleep; use Illuminate\Support\Str; @@ -42,6 +46,7 @@ use Illuminate\View\Component; use Mockery; use Mockery\Exception\InvalidCountException; use PHPUnit\Metadata\Annotation\Parser\Registry as PHPUnitRegistry; +use ReflectionClass; use Throwable; trait InteractsWithTestCaseLifecycle @@ -115,6 +120,8 @@ trait InteractsWithTestCaseLifecycle * @internal * * @return void + * + * @throws \Throwable */ protected function tearDownTheTestEnvironment(): void { @@ -178,12 +185,14 @@ trait InteractsWithTestCaseLifecycle Component::forgetFactory(); ConvertEmptyStringsToNull::flushState(); Factory::flushState(); + FormRequest::flushState(); EncodedHtmlString::flushState(); EncryptCookies::flushState(); HandleCors::flushState(); HandleExceptions::flushState($this); JsonApiResource::flushState(); JsonResource::flushState(); + Lottery::determineResultsNormally(); Markdown::flushState(); Migrator::withoutMigrations([]); Once::flush(); @@ -192,10 +201,11 @@ trait InteractsWithTestCaseLifecycle RegisterProviders::flushState(); Response::flushState(); Sleep::fake(false); + Str::resetFactoryState(); TrimStrings::flushState(); TrustProxies::flushState(); TrustHosts::flushState(); - ValidateCsrfToken::flushState(); + PreventRequestForgery::flushState(); Validator::flushState(); WorkCommand::flushState(); @@ -211,7 +221,7 @@ trait InteractsWithTestCaseLifecycle */ protected function setUpTraits() { - $uses = $this->traitsUsedByTest ?? array_flip(class_uses_recursive(static::class)); + $uses = $this->traitsUsedByTest ?? class_uses_recursive(static::class); if (isset($uses[RefreshDatabase::class])) { $this->refreshDatabase(); @@ -245,6 +255,16 @@ trait InteractsWithTestCaseLifecycle if (method_exists($this, $method = 'tearDown'.class_basename($trait))) { $this->beforeApplicationDestroyed(fn () => $this->{$method}()); } + + foreach ((new ReflectionClass($trait))->getMethods() as $method) { + if ($method->getAttributes(SetUp::class) !== []) { + $this->{$method->getName()}(); + } + + if ($method->getAttributes(TearDown::class) !== []) { + $this->beforeApplicationDestroyed(fn () => $this->{$method->getName()}()); + } + } } return $uses; diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php index 0e7b7d163..8c7adc3b9 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php @@ -548,6 +548,37 @@ trait MakesHttpRequests return $this->call('HEAD', $uri, [], $cookies, [], $server); } + /** + * Visit the given URI with a QUERY request. + * + * @param \Illuminate\Support\Uri|string $uri + * @param array $data + * @param array $headers + * @return \Illuminate\Testing\TestResponse + */ + public function query($uri, array $data = [], array $headers = []) + { + $server = $this->transformHeadersToServerVars($headers); + + $cookies = $this->prepareCookiesForRequest(); + + return $this->call('QUERY', $uri, $data, $cookies, [], $server); + } + + /** + * Visit the given URI with a QUERY request, expecting a JSON response. + * + * @param \Illuminate\Support\Uri|string $uri + * @param array $data + * @param array $headers + * @param int $options + * @return \Illuminate\Testing\TestResponse + */ + public function queryJson($uri, array $data = [], array $headers = [], $options = 0) + { + return $this->json('QUERY', $uri, $data, $headers, $options); + } + /** * Call the given URI with a JSON request. * diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/LazilyRefreshDatabase.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/LazilyRefreshDatabase.php index 194fc3d8d..6f785e730 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/LazilyRefreshDatabase.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/LazilyRefreshDatabase.php @@ -37,8 +37,10 @@ trait LazilyRefreshDatabase } }; - $database->beforeStartingTransaction($callback); - $database->beforeExecuting($callback); + foreach ($this->connectionsToTransact() as $connection) { + $database->connection($connection)->beforeStartingTransaction($callback); + $database->connection($connection)->beforeExecuting($callback); + } $this->beforeApplicationDestroyed(function () { RefreshDatabaseState::$lazilyRefreshed = false; diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php index 0b5acfd37..af46b18f1 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php @@ -4,7 +4,10 @@ namespace Illuminate\Foundation\Testing; use Illuminate\Contracts\Console\Kernel; use Illuminate\Foundation\Application; +use Illuminate\Foundation\Testing\Attributes\UnitTest; use PHPUnit\Framework\TestCase as BaseTestCase; +use ReflectionMethod; +use Throwable; abstract class TestCase extends BaseTestCase { @@ -27,6 +30,13 @@ abstract class TestCase extends BaseTestCase */ protected array $traitsUsedByTest; + /** + * Memoized result of the withoutBootingFramework check. + * + * @var bool|null + */ + protected ?bool $withoutBootingFramework = null; + /** * Creates the application. * @@ -36,15 +46,13 @@ abstract class TestCase extends BaseTestCase { $app = require Application::inferBasePath().'/bootstrap/app.php'; - $this->traitsUsedByTest = array_flip(class_uses_recursive(static::class)); + $this->traitsUsedByTest = class_uses_recursive(static::class); - if (isset(CachedState::$cachedConfig) && - isset($this->traitsUsedByTest[WithCachedConfig::class])) { + if (isset(CachedState::$cachedConfig, $this->traitsUsedByTest[WithCachedConfig::class])) { $this->markConfigCached($app); } - if (isset(CachedState::$cachedRoutes) && - isset($this->traitsUsedByTest[WithCachedRoutes::class])) { + if (isset(CachedState::$cachedRoutes, $this->traitsUsedByTest[WithCachedRoutes::class])) { $app->booting(fn () => $this->markRoutesCached($app)); } @@ -60,6 +68,10 @@ abstract class TestCase extends BaseTestCase */ protected function setUp(): void { + if ($this->withoutBootingFramework()) { + return; + } + $this->setUpTheTestEnvironment(); } @@ -82,9 +94,33 @@ abstract class TestCase extends BaseTestCase */ protected function tearDown(): void { + if ($this->withoutBootingFramework()) { + return; + } + $this->tearDownTheTestEnvironment(); } + /** + * Determine if the test method should boot the framework. + * + * @return bool + * + * @throws \ReflectionException + */ + protected function withoutBootingFramework(): bool + { + if ($this->withoutBootingFramework !== null) { + return $this->withoutBootingFramework; + } + + try { + return $this->withoutBootingFramework = (new ReflectionMethod(static::class, $this->name()))->getAttributes(UnitTest::class) !== []; + } catch (Throwable) { + return $this->withoutBootingFramework = false; + } + } + /** * Clean up the testing environment before the next test case. * diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Traits/CanConfigureMigrationCommands.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Traits/CanConfigureMigrationCommands.php index aafca6f1f..72b17a77e 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Traits/CanConfigureMigrationCommands.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Traits/CanConfigureMigrationCommands.php @@ -2,6 +2,10 @@ namespace Illuminate\Foundation\Testing\Traits; +use Illuminate\Foundation\Testing\Attributes\Seed; +use Illuminate\Foundation\Testing\Attributes\Seeder; +use ReflectionClass; + trait CanConfigureMigrationCommands { /** @@ -49,6 +53,14 @@ trait CanConfigureMigrationCommands */ protected function shouldSeed() { + $class = new ReflectionClass($this); + + do { + if ($class->getAttributes(Seed::class) !== []) { + return true; + } + } while ($class = $class->getParentClass()); + return property_exists($this, 'seed') ? $this->seed : false; } @@ -59,6 +71,16 @@ trait CanConfigureMigrationCommands */ protected function seeder() { + $class = new ReflectionClass($this); + + do { + $seeder = $class->getAttributes(Seeder::class); + + if (count($seeder) > 0) { + return $seeder[0]->newInstance()->class; + } + } while ($class = $class->getParentClass()); + return property_exists($this, 'seeder') ? $this->seeder : false; } } diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Vite.php b/vendor/laravel/framework/src/Illuminate/Foundation/Vite.php index b348992c2..900864368 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Vite.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Vite.php @@ -97,6 +97,20 @@ class Vite implements Htmlable */ protected static $manifests = []; + /** + * The ViteFonts instance. + * + * @var \Illuminate\Foundation\ViteFonts|null + */ + protected $fonts = null; + + /** + * The name of the font manifest file. + * + * @var string + */ + protected $fontsManifestFilename = 'fonts-manifest.json'; + /** * The prefetching strategy to use. * @@ -396,7 +410,7 @@ class Vite implements Htmlable $manifest, ]); - foreach ($chunk['imports'] ?? [] as $import) { + foreach ($this->resolveImports($manifest, $chunk) as $import) { $preloads->push([ $import, $this->assetPath("{$buildDirectory}/{$manifest[$import]['file']}"), @@ -984,6 +998,35 @@ class Vite implements Htmlable return md5_file($path) ?: null; } + /** + * Recursively resolve all imports for the given chunk. + * + * @param array $manifest + * @param array $chunk + * @param array $seen + * @return array + */ + protected function resolveImports($manifest, $chunk, $seen = []) + { + $imports = []; + + foreach ($chunk['imports'] ?? [] as $import) { + if (isset($seen[$import])) { + continue; + } + + $seen[$import] = true; + + $imports[] = $import; + + if (isset($manifest[$import])) { + $imports = array_merge($imports, $this->resolveImports($manifest, $manifest[$import], $seen)); + } + } + + return $imports; + } + /** * Get the chunk for the given entry point / asset. * @@ -1016,6 +1059,160 @@ class Vite implements Htmlable return new HtmlString(' nonce="'.$this->cspNonce().'"'); } + /** + * Render font preload links and inline styles. + * + * @param list|string|null $aliases + * @return \Illuminate\Support\HtmlString + * + * @throws \Illuminate\Foundation\ViteException + */ + public function fonts($aliases = null) + { + $isHot = $this->isRunningHot(); + + $fonts = $this->viteFonts(); + + $manifest = $fonts->manifest($isHot, $this->buildDirectory, $this->fontsManifestFilename, $this->hotFile()); + + if ($manifest === null) { + return new HtmlString(''); + } + + $fonts->ensureValidManifest($manifest); + + $preloads = $manifest['preloads'] ?? []; + + if ($aliases !== null) { + $aliases = is_string($aliases) + ? [$aliases] + : $aliases; + + $fonts->ensureValidFamilies($aliases, $manifest); + + $preloads = array_filter($preloads, fn ($preload) => in_array($preload['alias'] ?? null, $aliases, true)); + } + + $fonts->ensureValidPreloads($preloads, $isHot); + + $preloadsHtml = $this->renderFontPreloads($preloads); + $styleHtml = $this->renderFontStyle($manifest, $aliases); + + return new HtmlString(match (true) { + $preloadsHtml !== '' && $styleHtml !== '' => $preloadsHtml."\n".$styleHtml, + default => $preloadsHtml.$styleHtml, + }); + } + + /** + * Render preload link tags for font entries. + * + * @param list> $preloads + * @return string + */ + protected function renderFontPreloads($preloads) + { + $tags = []; + + foreach ($preloads as $preload) { + $url = $preload['url'] ?? $this->assetPath($this->buildDirectory.'/'.$preload['file']); + + if (isset($this->preloadedAssets[$url])) { + continue; + } + + $attributes = $this->resolveFontPreloadAttributes($url, $preload); + + if ($attributes === false) { + continue; + } + + $this->preloadedAssets[$url] = $this->parseAttributes( + (new Collection($attributes))->forget('href')->all() + ); + + $tags[] = 'parseAttributes($attributes)).' />'; + } + + return implode("\n", $tags); + } + + /** + * Resolve the attributes for a font preload tag. + * + * @param string $url + * @param array $preload + * @return array|false + */ + protected function resolveFontPreloadAttributes($url, $preload) + { + $attributes = [ + 'rel' => 'preload', + 'as' => $preload['as'] ?? 'font', + 'href' => $url, + 'type' => $preload['type'] ?? false, + 'crossorigin' => $preload['crossorigin'] ?? false, + 'nonce' => $this->nonce ?? false, + ]; + + foreach ($this->preloadTagAttributesResolvers as $resolver) { + if (false === ($resolved = $resolver('fonts', $url, [], []))) { + return false; + } + + $attributes = array_merge($attributes, $resolved); + } + + return $attributes; + } + + /** + * Render the inline style block for the font manifest. + * + * @param array $manifest + * @param list|null $aliases + * @return string + */ + protected function renderFontStyle($manifest, $aliases) + { + $css = $this->viteFonts()->resolveStyleContent($manifest, $aliases, $this->buildDirectory); + + if ($css === '') { + return ''; + } + + $attributes = $this->parseAttributes([ + 'nonce' => $this->nonce ?? false, + ]); + + $attributeString = $attributes ? ' '.implode(' ', $attributes) : ''; + + return "\n".trim($css, "\n")."\n"; + } + + /** + * Get the ViteFonts instance. + * + * @return \Illuminate\Foundation\ViteFonts + */ + protected function viteFonts() + { + return $this->fonts ??= new ViteFonts; + } + + /** + * Set the font manifest filename. + * + * @param string $filename + * @return $this + */ + public function useFontsManifestFilename($filename) + { + $this->fontsManifestFilename = $filename; + + return $this; + } + /** * Determine if the HMR server is running. * @@ -1044,5 +1241,9 @@ class Vite implements Htmlable public function flush() { $this->preloadedAssets = []; + + $this->fonts?->flush(); + + $this->fonts = null; } } diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/ViteFonts.php b/vendor/laravel/framework/src/Illuminate/Foundation/ViteFonts.php new file mode 100644 index 000000000..5a0022b87 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Foundation/ViteFonts.php @@ -0,0 +1,249 @@ +> + */ + protected static $manifests = []; + + /** + * Read the font manifest for the given configuration. + * + * @param bool $isHot + * @param string $buildDirectory + * @param string $manifestFilename + * @param string $hotFile + * @return array|null + * + * @throws \Illuminate\Foundation\ViteException + */ + public function manifest(bool $isHot, string $buildDirectory, string $manifestFilename, string $hotFile) + { + $path = $isHot + ? dirname($hotFile).'/fonts-manifest.dev.json' + : public_path($buildDirectory.'/'.$manifestFilename); + + return $this->readManifest($path); + } + + /** + * Read and decode a manifest file. + * + * @param string $path + * @return array|null + * + * @throws \Illuminate\Foundation\ViteException + */ + protected function readManifest(string $path) + { + if (isset(static::$manifests[$path])) { + return static::$manifests[$path]; + } + + if (! is_file($path)) { + return null; + } + + $contents = file_get_contents($path); + + $manifest = json_decode($contents, true); + + if (json_last_error() !== JSON_ERROR_NONE) { + throw new ViteException("The font manifest at [{$path}] is not valid JSON."); + } + + return static::$manifests[$path] = $manifest; + } + + /** + * Resolve the CSS content from the manifest. + * + * @param array $manifest + * @param list|null $aliases + * @param string $buildDirectory + * @return string + * + * @throws \Illuminate\Foundation\ViteException + */ + public function resolveStyleContent(array $manifest, ?array $aliases, string $buildDirectory) + { + $style = $manifest['style'] ?? null; + + return match (true) { + $style === null => '', + $aliases !== null => $this->resolveFilteredStyleContent($style, $aliases), + isset($style['inline']) => $style['inline'], + isset($style['file']) => $this->readStyleFile($buildDirectory, $style['file']), + default => '', + }; + } + + /** + * Resolve filtered CSS content using per-alias fragments from the manifest. + * + * @param array{inline?: string, file?: string, familyStyles?: array, variables?: array} $style + * @param list $aliases + * @return string + * + * @throws \Illuminate\Foundation\ViteException + */ + protected function resolveFilteredStyleContent(array $style, array $aliases) + { + $familyStyles = $style['familyStyles'] ?? []; + $variables = $style['variables'] ?? []; + + if (! is_array($familyStyles)) { + throw new ViteException( + 'The font manifest [style.familyStyles] must be an object keyed by alias; the manifest was likely produced by an incompatible plugin version.' + ); + } + + if (! is_array($variables)) { + throw new ViteException( + 'The font manifest [style.variables] must be an object keyed by alias; the manifest was likely produced by an incompatible plugin version.' + ); + } + + $parts = []; + + foreach ($aliases as $alias) { + if (isset($familyStyles[$alias])) { + $parts[] = $familyStyles[$alias]; + } + } + + if ($variables !== []) { + $parts[] = $this->filterVariables($variables, $aliases); + } + + return implode("\n\n", $parts); + } + + /** + * Build a `:root` block containing only the CSS variables for the given aliases. + * + * @param array $variables + * @param list $aliases List of aliases in desired emission order. + * @return string + */ + protected function filterVariables(array $variables, array $aliases) + { + $declarations = []; + + foreach ($aliases as $alias) { + if (isset($variables[$alias])) { + $declarations[] = ' '.$variables[$alias]; + } + } + + if ($declarations === []) { + return ''; + } + + return ":root {\n".implode("\n", $declarations)."\n}"; + } + + /** + * Read a CSS file from the build directory. + * + * @param string $buildDirectory + * @param string $file + * @return string + * + * @throws \Illuminate\Foundation\ViteException + */ + protected function readStyleFile(string $buildDirectory, string $file) + { + $path = public_path($buildDirectory.'/'.$file); + + if (! is_file($path)) { + throw new ViteException("Unable to locate font CSS file from manifest: {$path}."); + } + + return file_get_contents($path); + } + + /** + * Validate the font manifest structure. + * + * @param array $manifest + * @return void + * + * @throws \Illuminate\Foundation\ViteException + */ + public function ensureValidManifest(array $manifest) + { + if (! isset($manifest['version'])) { + throw new ViteException('The font manifest is missing the [version] key.'); + } + + if ($manifest['version'] !== 1) { + throw new ViteException("Unsupported font manifest version [{$manifest['version']}]. Supported versions: 1."); + } + + if (! isset($manifest['families']) || ! is_array($manifest['families'])) { + throw new ViteException('The font manifest is missing the [families] key.'); + } + } + + /** + * Validate that the requested aliases exist in the manifest. + * + * @param list $aliases + * @param array $manifest + * @return void + * + * @throws \Illuminate\Foundation\ViteException + */ + public function ensureValidFamilies(array $aliases, array $manifest) + { + $available = array_keys($manifest['families'] ?? []); + + foreach ($aliases as $alias) { + if (! in_array($alias, $available, true)) { + throw new ViteException( + "Font alias [{$alias}] is not defined in the font manifest. Available aliases: ".implode(', ', $available).'.' + ); + } + } + } + + /** + * Validate that each preload entry contains the required keys. + * + * @param list> $preloads + * @param bool $isHot + * @return void + * + * @throws \Illuminate\Foundation\ViteException + */ + public function ensureValidPreloads(array $preloads, bool $isHot) + { + $urlKey = $isHot ? 'url' : 'file'; + + foreach ($preloads as $index => $preload) { + if (! isset($preload['alias'])) { + throw new ViteException("Font manifest preload entry [{$index}] is missing the [alias] key."); + } + + if (! isset($preload[$urlKey])) { + throw new ViteException("Font manifest preload entry [{$index}] for alias [{$preload['alias']}] is missing the [{$urlKey}] key."); + } + } + } + + /** + * Flush cached manifests. + * + * @return void + */ + public function flush() + { + static::$manifests = []; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php b/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php index ece3f6fa0..37c099058 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php @@ -1018,6 +1018,7 @@ if (! function_exists('__')) { * @param string|null $key * @param array $replace * @param string|null $locale + * @return ($key is null ? null : array|string) */ function __($key = null, $replace = [], $locale = null): string|array|null { diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/components/layout.blade.php b/vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/components/layout.blade.php index 25a28d867..11ee942a2 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/components/layout.blade.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/components/layout.blade.php @@ -3,7 +3,7 @@ - + {{ config('app.name', 'Laravel') }} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/components/previous-exceptions.blade.php b/vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/components/previous-exceptions.blade.php new file mode 100644 index 000000000..2bf03deb8 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/components/previous-exceptions.blade.php @@ -0,0 +1,91 @@ +@props(['exception']) + +
+
+
+ +
+

Previous {{ \Illuminate\Support\Str::plural('exception', $exception->previousExceptions()->count()) }}

+
+ +
+ @foreach ($exception->previousExceptions() as $index => $previous) +
+ {{-- Timeline column --}} + @if ($exception->previousExceptions()->count() > 1) +
+ @if ($index > 0) +
+ @else +
+ @endif + +
+ + @if ($index < $exception->previousExceptions()->count() - 1) +
+ @else +
+ @endif +
+ @endif + + {{-- Exception content --}} +
+ {{-- Header + Message --}} +
+
+

{{ $previous->class() }}

+

{{ $previous->message() }}

+
+ +
+ + {{-- Collapsible trace --}} +
+ @foreach ($previous->frameGroups() as $group) + @if ($group['is_vendor']) + + @else + @foreach ($group['frames'] as $frame) + + @endforeach + @endif + @endforeach +
+
+
+ @endforeach +
+
diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/components/trace.blade.php b/vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/components/trace.blade.php index 0162868de..329d31aa8 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/components/trace.blade.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/components/trace.blade.php @@ -6,6 +6,11 @@

Exception trace

+ @if ($exception->previousExceptions()->isNotEmpty()) + + {{ $exception->previousExceptions()->count() }} previous {{ \Illuminate\Support\Str::plural('exception', $exception->previousExceptions()->count()) }} + + @endif
diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/dist/scripts.js b/vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/dist/scripts.js index 6b1cf58f7..0c9853507 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/dist/scripts.js +++ b/vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/dist/scripts.js @@ -1,21 +1,21 @@ -var cr=!1,lr=!1,ot=[],ur=-1;function Vl(e){Zl(e)}function Zl(e){ot.includes(e)||ot.push(e),Xl()}function Yl(e){let t=ot.indexOf(e);t!==-1&&t>ur&&ot.splice(t,1)}function Xl(){!lr&&!cr&&(cr=!0,queueMicrotask(Kl))}function Kl(){cr=!1,lr=!0;for(let e=0;ee.effect(t,{scheduler:n=>{pr?Vl(n):n()}}),ao=e.raw}function Pi(e){gt=e}function eu(e){let t=()=>{};return[a=>{let r=gt(a);return e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(i=>i())}),e._x_effects.add(r),t=()=>{r!==void 0&&(e._x_effects.delete(r),Dt(r))},r},()=>{t()}]}function ro(e,t){let n=!0,a,r=gt(()=>{let i=e();JSON.stringify(i),n?a=i:queueMicrotask(()=>{t(i,a),a=i}),n=!1});return()=>Dt(r)}var io=[],so=[],oo=[];function tu(e){oo.push(e)}function Vr(e,t){typeof t=="function"?(e._x_cleanups||(e._x_cleanups=[]),e._x_cleanups.push(t)):(t=e,so.push(t))}function co(e){io.push(e)}function lo(e,t,n){e._x_attributeCleanups||(e._x_attributeCleanups={}),e._x_attributeCleanups[t]||(e._x_attributeCleanups[t]=[]),e._x_attributeCleanups[t].push(n)}function uo(e,t){e._x_attributeCleanups&&Object.entries(e._x_attributeCleanups).forEach(([n,a])=>{(t===void 0||t.includes(n))&&(a.forEach(r=>r()),delete e._x_attributeCleanups[n])})}function nu(e){for(e._x_effects?.forEach(Yl);e._x_cleanups?.length;)e._x_cleanups.pop()()}var Zr=new MutationObserver(Qr),Yr=!1;function Xr(){Zr.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),Yr=!0}function po(){au(),Zr.disconnect(),Yr=!1}var Kt=[];function au(){let e=Zr.takeRecords();Kt.push(()=>e.length>0&&Qr(e));let t=Kt.length;queueMicrotask(()=>{if(Kt.length===t)for(;Kt.length>0;)Kt.shift()()})}function z(e){if(!Yr)return e();po();let t=e();return Xr(),t}var Kr=!1,ia=[];function ru(){Kr=!0}function iu(){Kr=!1,Qr(ia),ia=[]}function Qr(e){if(Kr){ia=ia.concat(e);return}let t=[],n=new Set,a=new Map,r=new Map;for(let i=0;i{s.nodeType===1&&s._x_marker&&n.add(s)}),e[i].addedNodes.forEach(s=>{if(s.nodeType===1){if(n.has(s)){n.delete(s);return}s._x_marker||t.push(s)}})),e[i].type==="attributes")){let s=e[i].target,o=e[i].attributeName,c=e[i].oldValue,l=()=>{a.has(s)||a.set(s,[]),a.get(s).push({name:o,value:s.getAttribute(o)})},u=()=>{r.has(s)||r.set(s,[]),r.get(s).push(o)};s.hasAttribute(o)&&c===null?l():s.hasAttribute(o)?(u(),l()):u()}r.forEach((i,s)=>{uo(s,i)}),a.forEach((i,s)=>{io.forEach(o=>o(s,i))});for(let i of n)t.some(s=>s.contains(i))||so.forEach(s=>s(i));for(let i of t)i.isConnected&&oo.forEach(s=>s(i));t=null,n=null,a=null,r=null}function mo(e){return wn(At(e))}function vn(e,t,n){return e._x_dataStack=[t,...At(n||e)],()=>{e._x_dataStack=e._x_dataStack.filter(a=>a!==t)}}function At(e){return e._x_dataStack?e._x_dataStack:typeof ShadowRoot=="function"&&e instanceof ShadowRoot?At(e.host):e.parentNode?At(e.parentNode):[]}function wn(e){return new Proxy({objects:e},su)}var su={ownKeys({objects:e}){return Array.from(new Set(e.flatMap(t=>Object.keys(t))))},has({objects:e},t){return t==Symbol.unscopables?!1:e.some(n=>Object.prototype.hasOwnProperty.call(n,t)||Reflect.has(n,t))},get({objects:e},t,n){return t=="toJSON"?ou:Reflect.get(e.find(a=>Reflect.has(a,t))||{},t,n)},set({objects:e},t,n,a){const r=e.find(s=>Object.prototype.hasOwnProperty.call(s,t))||e[e.length-1],i=Object.getOwnPropertyDescriptor(r,t);return i?.set&&i?.get?i.set.call(a,n)||!0:Reflect.set(r,t,n)}};function ou(){return Reflect.ownKeys(this).reduce((t,n)=>(t[n]=Reflect.get(this,n),t),{})}function ho(e){let t=a=>typeof a=="object"&&!Array.isArray(a)&&a!==null,n=(a,r="")=>{Object.entries(Object.getOwnPropertyDescriptors(a)).forEach(([i,{value:s,enumerable:o}])=>{if(o===!1||s===void 0||typeof s=="object"&&s!==null&&s.__v_skip)return;let c=r===""?i:`${r}.${i}`;typeof s=="object"&&s!==null&&s._x_interceptor?a[i]=s.initialize(e,c,i):t(s)&&s!==a&&!(s instanceof Element)&&n(s,c)})};return n(e)}function go(e,t=()=>{}){let n={initialValue:void 0,_x_interceptor:!0,initialize(a,r,i){return e(this.initialValue,()=>cu(a,r),s=>dr(a,r,s),r,i)}};return t(n),a=>{if(typeof a=="object"&&a!==null&&a._x_interceptor){let r=n.initialize.bind(n);n.initialize=(i,s,o)=>{let c=a.initialize(i,s,o);return n.initialValue=c,r(i,s,o)}}else n.initialValue=a;return n}}function cu(e,t){return t.split(".").reduce((n,a)=>n[a],e)}function dr(e,t,n){if(typeof t=="string"&&(t=t.split(".")),t.length===1)e[t[0]]=n;else{if(t.length===0)throw error;return e[t[0]]||(e[t[0]]={}),dr(e[t[0]],t.slice(1),n)}}var fo={};function ve(e,t){fo[e]=t}function mr(e,t){let n=lu(t);return Object.entries(fo).forEach(([a,r])=>{Object.defineProperty(e,`$${a}`,{get(){return r(t,n)},enumerable:!1})}),e}function lu(e){let[t,n]=xo(e),a={interceptor:go,...t};return Vr(e,n),a}function uu(e,t,n,...a){try{return n(...a)}catch(r){dn(r,e,t)}}function dn(e,t,n=void 0){e=Object.assign(e??{message:"No error message given."},{el:t,expression:n}),console.warn(`Alpine Expression Error: ${e.message} +var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n=!1,r=!1,i=[],a=-1,o=!1;function s(e){u(e)}function c(){o=!0}function l(){o=!1,f()}function u(e){i.includes(e)||i.push(e),f()}function d(e){let t=i.indexOf(e);t!==-1&&t>a&&i.splice(t,1)}function f(){if(!r&&!n){if(o)return;n=!0,queueMicrotask(p)}}function p(){n=!1,r=!0;for(let e=0;ee.effect(t,{scheduler:e=>{v?s(e):e()}}),_=e.raw}function x(e){h=e}function S(e){let t=()=>{};return[n=>{let r=h(n);return e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(e=>e())}),e._x_effects.add(r),t=()=>{r!==void 0&&(e._x_effects.delete(r),g(r))},r},()=>{t()}]}function C(e,t){let n=!0,r,i=h(()=>{let i=e();if(JSON.stringify(i),!n&&(typeof i==`object`||i!==r)){let e=r;queueMicrotask(()=>{t(i,e)})}r=i,n=!1});return()=>g(i)}async function w(e){c();try{await e(),await Promise.resolve()}finally{l()}}var T=[],E=[],D=[];function O(e){D.push(e)}function k(e,t){typeof t==`function`?(e._x_cleanups||=[],e._x_cleanups.push(t)):(t=e,E.push(t))}function ee(e){T.push(e)}function A(e,t,n){e._x_attributeCleanups||={},e._x_attributeCleanups[t]||(e._x_attributeCleanups[t]=[]),e._x_attributeCleanups[t].push(n)}function j(e,t){e._x_attributeCleanups&&Object.entries(e._x_attributeCleanups).forEach(([n,r])=>{(t===void 0||t.includes(n))&&(r.forEach(e=>e()),delete e._x_attributeCleanups[n])})}function M(e){for(e._x_effects?.forEach(d);e._x_cleanups?.length;)e._x_cleanups.pop()()}var te=new MutationObserver(de),ne=!1;function re(){te.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),ne=!0}function ie(){oe(),te.disconnect(),ne=!1}var ae=[];function oe(){let e=te.takeRecords();ae.push(()=>e.length>0&&de(e));let t=ae.length;queueMicrotask(()=>{if(ae.length===t)for(;ae.length>0;)ae.shift()()})}function N(e){if(!ne)return e();ie();let t=e();return re(),t}var se=!1,ce=[];function le(){se=!0}function ue(){se=!1,de(ce),ce=[]}function de(e){if(se){ce=ce.concat(e);return}let t=[],n=new Set,r=new Map,i=new Map;for(let a=0;a{e.nodeType===1&&e._x_marker&&n.add(e)}),e[a].addedNodes.forEach(e=>{if(e.nodeType===1){if(n.has(e)){n.delete(e);return}e._x_marker||t.push(e)}})),e[a].type===`attributes`)){let t=e[a].target,n=e[a].attributeName,o=e[a].oldValue,s=()=>{r.has(t)||r.set(t,[]),r.get(t).push({name:n,value:t.getAttribute(n)})},c=()=>{i.has(t)||i.set(t,[]),i.get(t).push(n)};t.hasAttribute(n)&&o===null?s():t.hasAttribute(n)?(c(),s()):c()}i.forEach((e,t)=>{j(t,e)}),r.forEach((e,t)=>{T.forEach(n=>n(t,e))});for(let e of n)t.some(t=>t.contains(e))||E.forEach(t=>t(e));for(let e of t)e.isConnected&&D.forEach(t=>t(e));t=null,n=null,r=null,i=null}function fe(e){return he(me(e))}function pe(e,t,n){return e._x_dataStack=[t,...me(n||e)],()=>{e._x_dataStack=e._x_dataStack.filter(e=>e!==t)}}function me(e){return e._x_dataStack?e._x_dataStack:typeof ShadowRoot==`function`&&e instanceof ShadowRoot?me(e.host):e.parentNode?me(e.parentNode):[]}function he(e){return new Proxy({objects:e},ge)}var ge={ownKeys({objects:e}){return Array.from(new Set(e.flatMap(e=>Object.keys(e))))},has({objects:e},t){return t==Symbol.unscopables?!1:e.some(e=>Object.prototype.hasOwnProperty.call(e,t)||Reflect.has(e,t))},get({objects:e},t,n){return t==`toJSON`?_e:Reflect.get(e.find(e=>Reflect.has(e,t))||{},t,n)},set({objects:e},t,n,r){let i=e.find(e=>Object.prototype.hasOwnProperty.call(e,t))||e[e.length-1],a=Object.getOwnPropertyDescriptor(i,t);return a?.set&&a?.get?a.set.call(r,n)||!0:Reflect.set(i,t,n)}};function _e(){return Reflect.ownKeys(this).reduce((e,t)=>(e[t]=Reflect.get(this,t),e),{})}function ve(e){let t=e=>typeof e==`object`&&!Array.isArray(e)&&e!==null,n=(r,i=``)=>{Object.entries(Object.getOwnPropertyDescriptors(r)).forEach(([a,{value:o,enumerable:s}])=>{if(s===!1||o===void 0||typeof o==`object`&&o&&o.__v_skip)return;let c=i===``?a:`${i}.${a}`;typeof o==`object`&&o&&o._x_interceptor?r[a]=o.initialize(e,c,a):t(o)&&o!==r&&!(o instanceof Element)&&n(o,c)})};return n(e)}function ye(e,t=()=>{}){let n={initialValue:void 0,_x_interceptor:!0,initialize(t,n,r){return e(this.initialValue,()=>be(t,n),e=>xe(t,n,e),n,r)}};return t(n),e=>{if(typeof e==`object`&&e&&e._x_interceptor){let t=n.initialize.bind(n);n.initialize=(r,i,a)=>(n.initialValue=e.initialize(r,i,a),t(r,i,a))}else n.initialValue=e;return n}}function be(e,t){return t.split(`.`).reduce((e,t)=>e[t],e)}function xe(e,t,n){if(typeof t==`string`&&(t=t.split(`.`)),t.length===1)e[t[0]]=n;else if(t.length===0)throw error;else if(e[t[0]])return xe(e[t[0]],t.slice(1),n);else return e[t[0]]={},xe(e[t[0]],t.slice(1),n)}var Se={};function P(e,t){Se[e]=t}function F(e,t){let n=Ce(t);return Object.entries(Se).forEach(([r,i])=>{Object.defineProperty(e,`$${r}`,{get(){return i(t,n)},enumerable:!1})}),e}function Ce(e){let[t,n]=tt(e),r={interceptor:ye,...t};return k(e,n),r}function we(e,t,n,...r){try{return n(...r)}catch(n){Te(n,e,t)}}function Te(...e){return Ee(...e)}var Ee=Oe;function De(e){Ee=e}function Oe(e,t,n=void 0){e=Object.assign(e??{message:`No error message given.`},{el:t,expression:n}),console.warn(`Alpine Expression Error: ${e.message} -${n?'Expression: "'+n+`" +${n?`Expression: "`+n+`" -`:""}`,t),setTimeout(()=>{throw e},0)}var Jn=!0;function bo(e){let t=Jn;Jn=!1;let n=e();return Jn=t,n}function ct(e,t,n={}){let a;return ne(e,t)(r=>a=r,n),a}function ne(...e){return _o(...e)}var _o=yo;function pu(e){_o=e}function yo(e,t){let n={};mr(n,e);let a=[n,...At(e)],r=typeof t=="function"?du(a,t):hu(a,t,e);return uu.bind(null,e,t,r)}function du(e,t){return(n=()=>{},{scope:a={},params:r=[]}={})=>{let i=t.apply(wn([a,...e]),r);sa(n,i)}}var Ma={};function mu(e,t){if(Ma[e])return Ma[e];let n=Object.getPrototypeOf(async function(){}).constructor,a=/^[\n\s]*if.*\(.*\)/.test(e.trim())||/^(let|const)\s/.test(e.trim())?`(async()=>{ ${e} })()`:e,i=(()=>{try{let s=new n(["__self","scope"],`with (scope) { __self.result = ${a} }; __self.finished = true; return __self.result;`);return Object.defineProperty(s,"name",{value:`[Alpine] ${e}`}),s}catch(s){return dn(s,t,e),Promise.resolve()}})();return Ma[e]=i,i}function hu(e,t,n){let a=mu(t,n);return(r=()=>{},{scope:i={},params:s=[]}={})=>{a.result=void 0,a.finished=!1;let o=wn([i,...e]);if(typeof a=="function"){let c=a(a,o).catch(l=>dn(l,n,t));a.finished?(sa(r,a.result,o,s,n),a.result=void 0):c.then(l=>{sa(r,l,o,s,n)}).catch(l=>dn(l,n,t)).finally(()=>a.result=void 0)}}}function sa(e,t,n,a,r){if(Jn&&typeof t=="function"){let i=t.apply(n,a);i instanceof Promise?i.then(s=>sa(e,s,n,a)).catch(s=>dn(s,r,t)):e(i)}else typeof t=="object"&&t instanceof Promise?t.then(i=>e(i)):e(t)}var Jr="x-";function Mt(e=""){return Jr+e}function gu(e){Jr=e}var oa={};function W(e,t){return oa[e]=t,{before(n){if(!oa[n]){console.warn(String.raw`Cannot find directive \`${n}\`. \`${e}\` will use the default order of execution`);return}const a=rt.indexOf(n);rt.splice(a>=0?a:rt.indexOf("DEFAULT"),0,e)}}}function fu(e){return Object.keys(oa).includes(e)}function ei(e,t,n){if(t=Array.from(t),e._x_virtualDirectives){let i=Object.entries(e._x_virtualDirectives).map(([o,c])=>({name:o,value:c})),s=vo(i);i=i.map(o=>s.find(c=>c.name===o.name)?{name:`x-bind:${o.name}`,value:`"${o.value}"`}:o),t=t.concat(i)}let a={};return t.map(Eo((i,s)=>a[i]=s)).filter($o).map(yu(a,n)).sort(vu).map(i=>_u(e,i))}function vo(e){return Array.from(e).map(Eo()).filter(t=>!$o(t))}var hr=!1,nn=new Map,wo=Symbol();function bu(e){hr=!0;let t=Symbol();wo=t,nn.set(t,[]);let n=()=>{for(;nn.get(t).length;)nn.get(t).shift()();nn.delete(t)},a=()=>{hr=!1,n()};e(n),a()}function xo(e){let t=[],n=o=>t.push(o),[a,r]=eu(e);return t.push(r),[{Alpine:xn,effect:a,cleanup:n,evaluateLater:ne.bind(ne,e),evaluate:ct.bind(ct,e)},()=>t.forEach(o=>o())]}function _u(e,t){let n=()=>{},a=oa[t.type]||n,[r,i]=xo(e);lo(e,t.original,i);let s=()=>{e._x_ignore||e._x_ignoreSelf||(a.inline&&a.inline(e,t,r),a=a.bind(a,e,t,r),hr?nn.get(wo).push(a):a())};return s.runCleanups=i,s}var ko=(e,t)=>({name:n,value:a})=>(n.startsWith(e)&&(n=n.replace(e,t)),{name:n,value:a}),Co=e=>e;function Eo(e=()=>{}){return({name:t,value:n})=>{let{name:a,value:r}=Fo.reduce((i,s)=>s(i),{name:t,value:n});return a!==t&&e(a,t),{name:a,value:r}}}var Fo=[];function ti(e){Fo.push(e)}function $o({name:e}){return jo().test(e)}var jo=()=>new RegExp(`^${Jr}([^:^.]+)\\b`);function yu(e,t){return({name:n,value:a})=>{let r=n.match(jo()),i=n.match(/:([a-zA-Z0-9\-_:]+)/),s=n.match(/\.[^.\]]+(?=[^\]]*$)/g)||[],o=t||e[n]||n;return{type:r?r[1]:null,value:i?i[1]:null,modifiers:s.map(c=>c.replace(".","")),expression:a,original:o}}}var gr="DEFAULT",rt=["ignore","ref","data","id","anchor","bind","init","for","model","modelable","transition","show","if",gr,"teleport"];function vu(e,t){let n=rt.indexOf(e.type)===-1?gr:e.type,a=rt.indexOf(t.type)===-1?gr:t.type;return rt.indexOf(n)-rt.indexOf(a)}function rn(e,t,n={}){e.dispatchEvent(new CustomEvent(t,{detail:n,bubbles:!0,composed:!0,cancelable:!0}))}function dt(e,t){if(typeof ShadowRoot=="function"&&e instanceof ShadowRoot){Array.from(e.children).forEach(r=>dt(r,t));return}let n=!1;if(t(e,()=>n=!0),n)return;let a=e.firstElementChild;for(;a;)dt(a,t),a=a.nextElementSibling}function pe(e,...t){console.warn(`Alpine Warning: ${e}`,...t)}var Di=!1;function wu(){Di&&pe("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems."),Di=!0,document.body||pe("Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's ` diff --git a/vendor/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php b/vendor/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php index 08151424b..6251b6cee 100644 --- a/vendor/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php +++ b/vendor/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php @@ -25,7 +25,7 @@ abstract class AbstractHasher */ public function check(#[\SensitiveParameter] $value, $hashedValue, array $options = []) { - if (is_null($hashedValue) || strlen($hashedValue) === 0) { + if (is_null($hashedValue) || (string) $hashedValue === '') { return false; } diff --git a/vendor/laravel/framework/src/Illuminate/Hashing/Argon2IdHasher.php b/vendor/laravel/framework/src/Illuminate/Hashing/Argon2IdHasher.php index 55601882c..a7efdd45a 100644 --- a/vendor/laravel/framework/src/Illuminate/Hashing/Argon2IdHasher.php +++ b/vendor/laravel/framework/src/Illuminate/Hashing/Argon2IdHasher.php @@ -18,7 +18,7 @@ class Argon2IdHasher extends ArgonHasher */ public function check(#[\SensitiveParameter] $value, $hashedValue, array $options = []) { - if (is_null($hashedValue) || strlen($hashedValue) === 0) { + if (is_null($hashedValue) || (string) $hashedValue === '') { return false; } diff --git a/vendor/laravel/framework/src/Illuminate/Hashing/ArgonHasher.php b/vendor/laravel/framework/src/Illuminate/Hashing/ArgonHasher.php index 74ff9301e..1b1437198 100644 --- a/vendor/laravel/framework/src/Illuminate/Hashing/ArgonHasher.php +++ b/vendor/laravel/framework/src/Illuminate/Hashing/ArgonHasher.php @@ -95,7 +95,7 @@ class ArgonHasher extends AbstractHasher implements HasherContract */ public function check(#[\SensitiveParameter] $value, $hashedValue, array $options = []) { - if (is_null($hashedValue) || strlen($hashedValue) === 0) { + if (is_null($hashedValue) || (string) $hashedValue === '') { return false; } diff --git a/vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php b/vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php index 32e0f2090..af40f159c 100755 --- a/vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php +++ b/vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php @@ -81,7 +81,7 @@ class BcryptHasher extends AbstractHasher implements HasherContract */ public function check(#[\SensitiveParameter] $value, $hashedValue, array $options = []) { - if (is_null($hashedValue) || strlen($hashedValue) === 0) { + if (is_null($hashedValue) || (string) $hashedValue === '') { return false; } diff --git a/vendor/laravel/framework/src/Illuminate/Hashing/composer.json b/vendor/laravel/framework/src/Illuminate/Hashing/composer.json index 623485f95..9cef2ad4b 100755 --- a/vendor/laravel/framework/src/Illuminate/Hashing/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Hashing/composer.json @@ -2,34 +2,34 @@ "name": "illuminate/hashing", "description": "The Illuminate Hashing package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "illuminate/contracts": "^12.0", - "illuminate/support": "^12.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "illuminate/contracts": "^13.0", + "illuminate/support": "^13.0" + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Hashing\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Http/Client/Factory.php b/vendor/laravel/framework/src/Illuminate/Http/Client/Factory.php index c99bace1c..9fc11b5f0 100644 --- a/vendor/laravel/framework/src/Illuminate/Http/Client/Factory.php +++ b/vendor/laravel/framework/src/Illuminate/Http/Client/Factory.php @@ -12,7 +12,10 @@ use GuzzleHttp\TransferStats; use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Support\Collection; use Illuminate\Support\Str; +use Illuminate\Support\Stringable; use Illuminate\Support\Traits\Macroable; +use InvalidArgumentException; +use JsonException; use PHPUnit\Framework\Assert as PHPUnit; /** @@ -173,16 +176,88 @@ class Factory * @param int $status * @param array $headers * @return \GuzzleHttp\Psr7\Response + * + * @throws \InvalidArgumentException */ public static function psr7Response($body = null, $status = 200, $headers = []) { if (is_array($body)) { - $body = json_encode($body); + try { + $body = json_encode($body, JSON_THROW_ON_ERROR); + } catch (JsonException $e) { + throw new InvalidArgumentException('HTTP fake response body could not be JSON encoded.', previous: $e); + } $headers['Content-Type'] = 'application/json'; } - return new Psr7Response($status, $headers, $body); + if (! is_string($body) && ! is_null($body)) { + throw new InvalidArgumentException('HTTP fake response body must be a string, array, or null.'); + } + + return new Psr7Response($status, static::normalizeResponseHeaders($headers), $body); + } + + /** + * Normalize the given fake response headers. + * + * @param array $headers + * @return array + * + * @throws \InvalidArgumentException + */ + protected static function normalizeResponseHeaders(array $headers): array + { + foreach ($headers as $name => $value) { + if (is_array($value)) { + if ($value === []) { + $headers[$name] = ''; + + continue; + } + + foreach ($value as $key => $item) { + $value[$key] = match (true) { + $item === null => '', + is_scalar($item) => static::normalizeScalarString($item), + $item instanceof Stringable => $item->toString(), + default => throw new InvalidArgumentException('HTTP fake response header values must be scalar, null, Laravel Stringable, or arrays of scalar, null, or Laravel Stringable values.'), + }; + } + + $headers[$name] = $value; + + continue; + } + + $headers[$name] = match (true) { + $value === null => '', + is_scalar($value) => static::normalizeScalarString($value), + $value instanceof Stringable => $value->toString(), + default => throw new InvalidArgumentException('HTTP fake response header values must be scalar, null, Laravel Stringable, or arrays of scalar, null, or Laravel Stringable values.'), + }; + } + + return $headers; + } + + /** + * Normalize a scalar to a string without triggering PHP 8.5 non-finite float warnings. + * + * @param scalar $value + * @return string + */ + protected static function normalizeScalarString($value): string + { + if (is_float($value) && ! is_finite($value)) { + return match (true) { + is_nan($value) => 'NAN', + $value > 0 => 'INF', + default => '-INF', + }; + } + + return (string) $value; } /** @@ -259,7 +334,7 @@ class Factory $response = $response($request, $options); } - if ($response instanceof PromiseInterface) { + if ($response instanceof PromiseInterface && ($options['on_stats'] ?? null) instanceof Closure) { $options['on_stats'](new TransferStats( $request->toPsrRequest(), $response->wait(), @@ -292,6 +367,8 @@ class Factory * @param string $url * @param \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface|callable|int|string|array|\Illuminate\Http\Client\ResponseSequence $callback * @return $this + * + * @throws \InvalidArgumentException */ public function stubUrl($url, $callback) { @@ -300,11 +377,15 @@ class Factory return; } - if (is_int($callback) && $callback >= 100 && $callback < 600) { - return static::response(status: $callback); + if (is_int($callback)) { + if ($callback >= 100 && $callback < 600) { + return static::response(status: $callback); + } + + throw new InvalidArgumentException('HTTP status code must be between 100 and 599.'); } - if (is_int($callback) || is_string($callback)) { + if (is_string($callback)) { return static::response($callback); } diff --git a/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php b/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php index 6ee9587fa..f6617eae6 100644 --- a/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php +++ b/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php @@ -26,9 +26,11 @@ use Illuminate\Support\Str; use Illuminate\Support\Stringable; use Illuminate\Support\Traits\Conditionable; use Illuminate\Support\Traits\Macroable; +use InvalidArgumentException; use JsonSerializable; use Psr\Http\Message\MessageInterface; use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\StreamInterface; use Symfony\Component\VarDumper\VarDumper; use Throwable; @@ -168,7 +170,7 @@ class PendingRequest /** * The callbacks that should execute after the Laravel Response is built. * - * @var \Illuminate\Support\Collection + * @var \Illuminate\Support\Collection */ protected $afterResponseCallbacks; @@ -303,6 +305,10 @@ class PendingRequest { $this->bodyFormat('body'); + $content = $this->normalizeRequestOptionValue($content); + + $this->ensureValidRequestBody($content); + $this->pendingBody = $content; $this->contentType($contentType); @@ -755,7 +761,7 @@ class PendingRequest /** * Add a new callback to execute after the response is built. * - * @param (callable(\Illuminate\Http\Client\Response): \Illuminate\Http\Client\Response|null) $callback + * @param (callable(\Illuminate\Http\Client\Response, \Illuminate\Http\Client\Request): \Illuminate\Http\Client\Response|null) $callback * @return $this */ public function afterResponse(callable $callback) @@ -874,6 +880,24 @@ class PendingRequest ]); } + /** + * Issue a QUERY request to the given URL. + * + * @param string $url + * @param array|\JsonSerializable|\Illuminate\Contracts\Support\Arrayable $data + * @return \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface + * + * @phpstan-return (TAsync is false ? \Illuminate\Http\Client\Response : \GuzzleHttp\Promise\PromiseInterface) + * + * @throws \Illuminate\Http\Client\ConnectionException + */ + public function query(string $url, $data = []) + { + return $this->send('QUERY', $url, [ + $this->bodyFormat => $data, + ]); + } + /** * Issue a POST request to the given URL. * @@ -953,7 +977,7 @@ class PendingRequest * @param non-negative-int|null $concurrency * @return array */ - public function pool(callable $callback, ?int $concurrency = null) + public function pool(callable $callback, ?int $concurrency = 0) { $results = []; @@ -1160,20 +1184,13 @@ class PendingRequest protected function parseMultipartBodyFormat(array $data) { return (new Collection($data)) - ->flatMap(function ($value, $key) { - if (is_array($value)) { - // If the array has 'name' and 'contents' keys, it's already formatted for multipart... - if (isset($value['name']) && isset($value['contents'])) { - return [$value]; - } - - // Otherwise, treat it as multiple values for the same field name... - return (new Collection($value))->map(function ($item) use ($key) { - return ['name' => $key.'[]', 'contents' => $item]; - }); + ->map(function ($value, $key) { + // If the array has 'name' and 'contents' keys, it's already formatted for multipart... + if (is_array($value) && isset($value['name'], $value['contents'])) { + return $value; } - return [['name' => $key, 'contents' => $value]]; + return ['name' => $key, 'contents' => $value]; }) ->values() ->all(); @@ -1252,12 +1269,10 @@ class PendingRequest return $exception; } - if ($attempt < $this->tries && $shouldRetry) { - $options['delay'] = value( - $this->retryDelay, - $attempt, - $response instanceof Response ? $response->toException() : $response - ); + $exception = $response instanceof Response ? $response->toException() : $response; + + if ($attempt < $this->getMaximumAttempts() && $shouldRetry) { + $options['delay'] = $this->retryDelayInMilliseconds($attempt, $exception); return $this->makePromise($method, $url, $options, $attempt + 1); } @@ -1272,13 +1287,39 @@ class PendingRequest } } - if ($this->tries > 1 && $this->retryThrow) { + if ($this->getMaximumAttempts() > 1 && $this->retryThrow) { return $response instanceof Response ? $response->toException() : $response; } return $response; } + /** + * Get the maximum number of attempts for the request. + * + * @return int + */ + protected function getMaximumAttempts() + { + return is_array($this->tries) + ? count($this->tries) + 1 + : ($this->tries ?? 1); + } + + /** + * Get the delay in milliseconds before the next retry attempt. + * + * @param int $attempt + * @param mixed $exception + * @return int|float + */ + protected function retryDelayInMilliseconds($attempt, $exception) + { + return is_array($this->tries) + ? $this->tries[$attempt - 1] ?? 0 + : value($this->retryDelay ?? 100, $attempt, $exception); + } + /** * Send a request either synchronously or asynchronously. * @@ -1349,6 +1390,10 @@ class PendingRequest $laravelData = $laravelData->jsonSerialize(); } + if (is_array($laravelData) && $this->bodyFormat === 'multipart') { + return $this->normalizeMultipartOption($laravelData); + } + return is_array($laravelData) ? $laravelData : []; } @@ -1361,16 +1406,222 @@ class PendingRequest protected function normalizeRequestOptions(array $options) { foreach ($options as $key => $value) { - $options[$key] = match (true) { - is_array($value) => $this->normalizeRequestOptions($value), - $value instanceof Stringable => $value->toString(), - default => $value, - }; + if ($key === 'headers' && is_array($value)) { + $options[$key] = $this->normalizeHeaderValues($value); + + continue; + } + + if (($key === 'query' || $key === 'form_params') && is_array($value)) { + $options[$key] = $this->normalizeNonFiniteFloatValues( + $this->normalizeRequestOptionValue($value) + ); + + continue; + } + + if ($key === 'multipart' && is_array($value)) { + $options[$key] = $this->normalizeMultipartOption($value); + + continue; + } + + if ($key === 'body') { + $options[$key] = $this->normalizeRequestOptionValue($value); + + $this->ensureValidRequestBody($options[$key]); + + continue; + } + + $options[$key] = $this->normalizeRequestOptionValue($value); } return $options; } + /** + * Normalize the given header values. + * + * @param array $headers + * @return array + */ + protected function normalizeHeaderValues(array $headers): array + { + foreach ($headers as $name => $value) { + $headers[$name] = $this->normalizeHeaderValue($value); + } + + return $headers; + } + + /** + * Normalize the given header value. + * + * @param mixed $value + * @return string|array + * + * @throws \InvalidArgumentException + */ + protected function normalizeHeaderValue($value): string|array + { + if (is_array($value)) { + if ($value === []) { + return ''; + } + + foreach ($value as $key => $item) { + $value[$key] = match (true) { + $item === null => '', + is_scalar($item) => $this->normalizeScalarString($item), + $item instanceof Stringable => $item->toString(), + default => throw new InvalidArgumentException('HTTP header values must be scalar, null, Laravel Stringable, or arrays of scalar, null, or Laravel Stringable values.'), + }; + } + + return $value; + } + + return match (true) { + $value === null => '', + is_scalar($value) => $this->normalizeScalarString($value), + $value instanceof Stringable => $value->toString(), + default => throw new InvalidArgumentException('HTTP header values must be scalar, null, Laravel Stringable, or arrays of scalar, null, or Laravel Stringable values.'), + }; + } + + /** + * Normalize non-finite floats within a nested array. + * + * @param array $values + * @return array + */ + protected function normalizeNonFiniteFloatValues(array $values): array + { + foreach ($values as $key => $value) { + if (is_array($value)) { + $values[$key] = $this->normalizeNonFiniteFloatValues($value); + } elseif (is_float($value) && ! is_finite($value)) { + $values[$key] = $this->normalizeScalarString($value); + } + } + + return $values; + } + + /** + * Normalize the given multipart option. + * + * @param array $multipart + * @return array + */ + protected function normalizeMultipartOption(array $multipart): array + { + foreach ($multipart as $index => $part) { + if (! is_array($part)) { + $multipart[$index] = $this->normalizeRequestOptionValue($part); + + continue; + } + + foreach ($part as $key => $value) { + if ($key === 'headers' && is_array($value)) { + continue; + } + + $part[$key] = $this->normalizeRequestOptionValue($value); + + if ($key === 'contents') { + if (is_array($part[$key])) { + $part[$key] = $this->normalizeNonFiniteFloatValues($part[$key]); + } elseif (is_float($part[$key]) && ! is_finite($part[$key])) { + $part[$key] = $this->normalizeScalarString($part[$key]); + } + } + } + + $multipart[$index] = $part; + } + + return $this->normalizeMultipartHeaders($multipart); + } + + /** + * Normalize the given multipart headers. + * + * @param array $multipart + * @return array + * + * @throws \InvalidArgumentException + */ + protected function normalizeMultipartHeaders(array $multipart): array + { + foreach ($multipart as $index => $part) { + if (is_array($part) && isset($part['headers']) && is_array($part['headers'])) { + foreach ($part['headers'] as $name => $value) { + $multipart[$index]['headers'][$name] = match (true) { + $value === [] => '', + $value === null => '', + is_scalar($value) => $this->normalizeScalarString($value), + $value instanceof Stringable => $value->toString(), + default => throw new InvalidArgumentException('Multipart header values must be scalar, null, or Laravel Stringable.'), + }; + } + } + } + + return $multipart; + } + + /** + * Normalize the given request option value. + * + * @param mixed $value + * @return mixed + */ + protected function normalizeRequestOptionValue($value) + { + return match (true) { + is_array($value) => array_map(fn ($item) => $this->normalizeRequestOptionValue($item), $value), + $value instanceof Stringable => $value->toString(), + default => $value, + }; + } + + /** + * Normalize a scalar to a string without triggering PHP 8.5 non-finite float warnings. + * + * @param scalar $value + * @return string + */ + protected function normalizeScalarString($value): string + { + if (is_float($value) && ! is_finite($value)) { + return match (true) { + is_nan($value) => 'NAN', + $value > 0 => 'INF', + default => '-INF', + }; + } + + return (string) $value; + } + + /** + * Ensure the given request body can be passed to Guzzle. + * + * @param mixed $body + * @return void + * + * @throws \InvalidArgumentException + */ + protected function ensureValidRequestBody($body): void + { + if (! is_string($body) && ! is_null($body) && ! is_resource($body) && ! $body instanceof StreamInterface) { + throw new InvalidArgumentException('HTTP request body must be a string, resource, Psr\Http\Message\StreamInterface, or null.'); + } + } + /** * Populate the given response with additional data. * @@ -1487,7 +1738,7 @@ class PendingRequest return $promise->then(function ($response) use ($request, $options) { $this->factory?->recordRequestResponsePair( (new Request($request)) - ->withData($options['laravel_data']) + ->withData($options['laravel_data'] ?? []) ->setRequestAttributes($this->attributes), $this->newResponse($response) ); @@ -1513,7 +1764,7 @@ class PendingRequest ->map ->__invoke( (new Request($request)) - ->withData($options['laravel_data']) + ->withData($options['laravel_data'] ?? []) ->setRequestAttributes($this->attributes), $options ) @@ -1577,7 +1828,7 @@ class PendingRequest $callbackResult = call_user_func( $callback, (new Request($request)) - ->withData($options['laravel_data']) + ->withData($options['laravel_data'] ?? []) ->setRequestAttributes($this->attributes), $options, $this @@ -1634,7 +1885,7 @@ class PendingRequest protected function runAfterResponseCallbacks(Response $response) { foreach ($this->afterResponseCallbacks as $callback) { - $returnedResponse = $callback($response); + $returnedResponse = $callback($response, $this->request); if ($returnedResponse instanceof Response) { $response = $returnedResponse; diff --git a/vendor/laravel/framework/src/Illuminate/Http/Client/Request.php b/vendor/laravel/framework/src/Illuminate/Http/Client/Request.php index 976ace0d3..0c7e3970f 100644 --- a/vendor/laravel/framework/src/Illuminate/Http/Client/Request.php +++ b/vendor/laravel/framework/src/Illuminate/Http/Client/Request.php @@ -6,6 +6,7 @@ use ArrayAccess; use Illuminate\Support\Arr; use Illuminate\Support\Collection; use Illuminate\Support\Traits\Macroable; +use Illuminate\Support\Uri; use LogicException; class Request implements ArrayAccess @@ -63,6 +64,16 @@ class Request implements ArrayAccess return (string) $this->request->getUri(); } + /** + * Get the request URI as a URI instance. + * + * @return \Illuminate\Support\Uri + */ + public function uri() + { + return Uri::of($this->url()); + } + /** * Determine if the request has a given header. * diff --git a/vendor/laravel/framework/src/Illuminate/Http/Client/Response.php b/vendor/laravel/framework/src/Illuminate/Http/Client/Response.php index 8d9c8c592..d5e6e48e5 100644 --- a/vendor/laravel/framework/src/Illuminate/Http/Client/Response.php +++ b/vendor/laravel/framework/src/Illuminate/Http/Client/Response.php @@ -34,6 +34,13 @@ class Response implements ArrayAccess, Stringable */ protected $decoded; + /** + * Indicates if the JSON response has been decoded. + * + * @var bool + */ + protected bool $decodedJson = false; + /** * The flags that were used when decoding the JSON response. * @@ -99,14 +106,15 @@ class Response implements ArrayAccess, Stringable */ public function json($key = null, $default = null, $flags = null) { - $flags = $flags ?? self::$defaultJsonDecodingFlags; + $flags ??= self::$defaultJsonDecodingFlags; - if (! $this->decoded || (isset($this->decodingFlags) && $this->decodingFlags !== $flags)) { + if (! $this->decodedJson || $this->decodingFlags !== $flags) { $this->decoded = json_decode( $this->body(), true, flags: $flags ); $this->decodingFlags = $flags; + $this->decodedJson = true; } if (is_null($key)) { @@ -336,14 +344,13 @@ class Response implements ArrayAccess, Stringable /** * Throw an exception if a server or client error occurred. * + * @param null|(\Closure(\Illuminate\Http\Client\Response, \Illuminate\Http\Client\RequestException): mixed) $callback * @return $this * * @throws \Illuminate\Http\Client\RequestException */ - public function throw() + public function throw($callback = null) { - $callback = func_get_args()[0] ?? null; - if ($this->failed()) { throw tap($this->toException(), function ($exception) use ($callback) { if ($callback && is_callable($callback)) { @@ -359,13 +366,14 @@ class Response implements ArrayAccess, Stringable * Throw an exception if a server or client error occurred and the given condition evaluates to true. * * @param \Closure|bool $condition + * @param null|(\Closure(\Illuminate\Http\Client\Response, \Illuminate\Http\Client\RequestException): mixed) $callback * @return $this * * @throws \Illuminate\Http\Client\RequestException */ - public function throwIf($condition) + public function throwIf($condition, $callback = null) { - return value($condition, $this) ? $this->throw(func_get_args()[1] ?? null) : $this; + return value($condition, $this) ? $this->throw($callback) : $this; } /** diff --git a/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php b/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php index a921e4913..595824ae9 100644 --- a/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php +++ b/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php @@ -80,7 +80,7 @@ trait InteractsWithContentTypes $type = strtolower($type); - if ($this->matchesType($accept, $type) || $accept === strtok($type, '/').'/*') { + if (self::matchesType($accept, $type) || $accept === strtok($type, '/').'/*') { return true; } } @@ -121,7 +121,7 @@ trait InteractsWithContentTypes $type = strtolower($type); - if ($this->matchesType($type, $accept) || $accept === strtok($type, '/').'/*') { + if (self::matchesType($type, $accept) || $accept === strtok($type, '/').'/*') { return $contentType; } } diff --git a/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php b/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php index e3bd296ac..e68adf287 100644 --- a/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php +++ b/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php @@ -184,7 +184,7 @@ trait InteractsWithInput { $files = $this->files->all(); - return $this->convertedFiles = $this->convertedFiles ?? $this->convertUploadedFiles($files); + return $this->convertedFiles ??= $this->convertUploadedFiles($files); } /** @@ -218,13 +218,7 @@ trait InteractsWithInput $files = [$files]; } - foreach ($files as $file) { - if ($this->isValidFile($file)) { - return true; - } - } - - return false; + return array_any($files, fn ($file) => $this->isValidFile($file)); } /** @@ -293,7 +287,7 @@ trait InteractsWithInput { $keys = is_array($keys) ? $keys : func_get_args(); - dump(count($keys) > 0 ? $this->only($keys) : $this->all()); + dump($keys !== [] ? $this->only($keys) : $this->all()); return $this; } diff --git a/vendor/laravel/framework/src/Illuminate/Http/Exceptions/OriginMismatchException.php b/vendor/laravel/framework/src/Illuminate/Http/Exceptions/OriginMismatchException.php new file mode 100644 index 000000000..49c5a17e6 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Http/Exceptions/OriginMismatchException.php @@ -0,0 +1,10 @@ +container['config']->get('cors.paths', []); - if (isset($paths[$host])) { - return $paths[$host]; - } - - return array_filter($paths, function ($path) { + return $paths[$host] ?? array_filter($paths, function ($path) { return is_string($path); }); } diff --git a/vendor/laravel/framework/src/Illuminate/Http/Middleware/PrefersJsonResponses.php b/vendor/laravel/framework/src/Illuminate/Http/Middleware/PrefersJsonResponses.php new file mode 100644 index 000000000..2a930d7fa --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Http/Middleware/PrefersJsonResponses.php @@ -0,0 +1,65 @@ +headers->get('Accept'); + + if ($this->acceptHeaderIsBroad($accept)) { + if ($accept !== null) { + $request->headers->set('X-Original-Accept', $accept); + } + + $request->headers->set('Accept', 'application/json'); + } + + return $next($request); + } + + /** + * Determine if the given "Accept" header value is broad enough to be treated as JSON. + * + * The header is broad when it's missing or every media-type listed is wildcard ("*\/*" or "application/*"). + * + * @param string|null $accept + * @return bool + */ + protected function acceptHeaderIsBroad($accept) + { + if ($accept === null || trim($accept) === '') { + return true; + } + + foreach (explode(',', $accept) as $value) { + $value = strtolower(trim($value)); + + if ($value === '') { + continue; + } + + $pos = strpos($value, ';'); + + if ($pos !== false) { + $value = trim(substr($value, 0, $pos)); + } + + if (! in_array($value, ['*/*', 'application/*'], true)) { + return false; + } + } + + return true; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php b/vendor/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php index 379abb71a..17e35effd 100644 --- a/vendor/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php +++ b/vendor/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php @@ -50,7 +50,7 @@ class SetCacheHeaders { $response = $next($request); - if (! $request->isMethodCacheable() || (! $response->getContent() && ! $response instanceof BinaryFileResponse && ! $response instanceof StreamedResponse)) { + if (! $request->isMethodCacheable() || (! $response->getContent() && ! $request->isMethod('HEAD') && ! $response instanceof BinaryFileResponse && ! $response instanceof StreamedResponse)) { return $response; } diff --git a/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php b/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php index cd67581fe..3c4567bea 100644 --- a/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php +++ b/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php @@ -14,6 +14,8 @@ class ValidatePathEncoding * @param \Illuminate\Http\Request $request * @param \Closure $next * @return \Symfony\Component\HttpFoundation\Response + * + * @throws \Illuminate\Http\Exceptions\MalformedUrlException */ public function handle(Request $request, Closure $next) { diff --git a/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php b/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php index c79458d4f..a961a7196 100755 --- a/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php +++ b/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php @@ -51,21 +51,6 @@ class RedirectResponse extends BaseRedirectResponse return $this; } - /** - * Add multiple cookies to the response. - * - * @param array $cookies - * @return $this - */ - public function withCookies(array $cookies) - { - foreach ($cookies as $cookie) { - $this->headers->setCookie($cookie); - } - - return $this; - } - /** * Flash an array of input to the session. * diff --git a/vendor/laravel/framework/src/Illuminate/Http/Request.php b/vendor/laravel/framework/src/Illuminate/Http/Request.php index 35baf45af..f17695632 100644 --- a/vendor/laravel/framework/src/Illuminate/Http/Request.php +++ b/vendor/laravel/framework/src/Illuminate/Http/Request.php @@ -435,10 +435,21 @@ class Request extends SymfonyRequest implements Arrayable, ArrayAccess * * @deprecated use ->input() instead */ - #[\Override] public function get(string $key, mixed $default = null): mixed { - return parent::get($key, $default); + if ($this !== $result = $this->attributes->get($key, $this)) { + return $result; + } + + if ($this->query->has($key)) { + return $this->query->all()[$key]; + } + + if ($this->request->has($key)) { + return $this->request->all()[$key]; + } + + return $default; } /** @@ -451,7 +462,9 @@ class Request extends SymfonyRequest implements Arrayable, ArrayAccess public function json($key = null, $default = null) { if (! isset($this->json)) { - $this->json = new InputBag((array) json_decode($this->getContent() ?: '[]', true)); + $content = $this->getContent(); + + $this->json = new InputBag((array) json_decode(trim($content) === '' ? '[]' : $content, true)); } if (is_null($key)) { @@ -535,7 +548,8 @@ class Request extends SymfonyRequest implements Arrayable, ArrayAccess $newRequest->content = $request->content; if ($newRequest->isJson()) { - $newRequest->request = $newRequest->json(); + $newRequest->request->replace($newRequest->json()->all()); + $newRequest->setJson($newRequest->request); } return $newRequest; diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/Attributes/Collects.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/Attributes/Collects.php new file mode 100644 index 000000000..b92216d4a --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Http/Resources/Attributes/Collects.php @@ -0,0 +1,19 @@ + + */ + protected static $cachedCollectsAttributes = []; + /** * Map the given collection resource into its individual resources. * @@ -51,7 +59,17 @@ trait CollectsResources { $collects = null; - if ($this->collects) { + if (! array_key_exists(static::class, static::$cachedCollectsAttributes)) { + $attribute = (new ReflectionClass($this))->getAttributes(Collects::class); + + static::$cachedCollectsAttributes[static::class] = $attribute !== [] + ? $attribute[0]->newInstance()->class + : false; + } + + if (static::$cachedCollectsAttributes[static::class]) { + $collects = static::$cachedCollectsAttributes[static::class]; + } elseif ($this->collects) { $collects = $this->collects; } elseif (str_ends_with(class_basename($this), 'Collection') && (class_exists($class = Str::replaceLast('Collection', '', get_class($this))) || diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php index 9eeff4a5f..f37f9e110 100644 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php +++ b/vendor/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php @@ -2,11 +2,20 @@ namespace Illuminate\Http\Resources; +use Illuminate\Http\Resources\Attributes\PreserveKeys; use Illuminate\Support\Arr; use Illuminate\Support\Stringable; +use ReflectionClass; trait ConditionallyLoadsAttributes { + /** + * The cached preserve keys attribute values. + * + * @var array + */ + protected static $cachedPreserveKeysAttributes = []; + /** * Filter the given data, removing any optional values. * @@ -85,6 +94,14 @@ trait ConditionallyLoadsAttributes } } + if (! array_key_exists(static::class, static::$cachedPreserveKeysAttributes)) { + static::$cachedPreserveKeysAttributes[static::class] = (new ReflectionClass($this))->getAttributes(PreserveKeys::class) !== []; + } + + if (static::$cachedPreserveKeysAttributes[static::class]) { + return $data; + } + if (property_exists($this, 'preserveKeys') && $this->preserveKeys === true) { return $data; } diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php index 1c2eb3740..538395e3b 100644 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php +++ b/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php @@ -10,10 +10,12 @@ use Illuminate\Contracts\Support\Responsable; use Illuminate\Database\Eloquent\JsonEncodingException; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; +use Illuminate\Http\Resources\Attributes\PreserveKeys; use Illuminate\Http\Resources\ConditionallyLoadsAttributes; use Illuminate\Http\Resources\DelegatesToResource; use JsonException; use JsonSerializable; +use ReflectionClass; class JsonResource implements ArrayAccess, JsonSerializable, Responsable, UrlRoutable { @@ -86,7 +88,13 @@ class JsonResource implements ArrayAccess, JsonSerializable, Responsable, UrlRou public static function collection($resource) { return tap(static::newCollection($resource), function ($collection) { - if (property_exists(static::class, 'preserveKeys')) { + if (! array_key_exists(static::class, static::$cachedPreserveKeysAttributes)) { + static::$cachedPreserveKeysAttributes[static::class] = (new ReflectionClass(static::class))->getAttributes(PreserveKeys::class) !== []; + } + + if (static::$cachedPreserveKeysAttributes[static::class]) { + $collection->preserveKeys = true; + } elseif (property_exists(static::class, 'preserveKeys')) { $collection->preserveKeys = (new static([]))->preserveKeys === true; } }); diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/AnonymousResourceCollection.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/AnonymousResourceCollection.php index 9bb21a8d8..eb9478cd0 100644 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/AnonymousResourceCollection.php +++ b/vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/AnonymousResourceCollection.php @@ -5,9 +5,10 @@ namespace Illuminate\Http\Resources\JsonApi; use Illuminate\Container\Container; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; +use Illuminate\Http\Resources\Json\AnonymousResourceCollection as BaseAnonymousResourceCollection; use Illuminate\Support\Arr; -class AnonymousResourceCollection extends \Illuminate\Http\Resources\Json\AnonymousResourceCollection +class AnonymousResourceCollection extends BaseAnonymousResourceCollection { use Concerns\ResolvesJsonApiRequest; @@ -76,7 +77,7 @@ class AnonymousResourceCollection extends \Illuminate\Http\Resources\Json\Anonym /** * Resolve the HTTP request instance from container. * - * @return \Illuminate\Http\Resources\JsonApi\SparseRequest + * @return \Illuminate\Http\Resources\JsonApi\JsonApiRequest */ #[\Override] protected function resolveRequestFromContainer() diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/Concerns/ResolvesJsonApiElements.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/Concerns/ResolvesJsonApiElements.php index deaddf996..2c4dc62de 100644 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/Concerns/ResolvesJsonApiElements.php +++ b/vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/Concerns/ResolvesJsonApiElements.php @@ -42,7 +42,7 @@ trait ResolvesJsonApiElements public $loadedRelationshipsMap; /** - * Cached loaded relationships identifers. + * Cached loaded relationships identifiers. */ protected array $loadedRelationshipIdentifiers = []; @@ -53,6 +53,8 @@ trait ResolvesJsonApiElements /** * Specify the maximum relationship depth. + * + * @param non-negative-int $depth */ public static function maxRelationshipDepth(int $depth): void { @@ -81,14 +83,14 @@ trait ResolvesJsonApiElements /** * Resolve the resource's identifier. * - * @return string|int + * @return string * * @throws ResourceIdentificationException */ public function resolveResourceIdentifier(JsonApiRequest $request): string { if (! is_null($resourceId = $this->toId($request))) { - return $resourceId; + return (string) $resourceId; } if (! ($this->resource instanceof Model || method_exists($this->resource, 'getKey'))) { @@ -101,7 +103,6 @@ trait ResolvesJsonApiElements /** * Resolve the resource's type. * - * * @throws ResourceIdentificationException */ public function resolveResourceType(JsonApiRequest $request): string @@ -130,7 +131,6 @@ trait ResolvesJsonApiElements /** * Resolve the resource's attributes. * - * * @throws \RuntimeException */ protected function resolveResourceAttributes(JsonApiRequest $request, string $resourceType): array @@ -143,14 +143,13 @@ trait ResolvesJsonApiElements $data = $data->jsonSerialize(); } - $sparseFieldset = match ($this->usesRequestQueryString) { - true => $request->sparseFields($resourceType), - default => [], - }; + $usesSparseFieldset = $this->usesRequestQueryString && $request->hasSparseFieldset($resourceType); + + $sparseFieldset = $usesSparseFieldset ? $request->sparseFields($resourceType) : []; $data = (new Collection($data)) ->mapWithKeys(fn ($value, $key) => is_int($key) ? [$value => $this->resource->{$value}] : [$key => $value]) - ->when(! empty($sparseFieldset), fn ($attributes) => $attributes->only($sparseFieldset)) + ->when($usesSparseFieldset, fn ($attributes) => $attributes->only($sparseFieldset)) ->transform(fn ($value) => value($value, $request)) ->all(); @@ -208,7 +207,6 @@ trait ResolvesJsonApiElements $this->loadedRelationshipIdentifiers = (new LazyCollection(function () use ($request, $resourceRelationships) { foreach ($resourceRelationships as $relationName => $relationResolver) { $relatedModels = $relationResolver->handle($this->resource); - $relatedResourceClass = $relationResolver->resourceClass(); if (! is_null($relatedModels) && $this->includesPreviouslyLoadedRelationships === false) { if (! empty($relations = $request->sparseIncluded($relationName))) { @@ -281,7 +279,7 @@ trait ResolvesJsonApiElements return; } elseif ($relatedModel instanceof Pivot || - in_array(AsPivot::class, class_uses_recursive($relatedModel), true)) { + isset(class_uses_recursive($relatedModel)[AsPivot::class])) { yield $relationName => new MissingValue; return; diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/JsonApiRequest.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/JsonApiRequest.php index 4500c4afe..ea220630e 100644 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/JsonApiRequest.php +++ b/vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/JsonApiRequest.php @@ -32,6 +32,18 @@ class JsonApiRequest extends Request return $this->cachedSparseFields[$key] ?? []; } + /** + * Determine if a sparse fieldset was provided for the given resource type. + */ + public function hasSparseFieldset(string $key): bool + { + if (is_null($this->cachedSparseFields)) { + $this->sparseFields($key); + } + + return array_key_exists($key, $this->cachedSparseFields); + } + /** * Get the request's included relationships. */ @@ -62,6 +74,10 @@ class JsonApiRequest extends Request return transform($this->cachedSparseIncluded[$key] ?? null, function ($value) { return Collection::wrap($value) ->transform(function ($item) { + if (! is_string($item) || $item === '') { + return null; + } + $item = implode('.', Arr::take(explode('.', $item), JsonApiResource::$maxRelationshipDepth - 1)); return ! empty($item) ? $item : null; diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/JsonApiResource.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/JsonApiResource.php index 06100158d..d6bfe9f1b 100644 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/JsonApiResource.php +++ b/vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/JsonApiResource.php @@ -250,6 +250,6 @@ class JsonApiResource extends JsonResource parent::flushState(); static::$jsonApiInformation = []; - static::$maxRelationshipDepth = 3; + static::$maxRelationshipDepth = 5; } } diff --git a/vendor/laravel/framework/src/Illuminate/Http/Response.php b/vendor/laravel/framework/src/Illuminate/Http/Response.php index 6576f47f6..688847157 100755 --- a/vendor/laravel/framework/src/Illuminate/Http/Response.php +++ b/vendor/laravel/framework/src/Illuminate/Http/Response.php @@ -29,11 +29,15 @@ class Response extends SymfonyResponse */ public function __construct($content = '', $status = 200, array $headers = []) { - $this->headers = new ResponseHeaderBag($headers); + if (method_exists($this, 'setHeaders')) { + parent::__construct('', $status, new ResponseHeaderBag($headers)); + } else { + $this->headers = new ResponseHeaderBag($headers); + $this->setStatusCode($status); + $this->setProtocolVersion('1.0'); + } $this->setContent($content); - $this->setStatusCode($status); - $this->setProtocolVersion('1.0'); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php b/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php index 8d15152eb..00ec5cbfc 100644 --- a/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php +++ b/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php @@ -141,6 +141,21 @@ trait ResponseTrait return $this; } + /** + * Add multiple cookies to the response. + * + * @param array $cookies + * @return $this + */ + public function withCookies(array $cookies) + { + foreach ($cookies as $cookie) { + $this->headers->setCookie($cookie); + } + + return $this; + } + /** * Expire a cookie when sending the response. * diff --git a/vendor/laravel/framework/src/Illuminate/Http/composer.json b/vendor/laravel/framework/src/Illuminate/Http/composer.json index bd9b7c405..727c1c995 100755 --- a/vendor/laravel/framework/src/Illuminate/Http/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Http/composer.json @@ -2,48 +2,47 @@ "name": "illuminate/http", "description": "The Illuminate Http package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, "require": { - "php": "^8.2", + "php": "^8.3", "ext-filter": "*", "fruitcake/php-cors": "^1.3", "guzzlehttp/guzzle": "^7.8.2", "guzzlehttp/uri-template": "^1.0", - "illuminate/collections": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/session": "^12.0", - "illuminate/support": "^12.0", - "symfony/http-foundation": "^7.2.0", - "symfony/http-kernel": "^7.2.0", - "symfony/polyfill-php83": "^1.33", - "symfony/polyfill-php85": "^1.33", - "symfony/mime": "^7.2.0" + "illuminate/collections": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/session": "^13.0", + "illuminate/support": "^13.0", + "symfony/http-foundation": "^7.4.0 || ^8.0.0", + "symfony/http-kernel": "^7.4.0 || ^8.0.0", + "symfony/mime": "^7.4.0 || ^8.0.0", + "symfony/polyfill-php85": "^1.36" }, + "suggest": { + "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image()." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Http\\": "" } }, - "suggest": { - "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image()." - }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/JsonSchema/Deserializer.php b/vendor/laravel/framework/src/Illuminate/JsonSchema/Deserializer.php index a0f23f511..e149c0a2f 100644 --- a/vendor/laravel/framework/src/Illuminate/JsonSchema/Deserializer.php +++ b/vendor/laravel/framework/src/Illuminate/JsonSchema/Deserializer.php @@ -70,6 +70,12 @@ class Deserializer [$schema, $refs] = $this->resolveRef($schema, $refs); + if (($type = $this->buildAnyOfComposition($schema, $refs)) !== null) { + $this->applyCommon($type, $schema); + + return $type; + } + [$schema, $nullableFromUnion, $refs] = $this->normalizeUnions($schema, $refs); [$name, $nullableFromType] = $this->resolveType($schema); @@ -99,6 +105,53 @@ class Deserializer return $type; } + /** + * Build an anyOf composition unless it is the existing nullable single-schema form. + * + * @param array $schema + * @param array $refs + * + * @throws \InvalidArgumentException + */ + protected function buildAnyOfComposition(array $schema, array $refs = []): ?Types\AnyOfType + { + if (! isset($schema['anyOf']) || ! is_array($schema['anyOf'])) { + return null; + } + + $nullable = false; + $branches = []; + + foreach ($schema['anyOf'] as $branch) { + if (! is_array($branch)) { + throw new InvalidArgumentException('Unable to represent the schema for an anyOf branch; boolean schemas are not supported.'); + } + + [$branch, $branchRefs] = $this->resolveRef($branch, $refs); + + if ($this->isNullBranch($branch)) { + $nullable = true; + } else { + $branches[] = [$branch, $branchRefs]; + } + } + + if ($nullable && count($branches) === 1) { + return null; + } + + $type = new Types\AnyOfType(array_map( + fn (array $branch) => $this->build($branch[0], $branch[1]), + $branches, + )); + + if ($nullable) { + $type->nullable(); + } + + return $type; + } + /** * Build an object type from the given schema fragment. * @@ -324,31 +377,6 @@ class Deserializer return [$type, $nullable]; } - /** - * Ensure a multi-type union carries no type-specific constraint keywords. - * - * @param array $schema - * - * @throws \InvalidArgumentException - */ - protected function ensureUnionConstraintsAreSupported(array $schema): void - { - $keywords = [ - 'minLength', 'maxLength', 'pattern', 'format', - 'minimum', 'maximum', 'multipleOf', - 'items', 'minItems', 'maxItems', 'uniqueItems', - 'properties', 'required', 'additionalProperties', - ]; - - $unsupported = array_values(array_intersect($keywords, array_keys($schema))); - - if ($unsupported !== []) { - throw new InvalidArgumentException( - 'Type-specific keywords ['.implode(', ', $unsupported).'] are not supported on a multi-type JSON Schema union.' - ); - } - } - /** * Infer the type name when "type" is absent but the shape is unambiguous. * @@ -407,6 +435,31 @@ class Deserializer return $resolved; } + /** + * Ensure a multi-type union carries no type-specific constraint keywords. + * + * @param array $schema + * + * @throws \InvalidArgumentException + */ + protected function ensureUnionConstraintsAreSupported(array $schema): void + { + $keywords = [ + 'minLength', 'maxLength', 'pattern', 'format', + 'minimum', 'maximum', 'multipleOf', + 'items', 'minItems', 'maxItems', 'uniqueItems', + 'properties', 'required', 'additionalProperties', + ]; + + $unsupported = array_values(array_intersect($keywords, array_keys($schema))); + + if ($unsupported !== []) { + throw new InvalidArgumentException( + 'Type-specific keywords ['.implode(', ', $unsupported).'] are not supported on a multi-type JSON Schema union.' + ); + } + } + /** * Collapse "anyOf" / "oneOf" null branches into a single effective schema. * diff --git a/vendor/laravel/framework/src/Illuminate/JsonSchema/JsonSchema.php b/vendor/laravel/framework/src/Illuminate/JsonSchema/JsonSchema.php index d08f4b17a..0859c6061 100644 --- a/vendor/laravel/framework/src/Illuminate/JsonSchema/JsonSchema.php +++ b/vendor/laravel/framework/src/Illuminate/JsonSchema/JsonSchema.php @@ -7,6 +7,7 @@ use Illuminate\JsonSchema\Types\Type; /** * @method static Types\ObjectType object(Closure|array $properties = []) + * @method static Types\AnyOfType anyOf(Closure|array $schemas) * @method static Types\IntegerType integer() * @method static Types\NumberType number() * @method static Types\StringType string() diff --git a/vendor/laravel/framework/src/Illuminate/JsonSchema/JsonSchemaTypeFactory.php b/vendor/laravel/framework/src/Illuminate/JsonSchema/JsonSchemaTypeFactory.php index 5891e3faa..9df04d185 100644 --- a/vendor/laravel/framework/src/Illuminate/JsonSchema/JsonSchemaTypeFactory.php +++ b/vendor/laravel/framework/src/Illuminate/JsonSchema/JsonSchemaTypeFactory.php @@ -70,4 +70,18 @@ class JsonSchemaTypeFactory extends JsonSchema implements JsonSchemaContract { return new Types\UnionType($types); } + + /** + * Create a new anyOf schema instance. + * + * @param (Closure(JsonSchemaTypeFactory): array)|array $schemas + */ + public function anyOf(Closure|array $schemas): Types\AnyOfType + { + if ($schemas instanceof Closure) { + $schemas = $schemas($this); + } + + return new Types\AnyOfType($schemas); + } } diff --git a/vendor/laravel/framework/src/Illuminate/JsonSchema/Serializer.php b/vendor/laravel/framework/src/Illuminate/JsonSchema/Serializer.php index 21acdd4a4..a509d4ea6 100644 --- a/vendor/laravel/framework/src/Illuminate/JsonSchema/Serializer.php +++ b/vendor/laravel/framework/src/Illuminate/JsonSchema/Serializer.php @@ -25,6 +25,27 @@ class Serializer /** @var array $attributes */ $attributes = (fn () => get_object_vars($type))->call($type); + if ($type instanceof Types\AnyOfType) { + $attributes['anyOf'] = array_map( + static fn (Types\Type $schema) => static::serialize($schema), + $attributes['schemas'], + ); + + unset($attributes['schemas']); + + if (static::isNullable($type)) { + $attributes['anyOf'][] = ['type' => 'null']; + } + + return array_filter($attributes, static function (mixed $value, string $key) { + if (in_array($key, static::$ignore, true)) { + return false; + } + + return $value !== null; + }, ARRAY_FILTER_USE_BOTH); + } + $attributes['type'] = match (get_class($type)) { Types\ArrayType::class => 'array', Types\BooleanType::class => 'boolean', @@ -66,7 +87,7 @@ class Serializer )) ); - if (count($required) > 0) { + if ($required !== []) { $attributes['required'] = $required; } diff --git a/vendor/laravel/framework/src/Illuminate/JsonSchema/Types/AnyOfType.php b/vendor/laravel/framework/src/Illuminate/JsonSchema/Types/AnyOfType.php new file mode 100644 index 000000000..ef9ad44ab --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/JsonSchema/Types/AnyOfType.php @@ -0,0 +1,26 @@ + $schemas + */ + public function __construct(protected array $schemas) + { + $this->schemas = array_values($schemas); + } + + /** + * Get the anyOf schemas. + * + * @return array + */ + public function schemas(): array + { + return $this->schemas; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/JsonSchema/Types/ArrayType.php b/vendor/laravel/framework/src/Illuminate/JsonSchema/Types/ArrayType.php index 7059cc264..65f49c00e 100644 --- a/vendor/laravel/framework/src/Illuminate/JsonSchema/Types/ArrayType.php +++ b/vendor/laravel/framework/src/Illuminate/JsonSchema/Types/ArrayType.php @@ -59,9 +59,7 @@ class ArrayType extends Type */ public function unique(bool $unique = true): static { - if ($unique) { - $this->uniqueItems = true; - } + $this->uniqueItems = $unique ?: null; return $this; } diff --git a/vendor/laravel/framework/src/Illuminate/JsonSchema/Types/Type.php b/vendor/laravel/framework/src/Illuminate/JsonSchema/Types/Type.php index 4443342dd..021e271c9 100644 --- a/vendor/laravel/framework/src/Illuminate/JsonSchema/Types/Type.php +++ b/vendor/laravel/framework/src/Illuminate/JsonSchema/Types/Type.php @@ -46,9 +46,7 @@ abstract class Type extends JsonSchema */ public function required(bool $required = true): static { - if ($required) { - $this->required = true; - } + $this->required = $required ?: null; return $this; } @@ -58,9 +56,7 @@ abstract class Type extends JsonSchema */ public function nullable(bool $nullable = true): static { - if ($nullable) { - $this->nullable = true; - } + $this->nullable = $nullable ?: null; return $this; } diff --git a/vendor/laravel/framework/src/Illuminate/JsonSchema/composer.json b/vendor/laravel/framework/src/Illuminate/JsonSchema/composer.json index eaadad01a..714556668 100644 --- a/vendor/laravel/framework/src/Illuminate/JsonSchema/composer.json +++ b/vendor/laravel/framework/src/Illuminate/JsonSchema/composer.json @@ -2,33 +2,33 @@ "name": "illuminate/json-schema", "description": "The Illuminate Json Schema package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.1", - "illuminate/contracts": "^10.50.0|^11.47.0|^12.40.2" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "illuminate/contracts": "^13.0" + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\JsonSchema\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Log/Context/Repository.php b/vendor/laravel/framework/src/Illuminate/Log/Context/Repository.php index 4950639a0..5b8158270 100644 --- a/vendor/laravel/framework/src/Illuminate/Log/Context/Repository.php +++ b/vendor/laravel/framework/src/Illuminate/Log/Context/Repository.php @@ -607,7 +607,7 @@ class Repository * Handle unserialize exceptions using the given callback. * * @param callable|null $callback - * @return static + * @return $this */ public function handleUnserializeExceptionsUsing($callback) { diff --git a/vendor/laravel/framework/src/Illuminate/Log/Formatters/JsonFormatter.php b/vendor/laravel/framework/src/Illuminate/Log/Formatters/JsonFormatter.php new file mode 100644 index 000000000..54b6f119a --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Log/Formatters/JsonFormatter.php @@ -0,0 +1,58 @@ +make(ExceptionHandler::class); + } catch (Throwable) { + return array_merge($this->getExceptionContext($e, $depth), $response); + } + + if ((! method_exists($handler, 'isReporting')) || ! $handler->isReporting($e)) { + if (method_exists($handler, 'buildContextForException') + && is_array($normalizedHandlerExceptionContext = $this->normalize($handler->buildContextForException($e), $depth + 1)) + ) { + $response = array_merge( + $normalizedHandlerExceptionContext, + $response + ); + } elseif (method_exists($e, 'context')) { + $response = array_merge($this->getExceptionContext($e, $depth), $response); + } + } + + return $response; + } + + /** + * Extract the context from the exception if available. + * + * @return array + */ + protected function getExceptionContext(Throwable $e, int $depth): array + { + if (! method_exists($e, 'context')) { + return []; + } + + try { + $exceptionContext = $this->normalize($e->context(), $depth + 1); + } catch (Throwable) { + return []; + } + + return is_array($exceptionContext) ? $exceptionContext : []; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Log/LogManager.php b/vendor/laravel/framework/src/Illuminate/Log/LogManager.php index 2987694f1..f233de128 100644 --- a/vendor/laravel/framework/src/Illuminate/Log/LogManager.php +++ b/vendor/laravel/framework/src/Illuminate/Log/LogManager.php @@ -5,6 +5,7 @@ namespace Illuminate\Log; use Closure; use Illuminate\Contracts\Log\ContextLogProcessor; use Illuminate\Support\Collection; +use Illuminate\Support\RebindsCallbacksToSelf; use Illuminate\Support\Str; use InvalidArgumentException; use Monolog\Formatter\LineFormatter; @@ -21,14 +22,18 @@ use Monolog\Logger as Monolog; use Monolog\Processor\ProcessorInterface; use Monolog\Processor\PsrLogMessageProcessor; use Psr\Log\LoggerInterface; +use ReflectionException; +use RuntimeException; use Throwable; +use function Illuminate\Support\enum_value; + /** * @mixin \Illuminate\Log\Logger */ class LogManager implements LoggerInterface { - use ParsesLogConfiguration; + use ParsesLogConfiguration, RebindsCallbacksToSelf; /** * The application instance. @@ -98,7 +103,7 @@ class LogManager implements LoggerInterface public function stack(array $channels, $channel = null) { return (new Logger( - $this->createStackDriver(compact('channels', 'channel')), + $this->createStackDriver(['channels' => $channels, 'name' => $channel]), $this->app['events'] ))->withContext($this->sharedContext); } @@ -106,7 +111,7 @@ class LogManager implements LoggerInterface /** * Get a log channel instance. * - * @param string|null $channel + * @param \UnitEnum|string|null $channel * @return \Psr\Log\LoggerInterface */ public function channel($channel = null) @@ -117,12 +122,12 @@ class LogManager implements LoggerInterface /** * Get a log driver instance. * - * @param string|null $driver + * @param \UnitEnum|string|null $driver * @return \Psr\Log\LoggerInterface */ public function driver($driver = null) { - return $this->get($this->parseDriver($driver)); + return $this->get($this->parseDriver(enum_value($driver))); } /** @@ -578,12 +583,12 @@ class LogManager implements LoggerInterface /** * Set the default log driver name. * - * @param string $name + * @param \UnitEnum|string $name * @return void */ public function setDefaultDriver($name) { - $this->app['config']['logging.default'] = $name; + $this->app['config']['logging.default'] = enum_value($name); } /** @@ -598,7 +603,13 @@ class LogManager implements LoggerInterface */ public function extend($driver, Closure $callback) { - $this->customCreators[$driver] = $callback->bindTo($this, $this); + try { + $callback = $this->bindCallbackToSelf($callback) ?? throw new RuntimeException('Unable to bind custom driver callback'); + } catch (ReflectionException $e) { + throw new RuntimeException('Unable to bind custom driver callback', previous: $e); + } + + $this->customCreators[$driver] = $callback; return $this; } diff --git a/vendor/laravel/framework/src/Illuminate/Log/composer.json b/vendor/laravel/framework/src/Illuminate/Log/composer.json index 201883d80..feda1753d 100755 --- a/vendor/laravel/framework/src/Illuminate/Log/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Log/composer.json @@ -2,39 +2,39 @@ "name": "illuminate/log", "description": "The Illuminate Log package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, "require": { - "php": "^8.2", - "illuminate/contracts": "^12.0", - "illuminate/support": "^12.0", + "php": "^8.3", + "illuminate/contracts": "^13.0", + "illuminate/support": "^13.0", "monolog/monolog": "^3.0", - "psr/log": "^1.0|^2.0|^3.0" + "psr/log": "^1.0 || ^2.0 || ^3.0" }, "provide": { - "psr/log-implementation": "1.0|2.0|3.0" + "psr/log-implementation": "1.0 || 2.0 || 3.0" }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Log\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Macroable/composer.json b/vendor/laravel/framework/src/Illuminate/Macroable/composer.json index 38dc6f161..76bc186fd 100644 --- a/vendor/laravel/framework/src/Illuminate/Macroable/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Macroable/composer.json @@ -2,32 +2,32 @@ "name": "illuminate/macroable", "description": "The Illuminate Macroable package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, "require": { "php": "^8.2" }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Support\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Attachment.php b/vendor/laravel/framework/src/Illuminate/Mail/Attachment.php index c0d6fa856..5f34bb98b 100644 --- a/vendor/laravel/framework/src/Illuminate/Mail/Attachment.php +++ b/vendor/laravel/framework/src/Illuminate/Mail/Attachment.php @@ -192,6 +192,8 @@ class Attachment * @param \Illuminate\Mail\Mailable|\Illuminate\Mail\Message|\Illuminate\Notifications\Messages\MailMessage $mail * @param array $options * @return mixed + * + * @throws \RuntimeException */ public function attachTo($mail, $options = []) { diff --git a/vendor/laravel/framework/src/Illuminate/Mail/MailManager.php b/vendor/laravel/framework/src/Illuminate/Mail/MailManager.php index 78c02a9f1..afd28955c 100644 --- a/vendor/laravel/framework/src/Illuminate/Mail/MailManager.php +++ b/vendor/laravel/framework/src/Illuminate/Mail/MailManager.php @@ -8,6 +8,7 @@ use Closure; use Illuminate\Contracts\Mail\Factory as FactoryContract; use Illuminate\Log\LogManager; use Illuminate\Mail\Transport\ArrayTransport; +use Illuminate\Mail\Transport\CloudflareTransport; use Illuminate\Mail\Transport\LogTransport; use Illuminate\Mail\Transport\ResendTransport; use Illuminate\Mail\Transport\SesTransport; @@ -29,6 +30,8 @@ use Symfony\Component\Mailer\Transport\Smtp\EsmtpTransport; use Symfony\Component\Mailer\Transport\Smtp\EsmtpTransportFactory; use Symfony\Component\Mailer\Transport\Smtp\Stream\SocketStream; +use function Illuminate\Support\enum_value; + /** * @mixin \Illuminate\Mail\Mailer */ @@ -68,12 +71,12 @@ class MailManager implements FactoryContract /** * Get a mailer instance by name. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return \Illuminate\Contracts\Mail\Mailer */ public function mailer($name = null) { - $name = $name ?: $this->getDefaultDriver(); + $name = enum_value($name) ?: $this->getDefaultDriver(); return $this->mailers[$name] = $this->get($name); } @@ -81,7 +84,7 @@ class MailManager implements FactoryContract /** * Get a mailer driver instance. * - * @param string|null $driver + * @param \UnitEnum|string|null $driver * @return \Illuminate\Mail\Mailer */ public function driver($driver = null) @@ -321,6 +324,25 @@ class MailManager implements FactoryContract ); } + /** + * Create an instance of the Cloudflare Transport driver. + * + * @param array $config + * @return \Illuminate\Mail\Transport\CloudflareTransport + */ + protected function createCloudflareTransport(array $config) + { + return new CloudflareTransport( + $config['account_id'] ?? + $this->app['config']->get('services.cloudflare.account_id'), + $config['token'] ?? + $config['key'] ?? + $this->app['config']->get('services.cloudflare.token') ?? + $this->app['config']->get('services.cloudflare.key'), + $this->getHttpClient($config), + ); + } + /** * Create an instance of the Symfony Mail Transport driver. * @@ -492,7 +514,7 @@ class MailManager implements FactoryContract $address = Arr::get($config, $type, $this->app['config']['mail.'.$type]); if (is_array($address) && isset($address['address'])) { - $mailer->{'always'.Str::studly($type)}($address['address'], $address['name']); + $mailer->{'always'.Str::studly($type)}($address['address'], $address['name'] ?? null); } } @@ -537,11 +559,13 @@ class MailManager implements FactoryContract /** * Set the default mail driver name. * - * @param string $name + * @param \UnitEnum|string $name * @return void */ - public function setDefaultDriver(string $name) + public function setDefaultDriver($name) { + $name = enum_value($name); + if ($this->app['config']['mail.driver']) { $this->app['config']['mail.driver'] = $name; } @@ -552,12 +576,12 @@ class MailManager implements FactoryContract /** * Disconnect the given mailer and remove from local cache. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return void */ public function purge($name = null) { - $name = $name ?: $this->getDefaultDriver(); + $name = enum_value($name) ?: $this->getDefaultDriver(); unset($this->mailers[$name]); } diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php b/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php index 836f71998..e49797964 100644 --- a/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php +++ b/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php @@ -12,6 +12,9 @@ use Illuminate\Contracts\Queue\Factory as Queue; use Illuminate\Contracts\Support\Htmlable; use Illuminate\Contracts\Support\Renderable; use Illuminate\Contracts\Translation\HasLocalePreference; +use Illuminate\Queue\Attributes\Connection; +use Illuminate\Queue\Attributes\Delay; +use Illuminate\Queue\Attributes\Queue as QueueAttribute; use Illuminate\Support\Collection; use Illuminate\Support\EncodedHtmlString; use Illuminate\Support\HtmlString; @@ -20,6 +23,7 @@ use Illuminate\Support\Traits\Conditionable; use Illuminate\Support\Traits\ForwardsCalls; use Illuminate\Support\Traits\Localizable; use Illuminate\Support\Traits\Macroable; +use Illuminate\Support\Traits\ReadsClassAttributes; use Illuminate\Support\Traits\Tappable; use Illuminate\Testing\Constraints\SeeInOrder; use PHPUnit\Framework\Assert as PHPUnit; @@ -31,7 +35,7 @@ use Symfony\Component\Mime\Address; class Mailable implements MailableContract, Renderable { - use Conditionable, ForwardsCalls, Localizable, Tappable, Macroable { + use Conditionable, ForwardsCalls, Localizable, ReadsClassAttributes, Tappable, Macroable { __call as macroCall; } @@ -224,13 +228,23 @@ class Mailable implements MailableContract, Renderable */ public function queue(Queue $queue) { - if (isset($this->delay)) { - return $this->later($this->delay, $queue); + $delay = $this->getAttributeValue($this, Delay::class, 'delay'); + + if (isset($delay)) { + return $this->later($delay, $queue); } - $connection = property_exists($this, 'connection') ? $this->connection : null; + $connection = $this->getAttributeValue($this, Connection::class, 'connection'); - $queueName = property_exists($this, 'queue') ? $this->queue : null; + if (is_null($connection) && method_exists($queue, 'resolveConnectionFromQueueRoute')) { + $connection = $queue->resolveConnectionFromQueueRoute($this); + } + + $queueName = $this->getAttributeValue($this, QueueAttribute::class, 'queue'); + + if (is_null($queueName) && method_exists($queue, 'resolveQueueFromQueueRoute')) { + $queueName = $queue->resolveQueueFromQueueRoute($this); + } return $queue->connection($connection)->pushOn( $queueName ?: null, $this->newQueuedJob() @@ -246,9 +260,17 @@ class Mailable implements MailableContract, Renderable */ public function later($delay, Queue $queue) { - $connection = property_exists($this, 'connection') ? $this->connection : null; + $connection = $this->getAttributeValue($this, Connection::class, 'connection'); - $queueName = property_exists($this, 'queue') ? $this->queue : null; + $queueName = $this->getAttributeValue($this, QueueAttribute::class, 'queue'); + + if (is_null($connection) && method_exists($queue, 'resolveConnectionFromQueueRoute')) { + $connection = $queue->resolveConnectionFromQueueRoute($this); + } + + if (is_null($queueName) && method_exists($queue, 'resolveQueueFromQueueRoute')) { + $queueName = $queue->resolveQueueFromQueueRoute($this); + } $job = $this->newQueuedJob(); @@ -787,7 +809,7 @@ class Mailable implements MailableContract, Renderable if (is_array($recipient)) { if (array_values($recipient) === $recipient) { return (object) array_map(function ($email) { - return compact('email'); + return ['email' => $email]; }, $recipient); } @@ -977,7 +999,7 @@ class Mailable implements MailableContract, Renderable } $this->attachments = (new Collection($this->attachments)) - ->push(compact('file', 'options')) + ->push(['file' => $file, 'options' => $options]) ->unique('file') ->all(); @@ -1142,7 +1164,7 @@ class Mailable implements MailableContract, Renderable public function attachData($data, $name, array $options = []) { $this->rawAttachments = (new Collection($this->rawAttachments)) - ->push(compact('data', 'name', 'options')) + ->push(['data' => $data, 'name' => $name, 'options' => $options]) ->unique(fn ($file) => $file['name'].$file['data']) ->all(); @@ -1530,6 +1552,28 @@ class Mailable implements MailableContract, Renderable * @param array $options * @return $this */ + public function assertHasNoAttachments() + { + $this->renderForAssertions(); + + PHPUnit::assertEmpty( + $this->attachments, + 'Expected no attachments, but found ['.count($this->attachments).'] file attachment(s).' + ); + + PHPUnit::assertEmpty( + $this->rawAttachments, + 'Expected no attachments, but found ['.count($this->rawAttachments).'] raw data attachment(s).' + ); + + PHPUnit::assertEmpty( + $this->diskAttachments, + 'Expected no attachments, but found ['.count($this->diskAttachments).'] storage attachment(s).' + ); + + return $this; + } + public function assertHasAttachment($file, array $options = []) { $this->renderForAssertions(); diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php b/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php index 75e02b74f..6d67a7e1a 100755 --- a/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php +++ b/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php @@ -113,7 +113,7 @@ class Mailer implements MailerContract, MailQueueContract */ public function alwaysFrom($address, $name = null) { - $this->from = compact('address', 'name'); + $this->from = ['address' => $address, 'name' => $name]; } /** @@ -125,7 +125,7 @@ class Mailer implements MailerContract, MailQueueContract */ public function alwaysReplyTo($address, $name = null) { - $this->replyTo = compact('address', 'name'); + $this->replyTo = ['address' => $address, 'name' => $name]; } /** @@ -136,7 +136,7 @@ class Mailer implements MailerContract, MailQueueContract */ public function alwaysReturnPath($address) { - $this->returnPath = compact('address'); + $this->returnPath = ['address' => $address]; } /** @@ -148,7 +148,7 @@ class Mailer implements MailerContract, MailQueueContract */ public function alwaysTo($address, $name = null) { - $this->to = compact('address', 'name'); + $this->to = ['address' => $address, 'name' => $name]; } /** diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Message.php b/vendor/laravel/framework/src/Illuminate/Mail/Message.php index faef13ffb..9cc67410d 100755 --- a/vendor/laravel/framework/src/Illuminate/Mail/Message.php +++ b/vendor/laravel/framework/src/Illuminate/Mail/Message.php @@ -396,7 +396,7 @@ class Message }, function ($data) use ($file) { $this->message->addPart( - $part = $part = (new DataPart($data(), $file->as, $file->mime))->asInline() + $part = (new DataPart($data(), $file->as, $file->mime))->asInline() ); return "cid:{$part->getContentId()}"; diff --git a/vendor/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php b/vendor/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php index a5342da41..df987cde9 100644 --- a/vendor/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php +++ b/vendor/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php @@ -7,11 +7,18 @@ use Illuminate\Contracts\Mail\Factory as MailFactory; use Illuminate\Contracts\Mail\Mailable as MailableContract; use Illuminate\Contracts\Queue\ShouldBeEncrypted; use Illuminate\Contracts\Queue\ShouldQueueAfterCommit; +use Illuminate\Queue\Attributes\Backoff; +use Illuminate\Queue\Attributes\Connection; +use Illuminate\Queue\Attributes\MaxExceptions; +use Illuminate\Queue\Attributes\Queue as QueueAttribute; +use Illuminate\Queue\Attributes\ReadsQueueAttributes; +use Illuminate\Queue\Attributes\Timeout; +use Illuminate\Queue\Attributes\Tries; use Illuminate\Queue\InteractsWithQueue; class SendQueuedMailable { - use Queueable, InteractsWithQueue; + use InteractsWithQueue, Queueable, ReadsQueueAttributes; /** * The mailable message instance. @@ -37,7 +44,7 @@ class SendQueuedMailable /** * The maximum number of unhandled exceptions to allow before failing. * - * @return int|null + * @var int|null */ public $maxExceptions; @@ -63,12 +70,12 @@ class SendQueuedMailable $this->afterCommit = property_exists($mailable, 'afterCommit') ? $mailable->afterCommit : null; } - $this->connection = property_exists($mailable, 'connection') ? $mailable->connection : null; - $this->maxExceptions = property_exists($mailable, 'maxExceptions') ? $mailable->maxExceptions : null; - $this->queue = property_exists($mailable, 'queue') ? $mailable->queue : null; + $this->connection = $this->getAttributeValue($mailable, Connection::class, 'connection'); + $this->maxExceptions = $this->getAttributeValue($mailable, MaxExceptions::class, 'maxExceptions'); + $this->queue = $this->getAttributeValue($mailable, QueueAttribute::class, 'queue'); $this->shouldBeEncrypted = $mailable instanceof ShouldBeEncrypted; - $this->timeout = property_exists($mailable, 'timeout') ? $mailable->timeout : null; - $this->tries = property_exists($mailable, 'tries') ? $mailable->tries : null; + $this->timeout = $this->getAttributeValue($mailable, Timeout::class, 'timeout'); + $this->tries = $this->getAttributeValue($mailable, Tries::class, 'tries'); } /** @@ -89,11 +96,13 @@ class SendQueuedMailable */ public function backoff() { - if (! method_exists($this->mailable, 'backoff') && ! isset($this->mailable->backoff)) { - return; + $backoff = $this->getAttributeValue($this->mailable, Backoff::class, 'backoff'); + + if (method_exists($this->mailable, 'backoff')) { + $backoff = $this->mailable->backoff(); } - return $this->mailable->backoff ?? $this->mailable->backoff(); + return $backoff; } /** diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/CloudflareTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/CloudflareTransport.php new file mode 100644 index 000000000..2681df119 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Mail/Transport/CloudflareTransport.php @@ -0,0 +1,186 @@ +client = $client ?? HttpClient::create(); + } + + /** + * {@inheritDoc} + * + * @throws TransportException + */ + protected function doSend(SentMessage $message): void + { + try { + $response = $this->client->request('POST', sprintf( + 'https://api.cloudflare.com/client/v4/accounts/%s/email/sending/send', + $this->accountId, + ), [ + 'auth_bearer' => $this->key, + 'headers' => ['Accept' => 'application/json'], + 'json' => $this->getPayload($message), + ]); + + $result = $response->toArray(false); + } catch (Exception $exception) { + throw new TransportException( + sprintf('Request to Cloudflare API failed. Reason: %s.', $exception->getMessage()), + is_int($exception->getCode()) ? $exception->getCode() : 0, + $exception, + ); + } + + throw_if( + $response->getStatusCode() !== Response::HTTP_OK, + TransportException::class, + $result['errors'][0]['message'] ?? 'Unknown error', + $response->getStatusCode(), + ); + } + + /** + * Get the Cloudflare payload for the given message. + */ + protected function getPayload(SentMessage $message): array + { + $email = MessageConverter::toEmail($message->getOriginalMessage()); + + $envelope = $message->getEnvelope(); + + return array_filter([ + 'from' => $this->formatAddress($envelope->getSender()), + 'to' => $this->stringifyAddresses($this->getRecipients($email, $envelope)), + 'cc' => $this->stringifyAddresses($email->getCc()), + 'bcc' => $this->stringifyAddresses($email->getBcc()), + 'reply_to' => ($replyTo = $email->getReplyTo()) ? $this->formatAddress($replyTo[0]) : null, + 'subject' => $email->getSubject(), + 'html' => $email->getHtmlBody(), + 'text' => $email->getTextBody(), + 'headers' => $this->getCustomHeaders($email), + 'attachments' => $this->getAttachments($email), + ], fn ($value) => $value !== null && $value !== [] && $value !== ''); + } + + /** + * Get the recipients without CC or BCC. + */ + protected function getRecipients(Email $email, Envelope $envelope): array + { + return array_filter($envelope->getRecipients(), function (Address $address) use ($email) { + return in_array($address, array_merge($email->getCc(), $email->getBcc()), true) === false; + }); + } + + /** + * Get the custom headers for the email, excluding the standard ones. + */ + protected function getCustomHeaders(Email $email): array + { + $headers = []; + + $headersToBypass = ['from', 'to', 'cc', 'bcc', 'reply-to', 'sender', 'subject', 'content-type']; + + foreach ($email->getHeaders()->all() as $name => $header) { + if (in_array($name, $headersToBypass, true)) { + continue; + } + + $headers[$header->getName()] = $header->getBodyAsString(); + } + + return $headers; + } + + /** + * Get the attachments formatted for the Cloudflare API. + */ + protected function getAttachments(Email $email): array + { + $attachments = []; + + foreach ($email->getAttachments() as $attachment) { + $headers = $attachment->getPreparedHeaders(); + $disposition = $headers->getHeaderBody('Content-Disposition') ?: 'attachment'; + $filename = $headers->getHeaderParameter('Content-Disposition', 'filename'); + + $item = [ + 'content' => str_replace("\r\n", '', $attachment->bodyToString()), + 'filename' => $filename, + 'type' => $headers->get('Content-Type')->getBody(), + 'disposition' => $disposition, + ]; + + if ($disposition === 'inline') { + $item['content_id'] = $attachment->hasContentId() ? $attachment->getContentId() : $filename; + } + + $attachments[] = $item; + } + + return $attachments; + } + + /** + * Get the address formatted for the Cloudflare API. + * + * @return string|array + */ + protected function formatAddress(Address $address) + { + if ($address->getName()) { + return [ + 'name' => $address->getName(), + 'address' => $address->getAddress(), + ]; + } + + return $address->getAddress(); + } + + /** + * Get multiple addresses formatted as strings for the Cloudflare API. + */ + protected function stringifyAddresses(array $addresses): array + { + return array_map(fn (Address $a) => $a->getAddress(), $addresses); + } + + /** + * Get the string representation of the transport. + */ + public function __toString(): string + { + return 'cloudflare'; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/ResendTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/ResendTransport.php index 8de0774e9..42cb0b69c 100644 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/ResendTransport.php +++ b/vendor/laravel/framework/src/Illuminate/Mail/Transport/ResendTransport.php @@ -48,6 +48,9 @@ class ResendTransport extends AbstractTransport /** * {@inheritDoc} + * + * @throws \Symfony\Component\Mailer\Exception\TransportException + * @throws \Throwable */ protected function doSend(SentMessage $message): void { diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php index f5dbd69e0..926e275b5 100644 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php +++ b/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php @@ -44,6 +44,8 @@ class SesTransport extends AbstractTransport implements Stringable /** * {@inheritDoc} + * + * @throws \Symfony\Component\Mailer\Exception\TransportException */ protected function doSend(SentMessage $message): void { diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesV2Transport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesV2Transport.php index 6138bf2b0..3052a0826 100644 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesV2Transport.php +++ b/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesV2Transport.php @@ -44,6 +44,8 @@ class SesV2Transport extends AbstractTransport implements Stringable /** * {@inheritDoc} + * + * @throws \Symfony\Component\Mailer\Exception\TransportException */ protected function doSend(SentMessage $message): void { @@ -98,7 +100,7 @@ class SesV2Transport extends AbstractTransport implements Stringable } /** - * Extract the SES list managenent options, if applicable. + * Extract the SES list management options, if applicable. * * @param \Symfony\Component\Mailer\SentMessage $message * @return array|null diff --git a/vendor/laravel/framework/src/Illuminate/Mail/composer.json b/vendor/laravel/framework/src/Illuminate/Mail/composer.json index dd6eabe4c..067f57fd0 100755 --- a/vendor/laravel/framework/src/Illuminate/Mail/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Mail/composer.json @@ -2,49 +2,49 @@ "name": "illuminate/mail", "description": "The Illuminate Mail package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, "require": { - "php": "^8.2", - "illuminate/collections": "^12.0", - "illuminate/container": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/support": "^12.0", + "php": "^8.3", + "illuminate/collections": "^13.0", + "illuminate/container": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/support": "^13.0", "league/commonmark": "^2.7", - "psr/log": "^1.0|^2.0|^3.0", - "symfony/mailer": "^7.2.0", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "symfony/mailer": "^7.4.0 || ^8.0.0", "tijsverkoyen/css-to-inline-styles": "^2.2.5" }, + "suggest": { + "aws/aws-sdk-php": "Required to use the SES mail driver (^3.322.9).", + "illuminate/http": "Required to create an attachment from an UploadedFile instance (^13.0).", + "resend/resend-php": "Required to enable support for the Resend mail transport (^1.0).", + "symfony/http-client": "Required to use the Symfony API mail transports (^7.4 || ^8.0).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.4 || ^8.0).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.4 || ^8.0)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Mail\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "suggest": { - "aws/aws-sdk-php": "Required to use the SES mail driver (^3.322.9).", - "illuminate/http": "Required to create an attachment from an UploadedFile instance (^12.0).", - "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0|^1.0).", - "symfony/http-client": "Required to use the Symfony API mail transports (^7.2).", - "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.2).", - "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.2)." - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php b/vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php index 7b02e85ef..b06ab6292 100644 --- a/vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php +++ b/vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php @@ -7,12 +7,13 @@ use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\Notifications\Dispatcher as DispatcherContract; use Illuminate\Contracts\Notifications\Factory as FactoryContract; use Illuminate\Support\Manager; +use Illuminate\Support\Queue\Concerns\ResolvesQueueRoutes; use Illuminate\Support\Traits\Macroable; use InvalidArgumentException; class ChannelManager extends Manager implements DispatcherContract, FactoryContract { - use Macroable; + use Macroable, ResolvesQueueRoutes; /** * The resolved notification sender instance. @@ -63,7 +64,7 @@ class ChannelManager extends Manager implements DispatcherContract, FactoryContr /** * Get a channel instance. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return mixed */ public function channel($name = null) @@ -71,6 +72,17 @@ class ChannelManager extends Manager implements DispatcherContract, FactoryContr return $this->driver($name); } + /** + * Get a driver instance. + * + * @param \UnitEnum|string|null $driver + * @return mixed + */ + public function driver($driver = null) + { + return parent::driver($driver); + } + /** * Create an instance of the database driver. * diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php index f65622863..edcc2aae0 100644 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php +++ b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php @@ -273,7 +273,7 @@ class MailMessage extends SimpleMessage implements Renderable return $file->attachTo($this); } - $this->attachments[] = compact('file', 'options'); + $this->attachments[] = ['file' => $file, 'options' => $options]; return $this; } @@ -307,11 +307,48 @@ class MailMessage extends SimpleMessage implements Renderable */ public function attachData($data, $name, array $options = []) { - $this->rawAttachments[] = compact('data', 'name', 'options'); + $this->rawAttachments[] = ['data' => $data, 'name' => $name, 'options' => $options]; return $this; } + /** + * Attach a file to the message from storage. + * + * @param string $path + * @param string|null $name + * @param array $options + * @return $this + */ + public function attachFromStorage($path, $name = null, array $options = []) + { + return $this->attachFromStorageDisk(null, $path, $name, $options); + } + + /** + * Attach a file to the message from storage. + * + * @param string|null $disk + * @param string $path + * @param string|null $name + * @param array $options + * @return $this + */ + public function attachFromStorageDisk($disk, $path, $name = null, array $options = []) + { + $attachment = Attachment::fromStorageDisk($disk, $path); + + if (! is_null($name)) { + $attachment->as($name); + } + + if (isset($options['mime'])) { + $attachment->withMime($options['mime']); + } + + return $this->attach($attachment); + } + /** * Add a tag header to the message when supported by the underlying transport. * diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php b/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php index fba35f0d2..c647737a8 100644 --- a/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php +++ b/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php @@ -9,6 +9,10 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Notifications\Events\NotificationFailed; use Illuminate\Notifications\Events\NotificationSending; use Illuminate\Notifications\Events\NotificationSent; +use Illuminate\Queue\Attributes\Connection; +use Illuminate\Queue\Attributes\Delay; +use Illuminate\Queue\Attributes\Queue as QueueAttribute; +use Illuminate\Queue\Attributes\ReadsQueueAttributes; use Illuminate\Support\Collection; use Illuminate\Support\Str; use Illuminate\Support\Traits\Localizable; @@ -18,7 +22,7 @@ use Throwable; class NotificationSender { - use Localizable; + use Localizable, ReadsQueueAttributes; /** * The notification manager instance. @@ -231,23 +235,25 @@ class NotificationSender $notification->locale = $this->locale; } - $connection = $notification->connection; + $connection = $this->getAttributeValue($notification, Connection::class, 'connection') + ?? $this->manager->resolveConnectionFromQueueRoute($notification) + ?? null; if (method_exists($notification, 'viaConnections')) { $connection = $notification->viaConnections()[$channel] ?? $connection; } - $queue = $notification->queue; + $queue = $this->getAttributeValue($notification, QueueAttribute::class, 'queue') + ?? $this->manager->resolveQueueFromQueueRoute($notification) + ?? null; if (method_exists($notification, 'viaQueues')) { $queue = $notification->viaQueues()[$channel] ?? $queue; } - $delay = $notification->delay; - - if (method_exists($notification, 'withDelay')) { - $delay = $notification->withDelay($notifiable, $channel) ?? null; - } + $delay = method_exists($notification, 'withDelay') + ? ($notification->withDelay($notifiable, $channel) ?? null) + : $this->getAttributeValue($notification, Delay::class, 'delay'); $messageGroup = $notification->messageGroup ?? (method_exists($notification, 'messageGroup') ? $notification->messageGroup() : null); diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php b/vendor/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php index bdd6fc8b4..bc7c52772 100644 --- a/vendor/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php +++ b/vendor/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php @@ -8,13 +8,19 @@ use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Queue\ShouldQueueAfterCommit; use Illuminate\Database\Eloquent\Collection as EloquentCollection; use Illuminate\Database\Eloquent\Model; +use Illuminate\Queue\Attributes\Backoff; +use Illuminate\Queue\Attributes\DeleteWhenMissingModels; +use Illuminate\Queue\Attributes\MaxExceptions; +use Illuminate\Queue\Attributes\ReadsQueueAttributes; +use Illuminate\Queue\Attributes\Timeout; +use Illuminate\Queue\Attributes\Tries; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Collection; class SendQueuedNotifications implements ShouldQueue { - use InteractsWithQueue, Queueable, SerializesModels; + use InteractsWithQueue, Queueable, ReadsQueueAttributes, SerializesModels; /** * The notifiable entities that should receive the notification. @@ -65,6 +71,11 @@ class SendQueuedNotifications implements ShouldQueue */ public $shouldBeEncrypted = false; + /** + * Indicates if the job should be deleted when models are missing. + */ + public bool $deleteWhenMissingModels = false; + /** * Create a new job instance. * @@ -77,9 +88,10 @@ class SendQueuedNotifications implements ShouldQueue $this->channels = $channels; $this->notification = $notification; $this->notifiables = $this->wrapNotifiables($notifiables); - $this->tries = property_exists($notification, 'tries') ? $notification->tries : null; - $this->timeout = property_exists($notification, 'timeout') ? $notification->timeout : null; - $this->maxExceptions = property_exists($notification, 'maxExceptions') ? $notification->maxExceptions : null; + $this->tries = $this->getAttributeValue($notification, Tries::class, 'tries'); + $this->timeout = $this->getAttributeValue($notification, Timeout::class, 'timeout'); + $this->maxExceptions = $this->getAttributeValue($notification, MaxExceptions::class, 'maxExceptions'); + $this->deleteWhenMissingModels = $this->getAttributeValue($notification, DeleteWhenMissingModels::class, 'deleteWhenMissingModels') ?? false; if ($notification instanceof ShouldQueueAfterCommit) { $this->afterCommit = true; @@ -148,11 +160,13 @@ class SendQueuedNotifications implements ShouldQueue */ public function backoff() { - if (! method_exists($this->notification, 'backoff') && ! isset($this->notification->backoff)) { - return; + $backoff = $this->getAttributeValue($this->notification, Backoff::class, 'backoff'); + + if (method_exists($this->notification, 'backoff')) { + $backoff = $this->notification->backoff(); } - return $this->notification->backoff ?? $this->notification->backoff(); + return $backoff; } /** diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/composer.json b/vendor/laravel/framework/src/Illuminate/Notifications/composer.json index 404189746..b9b1e13af 100644 --- a/vendor/laravel/framework/src/Illuminate/Notifications/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Notifications/composer.json @@ -2,44 +2,44 @@ "name": "illuminate/notifications", "description": "The Illuminate Notifications package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "illuminate/broadcasting": "^12.0", - "illuminate/bus": "^12.0", - "illuminate/collections": "^12.0", - "illuminate/container": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/filesystem": "^12.0", - "illuminate/mail": "^12.0", - "illuminate/queue": "^12.0", - "illuminate/support": "^12.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "illuminate/broadcasting": "^13.0", + "illuminate/bus": "^13.0", + "illuminate/collections": "^13.0", + "illuminate/container": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/filesystem": "^13.0", + "illuminate/mail": "^13.0", + "illuminate/queue": "^13.0", + "illuminate/support": "^13.0" + }, + "suggest": { + "illuminate/database": "Required to use the database transport (^13.0)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Notifications\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "suggest": { - "illuminate/database": "Required to use the database transport (^12.0)." - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/AbstractCursorPaginator.php b/vendor/laravel/framework/src/Illuminate/Pagination/AbstractCursorPaginator.php index 84c8ec034..36dd6def3 100644 --- a/vendor/laravel/framework/src/Illuminate/Pagination/AbstractCursorPaginator.php +++ b/vendor/laravel/framework/src/Illuminate/Pagination/AbstractCursorPaginator.php @@ -274,7 +274,7 @@ abstract class AbstractCursorPaginator implements Htmlable, Stringable * Get / set the URL fragment to be appended to URLs. * * @param string|null $fragment - * @return $this|string|null + * @return ($fragment is null ? string|null : $this) */ public function fragment($fragment = null) { diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php b/vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php index bce700f71..64aa31256 100644 --- a/vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php +++ b/vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php @@ -204,7 +204,7 @@ abstract class AbstractPaginator implements CanBeEscapedWhenCastToString, Htmlab * Get / set the URL fragment to be appended to URLs. * * @param string|null $fragment - * @return $this|string|null + * @return ($fragment is null ? string|null : $this) */ public function fragment($fragment = null) { @@ -637,8 +637,8 @@ abstract class AbstractPaginator implements CanBeEscapedWhenCastToString, Htmlab */ public static function useBootstrapThree() { - static::defaultView('pagination::default'); - static::defaultSimpleView('pagination::simple-default'); + static::defaultView('pagination::bootstrap-3'); + static::defaultSimpleView('pagination::simple-bootstrap-3'); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/Cursor.php b/vendor/laravel/framework/src/Illuminate/Pagination/Cursor.php index 433e33e0a..579c741a7 100644 --- a/vendor/laravel/framework/src/Illuminate/Pagination/Cursor.php +++ b/vendor/laravel/framework/src/Illuminate/Pagination/Cursor.php @@ -125,6 +125,10 @@ class Cursor implements Arrayable return null; } + if (! is_array($parameters) || ! array_key_exists('_pointsToNextItems', $parameters)) { + return null; + } + $pointsToNextItems = $parameters['_pointsToNextItems']; unset($parameters['_pointsToNextItems']); diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/CursorPaginator.php b/vendor/laravel/framework/src/Illuminate/Pagination/CursorPaginator.php index 314365ae6..28765cfb7 100644 --- a/vendor/laravel/framework/src/Illuminate/Pagination/CursorPaginator.php +++ b/vendor/laravel/framework/src/Illuminate/Pagination/CursorPaginator.php @@ -28,7 +28,7 @@ class CursorPaginator extends AbstractCursorPaginator implements Arrayable, Arra /** * Indicates whether there are more items in the data source. * - * @return bool + * @var bool */ protected $hasMore; @@ -184,8 +184,7 @@ class CursorPaginator extends AbstractCursorPaginator implements Arrayable, Arra /** * Convert the object to pretty print formatted JSON. * - * @params int $options - * + * @param int $options * @return string */ public function toPrettyJson(int $options = 0) diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php b/vendor/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php index aafa1447f..e09f2b923 100644 --- a/vendor/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php +++ b/vendor/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php @@ -246,8 +246,7 @@ class LengthAwarePaginator extends AbstractPaginator implements Arrayable, Array /** * Convert the object to pretty print formatted JSON. * - * @params int $options - * + * @param int $options * @return string */ public function toPrettyJson(int $options = 0) diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php b/vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php index 32e5ca57c..724e6264f 100644 --- a/vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php +++ b/vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php @@ -26,9 +26,9 @@ use JsonSerializable; class Paginator extends AbstractPaginator implements Arrayable, ArrayAccess, Countable, IteratorAggregate, Jsonable, JsonSerializable, PaginatorContract { /** - * Determine if there are more items in the data source. + * Indicates if there are more items in the data source. * - * @return bool + * @var bool */ protected $hasMore; @@ -189,8 +189,7 @@ class Paginator extends AbstractPaginator implements Arrayable, ArrayAccess, Cou /** * Convert the object to pretty print formatted JSON. * - * @params int $options - * + * @param int $options * @return string */ public function toPrettyJson(int $options = 0) diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/composer.json b/vendor/laravel/framework/src/Illuminate/Pagination/composer.json index b848b4a3b..1db95e0f0 100755 --- a/vendor/laravel/framework/src/Illuminate/Pagination/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Pagination/composer.json @@ -2,36 +2,36 @@ "name": "illuminate/pagination", "description": "The Illuminate Pagination package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "ext-filter": "*", - "illuminate/collections": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/support": "^12.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "ext-filter": "*", + "illuminate/collections": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/support": "^13.0" + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Pagination\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/default.blade.php b/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/bootstrap-3.blade.php similarity index 100% rename from vendor/laravel/framework/src/Illuminate/Pagination/resources/views/default.blade.php rename to vendor/laravel/framework/src/Illuminate/Pagination/resources/views/bootstrap-3.blade.php diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/bootstrap-5.blade.php b/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/bootstrap-5.blade.php index a1795a4d8..9dcf5312c 100644 --- a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/bootstrap-5.blade.php +++ b/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/bootstrap-5.blade.php @@ -27,16 +27,14 @@
-
-

- {!! __('Showing') !!} - {{ $paginator->firstItem() }} - {!! __('to') !!} - {{ $paginator->lastItem() }} - {!! __('of') !!} - {{ $paginator->total() }} - {!! __('results') !!} -

+
+ {!! __('Showing') !!} + {{ $paginator->firstItem() }} + {!! __('to') !!} + {{ $paginator->lastItem() }} + {!! __('of') !!} + {{ $paginator->total() }} + {!! __('results') !!}
diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-default.blade.php b/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-bootstrap-3.blade.php similarity index 100% rename from vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-default.blade.php rename to vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-bootstrap-3.blade.php diff --git a/vendor/laravel/framework/src/Illuminate/Pipeline/composer.json b/vendor/laravel/framework/src/Illuminate/Pipeline/composer.json index 6c6c49636..fce01813d 100644 --- a/vendor/laravel/framework/src/Illuminate/Pipeline/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Pipeline/composer.json @@ -2,38 +2,38 @@ "name": "illuminate/pipeline", "description": "The Illuminate Pipeline package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "illuminate/contracts": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/support": "^12.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "illuminate/contracts": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/support": "^13.0" + }, + "suggest": { + "illuminate/database": "Required to use database transactions (^13.0)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Pipeline\\": "" } }, - "suggest": { - "illuminate/database": "Required to use database transactions (^12.0)." - }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Process/Factory.php b/vendor/laravel/framework/src/Illuminate/Process/Factory.php index ac1d5f315..3b2f285e5 100644 --- a/vendor/laravel/framework/src/Illuminate/Process/Factory.php +++ b/vendor/laravel/framework/src/Illuminate/Process/Factory.php @@ -53,9 +53,9 @@ class Factory public function result(array|string $output = '', array|string $errorOutput = '', int $exitCode = 0) { return new FakeProcessResult( + exitCode: $exitCode, output: $output, errorOutput: $errorOutput, - exitCode: $exitCode, ); } diff --git a/vendor/laravel/framework/src/Illuminate/Process/FakeProcessDescription.php b/vendor/laravel/framework/src/Illuminate/Process/FakeProcessDescription.php index 1c397176e..fc2f8c3a4 100644 --- a/vendor/laravel/framework/src/Illuminate/Process/FakeProcessDescription.php +++ b/vendor/laravel/framework/src/Illuminate/Process/FakeProcessDescription.php @@ -99,7 +99,7 @@ class FakeProcessDescription ->values() ->all(); - if (strlen($output) > 0) { + if ($output !== '') { $this->output[] = [ 'type' => 'out', 'buffer' => rtrim($output, "\n")."\n", @@ -122,7 +122,7 @@ class FakeProcessDescription ->values() ->all(); - if (strlen($output) > 0) { + if ($output !== '') { $this->output[] = [ 'type' => 'err', 'buffer' => rtrim($output, "\n")."\n", diff --git a/vendor/laravel/framework/src/Illuminate/Process/InvokedProcess.php b/vendor/laravel/framework/src/Illuminate/Process/InvokedProcess.php index 0316cb995..d51a873f2 100644 --- a/vendor/laravel/framework/src/Illuminate/Process/InvokedProcess.php +++ b/vendor/laravel/framework/src/Illuminate/Process/InvokedProcess.php @@ -4,11 +4,14 @@ namespace Illuminate\Process; use Illuminate\Contracts\Process\InvokedProcess as InvokedProcessContract; use Illuminate\Process\Exceptions\ProcessTimedOutException; +use Illuminate\Support\Traits\Macroable; use Symfony\Component\Process\Exception\ProcessTimedOutException as SymfonyTimeoutException; use Symfony\Component\Process\Process; class InvokedProcess implements InvokedProcessContract { + use Macroable; + /** * The underlying process instance. * diff --git a/vendor/laravel/framework/src/Illuminate/Process/PendingProcess.php b/vendor/laravel/framework/src/Illuminate/Process/PendingProcess.php index 66e8c1cf6..a859d0533 100644 --- a/vendor/laravel/framework/src/Illuminate/Process/PendingProcess.php +++ b/vendor/laravel/framework/src/Illuminate/Process/PendingProcess.php @@ -2,6 +2,7 @@ namespace Illuminate\Process; +use Carbon\CarbonInterval; use Closure; use Illuminate\Process\Exceptions\ProcessTimedOutException; use Illuminate\Support\Collection; @@ -132,12 +133,12 @@ class PendingProcess /** * Specify the maximum number of seconds the process may run. * - * @param int $timeout + * @param CarbonInterval|int $timeout * @return $this */ - public function timeout(int $timeout) + public function timeout(CarbonInterval|int $timeout) { - $this->timeout = $timeout; + $this->timeout = $timeout instanceof CarbonInterval ? (int) $timeout->totalSeconds : $timeout; return $this; } @@ -145,12 +146,12 @@ class PendingProcess /** * Specify the maximum number of seconds a process may go without returning output. * - * @param int $timeout + * @param CarbonInterval|int $timeout * @return $this */ - public function idleTimeout(int $timeout) + public function idleTimeout(CarbonInterval|int $timeout) { - $this->idleTimeout = $timeout; + $this->idleTimeout = $timeout instanceof CarbonInterval ? (int) $timeout->totalSeconds : $timeout; return $this; } @@ -296,7 +297,7 @@ class PendingProcess */ protected function toSymfonyProcess(array|string|null $command) { - $command = $command ?? $this->command; + $command ??= $this->command; $process = is_iterable($command) ? new Process($command, null, $this->environment) @@ -369,6 +370,9 @@ class PendingProcess * @param string $command * @param \Closure $fake * @return mixed + * + * @throws \LogicException + * @throws \Throwable */ protected function resolveSynchronousFake(string $command, Closure $fake) { diff --git a/vendor/laravel/framework/src/Illuminate/Process/composer.json b/vendor/laravel/framework/src/Illuminate/Process/composer.json index 63c4afad4..7815f028a 100644 --- a/vendor/laravel/framework/src/Illuminate/Process/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Process/composer.json @@ -2,37 +2,37 @@ "name": "illuminate/process", "description": "The Illuminate Process package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "illuminate/collections": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/support": "^12.0", - "symfony/process": "^7.2.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "illuminate/collections": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/support": "^13.0", + "symfony/process": "^7.4.5 || ^8.0.5" + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Process\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Attributes/Backoff.php b/vendor/laravel/framework/src/Illuminate/Queue/Attributes/Backoff.php new file mode 100644 index 000000000..d9f15a723 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Queue/Attributes/Backoff.php @@ -0,0 +1,26 @@ +|int + */ + public array|int $backoff; + + /** + * Create a new attribute instance. + * + * @param array|int ...$backoff Seconds to wait before retrying the job. + */ + public function __construct(array|int ...$backoff) + { + $this->backoff = count($backoff) === 1 ? $backoff[0] : $backoff; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Attributes/Connection.php b/vendor/laravel/framework/src/Illuminate/Queue/Attributes/Connection.php new file mode 100644 index 000000000..4c65cdecf --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Queue/Attributes/Connection.php @@ -0,0 +1,22 @@ +connection = enum_value($connection); + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Attributes/DebounceFor.php b/vendor/laravel/framework/src/Illuminate/Queue/Attributes/DebounceFor.php new file mode 100644 index 000000000..3ec9f4681 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Queue/Attributes/DebounceFor.php @@ -0,0 +1,20 @@ +queue = enum_value($queue); + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Attributes/ReadsQueueAttributes.php b/vendor/laravel/framework/src/Illuminate/Queue/Attributes/ReadsQueueAttributes.php new file mode 100644 index 000000000..093c25fea --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Queue/Attributes/ReadsQueueAttributes.php @@ -0,0 +1,10 @@ +pheanstalk->statsTube(new TubeName($this->getQueue($queue)))->currentJobsReserved; } + /** + * Get the pending jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function pendingJobs($queue = null): Collection + { + return new Collection; + } + + /** + * Get the delayed jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function delayedJobs($queue = null): Collection + { + return new Collection; + } + + /** + * Get the reserved jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function reservedJobs($queue = null): Collection + { + return new Collection; + } + + /** + * Get all pending jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allPendingJobs(): Collection + { + return new Collection; + } + + /** + * Get all delayed jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allDelayedJobs(): Collection + { + return new Collection; + } + + /** + * Get all reserved jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allReservedJobs(): Collection + { + return new Collection; + } + /** * Get the creation timestamp of the oldest pending job, excluding delayed jobs. * diff --git a/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php b/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php index 75dfc7aef..ece068444 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php @@ -5,6 +5,7 @@ namespace Illuminate\Queue; use Exception; use Illuminate\Bus\Batchable; use Illuminate\Bus\BatchRepository; +use Illuminate\Bus\DebounceLock; use Illuminate\Bus\UniqueLock; use Illuminate\Contracts\Bus\Dispatcher; use Illuminate\Contracts\Cache\Factory as CacheFactory; @@ -18,8 +19,7 @@ use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Events\CallQueuedListener; use Illuminate\Log\Context\Repository as ContextRepository; use Illuminate\Pipeline\Pipeline; -use Illuminate\Queue\Attributes\DeleteWhenMissingModels; -use ReflectionClass; +use Illuminate\Queue\Events\JobDebounced; use RuntimeException; class CallQueuedHandler @@ -38,6 +38,13 @@ class CallQueuedHandler */ protected $container; + /** + * The command currently being processed. + * + * @var mixed + */ + protected $runningCommand; + /** * Create a new handler instance. * @@ -67,7 +74,17 @@ class CallQueuedHandler return $this->handleModelNotFound($job, $e); } - $this->dispatchThroughMiddleware($job, $command); + if ($this->commandShouldBeDebounced($command)) { + return $this->deleteDebouncedJob($job, $command); + } + + $this->runningCommand = $command; + + try { + $this->dispatchThroughMiddleware($job, $command); + } finally { + $this->runningCommand = null; + } if (! $job->isReleased() && ! $this->commandShouldBeUniqueUntilProcessing($command)) { $this->ensureUniqueJobLockIsReleased($command); @@ -122,12 +139,12 @@ class CallQueuedHandler return (new Pipeline($this->container))->send($command) ->through(array_merge(method_exists($command, 'middleware') ? $command->middleware() : [], $command->middleware ?? [])) ->finally(function ($command) use (&$lockReleased) { - if (! $lockReleased && $this->commandShouldBeUniqueUntilProcessing($command) && ! $command->job->isReleased()) { + if (! $lockReleased && $this->commandShouldBeUniqueUntilProcessing($command) && ! $command->job->isReleased() && $command->job->attempts() <= 1) { $this->ensureUniqueJobLockIsReleased($command); } }) ->then(function ($command) use ($job, &$lockReleased) { - if ($this->commandShouldBeUniqueUntilProcessing($command)) { + if ($this->commandShouldBeUniqueUntilProcessing($command) && $job->attempts() <= 1) { $this->ensureUniqueJobLockIsReleased($command); $lockReleased = true; @@ -166,7 +183,7 @@ class CallQueuedHandler */ protected function setJobInstanceIfNecessary(Job $job, $instance) { - if (in_array(InteractsWithQueue::class, class_uses_recursive($instance))) { + if (isset(class_uses_recursive($instance)[InteractsWithQueue::class])) { $instance->setJob($job); } @@ -196,8 +213,7 @@ class CallQueuedHandler { $uses = class_uses_recursive($command); - if (! in_array(Batchable::class, $uses) || - ! in_array(InteractsWithQueue::class, $uses)) { + if (! isset($uses[Batchable::class], $uses[InteractsWithQueue::class])) { return; } @@ -219,6 +235,50 @@ class CallQueuedHandler } } + /** + * Determine if the debounced command was superseded by a newer dispatch. + * + * @param mixed $command + * @return bool + */ + protected function commandShouldBeDebounced($command) + { + $owner = $command->debounceOwner ?? ''; + + if (empty($owner)) { + return false; + } + + $lock = new DebounceLock($this->container->make(Cache::class)); + + $currentOwner = $lock->getCurrentOwner($command); + + // Fail-open: if the lock no longer exists (cache eviction, TTL expiry), let the job execute... + if (is_null($currentOwner)) { + return false; + } + + return $currentOwner !== $owner; + } + + /** + * Handle a debounced (superseded) job by firing an event and deleting it. + * + * @param \Illuminate\Contracts\Queue\Job $job + * @param mixed $command + * @return void + */ + protected function deleteDebouncedJob($job, $command) + { + if ($this->container->bound('events')) { + $this->container->make('events')->dispatch( + new JobDebounced($job->getConnectionName(), $job, $command) + ); + } + + $job->delete(); + } + /** * Determine if the given command should be unique. */ @@ -246,21 +306,10 @@ class CallQueuedHandler */ protected function handleModelNotFound(Job $job, $e) { - $class = $job->resolveQueuedJobClass(); - - try { - $reflectionClass = new ReflectionClass($class); - - $shouldDelete = $reflectionClass->getDefaultProperties()['deleteWhenMissingModels'] - ?? count($reflectionClass->getAttributes(DeleteWhenMissingModels::class)) !== 0; - } catch (Exception) { - $shouldDelete = false; - } - $this->ensureUniqueJobLockIsReleasedViaContext(); - if ($shouldDelete) { - $this->ensureSuccessfulBatchJobIsRecordedForMissingModel($job, $class); + if ($job->payload()['deleteWhenMissingModels'] ?? false) { + $this->ensureSuccessfulBatchJobIsRecordedForMissingModel($job, $job->resolveQueuedJobClass()); return $job->delete(); } @@ -306,7 +355,7 @@ class CallQueuedHandler */ protected function ensureSuccessfulBatchJobIsRecordedForMissingModel(Job $job, string $class) { - if (! in_array(Batchable::class, class_uses_recursive($class), true)) { + if (! isset(class_uses_recursive($class)[Batchable::class])) { return; } @@ -371,7 +420,7 @@ class CallQueuedHandler */ protected function ensureFailedBatchJobIsRecorded(string $uuid, $command, $e) { - if (! in_array(Batchable::class, class_uses_recursive($command))) { + if (! isset(class_uses_recursive($command)[Batchable::class])) { return; } @@ -394,4 +443,14 @@ class CallQueuedHandler $command->invokeChainCatchCallbacks($e); } } + + /** + * Get the command currently being processed. + * + * @return mixed + */ + public function getRunningCommand() + { + return $this->runningCommand; + } } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php b/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php index 55f23add6..56d1cbc28 100755 --- a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php @@ -32,12 +32,13 @@ class SqsConnector implements ConnectorInterface return new SqsQueue( new SqsClient( - Arr::except($config, ['token']) + Arr::except($config, ['token', 'overflow']) ), $config['queue'], $config['prefix'] ?? '', $config['suffix'] ?? '', - $config['after_commit'] ?? null + $config['after_commit'] ?? null, + $config['overflow'] ?? [], ); } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/BatchesTableCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/BatchesTableCommand.php index eb0389dec..84b40789b 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/BatchesTableCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Console/BatchesTableCommand.php @@ -63,15 +63,9 @@ class BatchesTableCommand extends MigrationGeneratorCommand return parent::migrationExists($table); } - foreach ([ + return array_any([ join_paths($this->laravel->databasePath('migrations'), '*_*_*_*_create_'.$table.'_table.php'), join_paths($this->laravel->databasePath('migrations'), '0001_01_01_000002_create_jobs_table.php'), - ] as $path) { - if (count($this->files->glob($path)) !== 0) { - return true; - } - } - - return false; + ], fn ($path) => count($this->files->glob($path)) !== 0); } } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/ClearCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/ClearCommand.php index 2ed23ffff..cde9baad4 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/ClearCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Console/ClearCommand.php @@ -4,6 +4,7 @@ namespace Illuminate\Queue\Console; use Illuminate\Console\Command; use Illuminate\Console\ConfirmableTrait; +use Illuminate\Console\Prohibitable; use Illuminate\Contracts\Queue\ClearableQueue; use Illuminate\Support\Str; use ReflectionClass; @@ -14,7 +15,7 @@ use Symfony\Component\Console\Input\InputOption; #[AsCommand(name: 'queue:clear')] class ClearCommand extends Command { - use ConfirmableTrait; + use ConfirmableTrait, Prohibitable; /** * The console command name. @@ -37,7 +38,8 @@ class ClearCommand extends Command */ public function handle() { - if (! $this->confirmToProceed()) { + if ($this->isProhibited() || + ! $this->confirmToProceed()) { return 1; } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/FailedTableCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/FailedTableCommand.php index 90db4033e..1a826e860 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/FailedTableCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Console/FailedTableCommand.php @@ -63,15 +63,9 @@ class FailedTableCommand extends MigrationGeneratorCommand return parent::migrationExists($table); } - foreach ([ + return array_any([ join_paths($this->laravel->databasePath('migrations'), '*_*_*_*_create_'.$table.'_table.php'), join_paths($this->laravel->databasePath('migrations'), '0001_01_01_000002_create_jobs_table.php'), - ] as $path) { - if (count($this->files->glob($path)) !== 0) { - return true; - } - } - - return false; + ], fn ($path) => count($this->files->glob($path)) !== 0); } } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php index 80cc2006d..7f24ea11c 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php @@ -3,11 +3,14 @@ namespace Illuminate\Queue\Console; use Illuminate\Console\Command; +use Illuminate\Console\Prohibitable; use Symfony\Component\Console\Attribute\AsCommand; #[AsCommand(name: 'queue:flush')] class FlushFailedCommand extends Command { + use Prohibitable; + /** * The console command name. * @@ -29,6 +32,10 @@ class FlushFailedCommand extends Command */ public function handle() { + if ($this->isProhibited()) { + return; + } + $this->laravel['queue.failer']->flush($this->option('hours')); if ($this->option('hours')) { diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php index 2f617e9e7..a361475c5 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php @@ -15,7 +15,8 @@ class ListFailedCommand extends Command * * @var string */ - protected $name = 'queue:failed'; + protected $signature = 'queue:failed + {--json : Output the failed jobs as JSON}'; /** * The console command description. @@ -38,7 +39,13 @@ class ListFailedCommand extends Command */ public function handle() { - if (count($jobs = $this->getFailedJobs()) === 0) { + $jobs = $this->getFailedJobs(); + + if ($this->option('json')) { + return $this->displayFailedJobsAsJson($jobs); + } + + if (count($jobs) === 0) { return $this->components->info('No failed jobs found.'); } @@ -130,4 +137,21 @@ class ListFailedCommand extends Command ), ); } + + /** + * Display the failed jobs as JSON. + * + * @param array $jobs + * @return void + */ + protected function displayFailedJobsAsJson(array $jobs) + { + $this->output->writeln((new Collection($jobs))->values()->map(fn ($job) => [ + 'id' => $job[0], + 'connection' => $job[1], + 'queue' => $job[2], + 'class' => $job[3], + 'failed_at' => $job[4], + ])->toJson()); + } } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php index e7979838c..d0aeb53db 100755 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php @@ -109,9 +109,9 @@ class ListenCommand extends Command memory: $this->option('memory'), timeout: $this->option('timeout'), sleep: $this->option('sleep'), - rest: $this->option('rest'), maxTries: $this->option('tries'), - force: $this->option('force') + force: $this->option('force'), + rest: $this->option('rest') ); } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/MonitorCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/MonitorCommand.php index c7138ea82..edb426944 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/MonitorCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Console/MonitorCommand.php @@ -100,18 +100,10 @@ class MonitorCommand extends Command 'connection' => $connection, 'queue' => $queue, 'size' => $size = $this->manager->connection($connection)->size($queue), - 'pending' => method_exists($this->manager->connection($connection), 'pendingSize') - ? $this->manager->connection($connection)->pendingSize($queue) - : null, - 'delayed' => method_exists($this->manager->connection($connection), 'delayedSize') - ? $this->manager->connection($connection)->delayedSize($queue) - : null, - 'reserved' => method_exists($this->manager->connection($connection), 'reservedSize') - ? $this->manager->connection($connection)->reservedSize($queue) - : null, - 'oldest_pending' => method_exists($this->manager->connection($connection), 'creationTimeOfOldestPendingJob') - ? $this->manager->connection($connection)->creationTimeOfOldestPendingJob($queue) - : null, + 'pending' => $this->manager->connection($connection)->pendingSize($queue), + 'delayed' => $this->manager->connection($connection)->delayedSize($queue), + 'reserved' => $this->manager->connection($connection)->reservedSize($queue), + 'oldest_pending' => $this->manager->connection($connection)->creationTimeOfOldestPendingJob($queue), 'status' => $size >= $this->option('max') ? 'ALERT' : 'OK', ]; }); diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/PauseCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/PauseCommand.php index 8b18c23ee..66abe69f1 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/PauseCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Console/PauseCommand.php @@ -5,6 +5,7 @@ namespace Illuminate\Queue\Console; use Illuminate\Console\Command; use Illuminate\Contracts\Queue\Factory as QueueManager; use Illuminate\Queue\Console\Concerns\ParsesQueue; +use Illuminate\Queue\Worker; use Symfony\Component\Console\Attribute\AsCommand; #[AsCommand(name: 'queue:pause')] @@ -35,6 +36,12 @@ class PauseCommand extends Command { [$connection, $queue] = $this->parseQueue($this->argument('queue')); + if (! Worker::$pausable) { + $this->components->error('Queue pausing is currently disabled.'); + + return 1; + } + $manager->pause($connection, $queue); $this->components->info("Job processing on queue [{$connection}:{$queue}] has been paused."); diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php index bc2b98fa5..4e82bcc35 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php @@ -63,15 +63,9 @@ class TableCommand extends MigrationGeneratorCommand return parent::migrationExists($table); } - foreach ([ + return array_any([ join_paths($this->laravel->databasePath('migrations'), '*_*_*_*_create_'.$table.'_table.php'), join_paths($this->laravel->databasePath('migrations'), '0001_01_01_000002_create_jobs_table.php'), - ] as $path) { - if (count($this->files->glob($path)) !== 0) { - return true; - } - } - - return false; + ], fn ($path) => count($this->files->glob($path)) !== 0); } } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php index a8d9013f5..8155e6b6c 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php @@ -258,13 +258,14 @@ class WorkCommand extends Command } $runTime = $this->runTimeForHumans($this->latestStartedAt); + $memory = $isVerbose ? round(memory_get_usage(true) / 1024 / 1024, 1).'MB' : ''; $dots = max(terminal()->width() - mb_strlen($job->resolveName()) - ( - $isVerbose ? mb_strlen($job->getJobId()) + mb_strlen($job->getConnectionName()) + mb_strlen($job->getQueue()) + 2 : 0 + $isVerbose ? mb_strlen($job->getJobId()) + mb_strlen($job->getConnectionName()) + mb_strlen($job->getQueue()) + mb_strlen($memory) + 3 : 0 ) - mb_strlen($runTime) - 31, 0); $this->output->write(' '.str_repeat('.', $dots)); - $this->output->write(" $runTime"); + $this->output->write(" {$runTime}".($memory ? " {$memory}" : '').''); $this->output->writeln(match ($status) { 'success' => ' DONE', diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/failed_jobs.stub b/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/failed_jobs.stub index d81d903db..f461c03a3 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/failed_jobs.stub +++ b/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/failed_jobs.stub @@ -14,11 +14,13 @@ return new class extends Migration Schema::create('{{table}}', function (Blueprint $table) { $table->id(); $table->string('uuid')->unique(); - $table->text('connection'); - $table->text('queue'); + $table->string('connection'); + $table->string('queue'); $table->longText('payload'); $table->longText('exception'); $table->timestamp('failed_at')->useCurrent(); + + $table->index(['connection', 'queue', 'failed_at']); }); } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/jobs.stub b/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/jobs.stub index 3e3b587f9..14350d292 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/jobs.stub +++ b/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/jobs.stub @@ -15,7 +15,7 @@ return new class extends Migration $table->bigIncrements('id'); $table->string('queue')->index(); $table->longText('payload'); - $table->unsignedTinyInteger('attempts'); + $table->unsignedSmallInteger('attempts'); $table->unsignedInteger('reserved_at')->nullable(); $table->unsignedInteger('available_at'); $table->unsignedInteger('created_at'); diff --git a/vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php index ba72e6170..3441fd277 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php @@ -7,6 +7,7 @@ use Illuminate\Contracts\Queue\Queue as QueueContract; use Illuminate\Database\Connection; use Illuminate\Queue\Jobs\DatabaseJob; use Illuminate\Queue\Jobs\DatabaseJobRecord; +use Illuminate\Queue\Jobs\InspectedJob; use Illuminate\Support\Carbon; use Illuminate\Support\Collection; use Illuminate\Support\Str; @@ -44,6 +45,13 @@ class DatabaseQueue extends Queue implements QueueContract, ClearableQueue */ protected $retryAfter = 60; + /** + * The cached lock type for popping jobs. + * + * @var string|bool|null + */ + protected $lockForPopping = null; + /** * Create a new database queue instance. * @@ -124,6 +132,94 @@ class DatabaseQueue extends Queue implements QueueContract, ClearableQueue ->count(); } + /** + * Get the pending jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function pendingJobs($queue = null): Collection + { + return $this->database->table($this->table) + ->where('queue', $this->getQueue($queue)) + ->whereNull('reserved_at') + ->where('available_at', '<=', $this->currentTime()) + ->get() + ->map(fn ($record) => InspectedJob::fromPayload($record->payload, $record->attempts, $record->queue)); + } + + /** + * Get the delayed jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function delayedJobs($queue = null): Collection + { + return $this->database->table($this->table) + ->where('queue', $this->getQueue($queue)) + ->whereNull('reserved_at') + ->where('available_at', '>', $this->currentTime()) + ->get() + ->map(fn ($record) => InspectedJob::fromPayload($record->payload, $record->attempts, $record->queue)); + } + + /** + * Get the reserved jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function reservedJobs($queue = null): Collection + { + return $this->database->table($this->table) + ->where('queue', $this->getQueue($queue)) + ->whereNotNull('reserved_at') + ->get() + ->map(fn ($record) => InspectedJob::fromPayload($record->payload, $record->attempts, $record->queue)); + } + + /** + * Get all pending jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allPendingJobs(): Collection + { + return $this->database->table($this->table) + ->whereNull('reserved_at') + ->where('available_at', '<=', $this->currentTime()) + ->get() + ->map(fn ($record) => InspectedJob::fromPayload($record->payload, $record->attempts, $record->queue)); + } + + /** + * Get all delayed jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allDelayedJobs(): Collection + { + return $this->database->table($this->table) + ->whereNull('reserved_at') + ->where('available_at', '>', $this->currentTime()) + ->get() + ->map(fn ($record) => InspectedJob::fromPayload($record->payload, $record->attempts, $record->queue)); + } + + /** + * Get all reserved jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allReservedJobs(): Collection + { + return $this->database->table($this->table) + ->whereNotNull('reserved_at') + ->get() + ->map(fn ($record) => InspectedJob::fromPayload($record->payload, $record->attempts, $record->queue)); + } + /** * Get the creation timestamp of the oldest pending job, excluding delayed jobs. * @@ -338,6 +434,10 @@ class DatabaseQueue extends Queue implements QueueContract, ClearableQueue */ protected function getLockForPopping() { + if ($this->lockForPopping !== null) { + return $this->lockForPopping; + } + $databaseEngine = $this->database->getPdo()->getAttribute(PDO::ATTR_DRIVER_NAME); $databaseVersion = $this->database->getConfig('version') ?? $this->database->getPdo()->getAttribute(PDO::ATTR_SERVER_VERSION); @@ -354,14 +454,14 @@ class DatabaseQueue extends Queue implements QueueContract, ClearableQueue ($databaseEngine === 'pgsql' && version_compare($databaseVersion, '9.5', '>=')) || ($databaseEngine === 'vitess' && version_compare($databaseVersion, '19.0', '>=')) ) { - return 'FOR UPDATE SKIP LOCKED'; + return $this->lockForPopping = 'FOR UPDATE SKIP LOCKED'; } if ($databaseEngine === 'sqlsrv') { - return 'with(rowlock,updlock,readpast)'; + return $this->lockForPopping = 'with(rowlock,updlock,readpast)'; } - return true; + return $this->lockForPopping = true; } /** @@ -467,10 +567,10 @@ class DatabaseQueue extends Queue implements QueueContract, ClearableQueue /** * Delete all of the jobs from the queue. * - * @param string $queue + * @param string|null $queue * @return int */ - public function clear($queue) + public function clear($queue = null) { return $this->database->table($this->table) ->where('queue', $this->getQueue($queue)) diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobAttempted.php b/vendor/laravel/framework/src/Illuminate/Queue/Events/JobAttempted.php index b10c62903..a46acb61a 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobAttempted.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Events/JobAttempted.php @@ -9,12 +9,12 @@ class JobAttempted * * @param string $connectionName The connection name. * @param \Illuminate\Contracts\Queue\Job $job The job instance. - * @param bool $exceptionOccurred Indicates if an exception occurred while processing the job. + * @param \Throwable|null $exception The exception, if one occurred while processing the job. */ public function __construct( public $connectionName, public $job, - public $exceptionOccurred = false, + public $exception = null, ) { } @@ -25,6 +25,6 @@ class JobAttempted */ public function successful(): bool { - return ! $this->job->hasFailed() && ! $this->exceptionOccurred; + return ! $this->job->hasFailed() && is_null($this->exception); } } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobDebounced.php b/vendor/laravel/framework/src/Illuminate/Queue/Events/JobDebounced.php new file mode 100644 index 000000000..27b526047 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Queue/Events/JobDebounced.php @@ -0,0 +1,20 @@ +getTable()->insertGetId(compact( - 'connection', 'queue', 'payload', 'exception', 'failed_at' - )); + return $this->getTable()->insertGetId([ + 'connection' => $connection, 'queue' => $queue, 'payload' => $payload, 'exception' => $exception, 'failed_at' => $failed_at, + ]); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Failed/FileFailedJobProvider.php b/vendor/laravel/framework/src/Illuminate/Queue/Failed/FileFailedJobProvider.php index 20faf2f90..9dd3de63a 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Failed/FileFailedJobProvider.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Failed/FileFailedJobProvider.php @@ -167,8 +167,10 @@ class FileFailedJobProvider implements CountableFailedJobProvider, FailedJobProv /** * Execute the given callback while holding a lock. * - * @param \Closure $callback - * @return mixed + * @template TReturn + * + * @param (\Closure(): TReturn) $callback + * @return TReturn */ protected function lock(Closure $callback) { diff --git a/vendor/laravel/framework/src/Illuminate/Queue/FailoverQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/FailoverQueue.php index 73c024b60..68c6f5ff4 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/FailoverQueue.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/FailoverQueue.php @@ -5,6 +5,7 @@ namespace Illuminate\Queue; use Illuminate\Contracts\Events\Dispatcher as EventDispatcher; use Illuminate\Contracts\Queue\Queue as QueueContract; use Illuminate\Queue\Events\QueueFailedOver; +use Illuminate\Support\Collection; use RuntimeException; use Throwable; @@ -71,6 +72,69 @@ class FailoverQueue extends Queue implements QueueContract return $this->manager->connection($this->connections[0])->reservedSize($queue); } + /** + * Get the pending jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function pendingJobs($queue = null): Collection + { + return $this->manager->connection($this->connections[0])->pendingJobs($queue); + } + + /** + * Get the delayed jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function delayedJobs($queue = null): Collection + { + return $this->manager->connection($this->connections[0])->delayedJobs($queue); + } + + /** + * Get the reserved jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function reservedJobs($queue = null): Collection + { + return $this->manager->connection($this->connections[0])->reservedJobs($queue); + } + + /** + * Get all pending jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allPendingJobs(): Collection + { + return $this->manager->connection($this->connections[0])->allPendingJobs(); + } + + /** + * Get all delayed jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allDelayedJobs(): Collection + { + return $this->manager->connection($this->connections[0])->allDelayedJobs(); + } + + /** + * Get all reserved jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allReservedJobs(): Collection + { + return $this->manager->connection($this->connections[0])->allReservedJobs(); + } + /** * Get the creation timestamp of the oldest pending job, excluding delayed jobs. * diff --git a/vendor/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php index 4a9728ae0..4b97bc39a 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php @@ -49,6 +49,8 @@ trait InteractsWithQueue * * @param \Throwable|string|null $exception * @return void + * + * @throws \InvalidArgumentException */ public function fail($exception = null) { @@ -259,6 +261,8 @@ trait InteractsWithQueue * Ensure that queue interactions have been faked. * * @return void + * + * @throws \RuntimeException */ private function ensureQueueInteractionsHaveBeenFaked() { diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/FakeJob.php b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/FakeJob.php index e3567d1f7..91273fc1f 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/FakeJob.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/FakeJob.php @@ -83,12 +83,12 @@ class FakeJob extends Job implements JobContract /** * Delete the job, call the "failed" method, and raise the failed job event. * - * @param \Throwable|null $exception + * @param \Throwable|null $e * @return void */ - public function fail($exception = null) + public function fail($e = null) { $this->failed = true; - $this->failedWith = $exception; + $this->failedWith = $e; } } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/InspectedJob.php b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/InspectedJob.php new file mode 100644 index 000000000..d07adc70d --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/InspectedJob.php @@ -0,0 +1,50 @@ +resolve(BatchRepository::class); try { $batchRepository->rollBack(); - } catch (Throwable $e) { + } catch (Throwable) { // ... } } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php index 29bdfd163..6c7aba14b 100755 --- a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php @@ -5,6 +5,7 @@ namespace Illuminate\Queue\Jobs; use Aws\Sqs\SqsClient; use Illuminate\Container\Container; use Illuminate\Contracts\Queue\Job as JobContract; +use Illuminate\Support\Arr; class SqsJob extends Job implements JobContract { @@ -22,6 +23,20 @@ class SqsJob extends Job implements JobContract */ protected $job; + /** + * The overflow storage options for large payload offloading. + * + * @var array + */ + protected $overflowStorage = []; + + /** + * The cached raw body of the job. + * + * @var string|null + */ + protected $cachedRawBody = null; + /** * Create a new job instance. * @@ -30,14 +45,16 @@ class SqsJob extends Job implements JobContract * @param array $job * @param string $connectionName * @param string $queue + * @param array $overflowStorage */ - public function __construct(Container $container, SqsClient $sqs, array $job, $connectionName, $queue) + public function __construct(Container $container, SqsClient $sqs, array $job, $connectionName, $queue, array $overflowStorage = []) { $this->sqs = $sqs; $this->job = $job; $this->queue = $queue; $this->container = $container; $this->connectionName = $connectionName; + $this->overflowStorage = $overflowStorage; } /** @@ -78,6 +95,8 @@ class SqsJob extends Job implements JobContract parent::delete(); $this->deleteMessageFromSqs(); + + $this->deleteOverflowPayload(); } /** @@ -92,6 +111,19 @@ class SqsJob extends Job implements JobContract ]); } + /** + * Delete the offloaded overflow payload from the cache, if applicable. + * + * @return void + */ + protected function deleteOverflowPayload() + { + if (Arr::get($this->overflowStorage, 'delete_after_processing') && + $pointer = $this->overflowPointer()) { + $this->overflowStore()->forget($pointer); + } + } + /** * Get the number of times the job has been attempted. * @@ -119,9 +151,55 @@ class SqsJob extends Job implements JobContract */ public function getRawBody() { + if ($this->cachedRawBody !== null) { + return $this->cachedRawBody; + } + + if ($pointer = $this->overflowPointer()) { + return $this->cachedRawBody = $this->overflowStore()->get($pointer); + } + return $this->job['Body']; } + /** + * Resolve the pointer path from the job body, if present. + * + * @return string|null + */ + protected function overflowPointer() + { + if (! Arr::get($this->overflowStorage, 'enabled', false)) { + return null; + } + + $body = $this->job['Body'] ?? null; + + if (! is_string($body) || $body === '') { + return null; + } + + $decoded = json_decode($body, true); + + if (! is_array($decoded) || ! isset($decoded['@pointer'])) { + return null; + } + + return is_string($decoded['@pointer']) ? $decoded['@pointer'] : null; + } + + /** + * Resolve the configured cache store for extended storage. + * + * @return \Illuminate\Contracts\Cache\Repository + */ + protected function overflowStore() + { + return $this->container->make('cache')->store( + Arr::get($this->overflowStorage, 'store') + ); + } + /** * Get the underlying SQS client instance. * diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Middleware/FailOnException.php b/vendor/laravel/framework/src/Illuminate/Queue/Middleware/FailOnException.php index d7c1c87d1..1734b8002 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Middleware/FailOnException.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Middleware/FailOnException.php @@ -37,13 +37,7 @@ class FailOnException protected function failForExceptions(array $exceptions) { return static function (Throwable $throwable) use ($exceptions) { - foreach ($exceptions as $exception) { - if ($throwable instanceof $exception) { - return true; - } - } - - return false; + return array_any($exceptions, fn ($exception) => $throwable instanceof $exception); }; } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Middleware/RateLimited.php b/vendor/laravel/framework/src/Illuminate/Queue/Middleware/RateLimited.php index efd020413..e25f7a845 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Middleware/RateLimited.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Middleware/RateLimited.php @@ -151,6 +151,7 @@ class RateLimited { return [ 'limiterName', + 'releaseAfter', 'shouldRelease', ]; } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Middleware/RateLimitedWithRedis.php b/vendor/laravel/framework/src/Illuminate/Queue/Middleware/RateLimitedWithRedis.php index 8ac778f31..a0afebff1 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Middleware/RateLimitedWithRedis.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Middleware/RateLimitedWithRedis.php @@ -28,7 +28,7 @@ class RateLimitedWithRedis extends RateLimited /** * Create a new middleware instance. * - * @param string $limiterName + * @param \UnitEnum|string $limiterName */ public function __construct($limiterName, ?string $connection = null) { diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Middleware/Release.php b/vendor/laravel/framework/src/Illuminate/Queue/Middleware/Release.php new file mode 100644 index 000000000..02abd43e3 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Queue/Middleware/Release.php @@ -0,0 +1,52 @@ +release) { + return $job->release($this->releaseAfter); + } + + return $next($job); + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Middleware/Skip.php b/vendor/laravel/framework/src/Illuminate/Queue/Middleware/Skip.php index 37fc91d59..6cb79a0a3 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Middleware/Skip.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Middleware/Skip.php @@ -6,6 +6,9 @@ use Closure; class Skip { + /** + * @param bool $param Whether the job should be skipped. + */ public function __construct(protected bool $skip = false) { } @@ -13,21 +16,21 @@ class Skip /** * Apply the middleware if the given condition is truthy. * - * @param bool|Closure(): bool $condition + * @param bool|(\Closure(): bool) $condition */ - public static function when(Closure|bool $condition): self + public static function when(Closure|bool $condition): static { - return new self(value($condition)); + return new static(value($condition)); } /** * Apply the middleware unless the given condition is truthy. * - * @param bool|Closure(): bool $condition + * @param bool|(\Closure(): bool) $condition */ - public static function unless(Closure|bool $condition): self + public static function unless(Closure|bool $condition): static { - return new self(! value($condition)); + return new static(! value($condition)); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Middleware/ThrottlesExceptions.php b/vendor/laravel/framework/src/Illuminate/Queue/Middleware/ThrottlesExceptions.php index 3fbbf8a8d..26abbd6e7 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Middleware/ThrottlesExceptions.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Middleware/ThrottlesExceptions.php @@ -2,6 +2,7 @@ namespace Illuminate\Queue\Middleware; +use Closure; use Illuminate\Cache\RateLimiter; use Illuminate\Container\Container; use Throwable; @@ -39,7 +40,7 @@ class ThrottlesExceptions /** * The number of minutes to wait before retrying the job after an exception. * - * @var int + * @var int|(\Closure(\Throwable): int) */ protected $retryAfterMinutes = 0; @@ -103,6 +104,8 @@ class ThrottlesExceptions * @param mixed $job * @param callable $next * @return mixed + * + * @throws \Throwable */ public function handle($job, $next) { @@ -135,7 +138,7 @@ class ThrottlesExceptions $this->limiter->hit($jobKey, $this->decaySeconds); - return $job->release($this->retryAfterMinutes * 60); + return $job->release($this->getTimeUntilNextRetryAfterException($throwable)); } } @@ -190,13 +193,7 @@ class ThrottlesExceptions */ protected function shouldDelete(Throwable $throwable): bool { - foreach ($this->deleteWhenCallbacks as $callback) { - if (call_user_func($callback, $throwable)) { - return true; - } - } - - return false; + return array_any($this->deleteWhenCallbacks, fn ($callback) => call_user_func($callback, $throwable)); } /** @@ -207,13 +204,7 @@ class ThrottlesExceptions */ protected function shouldFail(Throwable $throwable): bool { - foreach ($this->failWhenCallbacks as $callback) { - if (call_user_func($callback, $throwable)) { - return true; - } - } - - return false; + return array_any($this->failWhenCallbacks, fn ($callback) => call_user_func($callback, $throwable)); } /** @@ -232,7 +223,7 @@ class ThrottlesExceptions /** * Specify the number of minutes a job should be delayed when it is released (before it has reached its max exceptions). * - * @param int $backoff + * @param int|(\Closure(\Throwable): int) $backoff * @return $this */ public function backoff($backoff) @@ -242,6 +233,21 @@ class ThrottlesExceptions return $this; } + /** + * Get the number of seconds that should elapse before the job is retried after an exception. + * + * @param \Throwable $throwable + * @return int + */ + protected function getTimeUntilNextRetryAfterException(Throwable $throwable) + { + $backoff = $this->retryAfterMinutes instanceof Closure + ? call_user_func($this->retryAfterMinutes, $throwable) + : $this->retryAfterMinutes; + + return $backoff * 60; + } + /** * Get the cache key associated for the rate limiter. * diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Middleware/ThrottlesExceptionsWithRedis.php b/vendor/laravel/framework/src/Illuminate/Queue/Middleware/ThrottlesExceptionsWithRedis.php index 20577a4c1..7d7a302f9 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Middleware/ThrottlesExceptionsWithRedis.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Middleware/ThrottlesExceptionsWithRedis.php @@ -40,6 +40,8 @@ class ThrottlesExceptionsWithRedis extends ThrottlesExceptions * @param mixed $job * @param callable $next * @return mixed + * + * @throws \Throwable */ public function handle($job, $next) { @@ -78,7 +80,7 @@ class ThrottlesExceptionsWithRedis extends ThrottlesExceptions $this->limiter->acquire(); - return $job->release($this->retryAfterMinutes * 60); + return $job->release($this->getTimeUntilNextRetryAfterException($throwable)); } } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Middleware/WithoutOverlapping.php b/vendor/laravel/framework/src/Illuminate/Queue/Middleware/WithoutOverlapping.php index 19b4c27fb..19875760e 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Middleware/WithoutOverlapping.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Middleware/WithoutOverlapping.php @@ -135,7 +135,7 @@ class WithoutOverlapping } /** - * Indicate that the lock key should be shared across job classes. + * Indicate that the lock key may be shared across jobs belonging to different classes. * * @return $this */ diff --git a/vendor/laravel/framework/src/Illuminate/Queue/NullQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/NullQueue.php index 5c3c3c579..a0d2b207c 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/NullQueue.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/NullQueue.php @@ -3,6 +3,7 @@ namespace Illuminate\Queue; use Illuminate\Contracts\Queue\Queue as QueueContract; +use Illuminate\Support\Collection; class NullQueue extends Queue implements QueueContract { @@ -50,6 +51,69 @@ class NullQueue extends Queue implements QueueContract return 0; } + /** + * Get the pending jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function pendingJobs($queue = null): Collection + { + return new Collection; + } + + /** + * Get the delayed jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function delayedJobs($queue = null): Collection + { + return new Collection; + } + + /** + * Get the reserved jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function reservedJobs($queue = null): Collection + { + return new Collection; + } + + /** + * Get all pending jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allPendingJobs(): Collection + { + return new Collection; + } + + /** + * Get all delayed jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allDelayedJobs(): Collection + { + return new Collection; + } + + /** + * Get all reserved jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allReservedJobs(): Collection + { + return new Collection; + } + /** * Get the creation timestamp of the oldest pending job, excluding delayed jobs. * diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Queue.php b/vendor/laravel/framework/src/Illuminate/Queue/Queue.php index 20819c1f9..f97f01c25 100755 --- a/vendor/laravel/framework/src/Illuminate/Queue/Queue.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Queue.php @@ -2,9 +2,9 @@ namespace Illuminate\Queue; -use Carbon\Carbon; use Closure; use DateTimeInterface; +use Illuminate\Bus\DebounceLock; use Illuminate\Bus\UniqueLock; use Illuminate\Container\Container; use Illuminate\Contracts\Cache\Repository as Cache; @@ -12,8 +12,16 @@ use Illuminate\Contracts\Encryption\Encrypter; use Illuminate\Contracts\Queue\ShouldBeEncrypted; use Illuminate\Contracts\Queue\ShouldBeUnique; use Illuminate\Contracts\Queue\ShouldQueueAfterCommit; +use Illuminate\Queue\Attributes\Backoff; +use Illuminate\Queue\Attributes\DeleteWhenMissingModels; +use Illuminate\Queue\Attributes\FailOnTimeout; +use Illuminate\Queue\Attributes\MaxExceptions; +use Illuminate\Queue\Attributes\ReadsQueueAttributes; +use Illuminate\Queue\Attributes\Timeout; +use Illuminate\Queue\Attributes\Tries; use Illuminate\Queue\Events\JobQueued; use Illuminate\Queue\Events\JobQueueing; +use Illuminate\Support\Carbon; use Illuminate\Support\Collection; use Illuminate\Support\InteractsWithTime; use Illuminate\Support\Str; @@ -22,7 +30,7 @@ use Throwable; abstract class Queue { - use InteractsWithTime; + use InteractsWithTime, ReadsQueueAttributes; /** * The IoC container instance. @@ -156,6 +164,8 @@ abstract class Queue * @param object $job * @param string $queue * @return array + * + * @throws \RuntimeException */ protected function createObjectPayload($job, $queue) { @@ -164,11 +174,12 @@ abstract class Queue 'displayName' => $this->getDisplayName($job), 'job' => 'Illuminate\Queue\CallQueuedHandler@call', 'maxTries' => $this->getJobTries($job), - 'maxExceptions' => $job->maxExceptions ?? null, - 'failOnTimeout' => $job->failOnTimeout ?? false, + 'maxExceptions' => $this->getAttributeValue($job, MaxExceptions::class, 'maxExceptions'), + 'failOnTimeout' => $this->getAttributeValue($job, FailOnTimeout::class, 'failOnTimeout') ?? false, 'backoff' => $this->getJobBackoff($job), - 'timeout' => $job->timeout ?? null, + 'timeout' => $this->getAttributeValue($job, Timeout::class, 'timeout'), 'retryUntil' => $this->getJobExpiration($job), + 'deleteWhenMissingModels' => $this->getAttributeValue($job, DeleteWhenMissingModels::class, 'deleteWhenMissingModels') ?? false, 'data' => [ 'commandName' => $job, 'command' => $job, @@ -218,12 +229,10 @@ abstract class Queue */ public function getJobTries($job) { - if (! method_exists($job, 'tries') && ! isset($job->tries)) { - return; - } + $tries = $this->getAttributeValue($job, Tries::class, 'tries'); - if (is_null($tries = $job->tries ?? $job->tries())) { - return; + if (method_exists($job, 'tries')) { + $tries = $job->tries(); } return $tries; @@ -237,11 +246,13 @@ abstract class Queue */ public function getJobBackoff($job) { - if (! method_exists($job, 'backoff') && ! isset($job->backoff)) { - return; + $backoff = $this->getAttributeValue($job, Backoff::class, 'backoff'); + + if (method_exists($job, 'backoff')) { + $backoff = $job->backoff(); } - if (is_null($backoff = $job->backoff ?? $job->backoff())) { + if (is_null($backoff)) { return; } @@ -327,7 +338,6 @@ abstract class Queue * Create the given payload using any registered payload hooks. * * @param string $queue - * @param array $payload * @return array */ protected function withCreatePayloadHooks($queue, array $payload) @@ -355,13 +365,7 @@ abstract class Queue { if ($this->shouldDispatchAfterCommit($job) && $this->container->bound('db.transactions')) { - if ($job instanceof ShouldBeUnique) { - $this->container->make('db.transactions')->addCallbackForRollback( - function () use ($job) { - (new UniqueLock($this->container->make(Cache::class)))->release($job); - } - ); - } + $this->registerRollbackCallbacksForJobsThatDispatchAfterCommit($job); return $this->container->make('db.transactions')->addCallback( function () use ($queue, $job, $payload, $delay, $callback) { @@ -400,6 +404,31 @@ abstract class Queue return $this->dispatchAfterCommit ?? false; } + /** + * Register callbacks to release locks if the current database transaction is rolled back. + * + * @param \Closure|string|object $job + * @return void + */ + protected function registerRollbackCallbacksForJobsThatDispatchAfterCommit($job) + { + if ($job instanceof ShouldBeUnique) { + $this->container->make('db.transactions')->addCallbackForRollback( + function () use ($job) { + (new UniqueLock($this->container->make(Cache::class)))->release($job); + } + ); + } + + if (! empty($job->debounceOwner ?? '')) { + $this->container->make('db.transactions')->addCallbackForRollback( + function () use ($job) { + (new DebounceLock($this->container->make(Cache::class)))->release($job, $job->debounceOwner ?? ''); + } + ); + } + } + /** * Raise the job queueing event. * @@ -473,7 +502,6 @@ abstract class Queue /** * Set the queue configuration array. * - * @param array $config * @return $this */ public function setConfig(array $config) @@ -496,7 +524,6 @@ abstract class Queue /** * Set the IoC container instance. * - * @param \Illuminate\Container\Container $container * @return void */ public function setContainer(Container $container) diff --git a/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php b/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php index 7a010310a..29a683715 100755 --- a/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php @@ -5,13 +5,18 @@ namespace Illuminate\Queue; use Closure; use Illuminate\Contracts\Queue\Factory as FactoryContract; use Illuminate\Contracts\Queue\Monitor as MonitorContract; +use Illuminate\Support\Queue\Concerns\ResolvesQueueRoutes; use InvalidArgumentException; +use function Illuminate\Support\enum_value; + /** * @mixin \Illuminate\Contracts\Queue\Queue */ class QueueManager implements FactoryContract, MonitorContract { + use ResolvesQueueRoutes; + /** * The application instance. * @@ -120,26 +125,39 @@ class QueueManager implements FactoryContract, MonitorContract $this->app['events']->listen(Events\WorkerStopping::class, $callback); } + /** + * Set the queue route for the given class. + * + * @param array|class-string $class + * @param \UnitEnum|string|null $queue + * @param \UnitEnum|string|null $connection + * @return void + */ + public function route(array|string $class, $queue = null, $connection = null) + { + $this->queueRoutes()->set($class, $queue, $connection); + } + /** * Determine if the driver is connected. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return bool */ public function connected($name = null) { - return isset($this->connections[$name ?: $this->getDefaultDriver()]); + return isset($this->connections[enum_value($name) ?: $this->getDefaultDriver()]); } /** * Resolve a queue connection instance. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return \Illuminate\Contracts\Queue\Queue */ public function connection($name = null) { - $name = $name ?: $this->getDefaultDriver(); + $name = enum_value($name) ?: $this->getDefaultDriver(); // If the connection has not been resolved yet we will resolve it now as all // of the connections are resolved when they are actually needed so we do @@ -266,6 +284,24 @@ class QueueManager implements FactoryContract, MonitorContract ->get("illuminate:queue:paused:{$connection}:{$queue}", false); } + /** + * Determine which of the given queues are currently paused. + * + * @param string $connection + * @param array $queues + * @return array + */ + public function getPausedQueues($connection, $queues) + { + $keys = array_map(fn ($queue) => "illuminate:queue:paused:{$connection}:{$queue}", $queues); + + $states = $this->app['cache']->store()->many($keys); + + return array_values(array_filter( + $queues, fn ($queue) => $states["illuminate:queue:paused:{$connection}:{$queue}"] ?? false + )); + } + /** * Indicate that queue workers should not poll for restart or pause signals. * @@ -331,12 +367,12 @@ class QueueManager implements FactoryContract, MonitorContract /** * Set the name of the default queue connection. * - * @param string $name + * @param \UnitEnum|string $name * @return void */ public function setDefaultDriver($name) { - $this->app['config']['queue.default'] = $name; + $this->app['config']['queue.default'] = enum_value($name); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Queue/QueueRoutes.php b/vendor/laravel/framework/src/Illuminate/Queue/QueueRoutes.php new file mode 100644 index 000000000..c98f7e0e3 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Queue/QueueRoutes.php @@ -0,0 +1,110 @@ + + */ + protected $routes = []; + + /** + * Get the queue connection that a given queueable instance should be routed to. + * + * @param object $queueable + * @return string|null + */ + public function getConnection($queueable) + { + $route = $this->getRoute($queueable); + + if (is_null($route)) { + return; + } + + return is_string($route) + ? null + : $route[0]; + } + + /** + * Get the queue that a given queueable instance should be routed to. + * + * @param object $queueable + * @return string|null + */ + public function getQueue($queueable) + { + $route = $this->getRoute($queueable); + + if (is_null($route)) { + return; + } + + return is_string($route) + ? $route + : $route[1]; + } + + /** + * Get the route for a given queueable instance. + * + * @param object $queueable + * @return array|string|null + */ + public function getRoute($queueable) + { + if (empty($this->routes)) { + return null; + } + + $classes = array_merge( + [get_class($queueable)], + class_parents($queueable) ?: [], + class_implements($queueable) ?: [], + class_uses_recursive($queueable) + ); + + foreach ($classes as $class) { + if (isset($this->routes[$class])) { + return $this->routes[$class]; + } + } + + return null; + } + + /** + * Register the queue route for the given class. + * + * @param array|class-string $class + * @param \UnitEnum|string|null $queue + * @param \UnitEnum|string|null $connection + * @return void + */ + public function set(array|string $class, $queue = null, $connection = null) + { + $routes = is_array($class) ? $class : [$class => [$connection, $queue]]; + + foreach ($routes as $from => $to) { + $this->routes[$from] = is_array($to) + ? array_map(enum_value(...), $to) + : enum_value($to); + } + } + + /** + * Get all registered queue routes. + * + * @return array + */ + public function all() + { + return $this->routes; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php index 898ef7242..b820b07c0 100755 --- a/vendor/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php @@ -42,6 +42,7 @@ class QueueServiceProvider extends ServiceProvider implements DeferrableProvider $this->registerConnection(); $this->registerWorker(); $this->registerListener(); + $this->registerRoutes(); $this->registerFailedJobServices(); } @@ -288,6 +289,18 @@ class QueueServiceProvider extends ServiceProvider implements DeferrableProvider }); } + /** + * Register the default queue routes binding. + * + * @return void + */ + protected function registerRoutes() + { + $this->app->singleton('queue.routes', function () { + return new QueueRoutes; + }); + } + /** * Register the failed job services. * @@ -388,6 +401,7 @@ class QueueServiceProvider extends ServiceProvider implements DeferrableProvider 'queue.connection', 'queue.failer', 'queue.listener', + 'queue.routes', 'queue.worker', ]; } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php index eafe8fd1b..1da127c1a 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php @@ -5,9 +5,12 @@ namespace Illuminate\Queue; use Illuminate\Contracts\Queue\ClearableQueue; use Illuminate\Contracts\Queue\Queue as QueueContract; use Illuminate\Contracts\Redis\Factory as Redis; +use Illuminate\Queue\Jobs\InspectedJob; use Illuminate\Queue\Jobs\RedisJob; +use Illuminate\Redis\Connections\Connection; use Illuminate\Redis\Connections\PhpRedisClusterConnection; use Illuminate\Redis\Connections\PredisClusterConnection; +use Illuminate\Support\Collection; use Illuminate\Support\Str; class RedisQueue extends Queue implements QueueContract, ClearableQueue @@ -65,6 +68,13 @@ class RedisQueue extends Queue implements QueueContract, ClearableQueue */ protected $secondaryQueueHadJob = false; + /** + * Indicates if the connection is a Redis Cluster connection. + * + * @var bool|null + */ + protected $isCluster = null; + /** * Create a new Redis queue instance. * @@ -102,7 +112,7 @@ class RedisQueue extends Queue implements QueueContract, ClearableQueue */ public function size($queue = null) { - $queue = $this->getQueue($queue); + $queue = $this->getQueueRedisKey($queue); return $this->getConnection()->eval( LuaScripts::size(), 3, $queue, $queue.':delayed', $queue.':reserved' @@ -117,7 +127,7 @@ class RedisQueue extends Queue implements QueueContract, ClearableQueue */ public function pendingSize($queue = null) { - return $this->getConnection()->llen($this->getQueue($queue)); + return $this->getConnection()->llen($this->getQueueRedisKey($queue)); } /** @@ -128,7 +138,7 @@ class RedisQueue extends Queue implements QueueContract, ClearableQueue */ public function delayedSize($queue = null) { - return $this->getConnection()->zcard($this->getQueue($queue).':delayed'); + return $this->getConnection()->zcard($this->getQueueRedisKey($queue).':delayed'); } /** @@ -139,7 +149,93 @@ class RedisQueue extends Queue implements QueueContract, ClearableQueue */ public function reservedSize($queue = null) { - return $this->getConnection()->zcard($this->getQueue($queue).':reserved'); + return $this->getConnection()->zcard($this->getQueueRedisKey($queue).':reserved'); + } + + /** + * Get the pending jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function pendingJobs($queue = null): Collection + { + $name = $queue ?: $this->default; + + return (new Collection($this->getConnection()->lrange($this->getQueueRedisKey($queue), 0, -1))) + ->map(fn ($payload) => InspectedJob::fromPayload($payload, queue: $name)); + } + + /** + * Get the delayed jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function delayedJobs($queue = null): Collection + { + $name = $queue ?: $this->default; + + return (new Collection($this->getConnection()->zrange($this->getQueueRedisKey($queue).':delayed', 0, -1))) + ->map(fn ($payload) => InspectedJob::fromPayload($payload, queue: $name)); + } + + /** + * Get the reserved jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function reservedJobs($queue = null): Collection + { + $name = $queue ?: $this->default; + + return (new Collection($this->getConnection()->zrange($this->getQueueRedisKey($queue).':reserved', 0, -1))) + ->map(fn ($payload) => InspectedJob::fromPayload($payload, queue: $name)); + } + + /** + * Get all pending jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allPendingJobs(): Collection + { + return $this->allQueueNames()->flatMap(fn ($name) => $this->pendingJobs($name)); + } + + /** + * Get all delayed jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allDelayedJobs(): Collection + { + return $this->allQueueNames()->flatMap(fn ($name) => $this->delayedJobs($name)); + } + + /** + * Get all reserved jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allReservedJobs(): Collection + { + return $this->allQueueNames()->flatMap(fn ($name) => $this->reservedJobs($name)); + } + + /** + * Get the unique queue names. + * + * @return \Illuminate\Support\Collection + */ + protected function allQueueNames(): Collection + { + return (new Collection($this->getConnection()->keys('queues:*'))) + // Trim to ensure clusters get their braces removed... + ->map(fn ($key) => trim(Str::between($key, 'queues:', ':'), '{}')) + ->unique() + ->values(); } /** @@ -150,7 +246,7 @@ class RedisQueue extends Queue implements QueueContract, ClearableQueue */ public function creationTimeOfOldestPendingJob($queue = null) { - $payload = $this->getConnection()->lindex($this->getQueue($queue), 0); + $payload = $this->getConnection()->lindex($this->getQueueRedisKey($queue), 0); if (! $payload) { return null; @@ -223,9 +319,11 @@ class RedisQueue extends Queue implements QueueContract, ClearableQueue */ public function pushRaw($payload, $queue = null, array $options = []) { + $queue = $this->getQueueRedisKey($queue); + $this->getConnection()->eval( - LuaScripts::push(), 2, $this->getQueue($queue), - $this->getQueue($queue).':notify', $payload + LuaScripts::push(), 2, $queue, + $queue.':notify', $payload ); return json_decode($payload, true)['id'] ?? null; @@ -264,7 +362,7 @@ class RedisQueue extends Queue implements QueueContract, ClearableQueue protected function laterRaw($delay, $payload, $queue = null) { $this->getConnection()->eval( - LuaScripts::later(), 1, $this->getQueue($queue).':delayed', + LuaScripts::later(), 1, $this->getQueueRedisKey($queue).':delayed', $this->availableAt($delay), $payload ); @@ -296,7 +394,7 @@ class RedisQueue extends Queue implements QueueContract, ClearableQueue */ public function pop($queue = null, $index = 0) { - $this->migrate($prefixed = $this->getQueue($queue)); + $this->migrate($prefixed = $this->getQueueRedisKey($queue)); $block = ! $this->secondaryQueueHadJob && $index == 0; @@ -384,7 +482,7 @@ class RedisQueue extends Queue implements QueueContract, ClearableQueue */ public function deleteReserved($queue, $job) { - $this->getConnection()->zrem($this->getQueue($queue).':reserved', $job->getReservedJob()); + $this->getConnection()->zrem($this->getQueueRedisKey($queue).':reserved', $job->getReservedJob()); } /** @@ -397,7 +495,7 @@ class RedisQueue extends Queue implements QueueContract, ClearableQueue */ public function deleteAndRelease($queue, $job, $delay) { - $queue = $this->getQueue($queue); + $queue = $this->getQueueRedisKey($queue); $this->getConnection()->eval( LuaScripts::release(), 2, $queue.':delayed', $queue.':reserved', @@ -408,12 +506,12 @@ class RedisQueue extends Queue implements QueueContract, ClearableQueue /** * Delete all of the jobs from the queue. * - * @param string $queue + * @param string|null $queue * @return int */ - public function clear($queue) + public function clear($queue = null) { - $queue = $this->getQueue($queue); + $queue = $this->getQueueRedisKey($queue); return $this->getConnection()->eval( LuaScripts::clear(), 4, $queue, $queue.':delayed', @@ -442,6 +540,21 @@ class RedisQueue extends Queue implements QueueContract, ClearableQueue return 'queues:'.($queue ?: $this->default); } + /** + * Get the cluster-safe Redis key for the given queue. + * + * @param string|null $queue + * @return string + */ + protected function getQueueRedisKey($queue = null) + { + $queue = $queue ?: $this->default; + + return $this->isClusterConnection() && ! Connection::hasHashTag($queue) + ? $this->getQueue('{'.$queue.'}') + : $this->getQueue($queue); + } + /** * Get the connection for the queue. * @@ -452,6 +565,16 @@ class RedisQueue extends Queue implements QueueContract, ClearableQueue return $this->redis->connection($this->connection); } + /** + * Determine if the connection is a Redis Cluster connection. + * + * @return bool + */ + protected function isClusterConnection() + { + return $this->isCluster ??= $this->getConnection()->isCluster(); + } + /** * Get the underlying Redis instance. * diff --git a/vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php b/vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php index ce120262e..0d34885a9 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php @@ -92,11 +92,11 @@ trait SerializesAndRestoresModelIdentifiers $collectionClass = get_class($collection); - return new $collectionClass( + return (new $collectionClass( (new Collection($value->id)) ->map(fn ($id) => $collection[$id] ?? null) ->filter() - ); + ))->loadMissing($value->relations ?? []); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Queue/SerializesModels.php b/vendor/laravel/framework/src/Illuminate/Queue/SerializesModels.php index 388c1d745..f1f6348c7 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/SerializesModels.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/SerializesModels.php @@ -3,6 +3,7 @@ namespace Illuminate\Queue; use Illuminate\Queue\Attributes\WithoutRelations; +use Illuminate\Support\Reflector; use ReflectionClass; use ReflectionProperty; @@ -24,7 +25,7 @@ trait SerializesModels [$class, $properties, $classLevelWithoutRelations] = [ get_class($this), $reflectionClass->getProperties(), - ! empty($reflectionClass->getAttributes(WithoutRelations::class)), + ! is_null(Reflector::getClassAttribute($this, WithoutRelations::class, ascend: true)), ]; foreach ($properties as $property) { diff --git a/vendor/laravel/framework/src/Illuminate/Queue/SqsQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/SqsQueue.php index 3543d2dd4..c90b508ac 100755 --- a/vendor/laravel/framework/src/Illuminate/Queue/SqsQueue.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/SqsQueue.php @@ -2,14 +2,39 @@ namespace Illuminate\Queue; +use Aws\Command; +use Aws\Sqs\Exception\SqsException; use Aws\Sqs\SqsClient; use Illuminate\Contracts\Queue\ClearableQueue; use Illuminate\Contracts\Queue\Queue as QueueContract; use Illuminate\Queue\Jobs\SqsJob; +use Illuminate\Support\Arr; +use Illuminate\Support\Collection; use Illuminate\Support\Str; class SqsQueue extends Queue implements QueueContract, ClearableQueue { + /** + * The maximum SQS payload size in bytes (1 MB). + * + * @var int + */ + const MAX_SQS_PAYLOAD_SIZE = 1048576; + + /** + * The maximum number of messages allowed per SendMessageBatch request. + * + * @var int + */ + const MAX_MESSAGES_PER_BATCH = 10; + + /** + * The cache key prefix for extended SQS payloads. + * + * @var string + */ + const EXTENDED_PAYLOAD_CACHE_PREFIX = 'laravel:sqs-payloads:'; + /** * The Amazon SQS instance. * @@ -38,6 +63,13 @@ class SqsQueue extends Queue implements QueueContract, ClearableQueue */ protected $suffix; + /** + * The overflow storage options for large payload offloading. + * + * @var array + */ + protected $overflowStorage = []; + /** * Create a new Amazon SQS queue instance. * @@ -46,6 +78,7 @@ class SqsQueue extends Queue implements QueueContract, ClearableQueue * @param string $prefix * @param string $suffix * @param bool $dispatchAfterCommit + * @param array $overflowStorage */ public function __construct( SqsClient $sqs, @@ -53,12 +86,14 @@ class SqsQueue extends Queue implements QueueContract, ClearableQueue $prefix = '', $suffix = '', $dispatchAfterCommit = false, + array $overflowStorage = [], ) { $this->sqs = $sqs; $this->prefix = $prefix; $this->default = $default; $this->suffix = $suffix; $this->dispatchAfterCommit = $dispatchAfterCommit; + $this->overflowStorage = $overflowStorage; } /** @@ -133,6 +168,69 @@ class SqsQueue extends Queue implements QueueContract, ClearableQueue return (int) $response['Attributes']['ApproximateNumberOfMessagesNotVisible'] ?? 0; } + /** + * Get the pending jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function pendingJobs($queue = null): Collection + { + return new Collection; + } + + /** + * Get the delayed jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function delayedJobs($queue = null): Collection + { + return new Collection; + } + + /** + * Get the reserved jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function reservedJobs($queue = null): Collection + { + return new Collection; + } + + /** + * Get all pending jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allPendingJobs(): Collection + { + return new Collection; + } + + /** + * Get all delayed jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allDelayedJobs(): Collection + { + return new Collection; + } + + /** + * Get all reserved jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allReservedJobs(): Collection + { + return new Collection; + } + /** * Get the creation timestamp of the oldest pending job, excluding delayed jobs. * @@ -178,6 +276,10 @@ class SqsQueue extends Queue implements QueueContract, ClearableQueue */ public function pushRaw($payload, $queue = null, array $options = []) { + if ($this->willOverflow($payload)) { + $payload = $this->overflow($payload); + } + return $this->sqs->sendMessage([ 'QueueUrl' => $this->getQueue($queue), 'MessageBody' => $payload, ...$options, ])->get('MessageId'); @@ -205,6 +307,241 @@ class SqsQueue extends Queue implements QueueContract, ClearableQueue ); } + /** + * Push an array of jobs onto the queue using the SendMessageBatch API. + * + * @param array $jobs + * @param mixed $data + * @param string|null $queue + * @return void + */ + public function bulk($jobs, $data = '', $queue = null) + { + $jobs = array_values((array) $jobs); + + if (empty($jobs)) { + return; + } + + [$afterCommit, $immediate] = $this->partitionJobsByAfterCommit($jobs); + + if (! empty($immediate)) { + $this->sendBatchedMessages($this->prepareBatchMessages($immediate, $data, $queue), $queue); + } + + if (! empty($afterCommit)) { + foreach ($afterCommit as $job) { + $this->registerRollbackCallbacksForJobsThatDispatchAfterCommit($job); + } + + $messages = $this->prepareBatchMessages($afterCommit, $data, $queue); + + $this->container->make('db.transactions')->addCallback( + fn () => $this->sendBatchedMessages($messages, $queue), + ); + } + } + + /** + * Partition the given jobs by whether they should be deferred until the active database transaction commits. + * + * @param array $jobs + * @return array{0: array, 1: array} + */ + protected function partitionJobsByAfterCommit(array $jobs) + { + if (! $this->container->bound('db.transactions')) { + return [[], $jobs]; + } + + return (new Collection($jobs)) + ->partition(fn ($job) => $this->shouldDispatchAfterCommit($job)) + ->map(fn ($jobs) => $jobs->values()->all()) + ->all(); + } + + /** + * Create the payload for each of the given jobs. + * + * Payloads are created at dispatch time, even for jobs deferred until after the transaction commits. + * + * @param array $jobs + * @param mixed $data + * @param string|null $queue + * @return array + */ + protected function prepareBatchMessages(array $jobs, $data, $queue) + { + return (new Collection($jobs)) + ->map(function ($job) use ($data, $queue) { + $delay = is_object($job) ? ($job->delay ?? null) : null; + + return [ + 'job' => $job, + 'delay' => $delay, + 'payload' => $this->createPayload($job, $queue ?: $this->default, $data, $delay), + ]; + }) + ->all(); + } + + /** + * Build entries, raise queueing events, dispatch chunks, and raise queued events with SQS message IDs. + * + * @param array $messages + * @param string|null $queue + * @return void + * + * @throws \Aws\Sqs\Exception\SqsException + * @throws \Throwable + */ + protected function sendBatchedMessages(array $messages, $queue) + { + $entries = []; + + foreach ($messages as $id => $message) { + $this->raiseJobQueueingEvent($queue, $message['job'], $message['payload'], $message['delay']); + + $entries[$id] = $this->prepareSendMessageBatchEntry($id, $message, $queue); + } + + $queueUrl = $this->getQueue($queue); + + // Dispatch chunks and stop at the first failure so later messages cannot arrive ahead of unsent ones... + foreach ($this->chunkBatchEntries($entries) as $chunk) { + $result = $this->sqs->sendMessageBatch([ + 'QueueUrl' => $queueUrl, + 'Entries' => $chunk, + ]); + + foreach ($result['Successful'] ?? [] as $success) { + if (! isset($messages[$success['Id']])) { + continue; + } + + $message = $messages[$success['Id']]; + + $this->raiseJobQueuedEvent( + $queue, $success['MessageId'], $message['job'], $message['payload'], $message['delay'] + ); + } + + // A batch can return HTTP 200 while rejecting entries, so surface those failures as an SqsException... + if (! empty($result['Failed'])) { + $failure = $result['Failed'][0]; + + throw new SqsException( + sprintf( + 'SQS SendMessageBatch rejected [%d] of [%d] messages. First failure [%s]: %s', + count($result['Failed']), + count($chunk), + $failure['Code'] ?? 'Unknown', + $failure['Message'] ?? '', + ), + new Command('SendMessageBatch', ['QueueUrl' => $queueUrl, 'Entries' => $chunk]), + [ + 'code' => $failure['Code'] ?? null, + 'message' => $failure['Message'] ?? null, + 'result' => $result, + ], + ); + } + } + } + + /** + * Build the SendMessageBatch entry for a single prepared message. + * + * The entry Id maps each Successful or Failed result returned by SQS back to its job. + * + * @param int $id + * @param array{job: mixed, delay: mixed, payload: string} $message + * @param string|null $queue + * @return array + */ + protected function prepareSendMessageBatchEntry($id, array $message, $queue) + { + ['job' => $job, 'delay' => $delay, 'payload' => $payload] = $message; + + return [ + 'Id' => (string) $id, + 'MessageBody' => $this->willOverflow($payload) ? $this->overflow($payload) : $payload, + ...$this->getQueueableOptions($job, $queue, $payload, $delay), + ]; + } + + /** + * Chunk batch entries respecting both the 10-message and cumulative payload-size limits enforced by SendMessageBatch. + * + * @param array $entries + * @return array + */ + protected function chunkBatchEntries(array $entries) + { + [$chunks, $currentChunk, $currentBytes] = [[], [], 0]; + + foreach ($entries as $item) { + $bytes = strlen($item['MessageBody']); + + $wouldExceedCount = count($currentChunk) >= static::MAX_MESSAGES_PER_BATCH; + $wouldExceedBytes = $currentBytes + $bytes > static::MAX_SQS_PAYLOAD_SIZE; + + if (! empty($currentChunk) && ($wouldExceedCount || $wouldExceedBytes)) { + $chunks[] = $currentChunk; + $currentChunk = []; + $currentBytes = 0; + } + + $currentChunk[] = $item; + $currentBytes += $bytes; + } + + if (! empty($currentChunk)) { + $chunks[] = $currentChunk; + } + + return $chunks; + } + + /** + * Determine if the payload should be stored in cache. + * + * @param string $payload + * @return bool + */ + protected function willOverflow($payload) + { + if (! Arr::get($this->overflowStorage, 'enabled', false)) { + return false; + } + + return Arr::get($this->overflowStorage, 'always', false) + || strlen($payload) >= static::MAX_SQS_PAYLOAD_SIZE; + } + + /** + * Store the payload in cache and return a pointer payload. + * + * @param string $payload + * @return string + */ + protected function overflow($payload) + { + $decoded = json_decode($payload); + + $uuid = is_object($decoded) && isset($decoded->uuid) + ? $decoded->uuid + : (string) Str::uuid(); + + $this->container->make('cache')->store( + Arr::get($this->overflowStorage, 'store') + )->put( + $path = static::EXTENDED_PAYLOAD_CACHE_PREFIX.$uuid, $payload + ); + + return json_encode(['@pointer' => $path]); + } + /** * Get the queueable options from the job. * @@ -256,8 +593,12 @@ class SqsQueue extends Queue implements QueueContract, ClearableQueue if ($isFifo) { $messageDeduplicationId = match (true) { - $isObject && isset($job->deduplicator) && is_callable($job->deduplicator) => transform(call_user_func($job->deduplicator, $payload, $queue), $transformToString), - $isObject && method_exists($job, 'deduplicationId') => transform($job->deduplicationId($payload, $queue), $transformToString), + $isObject && isset($job->deduplicator) && is_callable($job->deduplicator) => transform( + call_user_func($job->deduplicator, $payload, $queue), $transformToString + ), + $isObject && method_exists($job, 'deduplicationId') => transform( + $job->deduplicationId($payload, $queue), $transformToString + ), default => (string) Str::orderedUuid(), }; } @@ -267,25 +608,6 @@ class SqsQueue extends Queue implements QueueContract, ClearableQueue return array_filter($options); } - /** - * Push an array of jobs onto the queue. - * - * @param array $jobs - * @param mixed $data - * @param string|null $queue - * @return void - */ - public function bulk($jobs, $data = '', $queue = null) - { - foreach ((array) $jobs as $job) { - if (isset($job->delay)) { - $this->later($job->delay, $job, $data, $queue); - } else { - $this->push($job, $data, $queue); - } - } - } - /** * Pop the next job off of the queue. * @@ -302,7 +624,7 @@ class SqsQueue extends Queue implements QueueContract, ClearableQueue if (! is_null($response['Messages']) && count($response['Messages']) > 0) { return new SqsJob( $this->container, $this->sqs, $response['Messages'][0], - $this->connectionName, $queue + $this->connectionName, $queue, $this->overflowStorage ); } } @@ -310,15 +632,22 @@ class SqsQueue extends Queue implements QueueContract, ClearableQueue /** * Delete all of the jobs from the queue. * - * @param string $queue + * @param string|null $queue * @return int */ - public function clear($queue) + public function clear($queue = null) { return tap($this->size($queue), function () use ($queue) { $this->sqs->purgeQueue([ 'QueueUrl' => $this->getQueue($queue), ]); + + if (Arr::get($this->overflowStorage, 'enabled') + && Arr::get($this->overflowStorage, 'flush_on_clear')) { + $this->container->make('cache')->store( + Arr::get($this->overflowStorage, 'store') + )->flush(); + } }); } diff --git a/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php index fe574e573..5ae25a025 100755 --- a/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php @@ -2,16 +2,14 @@ namespace Illuminate\Queue; -use Illuminate\Bus\UniqueLock; -use Illuminate\Contracts\Cache\Repository as Cache; use Illuminate\Contracts\Queue\Job; use Illuminate\Contracts\Queue\Queue as QueueContract; -use Illuminate\Contracts\Queue\ShouldBeUnique; use Illuminate\Queue\Events\JobAttempted; use Illuminate\Queue\Events\JobExceptionOccurred; use Illuminate\Queue\Events\JobProcessed; use Illuminate\Queue\Events\JobProcessing; use Illuminate\Queue\Jobs\SyncJob; +use Illuminate\Support\Collection; use Throwable; class SyncQueue extends Queue implements QueueContract @@ -70,6 +68,69 @@ class SyncQueue extends Queue implements QueueContract return 0; } + /** + * Get the pending jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function pendingJobs($queue = null): Collection + { + return new Collection; + } + + /** + * Get the delayed jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function delayedJobs($queue = null): Collection + { + return new Collection; + } + + /** + * Get the reserved jobs for the given queue. + * + * @param string|null $queue + * @return \Illuminate\Support\Collection + */ + public function reservedJobs($queue = null): Collection + { + return new Collection; + } + + /** + * Get all pending jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allPendingJobs(): Collection + { + return new Collection; + } + + /** + * Get all delayed jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allDelayedJobs(): Collection + { + return new Collection; + } + + /** + * Get all reserved jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allReservedJobs(): Collection + { + return new Collection; + } + /** * Get the creation timestamp of the oldest pending job, excluding delayed jobs. * @@ -95,13 +156,7 @@ class SyncQueue extends Queue implements QueueContract { if ($this->shouldDispatchAfterCommit($job) && $this->container->bound('db.transactions')) { - if ($job instanceof ShouldBeUnique) { - $this->container->make('db.transactions')->addCallbackForRollback( - function () use ($job) { - (new UniqueLock($this->container->make(Cache::class)))->release($job); - } - ); - } + $this->registerRollbackCallbacksForJobsThatDispatchAfterCommit($job); return $this->container->make('db.transactions')->addCallback( fn () => $this->executeJob($job, $data, $queue) @@ -132,11 +187,11 @@ class SyncQueue extends Queue implements QueueContract $this->raiseAfterJobEvent($queueJob); } catch (Throwable $e) { - $exceptionOccurred = true; + $exceptionOccurred = $e; $this->handleException($queueJob, $e); } finally { - $this->raiseJobAttemptedEvent($queueJob, $exceptionOccurred ?? false); + $this->raiseJobAttemptedEvent($queueJob, $exceptionOccurred ?? null); } return 0; @@ -184,10 +239,10 @@ class SyncQueue extends Queue implements QueueContract * Raise the job attempted event. * * @param \Illuminate\Contracts\Queue\Job $job - * @param bool $exceptionOccurred + * @param \Throwable|null $exception * @return void */ - protected function raiseJobAttemptedEvent(Job $job, bool $exceptionOccurred = false) + protected function raiseJobAttemptedEvent(Job $job, ?Throwable $exceptionOccurred = null) { if ($this->container->bound('events')) { $this->container['events']->dispatch(new JobAttempted($this->connectionName, $job, $exceptionOccurred)); diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Worker.php b/vendor/laravel/framework/src/Illuminate/Queue/Worker.php index 282e9c966..512236859 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Worker.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Worker.php @@ -6,6 +6,7 @@ use Illuminate\Contracts\Cache\Repository as CacheContract; use Illuminate\Contracts\Debug\ExceptionHandler; use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\Queue\Factory as QueueManager; +use Illuminate\Contracts\Queue\Interruptible; use Illuminate\Database\DetectsLostConnections; use Illuminate\Queue\Events\JobAttempted; use Illuminate\Queue\Events\JobExceptionOccurred; @@ -16,6 +17,10 @@ use Illuminate\Queue\Events\JobProcessing; use Illuminate\Queue\Events\JobReleasedAfterException; use Illuminate\Queue\Events\JobTimedOut; use Illuminate\Queue\Events\Looping; +use Illuminate\Queue\Events\WorkerIdle; +use Illuminate\Queue\Events\WorkerInterrupted; +use Illuminate\Queue\Events\WorkerPausing; +use Illuminate\Queue\Events\WorkerResuming; use Illuminate\Queue\Events\WorkerStarting; use Illuminate\Queue\Events\WorkerStopping; use Illuminate\Support\Carbon; @@ -78,6 +83,27 @@ class Worker */ protected $resetScope; + /** + * The number of jobs processed by the worker. + * + * @var int|null + */ + protected $jobsProcessed; + + /** + * The timestamp of the last job processed by the worker. + * + * @var int|float|null + */ + protected $lastJobProcessedAt; + + /** + * The job currently being processed. + * + * @var \Illuminate\Contracts\Queue\Job|null + */ + public $currentJob = null; + /** * Indicates if the worker should exit. * @@ -113,6 +139,27 @@ class Worker */ public static $memoryExceededExitCode; + /** + * The custom exit code to be used when a job times out. + * + * @var int|null + */ + public static $timedOutExitCode; + + /** + * Indicates if the worker should report job exceptions. + * + * @var bool + */ + public static $reportJobExceptions = true; + + /** + * Indicates if the worker should stop when a lost connection is detected. + * + * @var bool + */ + public static $stopOnLostConnection = true; + /** * Indicates if the worker should check for the restart signal in the cache. * @@ -161,14 +208,14 @@ class Worker public function daemon($connectionName, $queue, WorkerOptions $options) { if ($supportsAsyncSignals = $this->supportsAsyncSignals()) { - $this->listenForSignals(); + $this->listenForSignals($connectionName, $queue, $options); } $lastRestart = $this->getTimestampOfLastQueueRestart(); - [$startTime, $jobsProcessed] = [$this->currentTime(), 0]; + $startTime = $this->currentTime(); - $lastJobProcessedAt = $startTime; + $this->jobsProcessed = 0; $this->raiseWorkerStartingEvent($connectionName, $queue, $options); @@ -177,9 +224,7 @@ class Worker // if it is we will just pause this worker for a given amount of time and // make sure we do not need to kill this worker process off completely. if (! $this->daemonShouldRun($options, $connectionName, $queue)) { - [$status, $reason] = $this->pauseWorker( - $options, $lastRestart, $startTime, $jobsProcessed, $lastJobProcessedAt - ); + [$status, $reason] = $this->pauseWorker($options, $lastRestart, $startTime); if (! is_null($status)) { return $this->stop($status, $options, $reason); @@ -207,16 +252,18 @@ class Worker // fire off this job for processing. Otherwise, we will need to sleep the // worker so no more jobs are processed until they should be processed. if ($job) { - $jobsProcessed++; + $this->jobsProcessed++; $this->runJob($job, $connectionName, $options); - $lastJobProcessedAt = $this->currentTime(); + $this->lastJobProcessedAt = $this->currentTime(); if ($options->rest > 0) { $this->sleep($options->rest); } } else { + $this->events->dispatch(new WorkerIdle($connectionName, $queue, $options)); + $this->sleep($options->sleep); } @@ -227,9 +274,7 @@ class Worker // Finally, we will check to see if we have exceeded our memory limits or if // the queue should restart based on other indications. If so, we'll stop // this worker and let whatever is "monitoring" it restart the process. - [$status, $reason] = $this->stopIfNecessary( - $options, $lastRestart, $startTime, $jobsProcessed, $job, $lastJobProcessedAt - ); + [$status, $reason] = $this->stopIfNecessary($options, $lastRestart, $startTime, $job); if (! is_null($status)) { return $this->stop($status, $options, $reason); @@ -268,7 +313,7 @@ class Worker )); } - $this->kill(static::EXIT_ERROR, $options, WorkerStopReason::TimedOut); + $this->kill(static::$timedOutExitCode ?? static::EXIT_ERROR, $options, WorkerStopReason::TimedOut); }, true); pcntl_alarm( @@ -308,9 +353,9 @@ class Worker */ protected function daemonShouldRun(WorkerOptions $options, $connectionName, $queue) { - return ! ((($this->isDownForMaintenance)() && ! $options->force) || + return ! ((! $options->force && ($this->isDownForMaintenance)()) || $this->paused || - $this->events->until(new Looping($connectionName, $queue)) === false); + $this->events->until(new Looping($connectionName, $queue, $options)) === false); } /** @@ -319,15 +364,13 @@ class Worker * @param \Illuminate\Queue\WorkerOptions $options * @param int $lastRestart * @param int|float $startTime - * @param int $jobsProcessed - * @param int|float|null $lastJobProcessedAt * @return array|null */ - protected function pauseWorker(WorkerOptions $options, $lastRestart, $startTime = 0, $jobsProcessed = 0, $lastJobProcessedAt = null) + protected function pauseWorker(WorkerOptions $options, $lastRestart, $startTime = 0) { $this->sleep($options->sleep > 0 ? $options->sleep : 1); - return $this->stopIfNecessary($options, $lastRestart, $startTime, $jobsProcessed, null, $lastJobProcessedAt); + return $this->stopIfNecessary($options, $lastRestart, $startTime); } /** @@ -336,12 +379,10 @@ class Worker * @param \Illuminate\Queue\WorkerOptions $options * @param int $lastRestart * @param int $startTime - * @param int $jobsProcessed * @param mixed $job - * @param int|float|null $lastJobProcessedAt * @return array|null */ - protected function stopIfNecessary(WorkerOptions $options, $lastRestart, $startTime = 0, $jobsProcessed = 0, $job = null, $lastJobProcessedAt = null) + protected function stopIfNecessary(WorkerOptions $options, $lastRestart, $startTime = 0, $job = null) { return match (true) { $this->lostConnection => [static::EXIT_SUCCESS, WorkerStopReason::LostConnection], @@ -349,9 +390,9 @@ class Worker $this->memoryExceeded($options->memory) => [static::$memoryExceededExitCode ?? static::EXIT_MEMORY_LIMIT, WorkerStopReason::MaxMemoryExceeded], $this->queueShouldRestart($lastRestart) => [static::EXIT_SUCCESS, WorkerStopReason::ReceivedRestartSignal], $options->stopWhenEmpty && is_null($job) => [static::EXIT_SUCCESS, WorkerStopReason::QueueEmpty], - $options->stopWhenEmptyFor && is_null($job) && $this->currentTime() - ($lastJobProcessedAt ?? $startTime) >= $options->stopWhenEmptyFor => [static::EXIT_SUCCESS, WorkerStopReason::QueueEmptyFor], + $options->stopWhenEmptyFor && is_null($job) && $this->currentTime() - ($this->lastJobProcessedAt ?? $startTime) >= $options->stopWhenEmptyFor => [static::EXIT_SUCCESS, WorkerStopReason::QueueEmptyFor], $options->maxTime && $this->currentTime() - $startTime >= $options->maxTime => [static::EXIT_SUCCESS, WorkerStopReason::MaxTimeExceeded], - $options->maxJobs && $jobsProcessed >= $options->maxJobs => [static::EXIT_SUCCESS, WorkerStopReason::MaxJobsExceeded], + $options->maxJobs && $this->jobsProcessed >= $options->maxJobs => [static::EXIT_SUCCESS, WorkerStopReason::MaxJobsExceeded], default => null }; } @@ -404,8 +445,12 @@ class Worker return $job; } - foreach (explode(',', $queue) as $index => $queue) { - if ($this->queuePaused($connection->getConnectionName(), $queue)) { + $queues = explode(',', $queue); + + $paused = array_flip($this->getPausedQueues($connection->getConnectionName(), $queues)); + + foreach ($queues as $index => $queue) { + if (isset($paused[$queue])) { continue; } @@ -425,19 +470,23 @@ class Worker } /** - * Determine if a given connection and queue is paused. + * Determine which of the given queues are currently paused. * * @param string $connectionName - * @param string $queue - * @return bool + * @param array $queues + * @return array */ - protected function queuePaused($connectionName, $queue) + protected function getPausedQueues($connectionName, $queues) { if (! static::$pausable) { - return false; + return []; } - return $this->cache && $this->manager->isPaused($connectionName, $queue); + if ($this->cache === null) { + return []; + } + + return $this->manager->getPausedQueues($connectionName, $queues); } /** @@ -450,12 +499,18 @@ class Worker */ protected function runJob($job, $connectionName, WorkerOptions $options) { + $this->currentJob = $job; + try { return $this->process($connectionName, $job, $options); } catch (Throwable $e) { - $this->exceptions->report($e); + if (static::$reportJobExceptions) { + $this->exceptions->report($e); + } $this->stopWorkerIfLostConnection($e); + } finally { + $this->currentJob = null; } } @@ -467,7 +522,7 @@ class Worker */ protected function stopWorkerIfLostConnection($e) { - if ($this->causedByLostConnection($e)) { + if (static::$stopOnLostConnection && $this->causedByLostConnection($e)) { $this->lostConnection = true; } } @@ -505,12 +560,12 @@ class Worker $this->raiseAfterJobEvent($connectionName, $job); } catch (Throwable $e) { - $exceptionOccurred = true; + $exceptionOccurred = $e; $this->handleJobException($connectionName, $job, $options, $e); } finally { $this->events->dispatch(new JobAttempted( - $connectionName, $job, $exceptionOccurred ?? false + $connectionName, $job, $exceptionOccurred ?? null )); } } @@ -540,6 +595,10 @@ class Worker $this->markJobAsFailedIfWillExceedMaxExceptions( $connectionName, $job, $e ); + + $this->markJobAsFailedIfItShouldntBeRetried( + $connectionName, $job, $e + ); } $this->raiseExceptionOccurredJobEvent( @@ -642,6 +701,21 @@ class Worker } } + /** + * Mark the given job as failed if the exception handler determines it should not be retried. + * + * @param string $connectionName + * @param \Illuminate\Contracts\Queue\Job $job + * @param \Throwable $e + * @return void + */ + protected function markJobAsFailedIfItShouldntBeRetried($connectionName, $job, Throwable $e) + { + if (method_exists($this->exceptions, 'shouldStopRetries') && $this->exceptions->shouldStopRetries($e)) { + $this->failJob($job, $e); + } + } + /** * Mark the given job as failed if it should fail on timeouts. * @@ -804,17 +878,61 @@ class Worker /** * Enable async signals for the process. * + * @param string|null $connectionName + * @param string|null $queue + * @param \Illuminate\Queue\WorkerOptions|null $options * @return void */ - protected function listenForSignals() + protected function listenForSignals($connectionName = null, $queue = null, ?WorkerOptions $options = null) { pcntl_async_signals(true); - pcntl_signal(SIGQUIT, fn () => $this->shouldQuit = true); - pcntl_signal(SIGTERM, fn () => $this->shouldQuit = true); - pcntl_signal(SIGINT, fn () => $this->shouldQuit = true); - pcntl_signal(SIGUSR2, fn () => $this->paused = true); - pcntl_signal(SIGCONT, fn () => $this->paused = false); + foreach ([SIGQUIT, SIGTERM, SIGINT] as $signal) { + pcntl_signal($signal, function (int $signal) use ($connectionName, $queue, $options) { + $this->shouldQuit = true; + + $this->events->dispatch(new WorkerInterrupted($signal, $connectionName, $queue, $options)); + + $this->notifyJobOfSignal($signal); + }); + } + + pcntl_signal(SIGUSR2, function () use ($queue, $connectionName, $options) { + $this->paused = true; + + $this->events->dispatch(new WorkerPausing($connectionName, $queue, $options)); + }); + + pcntl_signal(SIGCONT, function () use ($connectionName, $queue, $options) { + $this->paused = false; + + $this->events->dispatch(new WorkerResuming($connectionName, $queue, $options)); + }); + } + + /** + * Passes the signal to the running job. + * + * @param int $signal + * @return void + */ + protected function notifyJobOfSignal(int $signal): void + { + if (! $this->currentJob) { + return; + } + + $handler = $this->currentJob->getResolvedJob(); + + if (! $handler instanceof CallQueuedHandler) { + return; + } + + $job = $handler->getRunningCommand(); + + if ($job instanceof Interruptible) { + $job->interrupted($signal); + } } /** @@ -848,7 +966,7 @@ class Worker */ public function stop($status = 0, $options = null, $reason = null) { - $this->events->dispatch(new WorkerStopping($status, $options, $reason)); + $this->events->dispatch(new WorkerStopping($status, $options, $reason, $this->jobsProcessed, $this->lastJobProcessedAt)); return $status; } @@ -863,7 +981,7 @@ class Worker */ public function kill($status = 0, $options = null, $reason = null) { - $this->events->dispatch(new WorkerStopping($status, $options, $reason)); + $this->events->dispatch(new WorkerStopping($status, $options, $reason, $this->jobsProcessed, $this->lastJobProcessedAt)); if (extension_loaded('posix')) { posix_kill(getmypid(), SIGKILL); diff --git a/vendor/laravel/framework/src/Illuminate/Queue/composer.json b/vendor/laravel/framework/src/Illuminate/Queue/composer.json index 197737e2d..5d73849c7 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Queue/composer.json @@ -2,53 +2,53 @@ "name": "illuminate/queue", "description": "The Illuminate Queue package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "illuminate/collections": "^12.0", - "illuminate/console": "^12.0", - "illuminate/container": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/database": "^12.0", - "illuminate/filesystem": "^12.0", - "illuminate/pipeline": "^12.0", - "illuminate/support": "^12.0", - "laravel/serializable-closure": "^1.3|^2.0", - "ramsey/uuid": "^4.7", - "symfony/process": "^7.2.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "illuminate/collections": "^13.0", + "illuminate/console": "^13.0", + "illuminate/container": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/database": "^13.0", + "illuminate/filesystem": "^13.0", + "illuminate/pipeline": "^13.0", + "illuminate/support": "^13.0", + "laravel/serializable-closure": "^2.0.10", + "ramsey/uuid": "^4.7", + "symfony/process": "^7.4.5 || ^8.0.5" + }, + "suggest": { + "ext-filter": "Required to use the SQS queue worker.", + "ext-mbstring": "Required to use the database failed job providers.", + "ext-pcntl": "Required to use all features of the queue worker.", + "ext-pdo": "Required to use the database queue worker.", + "ext-posix": "Required to use all features of the queue worker.", + "aws/aws-sdk-php": "Required to use the SQS queue driver and DynamoDb failed job storage (^3.322.9).", + "illuminate/redis": "Required to use the Redis queue driver (^13.0).", + "pda/pheanstalk": "Required to use the Beanstalk queue driver (^7.0 || ^8.0)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Queue\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "suggest": { - "ext-pdo": "Required to use the database queue worker.", - "ext-filter": "Required to use the SQS queue worker.", - "ext-mbstring": "Required to use the database failed job providers.", - "ext-pcntl": "Required to use all features of the queue worker.", - "ext-posix": "Required to use all features of the queue worker.", - "aws/aws-sdk-php": "Required to use the SQS queue driver and DynamoDb failed job storage (^3.322.9).", - "illuminate/redis": "Required to use the Redis queue driver (^12.0).", - "pda/pheanstalk": "Required to use the Beanstalk queue driver (^5.0.6|^7.0.0)." - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php b/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php index e45c6cd2a..07ffe7ac2 100644 --- a/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php +++ b/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php @@ -113,6 +113,8 @@ abstract class Connection * @param string $method * @param array $parameters * @return mixed + * + * @throws \Throwable */ public function command($method, array $parameters = []) { @@ -183,6 +185,16 @@ abstract class Connection $this->events?->listen(CommandFailed::class, $callback); } + /** + * Determine if the connection is a cluster connection. + * + * @return bool + */ + public function isCluster() + { + return false; + } + /** * Get the connection name. * @@ -237,6 +249,25 @@ abstract class Connection $this->events = null; } + /** + * Determine if the given key contains a Redis Cluster hash tag. + * + * @param string $key + * @return bool + */ + public static function hasHashTag(string $key): bool + { + $open = strpos($key, '{'); + + if ($open === false) { + return false; + } + + $close = strpos($key, '}', $open + 1); + + return $close !== false && $close - $open > 1; + } + /** * Pass other method calls down to the underlying client. * diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Connections/PacksPhpRedisValues.php b/vendor/laravel/framework/src/Illuminate/Redis/Connections/PacksPhpRedisValues.php index 0c890dd62..1726e8460 100644 --- a/vendor/laravel/framework/src/Illuminate/Redis/Connections/PacksPhpRedisValues.php +++ b/vendor/laravel/framework/src/Illuminate/Redis/Connections/PacksPhpRedisValues.php @@ -88,8 +88,10 @@ trait PacksPhpRedisValues /** * Execute the given callback without serialization or compression when applicable. * - * @param callable $callback - * @return mixed + * @template TReturn + * + * @param (callable(): TReturn) $callback + * @return TReturn */ public function withoutSerializationOrCompression(callable $callback) { diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php b/vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php index b49229ac8..b21a65c1e 100644 --- a/vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php +++ b/vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php @@ -78,4 +78,15 @@ class PhpRedisClusterConnection extends PhpRedisConnection return $this->defaultNode; } + + /** + * Determine if the connection is a cluster connection. + * + * @return bool + */ + #[\Override] + public function isCluster() + { + return true; + } } diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php b/vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php index f0a9ad333..a42b40d7a 100644 --- a/vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php +++ b/vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php @@ -39,4 +39,15 @@ class PredisClusterConnection extends PredisConnection $node->executeCommand(tap(new $command)->setArguments(func_get_args())); } } + + /** + * Determine if the connection is a cluster connection. + * + * @return bool + */ + #[\Override] + public function isCluster() + { + return true; + } } diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php b/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php index 7391e68ce..071e8212f 100644 --- a/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php +++ b/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php @@ -179,7 +179,7 @@ class PhpRedisConnector implements Connector } if (version_compare(phpversion('redis'), '5.3.0', '>=') && ! is_null($context = Arr::get($config, 'context'))) { - $parameters[] = $context; + $parameters[] = $this->normalizeContext($context); } $client->{$persistent ? 'pconnect' : 'connect'}(...$parameters); @@ -202,12 +202,14 @@ class PhpRedisConnector implements Connector isset($options['persistent']) && $options['persistent'], ]; - if (version_compare(phpversion('redis'), '4.3.0', '>=')) { - $parameters[] = $options['password'] ?? null; - } + if (version_compare(phpversion('redis'), '5.3.2', '>=')) { + $parameters[] = $this->formatClusterPassword($options); - if (version_compare(phpversion('redis'), '5.3.2', '>=') && ! is_null($context = Arr::get($options, 'context'))) { - $parameters[] = $context; + if (! is_null($context = Arr::get($options, 'context'))) { + $parameters[] = $this->normalizeClusterContext($context); + } + } elseif (version_compare(phpversion('redis'), '4.3.0', '>=')) { + $parameters[] = $options['password'] ?? null; } return tap(new RedisCluster(...$parameters), function ($client) use ($options) { @@ -238,6 +240,22 @@ class PhpRedisConnector implements Connector if (! empty($options['tcp_keepalive'])) { $client->setOption(Redis::OPT_TCP_KEEPALIVE, $options['tcp_keepalive']); } + + if (array_key_exists('max_retries', $options)) { + $client->setOption(Redis::OPT_MAX_RETRIES, $options['max_retries']); + } + + if (array_key_exists('backoff_algorithm', $options)) { + $client->setOption(Redis::OPT_BACKOFF_ALGORITHM, $this->parseBackoffAlgorithm($options['backoff_algorithm'])); + } + + if (array_key_exists('backoff_base', $options)) { + $client->setOption(Redis::OPT_BACKOFF_BASE, $options['backoff_base']); + } + + if (array_key_exists('backoff_cap', $options)) { + $client->setOption(Redis::OPT_BACKOFF_CAP, $options['backoff_cap']); + } }); } @@ -249,11 +267,86 @@ class PhpRedisConnector implements Connector */ protected function formatHost(array $options) { - if (isset($options['scheme'])) { - return Str::start($options['host'], "{$options['scheme']}://"); + $host = $options['host'] ?? null; + + if (! is_string($host) || $host === '') { + throw new InvalidArgumentException('Redis host must be a non-empty string.'); } - return $options['host']; + $hostScheme = parse_url($host, PHP_URL_SCHEME); + + if (isset($options['scheme'])) { + if (is_string($hostScheme)) { + if (strcasecmp($hostScheme, $options['scheme']) !== 0) { + throw new InvalidArgumentException('The scheme configured in the Redis host option must match the scheme option.'); + } + + return $host; + } + + return Str::start($host, "{$options['scheme']}://"); + } + + return $host; + } + + /** + * Normalize the SSL context for a single Redis connection. + * + * Redis::connect() expects the context as ['stream' => ['verify_peer' => false, ...]]. + * + * @param array $context + * @return array + */ + protected function normalizeContext(array $context) + { + if (isset($context['stream'])) { + return $context; + } + + if (isset($context['ssl']) && is_array($context['ssl'])) { + return ['stream' => $context['ssl']]; + } + + return ['stream' => $context]; + } + + /** + * Normalize the SSL context for a RedisCluster connection. + * + * RedisCluster::__construct() expects a flat context ['verify_peer' => false, ...]. + * + * @param array $context + * @return array + */ + protected function normalizeClusterContext(array $context) + { + if (isset($context['ssl']) && is_array($context['ssl'])) { + return $context['ssl']; + } + + if (isset($context['stream']) && is_array($context['stream'])) { + return $context['stream']; + } + + return $context; + } + + /** + * Format the password for a Redis cluster connection. + * + * @param array $options + * @return string|array|null + */ + protected function formatClusterPassword(array $options) + { + $password = $options['password'] ?? null; + + if (isset($options['username']) && $options['username'] !== '' && is_string($password)) { + return [$options['username'], $password]; + } + + return $password; } /** diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php b/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php index 50fc39462..96aabd852 100644 --- a/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php +++ b/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php @@ -7,7 +7,10 @@ use Illuminate\Redis\Connections\PredisClusterConnection; use Illuminate\Redis\Connections\PredisConnection; use Illuminate\Support\Arr; use Illuminate\Support\Str; +use InvalidArgumentException; use Predis\Client; +use Predis\Retry\Retry; +use Predis\Retry\Strategy\RetryStrategyInterface; class PredisConnector implements Connector { @@ -20,6 +23,8 @@ class PredisConnector implements Connector */ public function connect(array $config, array $options) { + $config = $this->formatRetry($config); + $formattedOptions = array_merge( ['timeout' => 10.0], $options, Arr::pull($config, 'options', []) ); @@ -28,10 +33,7 @@ class PredisConnector implements Connector $formattedOptions['prefix'] = $config['prefix']; } - if (isset($config['host']) && str_starts_with($config['host'], 'tls://')) { - $config['scheme'] = 'tls'; - $config['host'] = Str::after($config['host'], 'tls://'); - } + $config = $this->formatHost($config); return new PredisConnection(new Client($config, $formattedOptions)); } @@ -52,8 +54,78 @@ class PredisConnector implements Connector $clusterSpecificOptions['prefix'] = $config['prefix']; } - return new PredisClusterConnection(new Client(array_values($config), array_merge( - $options, $clusterOptions, $clusterSpecificOptions - ))); + $servers = array_map(function ($server) { + return is_array($server) ? $this->formatHost($server) : $server; + }, array_values($config)); + + $options = array_merge($options, $clusterOptions, $clusterSpecificOptions); + + if (isset($options['parameters']) && is_array($options['parameters'])) { + $options['parameters'] = $this->formatRetry($options['parameters']); + } + + return new PredisClusterConnection(new Client($servers, $options)); + } + + /** + * Format the host using the scheme if available. + * + * @param array $config + * @return array + */ + protected function formatHost(array $config) + { + $host = $config['host'] ?? null; + + if (! is_string($host) || $host === '') { + return $config; + } + + $hostScheme = parse_url($host, PHP_URL_SCHEME); + + if (! is_string($hostScheme)) { + return $config; + } + + if (isset($config['scheme']) && strcasecmp($hostScheme, $config['scheme']) !== 0) { + throw new InvalidArgumentException('The scheme configured in the Redis host option must match the scheme option.'); + } + + $config['scheme'] ??= $hostScheme; + $config['host'] = Str::after($host, "{$hostScheme}://"); + + return $config; + } + + /** + * Format a scalar retry configuration into a Predis retry instance if applicable. + * + * @param array $config + * @return array + */ + protected function formatRetry(array $config) + { + if (! array_key_exists('retry', $config) || ! is_array($config['retry'])) { + return $config; + } + + if (! class_exists(Retry::class) || ! interface_exists(RetryStrategyInterface::class)) { + throw new InvalidArgumentException('Predis retry configuration requires predis/predis 3.4.0 or newer.'); + } + + $strategy = array_key_first($config['retry']); + + $retries = $config['max_retries'] ?? 0; + + if (! is_subclass_of($strategy, RetryStrategyInterface::class)) { + throw new InvalidArgumentException("Strategy [{$strategy}] is not a valid Predis backoff strategy."); + } + + $config['retry'] = new Retry( + new $strategy(...$config['retry'][$strategy]), + $retries, + ); + + return $config; } } diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php b/vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php index 02c178708..8f156ee40 100644 --- a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php +++ b/vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php @@ -3,6 +3,7 @@ namespace Illuminate\Redis\Limiters; use Illuminate\Contracts\Redis\LimiterTimeoutException; +use Illuminate\Redis\Connections\Connection; use Illuminate\Support\Sleep; use Illuminate\Support\Str; use Throwable; @@ -37,6 +38,13 @@ class ConcurrencyLimiter */ protected $releaseAfter; + /** + * The cluster-safe key prefix for lock slots. + * + * @var string|null + */ + protected $prefix; + /** * Create a new concurrency limiter instance. * @@ -101,13 +109,15 @@ class ConcurrencyLimiter */ protected function acquire($id) { - $slots = array_map(function ($i) { - return $this->name.$i; + $prefix = $this->getPrefix(); + + $slots = array_map(function ($i) use ($prefix) { + return $prefix.$i; }, range(1, $this->maxLocks)); return $this->redis->eval(...array_merge( [$this->lockScript(), count($slots)], - array_merge($slots, [$this->name, $this->releaseAfter, $id]) + array_merge($slots, [$prefix, $this->releaseAfter, $id]) )); } @@ -164,4 +174,22 @@ else end LUA; } + + /** + * Get the cluster-safe key prefix for lock slots. + * + * The result is cached for the lifetime of this limiter instance. + * + * @return string + */ + protected function getPrefix() + { + if (is_null($this->prefix)) { + $this->prefix = $this->redis->isCluster() && ! Connection::hasHashTag($this->name) + ? '{'.$this->name.'}' + : $this->name; + } + + return $this->prefix; + } } diff --git a/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php b/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php index ce3817f35..5dfdf2afc 100644 --- a/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php +++ b/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php @@ -9,7 +9,10 @@ use Illuminate\Redis\Connectors\PhpRedisConnector; use Illuminate\Redis\Connectors\PredisConnector; use Illuminate\Support\Arr; use Illuminate\Support\ConfigurationUrlParser; +use Illuminate\Support\RebindsCallbacksToSelf; use InvalidArgumentException; +use ReflectionException; +use RuntimeException; use function Illuminate\Support\enum_value; @@ -18,6 +21,8 @@ use function Illuminate\Support\enum_value; */ class RedisManager implements Factory { + use RebindsCallbacksToSelf; + /** * The application instance. * @@ -84,11 +89,7 @@ class RedisManager implements Factory { $name = enum_value($name) ?: 'default'; - if (isset($this->connections[$name])) { - return $this->connections[$name]; - } - - return $this->connections[$name] = $this->configure( + return $this->connections[$name] ?? $this->connections[$name] = $this->configure( $this->resolve($name), $name ); } @@ -241,12 +242,12 @@ class RedisManager implements Factory /** * Disconnect the given connection and remove from local cache. * - * @param string|null $name + * @param \UnitEnum|string|null $name * @return void */ public function purge($name = null) { - $name = $name ?: 'default'; + $name = enum_value($name) ?: 'default'; unset($this->connections[$name]); } @@ -263,7 +264,13 @@ class RedisManager implements Factory */ public function extend($driver, Closure $callback) { - $this->customCreators[$driver] = $callback->bindTo($this, $this); + try { + $callback = $this->bindCallbackToSelf($callback) ?? throw new RuntimeException('Unable to bind custom driver callback'); + } catch (ReflectionException $e) { + throw new RuntimeException('Unable to bind custom driver callback', previous: $e); + } + + $this->customCreators[$driver] = $callback; return $this; } diff --git a/vendor/laravel/framework/src/Illuminate/Redis/composer.json b/vendor/laravel/framework/src/Illuminate/Redis/composer.json index 05535a246..f74714072 100755 --- a/vendor/laravel/framework/src/Illuminate/Redis/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Redis/composer.json @@ -2,40 +2,40 @@ "name": "illuminate/redis", "description": "The Illuminate Redis package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "illuminate/collections": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/support": "^12.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "illuminate/collections": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/support": "^13.0" + }, + "suggest": { + "ext-redis": "Required to use the phpredis connector (^4.0 || ^5.0 || ^6.0).", + "predis/predis": "Required to use the predis connector (^2.3 || ^3.0)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Redis\\": "" } }, - "suggest": { - "ext-redis": "Required to use the phpredis connector (^4.0|^5.0|^6.0).", - "predis/predis": "Required to use the predis connector (^2.3|^3.0)." - }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Reflection/Reflector.php b/vendor/laravel/framework/src/Illuminate/Reflection/Reflector.php index 9ef142e15..773b221e2 100644 --- a/vendor/laravel/framework/src/Illuminate/Reflection/Reflector.php +++ b/vendor/laravel/framework/src/Illuminate/Reflection/Reflector.php @@ -82,6 +82,8 @@ class Reflector * @param class-string $attribute * @param bool $includeParents * @return ($includeParents is true ? Collection, Collection> : Collection) + * + * @throws \ReflectionException */ public static function getClassAttributes($objectOrClass, $attribute, $includeParents = false) { diff --git a/vendor/laravel/framework/src/Illuminate/Reflection/composer.json b/vendor/laravel/framework/src/Illuminate/Reflection/composer.json index 495d6ebab..4bb4de73d 100644 --- a/vendor/laravel/framework/src/Illuminate/Reflection/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Reflection/composer.json @@ -2,22 +2,23 @@ "name": "illuminate/reflection", "description": "The Illuminate Reflection package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "illuminate/contracts": "^12.0", - "illuminate/collections": "^12.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "illuminate/collections": "^13.0", + "illuminate/contracts": "^13.0" + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Support\\": "" @@ -26,13 +27,12 @@ "helpers.php" ] }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Reflection/helpers.php b/vendor/laravel/framework/src/Illuminate/Reflection/helpers.php index cdece52c3..e10ba7ba5 100644 --- a/vendor/laravel/framework/src/Illuminate/Reflection/helpers.php +++ b/vendor/laravel/framework/src/Illuminate/Reflection/helpers.php @@ -13,6 +13,8 @@ if (! function_exists('lazy')) { * @param int $options * @param array $eager * @return TValue + * + * @throws \ReflectionException */ function lazy($class, $callback = 0, $options = 0, $eager = []) { @@ -61,6 +63,8 @@ if (! function_exists('proxy')) { * @param int $options * @param array $eager * @return TValue + * + * @throws \ReflectionException */ function proxy($class, $callback = 0, $options = 0, $eager = []) { diff --git a/vendor/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php b/vendor/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php index 6f7c73c61..5a943a743 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php @@ -187,7 +187,7 @@ abstract class AbstractRouteCollection implements Countable, IteratorAggregate, ]; } - return compact('compiled', 'attributes'); + return ['compiled' => $compiled, 'attributes' => $attributes]; } /** diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Attributes/Controllers/Authorize.php b/vendor/laravel/framework/src/Illuminate/Routing/Attributes/Controllers/Authorize.php new file mode 100644 index 000000000..b25d8e7ab --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Routing/Attributes/Controllers/Authorize.php @@ -0,0 +1,26 @@ +|string|null $models + */ + public function __construct( + UnitEnum|string $ability, + array|string|null $models = null, + ?array $only = null, + ?array $except = null, + ) { + $middleware = AuthorizeMiddleware::using($ability, ...Arr::wrap($models)); + + parent::__construct($middleware, $only, $except); + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Attributes/Controllers/Middleware.php b/vendor/laravel/framework/src/Illuminate/Routing/Attributes/Controllers/Middleware.php new file mode 100644 index 000000000..02968c3c1 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Routing/Attributes/Controllers/Middleware.php @@ -0,0 +1,21 @@ +|null $only + * @param array|null $except + */ + public function __construct( + public Closure|string $middleware, + public ?array $only = null, + public ?array $except = null, + ) { + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Controllers/Middleware.php b/vendor/laravel/framework/src/Illuminate/Routing/Controllers/Middleware.php index ac56fea60..67c456d5a 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/Controllers/Middleware.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/Controllers/Middleware.php @@ -5,12 +5,15 @@ namespace Illuminate\Routing\Controllers; use Closure; use Illuminate\Support\Arr; +/** + * @phpstan-type NextClosure \Closure(\Illuminate\Http\Request): \Symfony\Component\HttpFoundation\Response + */ class Middleware { /** * Create a new controller middleware definition. * - * @param \Closure|string|array $middleware + * @param (\Closure(\Illuminate\Http\Request, NextClosure): \Symfony\Component\HttpFoundation\Response)|string|array $middleware * @param array|null $only * @param array|null $except */ diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php b/vendor/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php index eadda8010..c83a94a53 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php @@ -26,7 +26,7 @@ class UrlGenerationException extends Exception $route->uri() ); - if (count($parameters) > 0) { + if ($parameters !== []) { $message .= sprintf(' [Missing %s: %s]', $parameterLabel, implode(', ', $parameters)); } diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php b/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php index 68fe621e4..b32708c4c 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php @@ -31,6 +31,8 @@ class SubstituteBindings * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed + * + * @throws \Illuminate\Database\Eloquent\ModelNotFoundException */ public function handle($request, Closure $next) { diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php b/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php index de0bb7408..48759be62 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php @@ -157,7 +157,9 @@ class ThrottleRequests if ($this->limiter->tooManyAttempts($limit->key, $limit->maxAttempts)) { throw $this->buildException($request, $limit->key, $limit->maxAttempts, $limit->responseCallback); } + } + foreach ($limits as $limit) { if (! $limit->afterCallback) { $this->limiter->hit($limit->key, $limit->decaySeconds); } diff --git a/vendor/laravel/framework/src/Illuminate/Routing/PendingResourceRegistration.php b/vendor/laravel/framework/src/Illuminate/Routing/PendingResourceRegistration.php index a190538e9..4a1ad1921 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/PendingResourceRegistration.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/PendingResourceRegistration.php @@ -241,6 +241,22 @@ class PendingResourceRegistration return $this; } + /** + * Add metadata to the registered resource routes. + * + * @param array $metadata + * @return $this + */ + public function metadata(array $metadata) + { + $this->options['metadata'] = RouteGroup::mergeMetadata( + $this->options['metadata'] ?? [], + $metadata + ); + + return $this; + } + /** * Indicate that the resource routes should have "shallow" nesting. * diff --git a/vendor/laravel/framework/src/Illuminate/Routing/PendingSingletonResourceRegistration.php b/vendor/laravel/framework/src/Illuminate/Routing/PendingSingletonResourceRegistration.php index 2c20e3c31..c9ff6c753 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/PendingSingletonResourceRegistration.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/PendingSingletonResourceRegistration.php @@ -265,6 +265,22 @@ class PendingSingletonResourceRegistration return $this; } + /** + * Add metadata to the registered singleton resource routes. + * + * @param array $metadata + * @return $this + */ + public function metadata(array $metadata) + { + $this->options['metadata'] = RouteGroup::mergeMetadata( + $this->options['metadata'] ?? [], + $metadata + ); + + return $this; + } + /** * Register the singleton resource route. * diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ResolvesRouteDependencies.php b/vendor/laravel/framework/src/Illuminate/Routing/ResolvesRouteDependencies.php index bd3139fc7..ee0da613c 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/ResolvesRouteDependencies.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/ResolvesRouteDependencies.php @@ -76,7 +76,7 @@ trait ResolvesRouteDependencies protected function transformDependency(ReflectionParameter $parameter, $parameters, $skippableValue) { if ($attribute = Util::getContextualAttributeFromDependency($parameter)) { - return $this->container->resolveFromAttribute($attribute); + return $this->container->resolveFromAttribute($attribute, $parameter); } $className = Reflector::getParameterClassName($parameter); diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php b/vendor/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php index 82ccc1620..968c2e0fc 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php @@ -217,7 +217,7 @@ class ResourceRegistrar $me->resource($name, $controller, $options); }; - return $this->router->group(compact('prefix'), $callback); + return $this->router->group(['prefix' => $prefix], $callback); } /** @@ -239,7 +239,7 @@ class ResourceRegistrar $me->singleton($name, $controller, $options); }; - return $this->router->group(compact('prefix'), $callback); + return $this->router->group(['prefix' => $prefix], $callback); } /** @@ -656,6 +656,13 @@ class ResourceRegistrar $action['missing'] = $options['missing']; } + if (isset($options['metadata'])) { + $action['metadata'] = RouteGroup::mergeMetadata( + $action['metadata'] ?? [], + $options['metadata'] + ); + } + return $action; } diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php b/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php index 7c91102b3..71b1eb7e4 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php @@ -131,50 +131,54 @@ class ResponseFactory implements FactoryContract public function eventStream(Closure $callback, array $headers = [], StreamedEvent|string|null $endStreamWith = '') { return $this->stream(function () use ($callback, $endStreamWith) { - foreach ($callback() as $message) { - if (connection_aborted()) { - break; + try { + foreach ($callback() as $message) { + if (connection_aborted()) { + break; + } + + $event = 'update'; + + if ($message instanceof StreamedEvent) { + $event = $message->event; + $message = $message->data; + } + + if (! is_string($message) && ! is_numeric($message)) { + $message = Js::encode($message); + } + + echo "event: $event\n"; + echo 'data: '.$message; + echo "\n\n"; + + if (ob_get_level() > 0) { + ob_flush(); + } + + flush(); } - $event = 'update'; + if (filled($endStreamWith)) { + $endEvent = 'update'; - if ($message instanceof StreamedEvent) { - $event = $message->event; - $message = $message->data; + if ($endStreamWith instanceof StreamedEvent) { + $endEvent = $endStreamWith->event; + $endStreamWith = $endStreamWith->data; + } + + echo "event: $endEvent\n"; + echo 'data: '.$endStreamWith; + echo "\n\n"; + + if (ob_get_level() > 0) { + ob_flush(); + } + + flush(); } - - if (! is_string($message) && ! is_numeric($message)) { - $message = Js::encode($message); - } - - echo "event: $event\n"; - echo 'data: '.$message; - echo "\n\n"; - - if (ob_get_level() > 0) { - ob_flush(); - } - - flush(); - } - - if (filled($endStreamWith)) { - $endEvent = 'update'; - - if ($endStreamWith instanceof StreamedEvent) { - $endEvent = $endStreamWith->event; - $endStreamWith = $endStreamWith->data; - } - - echo "event: $endEvent\n"; - echo 'data: '.$endStreamWith; - echo "\n\n"; - - if (ob_get_level() > 0) { - ob_flush(); - } - - flush(); + } catch (Throwable $e) { + report($e); } }, 200, array_merge($headers, [ 'Content-Type' => 'text/event-stream', diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Route.php b/vendor/laravel/framework/src/Illuminate/Routing/Route.php index 2d92ed2da..c3e711aba 100755 --- a/vendor/laravel/framework/src/Illuminate/Routing/Route.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/Route.php @@ -7,6 +7,7 @@ use Closure; use Illuminate\Container\Container; use Illuminate\Http\Exceptions\HttpResponseException; use Illuminate\Http\Request; +use Illuminate\Routing\Attributes\Controllers\Middleware as MiddlewareAttribute; use Illuminate\Routing\Contracts\CallableDispatcher; use Illuminate\Routing\Contracts\ControllerDispatcher as ControllerDispatcherContract; use Illuminate\Routing\Controllers\HasMiddleware; @@ -23,6 +24,9 @@ use Illuminate\Support\Traits\Macroable; use InvalidArgumentException; use Laravel\SerializableClosure\SerializableClosure; use LogicException; +use ReflectionAttribute; +use ReflectionClass; +use ReflectionException; use Symfony\Component\Routing\Route as SymfonyRoute; use function Illuminate\Support\enum_value; @@ -237,7 +241,13 @@ class Route $callable = $this->action['uses']; if ($this->isSerializedClosure()) { - $callable = unserialize($this->action['uses'])->getClosure(); + $callable = unserialize($this->action['uses'], ['allowed_classes' => [ + SerializableClosure::class, + \Laravel\SerializableClosure\UnsignedSerializableClosure::class, + \Laravel\SerializableClosure\Serializers\Native::class, + \Laravel\SerializableClosure\Serializers\Signed::class, + \Laravel\SerializableClosure\Support\SelfReference::class, + ]])->getClosure(); } return $this->container[CallableDispatcher::class]->dispatch($this, $callable); @@ -511,11 +521,7 @@ class Route */ public function parameterNames() { - if (isset($this->parameterNames)) { - return $this->parameterNames; - } - - return $this->parameterNames = $this->compileParameterNames(); + return $this->parameterNames ?? $this->parameterNames = $this->compileParameterNames(); } /** @@ -760,7 +766,7 @@ class Route * Get or set the domain for the route. * * @param \BackedEnum|string|null $domain - * @return $this|string|null + * @return ($domain is null ? string|null : $this) * * @throws \InvalidArgumentException */ @@ -916,13 +922,7 @@ class Route return false; } - foreach ($patterns as $pattern) { - if (Str::is($pattern, $routeName)) { - return true; - } - } - - return false; + return array_any($patterns, fn ($pattern) => Str::is($pattern, $routeName)); } /** @@ -1029,7 +1029,13 @@ class Route Str::startsWith($missing, [ 'O:47:"Laravel\\SerializableClosure\\SerializableClosure', 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure', - ]) ? unserialize($missing) : $missing; + ]) ? unserialize($missing, ['allowed_classes' => [ + SerializableClosure::class, + \Laravel\SerializableClosure\UnsignedSerializableClosure::class, + \Laravel\SerializableClosure\Serializers\Native::class, + \Laravel\SerializableClosure\Serializers\Signed::class, + \Laravel\SerializableClosure\Support\SelfReference::class, + ]]) : $missing; } /** @@ -1122,19 +1128,19 @@ class Route $this->getControllerMethod(), ]; - if (is_a($controllerClass, HasMiddleware::class, true)) { - return $this->staticallyProvidedControllerMiddleware( - $controllerClass, $controllerMethod - ); - } + $attributeMiddleware = $this->attributeProvidedControllerMiddleware($controllerClass, $controllerMethod); - if (method_exists($controllerClass, 'getMiddleware')) { - return $this->controllerDispatcher()->getMiddleware( - $this->getController(), $controllerMethod - ); - } - - return []; + return match (true) { + is_a($controllerClass, HasMiddleware::class, true) => array_merge( + $this->staticallyProvidedControllerMiddleware($controllerClass, $controllerMethod), + $attributeMiddleware, + ), + method_exists($controllerClass, 'getMiddleware') => array_merge( + $this->controllerDispatcher()->getMiddleware($this->getController(), $controllerMethod), + $attributeMiddleware, + ), + default => $attributeMiddleware, + }; } /** @@ -1164,6 +1170,50 @@ class Route ->all(); } + /** + * Get the attribute provided controller middleware for the given class and method. + * + * @return array + */ + protected function attributeProvidedControllerMiddleware(string $class, string $method) + { + try { + $reflectionClass = new ReflectionClass($class); + $reflectionMethod = $reflectionClass->getMethod($method); + } catch (ReflectionException) { + return []; + } + + $attributes = new Collection; + + $current = $reflectionClass; + + while ($current) { + $classAttributes = array_reverse($current->getAttributes( + MiddlewareAttribute::class, ReflectionAttribute::IS_INSTANCEOF + )); + + foreach ($classAttributes as $attribute) { + $attributes->prepend($attribute); + } + + $current = $current->getParentClass(); + } + + return $attributes->merge( + $reflectionMethod->getAttributes(MiddlewareAttribute::class, ReflectionAttribute::IS_INSTANCEOF) + )->map(function (ReflectionAttribute $attribute) use ($method) { + $instance = $attribute->newInstance(); + + return static::methodExcludedByOptions( + $method, ['only' => $instance->only, 'except' => $instance->except], + ) ? null : $instance->middleware; + }) + ->filter() + ->values() + ->all(); + } + /** * Specify middleware that should be removed from the given route. * @@ -1278,6 +1328,49 @@ class Route return $this->waitSeconds; } + /** + * Add metadata to the route. + * + * @param array $metadata + * @return $this + */ + public function metadata(array $metadata) + { + $this->action['metadata'] = RouteGroup::mergeMetadata( + $this->action['metadata'] ?? [], + $metadata + ); + + return $this; + } + + /** + * Get metadata for the route. + * + * @param string|null $key + * @param mixed $default + * @return ($key is null ? array : mixed) + */ + public function getMetadata($key = null, $default = null) + { + $metadata = $this->action['metadata'] ?? []; + + return is_null($key) ? $metadata : Arr::get($metadata, $key, $default); + } + + /** + * Set the metadata for the route, replacing any existing metadata. + * + * @param array $metadata + * @return $this + */ + public function setMetadata(array $metadata) + { + $this->action['metadata'] = $metadata; + + return $this; + } + /** * Get the dispatcher for the route's controller. * @@ -1301,14 +1394,10 @@ class Route */ public static function getValidators() { - if (isset(static::$validators)) { - return static::$validators; - } - // To match the route, we will use a chain of responsibility pattern with the // validator implementations. We will spin through each one making sure it // passes and then we will know if the route as a whole matches request. - return static::$validators = [ + return static::$validators ?? static::$validators = [ new UriValidator, new MethodValidator, new SchemeValidator, new HostValidator, ]; diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php index defdf55a1..89ea9de08 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php @@ -14,6 +14,13 @@ class RouteCollection extends AbstractRouteCollection */ protected $routes = []; + /** + * Domain routes keyed by method, used to maintain domain-first ordering. + * + * @var array + */ + protected $domainRoutes = []; + /** * A flattened array of all of the routes. * @@ -21,6 +28,13 @@ class RouteCollection extends AbstractRouteCollection */ protected $allRoutes = []; + /** + * Domain routes in the flattened array, used to maintain domain-first ordering. + * + * @var \Illuminate\Routing\Route[] + */ + protected $allDomainRoutes = []; + /** * A look-up table of routes by their names. * @@ -60,12 +74,21 @@ class RouteCollection extends AbstractRouteCollection { $methods = $route->methods(); $domainAndUri = $route->getDomain().$route->uri(); + $allRoutesKey = implode('|', $methods).$domainAndUri; - foreach ($methods as $method) { - $this->routes[$method][$domainAndUri] = $route; + if ($route->getDomain()) { + foreach ($methods as $method) { + $this->domainRoutes[$method][$domainAndUri] = $route; + } + + $this->allDomainRoutes[$allRoutesKey] = $route; + } else { + foreach ($methods as $method) { + $this->routes[$method][$domainAndUri] = $route; + } + + $this->allRoutes[$allRoutesKey] = $route; } - - $this->allRoutes[implode('|', $methods).$domainAndUri] = $route; } /** @@ -138,7 +161,7 @@ class RouteCollection extends AbstractRouteCollection { $this->nameList = []; - foreach ($this->allRoutes as $route) { + foreach ($this->allDomainRoutes + $this->allRoutes as $route) { if (($name = $route->getName()) && ! $this->inNameLookup($name)) { $this->nameList[$name] = $route; } @@ -156,7 +179,7 @@ class RouteCollection extends AbstractRouteCollection { $this->actionList = []; - foreach ($this->allRoutes as $route) { + foreach ($this->allDomainRoutes + $this->allRoutes as $route) { if (($controller = $route->getAction()['controller'] ?? null) && ! $this->inActionLookup($controller)) { $this->addToActionList($route->getAction(), $route); } @@ -192,7 +215,9 @@ class RouteCollection extends AbstractRouteCollection */ public function get($method = null) { - return is_null($method) ? $this->getRoutes() : ($this->routes[$method] ?? []); + return is_null($method) + ? $this->getRoutes() + : ($this->domainRoutes[$method] ?? []) + ($this->routes[$method] ?? []); } /** @@ -235,7 +260,7 @@ class RouteCollection extends AbstractRouteCollection */ public function getRoutes() { - return array_values($this->allRoutes); + return array_values($this->allDomainRoutes + $this->allRoutes); } /** @@ -245,7 +270,13 @@ class RouteCollection extends AbstractRouteCollection */ public function getRoutesByMethod() { - return $this->routes; + $result = $this->domainRoutes; + + foreach ($this->routes as $method => $routes) { + $result[$method] = ($result[$method] ?? []) + $routes; + } + + return $result; } /** diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteGroup.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteGroup.php index cca24b292..b61eb0bf6 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteGroup.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/RouteGroup.php @@ -24,17 +24,77 @@ class RouteGroup unset($old['controller']); } + $metadata = static::formatMetadata($new, $old); + + unset($new['metadata']); + $new = array_merge(static::formatAs($new, $old), [ 'namespace' => static::formatNamespace($new, $old), 'prefix' => static::formatPrefix($new, $old, $prependExistingPrefix), 'where' => static::formatWhere($new, $old), ]); + if ($metadata !== []) { + $new['metadata'] = $metadata; + } + return array_merge_recursive(Arr::except( - $old, ['namespace', 'prefix', 'where', 'as'] + $old, ['metadata', 'namespace', 'prefix', 'where', 'as'] ), $new); } + /** + * Format the metadata for the new group attributes. + * + * @param array $new + * @param array $old + * @return array + */ + protected static function formatMetadata($new, $old) + { + return static::mergeMetadata( + $old['metadata'] ?? [], + $new['metadata'] ?? [] + ); + } + + /** + * Merge the given route metadata. + * + * Associative array values are merged recursively, while all other values, including lists, replace the existing value entirely. + * + * @param array $old + * @param array $new + * @return array + */ + public static function mergeMetadata(array $old, array $new) + { + foreach ($new as $key => $value) { + if (isset($old[$key]) && static::mergableMetadata($old[$key], $value)) { + $value = static::mergeMetadata($old[$key], $value); + } + + $old[$key] = $value; + } + + return $old; + } + + /** + * Determine if the given metadata values should be merged. + * + * @param mixed $old + * @param mixed $new + * @return bool + */ + protected static function mergableMetadata($old, $new) + { + return is_array($old) && + is_array($new) && + Arr::isAssoc($old) && + Arr::isAssoc($new); + } + /** * Format the namespace for the new group attributes. * diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php index 5c53e5c78..d3ed0782f 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php @@ -89,7 +89,7 @@ class RouteParameterBinder $parameters = array_intersect_key($matches, array_flip($parameterNames)); return array_filter($parameters, function ($value) { - return is_string($value) && strlen($value) > 0; + return is_string($value) && $value !== ''; }); } diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php index 6da02f501..be73cd9a9 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php @@ -22,6 +22,7 @@ use InvalidArgumentException; * @method \Illuminate\Routing\RouteRegistrar can(\UnitEnum|string $ability, array|string $models = []) * @method \Illuminate\Routing\RouteRegistrar controller(string $controller) * @method \Illuminate\Routing\RouteRegistrar domain(\BackedEnum|string $value) + * @method \Illuminate\Routing\RouteRegistrar metadata(array $metadata) * @method \Illuminate\Routing\RouteRegistrar middleware(array|string|null $middleware) * @method \Illuminate\Routing\RouteRegistrar missing(\Closure $missing) * @method \Illuminate\Routing\RouteRegistrar name(\BackedEnum|string $value) @@ -72,6 +73,7 @@ class RouteRegistrar 'can', 'controller', 'domain', + 'metadata', 'middleware', 'missing', 'name', @@ -128,6 +130,16 @@ class RouteRegistrar } } + if ($key === 'metadata') { + if (! is_array($value)) { + throw new InvalidArgumentException('Attribute [metadata] expects an array.'); + } + + $value = RouteGroup::mergeMetadata( + $this->attributes['metadata'] ?? [], $value + ); + } + $attributeKey = Arr::get($this->aliases, $key, $key); if ($key === 'withoutMiddleware') { @@ -227,6 +239,17 @@ class RouteRegistrar return $this->router->match($methods, $uri, $this->compileAction($action)); } + /** + * Add metadata to routes registered by the registrar. + * + * @param array $metadata + * @return $this + */ + public function metadata(array $metadata) + { + return $this->attribute('metadata', $metadata); + } + /** * Register a new route with the router. * @@ -272,7 +295,18 @@ class RouteRegistrar ]; } - return array_merge($this->attributes, $action); + $metadata = RouteGroup::mergeMetadata( + $this->attributes['metadata'] ?? [], + $action['metadata'] ?? [] + ); + + $action = array_merge($this->attributes, $action); + + if ($metadata !== []) { + $action['metadata'] = $metadata; + } + + return $action; } /** diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php index 872709758..1a2235f0d 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php @@ -19,7 +19,13 @@ class RouteSignatureParameters public static function fromAction(array $action, $conditions = []) { $callback = RouteAction::containsSerializedClosure($action) - ? unserialize($action['uses'])->getClosure() + ? unserialize($action['uses'], ['allowed_classes' => [ + \Laravel\SerializableClosure\SerializableClosure::class, + \Laravel\SerializableClosure\UnsignedSerializableClosure::class, + \Laravel\SerializableClosure\Serializers\Native::class, + \Laravel\SerializableClosure\Serializers\Signed::class, + \Laravel\SerializableClosure\Support\SelfReference::class, + ]])->getClosure() : $action['uses']; $parameters = is_string($callback) @@ -38,6 +44,8 @@ class RouteSignatureParameters * * @param string $uses * @return array + * + * @throws \ReflectionException */ protected static function fromClassMethodString($uses) { diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php index 245c4c011..3859a3fb3 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php @@ -233,7 +233,7 @@ class RouteUrlGenerator $offset = 0; $emptyParameters = array_filter($namedParameters, static fn ($val) => $val === ''); - if (count($requiredRouteParametersWithoutDefaultsOrNamedParameters) !== 0 && + if ($requiredRouteParametersWithoutDefaultsOrNamedParameters !== [] && count($parameters) !== count($emptyParameters)) { // Find the index of the first required parameter... $offset = array_search($requiredRouteParametersWithoutDefaultsOrNamedParameters[0], array_keys($namedParameters)); @@ -250,7 +250,7 @@ class RouteUrlGenerator if ($offset < 0) { $offset = 0; } - } elseif (count($requiredRouteParametersWithoutDefaultsOrNamedParameters) === 0 && count($parameters) !== 0) { + } elseif ($requiredRouteParametersWithoutDefaultsOrNamedParameters === [] && count($parameters) !== 0) { // Handle the case where all passed parameters are for parameters that have default values... $remainingCount = count($parameters); @@ -401,7 +401,7 @@ class RouteUrlGenerator // First we will get all of the string parameters that are remaining after we // have replaced the route wildcards. We'll then build a query string from // these string parameters then use it as a starting point for the rest. - if (count($parameters) === 0) { + if ($parameters === []) { return ''; } diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Router.php b/vendor/laravel/framework/src/Illuminate/Routing/Router.php index 24ef495b3..e9e913bd3 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/Router.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/Router.php @@ -1307,13 +1307,7 @@ class Router implements BindingRegistrar, RegistrarContract { $names = is_array($name) ? $name : func_get_args(); - foreach ($names as $value) { - if (! $this->routes->hasNamedRoute($value)) { - return false; - } - } - - return true; + return array_all($names, fn ($value) => $this->routes->hasNamedRoute($value)); } /** @@ -1368,13 +1362,7 @@ class Router implements BindingRegistrar, RegistrarContract */ public function uses(...$patterns) { - foreach ($patterns as $pattern) { - if (Str::is($pattern, $this->currentRouteAction())) { - return true; - } - } - - return false; + return array_any($patterns, fn ($pattern) => Str::is($pattern, $this->currentRouteAction())); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php index bd4fb5d91..309fd7955 100755 --- a/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php @@ -129,6 +129,8 @@ class RoutingServiceProvider extends ServiceProvider * Register a binding for the PSR-7 request implementation. * * @return void + * + * @throws \Illuminate\Contracts\Container\BindingResolutionException */ protected function registerPsrRequest() { @@ -154,6 +156,8 @@ class RoutingServiceProvider extends ServiceProvider * Register a binding for the PSR-7 response implementation. * * @return void + * + * @throws \Illuminate\Contracts\Container\BindingResolutionException */ protected function registerPsrResponse() { diff --git a/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php b/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php index 5e23a5d1a..bcdf8110c 100755 --- a/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php +++ b/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php @@ -182,9 +182,17 @@ class UrlGenerator implements UrlGeneratorContract */ public function previousPath($fallback = false) { - $previousPath = str_replace($this->to('/'), '', rtrim(preg_replace('/\?.*/', '', $this->previous($fallback)), '/')); + $previousPath = parse_url($this->previous($fallback), PHP_URL_PATH); - return $previousPath === '' ? '/' : $previousPath; + if (! is_string($previousPath) || $previousPath === '') { + return '/'; + } + + $basePath = parse_url($this->to('/'), PHP_URL_PATH) ?: ''; + + $previousPath = $basePath !== '/' ? preg_replace('#^'.preg_quote($basePath, '#').'#', '', $previousPath) : $previousPath; + + return rtrim($previousPath, '/') ?: '/'; } /** @@ -481,16 +489,10 @@ class UrlGenerator implements UrlGeneratorContract return false; } - foreach ($keys as $key) { - if (hash_equals( - hash_hmac('sha256', $original, $key), - $signature - )) { - return true; - } - } - - return false; + return array_any($keys, fn ($key) => hash_equals( + hash_hmac('sha256', $original, $key), + $signature + )); } /** @@ -503,6 +505,10 @@ class UrlGenerator implements UrlGeneratorContract { $expires = $request->query('expires'); + if ($expires !== null && ! is_string($expires)) { + return false; + } + return ! ($expires && Carbon::now()->getTimestamp() > $expires); } diff --git a/vendor/laravel/framework/src/Illuminate/Routing/composer.json b/vendor/laravel/framework/src/Illuminate/Routing/composer.json index 608fa4440..91cec8700 100644 --- a/vendor/laravel/framework/src/Illuminate/Routing/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Routing/composer.json @@ -2,55 +2,55 @@ "name": "illuminate/routing", "description": "The Illuminate Routing package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, "require": { - "php": "^8.2", + "php": "^8.3", "ext-filter": "*", "ext-hash": "*", - "illuminate/collections": "^12.0", - "illuminate/container": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/http": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/pipeline": "^12.0", - "illuminate/session": "^12.0", - "illuminate/support": "^12.0", - "symfony/http-foundation": "^7.2.0", - "symfony/http-kernel": "^7.2.0", - "symfony/polyfill-php84": "^1.33", - "symfony/polyfill-php85": "^1.33", - "symfony/routing": "^7.2.0" + "illuminate/collections": "^13.0", + "illuminate/container": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/http": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/pipeline": "^13.0", + "illuminate/session": "^13.0", + "illuminate/support": "^13.0", + "symfony/http-foundation": "^7.4.0 || ^8.0.0", + "symfony/http-kernel": "^7.4.0 || ^8.0.0", + "symfony/polyfill-php84": "^1.36", + "symfony/polyfill-php85": "^1.36", + "symfony/routing": "^7.4.0 || ^8.0.0" }, + "suggest": { + "illuminate/console": "Required to use the make commands (^13.0).", + "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.4 || ^8.0)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Routing\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "suggest": { - "illuminate/console": "Required to use the make commands (^12.0).", - "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).", - "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.2)." - }, "config": { - "sort-packages": true, "allow-plugins": { "php-http/discovery": false - } + }, + "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php b/vendor/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php index 3be5e7e81..69969092b 100644 --- a/vendor/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php @@ -59,15 +59,9 @@ class SessionTableCommand extends MigrationGeneratorCommand */ protected function migrationExists($table) { - foreach ([ + return array_any([ join_paths($this->laravel->databasePath('migrations'), '*_*_*_*_create_'.$table.'_table.php'), join_paths($this->laravel->databasePath('migrations'), '0001_01_01_000000_create_users_table.php'), - ] as $path) { - if (count($this->files->glob($path)) !== 0) { - return true; - } - } - - return false; + ], fn ($path) => count($this->files->glob($path)) !== 0); } } diff --git a/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php b/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php index 748e8a55f..fc5cc0b40 100644 --- a/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php +++ b/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php @@ -266,11 +266,11 @@ class StartSession */ protected function getCookieExpirationDate() { - $expiresOnClose = $this->manager->getSessionConfig()['expire_on_close']; - - return $expiresOnClose ? 0 : Date::instance( - Carbon::now()->addSeconds($this->getSessionLifetimeInSeconds()) - ); + return $this->manager->getSessionConfig()['expire_on_close'] + ? 0 + : Date::instance( + Carbon::now()->addSeconds($this->getSessionLifetimeInSeconds()) + ); } /** @@ -300,7 +300,7 @@ class StartSession * Resolve the given cache driver. * * @param string $driver - * @return \Illuminate\Cache\Store + * @return \Illuminate\Contracts\Cache\Repository */ protected function cache($driver) { diff --git a/vendor/laravel/framework/src/Illuminate/Session/SessionManager.php b/vendor/laravel/framework/src/Illuminate/Session/SessionManager.php index 0b176ef6d..a2ec07892 100755 --- a/vendor/laravel/framework/src/Illuminate/Session/SessionManager.php +++ b/vendor/laravel/framework/src/Illuminate/Session/SessionManager.php @@ -4,6 +4,8 @@ namespace Illuminate\Session; use Illuminate\Support\Manager; +use function Illuminate\Support\enum_value; + /** * @mixin \Illuminate\Session\Store */ @@ -279,11 +281,11 @@ class SessionManager extends Manager /** * Set the default session driver name. * - * @param string $name + * @param \UnitEnum|string $name * @return void */ public function setDefaultDriver($name) { - $this->config->set('session.driver', $name); + $this->config->set('session.driver', enum_value($name)); } } diff --git a/vendor/laravel/framework/src/Illuminate/Session/composer.json b/vendor/laravel/framework/src/Illuminate/Session/composer.json index c19e6cbe5..7081e0b2a 100755 --- a/vendor/laravel/framework/src/Illuminate/Session/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Session/composer.json @@ -2,43 +2,43 @@ "name": "illuminate/session", "description": "The Illuminate Session package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, "require": { - "php": "^8.2", + "php": "^8.3", "ext-ctype": "*", "ext-session": "*", - "illuminate/collections": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/filesystem": "^12.0", - "illuminate/support": "^12.0", - "symfony/finder": "^7.2.0", - "symfony/http-foundation": "^7.2.0" + "illuminate/collections": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/filesystem": "^13.0", + "illuminate/support": "^13.0", + "symfony/finder": "^7.4.0 || ^8.0.0", + "symfony/http-foundation": "^7.4.0 || ^8.0.0" }, + "suggest": { + "illuminate/console": "Required to use the session:table command (^13.0)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Session\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "suggest": { - "illuminate/console": "Required to use the session:table command (^12.0)." - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Support/Benchmark.php b/vendor/laravel/framework/src/Illuminate/Support/Benchmark.php index 0204c9746..da9bcd855 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Benchmark.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Benchmark.php @@ -12,9 +12,9 @@ class Benchmark /** * Measure a callable or array of callables over the given number of iterations. * - * @param \Closure|array $benchmarkables + * @param \Closure|array $benchmarkables * @param int $iterations - * @return array|float + * @return array|float */ public static function measure(Closure|array $benchmarkables, int $iterations = 1): array|float { @@ -57,7 +57,7 @@ class Benchmark /** * Measure a callable or array of callables over the given number of iterations, then dump and die. * - * @param \Closure|array $benchmarkables + * @param \Closure|array $benchmarkables * @param int $iterations * @return never */ diff --git a/vendor/laravel/framework/src/Illuminate/Support/BinaryCodec.php b/vendor/laravel/framework/src/Illuminate/Support/BinaryCodec.php index d98be2da2..81c94299f 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/BinaryCodec.php +++ b/vendor/laravel/framework/src/Illuminate/Support/BinaryCodec.php @@ -25,6 +25,8 @@ class BinaryCodec /** * Encode a value to binary. + * + * @throws \InvalidArgumentException */ public static function encode(UuidInterface|Ulid|string|null $value, string $format): ?string { @@ -53,6 +55,8 @@ class BinaryCodec /** * Decode a binary value to string. + * + * @throws \InvalidArgumentException */ public static function decode(?string $value, string $format): ?string { @@ -74,7 +78,7 @@ class BinaryCodec /** * Get all available format names. * - * @return list + * @return array */ public static function formats(): array { diff --git a/vendor/laravel/framework/src/Illuminate/Support/Carbon.php b/vendor/laravel/framework/src/Illuminate/Support/Carbon.php index 80d5fb3dc..81f9fce89 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Carbon.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Carbon.php @@ -45,12 +45,15 @@ class Carbon extends BaseCarbon int $hours = 0, int $minutes = 0, int $seconds = 0, - int $microseconds = 0 + int $microseconds = 0, + ?bool $overflow = null ): static { - return $this->add(" - $years years $months months $weeks weeks $days days - $hours hours $minutes minutes $seconds seconds $microseconds microseconds - "); + return $this->add('years', $years, $overflow) + ->add('months', $months, $overflow) + ->add(" + $weeks weeks $days days + $hours hours $minutes minutes $seconds seconds $microseconds microseconds + "); } /** @@ -64,11 +67,14 @@ class Carbon extends BaseCarbon int $hours = 0, int $minutes = 0, int $seconds = 0, - int $microseconds = 0 + int $microseconds = 0, + ?bool $overflow = null ): static { - return $this->sub(" - $years years $months months $weeks weeks $days days - $hours hours $minutes minutes $seconds seconds $microseconds microseconds - "); + return $this->sub('years', $years, $overflow) + ->sub('months', $months, $overflow) + ->sub(" + $weeks weeks $days days + $hours hours $minutes minutes $seconds seconds $microseconds microseconds + "); } } diff --git a/vendor/laravel/framework/src/Illuminate/Support/Composer.php b/vendor/laravel/framework/src/Illuminate/Support/Composer.php index 4f9ddaa6a..7e4082c28 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Composer.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Composer.php @@ -113,9 +113,10 @@ class Composer /** * Modify the "composer.json" file contents using the given callback. * - * @param callable(array):array $callback + * @param callable(array):array $callback * @return void * + * @throws \JsonException * @throws \RuntimeException */ public function modify(callable $callback) @@ -136,7 +137,7 @@ class Composer /** * Regenerate the Composer autoloader files. * - * @param string|array $extra + * @param string|array $extra * @param string|null $composerBinary * @return int */ @@ -164,7 +165,7 @@ class Composer * Get the Composer binary / command for the environment. * * @param string|null $composerBinary - * @return array + * @return array */ public function findComposer($composerBinary = null) { @@ -208,8 +209,8 @@ class Composer /** * Get a new Symfony process instance. * - * @param array $command - * @param array $env + * @param array $command + * @param array $env * @return \Symfony\Component\Process\Process */ protected function getProcess(array $command, array $env = []) diff --git a/vendor/laravel/framework/src/Illuminate/Support/ConfigurationUrlParser.php b/vendor/laravel/framework/src/Illuminate/Support/ConfigurationUrlParser.php index b841b65e4..a5b083f72 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/ConfigurationUrlParser.php +++ b/vendor/laravel/framework/src/Illuminate/Support/ConfigurationUrlParser.php @@ -9,7 +9,7 @@ class ConfigurationUrlParser /** * The drivers aliases map. * - * @var array + * @var array */ protected static $driverAliases = [ 'mssql' => 'sqlsrv', @@ -24,8 +24,8 @@ class ConfigurationUrlParser /** * Parse the database configuration, hydrating options using a database configuration URL if possible. * - * @param array|string $config - * @return array + * @param array|string $config + * @return array */ public function parseConfiguration($config) { @@ -55,8 +55,8 @@ class ConfigurationUrlParser /** * Get the primary database connection options. * - * @param array $url - * @return array + * @param array $url + * @return array */ protected function getPrimaryOptions($url) { @@ -73,7 +73,7 @@ class ConfigurationUrlParser /** * Get the database driver from the URL. * - * @param array $url + * @param array $url * @return string|null */ protected function getDriver($url) @@ -90,7 +90,7 @@ class ConfigurationUrlParser /** * Get the database name from the URL. * - * @param array $url + * @param array $url * @return string|null */ protected function getDatabase($url) @@ -103,8 +103,8 @@ class ConfigurationUrlParser /** * Get all of the additional database options from the query string. * - * @param array $url - * @return array + * @param array $url + * @return array */ protected function getQueryOptions($url) { @@ -125,7 +125,7 @@ class ConfigurationUrlParser * Parse the string URL to an array of components. * * @param string $url - * @return array + * @return array * * @throws \InvalidArgumentException */ @@ -170,7 +170,7 @@ class ConfigurationUrlParser /** * Get all of the current drivers' aliases. * - * @return array + * @return array */ public static function getDriverAliases() { diff --git a/vendor/laravel/framework/src/Illuminate/Support/Contracts/NodePackageManager.php b/vendor/laravel/framework/src/Illuminate/Support/Contracts/NodePackageManager.php new file mode 100644 index 000000000..9e54f9830 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Support/Contracts/NodePackageManager.php @@ -0,0 +1,29 @@ + */ protected $providers; /** * Create a new default provider collection. + * + * @param array|null $providers */ public function __construct(?array $providers = null) { @@ -46,7 +48,7 @@ class DefaultProviders /** * Merge the given providers into the provider collection. * - * @param array $providers + * @param array $providers * @return static */ public function merge(array $providers) @@ -59,7 +61,7 @@ class DefaultProviders /** * Replace the given providers with other providers. * - * @param array $replacements + * @param array $replacements * @return static */ public function replace(array $replacements) @@ -78,7 +80,7 @@ class DefaultProviders /** * Disable the given providers. * - * @param array $providers + * @param array $providers * @return static */ public function except(array $providers) @@ -92,7 +94,7 @@ class DefaultProviders /** * Convert the provider collection to an array. * - * @return array + * @return array */ public function toArray() { diff --git a/vendor/laravel/framework/src/Illuminate/Support/EncodedHtmlString.php b/vendor/laravel/framework/src/Illuminate/Support/EncodedHtmlString.php index 36b29cc33..57237fd85 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/EncodedHtmlString.php +++ b/vendor/laravel/framework/src/Illuminate/Support/EncodedHtmlString.php @@ -39,7 +39,7 @@ class EncodedHtmlString extends HtmlString * @internal * * @param string|null $value - * @param int $withQuote + * @param bool $withQuote * @param bool $doubleEncode * @return string */ diff --git a/vendor/laravel/framework/src/Illuminate/Support/Env.php b/vendor/laravel/framework/src/Illuminate/Support/Env.php index 8889e7ad5..e55989be8 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Env.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Env.php @@ -120,7 +120,7 @@ class Env /** * Write an array of key-value pairs to the environment file. * - * @param array $variables + * @param array $variables * @param string $pathToFile * @param bool $overwrite * @return void @@ -178,9 +178,9 @@ class Env * * @param string $key * @param mixed $value - * @param array $envLines + * @param array $envLines * @param bool $overwrite - * @return array + * @return array */ protected static function addVariableToEnvContents(string $key, mixed $value, array $envLines, bool $overwrite): array { @@ -293,7 +293,7 @@ class Env * Escape a string using addslashes, excluding the specified characters from being escaped. * * @param string $value - * @param array $except + * @param array $except * @return string */ protected static function addSlashesExceptFor(string $value, array $except = []) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/App.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/App.php index 5bad0f492..2aaef3a9d 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/App.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/App.php @@ -124,7 +124,7 @@ namespace Illuminate\Support\Facades; * @method static object|mixed makeWith(string|callable $abstract, array $parameters = []) * @method static object|mixed get(string $id) * @method static object build(\Closure|string $concrete) - * @method static mixed resolveFromAttribute(\ReflectionAttribute $attribute) + * @method static mixed resolveFromAttribute(\ReflectionAttribute $attribute, \ReflectionParameter $parameter) * @method static void beforeResolving(\Closure|string $abstract, \Closure|null $callback = null) * @method static void resolving(\Closure|string $abstract, \Closure|null $callback = null) * @method static void afterResolving(\Closure|string $abstract, \Closure|null $callback = null) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Auth.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Auth.php index 879e28b77..77389210e 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Auth.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Auth.php @@ -6,12 +6,12 @@ use Laravel\Ui\UiServiceProvider; use RuntimeException; /** - * @method static \Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard guard(string|null $name = null) + * @method static \Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard guard(\UnitEnum|string|null $name = null) * @method static \Illuminate\Auth\SessionGuard createSessionDriver(string $name, array $config) * @method static \Illuminate\Auth\TokenGuard createTokenDriver(string $name, array $config) * @method static string getDefaultDriver() - * @method static void shouldUse(string $name) - * @method static void setDefaultDriver(string $name) + * @method static void shouldUse(\UnitEnum|string|null $name) + * @method static void setDefaultDriver(\UnitEnum|string $name) * @method static \Illuminate\Auth\AuthManager viaRequest(string $driver, callable $callback) * @method static \Closure userResolver() * @method static \Illuminate\Auth\AuthManager resolveUsersUsing(\Closure $userResolver) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php index af5a2f561..f40c8b36b 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php @@ -14,17 +14,19 @@ use Illuminate\Contracts\Broadcasting\Factory as BroadcastingFactoryContract; * @method static \Illuminate\Broadcasting\AnonymousEvent presence(string $channel) * @method static \Illuminate\Broadcasting\PendingBroadcast event(mixed $event = null) * @method static void queue(mixed $event) - * @method static mixed connection(string|null $driver = null) - * @method static mixed driver(string|null $name = null) + * @method static mixed connection(\UnitEnum|string|null $name = null) + * @method static mixed driver(\UnitEnum|string|null $name = null) * @method static \Pusher\Pusher pusher(array $config) * @method static \Ably\AblyRest ably(array $config) * @method static string getDefaultDriver() - * @method static void setDefaultDriver(string $name) - * @method static void purge(string|null $name = null) + * @method static void setDefaultDriver(\UnitEnum|string $name) + * @method static void purge(\UnitEnum|string|null $name = null) * @method static \Illuminate\Broadcasting\BroadcastManager extend(string $driver, \Closure $callback) * @method static \Illuminate\Contracts\Foundation\Application getApplication() * @method static \Illuminate\Broadcasting\BroadcastManager setApplication(\Illuminate\Contracts\Foundation\Application $app) * @method static \Illuminate\Broadcasting\BroadcastManager forgetDrivers() + * @method static string|null resolveConnectionFromQueueRoute(object $queueable) + * @method static string|null resolveQueueFromQueueRoute(object $queueable) * @method static mixed auth(\Illuminate\Http\Request $request) * @method static mixed validAuthenticationResponse(\Illuminate\Http\Request $request, mixed $result) * @method static void broadcast(array $channels, string $event, array $payload = []) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Bus.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Bus.php index ab09857f2..0656af30f 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Bus.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Bus.php @@ -11,6 +11,7 @@ use Illuminate\Support\Testing\Fakes\BusFake; * @method static mixed dispatch(mixed $command) * @method static mixed dispatchSync(mixed $command, mixed $handler = null) * @method static mixed dispatchNow(mixed $command, mixed $handler = null) + * @method static void bulk(iterable $jobs) * @method static \Illuminate\Bus\Batch|null findBatch(string $batchId) * @method static \Illuminate\Bus\PendingBatch batch(\Illuminate\Support\Collection|mixed $jobs) * @method static \Illuminate\Foundation\Bus\PendingChain chain(\Illuminate\Support\Collection|array|null $jobs = null) @@ -22,6 +23,8 @@ use Illuminate\Support\Testing\Fakes\BusFake; * @method static \Illuminate\Bus\Dispatcher map(array $map) * @method static \Illuminate\Bus\Dispatcher withDispatchingAfterResponses() * @method static \Illuminate\Bus\Dispatcher withoutDispatchingAfterResponses() + * @method static string|null resolveConnectionFromQueueRoute(object $queueable) + * @method static string|null resolveQueueFromQueueRoute(object $queueable) * @method static \Illuminate\Support\Testing\Fakes\BusFake except(array|string $jobsToDispatch) * @method static void assertDispatched(string|\Closure $command, callable|int|null $callback = null) * @method static void assertDispatchedOnce(string|\Closure $command) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Cache.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Cache.php index 5d98d4c98..64a42b954 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Cache.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Cache.php @@ -5,19 +5,20 @@ namespace Illuminate\Support\Facades; use Mockery; /** - * @method static \Illuminate\Contracts\Cache\Repository store(string|null $name = null) - * @method static \Illuminate\Contracts\Cache\Repository driver(string|null $driver = null) - * @method static \Illuminate\Contracts\Cache\Repository memo(string|null $driver = null) + * @method static \Illuminate\Contracts\Cache\Repository store(\UnitEnum|string|null $name = null) + * @method static \Illuminate\Contracts\Cache\Repository driver(\UnitEnum|string|null $driver = null) + * @method static \Illuminate\Contracts\Cache\Repository memo(\UnitEnum|string|null $driver = null) * @method static \Illuminate\Contracts\Cache\Repository resolve(string $name) * @method static \Illuminate\Cache\Repository build(array $config) * @method static \Illuminate\Cache\Repository repository(\Illuminate\Contracts\Cache\Store $store, array $config = []) * @method static void refreshEventDispatcher() * @method static string getDefaultDriver() - * @method static void setDefaultDriver(string $name) - * @method static \Illuminate\Cache\CacheManager forgetDriver(array|string|null $name = null) - * @method static void purge(string|null $name = null) + * @method static void setDefaultDriver(\UnitEnum|string $name) + * @method static \Illuminate\Cache\CacheManager forgetDriver(array|\UnitEnum|string|null $name = null) + * @method static void purge(\UnitEnum|string|null $name = null) * @method static \Illuminate\Cache\CacheManager extend(string $driver, \Closure $callback) * @method static \Illuminate\Cache\CacheManager setApplication(\Illuminate\Contracts\Foundation\Application $app) + * @method static void handleUnserializableClassUsing(callable|null $callback) * @method static bool has(\UnitEnum|array|string $key) * @method static bool missing(\UnitEnum|string $key) * @method static mixed get(\UnitEnum|array|string $key, mixed $default = null) @@ -38,18 +39,22 @@ use Mockery; * @method static int|bool decrement(\UnitEnum|string $key, mixed $value = 1) * @method static bool forever(\UnitEnum|string $key, mixed $value) * @method static mixed remember(\UnitEnum|string $key, \Closure|\DateTimeInterface|\DateInterval|int|null $ttl, \Closure $callback) + * @method static array rememberWithWarmth(\UnitEnum|string $key, \Closure|\DateTimeInterface|\DateInterval|int|null $ttl, \Closure $callback) * @method static mixed sear(\UnitEnum|string $key, \Closure $callback) * @method static mixed rememberForever(\UnitEnum|string $key, \Closure $callback) * @method static mixed flexible(\UnitEnum|string $key, array $ttl, callable $callback, array|null $lock = null, bool $alwaysDefer = false) + * @method static bool touch(\UnitEnum|string $key, \DateTimeInterface|\DateInterval|int $ttl) * @method static mixed withoutOverlapping(\UnitEnum|string $key, callable $callback, int $lockFor = 0, int $waitFor = 10, string|null $owner = null) * @method static \Illuminate\Cache\Limiters\ConcurrencyLimiterBuilder funnel(\UnitEnum|string $name) * @method static bool forget(\UnitEnum|array|string $key) * @method static bool delete(\UnitEnum|array|string $key) * @method static bool deleteMultiple(iterable $keys) * @method static bool clear() + * @method static bool flushLocks() * @method static \Illuminate\Cache\TaggedCache tags(mixed $names) * @method static string|null getName() * @method static bool supportsTags() + * @method static bool supportsFlushingLocks() * @method static int|null getDefaultCacheTime() * @method static \Illuminate\Cache\Repository setDefaultCacheTime(int|null $seconds) * @method static \Illuminate\Contracts\Cache\Store getStore() diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Concurrency.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Concurrency.php index a79bf93c3..d7a6c3f66 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Concurrency.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Concurrency.php @@ -5,7 +5,7 @@ namespace Illuminate\Support\Facades; use Illuminate\Concurrency\ConcurrencyManager; /** - * @method static mixed driver(string|null $name = null) + * @method static mixed driver(\UnitEnum|string|null $name = null) * @method static \Illuminate\Concurrency\ProcessDriver createProcessDriver() * @method static \Illuminate\Concurrency\ForkDriver createForkDriver() * @method static \Illuminate\Concurrency\SyncDriver createSyncDriver() @@ -17,7 +17,7 @@ use Illuminate\Concurrency\ConcurrencyManager; * @method static void purge(string|null $name = null) * @method static \Illuminate\Concurrency\ConcurrencyManager extend(string $name, \Closure $callback) * @method static \Illuminate\Concurrency\ConcurrencyManager setApplication(\Illuminate\Contracts\Foundation\Application $app) - * @method static array run(\Closure|array $tasks) + * @method static array run(\Closure|array $tasks, \Carbon\CarbonInterval|int|null $timeout = null) * @method static \Illuminate\Support\Defer\DeferredCallback defer(\Closure|array $tasks) * * @see \Illuminate\Concurrency\ConcurrencyManager diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/DB.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/DB.php index 13e87d392..edc5a4dd0 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/DB.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/DB.php @@ -40,15 +40,15 @@ use Illuminate\Database\Console\WipeCommand; * @method static mixed selectOne(string $query, array $bindings = [], bool $useReadPdo = true) * @method static mixed scalar(string $query, array $bindings = [], bool $useReadPdo = true) * @method static array selectFromWriteConnection(string $query, array $bindings = []) - * @method static array select(string $query, array $bindings = [], bool $useReadPdo = true) - * @method static array selectResultSets(string $query, array $bindings = [], bool $useReadPdo = true) - * @method static \Generator cursor(string $query, array $bindings = [], bool $useReadPdo = true) + * @method static array select(string $query, array $bindings = [], bool $useReadPdo = true, array $fetchUsing = []) + * @method static array selectResultSets(string $query, array $bindings = [], bool $useReadPdo = true, array $fetchUsing = []) + * @method static \Generator cursor(string $query, array $bindings = [], bool $useReadPdo = true, array $fetchUsing = []) * @method static bool insert(string $query, array $bindings = []) * @method static int update(string $query, array $bindings = []) * @method static int delete(string $query, array $bindings = []) * @method static bool statement(string $query, array $bindings = []) * @method static int affectingStatement(string $query, array $bindings = []) - * @method static bool unprepared(string $query) + * @method static bool unprepared(mixed $query) * @method static int|null threadCount() * @method static array[] pretend(\Closure $callback) * @method static mixed withoutPretending(\Closure $callback) @@ -63,7 +63,7 @@ use Illuminate\Database\Console\WipeCommand; * @method static \Illuminate\Database\Connection beforeStartingTransaction(\Closure $callback) * @method static \Illuminate\Database\Connection beforeExecuting(\Closure $callback) * @method static void listen(\Closure $callback) - * @method static \Illuminate\Contracts\Database\Query\Expression raw(mixed $value) + * @method static \Illuminate\Contracts\Database\Query\Expression raw(mixed|int|float $value) * @method static string escape(string|float|int|bool|null $value, bool $binary = false) * @method static bool hasModifiedRecords() * @method static void recordsHaveBeenModified(bool $value = true) @@ -74,9 +74,15 @@ use Illuminate\Database\Console\WipeCommand; * @method static \PDO|\Closure|null getRawPdo() * @method static \PDO getReadPdo() * @method static \PDO|\Closure|null getRawReadPdo() + * @method static \PDO getDirectPdo() + * @method static \PDO|\Closure|null getRawDirectPdo() * @method static \Illuminate\Database\Connection setPdo(\PDO|\Closure|null $pdo) * @method static \Illuminate\Database\Connection setReadPdo(\PDO|\Closure|null $pdo) * @method static \Illuminate\Database\Connection setReadPdoConfig(array $config) + * @method static \Illuminate\Database\Connection setDirectPdo(\PDO|\Closure|null $pdo) + * @method static \Illuminate\Database\Connection setDirectPdoConfig(array $config) + * @method static array getDirectPdoConfig() + * @method static bool hasDirectConnection() * @method static string|null getName() * @method static string|null getNameWithReadWriteType() * @method static mixed getConfig(string|null $option = null) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Event.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Event.php index 83e05a200..3e6a0f224 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Event.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Event.php @@ -27,6 +27,8 @@ use Illuminate\Support\Testing\Fakes\EventFake; * @method static void mixin(object $mixin, bool $replace = true) * @method static bool hasMacro(string $name) * @method static void flushMacros() + * @method static string|null resolveConnectionFromQueueRoute(object $queueable) + * @method static string|null resolveQueueFromQueueRoute(object $queueable) * @method static \Illuminate\Support\Testing\Fakes\EventFake except(array|string $eventsToDispatch) * @method static void assertListening(string $expectedEvent, string|array $expectedListener) * @method static void assertDispatched(string|\Closure $event, callable|int|null $callback = null) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Exceptions.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Exceptions.php index 263b95bd0..4a75db6a9 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Exceptions.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Exceptions.php @@ -14,12 +14,17 @@ use Illuminate\Support\Testing\Fakes\ExceptionHandlerFake; * @method static \Illuminate\Foundation\Exceptions\Handler dontReport(array|string $exceptions) * @method static \Illuminate\Foundation\Exceptions\Handler dontReportWhen(callable $dontReportWhen) * @method static \Illuminate\Foundation\Exceptions\Handler ignore(array|string $exceptions) + * @method static \Illuminate\Foundation\Exceptions\Handler dontRetry(array|string $exceptions) + * @method static \Illuminate\Foundation\Exceptions\Handler dontRetryWhen(callable $dontRetryWhen) + * @method static bool shouldStopRetries(\Throwable $e) * @method static \Illuminate\Foundation\Exceptions\Handler dontFlash(array|string $attributes) * @method static \Illuminate\Foundation\Exceptions\Handler level(string $type, string $level) * @method static void report(\Throwable $e) + * @method static bool isReporting(\Throwable $e) * @method static bool shouldReport(\Throwable $e) * @method static \Illuminate\Foundation\Exceptions\Handler throttleUsing(callable $throttleUsing) * @method static \Illuminate\Foundation\Exceptions\Handler stopIgnoring(array|string $exceptions) + * @method static array buildContextForException(\Throwable $e) * @method static \Illuminate\Foundation\Exceptions\Handler buildContextUsing(\Closure $contextCallback) * @method static \Symfony\Component\HttpFoundation\Response render(\Illuminate\Http\Request $request, \Throwable $e) * @method static \Illuminate\Foundation\Exceptions\Handler respondUsing(callable $callback) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Hash.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Hash.php index 280585d6e..5a7057ac3 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Hash.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Hash.php @@ -12,7 +12,7 @@ namespace Illuminate\Support\Facades; * @method static bool needsRehash(string $hashedValue, array $options = []) * @method static bool isHashed(string $value) * @method static string getDefaultDriver() - * @method static mixed driver(string|null $driver = null) + * @method static mixed driver(\UnitEnum|string|null $driver = null) * @method static \Illuminate\Hashing\HashManager extend(string $driver, \Closure $callback) * @method static array getDrivers() * @method static \Illuminate\Contracts\Container\Container getContainer() diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Http.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Http.php index 50bd17818..d48f3070b 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Http.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Http.php @@ -75,11 +75,12 @@ use Illuminate\Http\Client\Factory; * @method static \Illuminate\Http\Client\PendingRequest dd() * @method static \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface get(string $url, array|string|null $query = null) * @method static \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface head(string $url, array|string|null $query = null) + * @method static \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface query(string $url, array|\JsonSerializable|\Illuminate\Contracts\Support\Arrayable $data = []) * @method static \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface post(string $url, array|\JsonSerializable|\Illuminate\Contracts\Support\Arrayable $data = []) * @method static \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface patch(string $url, array|\JsonSerializable|\Illuminate\Contracts\Support\Arrayable $data = []) * @method static \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface put(string $url, array|\JsonSerializable|\Illuminate\Contracts\Support\Arrayable $data = []) * @method static \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface delete(string $url, array|\JsonSerializable|\Illuminate\Contracts\Support\Arrayable $data = []) - * @method static array pool(callable $callback, int|null $concurrency = null) + * @method static array pool(callable $callback, int|null $concurrency = 0) * @method static \Illuminate\Http\Client\Batch batch(callable $callback) * @method static \Illuminate\Http\Client\Response|\Illuminate\Http\Client\Promises\LazyPromise send(string $method, string $url, array $options = []) * @method static \GuzzleHttp\Client buildClient() diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Lang.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Lang.php index 7dc08da51..7b8f3ec5d 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Lang.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Lang.php @@ -6,6 +6,8 @@ namespace Illuminate\Support\Facades; * @method static bool hasForLocale(string $key, string|null $locale = null) * @method static bool has(string $key, string|null $locale = null, bool $fallback = true) * @method static string|array get(string $key, array $replace = [], string|null $locale = null, bool $fallback = true) + * @method static string string(string $key, array $replace = [], string|null $locale = null, bool $fallback = true) + * @method static array array(string $key, array $replace = [], string|null $locale = null, bool $fallback = true) * @method static string choice(string $key, \Countable|int|float|array $number, array $replace = [], string|null $locale = null) * @method static void addLines(array $lines, string $locale, string $namespace = '*') * @method static void load(string $namespace, string $group, string $locale) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Log.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Log.php index 2617ef87f..4229bff55 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Log.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Log.php @@ -5,14 +5,14 @@ namespace Illuminate\Support\Facades; /** * @method static \Psr\Log\LoggerInterface build(array $config) * @method static \Psr\Log\LoggerInterface stack(array $channels, string|null $channel = null) - * @method static \Psr\Log\LoggerInterface channel(string|null $channel = null) - * @method static \Psr\Log\LoggerInterface driver(string|null $driver = null) + * @method static \Psr\Log\LoggerInterface channel(\UnitEnum|string|null $channel = null) + * @method static \Psr\Log\LoggerInterface driver(\UnitEnum|string|null $driver = null) * @method static \Illuminate\Log\LogManager shareContext(array $context) * @method static array sharedContext() * @method static \Illuminate\Log\LogManager withoutContext(string[]|null $keys = null) * @method static \Illuminate\Log\LogManager flushSharedContext() * @method static string|null getDefaultDriver() - * @method static void setDefaultDriver(string $name) + * @method static void setDefaultDriver(\UnitEnum|string $name) * @method static \Illuminate\Log\LogManager extend(string $driver, \Closure $callback) * @method static void forgetChannel(string|null $driver = null) * @method static array getChannels() diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Mail.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Mail.php index 4d9a83822..972e83cf6 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Mail.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Mail.php @@ -5,13 +5,13 @@ namespace Illuminate\Support\Facades; use Illuminate\Support\Testing\Fakes\MailFake; /** - * @method static \Illuminate\Contracts\Mail\Mailer mailer(string|null $name = null) - * @method static \Illuminate\Mail\Mailer driver(string|null $driver = null) + * @method static \Illuminate\Contracts\Mail\Mailer mailer(\UnitEnum|string|null $name = null) + * @method static \Illuminate\Mail\Mailer driver(\UnitEnum|string|null $driver = null) * @method static \Illuminate\Mail\Mailer build(array $config) * @method static \Symfony\Component\Mailer\Transport\TransportInterface createSymfonyTransport(array $config) * @method static string getDefaultDriver() - * @method static void setDefaultDriver(string $name) - * @method static void purge(string|null $name = null) + * @method static void setDefaultDriver(\UnitEnum|string $name) + * @method static void purge(\UnitEnum|string|null $name = null) * @method static \Illuminate\Mail\MailManager extend(string $driver, \Closure $callback) * @method static \Illuminate\Contracts\Foundation\Application getApplication() * @method static \Illuminate\Mail\MailManager setApplication(\Illuminate\Contracts\Foundation\Application $app) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/MaintenanceMode.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/MaintenanceMode.php index b63d48191..90200acdd 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/MaintenanceMode.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/MaintenanceMode.php @@ -6,7 +6,7 @@ use Illuminate\Foundation\MaintenanceModeManager; /** * @method static string getDefaultDriver() - * @method static mixed driver(string|null $driver = null) + * @method static mixed driver(\UnitEnum|string|null $driver = null) * @method static \Illuminate\Foundation\MaintenanceModeManager extend(string $driver, \Closure $callback) * @method static array getDrivers() * @method static \Illuminate\Contracts\Container\Container getContainer() diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Notification.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Notification.php index 8944435c9..4eb0ab108 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Notification.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Notification.php @@ -9,12 +9,12 @@ use Illuminate\Support\Testing\Fakes\NotificationFake; /** * @method static void send(\Illuminate\Support\Collection|mixed $notifiables, mixed $notification) * @method static void sendNow(\Illuminate\Support\Collection|mixed $notifiables, mixed $notification, array|null $channels = null) - * @method static mixed channel(string|null $name = null) + * @method static mixed channel(\UnitEnum|string|null $name = null) + * @method static mixed driver(\UnitEnum|string|null $driver = null) * @method static string getDefaultDriver() * @method static string deliversVia() * @method static void deliverVia(string $channel) * @method static \Illuminate\Notifications\ChannelManager locale(string $locale) - * @method static mixed driver(string|null $driver = null) * @method static \Illuminate\Notifications\ChannelManager extend(string $driver, \Closure $callback) * @method static array getDrivers() * @method static \Illuminate\Contracts\Container\Container getContainer() @@ -24,6 +24,8 @@ use Illuminate\Support\Testing\Fakes\NotificationFake; * @method static void mixin(object $mixin, bool $replace = true) * @method static bool hasMacro(string $name) * @method static void flushMacros() + * @method static string|null resolveConnectionFromQueueRoute(object $queueable) + * @method static string|null resolveQueueFromQueueRoute(object $queueable) * @method static void assertSentOnDemand(string|\Closure $notification, callable|null $callback = null) * @method static void assertSentTo(mixed $notifiable, string|\Closure $notification, callable|null $callback = null) * @method static void assertSentOnDemandTimes(string $notification, int $times = 1) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Password.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Password.php index ac6f226aa..9018c8b73 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Password.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Password.php @@ -5,9 +5,9 @@ namespace Illuminate\Support\Facades; use Illuminate\Contracts\Auth\PasswordBroker; /** - * @method static \Illuminate\Contracts\Auth\PasswordBroker broker(string|null $name = null) + * @method static \Illuminate\Contracts\Auth\PasswordBroker broker(\UnitEnum|string|null $name = null) * @method static string getDefaultDriver() - * @method static void setDefaultDriver(string $name) + * @method static void setDefaultDriver(\UnitEnum|string $name) * @method static string sendResetLink(array $credentials, \Closure|null $callback = null) * @method static mixed reset(array $credentials, \Closure $callback) * @method static \Illuminate\Contracts\Auth\CanResetPassword|null getUser(array $credentials) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Process.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Process.php index 35dfdca79..f15e70bcd 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Process.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Process.php @@ -8,8 +8,8 @@ use Illuminate\Process\Factory; /** * @method static \Illuminate\Process\PendingProcess command(array|string $command) * @method static \Illuminate\Process\PendingProcess path(string $path) - * @method static \Illuminate\Process\PendingProcess timeout(int $timeout) - * @method static \Illuminate\Process\PendingProcess idleTimeout(int $timeout) + * @method static \Illuminate\Process\PendingProcess timeout(\Carbon\CarbonInterval|int $timeout) + * @method static \Illuminate\Process\PendingProcess idleTimeout(\Carbon\CarbonInterval|int $timeout) * @method static \Illuminate\Process\PendingProcess forever() * @method static \Illuminate\Process\PendingProcess env(array $environment) * @method static \Illuminate\Process\PendingProcess input(\Traversable|resource|string|int|float|bool|null $input) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Queue.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Queue.php index 710365458..d04ff67d8 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Queue.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Queue.php @@ -13,21 +13,29 @@ use Illuminate\Support\Testing\Fakes\QueueFake; * @method static void failing(mixed $callback) * @method static void starting(mixed $callback) * @method static void stopping(mixed $callback) - * @method static bool connected(string|null $name = null) - * @method static \Illuminate\Contracts\Queue\Queue connection(string|null $name = null) + * @method static void route(array|string $class, \UnitEnum|string|null $queue = null, \UnitEnum|string|null $connection = null) + * @method static bool connected(\UnitEnum|string|null $name = null) + * @method static \Illuminate\Contracts\Queue\Queue connection(\UnitEnum|string|null $name = null) * @method static void pause(string $connection, string $queue) * @method static void pauseFor(string $connection, string $queue, \DateTimeInterface|\DateInterval|int $ttl) * @method static void resume(string $connection, string $queue) * @method static bool isPaused(string $connection, string $queue) + * @method static array getPausedQueues(string $connection, array $queues) * @method static void withoutInterruptionPolling() * @method static void extend(string $driver, \Closure $resolver) * @method static void addConnector(string $driver, \Closure $resolver) * @method static string getDefaultDriver() - * @method static void setDefaultDriver(string $name) + * @method static void setDefaultDriver(\UnitEnum|string $name) * @method static string getName(string|null $connection = null) * @method static \Illuminate\Contracts\Foundation\Application getApplication() * @method static \Illuminate\Queue\QueueManager setApplication(\Illuminate\Contracts\Foundation\Application $app) + * @method static string|null resolveConnectionFromQueueRoute(object $queueable) + * @method static string|null resolveQueueFromQueueRoute(object $queueable) * @method static int size(string|null $queue = null) + * @method static int pendingSize(string|null $queue = null) + * @method static int delayedSize(string|null $queue = null) + * @method static int reservedSize(string|null $queue = null) + * @method static int|null creationTimeOfOldestPendingJob(string|null $queue = null) * @method static mixed push(string|object $job, mixed $data = '', string|null $queue = null) * @method static mixed pushOn(string $queue, string|object $job, mixed $data = '') * @method static mixed pushRaw(string $payload, string|null $queue = null, array $options = []) @@ -37,10 +45,6 @@ use Illuminate\Support\Testing\Fakes\QueueFake; * @method static \Illuminate\Contracts\Queue\Job|null pop(string|null $queue = null) * @method static string getConnectionName() * @method static \Illuminate\Contracts\Queue\Queue setConnectionName(string $name) - * @method static int pendingSize(string|null $queue = null) - * @method static int delayedSize(string|null $queue = null) - * @method static int reservedSize(string|null $queue = null) - * @method static int|null creationTimeOfOldestPendingJob(string|null $queue = null) * @method static mixed getJobTries(mixed $job) * @method static mixed getJobBackoff(mixed $job) * @method static mixed getJobExpiration(mixed $job) @@ -52,7 +56,8 @@ use Illuminate\Support\Testing\Fakes\QueueFake; * @method static \Illuminate\Support\Testing\Fakes\QueueFake except(array|string $jobsToBeQueued) * @method static void assertPushed(string|\Closure $job, callable|int|null $callback = null) * @method static void assertPushedTimes(string $job, int $times = 1) - * @method static void assertPushedOn(string $queue, string|\Closure $job, callable|null $callback = null) + * @method static void assertPushedOnce(string $job) + * @method static void assertPushedOn(\UnitEnum|string $queue, string|\Closure $job, callable|null $callback = null) * @method static void assertPushedWithChain(string $job, array $expectedChain = [], callable|null $callback = null) * @method static void assertPushedWithoutChain(string $job, callable|null $callback = null) * @method static void assertClosurePushed(callable|int|null $callback = null) @@ -64,11 +69,19 @@ use Illuminate\Support\Testing\Fakes\QueueFake; * @method static \Illuminate\Support\Collection pushedRaw(null|\Closure $callback = null) * @method static \Illuminate\Support\Collection listenersPushed(string $listenerClass, \Closure|null $callback = null) * @method static bool hasPushed(string $job) + * @method static \Illuminate\Support\Collection pendingJobs(\UnitEnum|string|null $queue = null) + * @method static \Illuminate\Support\Collection delayedJobs(\UnitEnum|string|null $queue = null) + * @method static \Illuminate\Support\Collection reservedJobs(\UnitEnum|string|null $queue = null) + * @method static \Illuminate\Support\Collection allPendingJobs() + * @method static \Illuminate\Support\Collection allDelayedJobs() + * @method static \Illuminate\Support\Collection allReservedJobs() * @method static bool shouldFakeJob(object $job) + * @method static void reserve(\Closure|string|object $job, \UnitEnum|string|null $queue = null) * @method static array pushedJobs() * @method static array rawPushes() * @method static \Illuminate\Support\Testing\Fakes\QueueFake serializeAndRestore(bool $serializeAndRestore = true) * @method static void releaseUniqueJobLocks() + * @method static void clearReserved() * * @see \Illuminate\Queue\QueueManager * @see \Illuminate\Queue\Queue diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Redis.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Redis.php index 848d06153..8b9aeb687 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Redis.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Redis.php @@ -9,7 +9,7 @@ namespace Illuminate\Support\Facades; * @method static void enableEvents() * @method static void disableEvents() * @method static void setDriver(string $driver) - * @method static void purge(string|null $name = null) + * @method static void purge(\UnitEnum|string|null $name = null) * @method static \Illuminate\Redis\RedisManager extend(string $driver, \Closure $callback) * @method static void createSubscription(array|string $channels, \Closure $callback, string $method = 'subscribe') * @method static \Illuminate\Redis\Limiters\ConcurrencyLimiterBuilder funnel(string $name) @@ -20,11 +20,13 @@ namespace Illuminate\Support\Facades; * @method static mixed command(string $method, array $parameters = []) * @method static void listen(\Closure $callback) * @method static void listenForFailures(\Closure $callback) + * @method static bool isCluster() * @method static string|null getName() * @method static \Illuminate\Redis\Connections\Connection setName(string $name) * @method static \Illuminate\Contracts\Events\Dispatcher|null getEventDispatcher() * @method static void setEventDispatcher(\Illuminate\Contracts\Events\Dispatcher $events) * @method static void unsetEventDispatcher() + * @method static bool hasHashTag(string $key) * @method static void macro(string $name, object|callable $macro) * @method static void mixin(object $mixin, bool $replace = true) * @method static bool hasMacro(string $name) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Request.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Request.php index 411ad9739..bf878d5d6 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Request.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Request.php @@ -165,6 +165,7 @@ namespace Illuminate\Support\Facades; * @method static bool isNotFilled(string|array $key) * @method static bool anyFilled(string|array $keys) * @method static \Illuminate\Http\Request|mixed whenFilled(string $key, callable $callback, callable|null $default = null) + * @method static \Illuminate\Http\Request|mixed whenEnum(string $key, string $enumClass, callable $callback, callable|null $default = null) * @method static bool missing(string|array $key) * @method static \Illuminate\Http\Request|mixed whenMissing(string $key, callable $callback, callable|null $default = null) * @method static \Illuminate\Support\Stringable str(string $key, mixed $default = null) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Route.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Route.php index 7b0e1c0c5..f6a8232d7 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Route.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Route.php @@ -83,6 +83,7 @@ namespace Illuminate\Support\Facades; * @method static mixed macroCall(string $method, array $parameters) * @method static \Illuminate\Support\HigherOrderTapProxy|\Illuminate\Routing\Router tap(callable|null $callback = null) * @method static \Illuminate\Routing\RouteRegistrar attribute(string $key, mixed $value) + * @method static \Illuminate\Routing\RouteRegistrar metadata(array $metadata) * @method static \Illuminate\Routing\RouteRegistrar whereAlpha(array|string $parameters) * @method static \Illuminate\Routing\RouteRegistrar whereAlphaNumeric(array|string $parameters) * @method static \Illuminate\Routing\RouteRegistrar whereNumber(array|string $parameters) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Schedule.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Schedule.php index eabe3ef7c..484ac6795 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Schedule.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Schedule.php @@ -14,23 +14,27 @@ use Illuminate\Console\Scheduling\Schedule as ConsoleSchedule; * @method static bool serverShouldRun(\Illuminate\Console\Scheduling\Event $event, \DateTimeInterface $time) * @method static \Illuminate\Support\Collection dueEvents(\Illuminate\Contracts\Foundation\Application $app) * @method static \Illuminate\Console\Scheduling\Event[] events() + * @method static \Illuminate\Console\Scheduling\Event[] eventsForEnvironments(array $environments) * @method static \Illuminate\Console\Scheduling\Schedule useCache(\UnitEnum|string $store) + * @method static void withoutInterruptionPolling() * @method static void macro(string $name, object|callable $macro) * @method static void mixin(object $mixin, bool $replace = true) * @method static bool hasMacro(string $name) * @method static void flushMacros() * @method static mixed macroCall(string $method, array $parameters) - * @method static \Illuminate\Console\Scheduling\PendingEventAttributes withoutOverlapping(int $expiresAt = 1440) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes withoutOverlapping(int $expiresAt = 1440, bool $releaseOnTerminationSignals = true) * @method static void mergeAttributes(\Illuminate\Console\Scheduling\Event $event) * @method static \Illuminate\Console\Scheduling\PendingEventAttributes user(string $user) * @method static \Illuminate\Console\Scheduling\PendingEventAttributes environments(mixed $environments) * @method static \Illuminate\Console\Scheduling\PendingEventAttributes evenInMaintenanceMode() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes evenWhenPaused() * @method static \Illuminate\Console\Scheduling\PendingEventAttributes onOneServer() * @method static \Illuminate\Console\Scheduling\PendingEventAttributes runInBackground() * @method static \Illuminate\Console\Scheduling\PendingEventAttributes when(\Closure|bool $callback) * @method static \Illuminate\Console\Scheduling\PendingEventAttributes skip(\Closure|bool $callback) * @method static \Illuminate\Console\Scheduling\PendingEventAttributes name(string $description) * @method static \Illuminate\Console\Scheduling\PendingEventAttributes description(string $description) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes withAttributes(array $attributes) * @method static \Illuminate\Console\Scheduling\PendingEventAttributes cron(string $expression) * @method static \Illuminate\Console\Scheduling\PendingEventAttributes between(string $startTime, string $endTime) * @method static \Illuminate\Console\Scheduling\PendingEventAttributes unlessBetween(string $startTime, string $endTime) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Schema.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Schema.php index 5c617687b..c143296e8 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Schema.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Schema.php @@ -29,6 +29,7 @@ namespace Illuminate\Support\Facades; * @method static array getIndexes(string $table) * @method static array getIndexListing(string $table) * @method static bool hasIndex(string $table, string|array $index, string|null $type = null) + * @method static bool hasForeignKey(string $table, array|string $foreignKey) * @method static array getForeignKeys(string $table) * @method static void table(string $table, \Closure $callback) * @method static void create(string $table, \Closure $callback) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Session.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Session.php index 269a98513..9e9896832 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Session.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Session.php @@ -9,8 +9,8 @@ namespace Illuminate\Support\Facades; * @method static int defaultRouteBlockWaitSeconds() * @method static array getSessionConfig() * @method static string|null getDefaultDriver() - * @method static void setDefaultDriver(string $name) - * @method static mixed driver(string|null $driver = null) + * @method static void setDefaultDriver(\UnitEnum|string $name) + * @method static mixed driver(\UnitEnum|string|null $driver = null) * @method static \Illuminate\Session\SessionManager extend(string $driver, \Closure $callback) * @method static array getDrivers() * @method static \Illuminate\Contracts\Container\Container getContainer() diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Storage.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Storage.php index 6a12ab40e..a7b226683 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Storage.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Storage.php @@ -7,7 +7,7 @@ use Illuminate\Filesystem\Filesystem; use function Illuminate\Support\enum_value; /** - * @method static \Illuminate\Contracts\Filesystem\Filesystem drive(string|null $name = null) + * @method static \Illuminate\Contracts\Filesystem\Filesystem drive(\UnitEnum|string|null $name = null) * @method static \Illuminate\Contracts\Filesystem\Filesystem disk(\UnitEnum|string|null $name = null) * @method static \Illuminate\Contracts\Filesystem\Cloud cloud() * @method static \Illuminate\Contracts\Filesystem\Filesystem build(string|array $config) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Vite.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Vite.php index 6f727c89c..a0ed9206f 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Vite.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Vite.php @@ -25,6 +25,8 @@ namespace Illuminate\Support\Facades; * @method static string asset(string $asset, string|null $buildDirectory = null) * @method static string content(string $asset, string|null $buildDirectory = null) * @method static string|null manifestHash(string|null $buildDirectory = null) + * @method static \Illuminate\Support\HtmlString fonts(array|string|null $aliases = null) + * @method static \Illuminate\Foundation\Vite useFontsManifestFilename(string $filename) * @method static bool isRunningHot() * @method static string toHtml() * @method static void flush() diff --git a/vendor/laravel/framework/src/Illuminate/Support/Fluent.php b/vendor/laravel/framework/src/Illuminate/Support/Fluent.php index 75fc7e9ff..88d32bbf6 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Fluent.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Fluent.php @@ -131,7 +131,7 @@ class Fluent implements Arrayable, ArrayAccess, IteratorAggregate, Jsonable, Jso * Get all of the attributes from the fluent instance. * * @param mixed $keys - * @return array + * @return array */ public function all($keys = null) { @@ -293,7 +293,7 @@ class Fluent implements Arrayable, ArrayAccess, IteratorAggregate, Jsonable, Jso * Handle dynamic calls to the fluent instance to set attributes. * * @param TKey $method - * @param array{0: ?TValue} $parameters + * @param array{0?: ?TValue} $parameters * @return $this */ public function __call($method, $parameters) diff --git a/vendor/laravel/framework/src/Illuminate/Support/Js.php b/vendor/laravel/framework/src/Illuminate/Support/Js.php index 7203fbcd7..c1635057c 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Js.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Js.php @@ -23,7 +23,13 @@ class Js implements Htmlable, Stringable * * @var int */ - protected const REQUIRED_FLAGS = JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT | JSON_THROW_ON_ERROR; + protected const REQUIRED_FLAGS = 0 + | JSON_HEX_TAG + | JSON_HEX_APOS + | JSON_HEX_AMP + | JSON_HEX_QUOT + | JSON_UNESCAPED_UNICODE + | JSON_THROW_ON_ERROR; /** * Create a new class instance. diff --git a/vendor/laravel/framework/src/Illuminate/Support/Lottery.php b/vendor/laravel/framework/src/Illuminate/Support/Lottery.php index 183cf957c..c191a97e4 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Lottery.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Lottery.php @@ -46,6 +46,8 @@ class Lottery * * @param int|float $chances * @param int<1, max>|null $outOf + * + * @throws \RuntimeException */ public function __construct($chances, $outOf = null) { @@ -115,7 +117,7 @@ class Lottery * Run the lottery. * * @param null|int $times - * @return mixed + * @return ($times is null ? mixed : list) */ public function choose($times = null) { @@ -187,7 +189,7 @@ class Lottery } /** - * Force the lottery to always result in a lose. + * Force the lottery to always result in a loss. * * @param callable|null $callback * @return void diff --git a/vendor/laravel/framework/src/Illuminate/Support/Manager.php b/vendor/laravel/framework/src/Illuminate/Support/Manager.php index 5a1052e49..c6491c5a5 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/Manager.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Manager.php @@ -5,9 +5,13 @@ namespace Illuminate\Support; use Closure; use Illuminate\Contracts\Container\Container; use InvalidArgumentException; +use ReflectionException; +use RuntimeException; abstract class Manager { + use RebindsCallbacksToSelf; + /** * The container instance. * @@ -25,14 +29,14 @@ abstract class Manager /** * The registered custom driver creators. * - * @var array + * @var array */ protected $customCreators = []; /** * The array of created "drivers". * - * @var array + * @var array */ protected $drivers = []; @@ -57,14 +61,14 @@ abstract class Manager /** * Get a driver instance. * - * @param string|null $driver + * @param \UnitEnum|string|null $driver * @return mixed * * @throws \InvalidArgumentException */ public function driver($driver = null) { - $driver = $driver ?: $this->getDefaultDriver(); + $driver = enum_value($driver) ?: $this->getDefaultDriver(); if (is_null($driver)) { throw new InvalidArgumentException(sprintf( @@ -119,11 +123,19 @@ abstract class Manager * Register a custom driver creator Closure. * * @param string $driver - * @param \Closure $callback + * + * @param-closure-this $this $callback + * * @return $this */ public function extend($driver, Closure $callback) { + try { + $callback = $this->bindCallbackToSelf($callback) ?? throw new RuntimeException('Unable to bind custom driver callback'); + } catch (ReflectionException $e) { + throw new RuntimeException('Unable to bind custom driver callback', previous: $e); + } + $this->customCreators[$driver] = $callback; return $this; @@ -132,7 +144,7 @@ abstract class Manager /** * Get all of the created "drivers". * - * @return array + * @return array */ public function getDrivers() { @@ -178,7 +190,7 @@ abstract class Manager * Dynamically call the default driver instance. * * @param string $method - * @param array $parameters + * @param array $parameters * @return mixed */ public function __call($method, $parameters) diff --git a/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php b/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php index 983d5d8c0..6300a3a77 100755 --- a/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php +++ b/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php @@ -112,7 +112,7 @@ class MessageBag implements Jsonable, JsonSerializable, MessageBagContract, Mess /** * Determine if messages exist for all of the given keys. * - * @param array|string|null $key + * @param array|string|null $key * @return bool */ public function has($key) @@ -127,19 +127,13 @@ class MessageBag implements Jsonable, JsonSerializable, MessageBagContract, Mess $keys = is_array($key) ? $key : func_get_args(); - foreach ($keys as $key) { - if ($this->first($key) === '') { - return false; - } - } - - return true; + return array_all($keys, fn ($key) => $this->first($key) !== ''); } /** * Determine if messages exist for any of the given keys. * - * @param array|string|null $keys + * @param array|string|null $keys * @return bool */ public function hasAny($keys = []) @@ -150,19 +144,13 @@ class MessageBag implements Jsonable, JsonSerializable, MessageBagContract, Mess $keys = is_array($keys) ? $keys : func_get_args(); - foreach ($keys as $key) { - if ($this->has($key)) { - return true; - } - } - - return false; + return array_any($keys, fn ($key) => $this->has($key)); } /** * Determine if messages don't exist for all of the given keys. * - * @param array|string|null $key + * @param array|string|null $key * @return bool */ public function missing($key) @@ -253,7 +241,7 @@ class MessageBag implements Jsonable, JsonSerializable, MessageBagContract, Mess * Get all of the unique messages for every key in the message bag. * * @param string|null $format - * @return array + * @return array */ public function unique($format = null) { @@ -403,7 +391,7 @@ class MessageBag implements Jsonable, JsonSerializable, MessageBagContract, Mess /** * Get the instance as an array. * - * @return array + * @return array> */ public function toArray() { @@ -413,7 +401,7 @@ class MessageBag implements Jsonable, JsonSerializable, MessageBagContract, Mess /** * Convert the object into something JSON serializable. * - * @return array + * @return array> */ public function jsonSerialize(): array { diff --git a/vendor/laravel/framework/src/Illuminate/Support/MultipleInstanceManager.php b/vendor/laravel/framework/src/Illuminate/Support/MultipleInstanceManager.php index 66fff08e3..d5e49a13a 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/MultipleInstanceManager.php +++ b/vendor/laravel/framework/src/Illuminate/Support/MultipleInstanceManager.php @@ -4,10 +4,13 @@ namespace Illuminate\Support; use Closure; use InvalidArgumentException; +use ReflectionException; use RuntimeException; abstract class MultipleInstanceManager { + use RebindsCallbacksToSelf; + /** * The application instance. * @@ -198,7 +201,13 @@ abstract class MultipleInstanceManager */ public function extend($name, Closure $callback) { - $this->customCreators[$name] = $callback->bindTo($this, $this); + try { + $callback = $this->bindCallbackToSelf($callback) ?? throw new RuntimeException('Unable to bind custom driver callback'); + } catch (ReflectionException $e) { + throw new RuntimeException('Unable to bind custom driver callback', previous: $e); + } + + $this->customCreators[$name] = $callback; return $this; } diff --git a/vendor/laravel/framework/src/Illuminate/Support/NodePackageManager.php b/vendor/laravel/framework/src/Illuminate/Support/NodePackageManager.php new file mode 100644 index 000000000..af4c97c74 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Support/NodePackageManager.php @@ -0,0 +1,70 @@ +packageManager()->getExecCommand($command); + } + + /** + * Get the command to run a script using the detected package manager. + * + * @param string $command + * @return string + */ + public function getRunCommand(string $command): string + { + return $this->packageManager()->getRunCommand($command); + } + + /** + * Get the Node package manager in use. + * + * @return NodePackageManagerContract + */ + public function packageManager(): NodePackageManagerContract + { + return $this->packageManager ??= $this->detect(); + } + + /** + * Detect the current package manager. + * + * @return NodePackageManagerContract + */ + protected function detect(): NodePackageManagerContract + { + foreach ([ + NodePackageManagers\Bun::class, + NodePackageManagers\Pnpm::class, + NodePackageManagers\Yarn::class, + ] as $packageManager) { + if ($packageManager::matches()) { + return new $packageManager; + } + } + + return new NodePackageManagers\Npm; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Support/NodePackageManagers/Bun.php b/vendor/laravel/framework/src/Illuminate/Support/NodePackageManagers/Bun.php new file mode 100644 index 000000000..23de8246a --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Support/NodePackageManagers/Bun.php @@ -0,0 +1,40 @@ + file_exists(getcwd().'/'.$lockFile)); + } + + /** + * Get the command to run a script using Bun. + * + * @param string $command + * @return string + */ + public function getRunCommand(string $command): string + { + return "bun run {$command}"; + } + + /** + * Get the command to execute a package using Bun. + * + * @param string $command + * @return string + */ + public function getExecCommand(string $command): string + { + return "bunx {$command}"; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Support/NodePackageManagers/Npm.php b/vendor/laravel/framework/src/Illuminate/Support/NodePackageManagers/Npm.php new file mode 100644 index 000000000..300bc7eb0 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Support/NodePackageManagers/Npm.php @@ -0,0 +1,40 @@ + $units * @return string|false + * + * @phpstan-return ($number is INF ? '∞' : ($number is NAN ? 'NaN' : ($number is 0 ? ($precision is non-positive-int ? '0' : non-empty-string|false) : non-empty-string|false))) */ protected static function summarize(int|float $number, int $precision = 0, ?int $maxPrecision = null, array $units = []) { + if (! is_finite($number)) { + return static::format($number, $precision, $maxPrecision); + } + if (empty($units)) { $units = [ 3 => 'K', @@ -289,7 +299,15 @@ class Number $displayExponent = $numberExponent - ($numberExponent % 3); $number /= pow(10, $displayExponent); - return trim(sprintf('%s%s', static::format($number, $precision, $maxPrecision), $units[$displayExponent] ?? '')); + $formatted = static::format($number, $precision, $maxPrecision); + + if (static::parseFloat($formatted) >= 1000 && isset($units[$displayExponent + 3])) { + $number /= 1000; + $displayExponent += 3; + $formatted = static::format($number, $precision, $maxPrecision); + } + + return trim(sprintf('%s%s', $formatted, $units[$displayExponent] ?? '')); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Support/Optional.php b/vendor/laravel/framework/src/Illuminate/Support/Optional.php index fcf71ed0c..a845fdfe5 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Optional.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Optional.php @@ -64,49 +64,49 @@ class Optional implements ArrayAccess /** * Determine if an item exists at an offset. * - * @param mixed $key + * @param mixed $offset * @return bool */ - public function offsetExists($key): bool + public function offsetExists($offset): bool { - return Arr::accessible($this->value) && Arr::exists($this->value, $key); + return Arr::accessible($this->value) && Arr::exists($this->value, $offset); } /** * Get an item at a given offset. * - * @param mixed $key + * @param mixed $offset * @return mixed */ - public function offsetGet($key): mixed + public function offsetGet($offset): mixed { - return Arr::get($this->value, $key); + return Arr::get($this->value, $offset); } /** * Set the item at a given offset. * - * @param mixed $key + * @param mixed $offset * @param mixed $value * @return void */ - public function offsetSet($key, $value): void + public function offsetSet($offset, $value): void { if (Arr::accessible($this->value)) { - $this->value[$key] = $value; + $this->value[$offset] = $value; } } /** * Unset the item at a given offset. * - * @param string $key + * @param mixed $offset * @return void */ - public function offsetUnset($key): void + public function offsetUnset($offset): void { if (Arr::accessible($this->value)) { - unset($this->value[$key]); + unset($this->value[$offset]); } } diff --git a/vendor/laravel/framework/src/Illuminate/Support/Queue/Concerns/ResolvesQueueRoutes.php b/vendor/laravel/framework/src/Illuminate/Support/Queue/Concerns/ResolvesQueueRoutes.php new file mode 100644 index 000000000..641f90dfc --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Support/Queue/Concerns/ResolvesQueueRoutes.php @@ -0,0 +1,45 @@ +queueRoutes()->getConnection($queueable); + } + + /** + * Resolve the default queue name for a given queueable instance. + * + * @param object $queueable + * @return string|null + */ + public function resolveQueueFromQueueRoute($queueable) + { + return $this->queueRoutes()->getQueue($queueable); + } + + /** + * Get the queue routes manager instance. + * + * @return \Illuminate\Queue\QueueRoutes + */ + protected function queueRoutes() + { + $container = Container::getInstance(); + + return $container->bound('queue.routes') + ? $container->make('queue.routes') + : new QueueRoutes; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Support/RebindsCallbacksToSelf.php b/vendor/laravel/framework/src/Illuminate/Support/RebindsCallbacksToSelf.php new file mode 100644 index 000000000..722f601be --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Support/RebindsCallbacksToSelf.php @@ -0,0 +1,34 @@ +isAnonymous()) { + if ($reflector->isStatic()) { + // Static functions are bound without $this. + $callback = $callback->bindTo(null, static::class); + } else { + // Non-static functions are bound to $this. + $callback = $callback->bindTo($this, static::class); + } + } + + return $callback; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Sleep.php b/vendor/laravel/framework/src/Illuminate/Support/Sleep.php index b6b6ab32b..35ef55685 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Sleep.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Sleep.php @@ -239,7 +239,7 @@ class Sleep } /** - * Sleep for on microsecond. + * Sleep for one microsecond. * * @return $this */ @@ -303,6 +303,8 @@ class Sleep * Handle the object's destruction. * * @return void + * + * @throws \RuntimeException */ protected function goodnight() { @@ -357,6 +359,8 @@ class Sleep * Resolve the pending duration. * * @return int|float + * + * @throws \RuntimeException */ protected function pullPending() { diff --git a/vendor/laravel/framework/src/Illuminate/Support/Str.php b/vendor/laravel/framework/src/Illuminate/Support/Str.php index 13cb50b73..1e05928e7 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Str.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Str.php @@ -84,6 +84,19 @@ class Str return new Stringable($string); } + /** + * Translate the given message and get a new stringable object. + * + * @param string $key + * @param array $replace + * @param string|null $locale + * @return \Illuminate\Support\Stringable + */ + public static function trans($key, $replace = [], $locale = null) + { + return new Stringable(__($key, $replace, $locale)); + } + /** * Return the remainder of a string after the first occurrence of a given value. * @@ -140,7 +153,7 @@ class Str */ public static function transliterate($string, $unknown = '?', $strict = false) { - return ASCII::to_transliterate($string, $unknown, $strict); + return ASCII::to_transliterate((string) $string, $unknown, $strict); } /** @@ -225,11 +238,7 @@ class Str */ public static function camel($value) { - if (isset(static::$camelCache[$value])) { - return static::$camelCache[$value]; - } - - return static::$camelCache[$value] = lcfirst(static::studly($value)); + return static::$camelCache[$value] ?? static::$camelCache[$value] = lcfirst(static::studly($value)); } /** @@ -366,6 +375,18 @@ class Str return mb_convert_case($string, $mode, $encoding); } + /** + * Get the plural form of an English word with the count prepended. + * + * @param string $value + * @param int|array|\Countable $count + * @return string + */ + public static function counted($value, $count) + { + return static::plural($value, $count, prependCount: true); + } + /** * Replace consecutive instances of a given character with a single character in the given string. * @@ -791,6 +812,8 @@ class Str */ public static function markdown($string, array $options = [], array $extensions = []) { + $string = (string) $string; + $converter = new GithubFlavoredMarkdownConverter($options); $environment = $converter->getEnvironment(); @@ -812,6 +835,8 @@ class Str */ public static function inlineMarkdown($string, array $options = [], array $extensions = []) { + $string = (string) $string; + $environment = new Environment($options); $environment->addExtension(new GithubFlavoredMarkdownExtension()); @@ -857,7 +882,7 @@ class Str $start = mb_substr($string, 0, $startIndex, $encoding); $segmentLen = mb_strlen($segment, $encoding); - $end = mb_substr($string, $startIndex + $segmentLen); + $end = mb_substr($string, $startIndex + $segmentLen, null, $encoding); return $start.str_repeat(mb_substr($character, 0, 1, $encoding), $segmentLen).$end; } @@ -1202,7 +1227,7 @@ class Str public static function replaceArray($search, $replace, $subject) { if ($replace instanceof Traversable) { - $replace = Arr::from($replace); + $replace = iterator_to_array($replace); } $segments = explode($search, $subject); @@ -1227,7 +1252,7 @@ class Str { try { return (string) $value; - } catch (Throwable $e) { + } catch (Throwable) { return $fallback; } } @@ -1244,15 +1269,15 @@ class Str public static function replace($search, $replace, $subject, $caseSensitive = true) { if ($search instanceof Traversable) { - $search = Arr::from($search); + $search = iterator_to_array($search); } if ($replace instanceof Traversable) { - $replace = Arr::from($replace); + $replace = iterator_to_array($replace); } if ($subject instanceof Traversable) { - $subject = Arr::from($subject); + $subject = iterator_to_array($subject); } return $caseSensitive @@ -1385,7 +1410,7 @@ class Str public static function remove($search, $subject, $caseSensitive = true) { if ($search instanceof Traversable) { - $search = Arr::from($search); + $search = iterator_to_array($search); } return $caseSensitive @@ -1401,7 +1426,7 @@ class Str */ public static function reverse(string $value) { - return implode(array_reverse(mb_str_split($value))); + return implode('', array_reverse(mb_str_split($value))); } /** @@ -1448,7 +1473,7 @@ class Str */ public static function headline($value) { - $parts = mb_split('\s+', $value); + $parts = preg_split('/\s+/u', $value, -1, PREG_SPLIT_NO_EMPTY); $parts = count($parts) > 1 ? array_map(static::title(...), $parts) @@ -1468,7 +1493,7 @@ class Str */ public static function initials($value, $capitalize = false) { - $parts = mb_split("\s+", $value); + $parts = preg_split('/\s+/u', $value, -1, PREG_SPLIT_NO_EMPTY); $parts = array_map(fn ($part) => mb_substr($part, 0, 1), $parts); @@ -1499,7 +1524,7 @@ class Str $endPunctuation = ['.', '!', '?', ':', '—', ',']; - $words = mb_split('\s+', $value); + $words = preg_split('/\s+/u', $value, -1, PREG_SPLIT_NO_EMPTY); $wordCount = count($words); for ($i = 0; $i < $wordCount; $i++) { @@ -1709,32 +1734,42 @@ class Str * Convert a value to studly caps case. * * @param string $value + * @param bool $normalize When true, all-uppercase words (e.g. acronyms) are lowercased before conversion so "CBOR" becomes "Cbor" instead of "CBOR". * @return ($value is '' ? '' : string) */ - public static function studly($value) + public static function studly($value, bool $normalize = false) { + if ($normalize) { + $value = preg_replace_callback( + '/(^|[-_ \s])([A-Z]+)(?=[-_ \s]|$)/u', + fn ($m) => $m[1].static::lower($m[2]), + $value + ); + } + $key = $value; if (isset(static::$studlyCache[$key])) { return static::$studlyCache[$key]; } - $words = mb_split('\s+', static::replace(['-', '_'], ' ', $value)); + $words = preg_split('/\s+/u', static::replace(['-', '_'], ' ', $value), -1, PREG_SPLIT_NO_EMPTY); $studlyWords = array_map(fn ($word) => static::ucfirst($word), $words); - return static::$studlyCache[$key] = implode($studlyWords); + return static::$studlyCache[$key] = implode('', $studlyWords); } /** * Convert a value to Pascal case. * * @param string $value + * @param bool $normalize When true, all-uppercase words (e.g. acronyms) are lowercased before conversion so "CBOR" becomes "Cbor" instead of "CBOR". * @return ($value is '' ? '' : string) */ - public static function pascal($value) + public static function pascal($value, bool $normalize = false) { - return static::studly($value); + return static::studly($value, $normalize); } /** @@ -2151,4 +2186,16 @@ class Str static::$camelCache = []; static::$studlyCache = []; } + + /** + * Return all factory functions to their default state. + * + * @return void + */ + public static function resetFactoryState() + { + static::createRandomStringsNormally(); + static::createUlidsNormally(); + static::createUuidsNormally(); + } } diff --git a/vendor/laravel/framework/src/Illuminate/Support/Stringable.php b/vendor/laravel/framework/src/Illuminate/Support/Stringable.php index 64b4cf5d1..ce8d8239a 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Stringable.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Stringable.php @@ -246,6 +246,17 @@ class Stringable implements JsonSerializable, ArrayAccess, BaseStringable return new static(Str::convertCase($this->value, $mode, $encoding)); } + /** + * Get the plural form of an English word with the count prepended. + * + * @param int|array|\Countable $count + * @return static + */ + public function counted($count) + { + return new static(Str::counted($this->value, $count)); + } + /** * Replace consecutive instances of a given character with a single character. * @@ -894,11 +905,12 @@ class Stringable implements JsonSerializable, ArrayAccess, BaseStringable /** * Convert the given string to only its initials. * + * @param bool $capitalize * @return static */ - public function initials() + public function initials($capitalize = false) { - return new static(Str::initials($this->value)); + return new static(Str::initials($this->value, $capitalize)); } /** @@ -982,21 +994,23 @@ class Stringable implements JsonSerializable, ArrayAccess, BaseStringable /** * Convert a value to studly caps case. * + * @param bool $normalize * @return static */ - public function studly() + public function studly(bool $normalize = false) { - return new static(Str::studly($this->value)); + return new static(Str::studly($this->value, $normalize)); } /** * Convert the string to Pascal case. * + * @param bool $normalize * @return static */ - public function pascal() + public function pascal(bool $normalize = false) { - return new static(Str::pascal($this->value)); + return new static(Str::pascal($this->value, $normalize)); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BatchFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BatchFake.php index 0d1176c2b..9d0e76a84 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BatchFake.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BatchFake.php @@ -7,6 +7,7 @@ use Illuminate\Bus\Batch; use Illuminate\Bus\UpdatedBatchJobCounts; use Illuminate\Support\Carbon; use Illuminate\Support\Collection; +use Throwable; class BatchFake extends Batch { @@ -67,6 +68,7 @@ class BatchFake extends Batch * * @return self */ + #[\Override] public function fresh() { return $this; @@ -78,6 +80,7 @@ class BatchFake extends Batch * @param \Illuminate\Support\Enumerable|object|array $jobs * @return self */ + #[\Override] public function add($jobs) { $jobs = Collection::wrap($jobs); @@ -97,6 +100,7 @@ class BatchFake extends Batch * @param string $jobId * @return void */ + #[\Override] public function recordSuccessfulJob(string $jobId) { // @@ -108,6 +112,7 @@ class BatchFake extends Batch * @param string $jobId * @return void */ + #[\Override] public function decrementPendingJobs(string $jobId) { // @@ -120,6 +125,7 @@ class BatchFake extends Batch * @param \Throwable $e * @return void */ + #[\Override] public function recordFailedJob(string $jobId, $e) { // @@ -131,6 +137,7 @@ class BatchFake extends Batch * @param string $jobId * @return \Illuminate\Bus\UpdatedBatchJobCounts */ + #[\Override] public function incrementFailedJobs(string $jobId) { return new UpdatedBatchJobCounts; @@ -141,7 +148,8 @@ class BatchFake extends Batch * * @return void */ - public function cancel() + #[\Override] + public function cancel(?Throwable $exception = null) { $this->cancelledAt = Carbon::now(); } @@ -151,6 +159,7 @@ class BatchFake extends Batch * * @return void */ + #[\Override] public function delete() { $this->deleted = true; diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BatchRepositoryFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BatchRepositoryFake.php index 2afa4ab94..e532ecfc0 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BatchRepositoryFake.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BatchRepositoryFake.php @@ -2,6 +2,7 @@ namespace Illuminate\Support\Testing\Fakes; +use Carbon\Carbon; use Carbon\CarbonImmutable; use Closure; use Illuminate\Bus\BatchRepository; @@ -112,7 +113,7 @@ class BatchRepositoryFake implements BatchRepository public function markAsFinished(string $batchId) { if (isset($this->batches[$batchId])) { - $this->batches[$batchId]->finishedAt = now(); + $this->batches[$batchId]->finishedAt = Carbon::now(); } } @@ -143,8 +144,10 @@ class BatchRepositoryFake implements BatchRepository /** * Execute the given Closure within a storage specific transaction. * - * @param \Closure $callback - * @return mixed + * @template TReturn + * + * @param (\Closure(): TReturn) $callback + * @return TReturn */ public function transaction(Closure $callback) { diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php index 75e28d7f1..813424716 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php @@ -201,9 +201,11 @@ class BusFake implements Fake, QueueingDispatcher */ public function assertNothingDispatched() { - $commandNames = implode("\n- ", array_keys($this->commands)); + $dispatchedCommands = $this->commands + $this->commandsSync + $this->commandsAfterResponse; - PHPUnit::assertEmpty($this->commands, "The following jobs were dispatched unexpectedly:\n\n- $commandNames\n"); + $commandNames = implode("\n- ", array_keys($dispatchedCommands)); + + PHPUnit::assertEmpty($dispatchedCommands, "The following jobs were dispatched unexpectedly:\n\n- $commandNames\n"); } /** @@ -438,6 +440,8 @@ class BusFake implements Fake, QueueingDispatcher * @param array $expectedChain * @param callable|null $callback * @return void + * + * @throws \RuntimeException */ protected function assertDispatchedWithChainOfObjects($command, $expectedChain, $callback) { @@ -717,17 +721,31 @@ class BusFake implements Fake, QueueingDispatcher } /** - * Dispatch a command to its appropriate handler. + * Dispatch a command to its appropriate handler after the current process. * * @param mixed $command - * @return mixed + * @param mixed $handler + * @return void */ - public function dispatchAfterResponse($command) + public function dispatchAfterResponse($command, $handler = null) { if ($this->shouldFakeJob($command)) { $this->commandsAfterResponse[get_class($command)][] = $this->getCommandRepresentation($command); } else { - return $this->dispatcher->dispatch($command); + $this->dispatcher->dispatchAfterResponse($command, $handler); + } + } + + /** + * Dispatch multiple commands in bulk to their appropriate handlers on the queue. + * + * @param iterable $jobs + * @return void + */ + public function bulk($jobs) + { + foreach ($jobs as $job) { + $this->dispatch($job); } } diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/ExceptionHandlerFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/ExceptionHandlerFake.php index bbf5f29b4..f6e560013 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/ExceptionHandlerFake.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/ExceptionHandlerFake.php @@ -108,6 +108,8 @@ class ExceptionHandlerFake implements ExceptionHandler, Fake * * @param (\Closure(\Throwable): bool)|class-string<\Throwable> $exception * @return void + * + * @throws \PHPUnit\Framework\ExpectationFailedException */ public function assertNotReported(Closure|string $exception) { @@ -144,6 +146,8 @@ class ExceptionHandlerFake implements ExceptionHandler, Fake * * @param \Throwable $e * @return void + * + * @throws \Throwable */ public function report($e) { @@ -172,7 +176,7 @@ class ExceptionHandlerFake implements ExceptionHandler, Fake */ protected function isFakedException(Throwable $e) { - return count($this->exceptions) === 0 || in_array(get_class($e), $this->exceptions, true); + return $this->exceptions === [] || in_array(get_class($e), $this->exceptions, true); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php index e3eb25b57..8be5000d4 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php @@ -430,6 +430,17 @@ class MailFake implements Factory, Fake, Mailer, MailQueue return $this; } + /** + * Get a mailer driver instance. + * + * @param string|null $driver + * @return \Illuminate\Contracts\Mail\Mailer + */ + public function driver($driver = null) + { + return $this->mailer($driver); + } + /** * Begin the process of mailing a mailable class instance. * diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php index 16d991668..bb6039bb4 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php @@ -10,12 +10,15 @@ use Illuminate\Contracts\Queue\Queue; use Illuminate\Contracts\Queue\ShouldBeUnique; use Illuminate\Events\CallQueuedListener; use Illuminate\Queue\CallQueuedClosure; +use Illuminate\Queue\Jobs\InspectedJob; use Illuminate\Queue\QueueManager; use Illuminate\Support\Collection; use Illuminate\Support\Str; use Illuminate\Support\Traits\ReflectsClosures; use PHPUnit\Framework\Assert as PHPUnit; +use function Illuminate\Support\enum_value; + /** * @phpstan-type RawPushType array{"payload": string, "queue": string|null, "options": array} */ @@ -51,6 +54,13 @@ class QueueFake extends QueueManager implements Fake, Queue */ protected $jobs = []; + /** + * All of the jobs that have been pushed with a delay. + * + * @var array + */ + protected $delayed = []; + /** * All of the payloads that have been raw pushed. * @@ -63,7 +73,14 @@ class QueueFake extends QueueManager implements Fake, Queue * * @var array */ - private $uniqueJobs = []; + protected $uniqueJobs = []; + + /** + * All of the jobs that have been marked as reserved. + * + * @var array + */ + protected $reserved = []; /** * Indicates if items should be serialized and restored when pushed to the queue. @@ -145,10 +162,21 @@ class QueueFake extends QueueManager implements Fake, Queue ); } + /** + * Assert if a job was pushed exactly once. + * + * @param string $job + * @return void + */ + public function assertPushedOnce($job) + { + $this->assertPushedTimes($job, 1); + } + /** * Assert if a job was pushed based on a truth-test callback. * - * @param string $queue + * @param \UnitEnum|string $queue * @param string|\Closure $job * @param callable|null $callback * @return void @@ -159,8 +187,10 @@ class QueueFake extends QueueManager implements Fake, Queue [$job, $callback] = [$this->firstClosureParameterType($job), $job]; } + $queue = enum_value($queue); + $this->assertPushed($job, function ($job, $pushedQueue) use ($callback, $queue) { - if ($pushedQueue !== $queue) { + if (enum_value($pushedQueue) !== $queue) { return false; } @@ -412,11 +442,13 @@ class QueueFake extends QueueManager implements Fake, Queue /** * Get the size of the queue. * - * @param string|null $queue + * @param \UnitEnum|string|null $queue * @return int */ public function size($queue = null) { + $queue = enum_value($queue); + return (new Collection($this->jobs)) ->flatten(1) ->filter(fn ($job) => $job['queue'] === $queue) @@ -426,7 +458,7 @@ class QueueFake extends QueueManager implements Fake, Queue /** * Get the number of pending jobs. * - * @param string|null $queue + * @param \UnitEnum|string|null $queue * @return int */ public function pendingSize($queue = null) @@ -437,29 +469,114 @@ class QueueFake extends QueueManager implements Fake, Queue /** * Get the number of delayed jobs. * - * @param string|null $queue + * @param \UnitEnum|string|null $queue * @return int */ public function delayedSize($queue = null) { - return 0; + return $this->delayedJobs($queue)->count(); } /** * Get the number of reserved jobs. * - * @param string|null $queue + * @param \UnitEnum|string|null $queue * @return int */ public function reservedSize($queue = null) { - return 0; + return $this->reservedJobs($queue)->count(); + } + + /** + * Get the pending jobs for the given queue. + * + * @param \UnitEnum|string|null $queue + * @return \Illuminate\Support\Collection + */ + public function pendingJobs($queue = null): Collection + { + return $this->allPendingJobs()->whereStrict('queue', enum_value($queue))->values(); + } + + /** + * Get the delayed jobs for the given queue. + * + * @param \UnitEnum|string|null $queue + * @return \Illuminate\Support\Collection + */ + public function delayedJobs($queue = null): Collection + { + return $this->allDelayedJobs()->whereStrict('queue', enum_value($queue))->values(); + } + + /** + * Get the reserved jobs for the given queue. + * + * @param \UnitEnum|string|null $queue + * @return \Illuminate\Support\Collection + */ + public function reservedJobs($queue = null): Collection + { + return $this->allReservedJobs()->whereStrict('queue', enum_value($queue))->values(); + } + + /** + * Get all pending jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allPendingJobs(): Collection + { + return $this->inspectJobs($this->jobs); + } + + /** + * Get all delayed jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allDelayedJobs(): Collection + { + return $this->inspectJobs($this->delayed); + } + + /** + * Map an array of jobs to a collection of inspected jobs. + * + * @param array $jobs + * @return \Illuminate\Support\Collection + */ + protected function inspectJobs(array $jobs): Collection + { + return (new Collection($jobs)) + ->flatten(1) + ->map(fn ($data) => new InspectedJob( + uuid: null, + queue: $data['queue'], + name: is_object($data['job']) + ? (method_exists($data['job'], 'displayName') ? $data['job']->displayName() : get_class($data['job'])) + : $data['job'], + attempts: 0, + payload: [], + createdAt: null, + )); + } + + /** + * Get all reserved jobs across every queue. + * + * @return \Illuminate\Support\Collection + */ + public function allReservedJobs(): Collection + { + return $this->inspectJobs($this->reserved); } /** * Get the creation timestamp of the oldest pending job, excluding delayed jobs. * - * @param string|null $queue + * @param \UnitEnum|string|null $queue * @return int|null */ public function creationTimeOfOldestPendingJob($queue = null) @@ -472,11 +589,13 @@ class QueueFake extends QueueManager implements Fake, Queue * * @param string|object $job * @param mixed $data - * @param string|null $queue + * @param \UnitEnum|string|null $queue * @return mixed */ public function push($job, $data = '', $queue = null) { + $queue = enum_value($queue); + if ($this->shouldFakeJob($job)) { if ($job instanceof Closure) { $job = CallQueuedClosure::create($job); @@ -540,12 +659,14 @@ class QueueFake extends QueueManager implements Fake, Queue * Push a raw payload onto the queue. * * @param string $payload - * @param string|null $queue + * @param \UnitEnum|string|null $queue * @param array $options * @return mixed */ public function pushRaw($payload, $queue = null, array $options = []) { + $queue = enum_value($queue); + $this->rawPushes[] = [ 'payload' => $payload, 'queue' => $queue, @@ -559,18 +680,25 @@ class QueueFake extends QueueManager implements Fake, Queue * @param \DateTimeInterface|\DateInterval|int $delay * @param string|object $job * @param mixed $data - * @param string|null $queue + * @param \UnitEnum|string|null $queue * @return mixed */ public function later($delay, $job, $data = '', $queue = null) { + if ($this->shouldFakeJob($job)) { + $this->delayed[is_object($job) ? get_class($job) : $job][] = [ + 'job' => $job, + 'queue' => enum_value($queue), + ]; + } + return $this->push($job, $data, $queue); } /** * Push a new job onto the queue. * - * @param string $queue + * @param \UnitEnum|string $queue * @param string|object $job * @param mixed $data * @return mixed @@ -583,7 +711,7 @@ class QueueFake extends QueueManager implements Fake, Queue /** * Push a new job onto a specific queue after (n) seconds. * - * @param string $queue + * @param \UnitEnum|string $queue * @param \DateTimeInterface|\DateInterval|int $delay * @param string|object $job * @param mixed $data @@ -591,13 +719,34 @@ class QueueFake extends QueueManager implements Fake, Queue */ public function laterOn($queue, $delay, $job, $data = '') { - return $this->push($job, $data, $queue); + return $this->later($delay, $job, $data, $queue); + } + + /** + * Mark the given job as reserved. + * + * @param \Closure|string|object $job + * @param \UnitEnum|string|null $queue + * @return void + */ + public function reserve($job, $queue = null) + { + $queue = enum_value($queue); + + if ($job instanceof Closure) { + $job = CallQueuedClosure::create($job); + } + + $this->reserved[is_object($job) ? get_class($job) : $job][] = [ + 'job' => $this->serializeAndRestore ? $this->serializeAndRestoreJob($job) : $job, + 'queue' => $queue, + ]; } /** * Pop the next job off of the queue. * - * @param string|null $queue + * @param \UnitEnum|string|null $queue * @return \Illuminate\Contracts\Queue\Job|null */ public function pop($queue = null) @@ -610,7 +759,7 @@ class QueueFake extends QueueManager implements Fake, Queue * * @param array $jobs * @param mixed $data - * @param string|null $queue + * @param \UnitEnum|string|null $queue * @return mixed */ public function bulk($jobs, $data = '', $queue = null) @@ -680,6 +829,16 @@ class QueueFake extends QueueManager implements Fake, Queue $this->uniqueJobs = []; } + /** + * Clear all of the reserved jobs. + * + * @return void + */ + public function clearReserved() + { + $this->reserved = []; + } + /** * Get the connection name for the queue. * diff --git a/vendor/laravel/framework/src/Illuminate/Support/Traits/InteractsWithData.php b/vendor/laravel/framework/src/Illuminate/Support/Traits/InteractsWithData.php index b31e00505..acfaef285 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Traits/InteractsWithData.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Traits/InteractsWithData.php @@ -55,13 +55,7 @@ trait InteractsWithData $data = $this->all(); - foreach ($keys as $value) { - if (! Arr::has($data, $value)) { - return false; - } - } - - return true; + return array_all($keys, fn ($value) => Arr::has($data, $value)); } /** @@ -82,10 +76,13 @@ trait InteractsWithData /** * Apply the callback if the instance contains the given key. * + * @template TReturn + * @template TReturnDefault = never + * * @param string $key - * @param callable $callback - * @param callable|null $default - * @return $this|mixed + * @param callable(mixed): TReturn $callback + * @param (callable(): TReturnDefault)|null $default + * @return $this|TReturn|TReturnDefault */ public function whenHas($key, callable $callback, ?callable $default = null) { @@ -110,13 +107,7 @@ trait InteractsWithData { $keys = is_array($key) ? $key : func_get_args(); - foreach ($keys as $value) { - if ($this->isEmptyString($value)) { - return false; - } - } - - return true; + return array_all($keys, fn ($value) => ! $this->isEmptyString($value)); } /** @@ -129,13 +120,7 @@ trait InteractsWithData { $keys = is_array($key) ? $key : func_get_args(); - foreach ($keys as $value) { - if (! $this->isEmptyString($value)) { - return false; - } - } - - return true; + return array_all($keys, fn ($value) => $this->isEmptyString($value)); } /** @@ -148,22 +133,19 @@ trait InteractsWithData { $keys = is_array($keys) ? $keys : func_get_args(); - foreach ($keys as $key) { - if ($this->filled($key)) { - return true; - } - } - - return false; + return array_any($keys, fn ($key) => $this->filled($key)); } /** * Apply the callback if the instance contains a non-empty value for the given key. * + * @template TReturn + * @template TReturnDefault = never + * * @param string $key - * @param callable $callback - * @param callable|null $default - * @return $this|mixed + * @param callable(mixed): TReturn $callback + * @param (callable(): TReturnDefault)|null $default + * @return $this|TReturn|TReturnDefault */ public function whenFilled($key, callable $callback, ?callable $default = null) { @@ -178,6 +160,36 @@ trait InteractsWithData return $this; } + /** + * Apply the callback if the instance contains a valid enum value for the given key. + * + * @template TEnum of \BackedEnum + * @template TReturn + * @template TReturnDefault = never + * + * @param string $key + * @param class-string $enumClass + * @param callable(TEnum):TReturn $callback + * @param (callable(): TReturnDefault)|null $default + * @return $this|TReturn|TReturnDefault + */ + public function whenEnum($key, string $enumClass, callable $callback, ?callable $default = null) + { + if ($this->filled($key) && $this->isBackedEnum($enumClass)) { + $value = $enumClass::tryFrom(data_get($this->all(), $key)); + + if ($value !== null) { + return $callback($value) ?: $this; + } + } + + if ($default) { + return $default(); + } + + return $this; + } + /** * Determine if the instance is missing a given key. * @@ -194,10 +206,13 @@ trait InteractsWithData /** * Apply the callback if the instance is missing the given key. * + * @template TReturn + * @template TReturnDefault = never + * * @param string $key - * @param callable $callback - * @param callable|null $default - * @return $this|mixed + * @param callable(mixed): TReturn $callback + * @param (callable(): TReturnDefault)|null $default + * @return $this|TReturn|TReturnDefault */ public function whenMissing($key, callable $callback, ?callable $default = null) { @@ -347,7 +362,7 @@ trait InteractsWithData $unit = $unit instanceof Unit ? $unit : Unit::fromName($unit); - return $unit->interval((float) $value); + return CarbonInterval::fromString(number_format((float) $value, 10, '.', '').' '.$unit->name); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Support/Traits/Localizable.php b/vendor/laravel/framework/src/Illuminate/Support/Traits/Localizable.php index 1e9fa58c9..aa1f3309e 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Traits/Localizable.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Traits/Localizable.php @@ -9,9 +9,11 @@ trait Localizable /** * Run the callback with the given locale. * + * @template TReturn + * * @param string $locale - * @param \Closure $callback - * @return mixed + * @param \Closure(): TReturn $callback + * @return TReturn */ public function withLocale($locale, $callback) { diff --git a/vendor/laravel/framework/src/Illuminate/Support/Traits/ReadsClassAttributes.php b/vendor/laravel/framework/src/Illuminate/Support/Traits/ReadsClassAttributes.php new file mode 100644 index 000000000..f631a2c68 --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Support/Traits/ReadsClassAttributes.php @@ -0,0 +1,113 @@ +getDefaultProperties(); + + if (isset($target->{$property}) && $target->{$property} !== ($defaultProperties[$property] ?? null)) { + return $target->{$property}; + } + + if ($instance = $this->getAttributeInstance($target, $attributeClass, $attributeDeclaringClass)) { + if ($this->propertyOverridesAttribute($target, $reflection, $property, $attributeDeclaringClass)) { + return $target->{$property}; + } + + return $this->extractAttributeValue($instance); + } + + return $target->{$property} ?? $default; + } + + /** + * Extract the value from an attribute instance. + * + * @param object $instance + * @return mixed + */ + protected function extractAttributeValue($instance) + { + $properties = get_object_vars($instance); + + return $properties === [] ? true : reset($properties); + } + + /** + * Get an instance of the given attribute class from the target class or its parents. + * + * @param object $target + * @param class-string $attributeClass + * @param \ReflectionClass|null $declaringClass + * @return object|null + */ + protected function getAttributeInstance($target, string $attributeClass, ?ReflectionClass &$declaringClass = null) + { + $reflection = new ReflectionClass($target); + + try { + do { + $attributes = $reflection->getAttributes($attributeClass); + + if (count($attributes) > 0) { + $declaringClass = $reflection; + + return $attributes[0]->newInstance(); + } + + foreach ($reflection->getTraits() as $trait) { + $attributes = $trait->getAttributes($attributeClass); + + if (count($attributes) > 0) { + $declaringClass = $reflection; + + return $attributes[0]->newInstance(); + } + } + } while ($reflection = $reflection->getParentClass()); + } catch (Exception) { + // + } + + return null; + } + + /** + * Determine if a property declared on a child class overrides an inherited attribute. + * + * @param object $target + * @param \ReflectionClass $reflection + * @param string|null $property + * @param \ReflectionClass $attributeDeclaringClass + * @return bool + */ + protected function propertyOverridesAttribute($target, ReflectionClass $reflection, ?string $property, ReflectionClass $attributeDeclaringClass) + { + if (is_null($property) || ! $reflection->hasProperty($property)) { + return false; + } + + $property = $reflection->getProperty($property); + + return $property->isPublic() + && $property->isInitialized($target) + && $property->getDeclaringClass()->isSubclassOf($attributeDeclaringClass->getName()); + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Uri.php b/vendor/laravel/framework/src/Illuminate/Support/Uri.php index 56fa99be3..03ddc3ec2 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/Uri.php +++ b/vendor/laravel/framework/src/Illuminate/Support/Uri.php @@ -334,6 +334,14 @@ class Uri implements Htmlable, JsonSerializable, Responsable, Stringable return new static($this->uri->withFragment($fragment)); } + /** + * Remove the fragment from the URI. + */ + public function withoutFragment(): static + { + return new static($this->uri->withFragment(null)); + } + /** * Create a redirect HTTP response for the given URI. */ @@ -382,7 +390,7 @@ class Uri implements Htmlable, JsonSerializable, Responsable, Stringable return $this->value(); } - return Str::replace(Str::after($this->value(), '?'), $this->query()->decode(), $this->value()); + return Str::replace($this->query()->value(), $this->query()->decode(), $this->value()); } /** @@ -390,7 +398,15 @@ class Uri implements Htmlable, JsonSerializable, Responsable, Stringable */ public function value(): string { - return (string) $this; + return $this->toString(); + } + + /** + * Get the string representation of the URI. + */ + public function toString(): string + { + return $this->uri->toString(); } /** @@ -401,6 +417,14 @@ class Uri implements Htmlable, JsonSerializable, Responsable, Stringable return trim($this->value()) === ''; } + /** + * Determine if the URI is not an empty string. + */ + public function isNotEmpty(): bool + { + return ! $this->isEmpty(); + } + /** * Dump the string representation of the URI. * @@ -445,6 +469,6 @@ class Uri implements Htmlable, JsonSerializable, Responsable, Stringable */ public function __toString(): string { - return $this->uri->toString(); + return $this->toString(); } } diff --git a/vendor/laravel/framework/src/Illuminate/Support/ValidatedInput.php b/vendor/laravel/framework/src/Illuminate/Support/ValidatedInput.php index 4c863f0d7..9cbcbf2dd 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/ValidatedInput.php +++ b/vendor/laravel/framework/src/Illuminate/Support/ValidatedInput.php @@ -97,6 +97,20 @@ class ValidatedInput implements ValidatedData ); } + /** + * Retrieve a file from the validated inputs. + * + * @param string $key + * @param mixed $default + * @return \Illuminate\Http\UploadedFile|null + */ + public function file($key, $default = null) + { + $value = $this->input($key, $default); + + return $value instanceof \Illuminate\Http\UploadedFile ? $value : $default; + } + /** * Dump the items. * @@ -105,7 +119,7 @@ class ValidatedInput implements ValidatedData */ public function dump(...$keys) { - dump(count($keys) > 0 ? $this->only($keys) : $this->all()); + dump($keys !== [] ? $this->only($keys) : $this->all()); return $this; } diff --git a/vendor/laravel/framework/src/Illuminate/Support/composer.json b/vendor/laravel/framework/src/Illuminate/Support/composer.json index d81bd9601..07a3ddae2 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Support/composer.json @@ -2,39 +2,50 @@ "name": "illuminate/support", "description": "The Illuminate Support package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, "require": { - "php": "^8.2", + "php": "^8.3", "ext-ctype": "*", "ext-filter": "*", "ext-mbstring": "*", "doctrine/inflector": "^2.0", - "illuminate/collections": "^12.0", - "illuminate/conditionable": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/reflection": "^12.0", + "illuminate/collections": "^13.0", + "illuminate/conditionable": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/reflection": "^13.0", "nesbot/carbon": "^3.8.4", - "symfony/polyfill-php83": "^1.33", - "symfony/polyfill-php85": "^1.33", + "symfony/polyfill-php85": "^1.36", "voku/portable-ascii": "^2.0.2" }, - "conflict": { - "tightenco/collect": "<5.5.33" - }, "replace": { "spatie/once": "*" }, + "conflict": { + "tightenco/collect": "<5.5.33" + }, + "suggest": { + "illuminate/filesystem": "Required to use the Composer class (^13.0).", + "laravel/serializable-closure": "Required to use the once function (^2.0.10).", + "league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^2.7).", + "league/uri": "Required to use the Uri class (^7.5.1).", + "ramsey/uuid": "Required to use Str::uuid() (^4.7).", + "symfony/process": "Required to use the Composer class (^7.4 || ^8.0).", + "symfony/uid": "Required to use Str::ulid() (^7.4 || ^8.0).", + "symfony/var-dumper": "Required to use the dd function (^7.4 || ^8.0).", + "vlucas/phpdotenv": "Required to use the Env class and env helper (^5.6.1)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Support\\": "" @@ -44,24 +55,12 @@ "helpers.php" ] }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "suggest": { - "illuminate/filesystem": "Required to use the Composer class (^12.0).", - "laravel/serializable-closure": "Required to use the once function (^1.3|^2.0).", - "league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^2.7).", - "league/uri": "Required to use the Uri class (^7.5.1).", - "ramsey/uuid": "Required to use Str::uuid() (^4.7).", - "symfony/process": "Required to use the Composer class (^7.2).", - "symfony/uid": "Required to use Str::ulid() (^7.2).", - "symfony/var-dumper": "Required to use the dd function (^7.2).", - "vlucas/phpdotenv": "Required to use the Env class and env helper (^5.6.1)." - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Support/helpers.php b/vendor/laravel/framework/src/Illuminate/Support/helpers.php index 22f48b02e..1225db9d4 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/helpers.php +++ b/vendor/laravel/framework/src/Illuminate/Support/helpers.php @@ -280,7 +280,7 @@ if (! function_exists('optional')) { if (! function_exists('preg_replace_array')) { /** - * Replace a given pattern with each value in the array in sequentially. + * Replace a given pattern with each value in the array sequentially. * * @param string $pattern * @param array $replacements diff --git a/vendor/laravel/framework/src/Illuminate/Testing/Concerns/TestDatabases.php b/vendor/laravel/framework/src/Illuminate/Testing/Concerns/TestDatabases.php index a273ed129..284ce135d 100644 --- a/vendor/laravel/framework/src/Illuminate/Testing/Concerns/TestDatabases.php +++ b/vendor/laravel/framework/src/Illuminate/Testing/Concerns/TestDatabases.php @@ -44,7 +44,7 @@ trait TestDatabases }); ParallelTesting::setUpTestCase(function ($testCase) { - $uses = array_flip(class_uses_recursive(get_class($testCase))); + $uses = class_uses_recursive(get_class($testCase)); $databaseTraits = [ Testing\DatabaseMigrations::class, diff --git a/vendor/laravel/framework/src/Illuminate/Testing/Constraints/SeeInHtml.php b/vendor/laravel/framework/src/Illuminate/Testing/Constraints/SeeInHtml.php new file mode 100644 index 000000000..16740f19c --- /dev/null +++ b/vendor/laravel/framework/src/Illuminate/Testing/Constraints/SeeInHtml.php @@ -0,0 +1,137 @@ +content = $content; + $this->ordered = $ordered; + $this->negate = $negate; + } + + /** + * Determine if the rule passes validation. + * + * @param array $values + */ + public function matches($values): bool + { + $normalizedContent = $this->normalize($this->content); + + $position = 0; + + foreach ($values as $value) { + if (empty($value)) { + continue; + } + + $normalizedValue = $this->normalize($value); + + $valuePosition = mb_strpos($normalizedContent, $normalizedValue, $position); + + if ($this->negate) { + if ($valuePosition !== false) { + $this->failedValue = $value; + + return false; + } + + continue; + } + + if ($valuePosition === false || $valuePosition < $position) { + $this->failedValue = $value; + + return false; + } + + if ($this->ordered) { + $position = $valuePosition + mb_strlen($normalizedValue); + } + } + + return true; + } + + /** + * Get the description of the failure. + * + * @param array $values + */ + public function failureDescription($values): string + { + if ($this->negate) { + return sprintf( + '\'%s\' does not contain "%s".', + $this->content, + $this->failedValue + ); + } + + return sprintf( + '\'%s\' contains "%s"%s', + $this->content, + $this->failedValue, + $this->ordered ? ' in specified order.' : '.' + ); + } + + /** + * Normalize the given value. + */ + protected function normalize(string $value): ?string + { + $value = strip_tags($value); + $value = html_entity_decode($value, ENT_QUOTES, 'UTF-8'); + $value = trim($value); + $value = preg_replace('/\s+/u', ' ', $value); + + return $value; + } + + /** + * Get a string representation of the object. + */ + public function toString(): string + { + return (new ReflectionClass($this))->name; + } +} diff --git a/vendor/laravel/framework/src/Illuminate/Testing/Constraints/SeeInOrder.php b/vendor/laravel/framework/src/Illuminate/Testing/Constraints/SeeInOrder.php index 08d30ab82..88d337c3b 100644 --- a/vendor/laravel/framework/src/Illuminate/Testing/Constraints/SeeInOrder.php +++ b/vendor/laravel/framework/src/Illuminate/Testing/Constraints/SeeInOrder.php @@ -73,7 +73,7 @@ class SeeInOrder extends Constraint public function failureDescription($values): string { return sprintf( - 'Failed asserting that \'%s\' contains "%s" in specified order.', + '\'%s\' contains "%s" in specified order.', $this->content, $this->failedValue ); diff --git a/vendor/laravel/framework/src/Illuminate/Testing/PendingCommand.php b/vendor/laravel/framework/src/Illuminate/Testing/PendingCommand.php index 359677d26..455960bb2 100644 --- a/vendor/laravel/framework/src/Illuminate/Testing/PendingCommand.php +++ b/vendor/laravel/framework/src/Illuminate/Testing/PendingCommand.php @@ -341,9 +341,10 @@ class PendingCommand * * @param array>|Collection> $headers * @param array>|Collection>|null $rows - * @return $this * * @phpstan-param ($rows is null ? list>|Collection> : list>|Collection>) $headers + * + * @return $this */ public function expectsPromptsTable(array|Collection $headers, array|Collection|null $rows) { diff --git a/vendor/laravel/framework/src/Illuminate/Testing/TestComponent.php b/vendor/laravel/framework/src/Illuminate/Testing/TestComponent.php index 43138ee48..a263fa6dc 100644 --- a/vendor/laravel/framework/src/Illuminate/Testing/TestComponent.php +++ b/vendor/laravel/framework/src/Illuminate/Testing/TestComponent.php @@ -5,6 +5,7 @@ namespace Illuminate\Testing; use Illuminate\Support\Arr; use Illuminate\Support\Traits\Macroable; use Illuminate\Testing\Assert as PHPUnit; +use Illuminate\Testing\Constraints\SeeInHtml; use Illuminate\Testing\Constraints\SeeInOrder; use Stringable; @@ -112,11 +113,7 @@ class TestComponent implements Stringable $values = $escape ? array_map(e(...), $value) : $value; - $rendered = strip_tags($this->rendered); - - foreach ($values as $value) { - PHPUnit::assertStringContainsString((string) $value, $rendered); - } + PHPUnit::assertThat($values, new SeeInHtml($this->rendered)); return $this; } @@ -132,7 +129,7 @@ class TestComponent implements Stringable { $values = $escape ? array_map(e(...), $values) : $values; - PHPUnit::assertThat($values, new SeeInOrder(strip_tags($this->rendered))); + PHPUnit::assertThat($values, new SeeInHtml($this->rendered, true)); return $this; } diff --git a/vendor/laravel/framework/src/Illuminate/Testing/TestResponse.php b/vendor/laravel/framework/src/Illuminate/Testing/TestResponse.php index 783d0d226..435eca86a 100644 --- a/vendor/laravel/framework/src/Illuminate/Testing/TestResponse.php +++ b/vendor/laravel/framework/src/Illuminate/Testing/TestResponse.php @@ -19,6 +19,7 @@ use Illuminate\Support\Traits\Dumpable; use Illuminate\Support\Traits\Macroable; use Illuminate\Support\Traits\Tappable; use Illuminate\Support\ViewErrorBag; +use Illuminate\Testing\Constraints\SeeInHtml; use Illuminate\Testing\Constraints\SeeInOrder; use Illuminate\Testing\Fluent\AssertableJson; use Illuminate\Testing\TestResponseAssert as PHPUnit; @@ -687,6 +688,8 @@ class TestResponse implements ArrayAccess * * @param array $value * @return $this + * + * @throws \JsonException */ public function assertStreamedJsonContent($value) { @@ -764,11 +767,7 @@ class TestResponse implements ArrayAccess $values = $escape ? array_map(e(...), $value) : $value; - $content = strip_tags($this->getContent()); - - foreach ($values as $value) { - PHPUnit::withResponse($this)->assertStringContainsString((string) $value, $content); - } + PHPUnit::withResponse($this)->assertThat($values, new SeeInHtml($this->getContent())); return $this; } @@ -784,7 +783,7 @@ class TestResponse implements ArrayAccess { $values = $escape ? array_map(e(...), $values) : $values; - PHPUnit::withResponse($this)->assertThat($values, new SeeInOrder(strip_tags($this->getContent()))); + PHPUnit::withResponse($this)->assertThat($values, new SeeInHtml($this->getContent(), true)); return $this; } @@ -833,11 +832,7 @@ class TestResponse implements ArrayAccess $values = $escape ? array_map(e(...), $value) : $value; - $content = strip_tags($this->getContent()); - - foreach ($values as $value) { - PHPUnit::withResponse($this)->assertStringNotContainsString((string) $value, $content); - } + PHPUnit::withResponse($this)->assertThat($values, new SeeInHtml($this->getContent(), negate: true)); return $this; } @@ -882,6 +877,34 @@ class TestResponse implements ArrayAccess return $this; } + /** + * Assert that the expected values and types exist at the given paths in the response. + * + * @return $this + */ + public function assertJsonPaths(array $paths) + { + foreach ($paths as $path => $expected) { + $this->assertJsonPath($path, $expected); + } + + return $this; + } + + /** + * Assert that the given paths in the response contain all of the expected values without looking at the order. + * + * @return $this + */ + public function assertJsonPathsCanonicalizing(array $paths) + { + foreach ($paths as $path => $expected) { + $this->assertJsonPathCanonicalizing($path, $expected); + } + + return $this; + } + /** * Assert that the given path in the response contains all of the expected values without looking at the order. * @@ -990,6 +1013,20 @@ class TestResponse implements ArrayAccess return $this; } + /** + * Assert that the response does not contain the given paths. + * + * @return $this + */ + public function assertJsonMissingPaths(array $paths) + { + foreach ($paths as $path) { + $this->assertJsonMissingPath($path); + } + + return $this; + } + /** * Assert that the response has a given JSON structure. * @@ -1621,6 +1658,30 @@ class TestResponse implements ArrayAccess return $this; } + /** + * Assert that the session is missing a given key in the flashed input array. + * + * @param string|array $key + * @return $this + */ + public function assertSessionMissingInput($key) + { + if (is_array($key)) { + foreach ($key as $k) { + $this->assertSessionMissingInput($k); + } + + return $this; + } + + PHPUnit::withResponse($this)->assertFalse( + $this->session()->hasOldInput($key), + "Session has unexpected key [{$key}]." + ); + + return $this; + } + /** * Assert that the session has the given errors. * @@ -1687,6 +1748,8 @@ class TestResponse implements ArrayAccess * Assert that the session has no errors. * * @return $this + * + * @throws \JsonException */ public function assertSessionHasNoErrors() { diff --git a/vendor/laravel/framework/src/Illuminate/Testing/TestView.php b/vendor/laravel/framework/src/Illuminate/Testing/TestView.php index 4c3860e0a..3469363b4 100644 --- a/vendor/laravel/framework/src/Illuminate/Testing/TestView.php +++ b/vendor/laravel/framework/src/Illuminate/Testing/TestView.php @@ -8,6 +8,7 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Arr; use Illuminate\Support\Traits\Macroable; use Illuminate\Testing\Assert as PHPUnit; +use Illuminate\Testing\Constraints\SeeInHtml; use Illuminate\Testing\Constraints\SeeInOrder; use Illuminate\View\View; use Stringable; @@ -189,11 +190,7 @@ class TestView implements Stringable $values = $escape ? array_map(e(...), $value) : $value; - $rendered = strip_tags($this->rendered); - - foreach ($values as $value) { - PHPUnit::assertStringContainsString((string) $value, $rendered); - } + PHPUnit::assertThat($values, new SeeInHtml($this->rendered)); return $this; } @@ -209,7 +206,7 @@ class TestView implements Stringable { $values = $escape ? array_map(e(...), $values) : $values; - PHPUnit::assertThat($values, new SeeInOrder(strip_tags($this->rendered))); + PHPUnit::assertThat($values, new SeeInHtml($this->rendered, true)); return $this; } @@ -258,11 +255,7 @@ class TestView implements Stringable $values = $escape ? array_map(e(...), $value) : $value; - $rendered = strip_tags($this->rendered); - - foreach ($values as $value) { - PHPUnit::assertStringNotContainsString((string) $value, $rendered); - } + PHPUnit::assertThat($values, new SeeInHtml($this->rendered, negate: true)); return $this; } diff --git a/vendor/laravel/framework/src/Illuminate/Testing/composer.json b/vendor/laravel/framework/src/Illuminate/Testing/composer.json index ced7b8186..208c8620c 100644 --- a/vendor/laravel/framework/src/Illuminate/Testing/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Testing/composer.json @@ -2,46 +2,45 @@ "name": "illuminate/testing", "description": "The Illuminate Testing package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "ext-mbstring": "*", - "illuminate/collections": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/support": "^12.0", - "symfony/polyfill-php83": "^1.33" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "ext-mbstring": "*", + "illuminate/collections": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/support": "^13.0" + }, + "suggest": { + "brianium/paratest": "Required to run tests in parallel (^7.0 || ^8.0).", + "illuminate/console": "Required to assert console commands (^13.0).", + "illuminate/database": "Required to assert databases (^13.0).", + "illuminate/http": "Required to assert responses (^13.0).", + "mockery/mockery": "Required to use mocking (^1.6).", + "phpunit/phpunit": "Required to use assertions and run tests (^11.5.50 || ^12.5.8)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Testing\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "suggest": { - "brianium/paratest": "Required to run tests in parallel (^7.0|^8.0).", - "illuminate/console": "Required to assert console commands (^12.0).", - "illuminate/database": "Required to assert databases (^12.0).", - "illuminate/http": "Required to assert responses (^12.0).", - "mockery/mockery": "Required to use mocking (^1.6).", - "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.5.3|^12.0.1)." - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Translation/ArrayLoader.php b/vendor/laravel/framework/src/Illuminate/Translation/ArrayLoader.php index 117e0440e..442680920 100644 --- a/vendor/laravel/framework/src/Illuminate/Translation/ArrayLoader.php +++ b/vendor/laravel/framework/src/Illuminate/Translation/ArrayLoader.php @@ -72,7 +72,7 @@ class ArrayLoader implements Loader /** * Get an array of all the registered namespaces. * - * @return array + * @return array */ public function namespaces() { diff --git a/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php b/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php index e30fdf7c4..c179d77d0 100755 --- a/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php +++ b/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php @@ -33,7 +33,7 @@ class FileLoader implements Loader /** * All of the namespace hints. * - * @var array + * @var array */ protected $hints = []; @@ -174,7 +174,7 @@ class FileLoader implements Loader /** * Get an array of all the registered namespaces. * - * @return array + * @return array */ public function namespaces() { diff --git a/vendor/laravel/framework/src/Illuminate/Translation/Translator.php b/vendor/laravel/framework/src/Illuminate/Translation/Translator.php index 055c2a23c..1641f68ce 100755 --- a/vendor/laravel/framework/src/Illuminate/Translation/Translator.php +++ b/vendor/laravel/framework/src/Illuminate/Translation/Translator.php @@ -189,6 +189,44 @@ class Translator extends NamespacedItemResolver implements TranslatorContract return $this->makeReplacements($line ?: $key, $replace); } + /** + * Get the specified string translation value. + * + * @throws \InvalidArgumentException + */ + public function string(string $key, array $replace = [], ?string $locale = null, bool $fallback = true): string + { + $value = $this->get($key, $replace, $locale, $fallback); + + if (! is_string($value)) { + throw new InvalidArgumentException( + sprintf('Translation value for key [%s] must be a string, %s given.', $key, gettype($value)) + ); + } + + return $value; + } + + /** + * Get the specified array translation value. + * + * @return array + * + * @throws \InvalidArgumentException + */ + public function array(string $key, array $replace = [], ?string $locale = null, bool $fallback = true): array + { + $value = $this->get($key, $replace, $locale, $fallback); + + if (! is_array($value)) { + throw new InvalidArgumentException( + sprintf('Translation value for key [%s] must be an array, %s given.', $key, gettype($value)) + ); + } + + return $value; + } + /** * Get a translation according to an integer value. * @@ -252,7 +290,7 @@ class Translator extends NamespacedItemResolver implements TranslatorContract if (is_string($line)) { return $this->makeReplacements($line, $replace); - } elseif (is_array($line) && count($line) > 0) { + } elseif (is_array($line) && $line !== []) { array_walk_recursive($line, function (&$value, $key) use ($replace) { $value = $this->makeReplacements($value, $replace); }); @@ -386,7 +424,7 @@ class Translator extends NamespacedItemResolver implements TranslatorContract * Register a callback that is responsible for handling missing translation keys. * * @param callable|null $callback - * @return static + * @return $this */ public function handleMissingKeysUsing(?callable $callback) { diff --git a/vendor/laravel/framework/src/Illuminate/Translation/composer.json b/vendor/laravel/framework/src/Illuminate/Translation/composer.json index 1b0dfa7a5..6701c8db3 100755 --- a/vendor/laravel/framework/src/Illuminate/Translation/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Translation/composer.json @@ -2,37 +2,37 @@ "name": "illuminate/translation", "description": "The Illuminate Translation package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "illuminate/collections": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/filesystem": "^12.0", - "illuminate/support": "^12.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "illuminate/collections": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/filesystem": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/support": "^13.0" + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Translation\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php b/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php index 36ba2b2e0..834e27d2c 100644 --- a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php @@ -127,7 +127,7 @@ trait ValidatesAttributes try { $records = $this->getDnsRecords($url.'.', DNS_A | DNS_AAAA); - if (is_array($records) && count($records) > 0) { + if (is_array($records) && $records !== []) { return true; } } catch (Exception) { @@ -159,7 +159,7 @@ trait ValidatesAttributes */ public function validateAscii($attribute, $value) { - return Str::isAscii($value); + return is_string($value) && Str::isAscii($value); } /** @@ -488,7 +488,7 @@ trait ValidatesAttributes * * @param string $attribute * @param mixed $value - * @param array{0: 'strict'} $parameters + * @param array{0?: 'strict'} $parameters * @return bool */ public function validateBoolean($attribute, $value, $parameters) @@ -507,7 +507,7 @@ trait ValidatesAttributes * * @param string $attribute * @param mixed $value - * @param array{0: string} $parameters + * @param array{0?: string} $parameters * @return bool */ public function validateConfirmed($attribute, $value, $parameters) @@ -673,7 +673,7 @@ trait ValidatesAttributes $matches = []; - if (preg_match('/^[+-]?\d*\.?(\d*)$/', $value, $matches) !== 1) { + if (preg_match('/^[+-]?\d*\.?(\d*)$/', (string) $value, $matches) !== 1) { return false; } @@ -741,6 +741,10 @@ trait ValidatesAttributes { $this->requireParameterCount(2, $parameters, 'digits_between'); + if (! is_string($value) && ! is_numeric($value)) { + return false; + } + $length = strlen((string) $value); return ! preg_match('/[^0-9]/', $value) @@ -846,7 +850,9 @@ trait ValidatesAttributes [1, 1], array_filter(sscanf($parameters['min_ratio'], '%f/%d')) ); - return ($width / $height) > ($minNumerator / $minDenominator); + $precision = 1 / (max(($width + $height) / 2, $height) + 1); + + return ($minNumerator / $minDenominator) - ($width / $height) > $precision; } /** @@ -867,7 +873,9 @@ trait ValidatesAttributes [1, 1], array_filter(sscanf($parameters['max_ratio'], '%f/%d')) ); - return ($width / $height) < ($maxNumerator / $maxDenominator); + $precision = 1 / (max(($width + $height) / 2, $height) + 1); + + return ($width / $height) - ($maxNumerator / $maxDenominator) > $precision; } /** @@ -973,6 +981,8 @@ trait ValidatesAttributes * @param mixed $value * @param array $parameters * @return bool + * + * @throws \InvalidArgumentException */ public function validateEncoding($attribute, $value, $parameters) { @@ -1450,12 +1460,11 @@ trait ValidatesAttributes * * @param string $attribute * @param mixed $value - * @param array $parameters * @return bool */ - public function validateLowercase($attribute, $value, $parameters) + public function validateLowercase($attribute, $value) { - return Str::lower($value) === $value; + return is_string($value) && Str::lower($value) === $value; } /** @@ -1463,12 +1472,11 @@ trait ValidatesAttributes * * @param string $attribute * @param mixed $value - * @param array $parameters * @return bool */ - public function validateUppercase($attribute, $value, $parameters) + public function validateUppercase($attribute, $value) { - return Str::upper($value) === $value; + return is_string($value) && Str::upper($value) === $value; } /** @@ -1480,7 +1488,7 @@ trait ValidatesAttributes */ public function validateHexColor($attribute, $value) { - return preg_match('/^#(?:(?:[0-9a-f]{3}){1,2}|(?:[0-9a-f]{4}){1,2})$/i', $value) === 1; + return is_string($value) && preg_match('/^#(?:(?:[0-9a-f]{3}){1,2}|(?:[0-9a-f]{4}){1,2})$/i', $value) === 1; } /** @@ -1519,7 +1527,7 @@ trait ValidatesAttributes } } - return count(array_diff($value, $parameters)) === 0; + return array_diff($value, $parameters) === []; } return ! is_array($value) && in_array((string) $value, $parameters); @@ -1695,9 +1703,13 @@ trait ValidatesAttributes { $this->requireParameterCount(1, $parameters, 'max_digits'); + if (! is_string($value) && ! is_numeric($value)) { + return false; + } + $length = strlen((string) $value); - return ! preg_match('/[^0-9]/', $value) && $length <= $parameters[0]; + return ! preg_match('/[^0-9]/', (string) $value) && $length <= $parameters[0]; } /** @@ -1801,9 +1813,13 @@ trait ValidatesAttributes { $this->requireParameterCount(1, $parameters, 'min_digits'); + if (! is_string($value) && ! is_numeric($value)) { + return false; + } + $length = strlen((string) $value); - return ! preg_match('/[^0-9]/', $value) && $length >= $parameters[0]; + return ! preg_match('/[^0-9]/', (string) $value) && $length >= $parameters[0]; } /** @@ -1906,6 +1922,8 @@ trait ValidatesAttributes * @param mixed $value * @param array $parameters * @return bool + * + * @throws \Illuminate\Support\Exceptions\MathException */ public function validateMultipleOf($attribute, $value, $parameters) { @@ -1967,7 +1985,7 @@ trait ValidatesAttributes * * @param string $attribute * @param mixed $value - * @param array{0: 'strict'} $parameters + * @param array{0?: 'strict'} $parameters * @return bool */ public function validateNumeric($attribute, $value, array $parameters) @@ -2552,13 +2570,7 @@ trait ValidatesAttributes */ protected function anyFailingRequired(array $attributes) { - foreach ($attributes as $key) { - if (! $this->validateRequired($key, $this->getValue($key))) { - return true; - } - } - - return false; + return array_any($attributes, fn ($key) => ! $this->validateRequired($key, $this->getValue($key))); } /** @@ -2569,13 +2581,7 @@ trait ValidatesAttributes */ protected function allFailingRequired(array $attributes) { - foreach ($attributes as $key) { - if ($this->validateRequired($key, $this->getValue($key))) { - return false; - } - } - - return true; + return array_all($attributes, fn ($key) => ! $this->validateRequired($key, $this->getValue($key))); } /** @@ -2636,7 +2642,11 @@ trait ValidatesAttributes */ public function validateStartsWith($attribute, $value, $parameters) { - return Str::startsWith($value, $parameters); + if (is_string($value) || is_numeric($value)) { + return Str::startsWith((string) $value, $parameters); + } + + return false; } /** @@ -2649,7 +2659,11 @@ trait ValidatesAttributes */ public function validateDoesntStartWith($attribute, $value, $parameters) { - return ! Str::startsWith($value, $parameters); + if (is_string($value) || is_numeric($value)) { + return ! Str::startsWith((string) $value, $parameters); + } + + return false; } /** @@ -2662,7 +2676,11 @@ trait ValidatesAttributes */ public function validateEndsWith($attribute, $value, $parameters) { - return Str::endsWith($value, $parameters); + if (is_string($value) || is_numeric($value)) { + return Str::endsWith((string) $value, $parameters); + } + + return false; } /** @@ -2675,7 +2693,11 @@ trait ValidatesAttributes */ public function validateDoesntEndWith($attribute, $value, $parameters) { - return ! Str::endsWith($value, $parameters); + if (is_string($value) || is_numeric($value)) { + return ! Str::endsWith((string) $value, $parameters); + } + + return false; } /** @@ -2812,7 +2834,7 @@ trait ValidatesAttributes '>' => $first > $second, '<=' => $first <= $second, '>=' => $first >= $second, - '=' => $first == $second, + '=' => ($first === $second) || ($first == $second && ! is_null($first) && ! is_null($second)), default => throw new InvalidArgumentException, }; } diff --git a/vendor/laravel/framework/src/Illuminate/Validation/NotPwnedVerifier.php b/vendor/laravel/framework/src/Illuminate/Validation/NotPwnedVerifier.php index a6dbaa3c7..20088f7e6 100644 --- a/vendor/laravel/framework/src/Illuminate/Validation/NotPwnedVerifier.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/NotPwnedVerifier.php @@ -55,7 +55,7 @@ class NotPwnedVerifier implements UncompromisedVerifier ->contains(function ($line) use ($hash, $hashPrefix, $threshold) { [$hashSuffix, $count] = explode(':', $line); - return $hashPrefix.$hashSuffix == $hash && $count > $threshold; + return $hashPrefix.$hashSuffix === $hash && $count > $threshold; }); } diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rule.php b/vendor/laravel/framework/src/Illuminate/Validation/Rule.php index b315b7411..fa652eefc 100644 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rule.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/Rule.php @@ -159,7 +159,7 @@ class Rule /** * Get a required_unless rule builder instance. * - * @param (\Closure(): bool)|bool $callback + * @param (\Closure(): bool)|bool|null $callback * @return \Illuminate\Validation\Rules\RequiredUnless */ public static function requiredUnless($callback) @@ -168,7 +168,7 @@ class Rule } /** - * Get a exclude_if rule builder instance. + * Get an exclude_if rule builder instance. * * @param (\Closure(): bool)|bool $callback * @return \Illuminate\Validation\Rules\ExcludeIf @@ -179,7 +179,7 @@ class Rule } /** - * Get a exclude_unless rule builder instance. + * Get an exclude_unless rule builder instance. * * @param (\Closure(): bool)|bool $callback * @return \Illuminate\Validation\Rules\ExcludeUnless diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Contains.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/Contains.php index ca9877316..3ff34ac58 100644 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Contains.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/Rules/Contains.php @@ -40,7 +40,7 @@ class Contains implements Stringable $values = array_map(function ($value) { $value = enum_value($value); - return '"'.str_replace('"', '""', $value).'"'; + return '"'.str_replace('"', '""', (string) $value).'"'; }, $this->values); return 'contains:'.implode(',', $values); diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/DatabaseRule.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/DatabaseRule.php index bc879ee0e..ba723afd8 100644 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/DatabaseRule.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/Rules/DatabaseRule.php @@ -102,7 +102,7 @@ trait DatabaseRule $value = enum_value($value); - $this->wheres[] = compact('column', 'value'); + $this->wheres[] = ['column' => $column, 'value' => $value]; return $this; } diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/DoesntContain.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/DoesntContain.php index 26761d820..1cddd8844 100644 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/DoesntContain.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/Rules/DoesntContain.php @@ -10,7 +10,7 @@ use function Illuminate\Support\enum_value; class DoesntContain implements Stringable { /** - * The values that should be contained in the attribute. + * The values that should not be contained in the attribute. * * @var array */ @@ -40,7 +40,7 @@ class DoesntContain implements Stringable $values = array_map(function ($value) { $value = enum_value($value); - return '"'.str_replace('"', '""', $value).'"'; + return '"'.str_replace('"', '""', (string) $value).'"'; }, $this->values); return 'doesnt_contain:'.implode(',', $values); diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Email.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/Email.php index a73ca9d02..05fbcf7d5 100644 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Email.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/Rules/Email.php @@ -63,9 +63,7 @@ class Email implements Rule, DataAwareRule, ValidatorAwareRule * If no arguments are passed, the default email rule configuration will be returned. * * @param static|callable|null $callback - * @return static|void - * - * @phpstan-return ($callback is null ? static : ($callback is callable ? void : ($callback is static ? void : never))) + * @return ($callback is null ? static : void) * * @throws \InvalidArgumentException */ diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/File.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/File.php index b3968e035..21a89f870 100644 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/File.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/Rules/File.php @@ -92,7 +92,7 @@ class File implements Rule, DataAwareRule, ValidatorAwareRule * If no arguments are passed, the default file rule configuration will be returned. * * @param static|callable|null $callback - * @return static|void + * @return ($callback is null ? static : void) * * @throws \InvalidArgumentException */ @@ -341,11 +341,11 @@ class File implements Rule, DataAwareRule, ValidatorAwareRule $mimes = array_diff($this->allowedMimetypes, $mimetypes); - if (count($mimetypes) > 0) { + if ($mimetypes !== []) { $rules[] = 'mimetypes:'.implode(',', $mimetypes); } - if (count($mimes) > 0) { + if ($mimes !== []) { $rules[] = 'mimes:'.implode(',', $mimes); } diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/In.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/In.php index 7e2d83a29..c001c05b1 100644 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/In.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/Rules/In.php @@ -49,7 +49,7 @@ class In implements Stringable $values = array_map(function ($value) { $value = enum_value($value); - return '"'.str_replace('"', '""', $value).'"'; + return '"'.str_replace('"', '""', (string) $value).'"'; }, $this->values); return $this->rule.':'.implode(',', $values); diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php index 290b84e94..441c90d03 100644 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php @@ -47,7 +47,7 @@ class NotIn implements Stringable $values = array_map(function ($value) { $value = enum_value($value); - return '"'.str_replace('"', '""', $value).'"'; + return '"'.str_replace('"', '""', (string) $value).'"'; }, $this->values); return $this->rule.':'.implode(',', $values); diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Password.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/Password.php index 9e08b9b7d..f34d0e4cf 100644 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Password.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/Rules/Password.php @@ -141,7 +141,7 @@ class Password implements DataAwareRule, ImplicitRule, IteratorAggregate, Rule, * If no arguments are passed, the default password rule configuration will be returned. * * @param static|callable|null $callback - * @return static|void + * @return ($callback is null ? static : void) * * @throws \InvalidArgumentException */ @@ -230,7 +230,7 @@ class Password implements DataAwareRule, ImplicitRule, IteratorAggregate, Rule, * Set the minimum size of the password. * * @param int $size - * @return $this + * @return static */ public static function min($size) { @@ -431,6 +431,39 @@ class Password implements DataAwareRule, ImplicitRule, IteratorAggregate, Rule, ]; } + /** + * Convert the password rule to a passwordrules HTML attribute string. + * + * @return string + * + * @see https://developer.apple.com/password-rules/ + */ + public function toPasswordRulesString() + { + $rules = ['minlength: '.$this->min]; + + if ($this->max) { + $rules[] = 'maxlength: '.$this->max; + } + + if ($this->mixedCase) { + $rules[] = 'required: lower'; + $rules[] = 'required: upper'; + } elseif ($this->letters) { + $rules[] = 'required: lower'; + } + + if ($this->numbers) { + $rules[] = 'required: digit'; + } + + if ($this->symbols) { + $rules[] = 'required: special'; + } + + return implode('; ', $rules).';'; + } + /** * Get an iterator for the password validation rules. * diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/RequiredUnless.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/RequiredUnless.php index 56f470091..f41cb6d7e 100644 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/RequiredUnless.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/Rules/RequiredUnless.php @@ -18,12 +18,16 @@ class RequiredUnless implements Stringable /** * Create a new required validation rule based on a condition. * - * @param (\Closure(): bool)|bool $condition + * @param (\Closure(): bool)|bool|null $condition * * @throws \InvalidArgumentException */ public function __construct($condition) { + if (is_null($condition)) { + $condition = false; + } + if ($condition instanceof Closure || is_bool($condition)) { $this->condition = $condition; } else { diff --git a/vendor/laravel/framework/src/Illuminate/Validation/ValidationException.php b/vendor/laravel/framework/src/Illuminate/Validation/ValidationException.php index ea46eb5ad..25ccc2876 100644 --- a/vendor/laravel/framework/src/Illuminate/Validation/ValidationException.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/ValidationException.php @@ -95,7 +95,7 @@ class ValidationException extends Exception if ($count = count($messages)) { $pluralized = $count === 1 ? 'error' : 'errors'; - $message .= ' '.$validator->getTranslator()->choice("(and :count more $pluralized)", $count, compact('count')); + $message .= ' '.$validator->getTranslator()->choice("(and :count more $pluralized)", $count, ['count' => $count]); } return $message; diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Validator.php b/vendor/laravel/framework/src/Illuminate/Validation/Validator.php index b8c3e6691..36164df9d 100755 --- a/vendor/laravel/framework/src/Illuminate/Validation/Validator.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/Validator.php @@ -622,8 +622,10 @@ class Validator implements ValidatorContract /** * Get a validated input container for the validated input. * - * @param array|null $keys - * @return \Illuminate\Support\ValidatedInput|array + * @param array|null $keys + * @return ($keys is array ? array : \Illuminate\Support\ValidatedInput) + * + * @throws \Illuminate\Validation\ValidationException */ public function safe(?array $keys = null) { diff --git a/vendor/laravel/framework/src/Illuminate/Validation/composer.json b/vendor/laravel/framework/src/Illuminate/Validation/composer.json index 9c9567444..93f417795 100755 --- a/vendor/laravel/framework/src/Illuminate/Validation/composer.json +++ b/vendor/laravel/framework/src/Illuminate/Validation/composer.json @@ -2,49 +2,48 @@ "name": "illuminate/validation", "description": "The Illuminate Validation package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, "require": { - "php": "^8.2", + "php": "^8.3", "ext-filter": "*", "ext-mbstring": "*", - "brick/math": "^0.11|^0.12|^0.13|^0.14", - "egulias/email-validator": "^3.2.5|^4.0", - "illuminate/collections": "^12.0", - "illuminate/container": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/support": "^12.0", - "illuminate/translation": "^12.0", - "symfony/http-foundation": "^7.2", - "symfony/mime": "^7.2", - "symfony/polyfill-php83": "^1.33" + "brick/math": "^0.14.2 || ^0.15 || ^0.16 || ^0.17 || ^0.18", + "egulias/email-validator": "^4.0", + "illuminate/collections": "^13.0", + "illuminate/container": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/support": "^13.0", + "illuminate/translation": "^13.0", + "symfony/http-foundation": "^7.4.0 || ^8.0.0", + "symfony/mime": "^7.4.0 || ^8.0.0" }, + "suggest": { + "illuminate/database": "Required to use the database presence verifier (^13.0).", + "ramsey/uuid": "Required to use Validator::validateUuid() (^4.7)." + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\Validation\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, - "suggest": { - "illuminate/database": "Required to use the database presence verifier (^12.0).", - "ramsey/uuid": "Required to use Validator::validateUuid() (^4.7)." - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php index 6f6f6f71b..ba6b6b0de 100644 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php +++ b/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php @@ -205,6 +205,14 @@ class BladeCompiler extends Compiler implements CompilerInterface if ($compiledHash !== hash('xxh128', $contents)) { $this->files->replace($compiledPath, $contents); + + return; + } + + $lastModified = $this->files->lastModified($this->getPath()); + + if ($lastModified >= $this->files->lastModified($compiledPath)) { + touch($compiledPath, $lastModified + 1); } } } @@ -307,7 +315,7 @@ class BladeCompiler extends Compiler implements CompilerInterface // If there are any footer lines that need to get added to a template we will // add them here at the end of the template. This gets used mainly for the // template inheritance via the extends keyword that should be appended. - if (count($this->footer) > 0) { + if ($this->footer !== []) { $result = $this->addFooters($result); } diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesHelpers.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesHelpers.php index f217f59be..ba948ac14 100644 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesHelpers.php +++ b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesHelpers.php @@ -75,4 +75,19 @@ trait CompilesHelpers return "reactRefresh(); ?>"; } + + /** + * Compile the "fonts" statements into valid PHP. + * + * @param string|null $arguments + * @return string + */ + protected function compileFonts($arguments) + { + $arguments ??= '()'; + + $class = Vite::class; + + return "fonts{$arguments}; ?>"; + } } diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php index ab6d867d0..2c91ad871 100644 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php +++ b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php @@ -27,7 +27,7 @@ trait CompilesLoops preg_match('/\( *(.+) +as +(.+)\)$/is', $expression ?? '', $matches); - if (count($matches) === 0) { + if ($matches === []) { throw new ViewCompilationException('Malformed @forelse statement.'); } @@ -102,7 +102,7 @@ trait CompilesLoops { preg_match('/\( *(.+) +as +(.*)\)$/is', $expression ?? '', $matches); - if (count($matches) === 0) { + if ($matches === []) { throw new ViewCompilationException('Malformed @foreach statement.'); } diff --git a/vendor/laravel/framework/src/Illuminate/View/ComponentAttributeBag.php b/vendor/laravel/framework/src/Illuminate/View/ComponentAttributeBag.php index f6acf866f..0072c84e7 100644 --- a/vendor/laravel/framework/src/Illuminate/View/ComponentAttributeBag.php +++ b/vendor/laravel/framework/src/Illuminate/View/ComponentAttributeBag.php @@ -82,7 +82,7 @@ class ComponentAttributeBag implements Arrayable, ArrayAccess, IteratorAggregate * * @param string|null $key * @param mixed $default - * @return mixed + * @return ($key is null ? array : mixed) */ protected function data($key = null, $default = null) { diff --git a/vendor/laravel/framework/src/Illuminate/View/ComponentSlot.php b/vendor/laravel/framework/src/Illuminate/View/ComponentSlot.php index 3a3ecd2e5..0bd1ddc41 100644 --- a/vendor/laravel/framework/src/Illuminate/View/ComponentSlot.php +++ b/vendor/laravel/framework/src/Illuminate/View/ComponentSlot.php @@ -83,6 +83,8 @@ class ComponentSlot implements Htmlable, Stringable * * @param callable|string|null $callable * @return bool + * + * @throws \InvalidArgumentException */ public function hasActualContent(callable|string|null $callable = null) { diff --git a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php b/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php index c0a529c02..be88c4edf 100644 --- a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php +++ b/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php @@ -217,5 +217,7 @@ trait ManagesComponents $this->componentStack = []; $this->componentData = []; $this->currentComponentData = []; + $this->slots = []; + $this->slotStack = []; } } diff --git a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php b/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php index aecff30f7..0991a007a 100644 --- a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php +++ b/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php @@ -155,11 +155,11 @@ trait ManagesStacks $output = ''; if (isset($this->prepends[$section])) { - $output .= implode(array_reverse($this->prepends[$section])); + $output .= implode('', array_reverse($this->prepends[$section])); } if (isset($this->pushes[$section])) { - $output .= implode($this->pushes[$section]); + $output .= implode('', $this->pushes[$section]); } return $output; diff --git a/vendor/laravel/framework/src/Illuminate/View/DynamicComponent.php b/vendor/laravel/framework/src/Illuminate/View/DynamicComponent.php index 3de144129..324d30698 100644 --- a/vendor/laravel/framework/src/Illuminate/View/DynamicComponent.php +++ b/vendor/laravel/framework/src/Illuminate/View/DynamicComponent.php @@ -135,11 +135,7 @@ EOF; */ protected function classForComponent() { - if (isset(static::$componentClasses[$this->component])) { - return static::$componentClasses[$this->component]; - } - - return static::$componentClasses[$this->component] = + return static::$componentClasses[$this->component] ?? static::$componentClasses[$this->component] = $this->compiler()->componentClass($this->component); } diff --git a/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php b/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php index 03355012c..20b1c5dc9 100755 --- a/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php +++ b/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php @@ -62,20 +62,20 @@ class FileViewFinder implements ViewFinderInterface /** * Get the fully-qualified location of the view. * - * @param string $name + * @param string $view * @return string */ - public function find($name) + public function find($view) { - if (isset($this->views[$name])) { - return $this->views[$name]; + if (isset($this->views[$view])) { + return $this->views[$view]; } - if ($this->hasHintInformation($name = trim($name))) { - return $this->views[$name] = $this->findNamespacedView($name); + if ($this->hasHintInformation($view = trim($view))) { + return $this->views[$view] = $this->findNamespacedView($view); } - return $this->views[$name] = $this->findInPaths($name, $this->paths); + return $this->views[$view] = $this->findInPaths($view, $this->paths); } /** diff --git a/vendor/laravel/framework/src/Illuminate/View/View.php b/vendor/laravel/framework/src/Illuminate/View/View.php index c388d23d5..6793e8afc 100755 --- a/vendor/laravel/framework/src/Illuminate/View/View.php +++ b/vendor/laravel/framework/src/Illuminate/View/View.php @@ -372,46 +372,46 @@ class View implements ArrayAccess, Htmlable, Stringable, ViewContract /** * Determine if a piece of data is bound. * - * @param string $key + * @param string $offset * @return bool */ - public function offsetExists($key): bool + public function offsetExists($offset): bool { - return array_key_exists($key, $this->data); + return array_key_exists($offset, $this->data); } /** * Get a piece of bound data to the view. * - * @param string $key + * @param string $offset * @return mixed */ - public function offsetGet($key): mixed + public function offsetGet($offset): mixed { - return $this->data[$key]; + return $this->data[$offset]; } /** * Set a piece of data on the view. * - * @param string $key + * @param string $offset * @param mixed $value * @return void */ - public function offsetSet($key, $value): void + public function offsetSet($offset, $value): void { - $this->with($key, $value); + $this->with($offset, $value); } /** * Unset a piece of data from the view. * - * @param string $key + * @param string $offset * @return void */ - public function offsetUnset($key): void + public function offsetUnset($offset): void { - unset($this->data[$key]); + unset($this->data[$offset]); } /** diff --git a/vendor/laravel/framework/src/Illuminate/View/composer.json b/vendor/laravel/framework/src/Illuminate/View/composer.json index fd32f9538..95c1b3277 100644 --- a/vendor/laravel/framework/src/Illuminate/View/composer.json +++ b/vendor/laravel/framework/src/Illuminate/View/composer.json @@ -2,40 +2,40 @@ "name": "illuminate/view", "description": "The Illuminate View package.", "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, "authors": [ { "name": "Taylor Otwell", "email": "taylor@laravel.com" } ], - "require": { - "php": "^8.2", - "ext-tokenizer": "*", - "illuminate/collections": "^12.0", - "illuminate/container": "^12.0", - "illuminate/contracts": "^12.0", - "illuminate/events": "^12.0", - "illuminate/filesystem": "^12.0", - "illuminate/macroable": "^12.0", - "illuminate/support": "^12.0" + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, + "require": { + "php": "^8.3", + "ext-tokenizer": "*", + "illuminate/collections": "^13.0", + "illuminate/container": "^13.0", + "illuminate/contracts": "^13.0", + "illuminate/events": "^13.0", + "illuminate/filesystem": "^13.0", + "illuminate/macroable": "^13.0", + "illuminate/support": "^13.0" + }, + "minimum-stability": "dev", "autoload": { "psr-4": { "Illuminate\\View\\": "" } }, - "extra": { - "branch-alias": { - "dev-master": "12.x-dev" - } - }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "extra": { + "branch-alias": { + "dev-master": "13.0.x-dev" + } + } } diff --git a/vendor/laravel/tinker/composer.json b/vendor/laravel/tinker/composer.json index 160623a55..889e02df8 100644 --- a/vendor/laravel/tinker/composer.json +++ b/vendor/laravel/tinker/composer.json @@ -10,20 +10,20 @@ } ], "require": { - "php": "^7.2.5|^8.0", - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", - "psy/psysh": "^0.11.1|^0.12.0", - "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0|^8.0" + "php": "^8.1", + "illuminate/console": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "psy/psysh": "^0.12.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0|^8.0" }, "require-dev": { "mockery/mockery": "~1.3.3|^1.4.2", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^8.5.8|^9.3.3|^10.0" + "phpunit/phpunit": "^10.5|^11.5" }, "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0)." + "illuminate/database": "The Illuminate Database package (^8.0|^9.0|^10.0|^11.0|^12.0|^13.0)." }, "autoload": { "psr-4": { @@ -38,6 +38,9 @@ } }, "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + }, "laravel": { "providers": [ "Laravel\\Tinker\\TinkerServiceProvider" diff --git a/vendor/laravel/tinker/src/Console/TinkerCommand.php b/vendor/laravel/tinker/src/Console/TinkerCommand.php index 22278a5b7..6c73f8478 100644 --- a/vendor/laravel/tinker/src/Console/TinkerCommand.php +++ b/vendor/laravel/tinker/src/Console/TinkerCommand.php @@ -10,6 +10,7 @@ use Psy\Shell; use Psy\VersionUpdater\Checker; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputOption; +use Throwable; class TinkerCommand extends Command { @@ -74,7 +75,11 @@ class TinkerCommand extends Command if ($code = $this->option('execute')) { try { $shell->setOutput($this->output); - $shell->execute($code); + $shell->execute($code, true); + } catch (Throwable $e) { + $shell->writeException($e); + + return 1; } finally { $loader->unregister(); } diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-11.0.md b/vendor/phpunit/php-code-coverage/ChangeLog-11.0.md deleted file mode 100644 index 916de6b4d..000000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-11.0.md +++ /dev/null @@ -1,109 +0,0 @@ -# ChangeLog - -All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [11.0.12] - 2025-12-24 - -### Fixed - -* [#1092](https://github.com/sebastianbergmann/php-code-coverage/issues/1092): Error in `DOMDocument::saveXML()` is not handled -* [#1131](https://github.com/sebastianbergmann/php-code-coverage/issues/1131): Invalid XML generated when both PCOV and Xdebug are loaded - -## [11.0.11] - 2025-08-27 - -### Changed - -* [#1085](https://github.com/sebastianbergmann/php-code-coverage/pull/1085): Improve performance by skipping empty lines after filter has been applied - -## [11.0.10] - 2025-06-18 - -### Changed - -* Changed CSS for HTML report to not use common ligatures as this sometimes lead to hard-to-read code -* Updated Bootstrap to version 5.3.6 for HTML report - -## [11.0.9] - 2025-02-25 - -### Changed - -* Changed version identifier for static analysis cache from "MD5 over source code" to `Version::id()` -* The `SebastianBergmann\CodeCoverage\Filter::includeUncoveredFiles()` and `SebastianBergmann\CodeCoverage\Filter::excludeUncoveredFiles()` methods are no longer deprecated - -### Fixed - -* [#1063](https://github.com/sebastianbergmann/php-code-coverage/issues/1063): HTML report highlights argument named `fn` differently than other named arguments - -## [11.0.8] - 2024-12-11 - -### Changed - -* [#1054](https://github.com/sebastianbergmann/php-code-coverage/pull/1054): Use click event for toggling "tests covering this line" popover in HTML report - -## [11.0.7] - 2024-10-09 - -### Changed - -* [#1037](https://github.com/sebastianbergmann/php-code-coverage/pull/1037): Upgrade Bootstrap to version 5.3.3 for HTML report -* [#1046](https://github.com/sebastianbergmann/php-code-coverage/pull/1046): CSS fixes for HTML report - -### Deprecated - -* The `SebastianBergmann\CodeCoverage\Filter::includeUncoveredFiles()`, `SebastianBergmann\CodeCoverage\Filter::excludeUncoveredFiles()`, and `SebastianBergmann\CodeCoverage\Filter::excludeFile()` methods have been deprecated - -## [11.0.6] - 2024-08-22 - -### Changed - -* Updated dependencies (so that users that install using Composer's `--prefer-lowest` CLI option also get recent versions) - -## [11.0.5] - 2024-07-03 - -### Changed - -* This project now uses PHPStan instead of Psalm for static analysis - -## [11.0.4] - 2024-06-29 - -### Fixed - -* [#967](https://github.com/sebastianbergmann/php-code-coverage/issues/967): Identification of executable lines for `match` expressions does not work correctly - -## [11.0.3] - 2024-03-12 - -### Fixed - -* [#1033](https://github.com/sebastianbergmann/php-code-coverage/issues/1033): `@codeCoverageIgnore` annotation does not work on `enum` - -## [11.0.2] - 2024-03-09 - -### Changed - -* [#1032](https://github.com/sebastianbergmann/php-code-coverage/pull/1032): Pad lines in code coverage report only when colors are shown - -## [11.0.1] - 2024-03-02 - -### Changed - -* Do not use implicitly nullable parameters - -## [11.0.0] - 2024-02-02 - -### Removed - -* The `SebastianBergmann\CodeCoverage\Filter::includeDirectory()`, `SebastianBergmann\CodeCoverage\Filter::excludeDirectory()`, and `SebastianBergmann\CodeCoverage\Filter::excludeFile()` methods have been removed -* This component now requires PHP-Parser 5 -* This component is no longer supported on PHP 8.1 - -[11.0.12]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.11...11.0.12 -[11.0.11]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.10...11.0.11 -[11.0.10]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.9...11.0.10 -[11.0.9]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.8...11.0.9 -[11.0.8]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.7...11.0.8 -[11.0.7]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.6...11.0.7 -[11.0.6]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.5...11.0.6 -[11.0.5]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.4...11.0.5 -[11.0.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.3...11.0.4 -[11.0.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.2...11.0.3 -[11.0.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.1...11.0.2 -[11.0.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.0...11.0.1 -[11.0.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/10.1...11.0.0 diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-12.5.md b/vendor/phpunit/php-code-coverage/ChangeLog-12.5.md new file mode 100644 index 000000000..3234d5f7f --- /dev/null +++ b/vendor/phpunit/php-code-coverage/ChangeLog-12.5.md @@ -0,0 +1,69 @@ +# ChangeLog + +All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. + +## [12.5.7] - 2026-06-01 + +### Fixed + +* [#1212](https://github.com/sebastianbergmann/php-code-coverage/pull/1212): Filenames in HTML report are not escaped + +## [12.5.6] - 2026-04-15 + +### Fixed + +* [#1150](https://github.com/sebastianbergmann/php-code-coverage/issues/1150): Abstract method declarations are incorrectly counted as executable lines + +## [12.5.5] - 2026-04-13 + +### Fixed + +* [#1149](https://github.com/sebastianbergmann/php-code-coverage/pull/1149): Lines spanned by attributes are treated as executable + +## [12.5.4] - 2026-04-12 + +### Fixed + +* [#1147](https://github.com/sebastianbergmann/php-code-coverage/pull/1147): `CoversClass` does not transitively target traits used by enumerations + +## [12.5.3] - 2026-02-06 + +### Fixed + +* [#1135](https://github.com/sebastianbergmann/php-code-coverage/issues/1135): Internal methods `driverIs*()` must not assume that `CodeCoverage::$driver` is set + +## [12.5.2] - 2025-12-24 + +### Fixed + +* [#1131](https://github.com/sebastianbergmann/php-code-coverage/issues/1131): Invalid XML generated when both PCOV and Xdebug are loaded + +## [12.5.1] - 2025-12-08 + +### Changed + +* [#1125](https://github.com/sebastianbergmann/php-code-coverage/pull/1125): Improve performance of XML report by using XMLWriter instead of DOM + +## [12.5.0] - 2025-11-29 + +### Added + +* Option to not generate the `` element for the XML report + +### Changed + +* [#1102](https://github.com/sebastianbergmann/php-code-coverage/pull/1102), [#1111](https://github.com/sebastianbergmann/php-code-coverage/pull/1111), [#1112](https://github.com/sebastianbergmann/php-code-coverage/pull/1112), [#1113](https://github.com/sebastianbergmann/php-code-coverage/pull/1113), [#1114](https://github.com/sebastianbergmann/php-code-coverage/pull/1114), [#1115](https://github.com/sebastianbergmann/php-code-coverage/pull/1115), [#1116](https://github.com/sebastianbergmann/php-code-coverage/pull/1116), [#1117](https://github.com/sebastianbergmann/php-code-coverage/pull/1117), [#1118](https://github.com/sebastianbergmann/php-code-coverage/pull/1118), [#1119](https://github.com/sebastianbergmann/php-code-coverage/pull/1119), [#1120](https://github.com/sebastianbergmann/php-code-coverage/pull/1120), [#1121](https://github.com/sebastianbergmann/php-code-coverage/pull/1121), [#1122](https://github.com/sebastianbergmann/php-code-coverage/pull/1122), [#1123](https://github.com/sebastianbergmann/php-code-coverage/pull/1123), [#1124](https://github.com/sebastianbergmann/php-code-coverage/pull/1124): Improve performance of XML report +* [#1107](https://github.com/sebastianbergmann/php-code-coverage/pull/1107): Do not sort code coverage data over and over +* [#1108](https://github.com/sebastianbergmann/php-code-coverage/pull/1108): Do not sort covered files data over and over +* [#1109](https://github.com/sebastianbergmann/php-code-coverage/pull/1109): Represent line coverage data using objects +* [#1126](https://github.com/sebastianbergmann/php-code-coverage/issues/1126): Add test execution time to `` elements under `projects/tests` in the XML reports index file +* [#1127](https://github.com/sebastianbergmann/php-code-coverage/issues/1127): Add SHA-1 hash of content of SUT source file to XML report + +[12.5.7]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.5.6...12.5.7 +[12.5.6]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.5.5...12.5.6 +[12.5.5]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.5.4...12.5.5 +[12.5.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.5.3...12.5.4 +[12.5.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.5.2...12.5.3 +[12.5.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.5.1...12.5.2 +[12.5.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.5.0...12.5.1 +[12.5.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.4.0...12.5.0 diff --git a/vendor/phpunit/php-code-coverage/LICENSE b/vendor/phpunit/php-code-coverage/LICENSE index 017eb48b1..0dffde94d 100644 --- a/vendor/phpunit/php-code-coverage/LICENSE +++ b/vendor/phpunit/php-code-coverage/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2009-2025, Sebastian Bergmann +Copyright (c) 2009-2026, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/phpunit/php-code-coverage/composer.json b/vendor/phpunit/php-code-coverage/composer.json index a62cbb925..6709c0560 100644 --- a/vendor/phpunit/php-code-coverage/composer.json +++ b/vendor/phpunit/php-code-coverage/composer.json @@ -22,29 +22,27 @@ }, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true }, "prefer-stable": true, "require": { - "php": ">=8.2", + "php": ">=8.3", "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", "nikic/php-parser": "^5.7.0", - "phpunit/php-file-iterator": "^5.1.0", - "phpunit/php-text-template": "^4.0.1", - "sebastian/code-unit-reverse-lookup": "^4.0.1", - "sebastian/complexity": "^4.0.1", - "sebastian/environment": "^7.2.1", - "sebastian/lines-of-code": "^3.0.1", - "sebastian/version": "^5.0.2", - "theseer/tokenizer": "^1.3.1" + "phpunit/php-text-template": "^5.0", + "sebastian/complexity": "^5.0", + "sebastian/environment": "^8.1.2", + "sebastian/lines-of-code": "^4.0.1", + "sebastian/version": "^6.0", + "theseer/tokenizer": "^2.0.1" }, "require-dev": { - "phpunit/phpunit": "^11.5.46" + "phpunit/phpunit": "^12.5.28" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -62,7 +60,7 @@ }, "extra": { "branch-alias": { - "dev-main": "11.0.x-dev" + "dev-main": "12.5.x-dev" } } } diff --git a/vendor/phpunit/php-code-coverage/src/CodeCoverage.php b/vendor/phpunit/php-code-coverage/src/CodeCoverage.php index a34b2902f..b146899bb 100644 --- a/vendor/phpunit/php-code-coverage/src/CodeCoverage.php +++ b/vendor/phpunit/php-code-coverage/src/CodeCoverage.php @@ -14,11 +14,9 @@ use function array_diff_key; use function array_flip; use function array_keys; use function array_merge; -use function array_merge_recursive; use function array_unique; use function count; use function explode; -use function is_array; use function is_file; use function sort; use ReflectionClass; @@ -27,59 +25,76 @@ use SebastianBergmann\CodeCoverage\Data\RawCodeCoverageData; use SebastianBergmann\CodeCoverage\Driver\Driver; use SebastianBergmann\CodeCoverage\Node\Builder; use SebastianBergmann\CodeCoverage\Node\Directory; -use SebastianBergmann\CodeCoverage\StaticAnalysis\CachingFileAnalyser; +use SebastianBergmann\CodeCoverage\StaticAnalysis\CachingSourceAnalyser; use SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser; -use SebastianBergmann\CodeCoverage\StaticAnalysis\ParsingFileAnalyser; +use SebastianBergmann\CodeCoverage\StaticAnalysis\ParsingSourceAnalyser; +use SebastianBergmann\CodeCoverage\Test\Target\MapBuilder; +use SebastianBergmann\CodeCoverage\Test\Target\Mapper; +use SebastianBergmann\CodeCoverage\Test\Target\TargetCollection; +use SebastianBergmann\CodeCoverage\Test\Target\TargetCollectionValidator; +use SebastianBergmann\CodeCoverage\Test\Target\ValidationResult; use SebastianBergmann\CodeCoverage\Test\TestSize\TestSize; use SebastianBergmann\CodeCoverage\Test\TestStatus\TestStatus; -use SebastianBergmann\CodeUnitReverseLookup\Wizard; /** * Provides collection functionality for PHP code coverage information. * - * @phpstan-type TestType = array{ - * size: string, - * status: string, - * } + * @phpstan-type TestType array{size: string, status: string, time: float} + * @phpstan-type TargetedLines array> */ final class CodeCoverage { - private const UNCOVERED_FILES = 'UNCOVERED_FILES'; + private const string UNCOVERED_FILES = 'UNCOVERED_FILES'; private readonly Driver $driver; private readonly Filter $filter; - private readonly Wizard $wizard; + private ?FileAnalyser $analyser = null; + private ?Mapper $targetMapper = null; + private ?string $cacheDirectory = null; private bool $checkForUnintentionallyCoveredCode = false; + private bool $collectBranchAndPathCoverage = false; private bool $includeUncoveredFiles = true; private bool $ignoreDeprecatedCode = false; - private ?string $currentId = null; - private ?TestSize $currentSize = null; - private ProcessedCodeCoverageData $data; - private bool $useAnnotationsForIgnoringCode = true; - - /** - * @var array> - */ - private array $linesToBeIgnored = []; - - /** - * @var array - */ - private array $tests = []; + private bool $useAnnotationsForIgnoringCode = true; /** * @var list */ private array $parentClassesExcludedFromUnintentionallyCoveredCodeCheck = []; - private ?FileAnalyser $analyser = null; - private ?string $cacheDirectory = null; - private ?Directory $cachedReport = null; + private ?string $currentId = null; + private ?TestSize $currentSize = null; + private ProcessedCodeCoverageData $data; + + /** + * @var array + */ + private array $tests = []; + private ?Directory $cachedReport = null; public function __construct(Driver $driver, Filter $filter) { $this->driver = $driver; $this->filter = $filter; $this->data = new ProcessedCodeCoverageData; - $this->wizard = new Wizard; + } + + public function __serialize(): array + { + $prefix = "\x00" . self::class . "\x00"; + + return [ + // Configuration + $prefix . 'cacheDirectory' => $this->cacheDirectory, + $prefix . 'checkForUnintentionallyCoveredCode' => $this->checkForUnintentionallyCoveredCode, + $prefix . 'includeUncoveredFiles' => $this->includeUncoveredFiles, + $prefix . 'ignoreDeprecatedCode' => $this->ignoreDeprecatedCode, + $prefix . 'parentClassesExcludedFromUnintentionallyCoveredCodeCheck' => $this->parentClassesExcludedFromUnintentionallyCoveredCodeCheck, + $prefix . 'useAnnotationsForIgnoringCode' => $this->useAnnotationsForIgnoringCode, + $prefix . 'filter' => $this->filter, + + // Data + $prefix . 'data' => $this->data, + $prefix . 'tests' => $this->tests, + ]; } /** @@ -174,19 +189,11 @@ final class CodeCoverage $this->cachedReport = null; } - /** - * @param array> $linesToBeIgnored - */ - public function stop(bool $append = true, ?TestStatus $status = null, array|false $linesToBeCovered = [], array $linesToBeUsed = [], array $linesToBeIgnored = []): RawCodeCoverageData + public function stop(bool $append = true, ?TestStatus $status = null, null|false|TargetCollection $covers = null, ?TargetCollection $uses = null, float $time = 0.0): RawCodeCoverageData { $data = $this->driver->stop(); - $this->linesToBeIgnored = array_merge_recursive( - $this->linesToBeIgnored, - $linesToBeIgnored, - ); - - $this->append($data, null, $append, $status, $linesToBeCovered, $linesToBeUsed, $linesToBeIgnored); + $this->append($data, null, $append, $status, $covers, $uses, $time); $this->currentId = null; $this->currentSize = null; @@ -196,13 +203,11 @@ final class CodeCoverage } /** - * @param array> $linesToBeIgnored - * * @throws ReflectionException * @throws TestIdMissingException * @throws UnintentionallyCoveredCodeException */ - public function append(RawCodeCoverageData $rawData, ?string $id = null, bool $append = true, ?TestStatus $status = null, array|false $linesToBeCovered = [], array $linesToBeUsed = [], array $linesToBeIgnored = []): void + public function append(RawCodeCoverageData $rawData, ?string $id = null, bool $append = true, ?TestStatus $status = null, null|false|TargetCollection $covers = null, ?TargetCollection $uses = null, float $time = 0.0): void { if ($id === null) { $id = $this->currentId; @@ -212,24 +217,32 @@ final class CodeCoverage throw new TestIdMissingException; } - $this->cachedReport = null; - if ($status === null) { $status = TestStatus::unknown(); } + if ($covers === null) { + $covers = TargetCollection::fromArray([]); + } + + if ($uses === null) { + $uses = TargetCollection::fromArray([]); + } + $size = $this->currentSize; if ($size === null) { $size = TestSize::unknown(); } + $this->cachedReport = null; + $this->applyFilter($rawData); $this->applyExecutableLinesFilter($rawData); if ($this->useAnnotationsForIgnoringCode) { - $this->applyIgnoredLinesFilter($rawData, $linesToBeIgnored); + $this->applyIgnoredLinesFilter($rawData); } $this->data->initializeUnseenData($rawData); @@ -242,6 +255,17 @@ final class CodeCoverage return; } + $linesToBeCovered = false; + $linesToBeUsed = []; + + if ($covers !== false) { + $linesToBeCovered = $this->targetMapper()->mapTargets($covers); + } + + if ($linesToBeCovered !== false) { + $linesToBeUsed = $this->targetMapper()->mapTargets($uses); + } + $this->applyCoversAndUsesFilter( $rawData, $linesToBeCovered, @@ -249,13 +273,14 @@ final class CodeCoverage $size, ); - if (empty($rawData->lineCoverage())) { + if ($rawData->lineCoverage() === []) { return; } $this->tests[$id] = [ 'size' => $size->asString(), 'status' => $status->asString(), + 'time' => $time, ]; $this->data->markCodeAsExecutedByTestCase($id, $rawData); @@ -360,21 +385,25 @@ final class CodeCoverage public function enableBranchAndPathCoverage(): void { $this->driver->enableBranchAndPathCoverage(); + + $this->collectBranchAndPathCoverage = true; } public function disableBranchAndPathCoverage(): void { $this->driver->disableBranchAndPathCoverage(); + + $this->collectBranchAndPathCoverage = false; } public function collectsBranchAndPathCoverage(): bool { - return $this->driver->collectsBranchAndPathCoverage(); + return $this->collectBranchAndPathCoverage; } - public function detectsDeadCode(): bool + public function validate(TargetCollection $targets): ValidationResult { - return $this->driver->detectsDeadCode(); + return (new TargetCollectionValidator)->validate($this->targetMapper(), $targets); } /** @@ -382,7 +411,8 @@ final class CodeCoverage */ public function driverIsPcov(): bool { - return $this->driver->isPcov(); + /** @phpstan-ignore isset.initializedProperty */ + return isset($this->driver) && $this->driver->isPcov(); } /** @@ -390,10 +420,14 @@ final class CodeCoverage */ public function driverIsXdebug(): bool { - return $this->driver->isXdebug(); + /** @phpstan-ignore isset.initializedProperty */ + return isset($this->driver) && $this->driver->isXdebug(); } /** + * @param false|TargetedLines $linesToBeCovered + * @param TargetedLines $linesToBeUsed + * * @throws ReflectionException * @throws UnintentionallyCoveredCodeException */ @@ -405,7 +439,7 @@ final class CodeCoverage return; } - if (empty($linesToBeCovered)) { + if ($linesToBeCovered === []) { return; } @@ -420,11 +454,9 @@ final class CodeCoverage $rawData->removeCoverageDataForFile($fileWithNoCoverage); } - if (is_array($linesToBeCovered)) { - foreach ($linesToBeCovered as $fileToBeCovered => $includedLines) { - $rawData->keepLineCoverageDataOnlyForLines($fileToBeCovered, $includedLines); - $rawData->keepFunctionCoverageDataOnlyForLines($fileToBeCovered, $includedLines); - } + foreach ($linesToBeCovered as $fileToBeCovered => $includedLines) { + $rawData->keepLineCoverageDataOnlyForLines($fileToBeCovered, $includedLines); + $rawData->keepFunctionCoverageDataOnlyForLines($fileToBeCovered, $includedLines); } } @@ -448,7 +480,7 @@ final class CodeCoverage continue; } - $linesToBranchMap = $this->analyser()->executableLinesIn($filename); + $linesToBranchMap = $this->analyser()->analyse($filename)->executableLines(); $data->keepLineCoverageDataOnlyForLines( $filename, @@ -462,26 +494,16 @@ final class CodeCoverage } } - /** - * @param array> $linesToBeIgnored - */ - private function applyIgnoredLinesFilter(RawCodeCoverageData $data, array $linesToBeIgnored): void + private function applyIgnoredLinesFilter(RawCodeCoverageData $data): void { foreach (array_keys($data->lineCoverage()) as $filename) { if (!$this->filter->isFile($filename)) { continue; } - if (isset($linesToBeIgnored[$filename])) { - $data->removeCoverageDataForLines( - $filename, - $linesToBeIgnored[$filename], - ); - } - $data->removeCoverageDataForLines( $filename, - $this->analyser()->ignoredLinesFor($filename), + $this->analyser()->analyse($filename)->ignoredLines(), ); } } @@ -504,13 +526,15 @@ final class CodeCoverage $this->analyser(), ), self::UNCOVERED_FILES, - linesToBeIgnored: $this->linesToBeIgnored, ); } } } /** + * @param TargetedLines $linesToBeCovered + * @param TargetedLines $linesToBeUsed + * * @throws ReflectionException * @throws UnintentionallyCoveredCodeException */ @@ -526,20 +550,26 @@ final class CodeCoverage foreach ($data->lineCoverage() as $file => $_data) { foreach ($_data as $line => $flag) { if ($flag === 1 && !isset($allowedLines[$file][$line])) { - $unintentionallyCoveredUnits[] = $this->wizard->lookup($file, $line); + $unintentionallyCoveredUnits[] = $this->targetMapper->lookup($file, $line); } } } $unintentionallyCoveredUnits = $this->processUnintentionallyCoveredUnits($unintentionallyCoveredUnits); - if (!empty($unintentionallyCoveredUnits)) { + if ($unintentionallyCoveredUnits !== []) { throw new UnintentionallyCoveredCodeException( $unintentionallyCoveredUnits, ); } } + /** + * @param TargetedLines $linesToBeCovered + * @param TargetedLines $linesToBeUsed + * + * @return TargetedLines + */ private function getAllowedLines(array $linesToBeCovered, array $linesToBeUsed): array { $allowedLines = []; @@ -622,26 +652,40 @@ final class CodeCoverage return $processed; } + private function targetMapper(): Mapper + { + if ($this->targetMapper !== null) { + return $this->targetMapper; + } + + $this->targetMapper = new Mapper( + (new MapBuilder)->build($this->filter, $this->analyser()), + ); + + return $this->targetMapper; + } + private function analyser(): FileAnalyser { if ($this->analyser !== null) { return $this->analyser; } - $this->analyser = new ParsingFileAnalyser( + $sourceAnalyser = new ParsingSourceAnalyser; + + if ($this->cachesStaticAnalysis()) { + $sourceAnalyser = new CachingSourceAnalyser( + $this->cacheDirectory, + $sourceAnalyser, + ); + } + + $this->analyser = new FileAnalyser( + $sourceAnalyser, $this->useAnnotationsForIgnoringCode, $this->ignoreDeprecatedCode, ); - if ($this->cachesStaticAnalysis()) { - $this->analyser = new CachingFileAnalyser( - $this->cacheDirectory, - $this->analyser, - $this->useAnnotationsForIgnoringCode, - $this->ignoreDeprecatedCode, - ); - } - return $this->analyser; } } diff --git a/vendor/phpunit/php-code-coverage/src/Data/ProcessedBranchCoverageData.php b/vendor/phpunit/php-code-coverage/src/Data/ProcessedBranchCoverageData.php new file mode 100644 index 000000000..b988a2b2a --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Data/ProcessedBranchCoverageData.php @@ -0,0 +1,103 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Data; + +use function array_merge; +use function array_unique; +use NoDiscard; +use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; + +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + * + * @phpstan-import-type TestIdType from ProcessedCodeCoverageData + * @phpstan-import-type XdebugBranchCoverageType from XdebugDriver + */ +final class ProcessedBranchCoverageData +{ + public readonly int $op_start; + public readonly int $op_end; + public readonly int $line_start; + public readonly int $line_end; + + /** @var list */ + public array $hit; + + /** @var array */ + public readonly array $out; + + /** @var array */ + public readonly array $out_hit; + + /** + * @param XdebugBranchCoverageType $xdebugCoverageData + */ + public static function fromXdebugCoverage(array $xdebugCoverageData): self + { + return new self( + $xdebugCoverageData['op_start'], + $xdebugCoverageData['op_end'], + $xdebugCoverageData['line_start'], + $xdebugCoverageData['line_end'], + [], + $xdebugCoverageData['out'], + $xdebugCoverageData['out_hit'], + ); + } + + /** + * @param list $hit + * @param array $out + * @param array $out_hit + */ + public function __construct( + int $op_start, + int $op_end, + int $line_start, + int $line_end, + array $hit, + array $out, + array $out_hit, + ) { + $this->out_hit = $out_hit; + $this->out = $out; + $this->hit = $hit; + $this->line_end = $line_end; + $this->line_start = $line_start; + $this->op_end = $op_end; + $this->op_start = $op_start; + } + + #[NoDiscard] + public function merge(self $data): self + { + if ($data->hit === []) { + return $this; + } + + return new self( + $this->op_start, + $this->op_end, + $this->line_start, + $this->line_end, + array_unique(array_merge($this->hit, $data->hit)), + $this->out, + $this->out_hit, + ); + } + + /** + * @param TestIdType $testCaseId + */ + public function recordHit(string $testCaseId): void + { + $this->hit[] = $testCaseId; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Data/ProcessedClassType.php b/vendor/phpunit/php-code-coverage/src/Data/ProcessedClassType.php new file mode 100644 index 000000000..593e8de0f --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Data/ProcessedClassType.php @@ -0,0 +1,70 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Data; + +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final class ProcessedClassType +{ + public readonly string $className; + public readonly string $namespace; + + /** + * @var array + */ + public array $methods; + public readonly int $startLine; + public int $executableLines; + public int $executedLines; + public int $executableBranches; + public int $executedBranches; + public int $executablePaths; + public int $executedPaths; + public int $ccn; + public float|int $coverage; + public int|string $crap; + public readonly string $link; + + public function __construct( + string $className, + string $namespace, + /** + * @var array + */ + array $methods, + int $startLine, + int $executableLines, + int $executedLines, + int $executableBranches, + int $executedBranches, + int $executablePaths, + int $executedPaths, + int $ccn, + float|int $coverage, + int|string $crap, + string $link, + ) { + $this->className = $className; + $this->namespace = $namespace; + $this->methods = $methods; + $this->startLine = $startLine; + $this->executableLines = $executableLines; + $this->executedLines = $executedLines; + $this->executableBranches = $executableBranches; + $this->executedBranches = $executedBranches; + $this->executablePaths = $executablePaths; + $this->executedPaths = $executedPaths; + $this->ccn = $ccn; + $this->coverage = $coverage; + $this->crap = $crap; + $this->link = $link; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Data/ProcessedCodeCoverageData.php b/vendor/phpunit/php-code-coverage/src/Data/ProcessedCodeCoverageData.php index 290a8cc8e..5745ccb08 100644 --- a/vendor/phpunit/php-code-coverage/src/Data/ProcessedCodeCoverageData.php +++ b/vendor/phpunit/php-code-coverage/src/Data/ProcessedCodeCoverageData.php @@ -17,13 +17,16 @@ use function count; use function is_array; use function ksort; use SebastianBergmann\CodeCoverage\Driver\Driver; +use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage * - * @phpstan-import-type XdebugFunctionCoverageType from \SebastianBergmann\CodeCoverage\Driver\XdebugDriver + * @phpstan-import-type XdebugFunctionCoverageType from XdebugDriver * - * @phpstan-type TestIdType = string + * @phpstan-type TestIdType string + * @phpstan-type FunctionCoverageType array> + * @phpstan-type LineCoverageType array>> */ final class ProcessedCodeCoverageData { @@ -31,7 +34,7 @@ final class ProcessedCodeCoverageData * Line coverage data. * An array of filenames, each having an array of linenumbers, each executable line having an array of testcase ids. * - * @var array>> + * @var LineCoverageType */ private array $lineCoverage = []; @@ -40,22 +43,7 @@ final class ProcessedCodeCoverageData * Maintains base format of raw data (@see https://xdebug.org/docs/code_coverage), but each 'hit' entry is an array * of testcase ids. * - * @var array, - * out: array, - * out_hit: array, - * }>, - * paths: array, - * hit: list, - * }>, - * hit: list - * }>> + * @var FunctionCoverageType */ private array $functionCoverage = []; @@ -96,24 +84,30 @@ final class ProcessedCodeCoverageData foreach ($functions as $functionName => $functionData) { foreach ($functionData['branches'] as $branchId => $branchData) { if ($branchData['hit'] === Driver::BRANCH_HIT) { - $this->functionCoverage[$file][$functionName]['branches'][$branchId]['hit'][] = $testCaseId; + $this->functionCoverage[$file][$functionName]->recordBranchHit($branchId, $testCaseId); } } foreach ($functionData['paths'] as $pathId => $pathData) { if ($pathData['hit'] === Driver::BRANCH_HIT) { - $this->functionCoverage[$file][$functionName]['paths'][$pathId]['hit'][] = $testCaseId; + $this->functionCoverage[$file][$functionName]->recordPathHit($pathId, $testCaseId); } } } } } + /** + * @param LineCoverageType $lineCoverage + */ public function setLineCoverage(array $lineCoverage): void { $this->lineCoverage = $lineCoverage; } + /** + * @return LineCoverageType + */ public function lineCoverage(): array { ksort($this->lineCoverage); @@ -121,11 +115,17 @@ final class ProcessedCodeCoverageData return $this->lineCoverage; } + /** + * @param FunctionCoverageType $functionCoverage + */ public function setFunctionCoverage(array $functionCoverage): void { $this->functionCoverage = $functionCoverage; } + /** + * @return FunctionCoverageType + */ public function functionCoverage(): array { ksort($this->functionCoverage); @@ -133,6 +133,9 @@ final class ProcessedCodeCoverageData return $this->functionCoverage; } + /** + * @return array + */ public function coveredFiles(): array { ksort($this->lineCoverage); @@ -195,14 +198,6 @@ final class ProcessedCodeCoverageData } else { $this->initPreviouslyUnseenFunction($file, $functionName, $functionData); } - - foreach ($functionData['branches'] as $branchId => $branchData) { - $this->functionCoverage[$file][$functionName]['branches'][$branchId]['hit'] = array_unique(array_merge($this->functionCoverage[$file][$functionName]['branches'][$branchId]['hit'], $branchData['hit'])); - } - - foreach ($functionData['paths'] as $pathId => $pathData) { - $this->functionCoverage[$file][$functionName]['paths'][$pathId]['hit'] = array_unique(array_merge($this->functionCoverage[$file][$functionName]['paths'][$pathId]['hit'], $pathData['hit'])); - } } } } @@ -216,6 +211,8 @@ final class ProcessedCodeCoverageData * 4 = the line has been tested * * During a merge, a higher number is better. + * + * @return 1|2|3|4 */ private function priorityForLine(array $data, int $line): int { @@ -237,19 +234,15 @@ final class ProcessedCodeCoverageData /** * For a function we have never seen before, copy all data over and simply init the 'hit' array. * - * @param XdebugFunctionCoverageType $functionData + * @param ProcessedFunctionCoverageData|XdebugFunctionCoverageType $functionData */ - private function initPreviouslyUnseenFunction(string $file, string $functionName, array $functionData): void + private function initPreviouslyUnseenFunction(string $file, string $functionName, array|ProcessedFunctionCoverageData $functionData): void { + if (is_array($functionData)) { + $functionData = ProcessedFunctionCoverageData::fromXdebugCoverage($functionData); + } + $this->functionCoverage[$file][$functionName] = $functionData; - - foreach (array_keys($functionData['branches']) as $branchId) { - $this->functionCoverage[$file][$functionName]['branches'][$branchId]['hit'] = []; - } - - foreach (array_keys($functionData['paths']) as $pathId) { - $this->functionCoverage[$file][$functionName]['paths'][$pathId]['hit'] = []; - } } /** @@ -257,22 +250,16 @@ final class ProcessedCodeCoverageData * Techniques such as mocking and where the contents of a file are different vary during tests (e.g. compiling * containers) mean that the functions inside a file cannot be relied upon to be static. * - * @param XdebugFunctionCoverageType $functionData + * @param ProcessedFunctionCoverageData|XdebugFunctionCoverageType $functionData */ - private function initPreviouslySeenFunction(string $file, string $functionName, array $functionData): void + private function initPreviouslySeenFunction(string $file, string $functionName, array|ProcessedFunctionCoverageData $functionData): void { - foreach ($functionData['branches'] as $branchId => $branchData) { - if (!isset($this->functionCoverage[$file][$functionName]['branches'][$branchId])) { - $this->functionCoverage[$file][$functionName]['branches'][$branchId] = $branchData; - $this->functionCoverage[$file][$functionName]['branches'][$branchId]['hit'] = []; - } + if (is_array($functionData)) { + $functionData = ProcessedFunctionCoverageData::fromXdebugCoverage($functionData); } - foreach ($functionData['paths'] as $pathId => $pathData) { - if (!isset($this->functionCoverage[$file][$functionName]['paths'][$pathId])) { - $this->functionCoverage[$file][$functionName]['paths'][$pathId] = $pathData; - $this->functionCoverage[$file][$functionName]['paths'][$pathId]['hit'] = []; - } - } + $this->functionCoverage[$file][$functionName] = $this->functionCoverage[$file][$functionName]->merge( + $functionData, + ); } } diff --git a/vendor/phpunit/php-code-coverage/src/Data/ProcessedFunctionCoverageData.php b/vendor/phpunit/php-code-coverage/src/Data/ProcessedFunctionCoverageData.php new file mode 100644 index 000000000..96baa262a --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Data/ProcessedFunctionCoverageData.php @@ -0,0 +1,119 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Data; + +use NoDiscard; +use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; + +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + * + * @phpstan-import-type TestIdType from ProcessedCodeCoverageData + * @phpstan-import-type XdebugFunctionCoverageType from XdebugDriver + */ +final readonly class ProcessedFunctionCoverageData +{ + /** @var array */ + public array $branches; + + /** @var array */ + public array $paths; + + /** + * @param XdebugFunctionCoverageType $xdebugCoverageData + */ + public static function fromXdebugCoverage(array $xdebugCoverageData): self + { + $branches = []; + + foreach ($xdebugCoverageData['branches'] as $branchId => $branch) { + $branches[$branchId] = ProcessedBranchCoverageData::fromXdebugCoverage($branch); + } + $paths = []; + + foreach ($xdebugCoverageData['paths'] as $pathId => $path) { + $paths[$pathId] = ProcessedPathCoverageData::fromXdebugCoverage($path); + } + + return new self( + $branches, + $paths, + ); + } + + /** + * @param array $branches + * @param array $paths + */ + public function __construct( + array $branches, + array $paths, + ) { + $this->paths = $paths; + $this->branches = $branches; + } + + #[NoDiscard] + public function merge(self $data): self + { + $branches = null; + + if ($data->branches !== $this->branches) { + $branches = $this->branches; + + foreach ($data->branches as $branchId => $branch) { + if (!isset($branches[$branchId])) { + $branches[$branchId] = $branch; + } else { + $branches[$branchId] = $branches[$branchId]->merge($branch); + } + } + } + + $paths = null; + + if ($data->paths !== $this->paths) { + $paths = $this->paths; + + foreach ($data->paths as $pathId => $path) { + if (!isset($paths[$pathId])) { + $paths[$pathId] = $path; + } else { + $paths[$pathId] = $paths[$pathId]->merge($path); + } + } + } + + if ($branches === null && $paths === null) { + return $this; + } + + return new self( + $branches ?? $this->branches, + $paths ?? $this->paths, + ); + } + + /** + * @param TestIdType $testCaseId + */ + public function recordBranchHit(int $branchId, string $testCaseId): void + { + $this->branches[$branchId]->recordHit($testCaseId); + } + + /** + * @param TestIdType $testCaseId + */ + public function recordPathHit(int $pathId, string $testCaseId): void + { + $this->paths[$pathId]->recordHit($testCaseId); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Data/ProcessedFunctionType.php b/vendor/phpunit/php-code-coverage/src/Data/ProcessedFunctionType.php new file mode 100644 index 000000000..ff3a77f3c --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Data/ProcessedFunctionType.php @@ -0,0 +1,66 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Data; + +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final class ProcessedFunctionType +{ + public readonly string $functionName; + public readonly string $namespace; + public readonly string $signature; + public readonly int $startLine; + public readonly int $endLine; + public int $executableLines; + public int $executedLines; + public int $executableBranches; + public int $executedBranches; + public int $executablePaths; + public int $executedPaths; + public int $ccn; + public float|int $coverage; + public int|string $crap; + public readonly string $link; + + public function __construct( + string $functionName, + string $namespace, + string $signature, + int $startLine, + int $endLine, + int $executableLines, + int $executedLines, + int $executableBranches, + int $executedBranches, + int $executablePaths, + int $executedPaths, + int $ccn, + float|int $coverage, + int|string $crap, + string $link, + ) { + $this->link = $link; + $this->crap = $crap; + $this->coverage = $coverage; + $this->ccn = $ccn; + $this->executedPaths = $executedPaths; + $this->executablePaths = $executablePaths; + $this->executedBranches = $executedBranches; + $this->executableBranches = $executableBranches; + $this->executedLines = $executedLines; + $this->executableLines = $executableLines; + $this->endLine = $endLine; + $this->startLine = $startLine; + $this->signature = $signature; + $this->namespace = $namespace; + $this->functionName = $functionName; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Data/ProcessedMethodType.php b/vendor/phpunit/php-code-coverage/src/Data/ProcessedMethodType.php new file mode 100644 index 000000000..f1827633f --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Data/ProcessedMethodType.php @@ -0,0 +1,66 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Data; + +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final class ProcessedMethodType +{ + public readonly string $methodName; + public readonly string $visibility; + public readonly string $signature; + public readonly int $startLine; + public readonly int $endLine; + public int $executableLines; + public int $executedLines; + public int $executableBranches; + public int $executedBranches; + public int $executablePaths; + public int $executedPaths; + public int $ccn; + public float|int $coverage; + public int|string $crap; + public readonly string $link; + + public function __construct( + string $methodName, + string $visibility, + string $signature, + int $startLine, + int $endLine, + int $executableLines, + int $executedLines, + int $executableBranches, + int $executedBranches, + int $executablePaths, + int $executedPaths, + int $ccn, + float|int $coverage, + int|string $crap, + string $link, + ) { + $this->link = $link; + $this->crap = $crap; + $this->coverage = $coverage; + $this->ccn = $ccn; + $this->executedPaths = $executedPaths; + $this->executablePaths = $executablePaths; + $this->executedBranches = $executedBranches; + $this->executableBranches = $executableBranches; + $this->executedLines = $executedLines; + $this->executableLines = $executableLines; + $this->endLine = $endLine; + $this->startLine = $startLine; + $this->signature = $signature; + $this->visibility = $visibility; + $this->methodName = $methodName; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Data/ProcessedPathCoverageData.php b/vendor/phpunit/php-code-coverage/src/Data/ProcessedPathCoverageData.php new file mode 100644 index 000000000..e7283542d --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Data/ProcessedPathCoverageData.php @@ -0,0 +1,74 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Data; + +use function array_merge; +use function array_unique; +use NoDiscard; +use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; + +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + * + * @phpstan-import-type TestIdType from ProcessedCodeCoverageData + * @phpstan-import-type XdebugPathCoverageType from XdebugDriver + */ +final class ProcessedPathCoverageData +{ + /** @var array */ + public readonly array $path; + + /** @var list */ + public array $hit; + + /** + * @param XdebugPathCoverageType $xdebugCoverageData + */ + public static function fromXdebugCoverage(array $xdebugCoverageData): self + { + return new self( + $xdebugCoverageData['path'], + [], + ); + } + + /** + * @param array $path + * @param list $hit + */ + public function __construct( + array $path, + array $hit, + ) { + $this->hit = $hit; + $this->path = $path; + } + + #[NoDiscard] + public function merge(self $data): self + { + if ($data->hit === []) { + return $this; + } + + return new self( + $this->path, + array_unique(array_merge($this->hit, $data->hit)), + ); + } + + /** + * @param TestIdType $testCaseId + */ + public function recordHit(string $testCaseId): void + { + $this->hit[] = $testCaseId; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Data/ProcessedTraitType.php b/vendor/phpunit/php-code-coverage/src/Data/ProcessedTraitType.php new file mode 100644 index 000000000..86e7b4687 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Data/ProcessedTraitType.php @@ -0,0 +1,70 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Data; + +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final class ProcessedTraitType +{ + public readonly string $traitName; + public readonly string $namespace; + + /** + * @var array + */ + public array $methods; + public readonly int $startLine; + public int $executableLines; + public int $executedLines; + public int $executableBranches; + public int $executedBranches; + public int $executablePaths; + public int $executedPaths; + public int $ccn; + public float|int $coverage; + public int|string $crap; + public readonly string $link; + + public function __construct( + string $traitName, + string $namespace, + /** + * @var array + */ + array $methods, + int $startLine, + int $executableLines, + int $executedLines, + int $executableBranches, + int $executedBranches, + int $executablePaths, + int $executedPaths, + int $ccn, + float|int $coverage, + int|string $crap, + string $link, + ) { + $this->link = $link; + $this->crap = $crap; + $this->coverage = $coverage; + $this->ccn = $ccn; + $this->executedPaths = $executedPaths; + $this->executablePaths = $executablePaths; + $this->executedBranches = $executedBranches; + $this->executableBranches = $executableBranches; + $this->executedLines = $executedLines; + $this->executableLines = $executableLines; + $this->startLine = $startLine; + $this->methods = $methods; + $this->namespace = $namespace; + $this->traitName = $traitName; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Data/RawCodeCoverageData.php b/vendor/phpunit/php-code-coverage/src/Data/RawCodeCoverageData.php index 9b4304648..cbe7a9a3a 100644 --- a/vendor/phpunit/php-code-coverage/src/Data/RawCodeCoverageData.php +++ b/vendor/phpunit/php-code-coverage/src/Data/RawCodeCoverageData.php @@ -14,6 +14,7 @@ use function array_diff_key; use function array_flip; use function array_intersect; use function array_intersect_key; +use function array_map; use function count; use function explode; use function file_get_contents; @@ -25,14 +26,15 @@ use function str_ends_with; use function str_starts_with; use function trim; use SebastianBergmann\CodeCoverage\Driver\Driver; +use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; use SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage * - * @phpstan-import-type XdebugFunctionsCoverageType from \SebastianBergmann\CodeCoverage\Driver\XdebugDriver - * @phpstan-import-type XdebugCodeCoverageWithoutPathCoverageType from \SebastianBergmann\CodeCoverage\Driver\XdebugDriver - * @phpstan-import-type XdebugCodeCoverageWithPathCoverageType from \SebastianBergmann\CodeCoverage\Driver\XdebugDriver + * @phpstan-import-type XdebugFunctionsCoverageType from XdebugDriver + * @phpstan-import-type XdebugCodeCoverageWithoutPathCoverageType from XdebugDriver + * @phpstan-import-type XdebugCodeCoverageWithPathCoverageType from XdebugDriver */ final class RawCodeCoverageData { @@ -86,11 +88,10 @@ final class RawCodeCoverageData public static function fromUncoveredFile(string $filename, FileAnalyser $analyser): self { - $lineCoverage = []; - - foreach ($analyser->executableLinesIn($filename) as $line => $branch) { - $lineCoverage[$line] = Driver::LINE_NOT_EXECUTED; - } + $lineCoverage = array_map( + static fn (): int => Driver::LINE_NOT_EXECUTED, + $analyser->analyse($filename)->executableLines(), + ); return new self([$filename => $lineCoverage], []); } @@ -211,7 +212,7 @@ final class RawCodeCoverageData */ public function removeCoverageDataForLines(string $filename, array $lines): void { - if (empty($lines)) { + if ($lines === []) { return; } @@ -258,6 +259,9 @@ final class RawCodeCoverageData } } + /** + * @return array + */ private function getEmptyLinesForFile(string $filename): array { if (!isset(self::$emptyLineCache[$filename])) { diff --git a/vendor/phpunit/php-code-coverage/src/Driver/Driver.php b/vendor/phpunit/php-code-coverage/src/Driver/Driver.php index c0aed8b53..1174eaafb 100644 --- a/vendor/phpunit/php-code-coverage/src/Driver/Driver.php +++ b/vendor/phpunit/php-code-coverage/src/Driver/Driver.php @@ -12,7 +12,6 @@ namespace SebastianBergmann\CodeCoverage\Driver; use function sprintf; use SebastianBergmann\CodeCoverage\BranchAndPathCoverageNotSupportedException; use SebastianBergmann\CodeCoverage\Data\RawCodeCoverageData; -use SebastianBergmann\CodeCoverage\DeadCodeDetectionNotSupportedException; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage @@ -20,41 +19,30 @@ use SebastianBergmann\CodeCoverage\DeadCodeDetectionNotSupportedException; abstract class Driver { /** - * @var int - * * @see http://xdebug.org/docs/code_coverage */ - public const LINE_NOT_EXECUTABLE = -2; + public const int LINE_NOT_EXECUTABLE = -2; /** - * @var int - * * @see http://xdebug.org/docs/code_coverage */ - public const LINE_NOT_EXECUTED = -1; + public const int LINE_NOT_EXECUTED = -1; /** - * @var int - * * @see http://xdebug.org/docs/code_coverage */ - public const LINE_EXECUTED = 1; + public const int LINE_EXECUTED = 1; /** - * @var int - * * @see http://xdebug.org/docs/code_coverage */ - public const BRANCH_NOT_HIT = 0; + public const int BRANCH_NOT_HIT = 0; /** - * @var int - * * @see http://xdebug.org/docs/code_coverage */ - public const BRANCH_HIT = 1; + public const int BRANCH_HIT = 1; private bool $collectBranchAndPathCoverage = false; - private bool $detectDeadCode = false; public function canCollectBranchAndPathCoverage(): bool { @@ -88,38 +76,6 @@ abstract class Driver $this->collectBranchAndPathCoverage = false; } - public function canDetectDeadCode(): bool - { - return false; - } - - public function detectsDeadCode(): bool - { - return $this->detectDeadCode; - } - - /** - * @throws DeadCodeDetectionNotSupportedException - */ - public function enableDeadCodeDetection(): void - { - if (!$this->canDetectDeadCode()) { - throw new DeadCodeDetectionNotSupportedException( - sprintf( - '%s does not support dead code detection', - $this->nameAndVersion(), - ), - ); - } - - $this->detectDeadCode = true; - } - - public function disableDeadCodeDetection(): void - { - $this->detectDeadCode = false; - } - public function isPcov(): bool { return false; diff --git a/vendor/phpunit/php-code-coverage/src/Driver/PcovDriver.php b/vendor/phpunit/php-code-coverage/src/Driver/PcovDriver.php index eaa888801..fbe42fe59 100644 --- a/vendor/phpunit/php-code-coverage/src/Driver/PcovDriver.php +++ b/vendor/phpunit/php-code-coverage/src/Driver/PcovDriver.php @@ -38,6 +38,9 @@ final class PcovDriver extends Driver $this->filter = $filter; } + /** + * @codeCoverageIgnore + */ public function start(): void { start(); @@ -47,10 +50,11 @@ final class PcovDriver extends Driver { stop(); + // @codeCoverageIgnoreStart $filesToCollectCoverageFor = waiting(); $collected = []; - if ($filesToCollectCoverageFor) { + if ($filesToCollectCoverageFor !== []) { if (!$this->filter->isEmpty()) { $filesToCollectCoverageFor = array_intersect($filesToCollectCoverageFor, $this->filter->files()); } @@ -61,6 +65,7 @@ final class PcovDriver extends Driver } return RawCodeCoverageData::fromXdebugWithoutPathCoverage($collected); + // @codeCoverageIgnoreEnd } public function nameAndVersion(): string diff --git a/vendor/phpunit/php-code-coverage/src/Driver/Selector.php b/vendor/phpunit/php-code-coverage/src/Driver/Selector.php index f1ff32b58..56ffbf80e 100644 --- a/vendor/phpunit/php-code-coverage/src/Driver/Selector.php +++ b/vendor/phpunit/php-code-coverage/src/Driver/Selector.php @@ -21,6 +21,7 @@ final class Selector * @throws PcovNotAvailableException * @throws XdebugNotAvailableException * @throws XdebugNotEnabledException + * @throws XdebugVersionNotSupportedException */ public function forLineCoverage(Filter $filter): Driver { @@ -31,11 +32,7 @@ final class Selector } if ($runtime->hasXdebug()) { - $driver = new XdebugDriver($filter); - - $driver->enableDeadCodeDetection(); - - return $driver; + return new XdebugDriver($filter); } throw new NoCodeCoverageDriverAvailableException; @@ -45,13 +42,13 @@ final class Selector * @throws NoCodeCoverageDriverWithPathCoverageSupportAvailableException * @throws XdebugNotAvailableException * @throws XdebugNotEnabledException + * @throws XdebugVersionNotSupportedException */ public function forLineAndPathCoverage(Filter $filter): Driver { if ((new Runtime)->hasXdebug()) { $driver = new XdebugDriver($filter); - $driver->enableDeadCodeDetection(); $driver->enableBranchAndPathCoverage(); return $driver; diff --git a/vendor/phpunit/php-code-coverage/src/Driver/XdebugDriver.php b/vendor/phpunit/php-code-coverage/src/Driver/XdebugDriver.php index 4afc6e535..5562af296 100644 --- a/vendor/phpunit/php-code-coverage/src/Driver/XdebugDriver.php +++ b/vendor/phpunit/php-code-coverage/src/Driver/XdebugDriver.php @@ -14,11 +14,8 @@ use const XDEBUG_CC_DEAD_CODE; use const XDEBUG_CC_UNUSED; use const XDEBUG_FILTER_CODE_COVERAGE; use const XDEBUG_PATH_INCLUDE; -use function explode; use function extension_loaded; -use function getenv; use function in_array; -use function ini_get; use function phpversion; use function version_compare; use function xdebug_get_code_coverage; @@ -34,8 +31,8 @@ use SebastianBergmann\CodeCoverage\Filter; * * @see https://xdebug.org/docs/code_coverage#xdebug_get_code_coverage * - * @phpstan-type XdebugLinesCoverageType = array - * @phpstan-type XdebugBranchCoverageType = array{ + * @phpstan-type XdebugLinesCoverageType array + * @phpstan-type XdebugBranchCoverageType array{ * op_start: int, * op_end: int, * line_start: int, @@ -44,32 +41,32 @@ use SebastianBergmann\CodeCoverage\Filter; * out: array, * out_hit: array, * } - * @phpstan-type XdebugPathCoverageType = array{ + * @phpstan-type XdebugPathCoverageType array{ * path: array, * hit: int, * } - * @phpstan-type XdebugFunctionCoverageType = array{ + * @phpstan-type XdebugFunctionCoverageType array{ * branches: array, * paths: array, * } - * @phpstan-type XdebugFunctionsCoverageType = array - * @phpstan-type XdebugPathAndBranchesCoverageType = array{ + * @phpstan-type XdebugFunctionsCoverageType array + * @phpstan-type XdebugPathAndBranchesCoverageType array{ * lines: XdebugLinesCoverageType, * functions: XdebugFunctionsCoverageType, * } - * @phpstan-type XdebugCodeCoverageWithoutPathCoverageType = array - * @phpstan-type XdebugCodeCoverageWithPathCoverageType = array + * @phpstan-type XdebugCodeCoverageWithoutPathCoverageType array + * @phpstan-type XdebugCodeCoverageWithPathCoverageType array */ final class XdebugDriver extends Driver { /** * @throws XdebugNotAvailableException * @throws XdebugNotEnabledException + * @throws XdebugVersionNotSupportedException */ public function __construct(Filter $filter) { $this->ensureXdebugIsAvailable(); - $this->ensureXdebugCodeCoverageFeatureIsEnabled(); if (!$filter->isEmpty()) { xdebug_set_filter( @@ -85,18 +82,9 @@ final class XdebugDriver extends Driver return true; } - public function canDetectDeadCode(): bool - { - return true; - } - public function start(): void { - $flags = XDEBUG_CC_UNUSED; - - if ($this->detectsDeadCode() || $this->collectsBranchAndPathCoverage()) { - $flags |= XDEBUG_CC_DEAD_CODE; - } + $flags = XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE; if ($this->collectsBranchAndPathCoverage()) { $flags |= XDEBUG_CC_BRANCH_CHECK; @@ -132,35 +120,20 @@ final class XdebugDriver extends Driver /** * @throws XdebugNotAvailableException + * @throws XdebugNotEnabledException + * @throws XdebugVersionNotSupportedException */ private function ensureXdebugIsAvailable(): void { if (!extension_loaded('xdebug')) { throw new XdebugNotAvailableException; } - } - /** - * @throws XdebugNotEnabledException - */ - private function ensureXdebugCodeCoverageFeatureIsEnabled(): void - { - if (version_compare(phpversion('xdebug'), '3.1', '>=')) { - if (!in_array('coverage', xdebug_info('mode'), true)) { - throw new XdebugNotEnabledException; - } - - return; + if (!version_compare(phpversion('xdebug'), '3.1', '>=')) { + throw new XdebugVersionNotSupportedException(phpversion('xdebug')); } - $mode = getenv('XDEBUG_MODE'); - - if ($mode === false || $mode === '') { - $mode = ini_get('xdebug.mode'); - } - - if ($mode === false || - !in_array('coverage', explode(',', $mode), true)) { + if (!in_array('coverage', xdebug_info('mode'), true)) { throw new XdebugNotEnabledException; } } diff --git a/vendor/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php b/vendor/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php deleted file mode 100644 index d36006489..000000000 --- a/vendor/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeCoverage; - -use RuntimeException; - -final class DeadCodeDetectionNotSupportedException extends RuntimeException implements Exception -{ -} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/InvalidCodeCoverageTargetException.php b/vendor/phpunit/php-code-coverage/src/Exception/InvalidCodeCoverageTargetException.php new file mode 100644 index 000000000..09139585a --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Exception/InvalidCodeCoverageTargetException.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +use function sprintf; +use RuntimeException; +use SebastianBergmann\CodeCoverage\Exception; + +final class InvalidCodeCoverageTargetException extends RuntimeException implements Exception +{ + public function __construct(Target $target) + { + parent::__construct( + sprintf( + '%s is not a valid target for code coverage', + $target->description(), + ), + ); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/PathExistsButIsNotDirectoryException.php b/vendor/phpunit/php-code-coverage/src/Exception/PathExistsButIsNotDirectoryException.php index 54bd73f58..fd6f80a70 100644 --- a/vendor/phpunit/php-code-coverage/src/Exception/PathExistsButIsNotDirectoryException.php +++ b/vendor/phpunit/php-code-coverage/src/Exception/PathExistsButIsNotDirectoryException.php @@ -7,11 +7,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace SebastianBergmann\CodeCoverage\Driver; +namespace SebastianBergmann\CodeCoverage; use function sprintf; use RuntimeException; -use SebastianBergmann\CodeCoverage\Exception; final class PathExistsButIsNotDirectoryException extends RuntimeException implements Exception { diff --git a/vendor/phpunit/php-code-coverage/src/Exception/WriteOperationFailedException.php b/vendor/phpunit/php-code-coverage/src/Exception/WriteOperationFailedException.php index be549e17b..c6b5e516a 100644 --- a/vendor/phpunit/php-code-coverage/src/Exception/WriteOperationFailedException.php +++ b/vendor/phpunit/php-code-coverage/src/Exception/WriteOperationFailedException.php @@ -7,11 +7,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace SebastianBergmann\CodeCoverage\Driver; +namespace SebastianBergmann\CodeCoverage; use function sprintf; use RuntimeException; -use SebastianBergmann\CodeCoverage\Exception; final class WriteOperationFailedException extends RuntimeException implements Exception { diff --git a/vendor/phpunit/php-code-coverage/src/Exception/XdebugVersionNotSupportedException.php b/vendor/phpunit/php-code-coverage/src/Exception/XdebugVersionNotSupportedException.php new file mode 100644 index 000000000..c785af145 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Exception/XdebugVersionNotSupportedException.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Driver; + +use function sprintf; +use RuntimeException; +use SebastianBergmann\CodeCoverage\Exception; + +final class XdebugVersionNotSupportedException extends RuntimeException implements Exception +{ + /** + * @param non-empty-string $version + */ + public function __construct(string $version) + { + parent::__construct( + sprintf( + 'Version %s of the Xdebug extension is not supported', + $version, + ), + ); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Filter.php b/vendor/phpunit/php-code-coverage/src/Filter.php index b7dbdc370..f9086542b 100644 --- a/vendor/phpunit/php-code-coverage/src/Filter.php +++ b/vendor/phpunit/php-code-coverage/src/Filter.php @@ -88,6 +88,6 @@ final class Filter public function isEmpty(): bool { - return empty($this->files); + return $this->files === []; } } diff --git a/vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php b/vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php index 000d03de3..3b54d82b1 100644 --- a/vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php +++ b/vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php @@ -15,20 +15,23 @@ use function str_ends_with; use function str_replace; use function substr; use Countable; +use SebastianBergmann\CodeCoverage\Data\ProcessedClassType; +use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; +use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; +use SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode; use SebastianBergmann\CodeCoverage\Util\Percentage; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage - * - * @phpstan-import-type LinesOfCodeType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser - * @phpstan-import-type ProcessedFunctionType from \SebastianBergmann\CodeCoverage\Node\File - * @phpstan-import-type ProcessedClassType from \SebastianBergmann\CodeCoverage\Node\File - * @phpstan-import-type ProcessedTraitType from \SebastianBergmann\CodeCoverage\Node\File */ abstract class AbstractNode implements Countable { private readonly string $name; private string $pathAsString; + + /** + * @var non-empty-list + */ private array $pathAsArray; private readonly ?AbstractNode $parent; private string $id; @@ -61,6 +64,9 @@ abstract class AbstractNode implements Countable return $this->pathAsString; } + /** + * @return non-empty-list + */ public function pathAsArray(): array { return $this->pathAsArray; @@ -171,6 +177,24 @@ abstract class AbstractNode implements Countable return $this->numberOfTestedFunctions() + $this->numberOfTestedMethods(); } + /** + * @return non-negative-int + */ + public function cyclomaticComplexity(): int + { + $ccn = 0; + + foreach ($this->classesAndTraits() as $classLike) { + $ccn += $classLike->ccn; + } + + foreach ($this->functions() as $function) { + $ccn += $function->ccn; + } + + return $ccn; + } + /** * @return array */ @@ -186,10 +210,7 @@ abstract class AbstractNode implements Countable */ abstract public function functions(): array; - /** - * @return LinesOfCodeType - */ - abstract public function linesOfCode(): array; + abstract public function linesOfCode(): LinesOfCode; abstract public function numberOfExecutableLines(): int; diff --git a/vendor/phpunit/php-code-coverage/src/Node/Builder.php b/vendor/phpunit/php-code-coverage/src/Node/Builder.php index 4dcc7b5c9..7a5ba7165 100644 --- a/vendor/phpunit/php-code-coverage/src/Node/Builder.php +++ b/vendor/phpunit/php-code-coverage/src/Node/Builder.php @@ -17,6 +17,7 @@ use function dirname; use function explode; use function implode; use function is_file; +use function sha1_file; use function str_ends_with; use function str_replace; use function str_starts_with; @@ -28,11 +29,11 @@ use SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage * - * @phpstan-import-type TestType from \SebastianBergmann\CodeCoverage\CodeCoverage + * @phpstan-import-type TestType from CodeCoverage */ -final class Builder +final readonly class Builder { - private readonly FileAnalyser $analyser; + private FileAnalyser $analyser; public function __construct(FileAnalyser $analyser) { @@ -70,17 +71,20 @@ final class Builder $filename = $root->pathAsString() . DIRECTORY_SEPARATOR . $key; if (is_file($filename)) { + $analysisResult = $this->analyser->analyse($filename); + $root->addFile( new File( $key, $root, + sha1_file($filename), $value['lineCoverage'], $value['functionCoverage'], $tests, - $this->analyser->classesIn($filename), - $this->analyser->traitsIn($filename), - $this->analyser->functionsIn($filename), - $this->analyser->linesOfCodeFor($filename), + $analysisResult->classes(), + $analysisResult->traits(), + $analysisResult->functions(), + $analysisResult->linesOfCode(), ), ); } @@ -138,6 +142,9 @@ final class Builder { $result = []; + $lineCoverage = $data->lineCoverage(); + $functionCoverage = $data->functionCoverage(); + foreach ($data->coveredFiles() as $originalPath) { $path = explode(DIRECTORY_SEPARATOR, $originalPath); $pointer = &$result; @@ -154,8 +161,8 @@ final class Builder } $pointer = [ - 'lineCoverage' => $data->lineCoverage()[$originalPath] ?? [], - 'functionCoverage' => $data->functionCoverage()[$originalPath] ?? [], + 'lineCoverage' => $lineCoverage[$originalPath] ?? [], + 'functionCoverage' => $functionCoverage[$originalPath] ?? [], ]; } @@ -201,12 +208,14 @@ final class Builder */ private function reducePaths(ProcessedCodeCoverageData $coverage): string { - if (empty($coverage->coveredFiles())) { + $coveredFiles = $coverage->coveredFiles(); + + if ($coveredFiles === []) { return '.'; } $commonPath = ''; - $paths = $coverage->coveredFiles(); + $paths = $coveredFiles; if (count($paths) === 1) { $commonPath = dirname($paths[0]) . DIRECTORY_SEPARATOR; @@ -223,9 +232,10 @@ final class Builder $paths[$i] = substr($paths[$i], 7); $paths[$i] = str_replace('/', DIRECTORY_SEPARATOR, $paths[$i]); } + $paths[$i] = explode(DIRECTORY_SEPARATOR, $paths[$i]); - if (empty($paths[$i][0])) { + if ($paths[$i][0] === '') { $paths[$i][0] = DIRECTORY_SEPARATOR; } } @@ -257,7 +267,7 @@ final class Builder } } - $original = $coverage->coveredFiles(); + $original = $coveredFiles; $max = count($original); for ($i = 0; $i < $max; $i++) { diff --git a/vendor/phpunit/php-code-coverage/src/Node/CrapIndex.php b/vendor/phpunit/php-code-coverage/src/Node/CrapIndex.php index 7173276c6..a07a55048 100644 --- a/vendor/phpunit/php-code-coverage/src/Node/CrapIndex.php +++ b/vendor/phpunit/php-code-coverage/src/Node/CrapIndex.php @@ -14,10 +14,10 @@ use function sprintf; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ -final class CrapIndex +final readonly class CrapIndex { - private readonly int $cyclomaticComplexity; - private readonly float $codeCoverage; + private int $cyclomaticComplexity; + private float $codeCoverage; public function __construct(int $cyclomaticComplexity, float $codeCoverage) { diff --git a/vendor/phpunit/php-code-coverage/src/Node/Directory.php b/vendor/phpunit/php-code-coverage/src/Node/Directory.php index 335acd031..818d665dd 100644 --- a/vendor/phpunit/php-code-coverage/src/Node/Directory.php +++ b/vendor/phpunit/php-code-coverage/src/Node/Directory.php @@ -14,11 +14,15 @@ use function assert; use function count; use IteratorAggregate; use RecursiveIteratorIterator; +use SebastianBergmann\CodeCoverage\Data\ProcessedClassType; +use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; +use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; +use SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode; /** - * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + * @template-implements IteratorAggregate * - * @phpstan-import-type LinesOfCodeType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ final class Directory extends AbstractNode implements IteratorAggregate { @@ -35,15 +39,23 @@ final class Directory extends AbstractNode implements IteratorAggregate /** * @var list */ - private array $files = []; - private ?array $classes = null; - private ?array $traits = null; - private ?array $functions = null; + private array $files = []; /** - * @var null|LinesOfCodeType + * @var ?array */ - private ?array $linesOfCode = null; + private ?array $classes = null; + + /** + * @var ?array + */ + private ?array $traits = null; + + /** + * @var ?array + */ + private ?array $functions = null; + private ?LinesOfCode $linesOfCode = null; private int $numFiles = -1; private int $numExecutableLines = -1; private int $numExecutedLines = -1; @@ -73,6 +85,9 @@ final class Directory extends AbstractNode implements IteratorAggregate return $this->numFiles; } + /** + * @return RecursiveIteratorIterator> + */ public function getIterator(): RecursiveIteratorIterator { return new RecursiveIteratorIterator( @@ -102,21 +117,33 @@ final class Directory extends AbstractNode implements IteratorAggregate $this->numExecutedLines = -1; } + /** + * @return list + */ public function directories(): array { return $this->directories; } + /** + * @return list + */ public function files(): array { return $this->files; } + /** + * @return list + */ public function children(): array { return $this->children; } + /** + * @return array + */ public function classes(): array { if ($this->classes === null) { @@ -133,6 +160,9 @@ final class Directory extends AbstractNode implements IteratorAggregate return $this->classes; } + /** + * @return array + */ public function traits(): array { if ($this->traits === null) { @@ -149,6 +179,9 @@ final class Directory extends AbstractNode implements IteratorAggregate return $this->traits; } + /** + * @return array + */ public function functions(): array { if ($this->functions === null) { @@ -165,25 +198,22 @@ final class Directory extends AbstractNode implements IteratorAggregate return $this->functions; } - /** - * @return LinesOfCodeType - */ - public function linesOfCode(): array + public function linesOfCode(): LinesOfCode { if ($this->linesOfCode === null) { - $this->linesOfCode = [ - 'linesOfCode' => 0, - 'commentLinesOfCode' => 0, - 'nonCommentLinesOfCode' => 0, - ]; + $linesOfCode = 0; + $commentLinesOfCode = 0; + $nonCommentLinesOfCode = 0; foreach ($this->children as $child) { $childLinesOfCode = $child->linesOfCode(); - $this->linesOfCode['linesOfCode'] += $childLinesOfCode['linesOfCode']; - $this->linesOfCode['commentLinesOfCode'] += $childLinesOfCode['commentLinesOfCode']; - $this->linesOfCode['nonCommentLinesOfCode'] += $childLinesOfCode['nonCommentLinesOfCode']; + $linesOfCode += $childLinesOfCode->linesOfCode(); + $commentLinesOfCode += $childLinesOfCode->commentLinesOfCode(); + $nonCommentLinesOfCode += $childLinesOfCode->nonCommentLinesOfCode(); } + + $this->linesOfCode = new LinesOfCode($linesOfCode, $commentLinesOfCode, $nonCommentLinesOfCode); } return $this->linesOfCode; diff --git a/vendor/phpunit/php-code-coverage/src/Node/File.php b/vendor/phpunit/php-code-coverage/src/Node/File.php index ec81b2395..070bbf71f 100644 --- a/vendor/phpunit/php-code-coverage/src/Node/File.php +++ b/vendor/phpunit/php-code-coverage/src/Node/File.php @@ -12,91 +12,42 @@ namespace SebastianBergmann\CodeCoverage\Node; use function array_filter; use function count; use function range; +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Data\ProcessedBranchCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedClassType; +use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; +use SebastianBergmann\CodeCoverage\Data\ProcessedMethodType; +use SebastianBergmann\CodeCoverage\Data\ProcessedPathCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; +use SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult; +use SebastianBergmann\CodeCoverage\StaticAnalysis\Class_; +use SebastianBergmann\CodeCoverage\StaticAnalysis\Function_; +use SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode; +use SebastianBergmann\CodeCoverage\StaticAnalysis\Method; +use SebastianBergmann\CodeCoverage\StaticAnalysis\Trait_; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage * - * @phpstan-import-type CodeUnitFunctionType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor - * @phpstan-import-type CodeUnitMethodType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor - * @phpstan-import-type CodeUnitClassType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor - * @phpstan-import-type CodeUnitTraitType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor - * @phpstan-import-type LinesOfCodeType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser - * @phpstan-import-type LinesType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser - * - * @phpstan-type ProcessedFunctionType = array{ - * functionName: string, - * namespace: string, - * signature: string, - * startLine: int, - * endLine: int, - * executableLines: int, - * executedLines: int, - * executableBranches: int, - * executedBranches: int, - * executablePaths: int, - * executedPaths: int, - * ccn: int, - * coverage: int|float, - * crap: int|string, - * link: string - * } - * @phpstan-type ProcessedMethodType = array{ - * methodName: string, - * visibility: string, - * signature: string, - * startLine: int, - * endLine: int, - * executableLines: int, - * executedLines: int, - * executableBranches: int, - * executedBranches: int, - * executablePaths: int, - * executedPaths: int, - * ccn: int, - * coverage: float|int, - * crap: int|string, - * link: string - * } - * @phpstan-type ProcessedClassType = array{ - * className: string, - * namespace: string, - * methods: array, - * startLine: int, - * executableLines: int, - * executedLines: int, - * executableBranches: int, - * executedBranches: int, - * executablePaths: int, - * executedPaths: int, - * ccn: int, - * coverage: int|float, - * crap: int|string, - * link: string - * } - * @phpstan-type ProcessedTraitType = array{ - * traitName: string, - * namespace: string, - * methods: array, - * startLine: int, - * executableLines: int, - * executedLines: int, - * executableBranches: int, - * executedBranches: int, - * executablePaths: int, - * executedPaths: int, - * ccn: int, - * coverage: float|int, - * crap: int|string, - * link: string - * } + * @phpstan-import-type TestType from CodeCoverage + * @phpstan-import-type LinesType from AnalysisResult */ final class File extends AbstractNode { + /** + * @var non-empty-string + */ + private string $sha1; + /** * @var array> */ private array $lineCoverageData; private array $functionCoverageData; + + /** + * @var array + */ private readonly array $testData; private int $numExecutableLines = 0; private int $numExecutedLines = 0; @@ -119,11 +70,7 @@ final class File extends AbstractNode * @var array */ private array $functions = []; - - /** - * @var LinesOfCodeType - */ - private readonly array $linesOfCode; + private readonly LinesOfCode $linesOfCode; private ?int $numClasses = null; private int $numTestedClasses = 0; private ?int $numTraits = null; @@ -133,21 +80,23 @@ final class File extends AbstractNode private ?int $numTestedFunctions = null; /** - * @var array + * @var array */ private array $codeUnitsByLine = []; /** + * @param non-empty-string $sha1 * @param array> $lineCoverageData - * @param array $classes - * @param array $traits - * @param array $functions - * @param LinesOfCodeType $linesOfCode + * @param array $testData + * @param array $classes + * @param array $traits + * @param array $functions */ - public function __construct(string $name, AbstractNode $parent, array $lineCoverageData, array $functionCoverageData, array $testData, array $classes, array $traits, array $functions, array $linesOfCode) + public function __construct(string $name, AbstractNode $parent, string $sha1, array $lineCoverageData, array $functionCoverageData, array $testData, array $classes, array $traits, array $functions, LinesOfCode $linesOfCode) { parent::__construct($name, $parent); + $this->sha1 = $sha1; $this->lineCoverageData = $lineCoverageData; $this->functionCoverageData = $functionCoverageData; $this->testData = $testData; @@ -161,6 +110,14 @@ final class File extends AbstractNode return 1; } + /** + * @return non-empty-string + */ + public function sha1(): string + { + return $this->sha1; + } + /** * @return array> */ @@ -174,6 +131,9 @@ final class File extends AbstractNode return $this->functionCoverageData; } + /** + * @return array + */ public function testData(): array { return $this->testData; @@ -203,7 +163,7 @@ final class File extends AbstractNode return $this->functions; } - public function linesOfCode(): array + public function linesOfCode(): LinesOfCode { return $this->linesOfCode; } @@ -244,8 +204,8 @@ final class File extends AbstractNode $this->numClasses = 0; foreach ($this->classes as $class) { - foreach ($class['methods'] as $method) { - if ($method['executableLines'] > 0) { + foreach ($class->methods as $method) { + if ($method->executableLines > 0) { $this->numClasses++; continue 2; @@ -268,8 +228,8 @@ final class File extends AbstractNode $this->numTraits = 0; foreach ($this->traits as $trait) { - foreach ($trait['methods'] as $method) { - if ($method['executableLines'] > 0) { + foreach ($trait->methods as $method) { + if ($method->executableLines > 0) { $this->numTraits++; continue 2; @@ -292,16 +252,16 @@ final class File extends AbstractNode $this->numMethods = 0; foreach ($this->classes as $class) { - foreach ($class['methods'] as $method) { - if ($method['executableLines'] > 0) { + foreach ($class->methods as $method) { + if ($method->executableLines > 0) { $this->numMethods++; } } } foreach ($this->traits as $trait) { - foreach ($trait['methods'] as $method) { - if ($method['executableLines'] > 0) { + foreach ($trait->methods as $method) { + if ($method->executableLines > 0) { $this->numMethods++; } } @@ -317,18 +277,18 @@ final class File extends AbstractNode $this->numTestedMethods = 0; foreach ($this->classes as $class) { - foreach ($class['methods'] as $method) { - if ($method['executableLines'] > 0 && - $method['coverage'] === 100) { + foreach ($class->methods as $method) { + if ($method->executableLines > 0 && + $method->coverage === 100) { $this->numTestedMethods++; } } } foreach ($this->traits as $trait) { - foreach ($trait['methods'] as $method) { - if ($method['executableLines'] > 0 && - $method['coverage'] === 100) { + foreach ($trait->methods as $method) { + if ($method->executableLines > 0 && + $method->coverage === 100) { $this->numTestedMethods++; } } @@ -349,8 +309,8 @@ final class File extends AbstractNode $this->numTestedFunctions = 0; foreach ($this->functions as $function) { - if ($function['executableLines'] > 0 && - $function['coverage'] === 100) { + if ($function->executableLines > 0 && + $function->coverage === 100) { $this->numTestedFunctions++; } } @@ -360,13 +320,13 @@ final class File extends AbstractNode } /** - * @param array $classes - * @param array $traits - * @param array $functions + * @param array $classes + * @param array $traits + * @param array $functions */ private function calculateStatistics(array $classes, array $traits, array $functions): void { - foreach (range(1, $this->linesOfCode['linesOfCode']) as $lineNumber) { + foreach (range(1, $this->linesOfCode->linesOfCode()) as $lineNumber) { $this->codeUnitsByLine[$lineNumber] = []; } @@ -374,10 +334,10 @@ final class File extends AbstractNode $this->processTraits($traits); $this->processFunctions($functions); - foreach (range(1, $this->linesOfCode['linesOfCode']) as $lineNumber) { + foreach (range(1, $this->linesOfCode->linesOfCode()) as $lineNumber) { if (isset($this->lineCoverageData[$lineNumber])) { foreach ($this->codeUnitsByLine[$lineNumber] as &$codeUnit) { - $codeUnit['executableLines']++; + $codeUnit->executableLines++; } unset($codeUnit); @@ -386,7 +346,7 @@ final class File extends AbstractNode if (count($this->lineCoverageData[$lineNumber]) > 0) { foreach ($this->codeUnitsByLine[$lineNumber] as &$codeUnit) { - $codeUnit['executedLines']++; + $codeUnit->executedLines++; } unset($codeUnit); @@ -397,55 +357,55 @@ final class File extends AbstractNode } foreach ($this->traits as &$trait) { - foreach ($trait['methods'] as &$method) { - $methodLineCoverage = $method['executableLines'] ? ($method['executedLines'] / $method['executableLines']) * 100 : 100; - $methodBranchCoverage = $method['executableBranches'] ? ($method['executedBranches'] / $method['executableBranches']) * 100 : 0; - $methodPathCoverage = $method['executablePaths'] ? ($method['executedPaths'] / $method['executablePaths']) * 100 : 0; + foreach ($trait->methods as &$method) { + $methodLineCoverage = $method->executableLines > 0 ? ($method->executedLines / $method->executableLines) * 100 : 100; + $methodBranchCoverage = $method->executableBranches > 0 ? ($method->executedBranches / $method->executableBranches) * 100 : 0; + $methodPathCoverage = $method->executablePaths > 0 ? ($method->executedPaths / $method->executablePaths) * 100 : 0; - $method['coverage'] = $methodBranchCoverage ?: $methodLineCoverage; - $method['crap'] = (new CrapIndex($method['ccn'], $methodPathCoverage ?: $methodLineCoverage))->asString(); + $method->coverage = $methodBranchCoverage > 0 ? $methodBranchCoverage : $methodLineCoverage; + $method->crap = (new CrapIndex($method->ccn, $methodPathCoverage > 0 ? $methodPathCoverage : $methodLineCoverage))->asString(); - $trait['ccn'] += $method['ccn']; + $trait->ccn += $method->ccn; } unset($method); - $traitLineCoverage = $trait['executableLines'] ? ($trait['executedLines'] / $trait['executableLines']) * 100 : 100; - $traitBranchCoverage = $trait['executableBranches'] ? ($trait['executedBranches'] / $trait['executableBranches']) * 100 : 0; - $traitPathCoverage = $trait['executablePaths'] ? ($trait['executedPaths'] / $trait['executablePaths']) * 100 : 0; + $traitBranchCoverage = $trait->executableBranches > 0 ? ($trait->executedBranches / $trait->executableBranches) * 100 : 0; + $traitLineCoverage = $trait->executableLines > 0 ? ($trait->executedLines / $trait->executableLines) * 100 : 100; + $traitPathCoverage = $trait->executablePaths > 0 ? ($trait->executedPaths / $trait->executablePaths) * 100 : 0; - $trait['coverage'] = $traitBranchCoverage ?: $traitLineCoverage; - $trait['crap'] = (new CrapIndex($trait['ccn'], $traitPathCoverage ?: $traitLineCoverage))->asString(); + $trait->coverage = $traitBranchCoverage > 0 ? $traitBranchCoverage : $traitLineCoverage; + $trait->crap = (new CrapIndex($trait->ccn, $traitPathCoverage > 0 ? $traitPathCoverage : $traitLineCoverage))->asString(); - if ($trait['executableLines'] > 0 && $trait['coverage'] === 100) { - $this->numTestedClasses++; + if ($trait->executableLines > 0 && $trait->coverage === 100) { + $this->numTestedTraits++; } } unset($trait); foreach ($this->classes as &$class) { - foreach ($class['methods'] as &$method) { - $methodLineCoverage = $method['executableLines'] ? ($method['executedLines'] / $method['executableLines']) * 100 : 100; - $methodBranchCoverage = $method['executableBranches'] ? ($method['executedBranches'] / $method['executableBranches']) * 100 : 0; - $methodPathCoverage = $method['executablePaths'] ? ($method['executedPaths'] / $method['executablePaths']) * 100 : 0; + foreach ($class->methods as &$method) { + $methodLineCoverage = $method->executableLines > 0 ? ($method->executedLines / $method->executableLines) * 100 : 100; + $methodBranchCoverage = $method->executableBranches > 0 ? ($method->executedBranches / $method->executableBranches) * 100 : 0; + $methodPathCoverage = $method->executablePaths > 0 ? ($method->executedPaths / $method->executablePaths) * 100 : 0; - $method['coverage'] = $methodBranchCoverage ?: $methodLineCoverage; - $method['crap'] = (new CrapIndex($method['ccn'], $methodPathCoverage ?: $methodLineCoverage))->asString(); + $method->coverage = $methodBranchCoverage > 0 ? $methodBranchCoverage : $methodLineCoverage; + $method->crap = (new CrapIndex($method->ccn, $methodPathCoverage > 0 ? $methodPathCoverage : $methodLineCoverage))->asString(); - $class['ccn'] += $method['ccn']; + $class->ccn += $method->ccn; } unset($method); - $classLineCoverage = $class['executableLines'] ? ($class['executedLines'] / $class['executableLines']) * 100 : 100; - $classBranchCoverage = $class['executableBranches'] ? ($class['executedBranches'] / $class['executableBranches']) * 100 : 0; - $classPathCoverage = $class['executablePaths'] ? ($class['executedPaths'] / $class['executablePaths']) * 100 : 0; + $classLineCoverage = $class->executableLines > 0 ? ($class->executedLines / $class->executableLines) * 100 : 100; + $classBranchCoverage = $class->executableBranches > 0 ? ($class->executedBranches / $class->executableBranches) * 100 : 0; + $classPathCoverage = $class->executablePaths > 0 ? ($class->executedPaths / $class->executablePaths) * 100 : 0; - $class['coverage'] = $classBranchCoverage ?: $classLineCoverage; - $class['crap'] = (new CrapIndex($class['ccn'], $classPathCoverage ?: $classLineCoverage))->asString(); + $class->coverage = $classBranchCoverage > 0 ? $classBranchCoverage : $classLineCoverage; + $class->crap = (new CrapIndex($class->ccn, $classPathCoverage > 0 ? $classPathCoverage : $classLineCoverage))->asString(); - if ($class['executableLines'] > 0 && $class['coverage'] === 100) { + if ($class->executableLines > 0 && $class->coverage === 100) { $this->numTestedClasses++; } } @@ -453,62 +413,62 @@ final class File extends AbstractNode unset($class); foreach ($this->functions as &$function) { - $functionLineCoverage = $function['executableLines'] ? ($function['executedLines'] / $function['executableLines']) * 100 : 100; - $functionBranchCoverage = $function['executableBranches'] ? ($function['executedBranches'] / $function['executableBranches']) * 100 : 0; - $functionPathCoverage = $function['executablePaths'] ? ($function['executedPaths'] / $function['executablePaths']) * 100 : 0; + $functionLineCoverage = $function->executableLines > 0 ? ($function->executedLines / $function->executableLines) * 100 : 100; + $functionBranchCoverage = $function->executableBranches > 0 ? ($function->executedBranches / $function->executableBranches) * 100 : 0; + $functionPathCoverage = $function->executablePaths > 0 ? ($function->executedPaths / $function->executablePaths) * 100 : 0; - $function['coverage'] = $functionBranchCoverage ?: $functionLineCoverage; - $function['crap'] = (new CrapIndex($function['ccn'], $functionPathCoverage ?: $functionLineCoverage))->asString(); + $function->coverage = $functionBranchCoverage > 0 ? $functionBranchCoverage : $functionLineCoverage; + $function->crap = (new CrapIndex($function->ccn, $functionPathCoverage > 0 ? $functionPathCoverage : $functionLineCoverage))->asString(); - if ($function['coverage'] === 100) { + if ($function->coverage === 100) { $this->numTestedFunctions++; } } } /** - * @param array $classes + * @param array $classes */ private function processClasses(array $classes): void { $link = $this->id() . '.html#'; foreach ($classes as $className => $class) { - $this->classes[$className] = [ - 'className' => $className, - 'namespace' => $class['namespace'], - 'methods' => [], - 'startLine' => $class['startLine'], - 'executableLines' => 0, - 'executedLines' => 0, - 'executableBranches' => 0, - 'executedBranches' => 0, - 'executablePaths' => 0, - 'executedPaths' => 0, - 'ccn' => 0, - 'coverage' => 0, - 'crap' => 0, - 'link' => $link . $class['startLine'], - ]; + $this->classes[$className] = new ProcessedClassType( + $className, + $class->namespace(), + [], + $class->startLine(), + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + $link . $class->startLine(), + ); - foreach ($class['methods'] as $methodName => $method) { - $methodData = $this->newMethod($className, $methodName, $method, $link); - $this->classes[$className]['methods'][$methodName] = $methodData; + foreach ($class->methods() as $methodName => $method) { + $methodData = $this->newMethod($className, $method, $link); + $this->classes[$className]->methods[$methodName] = $methodData; - $this->classes[$className]['executableBranches'] += $methodData['executableBranches']; - $this->classes[$className]['executedBranches'] += $methodData['executedBranches']; - $this->classes[$className]['executablePaths'] += $methodData['executablePaths']; - $this->classes[$className]['executedPaths'] += $methodData['executedPaths']; + $this->classes[$className]->executableBranches += $methodData->executableBranches; + $this->classes[$className]->executedBranches += $methodData->executedBranches; + $this->classes[$className]->executablePaths += $methodData->executablePaths; + $this->classes[$className]->executedPaths += $methodData->executedPaths; - $this->numExecutableBranches += $methodData['executableBranches']; - $this->numExecutedBranches += $methodData['executedBranches']; - $this->numExecutablePaths += $methodData['executablePaths']; - $this->numExecutedPaths += $methodData['executedPaths']; + $this->numExecutableBranches += $methodData->executableBranches; + $this->numExecutedBranches += $methodData->executedBranches; + $this->numExecutablePaths += $methodData->executablePaths; + $this->numExecutedPaths += $methodData->executedPaths; - foreach (range($method['startLine'], $method['endLine']) as $lineNumber) { + foreach (range($method->startLine(), $method->endLine()) as $lineNumber) { $this->codeUnitsByLine[$lineNumber] = [ &$this->classes[$className], - &$this->classes[$className]['methods'][$methodName], + &$this->classes[$className]->methods[$methodName], ]; } } @@ -516,48 +476,48 @@ final class File extends AbstractNode } /** - * @param array $traits + * @param array $traits */ private function processTraits(array $traits): void { $link = $this->id() . '.html#'; foreach ($traits as $traitName => $trait) { - $this->traits[$traitName] = [ - 'traitName' => $traitName, - 'namespace' => $trait['namespace'], - 'methods' => [], - 'startLine' => $trait['startLine'], - 'executableLines' => 0, - 'executedLines' => 0, - 'executableBranches' => 0, - 'executedBranches' => 0, - 'executablePaths' => 0, - 'executedPaths' => 0, - 'ccn' => 0, - 'coverage' => 0, - 'crap' => 0, - 'link' => $link . $trait['startLine'], - ]; + $this->traits[$traitName] = new ProcessedTraitType( + $traitName, + $trait->namespace(), + [], + $trait->startLine(), + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + $link . $trait->startLine(), + ); - foreach ($trait['methods'] as $methodName => $method) { - $methodData = $this->newMethod($traitName, $methodName, $method, $link); - $this->traits[$traitName]['methods'][$methodName] = $methodData; + foreach ($trait->methods() as $methodName => $method) { + $methodData = $this->newMethod($traitName, $method, $link); + $this->traits[$traitName]->methods[$methodName] = $methodData; - $this->traits[$traitName]['executableBranches'] += $methodData['executableBranches']; - $this->traits[$traitName]['executedBranches'] += $methodData['executedBranches']; - $this->traits[$traitName]['executablePaths'] += $methodData['executablePaths']; - $this->traits[$traitName]['executedPaths'] += $methodData['executedPaths']; + $this->traits[$traitName]->executableBranches += $methodData->executableBranches; + $this->traits[$traitName]->executedBranches += $methodData->executedBranches; + $this->traits[$traitName]->executablePaths += $methodData->executablePaths; + $this->traits[$traitName]->executedPaths += $methodData->executedPaths; - $this->numExecutableBranches += $methodData['executableBranches']; - $this->numExecutedBranches += $methodData['executedBranches']; - $this->numExecutablePaths += $methodData['executablePaths']; - $this->numExecutedPaths += $methodData['executedPaths']; + $this->numExecutableBranches += $methodData->executableBranches; + $this->numExecutedBranches += $methodData->executedBranches; + $this->numExecutablePaths += $methodData->executablePaths; + $this->numExecutedPaths += $methodData->executedPaths; - foreach (range($method['startLine'], $method['endLine']) as $lineNumber) { + foreach (range($method->startLine(), $method->endLine()) as $lineNumber) { $this->codeUnitsByLine[$lineNumber] = [ &$this->traits[$traitName], - &$this->traits[$traitName]['methods'][$methodName], + &$this->traits[$traitName]->methods[$methodName], ]; } } @@ -565,133 +525,132 @@ final class File extends AbstractNode } /** - * @param array $functions + * @param array $functions */ private function processFunctions(array $functions): void { $link = $this->id() . '.html#'; foreach ($functions as $functionName => $function) { - $this->functions[$functionName] = [ - 'functionName' => $functionName, - 'namespace' => $function['namespace'], - 'signature' => $function['signature'], - 'startLine' => $function['startLine'], - 'endLine' => $function['endLine'], - 'executableLines' => 0, - 'executedLines' => 0, - 'executableBranches' => 0, - 'executedBranches' => 0, - 'executablePaths' => 0, - 'executedPaths' => 0, - 'ccn' => $function['ccn'], - 'coverage' => 0, - 'crap' => 0, - 'link' => $link . $function['startLine'], - ]; + $this->functions[$functionName] = new ProcessedFunctionType( + $functionName, + $function->namespace(), + $function->signature(), + $function->startLine(), + $function->endLine(), + 0, + 0, + 0, + 0, + 0, + 0, + $function->cyclomaticComplexity(), + 0, + 0, + $link . $function->startLine(), + ); - foreach (range($function['startLine'], $function['endLine']) as $lineNumber) { + foreach (range($function->startLine(), $function->endLine()) as $lineNumber) { $this->codeUnitsByLine[$lineNumber] = [&$this->functions[$functionName]]; } - if (isset($this->functionCoverageData[$functionName]['branches'])) { - $this->functions[$functionName]['executableBranches'] = count( - $this->functionCoverageData[$functionName]['branches'], + if (isset($this->functionCoverageData[$functionName])) { + $this->functions[$functionName]->executableBranches = count( + $this->functionCoverageData[$functionName]->branches, ); - $this->functions[$functionName]['executedBranches'] = count( + $this->functions[$functionName]->executedBranches = count( array_filter( - $this->functionCoverageData[$functionName]['branches'], - static function (array $branch) + $this->functionCoverageData[$functionName]->branches, + static function (ProcessedBranchCoverageData $branch) { - return (bool) $branch['hit']; + return (bool) $branch->hit; }, ), ); } - if (isset($this->functionCoverageData[$functionName]['paths'])) { - $this->functions[$functionName]['executablePaths'] = count( - $this->functionCoverageData[$functionName]['paths'], + if (isset($this->functionCoverageData[$functionName])) { + $this->functions[$functionName]->executablePaths = count( + $this->functionCoverageData[$functionName]->paths, ); - $this->functions[$functionName]['executedPaths'] = count( + $this->functions[$functionName]->executedPaths = count( array_filter( - $this->functionCoverageData[$functionName]['paths'], - static function (array $path) + $this->functionCoverageData[$functionName]->paths, + static function (ProcessedPathCoverageData $path) { - return (bool) $path['hit']; + return (bool) $path->hit; }, ), ); } - $this->numExecutableBranches += $this->functions[$functionName]['executableBranches']; - $this->numExecutedBranches += $this->functions[$functionName]['executedBranches']; - $this->numExecutablePaths += $this->functions[$functionName]['executablePaths']; - $this->numExecutedPaths += $this->functions[$functionName]['executedPaths']; + $this->numExecutableBranches += $this->functions[$functionName]->executableBranches; + $this->numExecutedBranches += $this->functions[$functionName]->executedBranches; + $this->numExecutablePaths += $this->functions[$functionName]->executablePaths; + $this->numExecutedPaths += $this->functions[$functionName]->executedPaths; } } - /** - * @param CodeUnitMethodType $method - * - * @return ProcessedMethodType - */ - private function newMethod(string $className, string $methodName, array $method, string $link): array + private function newMethod(string $className, Method $method, string $link): ProcessedMethodType { - $methodData = [ - 'methodName' => $methodName, - 'visibility' => $method['visibility'], - 'signature' => $method['signature'], - 'startLine' => $method['startLine'], - 'endLine' => $method['endLine'], - 'executableLines' => 0, - 'executedLines' => 0, - 'executableBranches' => 0, - 'executedBranches' => 0, - 'executablePaths' => 0, - 'executedPaths' => 0, - 'ccn' => $method['ccn'], - 'coverage' => 0, - 'crap' => 0, - 'link' => $link . $method['startLine'], - ]; + $key = $className . '->' . $method->name(); - $key = $className . '->' . $methodName; + $executableBranches = 0; + $executedBranches = 0; - if (isset($this->functionCoverageData[$key]['branches'])) { - $methodData['executableBranches'] = count( - $this->functionCoverageData[$key]['branches'], + if (isset($this->functionCoverageData[$key])) { + $executableBranches = count( + $this->functionCoverageData[$key]->branches, ); - $methodData['executedBranches'] = count( + $executedBranches = count( array_filter( - $this->functionCoverageData[$key]['branches'], - static function (array $branch) + $this->functionCoverageData[$key]->branches, + static function (ProcessedBranchCoverageData $branch) { - return (bool) $branch['hit']; + return (bool) $branch->hit; }, ), ); } - if (isset($this->functionCoverageData[$key]['paths'])) { - $methodData['executablePaths'] = count( - $this->functionCoverageData[$key]['paths'], + $executablePaths = 0; + $executedPaths = 0; + + if (isset($this->functionCoverageData[$key])) { + $executablePaths = count( + $this->functionCoverageData[$key]->paths, ); - $methodData['executedPaths'] = count( + $executedPaths = count( array_filter( - $this->functionCoverageData[$key]['paths'], - static function (array $path) + $this->functionCoverageData[$key]->paths, + static function (ProcessedPathCoverageData $path) { - return (bool) $path['hit']; + return (bool) $path->hit; }, ), ); } - return $methodData; + return new ProcessedMethodType( + $method->name(), + $method->visibility()->value, + $method->signature(), + $method->startLine(), + $method->endLine(), + 0, + 0, + $executableBranches, + $executedBranches, + $executablePaths, + $executedPaths, + $method->cyclomaticComplexity(), + 0, + 0, + $link . $method->startLine(), + ); } } diff --git a/vendor/phpunit/php-code-coverage/src/Node/Iterator.php b/vendor/phpunit/php-code-coverage/src/Node/Iterator.php index b110d4679..ab3c8eb98 100644 --- a/vendor/phpunit/php-code-coverage/src/Node/Iterator.php +++ b/vendor/phpunit/php-code-coverage/src/Node/Iterator.php @@ -9,10 +9,13 @@ */ namespace SebastianBergmann\CodeCoverage\Node; +use function assert; use function count; use RecursiveIterator; /** + * @template-implements RecursiveIterator + * * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ final class Iterator implements RecursiveIterator @@ -29,57 +32,38 @@ final class Iterator implements RecursiveIterator $this->nodes = $node->children(); } - /** - * Rewinds the Iterator to the first element. - */ public function rewind(): void { $this->position = 0; } - /** - * Checks if there is a current element after calls to rewind() or next(). - */ public function valid(): bool { return $this->position < count($this->nodes); } - /** - * Returns the key of the current element. - */ public function key(): int { return $this->position; } - /** - * Returns the current element. - */ public function current(): ?AbstractNode { return $this->valid() ? $this->nodes[$this->position] : null; } - /** - * Moves forward to next element. - */ public function next(): void { $this->position++; } - /** - * Returns the sub iterator for the current element. - */ public function getChildren(): self { + assert($this->nodes[$this->position] instanceof Directory); + return new self($this->nodes[$this->position]); } - /** - * Checks whether the current element has children. - */ public function hasChildren(): bool { return $this->nodes[$this->position] instanceof Directory; diff --git a/vendor/phpunit/php-code-coverage/src/Report/Clover.php b/vendor/phpunit/php-code-coverage/src/Report/Clover.php index 14d3a15b5..8e59d4c65 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Clover.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Clover.php @@ -17,10 +17,10 @@ use function range; use function time; use DOMDocument; use SebastianBergmann\CodeCoverage\CodeCoverage; -use SebastianBergmann\CodeCoverage\Driver\WriteOperationFailedException; use SebastianBergmann\CodeCoverage\Node\File; use SebastianBergmann\CodeCoverage\Util\Filesystem; use SebastianBergmann\CodeCoverage\Util\Xml; +use SebastianBergmann\CodeCoverage\WriteOperationFailedException; final class Clover { @@ -74,37 +74,39 @@ final class Clover $classMethods = 0; // Assumption: one namespace per file - if ($class['namespace'] !== '') { - $namespace = $class['namespace']; + if ($class->namespace !== '') { + $namespace = $class->namespace; } - foreach ($class['methods'] as $methodName => $method) { - if ($method['executableLines'] == 0) { + foreach ($class->methods as $methodName => $method) { + /** @phpstan-ignore equal.notAllowed */ + if ($method->executableLines == 0) { continue; } $classMethods++; - $classStatements += $method['executableLines']; - $coveredClassStatements += $method['executedLines']; + $classStatements += $method->executableLines; + $coveredClassStatements += $method->executedLines; - if ($method['coverage'] == 100) { + /** @phpstan-ignore equal.notAllowed */ + if ($method->coverage == 100) { $coveredMethods++; } $methodCount = 0; - foreach (range($method['startLine'], $method['endLine']) as $line) { + foreach (range($method->startLine, $method->endLine) as $line) { if (isset($coverageData[$line])) { $methodCount = max($methodCount, count($coverageData[$line])); } } - $lines[$method['startLine']] = [ - 'ccn' => $method['ccn'], + $lines[$method->startLine] = [ + 'ccn' => $method->ccn, 'count' => $methodCount, - 'crap' => $method['crap'], + 'crap' => $method->crap, 'type' => 'method', - 'visibility' => $method['visibility'], + 'visibility' => $method->visibility, 'name' => $methodName, ]; } @@ -116,15 +118,15 @@ final class Clover $xmlFile->appendChild($xmlClass); $xmlMetrics = $xmlDocument->createElement('metrics'); - $xmlMetrics->setAttribute('complexity', (string) $class['ccn']); + $xmlMetrics->setAttribute('complexity', (string) $class->ccn); $xmlMetrics->setAttribute('methods', (string) $classMethods); $xmlMetrics->setAttribute('coveredmethods', (string) $coveredMethods); - $xmlMetrics->setAttribute('conditionals', (string) $class['executableBranches']); - $xmlMetrics->setAttribute('coveredconditionals', (string) $class['executedBranches']); + $xmlMetrics->setAttribute('conditionals', (string) $class->executableBranches); + $xmlMetrics->setAttribute('coveredconditionals', (string) $class->executedBranches); $xmlMetrics->setAttribute('statements', (string) $classStatements); $xmlMetrics->setAttribute('coveredstatements', (string) $coveredClassStatements); - $xmlMetrics->setAttribute('elements', (string) ($classMethods + $classStatements + $class['executableBranches'])); - $xmlMetrics->setAttribute('coveredelements', (string) ($coveredMethods + $coveredClassStatements + $class['executedBranches'])); + $xmlMetrics->setAttribute('elements', (string) ($classMethods + $classStatements + $class->executableBranches)); + $xmlMetrics->setAttribute('coveredelements', (string) ($coveredMethods + $coveredClassStatements + $class->executedBranches)); $xmlClass->appendChild($xmlMetrics); } @@ -168,8 +170,8 @@ final class Clover $linesOfCode = $item->linesOfCode(); $xmlMetrics = $xmlDocument->createElement('metrics'); - $xmlMetrics->setAttribute('loc', (string) $linesOfCode['linesOfCode']); - $xmlMetrics->setAttribute('ncloc', (string) $linesOfCode['nonCommentLinesOfCode']); + $xmlMetrics->setAttribute('loc', (string) $linesOfCode->linesOfCode()); + $xmlMetrics->setAttribute('ncloc', (string) $linesOfCode->nonCommentLinesOfCode()); $xmlMetrics->setAttribute('classes', (string) $item->numberOfClassesAndTraits()); $xmlMetrics->setAttribute('methods', (string) $item->numberOfMethods()); $xmlMetrics->setAttribute('coveredmethods', (string) $item->numberOfTestedMethods()); @@ -201,8 +203,8 @@ final class Clover $xmlMetrics = $xmlDocument->createElement('metrics'); $xmlMetrics->setAttribute('files', (string) count($report)); - $xmlMetrics->setAttribute('loc', (string) $linesOfCode['linesOfCode']); - $xmlMetrics->setAttribute('ncloc', (string) $linesOfCode['nonCommentLinesOfCode']); + $xmlMetrics->setAttribute('loc', (string) $linesOfCode->linesOfCode()); + $xmlMetrics->setAttribute('ncloc', (string) $linesOfCode->nonCommentLinesOfCode()); $xmlMetrics->setAttribute('classes', (string) $report->numberOfClassesAndTraits()); $xmlMetrics->setAttribute('methods', (string) $report->numberOfMethods()); $xmlMetrics->setAttribute('coveredmethods', (string) $report->numberOfTestedMethods()); diff --git a/vendor/phpunit/php-code-coverage/src/Report/Cobertura.php b/vendor/phpunit/php-code-coverage/src/Report/Cobertura.php index 136070bda..38f0e79ee 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Cobertura.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Cobertura.php @@ -18,10 +18,10 @@ use function str_replace; use function time; use DOMImplementation; use SebastianBergmann\CodeCoverage\CodeCoverage; -use SebastianBergmann\CodeCoverage\Driver\WriteOperationFailedException; use SebastianBergmann\CodeCoverage\Node\File; use SebastianBergmann\CodeCoverage\Util\Filesystem; use SebastianBergmann\CodeCoverage\Util\Xml; +use SebastianBergmann\CodeCoverage\WriteOperationFailedException; final class Cobertura { @@ -114,15 +114,15 @@ final class Cobertura $coverageData = $item->lineCoverageData(); foreach ($classes as $className => $class) { - $complexity += $class['ccn']; - $packageComplexity += $class['ccn']; + $complexity += $class->ccn; + $packageComplexity += $class->ccn; - $linesValid = $class['executableLines']; - $linesCovered = $class['executedLines']; + $linesValid = $class->executableLines; + $linesCovered = $class->executedLines; $lineRate = $linesValid === 0 ? 0 : ($linesCovered / $linesValid); - $branchesValid = $class['executableBranches']; - $branchesCovered = $class['executedBranches']; + $branchesValid = $class->executableBranches; + $branchesCovered = $class->executedBranches; $branchRate = $branchesValid === 0 ? 0 : ($branchesCovered / $branchesValid); $classElement = $document->createElement('class'); @@ -131,7 +131,7 @@ final class Cobertura $classElement->setAttribute('filename', str_replace($report->pathAsString() . DIRECTORY_SEPARATOR, '', $item->pathAsString())); $classElement->setAttribute('line-rate', (string) $lineRate); $classElement->setAttribute('branch-rate', (string) $branchRate); - $classElement->setAttribute('complexity', (string) $class['ccn']); + $classElement->setAttribute('complexity', (string) $class->ccn); $classesElement->appendChild($classElement); @@ -143,19 +143,19 @@ final class Cobertura $classElement->appendChild($classLinesElement); - foreach ($class['methods'] as $methodName => $method) { - if ($method['executableLines'] === 0) { + foreach ($class->methods as $methodName => $method) { + if ($method->executableLines === 0) { continue; } - preg_match("/\((.*?)\)/", $method['signature'], $signature); + preg_match("/\((.*?)\)/", $method->signature, $signature); - $linesValid = $method['executableLines']; - $linesCovered = $method['executedLines']; - $lineRate = $linesValid === 0 ? 0 : ($linesCovered / $linesValid); + $linesValid = $method->executableLines; + $linesCovered = $method->executedLines; + $lineRate = $linesCovered / $linesValid; - $branchesValid = $method['executableBranches']; - $branchesCovered = $method['executedBranches']; + $branchesValid = $method->executableBranches; + $branchesCovered = $method->executedBranches; $branchRate = $branchesValid === 0 ? 0 : ($branchesCovered / $branchesValid); $methodElement = $document->createElement('method'); @@ -164,13 +164,13 @@ final class Cobertura $methodElement->setAttribute('signature', $signature[1]); $methodElement->setAttribute('line-rate', (string) $lineRate); $methodElement->setAttribute('branch-rate', (string) $branchRate); - $methodElement->setAttribute('complexity', (string) $method['ccn']); + $methodElement->setAttribute('complexity', (string) $method->ccn); $methodLinesElement = $document->createElement('lines'); $methodElement->appendChild($methodLinesElement); - foreach (range($method['startLine'], $method['endLine']) as $line) { + foreach (range($method->startLine, $method->endLine) as $line) { if (!isset($coverageData[$line])) { continue; } @@ -217,23 +217,23 @@ final class Cobertura $functions = $item->functions(); foreach ($functions as $functionName => $function) { - if ($function['executableLines'] === 0) { + if ($function->executableLines === 0) { continue; } - $complexity += $function['ccn']; - $packageComplexity += $function['ccn']; - $functionsComplexity += $function['ccn']; + $complexity += $function->ccn; + $packageComplexity += $function->ccn; + $functionsComplexity += $function->ccn; - $linesValid = $function['executableLines']; - $linesCovered = $function['executedLines']; - $lineRate = $linesValid === 0 ? 0 : ($linesCovered / $linesValid); + $linesValid = $function->executableLines; + $linesCovered = $function->executedLines; + $lineRate = $linesCovered / $linesValid; $functionsLinesValid += $linesValid; $functionsLinesCovered += $linesCovered; - $branchesValid = $function['executableBranches']; - $branchesCovered = $function['executedBranches']; + $branchesValid = $function->executableBranches; + $branchesCovered = $function->executedBranches; $branchRate = $branchesValid === 0 ? 0 : ($branchesCovered / $branchesValid); $functionsBranchesValid += $branchesValid; @@ -242,16 +242,16 @@ final class Cobertura $methodElement = $document->createElement('method'); $methodElement->setAttribute('name', $functionName); - $methodElement->setAttribute('signature', $function['signature']); + $methodElement->setAttribute('signature', $function->signature); $methodElement->setAttribute('line-rate', (string) $lineRate); $methodElement->setAttribute('branch-rate', (string) $branchRate); - $methodElement->setAttribute('complexity', (string) $function['ccn']); + $methodElement->setAttribute('complexity', (string) $function->ccn); $methodLinesElement = $document->createElement('lines'); $methodElement->appendChild($methodLinesElement); - foreach (range($function['startLine'], $function['endLine']) as $line) { + foreach (range($function->startLine, $function->endLine) as $line) { if (!isset($coverageData[$line])) { continue; } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php b/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php index f7381c1eb..b015908b4 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php @@ -15,14 +15,14 @@ use function is_string; use function round; use DOMDocument; use SebastianBergmann\CodeCoverage\CodeCoverage; -use SebastianBergmann\CodeCoverage\Driver\WriteOperationFailedException; use SebastianBergmann\CodeCoverage\Node\File; use SebastianBergmann\CodeCoverage\Util\Filesystem; use SebastianBergmann\CodeCoverage\Util\Xml; +use SebastianBergmann\CodeCoverage\WriteOperationFailedException; -final class Crap4j +final readonly class Crap4j { - private readonly int $threshold; + private int $threshold; public function __construct(int $threshold = 30) { @@ -70,31 +70,31 @@ final class Crap4j $classes = $item->classesAndTraits(); foreach ($classes as $className => $class) { - foreach ($class['methods'] as $methodName => $method) { - $crapLoad = $this->crapLoad((float) $method['crap'], $method['ccn'], $method['coverage']); + foreach ($class->methods as $methodName => $method) { + $crapLoad = $this->crapLoad((float) $method->crap, $method->ccn, $method->coverage); - $fullCrap += $method['crap']; + $fullCrap += $method->crap; $fullCrapLoad += $crapLoad; $fullMethodCount++; - if ($method['crap'] >= $this->threshold) { + if ($method->crap >= $this->threshold) { $fullCrapMethodCount++; } $methodNode = $document->createElement('method'); - if (!empty($class['namespace'])) { - $namespace = $class['namespace']; + if ($class->namespace !== '') { + $namespace = $class->namespace; } $methodNode->appendChild($document->createElement('package', $namespace)); $methodNode->appendChild($document->createElement('className', $className)); $methodNode->appendChild($document->createElement('methodName', $methodName)); - $methodNode->appendChild($document->createElement('methodSignature', htmlspecialchars($method['signature']))); - $methodNode->appendChild($document->createElement('fullMethod', htmlspecialchars($method['signature']))); - $methodNode->appendChild($document->createElement('crap', (string) $this->roundValue((float) $method['crap']))); - $methodNode->appendChild($document->createElement('complexity', (string) $method['ccn'])); - $methodNode->appendChild($document->createElement('coverage', (string) $this->roundValue($method['coverage']))); + $methodNode->appendChild($document->createElement('methodSignature', htmlspecialchars($method->signature))); + $methodNode->appendChild($document->createElement('fullMethod', htmlspecialchars($method->signature))); + $methodNode->appendChild($document->createElement('crap', (string) $this->roundValue((float) $method->crap))); + $methodNode->appendChild($document->createElement('complexity', (string) $method->ccn)); + $methodNode->appendChild($document->createElement('coverage', (string) $this->roundValue($method->coverage))); $methodNode->appendChild($document->createElement('crapLoad', (string) round($crapLoad))); $methodsNode->appendChild($methodNode); diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Colors.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Colors.php index c57aaf8fb..c79bf9ee5 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Colors.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Colors.php @@ -12,13 +12,13 @@ namespace SebastianBergmann\CodeCoverage\Report\Html; /** * @immutable */ -final class Colors +final readonly class Colors { - private readonly string $successLow; - private readonly string $successMedium; - private readonly string $successHigh; - private readonly string $warning; - private readonly string $danger; + private string $successLow; + private string $successMedium; + private string $successHigh; + private string $warning; + private string $danger; public static function default(): self { diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/CustomCssFile.php b/vendor/phpunit/php-code-coverage/src/Report/Html/CustomCssFile.php index 5f747c95a..5c272a0bc 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/CustomCssFile.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/CustomCssFile.php @@ -15,9 +15,9 @@ use SebastianBergmann\CodeCoverage\InvalidArgumentException; /** * @immutable */ -final class CustomCssFile +final readonly class CustomCssFile { - private readonly string $path; + private string $path; public static function default(): self { diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php index a3d955675..44c63c923 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php @@ -22,13 +22,13 @@ use SebastianBergmann\CodeCoverage\Util\Filesystem; use SebastianBergmann\Template\Exception; use SebastianBergmann\Template\Template; -final class Facade +final readonly class Facade { - private readonly string $templatePath; - private readonly string $generator; - private readonly Colors $colors; - private readonly Thresholds $thresholds; - private readonly CustomCssFile $customCssFile; + private string $templatePath; + private string $generator; + private Colors $colors; + private Thresholds $thresholds; + private CustomCssFile $customCssFile; public function __construct(string $generator = '', ?Colors $colors = null, ?Thresholds $thresholds = null, ?CustomCssFile $customCssFile = null) { @@ -41,16 +41,17 @@ final class Facade public function process(CodeCoverage $coverage, string $target): void { - $target = $this->directory($target); - $report = $coverage->getReport(); - $date = date('D M j G:i:s T Y'); + $target = $this->directory($target); + $report = $coverage->getReport(); + $date = date('D M j G:i:s T Y'); + $hasBranchCoverage = $coverage->getData(true)->functionCoverage() !== []; $dashboard = new Dashboard( $this->templatePath, $this->generator, $date, $this->thresholds, - $coverage->collectsBranchAndPathCoverage(), + $hasBranchCoverage, ); $directory = new Directory( @@ -58,7 +59,7 @@ final class Facade $this->generator, $date, $this->thresholds, - $coverage->collectsBranchAndPathCoverage(), + $hasBranchCoverage, ); $file = new File( @@ -66,7 +67,7 @@ final class Facade $this->generator, $date, $this->thresholds, - $coverage->collectsBranchAndPathCoverage(), + $hasBranchCoverage, ); $directory->render($report, $target . 'index.html'); @@ -97,8 +98,8 @@ final class Facade { $dir = $this->directory($target . '_css'); + copy($this->templatePath . 'css/billboard.min.css', $dir . 'billboard.min.css'); copy($this->templatePath . 'css/bootstrap.min.css', $dir . 'bootstrap.min.css'); - copy($this->templatePath . 'css/nv.d3.min.css', $dir . 'nv.d3.min.css'); copy($this->customCssFile->path(), $dir . 'custom.css'); copy($this->templatePath . 'css/octicons.css', $dir . 'octicons.css'); @@ -107,10 +108,9 @@ final class Facade copy($this->templatePath . 'icons/file-directory.svg', $dir . 'file-directory.svg'); $dir = $this->directory($target . '_js'); + copy($this->templatePath . 'js/billboard.pkgd.min.js', $dir . 'billboard.pkgd.min.js'); copy($this->templatePath . 'js/bootstrap.bundle.min.js', $dir . 'bootstrap.bundle.min.js'); - copy($this->templatePath . 'js/d3.min.js', $dir . 'd3.min.js'); copy($this->templatePath . 'js/jquery.min.js', $dir . 'jquery.min.js'); - copy($this->templatePath . 'js/nv.d3.min.js', $dir . 'nv.d3.min.js'); copy($this->templatePath . 'js/file.js', $dir . 'file.js'); } @@ -130,12 +130,14 @@ final class Facade try { $template->renderTo($this->directory($target . '_css') . 'style.css'); + // @codeCoverageIgnoreStart } catch (Exception $e) { throw new FileCouldNotBeWrittenException( $e->getMessage(), $e->getCode(), $e, ); + // @codeCoverageIgnoreEnd } } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php index 6ce7b8fe4..1edd8aeed 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php @@ -9,8 +9,12 @@ */ namespace SebastianBergmann\CodeCoverage\Report\Html; +use const ENT_HTML5; +use const ENT_QUOTES; +use const ENT_SUBSTITUTE; use function array_pop; use function count; +use function htmlspecialchars; use function sprintf; use function str_repeat; use function substr_count; @@ -44,6 +48,9 @@ abstract class Renderer $this->hasBranchCoverage = $hasBranchCoverage; } + /** + * @param array $data + */ protected function renderItemTemplate(Template $template, array $data): string { $numSeparator = ' / '; @@ -164,19 +171,24 @@ abstract class Renderer $template->setVar( [ 'id' => $node->id(), - 'full_path' => $node->pathAsString(), + 'full_path' => $this->escapeHtml($node->pathAsString()), 'path_to_root' => $this->pathToRoot($node), 'breadcrumbs' => $this->breadcrumbs($node), 'date' => $this->date, 'version' => $this->version, 'runtime' => $this->runtimeString(), 'generator' => $this->generator, - 'low_upper_bound' => $this->thresholds->lowUpperBound(), - 'high_lower_bound' => $this->thresholds->highLowerBound(), + 'low_upper_bound' => (string) $this->thresholds->lowUpperBound(), + 'high_lower_bound' => (string) $this->thresholds->highLowerBound(), ], ); } + protected function escapeHtml(string $value): string + { + return htmlspecialchars($value, ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML5); + } + protected function breadcrumbs(AbstractNode $node): string { $breadcrumbs = ''; @@ -210,7 +222,7 @@ abstract class Renderer { $buffer = sprintf( ' ' . "\n", - $node->name(), + $this->escapeHtml($node->name()), ); if ($node instanceof DirectoryNode) { @@ -225,7 +237,7 @@ abstract class Renderer return sprintf( ' ' . "\n", $pathToRoot, - $node->name(), + $this->escapeHtml($node->name()), ); } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php index cf21cf9dd..b2651740e 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php @@ -10,14 +10,19 @@ namespace SebastianBergmann\CodeCoverage\Report\Html; use function array_values; -use function arsort; use function asort; +use function assert; use function count; use function explode; use function floor; use function json_encode; use function sprintf; use function str_replace; +use function uasort; +use function usort; +use SebastianBergmann\CodeCoverage\Data\ProcessedClassType; +use SebastianBergmann\CodeCoverage\Data\ProcessedMethodType; +use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; use SebastianBergmann\CodeCoverage\FileCouldNotBeWrittenException; use SebastianBergmann\CodeCoverage\Node\AbstractNode; use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; @@ -76,53 +81,61 @@ final class Dashboard extends Renderer return sprintf( ' ' . "\n" . ' ' . "\n", - $node->name(), + $this->escapeHtml($node->name()), ); } /** - * Returns the data for the Class/Method Complexity charts. + * @param array $classes + * + * @return array{class: non-empty-string, method: non-empty-string} */ private function complexity(array $classes, string $baseLink): array { $result = ['class' => [], 'method' => []]; foreach ($classes as $className => $class) { - foreach ($class['methods'] as $methodName => $method) { + foreach ($class->methods as $methodName => $method) { if ($className !== '*') { $methodName = $className . '::' . $methodName; } $result['method'][] = [ - $method['coverage'], - $method['ccn'], - sprintf( - '%s', - str_replace($baseLink, '', $method['link']), - $methodName, - ), + $method->coverage, + $method->ccn, + str_replace($baseLink, '', $method->link), + $methodName, + $method->crap, ]; } $result['class'][] = [ - $class['coverage'], - $class['ccn'], - sprintf( - '%s', - str_replace($baseLink, '', $class['link']), - $className, - ), + $class->coverage, + $class->ccn, + str_replace($baseLink, '', $class->link), + $className, + $class->crap, ]; } - return [ - 'class' => json_encode($result['class']), - 'method' => json_encode($result['method']), - ]; + usort($result['class'], static fn (mixed $a, mixed $b) => ($a[0] <=> $b[0])); + usort($result['method'], static fn (mixed $a, mixed $b) => ($a[0] <=> $b[0])); + + $class = json_encode($result['class']); + + assert($class !== false); + + $method = json_encode($result['method']); + + assert($method !== false); + + return ['class' => $class, 'method' => $method]; } /** - * Returns the data for the Class / Method Coverage Distribution chart. + * @param array $classes + * + * @return array{class: non-empty-string, method: non-empty-string} */ private function coverageDistribution(array $classes): array { @@ -158,37 +171,44 @@ final class Dashboard extends Renderer ]; foreach ($classes as $class) { - foreach ($class['methods'] as $methodName => $method) { - if ($method['coverage'] === 0) { + foreach ($class->methods as $method) { + if ($method->coverage === 0) { $result['method']['0%']++; - } elseif ($method['coverage'] === 100) { + } elseif ($method->coverage === 100) { $result['method']['100%']++; } else { - $key = floor($method['coverage'] / 10) * 10; + $key = floor($method->coverage / 10) * 10; $key = $key . '-' . ($key + 10) . '%'; $result['method'][$key]++; } } - if ($class['coverage'] === 0) { + if ($class->coverage === 0) { $result['class']['0%']++; - } elseif ($class['coverage'] === 100) { + } elseif ($class->coverage === 100) { $result['class']['100%']++; } else { - $key = floor($class['coverage'] / 10) * 10; + $key = floor($class->coverage / 10) * 10; $key = $key . '-' . ($key + 10) . '%'; $result['class'][$key]++; } } - return [ - 'class' => json_encode(array_values($result['class'])), - 'method' => json_encode(array_values($result['method'])), - ]; + $class = json_encode(array_values($result['class'])); + + assert($class !== false); + + $method = json_encode(array_values($result['method'])); + + assert($method !== false); + + return ['class' => $class, 'method' => $method]; } /** - * Returns the classes / methods with insufficient coverage. + * @param array $classes + * + * @return array{class: string, method: string} */ private function insufficientCoverage(array $classes, string $baseLink): array { @@ -197,20 +217,20 @@ final class Dashboard extends Renderer $result = ['class' => '', 'method' => '']; foreach ($classes as $className => $class) { - foreach ($class['methods'] as $methodName => $method) { - if ($method['coverage'] < $this->thresholds->highLowerBound()) { + foreach ($class->methods as $methodName => $method) { + if ($method->coverage < $this->thresholds->highLowerBound()) { $key = $methodName; if ($className !== '*') { $key = $className . '::' . $methodName; } - $leastTestedMethods[$key] = $method['coverage']; + $leastTestedMethods[$key] = $method->coverage; } } - if ($class['coverage'] < $this->thresholds->highLowerBound()) { - $leastTestedClasses[$className] = $class['coverage']; + if ($class->coverage < $this->thresholds->highLowerBound()) { + $leastTestedClasses[$className] = $class->coverage; } } @@ -220,7 +240,7 @@ final class Dashboard extends Renderer foreach ($leastTestedClasses as $className => $coverage) { $result['class'] .= sprintf( ' %s%d%%' . "\n", - str_replace($baseLink, '', $classes[$className]['link']), + str_replace($baseLink, '', $classes[$className]->link), $className, $coverage, ); @@ -231,7 +251,7 @@ final class Dashboard extends Renderer $result['method'] .= sprintf( ' %s%d%%' . "\n", - str_replace($baseLink, '', $classes[$class]['methods'][$method]['link']), + str_replace($baseLink, '', $classes[$class]->methods[$method]->link), $methodName, $method, $coverage, @@ -242,7 +262,9 @@ final class Dashboard extends Renderer } /** - * Returns the project risks according to the CRAP index. + * @param array $classes + * + * @return array{class: string, method: string} */ private function projectRisks(array $classes, string $baseLink): array { @@ -251,45 +273,55 @@ final class Dashboard extends Renderer $result = ['class' => '', 'method' => '']; foreach ($classes as $className => $class) { - foreach ($class['methods'] as $methodName => $method) { - if ($method['coverage'] < $this->thresholds->highLowerBound() && $method['ccn'] > 1) { + foreach ($class->methods as $methodName => $method) { + if ($method->coverage < $this->thresholds->highLowerBound() && $method->ccn > 1) { $key = $methodName; if ($className !== '*') { $key = $className . '::' . $methodName; } - $methodRisks[$key] = $method['crap']; + $methodRisks[$key] = $method; } } - if ($class['coverage'] < $this->thresholds->highLowerBound() && - $class['ccn'] > count($class['methods'])) { - $classRisks[$className] = $class['crap']; + if ($class->coverage < $this->thresholds->highLowerBound() && + $class->ccn > count($class->methods)) { + $classRisks[$className] = $class; } } - arsort($classRisks); - arsort($methodRisks); + uasort($classRisks, static function (ProcessedClassType|ProcessedTraitType $a, ProcessedClassType|ProcessedTraitType $b) + { + return ((int) ($a->crap) <=> (int) ($b->crap)) * -1; + }); + uasort($methodRisks, static function (ProcessedMethodType $a, ProcessedMethodType $b) + { + return ((int) ($a->crap) <=> (int) ($b->crap)) * -1; + }); - foreach ($classRisks as $className => $crap) { + foreach ($classRisks as $className => $class) { $result['class'] .= sprintf( - ' %s%d' . "\n", - str_replace($baseLink, '', $classes[$className]['link']), + ' %s%.1f%%%d%d' . "\n", + str_replace($baseLink, '', $classes[$className]->link), $className, - $crap, + $class->coverage, + $class->ccn, + $class->crap, ); } - foreach ($methodRisks as $methodName => $crap) { + foreach ($methodRisks as $methodName => $methodVals) { [$class, $method] = explode('::', $methodName); $result['method'] .= sprintf( - ' %s%d' . "\n", - str_replace($baseLink, '', $classes[$class]['methods'][$method]['link']), + ' %s%.1f%%%d%d' . "\n", + str_replace($baseLink, '', $classes[$class]->methods[$method]->link), $methodName, $method, - $crap, + $methodVals->coverage, + $methodVals->ccn, + $methodVals->crap, ); } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php index 1d7334b3a..da3783e0c 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php @@ -86,29 +86,30 @@ final class Directory extends Renderer if ($total) { $data['name'] = 'Total'; } else { + $name = $this->escapeHtml($node->name()); $up = str_repeat('../', count($node->pathAsArray()) - 2); $data['icon'] = sprintf('', $up); if ($node instanceof DirectoryNode) { $data['name'] = sprintf( '%s', - $node->name(), - $node->name(), + $name, + $name, ); $data['icon'] = sprintf('', $up); } elseif ($this->hasBranchCoverage) { $data['name'] = sprintf( '%s [line] [branch] [path]', - $node->name(), - $node->name(), - $node->name(), - $node->name(), + $name, + $name, + $name, + $name, ); } else { $data['name'] = sprintf( '%s', - $node->name(), - $node->name(), + $name, + $name, ); } } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php index 60154fbd6..b2808fbd0 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php @@ -102,6 +102,13 @@ use function str_ends_with; use function str_replace; use function token_get_all; use function trim; +use SebastianBergmann\CodeCoverage\Data\ProcessedBranchCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedClassType; +use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; +use SebastianBergmann\CodeCoverage\Data\ProcessedMethodType; +use SebastianBergmann\CodeCoverage\Data\ProcessedPathCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; use SebastianBergmann\CodeCoverage\FileCouldNotBeWrittenException; use SebastianBergmann\CodeCoverage\Node\File as FileNode; use SebastianBergmann\CodeCoverage\Util\Percentage; @@ -116,7 +123,7 @@ final class File extends Renderer /** * @var array */ - private const KEYWORD_TOKENS = [ + private const array KEYWORD_TOKENS = [ T_ABSTRACT => true, T_ARRAY => true, T_AS => true, @@ -186,8 +193,13 @@ final class File extends Renderer T_YIELD => true, T_YIELD_FROM => true, ]; + + private const int HTML_SPECIAL_CHARS_FLAGS = ENT_COMPAT | ENT_HTML401 | ENT_SUBSTITUTE; + + /** + * @var array> + */ private static array $formattedSourceCache = []; - private int $htmlSpecialCharsFlags = ENT_COMPAT | ENT_HTML401 | ENT_SUBSTITUTE; public function render(FileNode $node, string $file): void { @@ -315,11 +327,14 @@ final class File extends Renderer return $items; } + /** + * @param array $items + */ private function renderTraitOrClassItems(array $items, Template $template, Template $methodItemTemplate): string { $buffer = ''; - if (empty($items)) { + if ($items === []) { return $buffer; } @@ -327,30 +342,30 @@ final class File extends Renderer $numMethods = 0; $numTestedMethods = 0; - foreach ($item['methods'] as $method) { - if ($method['executableLines'] > 0) { + foreach ($item->methods as $method) { + if ($method->executableLines > 0) { $numMethods++; - if ($method['executedLines'] === $method['executableLines']) { + if ($method->executedLines === $method->executableLines) { $numTestedMethods++; } } } - if ($item['executableLines'] > 0) { + if ($item->executableLines > 0) { $numClasses = 1; $numTestedClasses = $numTestedMethods === $numMethods ? 1 : 0; $linesExecutedPercentAsString = Percentage::fromFractionAndTotal( - $item['executedLines'], - $item['executableLines'], + $item->executedLines, + $item->executableLines, )->asString(); $branchesExecutedPercentAsString = Percentage::fromFractionAndTotal( - $item['executedBranches'], - $item['executableBranches'], + $item->executedBranches, + $item->executableBranches, )->asString(); $pathsExecutedPercentAsString = Percentage::fromFractionAndTotal( - $item['executedPaths'], - $item['executablePaths'], + $item->executedPaths, + $item->executablePaths, )->asString(); } else { $numClasses = 0; @@ -379,35 +394,35 @@ final class File extends Renderer 'numMethods' => $numMethods, 'numTestedMethods' => $numTestedMethods, 'linesExecutedPercent' => Percentage::fromFractionAndTotal( - $item['executedLines'], - $item['executableLines'], + $item->executedLines, + $item->executableLines, )->asFloat(), 'linesExecutedPercentAsString' => $linesExecutedPercentAsString, - 'numExecutedLines' => $item['executedLines'], - 'numExecutableLines' => $item['executableLines'], + 'numExecutedLines' => $item->executedLines, + 'numExecutableLines' => $item->executableLines, 'branchesExecutedPercent' => Percentage::fromFractionAndTotal( - $item['executedBranches'], - $item['executableBranches'], + $item->executedBranches, + $item->executableBranches, )->asFloat(), 'branchesExecutedPercentAsString' => $branchesExecutedPercentAsString, - 'numExecutedBranches' => $item['executedBranches'], - 'numExecutableBranches' => $item['executableBranches'], + 'numExecutedBranches' => $item->executedBranches, + 'numExecutableBranches' => $item->executableBranches, 'pathsExecutedPercent' => Percentage::fromFractionAndTotal( - $item['executedPaths'], - $item['executablePaths'], + $item->executedPaths, + $item->executablePaths, )->asFloat(), 'pathsExecutedPercentAsString' => $pathsExecutedPercentAsString, - 'numExecutedPaths' => $item['executedPaths'], - 'numExecutablePaths' => $item['executablePaths'], + 'numExecutedPaths' => $item->executedPaths, + 'numExecutablePaths' => $item->executablePaths, 'testedMethodsPercent' => $testedMethodsPercentage->asFloat(), 'testedMethodsPercentAsString' => $testedMethodsPercentage->asString(), 'testedClassesPercent' => $testedClassesPercentage->asFloat(), 'testedClassesPercentAsString' => $testedClassesPercentage->asString(), - 'crap' => $item['crap'], + 'crap' => $item->crap, ], ); - foreach ($item['methods'] as $method) { + foreach ($item->methods as $method) { $buffer .= $this->renderFunctionOrMethodItem( $methodItemTemplate, $method, @@ -419,9 +434,12 @@ final class File extends Renderer return $buffer; } + /** + * @param array $functions + */ private function renderFunctionItems(array $functions, Template $template): string { - if (empty($functions)) { + if ($functions === []) { return ''; } @@ -437,32 +455,32 @@ final class File extends Renderer return $buffer; } - private function renderFunctionOrMethodItem(Template $template, array $item, string $indent = ''): string + private function renderFunctionOrMethodItem(Template $template, ProcessedFunctionType|ProcessedMethodType $item, string $indent = ''): string { $numMethods = 0; $numTestedMethods = 0; - if ($item['executableLines'] > 0) { + if ($item->executableLines > 0) { $numMethods = 1; - if ($item['executedLines'] === $item['executableLines']) { + if ($item->executedLines === $item->executableLines) { $numTestedMethods = 1; } } $executedLinesPercentage = Percentage::fromFractionAndTotal( - $item['executedLines'], - $item['executableLines'], + $item->executedLines, + $item->executableLines, ); $executedBranchesPercentage = Percentage::fromFractionAndTotal( - $item['executedBranches'], - $item['executableBranches'], + $item->executedBranches, + $item->executableBranches, ); $executedPathsPercentage = Percentage::fromFractionAndTotal( - $item['executedPaths'], - $item['executablePaths'], + $item->executedPaths, + $item->executablePaths, ); $testedMethodsPercentage = Percentage::fromFractionAndTotal( @@ -476,27 +494,27 @@ final class File extends Renderer 'name' => sprintf( '%s%s', $indent, - $item['startLine'], - htmlspecialchars($item['signature'], $this->htmlSpecialCharsFlags), - $item['functionName'] ?? $item['methodName'], + $item->startLine, + htmlspecialchars($item->signature, self::HTML_SPECIAL_CHARS_FLAGS), + $item instanceof ProcessedFunctionType ? $item->functionName : $item->methodName, ), 'numMethods' => $numMethods, 'numTestedMethods' => $numTestedMethods, 'linesExecutedPercent' => $executedLinesPercentage->asFloat(), 'linesExecutedPercentAsString' => $executedLinesPercentage->asString(), - 'numExecutedLines' => $item['executedLines'], - 'numExecutableLines' => $item['executableLines'], + 'numExecutedLines' => $item->executedLines, + 'numExecutableLines' => $item->executableLines, 'branchesExecutedPercent' => $executedBranchesPercentage->asFloat(), 'branchesExecutedPercentAsString' => $executedBranchesPercentage->asString(), - 'numExecutedBranches' => $item['executedBranches'], - 'numExecutableBranches' => $item['executableBranches'], + 'numExecutedBranches' => $item->executedBranches, + 'numExecutableBranches' => $item->executableBranches, 'pathsExecutedPercent' => $executedPathsPercentage->asFloat(), 'pathsExecutedPercentAsString' => $executedPathsPercentage->asString(), - 'numExecutedPaths' => $item['executedPaths'], - 'numExecutablePaths' => $item['executablePaths'], + 'numExecutedPaths' => $item->executedPaths, + 'numExecutablePaths' => $item->executablePaths, 'testedMethodsPercent' => $testedMethodsPercentage->asFloat(), 'testedMethodsPercentAsString' => $testedMethodsPercentage->asString(), - 'crap' => $item['crap'], + 'crap' => $item->crap, ], ); } @@ -518,7 +536,7 @@ final class File extends Renderer $popoverTitle = ''; if (array_key_exists($i, $coverageData)) { - $numTests = ($coverageData[$i] ? count($coverageData[$i]) : 0); + $numTests = ($coverageData[$i] !== null ? count($coverageData[$i]) : 0); if ($coverageData[$i] === null) { $trClass = 'warning'; @@ -551,11 +569,11 @@ final class File extends Renderer $popover = ''; - if (!empty($popoverTitle)) { + if ($popoverTitle !== '') { $popover = sprintf( ' data-bs-title="%s" data-bs-content="%s" data-bs-placement="top" data-bs-html="true"', $popoverTitle, - htmlspecialchars($popoverContent, $this->htmlSpecialCharsFlags), + htmlspecialchars($popoverContent, self::HTML_SPECIAL_CHARS_FLAGS), ); } @@ -580,7 +598,6 @@ final class File extends Renderer $lineData = []; - /** @var int $line */ foreach (array_keys($codeLines) as $line) { $lineData[$line + 1] = [ 'includedInBranches' => 0, @@ -589,18 +606,20 @@ final class File extends Renderer ]; } + /** @var ProcessedFunctionCoverageData $method */ foreach ($functionCoverageData as $method) { - foreach ($method['branches'] as $branch) { - foreach (range($branch['line_start'], $branch['line_end']) as $line) { + /** @var ProcessedBranchCoverageData $branch */ + foreach ($method->branches as $branch) { + foreach (range($branch->line_start, $branch->line_end) as $line) { if (!isset($lineData[$line])) { // blank line at end of file is sometimes included here continue; } $lineData[$line]['includedInBranches']++; - if ($branch['hit']) { + if ($branch->hit !== []) { $lineData[$line]['includedInHitBranches']++; - $lineData[$line]['tests'] = array_unique(array_merge($lineData[$line]['tests'], $branch['hit'])); + $lineData[$line]['tests'] = array_unique(array_merge($lineData[$line]['tests'], $branch->hit)); } } } @@ -642,7 +661,7 @@ final class File extends Renderer $popover = sprintf( ' data-bs-title="%s" data-bs-content="%s" data-bs-placement="top" data-bs-html="true"', $popoverTitle, - htmlspecialchars($popoverContent, $this->htmlSpecialCharsFlags), + htmlspecialchars($popoverContent, self::HTML_SPECIAL_CHARS_FLAGS), ); } @@ -667,7 +686,6 @@ final class File extends Renderer $lineData = []; - /** @var int $line */ foreach (array_keys($codeLines) as $line) { $lineData[$line + 1] = [ 'includedInPaths' => [], @@ -676,18 +694,20 @@ final class File extends Renderer ]; } + /** @var ProcessedFunctionCoverageData $method */ foreach ($functionCoverageData as $method) { - foreach ($method['paths'] as $pathId => $path) { - foreach ($path['path'] as $branchTaken) { - foreach (range($method['branches'][$branchTaken]['line_start'], $method['branches'][$branchTaken]['line_end']) as $line) { + /** @var ProcessedPathCoverageData $path */ + foreach ($method->paths as $pathId => $path) { + foreach ($path->path as $branchTaken) { + foreach (range($method->branches[$branchTaken]->line_start, $method->branches[$branchTaken]->line_end) as $line) { if (!isset($lineData[$line])) { continue; } $lineData[$line]['includedInPaths'][] = $pathId; - if ($path['hit']) { + if ($path->hit !== []) { $lineData[$line]['includedInHitPaths'][] = $pathId; - $lineData[$line]['tests'] = array_unique(array_merge($lineData[$line]['tests'], $path['hit'])); + $lineData[$line]['tests'] = array_unique(array_merge($lineData[$line]['tests'], $path->hit)); } } } @@ -732,7 +752,7 @@ final class File extends Renderer $popover = sprintf( ' data-bs-title="%s" data-bs-content="%s" data-bs-placement="top" data-bs-html="true"', $popoverTitle, - htmlspecialchars($popoverContent, $this->htmlSpecialCharsFlags), + htmlspecialchars($popoverContent, self::HTML_SPECIAL_CHARS_FLAGS), ); } @@ -757,19 +777,17 @@ final class File extends Renderer ksort($coverageData); + /** @var ProcessedFunctionCoverageData $methodData */ foreach ($coverageData as $methodName => $methodData) { - if (!$methodData['branches']) { - continue; - } - $branchStructure = ''; - foreach ($methodData['branches'] as $branch) { + /** @var ProcessedBranchCoverageData $branch */ + foreach ($methodData->branches as $branch) { $branchStructure .= $this->renderBranchLines($branch, $codeLines, $testData); } if ($branchStructure !== '') { // don't show empty branches - $branches .= '
' . $this->abbreviateMethodName($methodName) . '
' . "\n"; + $branches .= '
' . $this->abbreviateMethodName($methodName) . '
' . "\n"; $branches .= $branchStructure; } } @@ -779,14 +797,17 @@ final class File extends Renderer return $branchesTemplate->render(); } - private function renderBranchLines(array $branch, array $codeLines, array $testData): string + /** + * @param list $codeLines + */ + private function renderBranchLines(ProcessedBranchCoverageData $branch, array $codeLines, array $testData): string { $linesTemplate = new Template($this->templatePath . 'lines.html.dist', '{{', '}}'); $singleLineTemplate = new Template($this->templatePath . 'line.html.dist', '{{', '}}'); $lines = ''; - $branchLines = range($branch['line_start'], $branch['line_end']); + $branchLines = range($branch->line_start, $branch->line_end); sort($branchLines); // sometimes end_line < start_line /** @var int $line */ @@ -798,7 +819,7 @@ final class File extends Renderer $popoverContent = ''; $popoverTitle = ''; - $numTests = count($branch['hit']); + $numTests = count($branch->hit); if ($numTests === 0) { $trClass = 'danger'; @@ -812,7 +833,7 @@ final class File extends Renderer $popoverTitle = '1 test covers this branch'; } - foreach ($branch['hit'] as $test) { + foreach ($branch->hit as $test) { if ($lineCss === 'covered-by-large-tests' && $testData[$test]['size'] === 'medium') { $lineCss = 'covered-by-medium-tests'; } elseif ($testData[$test]['size'] === 'small') { @@ -826,11 +847,11 @@ final class File extends Renderer $popover = ''; - if (!empty($popoverTitle)) { + if ($popoverTitle !== '') { $popover = sprintf( ' data-bs-title="%s" data-bs-content="%s" data-bs-placement="top" data-bs-html="true"', $popoverTitle, - htmlspecialchars($popoverContent, $this->htmlSpecialCharsFlags), + htmlspecialchars($popoverContent, self::HTML_SPECIAL_CHARS_FLAGS), ); } @@ -857,25 +878,22 @@ final class File extends Renderer ksort($coverageData); + /** @var ProcessedFunctionCoverageData $methodData */ foreach ($coverageData as $methodName => $methodData) { - if (!$methodData['paths']) { - continue; - } - $pathStructure = ''; - if (count($methodData['paths']) > 100) { - $pathStructure .= '

' . count($methodData['paths']) . ' is too many paths to sensibly render, consider refactoring your code to bring this number down.

'; + if (count($methodData->paths) > 100) { + $pathStructure .= '

' . count($methodData->paths) . ' is too many paths to sensibly render, consider refactoring your code to bring this number down.

'; continue; } - foreach ($methodData['paths'] as $path) { - $pathStructure .= $this->renderPathLines($path, $methodData['branches'], $codeLines, $testData); + foreach ($methodData->paths as $path) { + $pathStructure .= $this->renderPathLines($path, $methodData->branches, $codeLines, $testData); } if ($pathStructure !== '') { - $paths .= '
' . $this->abbreviateMethodName($methodName) . '
' . "\n"; + $paths .= '
' . $this->abbreviateMethodName($methodName) . '
' . "\n"; $paths .= $pathStructure; } } @@ -885,7 +903,11 @@ final class File extends Renderer return $pathsTemplate->render(); } - private function renderPathLines(array $path, array $branches, array $codeLines, array $testData): string + /** + * @param array $branches + * @param list $codeLines + */ + private function renderPathLines(ProcessedPathCoverageData $path, array $branches, array $codeLines, array $testData): string { $linesTemplate = new Template($this->templatePath . 'lines.html.dist', '{{', '}}'); $singleLineTemplate = new Template($this->templatePath . 'line.html.dist', '{{', '}}'); @@ -893,14 +915,14 @@ final class File extends Renderer $lines = ''; $first = true; - foreach ($path['path'] as $branchId) { + foreach ($path->path as $branchId) { if ($first) { $first = false; } else { $lines .= '  ' . "\n"; } - $branchLines = range($branches[$branchId]['line_start'], $branches[$branchId]['line_end']); + $branchLines = range($branches[$branchId]->line_start, $branches[$branchId]->line_end); sort($branchLines); // sometimes end_line < start_line /** @var int $line */ @@ -912,7 +934,7 @@ final class File extends Renderer $popoverContent = ''; $popoverTitle = ''; - $numTests = count($path['hit']); + $numTests = count($path->hit); if ($numTests === 0) { $trClass = 'danger'; @@ -926,7 +948,7 @@ final class File extends Renderer $popoverTitle = '1 test covers this path'; } - foreach ($path['hit'] as $test) { + foreach ($path->hit as $test) { if ($lineCss === 'covered-by-large-tests' && $testData[$test]['size'] === 'medium') { $lineCss = 'covered-by-medium-tests'; } elseif ($testData[$test]['size'] === 'small') { @@ -941,11 +963,11 @@ final class File extends Renderer $popover = ''; - if (!empty($popoverTitle)) { + if ($popoverTitle !== '') { $popover = sprintf( ' data-bs-title="%s" data-bs-content="%s" data-bs-placement="top" data-bs-html="true"', $popoverTitle, - htmlspecialchars($popoverContent, $this->htmlSpecialCharsFlags), + htmlspecialchars($popoverContent, self::HTML_SPECIAL_CHARS_FLAGS), ); } @@ -966,7 +988,7 @@ final class File extends Renderer { $template->setVar( [ - 'lineNumber' => $lineNumber, + 'lineNumber' => (string) $lineNumber, 'lineContent' => $lineContent, 'class' => $class, 'popover' => $popover, @@ -976,6 +998,11 @@ final class File extends Renderer return $template->render(); } + /** + * @param non-empty-string $file + * + * @return list + */ private function loadFile(string $file): array { if (isset(self::$formattedSourceCache[$file])) { @@ -996,14 +1023,14 @@ final class File extends Renderer if ($token === '"' && $tokens[$j - 1] !== '\\') { $result[$i] .= sprintf( '%s', - htmlspecialchars($token, $this->htmlSpecialCharsFlags), + htmlspecialchars($token, self::HTML_SPECIAL_CHARS_FLAGS), ); $stringFlag = !$stringFlag; } else { $result[$i] .= sprintf( '%s', - htmlspecialchars($token, $this->htmlSpecialCharsFlags), + htmlspecialchars($token, self::HTML_SPECIAL_CHARS_FLAGS), ); } @@ -1015,7 +1042,7 @@ final class File extends Renderer $value = str_replace( ["\t", ' '], ['    ', ' '], - htmlspecialchars($value, $this->htmlSpecialCharsFlags), + htmlspecialchars($value, self::HTML_SPECIAL_CHARS_FLAGS), ); if ($value === "\n") { @@ -1114,7 +1141,7 @@ final class File extends Renderer return sprintf( '%s', $testCSS, - htmlspecialchars($test, $this->htmlSpecialCharsFlags), + htmlspecialchars($test, self::HTML_SPECIAL_CHARS_FLAGS), ); } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/billboard.min.css b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/billboard.min.css new file mode 100644 index 000000000..16f2baf4e --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/billboard.min.css @@ -0,0 +1,10 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.15.1 + */ +.bb svg{font:10px sans-serif;-webkit-tap-highlight-color:rgba(0,0,0,0)}.bb path,.bb line{fill:none;stroke:#000}.bb text,.bb .bb-button{-webkit-user-select:none;-moz-user-select:none;user-select:none}.bb-legend-item-tile,.bb-xgrid-focus,.bb-ygrid-focus,.bb-ygrid{shape-rendering:crispEdges}.bb-chart-arcs .bb-needle,.bb-chart-arc .bb-gauge-value{fill:#000}.bb-chart-arc path{stroke:#fff}.bb-chart-arc rect{stroke:#fff;stroke-width:1}.bb-chart-arc text{fill:#fff;font-size:13px}.bb-chart-funnels path{stroke-width:0}.bb-chart-funnels+.bb-chart-texts text{font-size:13px;fill:#fff}.bb-axis{shape-rendering:crispEdges}.bb-axis .bb-axis-x-tooltip,.bb-axis .bb-axis-y-tooltip,.bb-axis .bb-axis-y2-tooltip{font-size:1em;fill:#fff;white-space:nowrap}.bb-grid{pointer-events:none}.bb-grid line{stroke:#aaa}.bb-grid text{fill:#aaa}.bb-xgrid,.bb-ygrid{stroke-dasharray:3 3}.bb-text.bb-empty{fill:gray;font-size:2em}.bb-line{stroke-width:1px}.bb-circle._expanded_{stroke-width:1px;stroke:#fff}.bb-selected-circle{fill:#fff;stroke-width:2px}.bb-bar{stroke-width:0}.bb-bar._expanded_{fill-opacity:.75}.bb-candlestick{stroke-width:1px}.bb-candlestick._expanded_{fill-opacity:.75}.bb-target.bb-focused,.bb-circles.bb-focused{opacity:1}.bb-target.bb-focused path.bb-line,.bb-target.bb-focused path.bb-step,.bb-circles.bb-focused path.bb-line,.bb-circles.bb-focused path.bb-step{stroke-width:2px}.bb-target.bb-defocused,.bb-circles.bb-defocused{opacity:.3!important}.bb-target.bb-defocused .text-overlapping,.bb-circles.bb-defocused .text-overlapping{opacity:.05!important}.bb-region{fill:#4682b4}.bb-region rect{fill-opacity:.1}.bb-zoom-brush,.bb-brush .extent{fill-opacity:.1}.bb-legend-item{font-size:12px;user-select:none}.bb-legend-item-hidden{opacity:.15}.bb-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.bb-title{font:14px sans-serif}.bb-chart-treemaps rect{stroke:#fff;stroke-width:1px}.bb-tooltip-container{z-index:10;user-select:none}.bb-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;opacity:.9;box-shadow:7px 7px 12px -9px #777;white-space:nowrap}.bb-tooltip tr{border:1px solid #CCC}.bb-tooltip th{background-color:#aaa;font-size:14px;padding:2px 5px;text-align:left;color:#fff}.bb-tooltip td{font-size:13px;padding:3px 6px;background-color:#fff;border-left:1px dotted #999}.bb-tooltip td>span,.bb-tooltip td>svg{display:inline-block;width:10px;height:10px;margin-right:6px}.bb-tooltip.value{text-align:right}.bb-area{stroke-width:0;opacity:.2}.bb-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}text.bb-chart-arcs-gauge-title{dominant-baseline:middle;font-size:2.7em}.bb-chart-arcs .bb-chart-arcs-background{fill:#e0e0e0;stroke:#fff}.bb-chart-arcs .bb-chart-arcs-gauge-unit{fill:#000;font-size:16px}.bb-chart-arcs .bb-chart-arcs-gauge-max,.bb-chart-arcs .bb-chart-arcs-gauge-min{fill:#777}.bb-chart-arcs .bb-levels circle{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-arcs .bb-levels text{fill:#848282}.bb-chart-radars .bb-levels polygon{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-levels text{fill:#848282}.bb-chart-radars .bb-axis line{stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-axis text{font-size:1.15em;cursor:default}.bb-chart-radars .bb-shapes polygon{fill-opacity:.2;stroke-width:1px}.bb-button{position:absolute;top:10px;right:10px}.bb-button .bb-zoom-reset{font-size:11px;border:solid 1px #ccc;background-color:#fff;padding:5px;border-radius:5px;cursor:pointer} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css deleted file mode 100644 index 7a6f7fe90..000000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css +++ /dev/null @@ -1 +0,0 @@ -.nvd3 .nv-axis{pointer-events:none;opacity:1}.nvd3 .nv-axis path{fill:none;stroke:#000;stroke-opacity:.75;shape-rendering:crispEdges}.nvd3 .nv-axis path.domain{stroke-opacity:.75}.nvd3 .nv-axis.nv-x path.domain{stroke-opacity:0}.nvd3 .nv-axis line{fill:none;stroke:#e5e5e5;shape-rendering:crispEdges}.nvd3 .nv-axis .zero line,.nvd3 .nv-axis line.zero{stroke-opacity:.75}.nvd3 .nv-axis .nv-axisMaxMin text{font-weight:700}.nvd3 .x .nv-axis .nv-axisMaxMin text,.nvd3 .x2 .nv-axis .nv-axisMaxMin text,.nvd3 .x3 .nv-axis .nv-axisMaxMin text{text-anchor:middle}.nvd3 .nv-axis.nv-disabled{opacity:0}.nvd3 .nv-bars rect{fill-opacity:.75;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-bars rect.hover{fill-opacity:1}.nvd3 .nv-bars .hover rect{fill:#add8e6}.nvd3 .nv-bars text{fill:rgba(0,0,0,0)}.nvd3 .nv-bars .hover text{fill:rgba(0,0,0,1)}.nvd3 .nv-multibar .nv-groups rect,.nvd3 .nv-multibarHorizontal .nv-groups rect,.nvd3 .nv-discretebar .nv-groups rect{stroke-opacity:0;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-multibar .nv-groups rect:hover,.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,.nvd3 .nv-candlestickBar .nv-ticks rect:hover,.nvd3 .nv-discretebar .nv-groups rect:hover{fill-opacity:1}.nvd3 .nv-discretebar .nv-groups text,.nvd3 .nv-multibarHorizontal .nv-groups text{font-weight:700;fill:rgba(0,0,0,1);stroke:rgba(0,0,0,0)}.nvd3 .nv-boxplot circle{fill-opacity:.5}.nvd3 .nv-boxplot circle:hover{fill-opacity:1}.nvd3 .nv-boxplot rect:hover{fill-opacity:1}.nvd3 line.nv-boxplot-median{stroke:#000}.nv-boxplot-tick:hover{stroke-width:2.5px}.nvd3.nv-bullet{font:10px sans-serif}.nvd3.nv-bullet .nv-measure{fill-opacity:.8}.nvd3.nv-bullet .nv-measure:hover{fill-opacity:1}.nvd3.nv-bullet .nv-marker{stroke:#000;stroke-width:2px}.nvd3.nv-bullet .nv-markerTriangle{stroke:#000;fill:#fff;stroke-width:1.5px}.nvd3.nv-bullet .nv-tick line{stroke:#666;stroke-width:.5px}.nvd3.nv-bullet .nv-range.nv-s0{fill:#eee}.nvd3.nv-bullet .nv-range.nv-s1{fill:#ddd}.nvd3.nv-bullet .nv-range.nv-s2{fill:#ccc}.nvd3.nv-bullet .nv-title{font-size:14px;font-weight:700}.nvd3.nv-bullet .nv-subtitle{fill:#999}.nvd3.nv-bullet .nv-range{fill:#bababa;fill-opacity:.4}.nvd3.nv-bullet .nv-range:hover{fill-opacity:.7}.nvd3.nv-candlestickBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.positive rect{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.negative rect{stroke:#d62728;fill:#d62728}.with-transitions .nv-candlestickBar .nv-ticks .nv-tick{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-candlestickBar .nv-ticks line{stroke:#333}.nvd3 .nv-legend .nv-disabled rect{}.nvd3 .nv-check-box .nv-box{fill-opacity:0;stroke-width:2}.nvd3 .nv-check-box .nv-check{fill-opacity:0;stroke-width:4}.nvd3 .nv-series.nv-disabled .nv-check-box .nv-check{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-controlsWrap .nv-legend .nv-check-box .nv-check{opacity:0}.nvd3.nv-linePlusBar .nv-bar rect{fill-opacity:.75}.nvd3.nv-linePlusBar .nv-bar rect:hover{fill-opacity:1}.nvd3 .nv-groups path.nv-line{fill:none}.nvd3 .nv-groups path.nv-area{stroke:none}.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point{fill-opacity:0;stroke-opacity:0}.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point{fill-opacity:.5!important;stroke-opacity:.5!important}.with-transitions .nvd3 .nv-groups .nv-point{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-scatter .nv-groups .nv-point.hover,.nvd3 .nv-groups .nv-point.hover{stroke-width:7px;fill-opacity:.95!important;stroke-opacity:.95!important}.nvd3 .nv-point-paths path{stroke:#aaa;stroke-opacity:0;fill:#eee;fill-opacity:0}.nvd3 .nv-indexLine{cursor:ew-resize}svg.nvd3-svg{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-ms-user-select:none;-moz-user-select:none;user-select:none;display:block;width:100%;height:100%}.nvtooltip.with-3d-shadow,.with-3d-shadow .nvtooltip{-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nvd3 text{font:400 12px Arial}.nvd3 .title{font:700 14px Arial}.nvd3 .nv-background{fill:#fff;fill-opacity:0}.nvd3.nv-noData{font-size:18px;font-weight:700}.nv-brush .extent{fill-opacity:.125;shape-rendering:crispEdges}.nv-brush .resize path{fill:#eee;stroke:#666}.nvd3 .nv-legend .nv-series{cursor:pointer}.nvd3 .nv-legend .nv-disabled circle{fill-opacity:0}.nvd3 .nv-brush .extent{fill-opacity:0!important}.nvd3 .nv-brushBackground rect{stroke:#000;stroke-width:.4;fill:#fff;fill-opacity:.7}.nvd3.nv-ohlcBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive{stroke:#2ca02c}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative{stroke:#d62728}.nvd3 .background path{fill:none;stroke:#EEE;stroke-opacity:.4;shape-rendering:crispEdges}.nvd3 .foreground path{fill:none;stroke-opacity:.7}.nvd3 .nv-parallelCoordinates-brush .extent{fill:#fff;fill-opacity:.6;stroke:gray;shape-rendering:crispEdges}.nvd3 .nv-parallelCoordinates .hover{fill-opacity:1;stroke-width:3px}.nvd3 .missingValuesline line{fill:none;stroke:#000;stroke-width:1;stroke-opacity:1;stroke-dasharray:5,5}.nvd3.nv-pie path{stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-pie .nv-pie-title{font-size:24px;fill:rgba(19,196,249,.59)}.nvd3.nv-pie .nv-slice text{stroke:#000;stroke-width:0}.nvd3.nv-pie path{stroke:#fff;stroke-width:1px;stroke-opacity:1}.nvd3.nv-pie .hover path{fill-opacity:.7}.nvd3.nv-pie .nv-label{pointer-events:none}.nvd3.nv-pie .nv-label rect{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-groups .nv-point.hover{stroke-width:20px;stroke-opacity:.5}.nvd3 .nv-scatter .nv-point.hover{fill-opacity:1}.nv-noninteractive{pointer-events:none}.nv-distx,.nv-disty{pointer-events:none}.nvd3.nv-sparkline path{fill:none}.nvd3.nv-sparklineplus g.nv-hoverValue{pointer-events:none}.nvd3.nv-sparklineplus .nv-hoverValue line{stroke:#333;stroke-width:1.5px}.nvd3.nv-sparklineplus,.nvd3.nv-sparklineplus g{pointer-events:all}.nvd3 .nv-hoverArea{fill-opacity:0;stroke-opacity:0}.nvd3.nv-sparklineplus .nv-xValue,.nvd3.nv-sparklineplus .nv-yValue{stroke-width:0;font-size:.9em;font-weight:400}.nvd3.nv-sparklineplus .nv-yValue{stroke:#f66}.nvd3.nv-sparklineplus .nv-maxValue{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-sparklineplus .nv-minValue{stroke:#d62728;fill:#d62728}.nvd3.nv-sparklineplus .nv-currentValue{font-weight:700;font-size:1.1em}.nvd3.nv-stackedarea path.nv-area{fill-opacity:.7;stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-stackedarea path.nv-area.hover{fill-opacity:.9}.nvd3.nv-stackedarea .nv-groups .nv-point{stroke-opacity:0;fill-opacity:0}.nvtooltip{position:absolute;background-color:rgba(255,255,255,1);color:rgba(0,0,0,1);padding:1px;border:1px solid rgba(0,0,0,.2);z-index:10000;display:block;font-family:Arial;font-size:13px;text-align:left;pointer-events:none;white-space:nowrap;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.nvtooltip{background:rgba(255,255,255,.8);border:1px solid rgba(0,0,0,.5);border-radius:4px}.nvtooltip.with-transitions,.with-transitions .nvtooltip{transition:opacity 50ms linear;-moz-transition:opacity 50ms linear;-webkit-transition:opacity 50ms linear;transition-delay:200ms;-moz-transition-delay:200ms;-webkit-transition-delay:200ms}.nvtooltip.x-nvtooltip,.nvtooltip.y-nvtooltip{padding:8px}.nvtooltip h3{margin:0;padding:4px 14px;line-height:18px;font-weight:400;background-color:rgba(247,247,247,.75);color:rgba(0,0,0,1);text-align:center;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.nvtooltip p{margin:0;padding:5px 14px;text-align:center}.nvtooltip span{display:inline-block;margin:2px 0}.nvtooltip table{margin:6px;border-spacing:0}.nvtooltip table td{padding:2px 9px 2px 0;vertical-align:middle}.nvtooltip table td.key{font-weight:400}.nvtooltip table td.value{text-align:right;font-weight:700}.nvtooltip table tr.highlight td{padding:1px 9px 1px 0;border-bottom-style:solid;border-bottom-width:1px;border-top-style:solid;border-top-width:1px}.nvtooltip table td.legend-color-guide div{width:8px;height:8px;vertical-align:middle}.nvtooltip table td.legend-color-guide div{width:12px;height:12px;border:1px solid #999}.nvtooltip .footer{padding:3px;text-align:center}.nvtooltip-pending-removal{pointer-events:none;display:none}.nvd3 .nv-interactiveGuideLine{pointer-events:none}.nvd3 line.nv-guideline{stroke:#ccc} \ No newline at end of file diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css index c0a045889..4303bf844 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css @@ -1,13 +1,86 @@ + :root { - --phpunit-breadcrumbs: var(--bs-gray-200); - --phpunit-success-bar: #28a745; - --phpunit-success-high: {{success-high}}; - --phpunit-success-medium: {{success-medium}}; - --phpunit-success-low: {{success-low}}; - --phpunit-warning: {{warning}}; - --phpunit-warning-bar: #ffc107; - --phpunit-danger: {{danger}}; - --phpunit-danger-bar: #dc3545; + /* Implementing an auto-selection of dark/light theme via: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/light-dark */ + color-scheme: light dark; + + /* PHPUnit light/dark colors */ + --phpunit-breadcrumbs: light-dark(var(--bs-gray-200), var(--bs-gray-800)); + --phpunit-success-bar: light-dark(#28a745 ,#1f8135); + --phpunit-success-high: light-dark(#99cb84, #3d5c4e); + --phpunit-success-medium: light-dark(#c3e3b5,#3c6051); + --phpunit-success-low: light-dark(#dff0d8, #2d4431); + --phpunit-warning: light-dark(#fcf8e3, #3e3408); + --phpunit-warning-bar: light-dark(#ffc107 ,#c19406); + --phpunit-danger: light-dark(#f2dede, #42221e); + --phpunit-danger-bar: light-dark(#dc3545, #a62633); + + /* Bootstrap v5.3 default colors (light, dark) */ + --bs-body-bg-rgb: 255, 255, 255; + --bs-body-bg: light-dark(#fff, #212529); + --bs-body-color-rgb: light-dark(33, 37, 41, 222, 226, 230); + --bs-body-color: light-dark(#212529, #dee2e6); + --bs-border-color-translucent: light-dark(rgba(0, 0, 0, 0.175), rgba(255, 255, 255, 0.15)); + --bs-border-color: light-dark(#dee2e6, #495057); + --bs-code-color: light-dark(#d63384, #e685b5); + --bs-danger-bg-subtle: light-dark(#f8d7da, #2c0b0e); + --bs-danger-border-subtle: light-dark(#f1aeb5, #842029); + --bs-danger-text-emphasis: light-dark(#58151c, #ea868f); + --bs-dark-bg-subtle: light-dark(#ced4da, #1a1d20); + --bs-dark-border-subtle: light-dark(#adb5bd, #343a40); + --bs-dark-text-emphasis: light-dark(#495057, #dee2e6); + --bs-emphasis-color-rgb: 0, 0, 0; + --bs-emphasis-color: light-dark(#000, #fff); + --bs-form-invalid-border-color: light-dark(#dc3545, #ea868f); + --bs-form-invalid-color: light-dark(#dc3545, #ea868f); + --bs-form-valid-border-color: light-dark(#198754, #75b798); + --bs-form-valid-color: light-dark(#198754, #75b798); + --bs-highlight-bg: light-dark(#fff3cd, #664d03); + --bs-highlight-color: light-dark(#212529, #dee2e6); + --bs-info-bg-subtle: light-dark(#cff4fc, #032830); + --bs-info-border-subtle: light-dark(#9eeaf9, #087990); + --bs-info-text-emphasis: light-dark(#055160, #6edff6); + --bs-light-bg-subtle: light-dark(#fcfcfd, #343a40); + --bs-light-border-subtle: light-dark(#e9ecef, #495057); + --bs-light-text-emphasis: light-dark(#495057, #f8f9fa); + --bs-link-color-rgb: 13, 110, 253; + --bs-link-color: light-dark(#0d6efd, #6ea8fe); + --bs-link-hover-color-rgb: 10, 88, 202; + --bs-link-hover-color: light-dark(#0a58ca, #8bb9fe); + --bs-primary-bg-subtle: light-dark(#cfe2ff, #031633); + --bs-primary-border-subtle: light-dark(#9ec5fe, #084298); + --bs-primary-text-emphasis: light-dark(#052c65, #6ea8fe); + --bs-secondary-bg-rgb: 233, 236, 239; + --bs-secondary-bg-subtle: light-dark(#e2e3e5, #161719); + --bs-secondary-bg: light-dark(#e9ecef, #343a40); + --bs-secondary-border-subtle: light-dark(#c4c8cb, #41464b); + --bs-secondary-color-rgb: 33, 37, 41; + --bs-secondary-color: light-dark(rgba(33, 37, 41, 0.75), rgba(222, 226, 230, 0.75)); + --bs-secondary-text-emphasis: light-dark(#2b2f32, #a7acb1); + --bs-success-bg-subtle: light-dark(#d1e7dd, #051b11); + --bs-success-border-subtle: light-dark(#a3cfbb, #0f5132); + --bs-success-text-emphasis: light-dark(#0a3622, #75b798); + --bs-tertiary-bg-rgb: light-dark(248, 249, 250, 43, 48, 53); + --bs-tertiary-bg: light-dark(#f8f9fa, #2b3035); + --bs-tertiary-color-rgb: 33, 37, 41; + --bs-tertiary-color: light-dark(rgba(33, 37, 41, 0.5), rgba(222, 226, 230, 0.5)); + --bs-warning-bg-subtle: light-dark(#fff3cd, #332701); + --bs-warning-border-subtle: light-dark(#ffe69c, #997404); + --bs-warning-text-emphasis: light-dark(#664d03, #ffda6a); +} + +@media (prefers-color-scheme: dark) { + :root { + --bs-body-bg-rgb: 33, 37, 41; + --bs-emphasis-color-rgb: 255, 255, 255; + --bs-link-color-rgb: 110, 168, 254; + --bs-link-hover-color-rgb: 139, 185, 254; + --bs-secondary-bg-rgb: 52, 58, 64; + --bs-secondary-color-rgb: 222, 226, 230; + --bs-tertiary-color-rgb: 222, 226, 230; + } + + /* Invert icon's colors on dark mode to improve readability */ + img.octicon { filter: invert(1); } } body { @@ -198,4 +271,4 @@ table#code td:first-of-type a { .progress-bar.bg-danger { background-color: var(--phpunit-danger-bar) !important; -} \ No newline at end of file +} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist index 60e66d5be..d6575bc24 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist @@ -5,7 +5,7 @@ Dashboard for {{full_path}} - + @@ -32,7 +32,7 @@

Coverage Distribution

-
+
@@ -45,7 +45,7 @@
-

Insufficient Coverage

+

Insufficient Coverage

@@ -61,12 +61,14 @@
-

Project Risks

+

Project Risks

+ + @@ -79,13 +81,13 @@
-

Methods

+

Methods

Coverage Distribution

-
+
@@ -98,7 +100,7 @@
-

Insufficient Coverage

+

Insufficient Coverage

ClassCoverageComplexity CRAP
@@ -114,12 +116,14 @@
-

Project Risks

+

Project Risks

+ + @@ -137,145 +141,159 @@

- - - - + + + diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard_branch.html.dist b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard_branch.html.dist index 60e66d5be..eb003154a 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard_branch.html.dist +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard_branch.html.dist @@ -5,7 +5,7 @@ Dashboard for {{full_path}} - + @@ -32,7 +32,7 @@

Coverage Distribution

-
+
@@ -45,7 +45,7 @@
-

Insufficient Coverage

+

Insufficient Coverage

MethodCoverageComplexity CRAP
@@ -61,7 +61,7 @@
-

Project Risks

+

Project Risks

@@ -79,13 +79,13 @@
-

Methods

+

Methods

Coverage Distribution

-
+
@@ -98,7 +98,7 @@
-

Insufficient Coverage

+

Insufficient Coverage

@@ -114,7 +114,7 @@
-

Project Risks

+

Project Risks

@@ -137,145 +137,157 @@

- - - - + + + diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/billboard.pkgd.min.js b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/billboard.pkgd.min.js new file mode 100644 index 000000000..52128a864 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/billboard.pkgd.min.js @@ -0,0 +1,57 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.15.1 + * + * All-in-one packaged file for ease use of 'billboard.js' with dependant d3.js modules & polyfills. + * - @types/d3-selection ^3.0.11 + * - @types/d3-transition ^3.0.9 + * - d3-axis ^3.0.0 + * - d3-brush ^3.0.0 + * - d3-drag ^3.0.0 + * - d3-dsv ^3.0.1 + * - d3-ease ^3.0.1 + * - d3-hierarchy ^3.1.2 + * - d3-interpolate ^3.0.1 + * - d3-scale ^4.0.2 + * - d3-selection ^3.0.0 + * - d3-shape ^3.2.0 + * - d3-time-format ^4.1.0 + * - d3-transition ^3.0.1 + * - d3-zoom ^3.0.0 + */(function(Xa,zn){if(typeof exports=="object"&&typeof module=="object")module.exports=zn();else if(typeof define=="function"&&define.amd)define([],zn);else{var Ha=zn();for(var x in Ha)(typeof exports=="object"?exports:Xa)[x]=Ha[x]}})(this,function(){return function(){"use strict";var Cs=[function(x,b,r){r(1),r(97),r(98),r(99),r(100),r(101),r(102),r(103),r(104),r(105),r(106),r(107),r(108),r(109),r(110),r(111),r(124),r(126),r(136),r(137),r(139),r(143),r(146),r(148),r(150),r(151),r(152),r(153),r(155),r(156),r(158),r(159),r(161),r(165),r(166),r(167),r(168),r(173),r(174),r(176),r(177),r(178),r(180),r(184),r(185),r(186),r(187),r(188),r(193),r(195),r(196),r(198),r(201),r(202),r(203),r(204),r(205),r(207),r(218),r(220),r(221),r(223),r(224),r(227),r(230),r(236),r(237),r(238),r(239),r(240),r(241),r(245),r(246),r(248),r(249),r(250),r(252),r(253),r(254),r(255),r(256),r(261),r(262),r(263),r(264),r(266),r(267),r(268),r(270),r(271),r(272),r(273),r(93),r(274),r(275),r(283),r(285),r(287),r(288),r(289),r(290),r(291),r(293),r(294),r(295),r(296),r(297),r(298),r(300),r(301),r(302),r(303),r(304),r(305),r(306),r(307),r(311),r(312),r(314),r(316),r(317),r(318),r(319),r(320),r(322),r(324),r(325),r(326),r(327),r(329),r(330),r(332),r(333),r(334),r(335),r(337),r(338),r(339),r(340),r(341),r(342),r(343),r(344),r(345),r(347),r(348),r(349),r(350),r(351),r(352),r(353),r(354),r(355),r(356),r(357),r(359),r(360),r(361),r(362),r(386),r(387),r(388),r(389),r(390),r(391),r(392),r(393),r(394),r(395),r(397),r(398),r(399),r(400),r(401),r(402),r(403),r(404),r(405),r(406),r(413),r(415),r(416),r(418),r(419),r(420),r(421),r(422),r(424),r(434),r(436),r(438),r(440),r(442),r(444),r(446),r(447),r(449),r(452),r(453),r(454),r(455),r(456),r(460),r(461),r(463),r(464),r(465),r(466),r(468),r(469),r(470),r(471),r(472),r(473),r(474),r(476),r(479),r(482),r(485),r(486),r(487),r(488),r(489),r(490),r(491),r(492),r(493),r(494),r(495),r(496),r(497),r(505),r(506),r(507),r(508),r(509),r(510),r(511),r(512),r(513),r(514),r(515),r(516),r(517),r(519),r(520),r(521),r(522),r(523),r(524),r(525),r(526),r(527),r(528),r(529),r(530),r(531),r(532),r(533),r(534),r(535),r(536),r(537),r(538),r(539),r(540),r(541),r(542),r(543),r(544),r(545),r(546),r(549),r(551),r(553),r(554),r(557),r(558),r(560),r(561),r(562),r(566),r(567),r(568),r(569),r(572),r(577),r(578),r(579),r(580),r(581),r(582),r(583),r(80)},function(x,b,r){r(2),r(90),r(92),r(93),r(96)},function(x,b,r){var u=r(3),d=r(4),h=r(8),p=r(14),y=r(36),T=r(6),$=r(26),A=r(7),E=r(38),R=r(24),I=r(46),O=r(12),C=r(18),D=r(68),M=r(11),F=r(71),z=r(73),U=r(57),j=r(75),G=r(66),B=r(5),V=r(44),Y=r(72),Z=r(10),J=r(47),q=r(77),nt=r(34),rt=r(53),_=r(54),tt=r(40),et=r(33),lt=r(78),mt=r(79),gt=r(81),xt=r(82),yt=r(51),Ut=r(83).forEach,Dt=rt("hidden"),Xt="Symbol",Qt="prototype",kt=yt.set,me=yt.getterFor(Xt),ge=Object[Qt],ae=d.Symbol,Mt=ae&&ae[Qt],Ht=d.RangeError,re=d.TypeError,se=d.QObject,ee=B.f,fe=V.f,Pe=j.f,Me=Z.f,$e=p([].push),ce=nt("symbols"),Ae=nt("op-symbols"),Te=nt("wks"),de=!se||!se[Qt]||!se[Qt].findChild,bt=function(It,Pt,Ct){var Nt=ee(ge,Pt);Nt&&delete ge[Pt],fe(It,Pt,Ct),Nt&&It!==ge&&fe(ge,Pt,Nt)},Ft=T&&A(function(){return F(fe({},"a",{get:function(){return fe(this,"a",{value:7}).a}})).a!==7})?bt:fe,Tt=function(It,Pt){var Ct=ce[It]=F(Mt);return kt(Ct,{type:Xt,tag:It,description:Pt}),T||(Ct.description=Pt),Ct},qt=function(Pt,Ct,Nt){Pt===ge&&qt(Ae,Ct,Nt),I(Pt);var Et=C(Ct);return I(Nt),E(ce,Et)?(Nt.enumerable?(E(Pt,Dt)&&Pt[Dt][Et]&&(Pt[Dt][Et]=!1),Nt=F(Nt,{enumerable:M(0,!1)})):(E(Pt,Dt)||fe(Pt,Dt,M(1,F(null))),Pt[Dt][Et]=!0),Ft(Pt,Et,Nt)):fe(Pt,Et,Nt)},te=function(Pt,Ct){I(Pt);var Nt=O(Ct),Et=z(Nt).concat(ut(Nt));return Ut(Et,function(ie){(!T||h(Yt,Nt,ie))&&qt(Pt,ie,Nt[ie])}),Pt},Zt=function(Pt,Ct){return Ct===void 0?F(Pt):te(F(Pt),Ct)},Yt=function(Pt){var Ct=C(Pt),Nt=h(Me,this,Ct);return this===ge&&E(ce,Ct)&&!E(Ae,Ct)?!1:Nt||!E(this,Ct)||!E(ce,Ct)||E(this,Dt)&&this[Dt][Ct]?Nt:!0},Ye=function(Pt,Ct){var Nt=O(Pt),Et=C(Ct);if(!(Nt===ge&&E(ce,Et)&&!E(Ae,Et))){var ie=ee(Nt,Et);return ie&&E(ce,Et)&&!(E(Nt,Dt)&&Nt[Dt][Et])&&(ie.enumerable=!0),ie}},Ze=function(Pt){var Ct=Pe(O(Pt)),Nt=[];return Ut(Ct,function(Et){!E(ce,Et)&&!E(_,Et)&&$e(Nt,Et)}),Nt},ut=function(It){var Pt=It===ge,Ct=Pe(Pt?Ae:O(It)),Nt=[];return Ut(Ct,function(Et){E(ce,Et)&&(!Pt||E(ge,Et))&&$e(Nt,ce[Et])}),Nt};$||(ae=function(){if(R(Mt,this))throw new re("Symbol is not a constructor");var Pt=!arguments.length||arguments[0]===void 0?void 0:D(arguments[0]),Ct=tt(Pt),Nt=function(Et){var ie=this===void 0?d:this;ie===ge&&h(Nt,Ae,Et),E(ie,Dt)&&E(ie[Dt],Ct)&&(ie[Dt][Ct]=!1);var we=M(1,Et);try{Ft(ie,Ct,we)}catch(Rt){if(!(Rt instanceof Ht))throw Rt;bt(ie,Ct,we)}};return T&&de&&Ft(ge,Ct,{configurable:!0,set:Nt}),Tt(Ct,Pt)},Mt=ae[Qt],J(Mt,"toString",function(){return me(this).tag}),J(ae,"withoutSetter",function(It){return Tt(tt(It),It)}),Z.f=Yt,V.f=qt,Y.f=te,B.f=Ye,U.f=j.f=Ze,G.f=ut,lt.f=function(It){return Tt(et(It),It)},T&&(q(Mt,"description",{configurable:!0,get:function(){return me(this).description}}),y||J(ge,"propertyIsEnumerable",Yt,{unsafe:!0}))),u({global:!0,constructor:!0,wrap:!0,forced:!$,sham:!$},{Symbol:ae}),Ut(z(Te),function(It){mt(It)}),u({target:Xt,stat:!0,forced:!$},{useSetter:function(){de=!0},useSimple:function(){de=!1}}),u({target:"Object",stat:!0,forced:!$,sham:!T},{create:Zt,defineProperty:qt,defineProperties:te,getOwnPropertyDescriptor:Ye}),u({target:"Object",stat:!0,forced:!$},{getOwnPropertyNames:Ze}),gt(),xt(ae,Xt),_[Dt]=!0},function(x,b,r){var u=r(4),d=r(5).f,h=r(43),p=r(47),y=r(37),T=r(55),$=r(67);x.exports=function(A,E){var R=A.target,I=A.global,O=A.stat,C,D,M,F,z,U;if(I?D=u:O?D=u[R]||y(R,{}):D=u[R]&&u[R].prototype,D)for(M in E){if(z=E[M],A.dontCallGetSet?(U=d(D,M),F=U&&U.value):F=D[M],C=$(I?M:R+(O?".":"#")+M,A.forced),!C&&F!==void 0){if(typeof z==typeof F)continue;T(z,F)}(A.sham||F&&F.sham)&&h(z,"sham",!0),p(D,M,z,A)}}},function(x){var b=function(r){return r&&r.Math===Math&&r};x.exports=b(typeof globalThis=="object"&&globalThis)||b(typeof window=="object"&&window)||b(typeof self=="object"&&self)||b(typeof global=="object"&&global)||b(typeof this=="object"&&this)||function(){return this}()||Function("return this")()},function(x,b,r){var u=r(6),d=r(8),h=r(10),p=r(11),y=r(12),T=r(18),$=r(38),A=r(41),E=Object.getOwnPropertyDescriptor;b.f=u?E:function(I,O){if(I=y(I),O=T(O),A)try{return E(I,O)}catch(C){}if($(I,O))return p(!d(h.f,I,O),I[O])}},function(x,b,r){var u=r(7);x.exports=!u(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})},function(x){x.exports=function(b){try{return!!b()}catch(r){return!0}}},function(x,b,r){var u=r(9),d=Function.prototype.call;x.exports=u?d.bind(d):function(){return d.apply(d,arguments)}},function(x,b,r){var u=r(7);x.exports=!u(function(){var d=function(){}.bind();return typeof d!="function"||d.hasOwnProperty("prototype")})},function(x,b){var r={}.propertyIsEnumerable,u=Object.getOwnPropertyDescriptor,d=u&&!r.call({1:2},1);b.f=d?function(p){var y=u(this,p);return!!y&&y.enumerable}:r},function(x){x.exports=function(b,r){return{enumerable:!(b&1),configurable:!(b&2),writable:!(b&4),value:r}}},function(x,b,r){var u=r(13),d=r(16);x.exports=function(h){return u(d(h))}},function(x,b,r){var u=r(14),d=r(7),h=r(15),p=Object,y=u("".split);x.exports=d(function(){return!p("z").propertyIsEnumerable(0)})?function(T){return h(T)==="String"?y(T,""):p(T)}:p},function(x,b,r){var u=r(9),d=Function.prototype,h=d.call,p=u&&d.bind.bind(h,h);x.exports=u?p:function(y){return function(){return h.apply(y,arguments)}}},function(x,b,r){var u=r(14),d=u({}.toString),h=u("".slice);x.exports=function(p){return h(d(p),8,-1)}},function(x,b,r){var u=r(17),d=TypeError;x.exports=function(h){if(u(h))throw new d("Can't call method on "+h);return h}},function(x){x.exports=function(b){return b==null}},function(x,b,r){var u=r(19),d=r(22);x.exports=function(h){var p=u(h,"string");return d(p)?p:p+""}},function(x,b,r){var u=r(8),d=r(20),h=r(22),p=r(29),y=r(32),T=r(33),$=TypeError,A=T("toPrimitive");x.exports=function(E,R){if(!d(E)||h(E))return E;var I=p(E,A),O;if(I){if(R===void 0&&(R="default"),O=u(I,E,R),!d(O)||h(O))return O;throw new $("Can't convert object to primitive value")}return R===void 0&&(R="number"),y(E,R)}},function(x,b,r){var u=r(21);x.exports=function(d){return typeof d=="object"?d!==null:u(d)}},function(x){var b=typeof document=="object"&&document.all;x.exports=typeof b=="undefined"&&b!==void 0?function(r){return typeof r=="function"||r===b}:function(r){return typeof r=="function"}},function(x,b,r){var u=r(23),d=r(21),h=r(24),p=r(25),y=Object;x.exports=p?function(T){return typeof T=="symbol"}:function(T){var $=u("Symbol");return d($)&&h($.prototype,y(T))}},function(x,b,r){var u=r(4),d=r(21),h=function(p){return d(p)?p:void 0};x.exports=function(p,y){return arguments.length<2?h(u[p]):u[p]&&u[p][y]}},function(x,b,r){var u=r(14);x.exports=u({}.isPrototypeOf)},function(x,b,r){var u=r(26);x.exports=u&&!Symbol.sham&&typeof Symbol.iterator=="symbol"},function(x,b,r){var u=r(27),d=r(7),h=r(4),p=h.String;x.exports=!!Object.getOwnPropertySymbols&&!d(function(){var y=Symbol("symbol detection");return!p(y)||!(Object(y)instanceof Symbol)||!Symbol.sham&&u&&u<41})},function(x,b,r){var u=r(4),d=r(28),h=u.process,p=u.Deno,y=h&&h.versions||p&&p.version,T=y&&y.v8,$,A;T&&($=T.split("."),A=$[0]>0&&$[0]<4?1:+($[0]+$[1])),!A&&d&&($=d.match(/Edge\/(\d+)/),(!$||$[1]>=74)&&($=d.match(/Chrome\/(\d+)/),$&&(A=+$[1]))),x.exports=A},function(x,b,r){var u=r(4),d=u.navigator,h=d&&d.userAgent;x.exports=h?String(h):""},function(x,b,r){var u=r(30),d=r(17);x.exports=function(h,p){var y=h[p];return d(y)?void 0:u(y)}},function(x,b,r){var u=r(21),d=r(31),h=TypeError;x.exports=function(p){if(u(p))return p;throw new h(d(p)+" is not a function")}},function(x){var b=String;x.exports=function(r){try{return b(r)}catch(u){return"Object"}}},function(x,b,r){var u=r(8),d=r(21),h=r(20),p=TypeError;x.exports=function(y,T){var $,A;if(T==="string"&&d($=y.toString)&&!h(A=u($,y))||d($=y.valueOf)&&!h(A=u($,y))||T!=="string"&&d($=y.toString)&&!h(A=u($,y)))return A;throw new p("Can't convert object to primitive value")}},function(x,b,r){var u=r(4),d=r(34),h=r(38),p=r(40),y=r(26),T=r(25),$=u.Symbol,A=d("wks"),E=T?$.for||$:$&&$.withoutSetter||p;x.exports=function(R){return h(A,R)||(A[R]=y&&h($,R)?$[R]:E("Symbol."+R)),A[R]}},function(x,b,r){var u=r(35);x.exports=function(d,h){return u[d]||(u[d]=h||{})}},function(x,b,r){var u=r(36),d=r(4),h=r(37),p="__core-js_shared__",y=x.exports=d[p]||h(p,{});(y.versions||(y.versions=[])).push({version:"3.41.0",mode:u?"pure":"global",copyright:"\xA9 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.41.0/LICENSE",source:"https://github.com/zloirock/core-js"})},function(x){x.exports=!1},function(x,b,r){var u=r(4),d=Object.defineProperty;x.exports=function(h,p){try{d(u,h,{value:p,configurable:!0,writable:!0})}catch(y){u[h]=p}return p}},function(x,b,r){var u=r(14),d=r(39),h=u({}.hasOwnProperty);x.exports=Object.hasOwn||function(y,T){return h(d(y),T)}},function(x,b,r){var u=r(16),d=Object;x.exports=function(h){return d(u(h))}},function(x,b,r){var u=r(14),d=0,h=Math.random(),p=u(1 .toString);x.exports=function(y){return"Symbol("+(y===void 0?"":y)+")_"+p(++d+h,36)}},function(x,b,r){var u=r(6),d=r(7),h=r(42);x.exports=!u&&!d(function(){return Object.defineProperty(h("div"),"a",{get:function(){return 7}}).a!==7})},function(x,b,r){var u=r(4),d=r(20),h=u.document,p=d(h)&&d(h.createElement);x.exports=function(y){return p?h.createElement(y):{}}},function(x,b,r){var u=r(6),d=r(44),h=r(11);x.exports=u?function(p,y,T){return d.f(p,y,h(1,T))}:function(p,y,T){return p[y]=T,p}},function(x,b,r){var u=r(6),d=r(41),h=r(45),p=r(46),y=r(18),T=TypeError,$=Object.defineProperty,A=Object.getOwnPropertyDescriptor,E="enumerable",R="configurable",I="writable";b.f=u?h?function(C,D,M){if(p(C),D=y(D),p(M),typeof C=="function"&&D==="prototype"&&"value"in M&&I in M&&!M[I]){var F=A(C,D);F&&F[I]&&(C[D]=M.value,M={configurable:R in M?M[R]:F[R],enumerable:E in M?M[E]:F[E],writable:!1})}return $(C,D,M)}:$:function(C,D,M){if(p(C),D=y(D),p(M),d)try{return $(C,D,M)}catch(F){}if("get"in M||"set"in M)throw new T("Accessors not supported");return"value"in M&&(C[D]=M.value),C}},function(x,b,r){var u=r(6),d=r(7);x.exports=u&&d(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})},function(x,b,r){var u=r(20),d=String,h=TypeError;x.exports=function(p){if(u(p))return p;throw new h(d(p)+" is not an object")}},function(x,b,r){var u=r(21),d=r(44),h=r(48),p=r(37);x.exports=function(y,T,$,A){A||(A={});var E=A.enumerable,R=A.name!==void 0?A.name:T;if(u($)&&h($,R,A),A.global)E?y[T]=$:p(T,$);else{try{A.unsafe?y[T]&&(E=!0):delete y[T]}catch(I){}E?y[T]=$:d.f(y,T,{value:$,enumerable:!1,configurable:!A.nonConfigurable,writable:!A.nonWritable})}return y}},function(x,b,r){var u=r(14),d=r(7),h=r(21),p=r(38),y=r(6),T=r(49).CONFIGURABLE,$=r(50),A=r(51),E=A.enforce,R=A.get,I=String,O=Object.defineProperty,C=u("".slice),D=u("".replace),M=u([].join),F=y&&!d(function(){return O(function(){},"length",{value:8}).length!==8}),z=String(String).split("String"),U=x.exports=function(j,G,B){C(I(G),0,7)==="Symbol("&&(G="["+D(I(G),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),B&&B.getter&&(G="get "+G),B&&B.setter&&(G="set "+G),(!p(j,"name")||T&&j.name!==G)&&(y?O(j,"name",{value:G,configurable:!0}):j.name=G),F&&B&&p(B,"arity")&&j.length!==B.arity&&O(j,"length",{value:B.arity});try{B&&p(B,"constructor")&&B.constructor?y&&O(j,"prototype",{writable:!1}):j.prototype&&(j.prototype=void 0)}catch(Y){}var V=E(j);return p(V,"source")||(V.source=M(z,typeof G=="string"?G:"")),j};Function.prototype.toString=U(function(){return h(this)&&R(this).source||$(this)},"toString")},function(x,b,r){var u=r(6),d=r(38),h=Function.prototype,p=u&&Object.getOwnPropertyDescriptor,y=d(h,"name"),T=y&&function(){}.name==="something",$=y&&(!u||u&&p(h,"name").configurable);x.exports={EXISTS:y,PROPER:T,CONFIGURABLE:$}},function(x,b,r){var u=r(14),d=r(21),h=r(35),p=u(Function.toString);d(h.inspectSource)||(h.inspectSource=function(y){return p(y)}),x.exports=h.inspectSource},function(x,b,r){var u=r(52),d=r(4),h=r(20),p=r(43),y=r(38),T=r(35),$=r(53),A=r(54),E="Object already initialized",R=d.TypeError,I=d.WeakMap,O,C,D,M=function(j){return D(j)?C(j):O(j,{})},F=function(j){return function(G){var B;if(!h(G)||(B=C(G)).type!==j)throw new R("Incompatible receiver, "+j+" required");return B}};if(u||T.state){var z=T.state||(T.state=new I);z.get=z.get,z.has=z.has,z.set=z.set,O=function(j,G){if(z.has(j))throw new R(E);return G.facade=j,z.set(j,G),G},C=function(j){return z.get(j)||{}},D=function(j){return z.has(j)}}else{var U=$("state");A[U]=!0,O=function(j,G){if(y(j,U))throw new R(E);return G.facade=j,p(j,U,G),G},C=function(j){return y(j,U)?j[U]:{}},D=function(j){return y(j,U)}}x.exports={set:O,get:C,has:D,enforce:M,getterFor:F}},function(x,b,r){var u=r(4),d=r(21),h=u.WeakMap;x.exports=d(h)&&/native code/.test(String(h))},function(x,b,r){var u=r(34),d=r(40),h=u("keys");x.exports=function(p){return h[p]||(h[p]=d(p))}},function(x){x.exports={}},function(x,b,r){var u=r(38),d=r(56),h=r(5),p=r(44);x.exports=function(y,T,$){for(var A=d(T),E=p.f,R=h.f,I=0;IR;)d(E,O=A[R++])&&(~p(I,O)||T(I,O));return I}},function(x,b,r){var u=r(12),d=r(60),h=r(63),p=function(y){return function(T,$,A){var E=u(T),R=h(E);if(R===0)return!y&&-1;var I=d(A,R),O;if(y&&$!==$){for(;R>I;)if(O=E[I++],O!==O)return!0}else for(;R>I;I++)if((y||I in E)&&E[I]===$)return y||I||0;return!y&&-1}};x.exports={includes:p(!0),indexOf:p(!1)}},function(x,b,r){var u=r(61),d=Math.max,h=Math.min;x.exports=function(p,y){var T=u(p);return T<0?d(T+y,0):h(T,y)}},function(x,b,r){var u=r(62);x.exports=function(d){var h=+d;return h!==h||h===0?0:u(h)}},function(x){var b=Math.ceil,r=Math.floor;x.exports=Math.trunc||function(d){var h=+d;return(h>0?r:b)(h)}},function(x,b,r){var u=r(64);x.exports=function(d){return u(d.length)}},function(x,b,r){var u=r(61),d=Math.min;x.exports=function(h){var p=u(h);return p>0?d(p,9007199254740991):0}},function(x){x.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(x,b){b.f=Object.getOwnPropertySymbols},function(x,b,r){var u=r(7),d=r(21),h=/#|\.prototype\./,p=function(E,R){var I=T[y(E)];return I===A?!0:I===$?!1:d(R)?u(R):!!R},y=p.normalize=function(E){return String(E).replace(h,".").toLowerCase()},T=p.data={},$=p.NATIVE="N",A=p.POLYFILL="P";x.exports=p},function(x,b,r){var u=r(69),d=String;x.exports=function(h){if(u(h)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return d(h)}},function(x,b,r){var u=r(70),d=r(21),h=r(15),p=r(33),y=p("toStringTag"),T=Object,$=h(function(){return arguments}())==="Arguments",A=function(E,R){try{return E[R]}catch(I){}};x.exports=u?h:function(E){var R,I,O;return E===void 0?"Undefined":E===null?"Null":typeof(I=A(R=T(E),y))=="string"?I:$?h(R):(O=h(R))==="Object"&&d(R.callee)?"Arguments":O}},function(x,b,r){var u=r(33),d=u("toStringTag"),h={};h[d]="z",x.exports=String(h)==="[object z]"},function(x,b,r){var u=r(46),d=r(72),h=r(65),p=r(54),y=r(74),T=r(42),$=r(53),A=">",E="<",R="prototype",I="script",O=$("IE_PROTO"),C=function(){},D=function(j){return E+I+A+j+E+"/"+I+A},M=function(j){j.write(D("")),j.close();var G=j.parentWindow.Object;return j=null,G},F=function(){var j=T("iframe"),G="java"+I+":",B;return j.style.display="none",y.appendChild(j),j.src=String(G),B=j.contentWindow.document,B.open(),B.write(D("document.F=Object")),B.close(),B.F},z,U=function(){try{z=new ActiveXObject("htmlfile")}catch(G){}U=typeof document!="undefined"?document.domain&&z?M(z):F():M(z);for(var j=h.length;j--;)delete U[R][h[j]];return U()};p[O]=!0,x.exports=Object.create||function(G,B){var V;return G!==null?(C[R]=u(G),V=new C,C[R]=null,V[O]=G):V=U(),B===void 0?V:d.f(V,B)}},function(x,b,r){var u=r(6),d=r(45),h=r(44),p=r(46),y=r(12),T=r(73);b.f=u&&!d?Object.defineProperties:function(A,E){p(A);for(var R=y(E),I=T(E),O=I.length,C=0,D;O>C;)h.f(A,D=I[C++],R[D]);return A}},function(x,b,r){var u=r(58),d=r(65);x.exports=Object.keys||function(p){return u(p,d)}},function(x,b,r){var u=r(23);x.exports=u("document","documentElement")},function(x,b,r){var u=r(15),d=r(12),h=r(57).f,p=r(76),y=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],T=function($){try{return h($)}catch(A){return p(y)}};x.exports.f=function(A){return y&&u(A)==="Window"?T(A):h(d(A))}},function(x,b,r){var u=r(14);x.exports=u([].slice)},function(x,b,r){var u=r(48),d=r(44);x.exports=function(h,p,y){return y.get&&u(y.get,p,{getter:!0}),y.set&&u(y.set,p,{setter:!0}),d.f(h,p,y)}},function(x,b,r){var u=r(33);b.f=u},function(x,b,r){var u=r(80),d=r(38),h=r(78),p=r(44).f;x.exports=function(y){var T=u.Symbol||(u.Symbol={});d(T,y)||p(T,y,{value:h.f(y)})}},function(x,b,r){var u=r(4);x.exports=u},function(x,b,r){var u=r(8),d=r(23),h=r(33),p=r(47);x.exports=function(){var y=d("Symbol"),T=y&&y.prototype,$=T&&T.valueOf,A=h("toPrimitive");T&&!T[A]&&p(T,A,function(E){return u($,this)},{arity:1})}},function(x,b,r){var u=r(44).f,d=r(38),h=r(33),p=h("toStringTag");x.exports=function(y,T,$){y&&!$&&(y=y.prototype),y&&!d(y,p)&&u(y,p,{configurable:!0,value:T})}},function(x,b,r){var u=r(84),d=r(14),h=r(13),p=r(39),y=r(63),T=r(86),$=d([].push),A=function(E){var R=E===1,I=E===2,O=E===3,C=E===4,D=E===6,M=E===7,F=E===5||D;return function(z,U,j,G){for(var B=p(z),V=h(B),Y=y(V),Z=u(U,j),J=0,q=G||T,nt=R?q(z,Y):I||M?q(z,0):void 0,rt,_;Y>J;J++)if((F||J in V)&&(rt=V[J],_=Z(rt,J,B),E))if(R)nt[J]=_;else if(_)switch(E){case 3:return!0;case 5:return rt;case 6:return J;case 2:$(nt,rt)}else switch(E){case 4:return!1;case 7:$(nt,rt)}return D?-1:O||C?C:nt}};x.exports={forEach:A(0),map:A(1),filter:A(2),some:A(3),every:A(4),find:A(5),findIndex:A(6),filterReject:A(7)}},function(x,b,r){var u=r(85),d=r(30),h=r(9),p=u(u.bind);x.exports=function(y,T){return d(y),T===void 0?y:h?p(y,T):function(){return y.apply(T,arguments)}}},function(x,b,r){var u=r(15),d=r(14);x.exports=function(h){if(u(h)==="Function")return d(h)}},function(x,b,r){var u=r(87);x.exports=function(d,h){return new(u(d))(h===0?0:h)}},function(x,b,r){var u=r(88),d=r(89),h=r(20),p=r(33),y=p("species"),T=Array;x.exports=function($){var A;return u($)&&(A=$.constructor,d(A)&&(A===T||u(A.prototype))?A=void 0:h(A)&&(A=A[y],A===null&&(A=void 0))),A===void 0?T:A}},function(x,b,r){var u=r(15);x.exports=Array.isArray||function(h){return u(h)==="Array"}},function(x,b,r){var u=r(14),d=r(7),h=r(21),p=r(69),y=r(23),T=r(50),$=function(){},A=y("Reflect","construct"),E=/^\s*(?:class|function)\b/,R=u(E.exec),I=!E.test($),O=function(M){if(!h(M))return!1;try{return A($,[],M),!0}catch(F){return!1}},C=function(M){if(!h(M))return!1;switch(p(M)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return I||!!R(E,T(M))}catch(F){return!0}};C.sham=!0,x.exports=!A||d(function(){var D;return O(O.call)||!O(Object)||!O(function(){D=!0})||D})?C:O},function(x,b,r){var u=r(3),d=r(23),h=r(38),p=r(68),y=r(34),T=r(91),$=y("string-to-symbol-registry"),A=y("symbol-to-string-registry");u({target:"Symbol",stat:!0,forced:!T},{for:function(E){var R=p(E);if(h($,R))return $[R];var I=d("Symbol")(R);return $[R]=I,A[I]=R,I}})},function(x,b,r){var u=r(26);x.exports=u&&!!Symbol.for&&!!Symbol.keyFor},function(x,b,r){var u=r(3),d=r(38),h=r(22),p=r(31),y=r(34),T=r(91),$=y("symbol-to-string-registry");u({target:"Symbol",stat:!0,forced:!T},{keyFor:function(E){if(!h(E))throw new TypeError(p(E)+" is not a symbol");if(d($,E))return $[E]}})},function(x,b,r){var u=r(3),d=r(23),h=r(94),p=r(8),y=r(14),T=r(7),$=r(21),A=r(22),E=r(76),R=r(95),I=r(26),O=String,C=d("JSON","stringify"),D=y(/./.exec),M=y("".charAt),F=y("".charCodeAt),z=y("".replace),U=y(1 .toString),j=/[\uD800-\uDFFF]/g,G=/^[\uD800-\uDBFF]$/,B=/^[\uDC00-\uDFFF]$/,V=!I||T(function(){var q=d("Symbol")("stringify detection");return C([q])!=="[null]"||C({a:q})!=="{}"||C(Object(q))!=="{}"}),Y=T(function(){return C("\uDF06\uD834")!=='"\\udf06\\ud834"'||C("\uDEAD")!=='"\\udead"'}),Z=function(q,nt){var rt=E(arguments),_=R(nt);if(!(!$(_)&&(q===void 0||A(q))))return rt[1]=function(tt,et){if($(_)&&(et=p(_,this,O(tt),et)),!A(et))return et},h(C,null,rt)},J=function(q,nt,rt){var _=M(rt,nt-1),tt=M(rt,nt+1);return D(G,q)&&!D(B,tt)||D(B,q)&&!D(G,_)?"\\u"+U(F(q,0),16):q};C&&u({target:"JSON",stat:!0,arity:3,forced:V||Y},{stringify:function(nt,rt,_){var tt=E(arguments),et=h(V?Z:C,null,tt);return Y&&typeof et=="string"?z(et,j,J):et}})},function(x,b,r){var u=r(9),d=Function.prototype,h=d.apply,p=d.call;x.exports=typeof Reflect=="object"&&Reflect.apply||(u?p.bind(h):function(){return p.apply(h,arguments)})},function(x,b,r){var u=r(14),d=r(88),h=r(21),p=r(15),y=r(68),T=u([].push);x.exports=function($){if(h($))return $;if(d($)){for(var A=$.length,E=[],R=0;Rj&&R(_,arguments[j]),_});if(J.prototype=Y,B!=="Error"?y?y(J,Z):T(J,Z,{name:!0}):O&&U in V&&($(J,V,U),$(J,V,"prepareStackTrace")),T(J,V),!C)try{Y.name!==B&&h(Y,"name",B),Y.constructor=J}catch(q){}return J}}},function(x,b,r){var u=r(114),d=r(20),h=r(16),p=r(115);x.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var y=!1,T={},$;try{$=u(Object.prototype,"__proto__","set"),$(T,[]),y=T instanceof Array}catch(A){}return function(E,R){return h(E),p(R),d(E)&&(y?$(E,R):E.__proto__=R),E}}():void 0)},function(x,b,r){var u=r(14),d=r(30);x.exports=function(h,p,y){try{return u(d(Object.getOwnPropertyDescriptor(h,p)[y]))}catch(T){}}},function(x,b,r){var u=r(116),d=String,h=TypeError;x.exports=function(p){if(u(p))return p;throw new h("Can't set "+d(p)+" as a prototype")}},function(x,b,r){var u=r(20);x.exports=function(d){return u(d)||d===null}},function(x,b,r){var u=r(44).f;x.exports=function(d,h,p){p in d||u(d,p,{configurable:!0,get:function(){return h[p]},set:function(y){h[p]=y}})}},function(x,b,r){var u=r(21),d=r(20),h=r(113);x.exports=function(p,y,T){var $,A;return h&&u($=y.constructor)&&$!==T&&d(A=$.prototype)&&A!==T.prototype&&h(p,A),p}},function(x,b,r){var u=r(68);x.exports=function(d,h){return d===void 0?arguments.length<2?"":h:u(d)}},function(x,b,r){var u=r(20),d=r(43);x.exports=function(h,p){u(p)&&"cause"in p&&d(h,"cause",p.cause)}},function(x,b,r){var u=r(43),d=r(122),h=r(123),p=Error.captureStackTrace;x.exports=function(y,T,$,A){h&&(p?p(y,T):u(y,"stack",d($,A)))}},function(x,b,r){var u=r(14),d=Error,h=u("".replace),p=function($){return String(new d($).stack)}("zxcasd"),y=/\n\s*at [^:]*:[^\n]*/,T=y.test(p);x.exports=function($,A){if(T&&typeof $=="string"&&!d.prepareStackTrace)for(;A--;)$=h($,y,"");return $}},function(x,b,r){var u=r(7),d=r(11);x.exports=!u(function(){var h=new Error("a");return"stack"in h?(Object.defineProperty(h,"stack",d(1,7)),h.stack!==7):!0})},function(x,b,r){var u=r(47),d=r(125),h=Error.prototype;h.toString!==d&&u(h,"toString",d)},function(x,b,r){var u=r(6),d=r(7),h=r(46),p=r(119),y=Error.prototype.toString,T=d(function(){if(u){var $=Object.create(Object.defineProperty({},"name",{get:function(){return this===$}}));if(y.call($)!=="true")return!0}return y.call({message:1,name:2})!=="2: 1"||y.call({})!=="Error"});x.exports=T?function(){var A=h(this),E=p(A.name,"Error"),R=p(A.message);return E?R?E+": "+R:E:R}:y},function(x,b,r){r(127)},function(x,b,r){var u=r(3),d=r(24),h=r(128),p=r(113),y=r(55),T=r(71),$=r(43),A=r(11),E=r(120),R=r(121),I=r(130),O=r(119),C=r(33),D=C("toStringTag"),M=Error,F=[].push,z=function(G,B){var V=d(U,this),Y;p?Y=p(new M,V?h(this):U):(Y=V?this:T(U),$(Y,D,"Error")),B!==void 0&&$(Y,"message",O(B)),R(Y,z,Y.stack,1),arguments.length>2&&E(Y,arguments[2]);var Z=[];return I(G,F,{that:Z}),$(Y,"errors",Z),Y};p?p(z,M):y(z,M,{name:!0});var U=z.prototype=T(M.prototype,{constructor:A(1,z),message:A(1,""),name:A(1,"AggregateError")});u({global:!0,constructor:!0,arity:2},{AggregateError:z})},function(x,b,r){var u=r(38),d=r(21),h=r(39),p=r(53),y=r(129),T=p("IE_PROTO"),$=Object,A=$.prototype;x.exports=y?$.getPrototypeOf:function(E){var R=h(E);if(u(R,T))return R[T];var I=R.constructor;return d(I)&&R instanceof I?I.prototype:R instanceof $?A:null}},function(x,b,r){var u=r(7);x.exports=!u(function(){function d(){}return d.prototype.constructor=null,Object.getPrototypeOf(new d)!==d.prototype})},function(x,b,r){var u=r(84),d=r(8),h=r(46),p=r(31),y=r(131),T=r(63),$=r(24),A=r(133),E=r(134),R=r(135),I=TypeError,O=function(D,M){this.stopped=D,this.result=M},C=O.prototype;x.exports=function(D,M,F){var z=F&&F.that,U=!!(F&&F.AS_ENTRIES),j=!!(F&&F.IS_RECORD),G=!!(F&&F.IS_ITERATOR),B=!!(F&&F.INTERRUPTED),V=u(M,z),Y,Z,J,q,nt,rt,_,tt=function(lt){return Y&&R(Y,"normal",lt),new O(!0,lt)},et=function(lt){return U?(h(lt),B?V(lt[0],lt[1],tt):V(lt[0],lt[1])):B?V(lt,tt):V(lt)};if(j)Y=D.iterator;else if(G)Y=D;else{if(Z=E(D),!Z)throw new I(p(D)+" is not iterable");if(y(Z)){for(J=0,q=T(D);q>J;J++)if(nt=et(D[J]),nt&&$(C,nt))return nt;return new O(!1)}Y=A(D,Z)}for(rt=j?D.next:Y.next;!(_=d(rt,Y)).done;){try{nt=et(_.value)}catch(lt){R(Y,"throw",lt)}if(typeof nt=="object"&&nt&&$(C,nt))return nt}return new O(!1)}},function(x,b,r){var u=r(33),d=r(132),h=u("iterator"),p=Array.prototype;x.exports=function(y){return y!==void 0&&(d.Array===y||p[h]===y)}},function(x){x.exports={}},function(x,b,r){var u=r(8),d=r(30),h=r(46),p=r(31),y=r(134),T=TypeError;x.exports=function($,A){var E=arguments.length<2?y($):A;if(d(E))return h(u(E,$));throw new T(p($)+" is not iterable")}},function(x,b,r){var u=r(69),d=r(29),h=r(17),p=r(132),y=r(33),T=y("iterator");x.exports=function($){if(!h($))return d($,T)||d($,"@@iterator")||p[u($)]}},function(x,b,r){var u=r(8),d=r(46),h=r(29);x.exports=function(p,y,T){var $,A;d(p);try{if($=h(p,"return"),!$){if(y==="throw")throw T;return T}$=u($,p)}catch(E){A=!0,$=E}if(y==="throw")throw T;if(A)throw $;return d($),T}},function(x,b,r){var u=r(3),d=r(23),h=r(94),p=r(7),y=r(112),T="AggregateError",$=d(T),A=!p(function(){return $([1]).errors[0]!==1})&&p(function(){return $([1],T,{cause:7}).cause!==7});u({global:!0,constructor:!0,arity:2,forced:A},{AggregateError:y(T,function(E){return function(I,O){return h(E,this,arguments)}},A,!0)})},function(x,b,r){var u=r(3),d=r(39),h=r(63),p=r(61),y=r(138);u({target:"Array",proto:!0},{at:function($){var A=d(this),E=h(A),R=p($),I=R>=0?R:E+R;return I<0||I>=E?void 0:A[I]}}),y("at")},function(x,b,r){var u=r(33),d=r(71),h=r(44).f,p=u("unscopables"),y=Array.prototype;y[p]===void 0&&h(y,p,{configurable:!0,value:d(null)}),x.exports=function(T){y[p][T]=!0}},function(x,b,r){var u=r(3),d=r(7),h=r(88),p=r(20),y=r(39),T=r(63),$=r(140),A=r(141),E=r(86),R=r(142),I=r(33),O=r(27),C=I("isConcatSpreadable"),D=O>=51||!d(function(){var z=[];return z[C]=!1,z.concat()[0]!==z}),M=function(z){if(!p(z))return!1;var U=z[C];return U!==void 0?!!U:h(z)},F=!D||!R("concat");u({target:"Array",proto:!0,arity:1,forced:F},{concat:function(U){var j=y(this),G=E(j,0),B=0,V,Y,Z,J,q;for(V=-1,Z=arguments.length;Vr)throw b("Maximum allowed index exceeded");return u}},function(x,b,r){var u=r(6),d=r(44),h=r(11);x.exports=function(p,y,T){u?d.f(p,y,h(0,T)):p[y]=T}},function(x,b,r){var u=r(7),d=r(33),h=r(27),p=d("species");x.exports=function(y){return h>=51||!u(function(){var T=[],$=T.constructor={};return $[p]=function(){return{foo:1}},T[y](Boolean).foo!==1})}},function(x,b,r){var u=r(3),d=r(144),h=r(138);u({target:"Array",proto:!0},{copyWithin:d}),h("copyWithin")},function(x,b,r){var u=r(39),d=r(60),h=r(63),p=r(145),y=Math.min;x.exports=[].copyWithin||function($,A){var E=u(this),R=h(E),I=d($,R),O=d(A,R),C=arguments.length>2?arguments[2]:void 0,D=y((C===void 0?R:d(C,R))-O,R-I),M=1;for(O0;)O in E?E[I]=E[O]:p(E,I),I+=M,O+=M;return E}},function(x,b,r){var u=r(31),d=TypeError;x.exports=function(h,p){if(!delete h[p])throw new d("Cannot delete property "+u(p)+" of "+u(h))}},function(x,b,r){var u=r(3),d=r(83).every,h=r(147),p=h("every");u({target:"Array",proto:!0,forced:!p},{every:function(T){return d(this,T,arguments.length>1?arguments[1]:void 0)}})},function(x,b,r){var u=r(7);x.exports=function(d,h){var p=[][d];return!!p&&u(function(){p.call(null,h||function(){return 1},1)})}},function(x,b,r){var u=r(3),d=r(149),h=r(138);u({target:"Array",proto:!0},{fill:d}),h("fill")},function(x,b,r){var u=r(39),d=r(60),h=r(63);x.exports=function(y){for(var T=u(this),$=h(T),A=arguments.length,E=d(A>1?arguments[1]:void 0,$),R=A>2?arguments[2]:void 0,I=R===void 0?$:d(R,$);I>E;)T[E++]=y;return T}},function(x,b,r){var u=r(3),d=r(83).filter,h=r(142),p=h("filter");u({target:"Array",proto:!0,forced:!p},{filter:function(T){return d(this,T,arguments.length>1?arguments[1]:void 0)}})},function(x,b,r){var u=r(3),d=r(83).find,h=r(138),p="find",y=!0;p in[]&&Array(1)[p](function(){y=!1}),u({target:"Array",proto:!0,forced:y},{find:function($){return d(this,$,arguments.length>1?arguments[1]:void 0)}}),h(p)},function(x,b,r){var u=r(3),d=r(83).findIndex,h=r(138),p="findIndex",y=!0;p in[]&&Array(1)[p](function(){y=!1}),u({target:"Array",proto:!0,forced:y},{findIndex:function($){return d(this,$,arguments.length>1?arguments[1]:void 0)}}),h(p)},function(x,b,r){var u=r(3),d=r(154).findLast,h=r(138);u({target:"Array",proto:!0},{findLast:function(y){return d(this,y,arguments.length>1?arguments[1]:void 0)}}),h("findLast")},function(x,b,r){var u=r(84),d=r(13),h=r(39),p=r(63),y=function(T){var $=T===1;return function(A,E,R){for(var I=h(A),O=d(I),C=p(O),D=u(E,R),M,F;C-- >0;)if(M=O[C],F=D(M,C,I),F)switch(T){case 0:return M;case 1:return C}return $?-1:void 0}};x.exports={findLast:y(0),findLastIndex:y(1)}},function(x,b,r){var u=r(3),d=r(154).findLastIndex,h=r(138);u({target:"Array",proto:!0},{findLastIndex:function(y){return d(this,y,arguments.length>1?arguments[1]:void 0)}}),h("findLastIndex")},function(x,b,r){var u=r(3),d=r(157),h=r(39),p=r(63),y=r(61),T=r(86);u({target:"Array",proto:!0},{flat:function(){var A=arguments.length?arguments[0]:void 0,E=h(this),R=p(E),I=T(E,0);return I.length=d(I,E,E,R,0,A===void 0?1:y(A)),I}})},function(x,b,r){var u=r(88),d=r(63),h=r(140),p=r(84),y=function(T,$,A,E,R,I,O,C){for(var D=R,M=0,F=O?p(O,C):!1,z,U;M0&&u(z)?(U=d(z),D=y(T,$,z,U,D,I-1)-1):(h(D+1),T[D]=z),D++),M++;return D};x.exports=y},function(x,b,r){var u=r(3),d=r(157),h=r(30),p=r(39),y=r(63),T=r(86);u({target:"Array",proto:!0},{flatMap:function(A){var E=p(this),R=y(E),I;return h(A),I=T(E,0),I.length=d(I,E,E,R,0,1,A,arguments.length>1?arguments[1]:void 0),I}})},function(x,b,r){var u=r(3),d=r(160);u({target:"Array",proto:!0,forced:[].forEach!==d},{forEach:d})},function(x,b,r){var u=r(83).forEach,d=r(147),h=d("forEach");x.exports=h?[].forEach:function(y){return u(this,y,arguments.length>1?arguments[1]:void 0)}},function(x,b,r){var u=r(3),d=r(162),h=r(164),p=!h(function(y){Array.from(y)});u({target:"Array",stat:!0,forced:p},{from:d})},function(x,b,r){var u=r(84),d=r(8),h=r(39),p=r(163),y=r(131),T=r(89),$=r(63),A=r(141),E=r(133),R=r(134),I=Array;x.exports=function(C){var D=h(C),M=T(this),F=arguments.length,z=F>1?arguments[1]:void 0,U=z!==void 0;U&&(z=u(z,F>2?arguments[2]:void 0));var j=R(D),G=0,B,V,Y,Z,J,q;if(j&&!(this===I&&y(j)))for(V=M?new this:[],Z=E(D,j),J=Z.next;!(Y=d(J,Z)).done;G++)q=U?p(Z,z,[Y.value,G],!0):Y.value,A(V,G,q);else for(B=$(D),V=M?new this(B):I(B);B>G;G++)q=U?z(D[G],G):D[G],A(V,G,q);return V.length=G,V}},function(x,b,r){var u=r(46),d=r(135);x.exports=function(h,p,y,T){try{return T?p(u(y)[0],y[1]):p(y)}catch($){d(h,"throw",$)}}},function(x,b,r){var u=r(33),d=u("iterator"),h=!1;try{var p=0,y={next:function(){return{done:!!p++}},return:function(){h=!0}};y[d]=function(){return this},Array.from(y,function(){throw 2})}catch(T){}x.exports=function(T,$){try{if(!$&&!h)return!1}catch(R){return!1}var A=!1;try{var E={};E[d]=function(){return{next:function(){return{done:A=!0}}}},T(E)}catch(R){}return A}},function(x,b,r){var u=r(3),d=r(59).includes,h=r(7),p=r(138),y=h(function(){return!Array(1).includes()});u({target:"Array",proto:!0,forced:y},{includes:function($){return d(this,$,arguments.length>1?arguments[1]:void 0)}}),p("includes")},function(x,b,r){var u=r(3),d=r(85),h=r(59).indexOf,p=r(147),y=d([].indexOf),T=!!y&&1/y([1],1,-0)<0,$=T||!p("indexOf");u({target:"Array",proto:!0,forced:$},{indexOf:function(E){var R=arguments.length>1?arguments[1]:void 0;return T?y(this,E,R)||0:h(this,E,R)}})},function(x,b,r){var u=r(3),d=r(88);u({target:"Array",stat:!0},{isArray:d})},function(x,b,r){var u=r(12),d=r(138),h=r(132),p=r(51),y=r(44).f,T=r(169),$=r(172),A=r(36),E=r(6),R="Array Iterator",I=p.set,O=p.getterFor(R);x.exports=T(Array,"Array",function(D,M){I(this,{type:R,target:u(D),index:0,kind:M})},function(){var D=O(this),M=D.target,F=D.index++;if(!M||F>=M.length)return D.target=null,$(void 0,!0);switch(D.kind){case"keys":return $(F,!1);case"values":return $(M[F],!1)}return $([F,M[F]],!1)},"values");var C=h.Arguments=h.Array;if(d("keys"),d("values"),d("entries"),!A&&E&&C.name!=="values")try{y(C,"name",{value:"values"})}catch(D){}},function(x,b,r){var u=r(3),d=r(8),h=r(36),p=r(49),y=r(21),T=r(170),$=r(128),A=r(113),E=r(82),R=r(43),I=r(47),O=r(33),C=r(132),D=r(171),M=p.PROPER,F=p.CONFIGURABLE,z=D.IteratorPrototype,U=D.BUGGY_SAFARI_ITERATORS,j=O("iterator"),G="keys",B="values",V="entries",Y=function(){return this};x.exports=function(Z,J,q,nt,rt,_,tt){T(q,J,nt);var et=function(kt){if(kt===rt&&yt)return yt;if(!U&&kt&&kt in gt)return gt[kt];switch(kt){case G:return function(){return new q(this,kt)};case B:return function(){return new q(this,kt)};case V:return function(){return new q(this,kt)}}return function(){return new q(this)}},lt=J+" Iterator",mt=!1,gt=Z.prototype,xt=gt[j]||gt["@@iterator"]||rt&>[rt],yt=!U&&xt||et(rt),Ut=J==="Array"&>.entries||xt,Dt,Xt,Qt;if(Ut&&(Dt=$(Ut.call(new Z)),Dt!==Object.prototype&&Dt.next&&(!h&&$(Dt)!==z&&(A?A(Dt,z):y(Dt[j])||I(Dt,j,Y)),E(Dt,lt,!0,!0),h&&(C[lt]=Y))),M&&rt===B&&xt&&xt.name!==B&&(!h&&F?R(gt,"name",B):(mt=!0,yt=function(){return d(xt,this)})),rt)if(Xt={values:et(B),keys:_?yt:et(G),entries:et(V)},tt)for(Qt in Xt)(U||mt||!(Qt in gt))&&I(gt,Qt,Xt[Qt]);else u({target:J,proto:!0,forced:U||mt},Xt);return(!h||tt)&>[j]!==yt&&I(gt,j,yt,{name:rt}),C[J]=yt,Xt}},function(x,b,r){var u=r(171).IteratorPrototype,d=r(71),h=r(11),p=r(82),y=r(132),T=function(){return this};x.exports=function($,A,E,R){var I=A+" Iterator";return $.prototype=d(u,{next:h(+!R,E)}),p($,I,!1,!0),y[I]=T,$}},function(x,b,r){var u=r(7),d=r(21),h=r(20),p=r(71),y=r(128),T=r(47),$=r(33),A=r(36),E=$("iterator"),R=!1,I,O,C;[].keys&&(C=[].keys(),"next"in C?(O=y(y(C)),O!==Object.prototype&&(I=O)):R=!0);var D=!h(I)||u(function(){var M={};return I[E].call(M)!==M});D?I={}:A&&(I=p(I)),d(I[E])||T(I,E,function(){return this}),x.exports={IteratorPrototype:I,BUGGY_SAFARI_ITERATORS:R}},function(x){x.exports=function(b,r){return{value:b,done:r}}},function(x,b,r){var u=r(3),d=r(14),h=r(13),p=r(12),y=r(147),T=d([].join),$=h!==Object,A=$||!y("join",",");u({target:"Array",proto:!0,forced:A},{join:function(R){return T(p(this),R===void 0?",":R)}})},function(x,b,r){var u=r(3),d=r(175);u({target:"Array",proto:!0,forced:d!==[].lastIndexOf},{lastIndexOf:d})},function(x,b,r){var u=r(94),d=r(12),h=r(61),p=r(63),y=r(147),T=Math.min,$=[].lastIndexOf,A=!!$&&1/[1].lastIndexOf(1,-0)<0,E=y("lastIndexOf"),R=A||!E;x.exports=R?function(O){if(A)return u($,this,arguments)||0;var C=d(this),D=p(C);if(D===0)return-1;var M=D-1;for(arguments.length>1&&(M=T(M,h(arguments[1]))),M<0&&(M=D+M);M>=0;M--)if(M in C&&C[M]===O)return M||0;return-1}:$},function(x,b,r){var u=r(3),d=r(83).map,h=r(142),p=h("map");u({target:"Array",proto:!0,forced:!p},{map:function(T){return d(this,T,arguments.length>1?arguments[1]:void 0)}})},function(x,b,r){var u=r(3),d=r(7),h=r(89),p=r(141),y=Array,T=d(function(){function $(){}return!(y.of.call($)instanceof $)});u({target:"Array",stat:!0,forced:T},{of:function(){for(var A=0,E=arguments.length,R=new(h(this)?this:y)(E);E>A;)p(R,A,arguments[A++]);return R.length=E,R}})},function(x,b,r){var u=r(3),d=r(39),h=r(63),p=r(179),y=r(140),T=r(7),$=T(function(){return[].push.call({length:4294967296},1)!==4294967297}),A=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(R){return R instanceof TypeError}},E=$||!A();u({target:"Array",proto:!0,arity:1,forced:E},{push:function(I){var O=d(this),C=h(O),D=arguments.length;y(C+D);for(var M=0;M79&&p<83,$=T||!h("reduce");u({target:"Array",proto:!0,forced:$},{reduce:function(E){var R=arguments.length;return d(this,E,R,R>1?arguments[1]:void 0)}})},function(x,b,r){var u=r(30),d=r(39),h=r(13),p=r(63),y=TypeError,T="Reduce of empty array with no initial value",$=function(A){return function(E,R,I,O){var C=d(E),D=h(C),M=p(C);if(u(R),M===0&&I<2)throw new y(T);var F=A?M-1:0,z=A?-1:1;if(I<2)for(;;){if(F in D){O=D[F],F+=z;break}if(F+=z,A?F<0:M<=F)throw new y(T)}for(;A?F>=0:M>F;F+=z)F in D&&(O=R(O,D[F],F,C));return O}};x.exports={left:$(!1),right:$(!0)}},function(x,b,r){var u=r(183);x.exports=u==="NODE"},function(x,b,r){var u=r(4),d=r(28),h=r(15),p=function(y){return d.slice(0,y.length)===y};x.exports=function(){return p("Bun/")?"BUN":p("Cloudflare-Workers")?"CLOUDFLARE":p("Deno/")?"DENO":p("Node.js/")?"NODE":u.Bun&&typeof Bun.version=="string"?"BUN":u.Deno&&typeof Deno.version=="object"?"DENO":h(u.process)==="process"?"NODE":u.window&&u.document?"BROWSER":"REST"}()},function(x,b,r){var u=r(3),d=r(181).right,h=r(147),p=r(27),y=r(182),T=!y&&p>79&&p<83,$=T||!h("reduceRight");u({target:"Array",proto:!0,forced:$},{reduceRight:function(E){return d(this,E,arguments.length,arguments.length>1?arguments[1]:void 0)}})},function(x,b,r){var u=r(3),d=r(14),h=r(88),p=d([].reverse),y=[1,2];u({target:"Array",proto:!0,forced:String(y)===String(y.reverse())},{reverse:function(){return h(this)&&(this.length=this.length),p(this)}})},function(x,b,r){var u=r(3),d=r(88),h=r(89),p=r(20),y=r(60),T=r(63),$=r(12),A=r(141),E=r(33),R=r(142),I=r(76),O=R("slice"),C=E("species"),D=Array,M=Math.max;u({target:"Array",proto:!0,forced:!O},{slice:function(z,U){var j=$(this),G=T(j),B=y(z,G),V=y(U===void 0?G:U,G),Y,Z,J;if(d(j)&&(Y=j.constructor,h(Y)&&(Y===D||d(Y.prototype))?Y=void 0:p(Y)&&(Y=Y[C],Y===null&&(Y=void 0)),Y===D||Y===void 0))return I(j,B,V);for(Z=new(Y===void 0?D:Y)(M(V-B,0)),J=0;B1?arguments[1]:void 0)}})},function(x,b,r){var u=r(3),d=r(14),h=r(30),p=r(39),y=r(63),T=r(145),$=r(68),A=r(7),E=r(189),R=r(147),I=r(190),O=r(191),C=r(27),D=r(192),M=[],F=d(M.sort),z=d(M.push),U=A(function(){M.sort(void 0)}),j=A(function(){M.sort(null)}),G=R("sort"),B=!A(function(){if(C)return C<70;if(!(I&&I>3)){if(O)return!0;if(D)return D<603;var Z="",J,q,nt,rt;for(J=65;J<76;J++){switch(q=String.fromCharCode(J),J){case 66:case 69:case 70:case 72:nt=3;break;case 68:case 71:nt=4;break;default:nt=2}for(rt=0;rt<47;rt++)M.push({k:q+rt,v:nt})}for(M.sort(function(_,tt){return tt.v-_.v}),rt=0;rt$(q)?1:-1}};u({target:"Array",proto:!0,forced:V},{sort:function(J){J!==void 0&&h(J);var q=p(this);if(B)return J===void 0?F(q):F(q,J);var nt=[],rt=y(q),_,tt;for(tt=0;tt0;)p[E]=p[--E];E!==$++&&(p[E]=A)}else for(var R=d(T/2),I=h(u(p,0,R),y),O=h(u(p,R),y),C=I.length,D=O.length,M=0,F=0;Mj-Y+V;J--)R(U,J-1)}else if(V>Y)for(J=j-Y;J>G;J--)q=J+Y-1,nt=J+V-1,q in U?U[nt]=U[q]:R(U,nt);for(J=0;J2?p:u(h),$=new d(T);T>y;)$[y]=h[y++];return $}},function(x,b,r){var u=r(4);x.exports=function(d,h){var p=u[d],y=p&&p.prototype;return y&&y[h]}},function(x,b,r){var u=r(3),d=r(138),h=r(140),p=r(63),y=r(60),T=r(12),$=r(61),A=Array,E=Math.max,R=Math.min;u({target:"Array",proto:!0},{toSpliced:function(O,C){var D=T(this),M=p(D),F=y(O,M),z=arguments.length,U=0,j,G,B,V;for(z===0?j=G=0:z===1?(j=0,G=M-F):(j=z-2,G=R(E($(C),0),M-F)),B=h(M+j-G),V=A(B);U=A||R<0)throw new h("Incorrect index");for(var I=new y(A),O=0;O>8&255]},se=function(bt){return[bt&255,bt>>8&255,bt>>16&255,bt>>24&255]},ee=function(bt){return bt[3]<<24|bt[2]<<16|bt[1]<<8|bt[0]},fe=function(bt){return ae(D(bt),23,4)},Pe=function(bt){return ae(bt,52,8)},Me=function(bt,Ft,Tt){$(bt[rt],Ft,{configurable:!0,get:function(){return Tt(this)[Ft]}})},$e=function(bt,Ft,Tt,qt){var te=lt(bt),Zt=C(Tt),Yt=!!qt;if(Zt+Ft>te.byteLength)throw new kt(tt);var Ye=te.bytes,Ze=Zt+te.byteOffset,ut=j(Ye,Ze,Ze+Ft);return Yt?ut:ge(ut)},ce=function(bt,Ft,Tt,qt,te,Zt){var Yt=lt(bt),Ye=C(Tt),Ze=qt(+te),ut=!!Zt;if(Ye+Ft>Yt.byteLength)throw new kt(tt);for(var It=Yt.bytes,Pt=Ye+Yt.byteOffset,Ct=0;CtZt)throw new kt("Wrong offset");if(qt=qt===void 0?Zt-Yt:O(qt),Yt+qt>Zt)throw new kt(_);mt(this,{type:nt,buffer:Ft,byteLength:qt,byteOffset:Yt,bytes:te.bytes}),h||(this.buffer=Ft,this.byteLength=qt,this.byteOffset=Yt)},Dt=Ut[rt],h&&(Me(xt,"byteLength",et),Me(Ut,"buffer",lt),Me(Ut,"byteLength",lt),Me(Ut,"byteOffset",lt)),A(Dt,{getInt8:function(Ft){return $e(this,1,Ft)[0]<<24>>24},getUint8:function(Ft){return $e(this,1,Ft)[0]},getInt16:function(Ft){var Tt=$e(this,2,Ft,arguments.length>1?arguments[1]:!1);return(Tt[1]<<8|Tt[0])<<16>>16},getUint16:function(Ft){var Tt=$e(this,2,Ft,arguments.length>1?arguments[1]:!1);return Tt[1]<<8|Tt[0]},getInt32:function(Ft){return ee($e(this,4,Ft,arguments.length>1?arguments[1]:!1))},getUint32:function(Ft){return ee($e(this,4,Ft,arguments.length>1?arguments[1]:!1))>>>0},getFloat32:function(Ft){return Mt($e(this,4,Ft,arguments.length>1?arguments[1]:!1),23)},getFloat64:function(Ft){return Mt($e(this,8,Ft,arguments.length>1?arguments[1]:!1),52)},setInt8:function(Ft,Tt){ce(this,1,Ft,Ht,Tt)},setUint8:function(Ft,Tt){ce(this,1,Ft,Ht,Tt)},setInt16:function(Ft,Tt){ce(this,2,Ft,re,Tt,arguments.length>2?arguments[2]:!1)},setUint16:function(Ft,Tt){ce(this,2,Ft,re,Tt,arguments.length>2?arguments[2]:!1)},setInt32:function(Ft,Tt){ce(this,4,Ft,se,Tt,arguments.length>2?arguments[2]:!1)},setUint32:function(Ft,Tt){ce(this,4,Ft,se,Tt,arguments.length>2?arguments[2]:!1)},setFloat32:function(Ft,Tt){ce(this,4,Ft,fe,Tt,arguments.length>2?arguments[2]:!1)},setFloat64:function(Ft,Tt){ce(this,8,Ft,Pe,Tt,arguments.length>2?arguments[2]:!1)}});else{var Ae=Z&>.name!==q;!E(function(){gt(1)})||!E(function(){new gt(-1)})||E(function(){return new gt,new gt(1.5),new gt(NaN),gt.length!==1||Ae&&!J})?(xt=function(Ft){return R(this,yt),G(new gt(C(Ft)),this,xt)},xt[rt]=yt,yt.constructor=xt,B(xt,gt)):Ae&&J&&T(gt,"name",q),z&&F(Dt)!==Xt&&z(Dt,Xt);var Te=new Ut(new xt(2)),de=d(Dt.setInt8);Te.setInt8(0,2147483648),Te.setInt8(1,2147483649),(Te.getInt8(0)||!Te.getInt8(1))&&A(Dt,{setInt8:function(Ft,Tt){de(this,Ft,Tt<<24>>24)},setUint8:function(Ft,Tt){de(this,Ft,Tt<<24>>24)}},{unsafe:!0})}V(xt,q),V(Ut,nt),x.exports={ArrayBuffer:xt,DataView:Ut}},function(x){x.exports=typeof ArrayBuffer!="undefined"&&typeof DataView!="undefined"},function(x,b,r){var u=r(47);x.exports=function(d,h,p){for(var y in h)u(d,y,h[y],p);return d}},function(x,b,r){var u=r(24),d=TypeError;x.exports=function(h,p){if(u(p,h))return h;throw new d("Incorrect invocation")}},function(x,b,r){var u=r(61),d=r(64),h=RangeError;x.exports=function(p){if(p===void 0)return 0;var y=u(p),T=d(y);if(y!==T)throw new h("Wrong length or index");return T}},function(x,b,r){var u=r(214),d=11920928955078125e-23,h=34028234663852886e22,p=11754943508222875e-54;x.exports=Math.fround||function(T){return u(T,d,h,p)}},function(x,b,r){var u=r(215),d=r(216),h=Math.abs,p=2220446049250313e-31;x.exports=function(y,T,$,A){var E=+y,R=h(E),I=u(E);if(R$||C!==C?I*(1/0):I*C}},function(x){x.exports=Math.sign||function(r){var u=+r;return u===0||u!==u?u:u<0?-1:1}},function(x){var b=2220446049250313e-31,r=1/b;x.exports=function(u){return u+r-r}},function(x){var b=Array,r=Math.abs,u=Math.pow,d=Math.floor,h=Math.log,p=Math.LN2,y=function($,A,E){var R=b(E),I=E*8-A-1,O=(1<>1,D=A===23?u(2,-24)-u(2,-77):0,M=$<0||$===0&&1/$<0?1:0,F=0,z,U,j;for($=r($),$!==$||$===1/0?(U=$!==$?1:0,z=O):(z=d(h($)/p),j=u(2,-z),$*j<1&&(z--,j*=2),z+C>=1?$+=D/j:$+=D*u(2,1-C),$*j>=2&&(z++,j/=2),z+C>=O?(U=0,z=O):z+C>=1?(U=($*j-1)*u(2,A),z+=C):(U=$*u(2,C-1)*u(2,A),z=0));A>=8;)R[F++]=U&255,U/=256,A-=8;for(z=z<0;)R[F++]=z&255,z/=256,I-=8;return R[F-1]|=M*128,R},T=function($,A){var E=$.length,R=E*8-A-1,I=(1<>1,C=R-7,D=E-1,M=$[D--],F=M&127,z;for(M>>=7;C>0;)F=F*256+$[D--],C-=8;for(z=F&(1<<-C)-1,F>>=-C,C+=A;C>0;)z=z*256+$[D--],C-=8;if(F===0)F=1-O;else{if(F===I)return z?NaN:M?-1/0:1/0;z+=u(2,A),F-=O}return(M?-1:1)*z*u(2,F-A)};x.exports={pack:y,unpack:T}},function(x,b,r){var u=r(3),d=r(219),h=d.NATIVE_ARRAY_BUFFER_VIEWS;u({target:"ArrayBuffer",stat:!0,forced:!h},{isView:d.isView})},function(x,b,r){var u=r(209),d=r(6),h=r(4),p=r(21),y=r(20),T=r(38),$=r(69),A=r(31),E=r(43),R=r(47),I=r(77),O=r(24),C=r(128),D=r(113),M=r(33),F=r(40),z=r(51),U=z.enforce,j=z.get,G=h.Int8Array,B=G&&G.prototype,V=h.Uint8ClampedArray,Y=V&&V.prototype,Z=G&&C(G),J=B&&C(B),q=Object.prototype,nt=h.TypeError,rt=M("toStringTag"),_=F("TYPED_ARRAY_TAG"),tt="TypedArrayConstructor",et=u&&!!D&&$(h.opera)!=="Opera",lt=!1,mt,gt,xt,yt={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},Ut={BigInt64Array:8,BigUint64Array:8},Dt=function(Ht){if(!y(Ht))return!1;var re=$(Ht);return re==="DataView"||T(yt,re)||T(Ut,re)},Xt=function(Mt){var Ht=C(Mt);if(y(Ht)){var re=j(Ht);return re&&T(re,tt)?re[tt]:Xt(Ht)}},Qt=function(Mt){if(!y(Mt))return!1;var Ht=$(Mt);return T(yt,Ht)||T(Ut,Ht)},kt=function(Mt){if(Qt(Mt))return Mt;throw new nt("Target is not a typed array")},me=function(Mt){if(p(Mt)&&(!D||O(Z,Mt)))return Mt;throw new nt(A(Mt)+" is not a typed array constructor")},ge=function(Mt,Ht,re,se){if(d){if(re)for(var ee in yt){var fe=h[ee];if(fe&&T(fe.prototype,Mt))try{delete fe.prototype[Mt]}catch(Pe){try{fe.prototype[Mt]=Ht}catch(Me){}}}(!J[Mt]||re)&&R(J,Mt,re?Ht:et&&B[Mt]||Ht,se)}},ae=function(Mt,Ht,re){var se,ee;if(d){if(D){if(re){for(se in yt)if(ee=h[se],ee&&T(ee,Mt))try{delete ee[Mt]}catch(fe){}}if(!Z[Mt]||re)try{return R(Z,Mt,re?Ht:et&&Z[Mt]||Ht)}catch(fe){}else return}for(se in yt)ee=h[se],ee&&(!ee[Mt]||re)&&R(ee,Mt,Ht)}};for(mt in yt)gt=h[mt],xt=gt&>.prototype,xt?U(xt)[tt]=gt:et=!1;for(mt in Ut)gt=h[mt],xt=gt&>.prototype,xt&&(U(xt)[tt]=gt);if((!et||!p(Z)||Z===Function.prototype)&&(Z=function(){throw new nt("Incorrect invocation")},et))for(mt in yt)h[mt]&&D(h[mt],Z);if((!et||!J||J===q)&&(J=Z.prototype,et))for(mt in yt)h[mt]&&D(h[mt].prototype,J);if(et&&C(Y)!==J&&D(Y,J),d&&!T(J,rt)){lt=!0,I(J,rt,{configurable:!0,get:function(){return y(this)?this[_]:void 0}});for(mt in yt)h[mt]&&E(h[mt],_,mt)}x.exports={NATIVE_ARRAY_BUFFER_VIEWS:et,TYPED_ARRAY_TAG:lt&&_,aTypedArray:kt,aTypedArrayConstructor:me,exportTypedArrayMethod:ge,exportTypedArrayStaticMethod:ae,getTypedArrayConstructor:Xt,isView:Dt,isTypedArray:Qt,TypedArray:Z,TypedArrayPrototype:J}},function(x,b,r){var u=r(3),d=r(85),h=r(7),p=r(208),y=r(46),T=r(60),$=r(64),A=p.ArrayBuffer,E=p.DataView,R=E.prototype,I=d(A.prototype.slice),O=d(R.getUint8),C=d(R.setUint8),D=h(function(){return!new A(2).slice(1,void 0).byteLength});u({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:D},{slice:function(F,z){if(I&&z===void 0)return I(y(this),F);for(var U=y(this).byteLength,j=T(F,U),G=T(z===void 0?U:z,U),B=new A($(G-j)),V=new E(this),Y=new E(B),Z=0;j>>15,O=R>>>10&p,C=R&y;return O===p?C===0?I===0?1/0:-1/0:NaN:O===0?C*(I===0?T:-T):h(2,O-15)*(I===0?1+C*$:-1-C*$)},E=d(DataView.prototype.getUint16);u({target:"DataView",proto:!0},{getFloat16:function(I){var O=E(this,I,arguments.length>1?arguments[1]:!1);return A(O)}})},function(x,b,r){var u=r(3),d=r(14),h=r(225),p=r(212),y=r(226),T=r(216),$=Math.pow,A=65520,E=61005353927612305e-21,R=16777216,I=1024,O=function(D){if(D!==D)return 32256;if(D===0)return(1/D===-1/0)<<15;var M=D<0;if(M&&(D=-D),D>=A)return M<<15|31744;if(D2?arguments[2]:!1)}})},function(x,b,r){var u=r(69),d=TypeError;x.exports=function(h){if(u(h)==="DataView")return h;throw new d("Argument is not a DataView")}},function(x){var b=Math.log,r=Math.LN2;x.exports=Math.log2||function(d){return b(d)/r}},function(x,b,r){var u=r(6),d=r(77),h=r(228),p=ArrayBuffer.prototype;u&&!("detached"in p)&&d(p,"detached",{configurable:!0,get:function(){return h(this)}})},function(x,b,r){var u=r(4),d=r(209),h=r(229),p=u.DataView;x.exports=function(y){if(!d||h(y)!==0)return!1;try{return new p(y),!1}catch(T){return!0}}},function(x,b,r){var u=r(4),d=r(114),h=r(15),p=u.ArrayBuffer,y=u.TypeError;x.exports=p&&d(p.prototype,"byteLength","get")||function(T){if(h(T)!=="ArrayBuffer")throw new y("ArrayBuffer expected");return T.byteLength}},function(x,b,r){var u=r(3),d=r(231);d&&u({target:"ArrayBuffer",proto:!0},{transfer:function(){return d(this,arguments.length?arguments[0]:void 0,!0)}})},function(x,b,r){var u=r(4),d=r(14),h=r(114),p=r(212),y=r(232),T=r(229),$=r(233),A=r(235),E=u.structuredClone,R=u.ArrayBuffer,I=u.DataView,O=Math.min,C=R.prototype,D=I.prototype,M=d(C.slice),F=h(C,"resizable","get"),z=h(C,"maxByteLength","get"),U=d(D.getInt8),j=d(D.setInt8);x.exports=(A||$)&&function(G,B,V){var Y=T(G),Z=B===void 0?Y:p(B),J=!F||!F(G),q;if(y(G),A&&(G=E(G,{transfer:[G]}),Y===Z&&(V||J)))return G;if(Y>=Z&&(!V||J))q=M(G,0,Z);else{var nt=V&&!J&&z?{maxByteLength:z(G)}:void 0;q=new R(Z,nt);for(var rt=new I(G),_=new I(q),tt=O(Z,Y),et=0;et92||p==="NODE"&&h>94||p==="BROWSER"&&h>97)return!1;var T=new ArrayBuffer(8),$=y(T,{transfer:[T]});return T.byteLength!==0||$.byteLength!==8})},function(x,b,r){var u=r(3),d=r(231);d&&u({target:"ArrayBuffer",proto:!0},{transferToFixedLength:function(){return d(this,arguments.length?arguments[0]:void 0,!1)}})},function(x,b,r){var u=r(3),d=r(14),h=r(7),p=h(function(){return new Date(16e11).getYear()!==120}),y=d(Date.prototype.getFullYear);u({target:"Date",proto:!0,forced:p},{getYear:function(){return y(this)-1900}})},function(x,b,r){var u=r(3),d=r(14),h=Date,p=d(h.prototype.getTime);u({target:"Date",stat:!0},{now:function(){return p(new h)}})},function(x,b,r){var u=r(3),d=r(14),h=r(61),p=Date.prototype,y=d(p.getTime),T=d(p.setFullYear);u({target:"Date",proto:!0},{setYear:function(A){y(this);var E=h(A),R=E>=0&&E<=99?E+1900:E;return T(this,R)}})},function(x,b,r){var u=r(3);u({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})},function(x,b,r){var u=r(3),d=r(242);u({target:"Date",proto:!0,forced:Date.prototype.toISOString!==d},{toISOString:d})},function(x,b,r){var u=r(14),d=r(7),h=r(243).start,p=RangeError,y=isFinite,T=Math.abs,$=Date.prototype,A=$.toISOString,E=u($.getTime),R=u($.getUTCDate),I=u($.getUTCFullYear),O=u($.getUTCHours),C=u($.getUTCMilliseconds),D=u($.getUTCMinutes),M=u($.getUTCMonth),F=u($.getUTCSeconds);x.exports=d(function(){return A.call(new Date(-50000000000001))!=="0385-07-25T07:06:39.999Z"})||!d(function(){A.call(new Date(NaN))})?function(){if(!y(E(this)))throw new p("Invalid time value");var U=this,j=I(U),G=C(U),B=j<0?"-":j>9999?"+":"";return B+h(T(j),B?6:4,0)+"-"+h(M(U)+1,2,0)+"-"+h(R(U),2,0)+"T"+h(O(U),2,0)+":"+h(D(U),2,0)+":"+h(F(U),2,0)+"."+h(G,3,0)+"Z"}:A},function(x,b,r){var u=r(14),d=r(64),h=r(68),p=r(244),y=r(16),T=u(p),$=u("".slice),A=Math.ceil,E=function(R){return function(I,O,C){var D=h(y(I)),M=d(O),F=D.length,z=C===void 0?" ":h(C),U,j;return M<=F||z===""?D:(U=M-F,j=T(z,A(U/z.length)),j.length>U&&(j=$(j,0,U)),R?D+j:j+D)}};x.exports={start:E(!1),end:E(!0)}},function(x,b,r){var u=r(61),d=r(68),h=r(16),p=RangeError;x.exports=function(T){var $=d(h(this)),A="",E=u(T);if(E<0||E===1/0)throw new p("Wrong number of repetitions");for(;E>0;(E>>>=1)&&($+=$))E&1&&(A+=$);return A}},function(x,b,r){var u=r(3),d=r(7),h=r(39),p=r(19),y=d(function(){return new Date(NaN).toJSON()!==null||Date.prototype.toJSON.call({toISOString:function(){return 1}})!==1});u({target:"Date",proto:!0,arity:1,forced:y},{toJSON:function($){var A=h(this),E=p(A,"number");return typeof E=="number"&&!isFinite(E)?null:A.toISOString()}})},function(x,b,r){var u=r(38),d=r(47),h=r(247),p=r(33),y=p("toPrimitive"),T=Date.prototype;u(T,y)||d(T,y,h)},function(x,b,r){var u=r(46),d=r(32),h=TypeError;x.exports=function(p){if(u(this),p==="string"||p==="default")p="string";else if(p!=="number")throw new h("Incorrect hint");return d(this,p)}},function(x,b,r){var u=r(14),d=r(47),h=Date.prototype,p="Invalid Date",y="toString",T=u(h[y]),$=u(h.getTime);String(new Date(NaN))!==p&&d(h,y,function(){var E=$(this);return E===E?T(this):p})},function(x,b,r){var u=r(3),d=r(14),h=r(68),p=d("".charAt),y=d("".charCodeAt),T=d(/./.exec),$=d(1 .toString),A=d("".toUpperCase),E=/[\w*+\-./@]/,R=function(I,O){for(var C=$(I,16);C.length1?arguments[1]:void 0),_;_=_?_.next:nt.first;)for(rt(_.value,_.key,this);_&&_.removed;)_=_.previous},has:function(q){return!!Z(this,q)}}),h(B,U?{get:function(q){var nt=Z(this,q);return nt&&nt.value},set:function(q,nt){return Y(this,q===0?0:q,nt)}}:{add:function(q){return Y(this,q=q===0?0:q,q)}}),I&&d(B,"size",{configurable:!0,get:function(){return V(this).size}}),G},setStrong:function(F,z,U){var j=z+" Iterator",G=M(z),B=M(j);A(F,z,function(V,Y){D(this,{type:j,target:V,state:G(V),kind:Y,last:null})},function(){for(var V=B(this),Y=V.kind,Z=V.last;Z&&Z.removed;)Z=Z.previous;return!V.target||!(V.last=Z=Z?Z.next:V.state.first)?(V.target=null,E(void 0,!0)):E(Y==="keys"?Z.key:Y==="values"?Z.value:[Z.key,Z.value],!1)},U?"entries":"values",!U,!0),R(z)}}},function(x,b,r){var u=r(3),d=r(14),h=r(30),p=r(16),y=r(130),T=r(284),$=r(36),A=r(7),E=T.Map,R=T.has,I=T.get,O=T.set,C=d([].push),D=$||A(function(){return E.groupBy("ab",function(M){return M}).get("a").length!==1});u({target:"Map",stat:!0,forced:$||D},{groupBy:function(F,z){p(F),h(z);var U=new E,j=0;return y(F,function(G){var B=z(G,j++);R(U,B)?C(I(U,B),G):O(U,B,[G])}),U}})},function(x,b,r){var u=r(14),d=Map.prototype;x.exports={Map,set:u(d.set),get:u(d.get),has:u(d.has),remove:u(d.delete),proto:d}},function(x,b,r){var u=r(3),d=r(286),h=Math.acosh,p=Math.log,y=Math.sqrt,T=Math.LN2,$=!h||Math.floor(h(Number.MAX_VALUE))!==710||h(1/0)!==1/0;u({target:"Math",stat:!0,forced:$},{acosh:function(E){var R=+E;return R<1?NaN:R>9490626562425156e-8?p(R)+T:d(R-1+y(R-1)*y(R+1))}})},function(x){var b=Math.log;x.exports=Math.log1p||function(u){var d=+u;return d>-1e-8&&d<1e-8?d-d*d/2:b(1+d)}},function(x,b,r){var u=r(3),d=Math.asinh,h=Math.log,p=Math.sqrt;function y($){var A=+$;return!isFinite(A)||A===0?A:A<0?-y(-A):h(A+p(A*A+1))}var T=!(d&&1/d(0)>0);u({target:"Math",stat:!0,forced:T},{asinh:y})},function(x,b,r){var u=r(3),d=Math.atanh,h=Math.log,p=!(d&&1/d(-0)<0);u({target:"Math",stat:!0,forced:p},{atanh:function(T){var $=+T;return $===0?$:h((1+$)/(1-$))/2}})},function(x,b,r){var u=r(3),d=r(215),h=Math.abs,p=Math.pow;u({target:"Math",stat:!0},{cbrt:function(T){var $=+T;return d($)*p(h($),.3333333333333333)}})},function(x,b,r){var u=r(3),d=Math.floor,h=Math.log,p=Math.LOG2E;u({target:"Math",stat:!0},{clz32:function(T){var $=T>>>0;return $?31-d(h($+.5)*p):32}})},function(x,b,r){var u=r(3),d=r(292),h=Math.cosh,p=Math.abs,y=Math.E,T=!h||h(710)===1/0;u({target:"Math",stat:!0,forced:T},{cosh:function(A){var E=d(p(A)-1)+1;return(E+1/(E*y*y))*(y/2)}})},function(x){var b=Math.expm1,r=Math.exp;x.exports=!b||b(10)>22025.465794806718||b(10)<22025.465794806718||b(-2e-17)!==-2e-17?function(d){var h=+d;return h===0?h:h>-1e-6&&h<1e-6?h+h*h/2:r(h)-1}:b},function(x,b,r){var u=r(3),d=r(292);u({target:"Math",stat:!0,forced:d!==Math.expm1},{expm1:d})},function(x,b,r){var u=r(3),d=r(213);u({target:"Math",stat:!0},{fround:d})},function(x,b,r){var u=r(3),d=r(214),h=.0009765625,p=65504,y=6103515625e-14;u({target:"Math",stat:!0},{f16round:function($){return d($,h,p,y)}})},function(x,b,r){var u=r(3),d=Math.hypot,h=Math.abs,p=Math.sqrt,y=!!d&&d(1/0,NaN)!==1/0;u({target:"Math",stat:!0,arity:2,forced:y},{hypot:function($,A){for(var E=0,R=0,I=arguments.length,O=0,C,D;R0?(D=C/O,E+=D*D):E+=C;return O===1/0?1/0:O*p(E)}})},function(x,b,r){var u=r(3),d=r(7),h=Math.imul,p=d(function(){return h(4294967295,5)!==-5||h.length!==2});u({target:"Math",stat:!0,forced:p},{imul:function(T,$){var A=65535,E=+T,R=+$,I=A&E,O=A&R;return 0|I*O+((A&E>>>16)*O+I*(A&R>>>16)<<16>>>0)}})},function(x,b,r){var u=r(3),d=r(299);u({target:"Math",stat:!0},{log10:d})},function(x){var b=Math.log,r=Math.LOG10E;x.exports=Math.log10||function(d){return b(d)*r}},function(x,b,r){var u=r(3),d=r(286);u({target:"Math",stat:!0},{log1p:d})},function(x,b,r){var u=r(3),d=r(226);u({target:"Math",stat:!0},{log2:d})},function(x,b,r){var u=r(3),d=r(215);u({target:"Math",stat:!0},{sign:d})},function(x,b,r){var u=r(3),d=r(7),h=r(292),p=Math.abs,y=Math.exp,T=Math.E,$=d(function(){return Math.sinh(-2e-17)!==-2e-17});u({target:"Math",stat:!0,forced:$},{sinh:function(E){var R=+E;return p(R)<1?(h(R)-h(-R))/2:(y(R-1)-y(-R-1))*(T/2)}})},function(x,b,r){var u=r(3),d=r(292),h=Math.exp;u({target:"Math",stat:!0},{tanh:function(y){var T=+y,$=d(T),A=d(-T);return $===1/0?1:A===1/0?-1:($-A)/(h(T)+h(-T))}})},function(x,b,r){var u=r(82);u(Math,"Math",!0)},function(x,b,r){var u=r(3),d=r(62);u({target:"Math",stat:!0},{trunc:d})},function(x,b,r){var u=r(3),d=r(36),h=r(6),p=r(4),y=r(80),T=r(14),$=r(67),A=r(38),E=r(118),R=r(24),I=r(22),O=r(19),C=r(7),D=r(57).f,M=r(5).f,F=r(44).f,z=r(308),U=r(309).trim,j="Number",G=p[j],B=y[j],V=G.prototype,Y=p.TypeError,Z=T("".slice),J=T("".charCodeAt),q=function(lt){var mt=O(lt,"number");return typeof mt=="bigint"?mt:nt(mt)},nt=function(lt){var mt=O(lt,"number"),gt,xt,yt,Ut,Dt,Xt,Qt,kt;if(I(mt))throw new Y("Cannot convert a Symbol value to a number");if(typeof mt=="string"&&mt.length>2){if(mt=U(mt),gt=J(mt,0),gt===43||gt===45){if(xt=J(mt,2),xt===88||xt===120)return NaN}else if(gt===48){switch(J(mt,1)){case 66:case 98:yt=2,Ut=49;break;case 79:case 111:yt=8,Ut=55;break;default:return+mt}for(Dt=Z(mt,2),Xt=Dt.length,Qt=0;QtUt)return NaN;return parseInt(Dt,yt)}}return+mt},rt=$(j,!G(" 0o1")||!G("0b1")||G("+0x1")),_=function(lt){return R(V,lt)&&C(function(){z(lt)})},tt=function(mt){var gt=arguments.length<1?0:G(q(mt));return _(this)?E(Object(gt),this,tt):gt};tt.prototype=V,rt&&!d&&(V.constructor=tt),u({global:!0,constructor:!0,wrap:!0,forced:rt},{Number:tt});var et=function(lt,mt){for(var gt=h?D(mt):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),xt=0,yt;gt.length>xt;xt++)A(mt,yt=gt[xt])&&!A(lt,yt)&&F(lt,yt,M(mt,yt))};d&&B&&et(y[j],B),(rt||d)&&et(y[j],G)},function(x,b,r){var u=r(14);x.exports=u(1 .valueOf)},function(x,b,r){var u=r(14),d=r(16),h=r(68),p=r(310),y=u("".replace),T=RegExp("^["+p+"]+"),$=RegExp("(^|[^"+p+"])["+p+"]+$"),A=function(E){return function(R){var I=h(d(R));return E&1&&(I=y(I,T,"")),E&2&&(I=y(I,$,"$1")),I}};x.exports={start:A(1),end:A(2),trim:A(3)}},function(x){x.exports=` +\v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`},function(x,b,r){var u=r(3);u({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})},function(x,b,r){var u=r(3),d=r(313);u({target:"Number",stat:!0},{isFinite:d})},function(x,b,r){var u=r(4),d=u.isFinite;x.exports=Number.isFinite||function(p){return typeof p=="number"&&d(p)}},function(x,b,r){var u=r(3),d=r(315);u({target:"Number",stat:!0},{isInteger:d})},function(x,b,r){var u=r(20),d=Math.floor;x.exports=Number.isInteger||function(p){return!u(p)&&isFinite(p)&&d(p)===p}},function(x,b,r){var u=r(3);u({target:"Number",stat:!0},{isNaN:function(h){return h!==h}})},function(x,b,r){var u=r(3),d=r(315),h=Math.abs;u({target:"Number",stat:!0},{isSafeInteger:function(y){return d(y)&&h(y)<=9007199254740991}})},function(x,b,r){var u=r(3);u({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})},function(x,b,r){var u=r(3);u({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})},function(x,b,r){var u=r(3),d=r(321);u({target:"Number",stat:!0,forced:Number.parseFloat!==d},{parseFloat:d})},function(x,b,r){var u=r(4),d=r(7),h=r(14),p=r(68),y=r(309).trim,T=r(310),$=h("".charAt),A=u.parseFloat,E=u.Symbol,R=E&&E.iterator,I=1/A(T+"-0")!==-1/0||R&&!d(function(){A(Object(R))});x.exports=I?function(C){var D=y(p(C)),M=A(D);return M===0&&$(D,0)==="-"?-0:M}:A},function(x,b,r){var u=r(3),d=r(323);u({target:"Number",stat:!0,forced:Number.parseInt!==d},{parseInt:d})},function(x,b,r){var u=r(4),d=r(7),h=r(14),p=r(68),y=r(309).trim,T=r(310),$=u.parseInt,A=u.Symbol,E=A&&A.iterator,R=/^[+-]?0x/i,I=h(R.exec),O=$(T+"08")!==8||$(T+"0x16")!==22||E&&!d(function(){$(Object(E))});x.exports=O?function(D,M){var F=y(p(D));return $(F,M>>>0||(I(R,F)?16:10))}:$},function(x,b,r){var u=r(3),d=r(14),h=r(61),p=r(308),y=r(244),T=r(299),$=r(7),A=RangeError,E=String,R=isFinite,I=Math.abs,O=Math.floor,C=Math.pow,D=Math.round,M=d(1 .toExponential),F=d(y),z=d("".slice),U=M(-69e-12,4)==="-6.9000e-11"&&M(1.255,2)==="1.25e+0"&&M(12345,3)==="1.235e+4"&&M(25,0)==="3e+1",j=function(){return $(function(){M(1,1/0)})&&$(function(){M(1,-1/0)})},G=function(){return!$(function(){M(1/0,1/0),M(NaN,1/0)})},B=!U||!j()||!G();u({target:"Number",proto:!0,forced:B},{toExponential:function(Y){var Z=p(this);if(Y===void 0)return M(Z);var J=h(Y);if(!R(Z))return String(Z);if(J<0||J>20)throw new A("Incorrect fraction digits");if(U)return M(Z,J);var q="",nt,rt,_,tt;if(Z<0&&(q="-",Z=-Z),Z===0)rt=0,nt=F("0",J+1);else{var et=T(Z);rt=O(et);var lt=C(10,rt-J),mt=D(Z/lt);2*Z>=(2*mt+1)*lt&&(mt+=1),mt>=C(10,J+1)&&(mt/=10,rt+=1),nt=E(mt)}return J!==0&&(nt=z(nt,0,1)+"."+z(nt,1)),rt===0?(_="+",tt="0"):(_=rt>0?"+":"-",tt=E(I(rt))),nt+="e"+_+tt,q+nt}})},function(x,b,r){var u=r(3),d=r(14),h=r(61),p=r(308),y=r(244),T=r(7),$=RangeError,A=String,E=Math.floor,R=d(y),I=d("".slice),O=d(1 .toFixed),C=function(j,G,B){return G===0?B:G%2===1?C(j,G-1,B*j):C(j*j,G/2,B)},D=function(j){for(var G=0,B=j;B>=4096;)G+=12,B/=4096;for(;B>=2;)G+=1,B/=2;return G},M=function(j,G,B){for(var V=-1,Y=B;++V<6;)Y+=G*j[V],j[V]=Y%1e7,Y=E(Y/1e7)},F=function(j,G){for(var B=6,V=0;--B>=0;)V+=j[B],j[B]=E(V/G),V=V%G*1e7},z=function(j){for(var G=6,B="";--G>=0;)if(B!==""||G===0||j[G]!==0){var V=A(j[G]);B=B===""?V:B+R("0",7-V.length)+V}return B},U=T(function(){return O(8e-5,3)!=="0.000"||O(.9,0)!=="1"||O(1.255,2)!=="1.25"||O(0xde0b6b3a7640080,0)!=="1000000000000000128"})||!T(function(){O({})});u({target:"Number",proto:!0,forced:U},{toFixed:function(G){var B=p(this),V=h(G),Y=[0,0,0,0,0,0],Z="",J="0",q,nt,rt,_;if(V<0||V>20)throw new $("Incorrect fraction digits");if(B!==B)return"NaN";if(B<=-1e21||B>=1e21)return A(B);if(B<0&&(Z="-",B=-B),B>1e-21)if(q=D(B*C(2,69,1))-69,nt=q<0?B*C(2,-q,1):B/C(2,q,1),nt*=4503599627370496,q=52-q,q>0){for(M(Y,0,nt),rt=V;rt>=7;)M(Y,1e7,0),rt-=7;for(M(Y,C(10,rt,1),0),rt=q-1;rt>=23;)F(Y,8388608),rt-=23;F(Y,1<0?(_=J.length,J=Z+(_<=V?"0."+R("0",V-_)+J:I(J,0,_-V)+"."+I(J,_-V))):J=Z+J,J}})},function(x,b,r){var u=r(3),d=r(14),h=r(7),p=r(308),y=d(1 .toPrecision),T=h(function(){return y(1,void 0)!=="1"})||!h(function(){y({})});u({target:"Number",proto:!0,forced:T},{toPrecision:function(A){return A===void 0?y(p(this)):y(p(this),A)}})},function(x,b,r){var u=r(3),d=r(328);u({target:"Object",stat:!0,arity:2,forced:Object.assign!==d},{assign:d})},function(x,b,r){var u=r(6),d=r(14),h=r(8),p=r(7),y=r(73),T=r(66),$=r(10),A=r(39),E=r(13),R=Object.assign,I=Object.defineProperty,O=d([].concat);x.exports=!R||p(function(){if(u&&R({b:1},R(I({},"a",{enumerable:!0,get:function(){I(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var C={},D={},M=Symbol("assign detection"),F="abcdefghijklmnopqrst";return C[M]=7,F.split("").forEach(function(z){D[z]=z}),R({},C)[M]!==7||y(R({},D)).join("")!==F})?function(D,M){for(var F=A(D),z=arguments.length,U=1,j=T.f,G=$.f;z>U;)for(var B=E(arguments[U++]),V=j?O(y(B),j(B)):y(B),Y=V.length,Z=0,J;Y>Z;)J=V[Z++],(!u||h(G,B,J))&&(F[J]=B[J]);return F}:R},function(x,b,r){var u=r(3),d=r(6),h=r(71);u({target:"Object",stat:!0,sham:!d},{create:h})},function(x,b,r){var u=r(3),d=r(6),h=r(331),p=r(30),y=r(39),T=r(44);d&&u({target:"Object",proto:!0,forced:h},{__defineGetter__:function(A,E){T.f(y(this),A,{get:p(E),enumerable:!0,configurable:!0})}})},function(x,b,r){var u=r(36),d=r(4),h=r(7),p=r(192);x.exports=u||!h(function(){if(!(p&&p<535)){var y=Math.random();__defineSetter__.call(null,y,function(){}),delete d[y]}})},function(x,b,r){var u=r(3),d=r(6),h=r(72).f;u({target:"Object",stat:!0,forced:Object.defineProperties!==h,sham:!d},{defineProperties:h})},function(x,b,r){var u=r(3),d=r(6),h=r(44).f;u({target:"Object",stat:!0,forced:Object.defineProperty!==h,sham:!d},{defineProperty:h})},function(x,b,r){var u=r(3),d=r(6),h=r(331),p=r(30),y=r(39),T=r(44);d&&u({target:"Object",proto:!0,forced:h},{__defineSetter__:function(A,E){T.f(y(this),A,{set:p(E),enumerable:!0,configurable:!0})}})},function(x,b,r){var u=r(3),d=r(336).entries;u({target:"Object",stat:!0},{entries:function(p){return d(p)}})},function(x,b,r){var u=r(6),d=r(7),h=r(14),p=r(128),y=r(73),T=r(12),$=r(10).f,A=h($),E=h([].push),R=u&&d(function(){var O=Object.create(null);return O[2]=2,!A(O,2)}),I=function(O){return function(C){for(var D=T(C),M=y(D),F=R&&p(D)===null,z=M.length,U=0,j=[],G;z>U;)G=M[U++],(!u||(F?G in D:A(D,G)))&&E(j,O?[G,D[G]]:D[G]);return j}};x.exports={entries:I(!0),values:I(!1)}},function(x,b,r){var u=r(3),d=r(281),h=r(7),p=r(20),y=r(278).onFreeze,T=Object.freeze,$=h(function(){T(1)});u({target:"Object",stat:!0,forced:$,sham:!d},{freeze:function(E){return T&&p(E)?T(y(E)):E}})},function(x,b,r){var u=r(3),d=r(130),h=r(141);u({target:"Object",stat:!0},{fromEntries:function(y){var T={};return d(y,function($,A){h(T,$,A)},{AS_ENTRIES:!0}),T}})},function(x,b,r){var u=r(3),d=r(7),h=r(12),p=r(5).f,y=r(6),T=!y||d(function(){p(1)});u({target:"Object",stat:!0,forced:T,sham:!y},{getOwnPropertyDescriptor:function(A,E){return p(h(A),E)}})},function(x,b,r){var u=r(3),d=r(6),h=r(56),p=r(12),y=r(5),T=r(141);u({target:"Object",stat:!0,sham:!d},{getOwnPropertyDescriptors:function(A){for(var E=p(A),R=y.f,I=h(E),O={},C=0,D,M;I.length>C;)M=R(E,D=I[C++]),M!==void 0&&T(O,D,M);return O}})},function(x,b,r){var u=r(3),d=r(7),h=r(75).f,p=d(function(){return!Object.getOwnPropertyNames(1)});u({target:"Object",stat:!0,forced:p},{getOwnPropertyNames:h})},function(x,b,r){var u=r(3),d=r(7),h=r(39),p=r(128),y=r(129),T=d(function(){p(1)});u({target:"Object",stat:!0,forced:T,sham:!y},{getPrototypeOf:function(A){return p(h(A))}})},function(x,b,r){var u=r(3),d=r(23),h=r(14),p=r(30),y=r(16),T=r(18),$=r(130),A=r(7),E=Object.groupBy,R=d("Object","create"),I=h([].push),O=!E||A(function(){return E("ab",function(C){return C}).a.length!==1});u({target:"Object",stat:!0,forced:O},{groupBy:function(D,M){y(D),p(M);var F=R(null),z=0;return $(D,function(U){var j=T(M(U,z++));j in F?I(F[j],U):F[j]=[U]}),F}})},function(x,b,r){var u=r(3),d=r(38);u({target:"Object",stat:!0},{hasOwn:d})},function(x,b,r){var u=r(3),d=r(346);u({target:"Object",stat:!0},{is:d})},function(x){x.exports=Object.is||function(r,u){return r===u?r!==0||1/r===1/u:r!==r&&u!==u}},function(x,b,r){var u=r(3),d=r(279);u({target:"Object",stat:!0,forced:Object.isExtensible!==d},{isExtensible:d})},function(x,b,r){var u=r(3),d=r(7),h=r(20),p=r(15),y=r(280),T=Object.isFrozen,$=y||d(function(){T(1)});u({target:"Object",stat:!0,forced:$},{isFrozen:function(E){return!h(E)||y&&p(E)==="ArrayBuffer"?!0:T?T(E):!1}})},function(x,b,r){var u=r(3),d=r(7),h=r(20),p=r(15),y=r(280),T=Object.isSealed,$=y||d(function(){T(1)});u({target:"Object",stat:!0,forced:$},{isSealed:function(E){return!h(E)||y&&p(E)==="ArrayBuffer"?!0:T?T(E):!1}})},function(x,b,r){var u=r(3),d=r(39),h=r(73),p=r(7),y=p(function(){h(1)});u({target:"Object",stat:!0,forced:y},{keys:function($){return h(d($))}})},function(x,b,r){var u=r(3),d=r(6),h=r(331),p=r(39),y=r(18),T=r(128),$=r(5).f;d&&u({target:"Object",proto:!0,forced:h},{__lookupGetter__:function(E){var R=p(this),I=y(E),O;do if(O=$(R,I))return O.get;while(R=T(R))}})},function(x,b,r){var u=r(3),d=r(6),h=r(331),p=r(39),y=r(18),T=r(128),$=r(5).f;d&&u({target:"Object",proto:!0,forced:h},{__lookupSetter__:function(E){var R=p(this),I=y(E),O;do if(O=$(R,I))return O.set;while(R=T(R))}})},function(x,b,r){var u=r(3),d=r(20),h=r(278).onFreeze,p=r(281),y=r(7),T=Object.preventExtensions,$=y(function(){T(1)});u({target:"Object",stat:!0,forced:$,sham:!p},{preventExtensions:function(E){return T&&d(E)?T(h(E)):E}})},function(x,b,r){var u=r(6),d=r(77),h=r(20),p=r(116),y=r(39),T=r(16),$=Object.getPrototypeOf,A=Object.setPrototypeOf,E=Object.prototype,R="__proto__";if(u&&$&&A&&!(R in E))try{d(E,R,{configurable:!0,get:function(){return $(y(this))},set:function(O){var C=T(this);p(O)&&h(C)&&A(C,O)}})}catch(I){}},function(x,b,r){var u=r(3),d=r(20),h=r(278).onFreeze,p=r(281),y=r(7),T=Object.seal,$=y(function(){T(1)});u({target:"Object",stat:!0,forced:$,sham:!p},{seal:function(E){return T&&d(E)?T(h(E)):E}})},function(x,b,r){var u=r(3),d=r(113);u({target:"Object",stat:!0},{setPrototypeOf:d})},function(x,b,r){var u=r(70),d=r(47),h=r(358);u||d(Object.prototype,"toString",h,{unsafe:!0})},function(x,b,r){var u=r(70),d=r(69);x.exports=u?{}.toString:function(){return"[object "+d(this)+"]"}},function(x,b,r){var u=r(3),d=r(336).values;u({target:"Object",stat:!0},{values:function(p){return d(p)}})},function(x,b,r){var u=r(3),d=r(321);u({global:!0,forced:parseFloat!==d},{parseFloat:d})},function(x,b,r){var u=r(3),d=r(323);u({global:!0,forced:parseInt!==d},{parseInt:d})},function(x,b,r){r(363),r(379),r(381),r(382),r(383),r(384)},function(x,b,r){var u=r(3),d=r(36),h=r(182),p=r(4),y=r(8),T=r(47),$=r(113),A=r(82),E=r(194),R=r(30),I=r(21),O=r(20),C=r(211),D=r(364),M=r(366).set,F=r(369),z=r(374),U=r(375),j=r(371),G=r(51),B=r(376),V=r(377),Y=r(378),Z="Promise",J=V.CONSTRUCTOR,q=V.REJECTION_EVENT,nt=V.SUBCLASSING,rt=G.getterFor(Z),_=G.set,tt=B&&B.prototype,et=B,lt=tt,mt=p.TypeError,gt=p.document,xt=p.process,yt=Y.f,Ut=yt,Dt=!!(gt&>.createEvent&&p.dispatchEvent),Xt="unhandledrejection",Qt="rejectionhandled",kt=0,me=1,ge=2,ae=1,Mt=2,Ht,re,se,ee,fe=function(Tt){var qt;return O(Tt)&&I(qt=Tt.then)?qt:!1},Pe=function(Tt,qt){var te=qt.value,Zt=qt.state===me,Yt=Zt?Tt.ok:Tt.fail,Ye=Tt.resolve,Ze=Tt.reject,ut=Tt.domain,It,Pt,Ct;try{Yt?(Zt||(qt.rejection===Mt&&Te(qt),qt.rejection=ae),Yt===!0?It=te:(ut&&ut.enter(),It=Yt(te),ut&&(ut.exit(),Ct=!0)),It===Tt.promise?Ze(new mt("Promise-chain cycle")):(Pt=fe(It))?y(Pt,It,Ye,Ze):Ye(It)):Ze(te)}catch(Nt){ut&&!Ct&&ut.exit(),Ze(Nt)}},Me=function(Tt,qt){Tt.notified||(Tt.notified=!0,F(function(){for(var te=Tt.reactions,Zt;Zt=te.get();)Pe(Zt,Tt);Tt.notified=!1,qt&&!Tt.rejection&&ce(Tt)}))},$e=function(Tt,qt,te){var Zt,Yt;Dt?(Zt=gt.createEvent("Event"),Zt.promise=qt,Zt.reason=te,Zt.initEvent(Tt,!1,!0),p.dispatchEvent(Zt)):Zt={promise:qt,reason:te},!q&&(Yt=p["on"+Tt])?Yt(Zt):Tt===Xt&&z("Unhandled promise rejection",te)},ce=function(Tt){y(M,p,function(){var qt=Tt.facade,te=Tt.value,Zt=Ae(Tt),Yt;if(Zt&&(Yt=U(function(){h?xt.emit("unhandledRejection",te,qt):$e(Xt,qt,te)}),Tt.rejection=h||Ae(Tt)?Mt:ae,Yt.error))throw Yt.value})},Ae=function(Tt){return Tt.rejection!==ae&&!Tt.parent},Te=function(Tt){y(M,p,function(){var qt=Tt.facade;h?xt.emit("rejectionHandled",qt):$e(Qt,qt,Tt.value)})},de=function(Tt,qt,te){return function(Zt){Tt(qt,Zt,te)}},bt=function(Tt,qt,te){Tt.done||(Tt.done=!0,te&&(Tt=te),Tt.value=qt,Tt.state=ge,Me(Tt,!0))},Ft=function(Tt,qt,te){if(!Tt.done){Tt.done=!0,te&&(Tt=te);try{if(Tt.facade===qt)throw new mt("Promise can't be resolved itself");var Zt=fe(qt);Zt?F(function(){var Yt={done:!1};try{y(Zt,qt,de(Ft,Yt,Tt),de(bt,Yt,Tt))}catch(Ye){bt(Yt,Ye,Tt)}}):(Tt.value=qt,Tt.state=me,Me(Tt,!1))}catch(Yt){bt({done:!1},Yt,Tt)}}};if(J&&(et=function(qt){C(this,lt),R(qt),y(Ht,this);var te=rt(this);try{qt(de(Ft,te),de(bt,te))}catch(Zt){bt(te,Zt)}},lt=et.prototype,Ht=function(qt){_(this,{type:Z,done:!1,notified:!1,parent:!1,reactions:new j,rejection:!1,state:kt,value:null})},Ht.prototype=T(lt,"then",function(qt,te){var Zt=rt(this),Yt=yt(D(this,et));return Zt.parent=!0,Yt.ok=I(qt)?qt:!0,Yt.fail=I(te)&&te,Yt.domain=h?xt.domain:void 0,Zt.state===kt?Zt.reactions.add(Yt):F(function(){Pe(Yt,Zt)}),Yt.promise}),re=function(){var Tt=new Ht,qt=rt(Tt);this.promise=Tt,this.resolve=de(Ft,qt),this.reject=de(bt,qt)},Y.f=yt=function(Tt){return Tt===et||Tt===se?new re(Tt):Ut(Tt)},!d&&I(B)&&tt!==Object.prototype)){ee=tt.then,nt||T(tt,"then",function(qt,te){var Zt=this;return new et(function(Yt,Ye){y(ee,Zt,Yt,Ye)}).then(qt,te)},{unsafe:!0});try{delete tt.constructor}catch(Tt){}$&&$(tt,lt)}u({global:!0,constructor:!0,wrap:!0,forced:J},{Promise:et}),A(et,Z,!1,!0),E(Z)},function(x,b,r){var u=r(46),d=r(365),h=r(17),p=r(33),y=p("species");x.exports=function(T,$){var A=u(T).constructor,E;return A===void 0||h(E=u(A)[y])?$:d(E)}},function(x,b,r){var u=r(89),d=r(31),h=TypeError;x.exports=function(p){if(u(p))return p;throw new h(d(p)+" is not a constructor")}},function(x,b,r){var u=r(4),d=r(94),h=r(84),p=r(21),y=r(38),T=r(7),$=r(74),A=r(76),E=r(42),R=r(367),I=r(368),O=r(182),C=u.setImmediate,D=u.clearImmediate,M=u.process,F=u.Dispatch,z=u.Function,U=u.MessageChannel,j=u.String,G=0,B={},V="onreadystatechange",Y,Z,J,q;T(function(){Y=u.location});var nt=function(et){if(y(B,et)){var lt=B[et];delete B[et],lt()}},rt=function(et){return function(){nt(et)}},_=function(et){nt(et.data)},tt=function(et){u.postMessage(j(et),Y.protocol+"//"+Y.host)};(!C||!D)&&(C=function(lt){R(arguments.length,1);var mt=p(lt)?lt:z(lt),gt=A(arguments,1);return B[++G]=function(){d(mt,void 0,gt)},Z(G),G},D=function(lt){delete B[lt]},O?Z=function(et){M.nextTick(rt(et))}:F&&F.now?Z=function(et){F.now(rt(et))}:U&&!I?(J=new U,q=J.port2,J.port1.onmessage=_,Z=h(q.postMessage,q)):u.addEventListener&&p(u.postMessage)&&!u.importScripts&&Y&&Y.protocol!=="file:"&&!T(tt)?(Z=tt,u.addEventListener("message",_,!1)):V in E("script")?Z=function(et){$.appendChild(E("script"))[V]=function(){$.removeChild(this),nt(et)}}:Z=function(et){setTimeout(rt(et),0)}),x.exports={set:C,clear:D}},function(x){var b=TypeError;x.exports=function(r,u){if(r1?p(arguments,1):[],C=y.f(this),D=$(function(){return h(T(I),void 0,O)});return(D.error?C.reject:C.resolve)(D.value),C.promise}})},function(x,b,r){var u=r(3),d=r(378);u({target:"Promise",stat:!0},{withResolvers:function(){var p=d.f(this);return{promise:p.promise,resolve:p.resolve,reject:p.reject}}})},function(x,b,r){var u=r(3),d=r(94),h=r(30),p=r(46),y=r(7),T=!y(function(){Reflect.apply(function(){})});u({target:"Reflect",stat:!0,forced:T},{apply:function(A,E,R){return d(h(A),E,p(R))}})},function(x,b,r){var u=r(3),d=r(23),h=r(94),p=r(251),y=r(365),T=r(46),$=r(20),A=r(71),E=r(7),R=d("Reflect","construct"),I=Object.prototype,O=[].push,C=E(function(){function F(){}return!(R(function(){},[],F)instanceof F)}),D=!E(function(){R(function(){})}),M=C||D;u({target:"Reflect",stat:!0,forced:M,sham:M},{construct:function(z,U){y(z),T(U);var j=arguments.length<3?z:y(arguments[2]);if(D&&!C)return R(z,U,j);if(z===j){switch(U.length){case 0:return new z;case 1:return new z(U[0]);case 2:return new z(U[0],U[1]);case 3:return new z(U[0],U[1],U[2]);case 4:return new z(U[0],U[1],U[2],U[3])}var G=[null];return h(O,G,U),new(h(p,z,G))}var B=j.prototype,V=A($(B)?B:I),Y=h(z,V,U);return $(Y)?Y:V}})},function(x,b,r){var u=r(3),d=r(6),h=r(46),p=r(18),y=r(44),T=r(7),$=T(function(){Reflect.defineProperty(y.f({},1,{value:1}),1,{value:2})});u({target:"Reflect",stat:!0,forced:$,sham:!d},{defineProperty:function(E,R,I){h(E);var O=p(R);h(I);try{return y.f(E,O,I),!0}catch(C){return!1}}})},function(x,b,r){var u=r(3),d=r(46),h=r(5).f;u({target:"Reflect",stat:!0},{deleteProperty:function(y,T){var $=h(d(y),T);return $&&!$.configurable?!1:delete y[T]}})},function(x,b,r){var u=r(3),d=r(8),h=r(20),p=r(46),y=r(396),T=r(5),$=r(128);function A(E,R){var I=arguments.length<3?E:arguments[2],O,C;if(p(E)===I)return E[R];if(O=T.f(E,R),O)return y(O)?O.value:O.get===void 0?void 0:d(O.get,I);if(h(C=$(E)))return A(C,R,I)}u({target:"Reflect",stat:!0},{get:A})},function(x,b,r){var u=r(38);x.exports=function(d){return d!==void 0&&(u(d,"value")||u(d,"writable"))}},function(x,b,r){var u=r(3),d=r(6),h=r(46),p=r(5);u({target:"Reflect",stat:!0,sham:!d},{getOwnPropertyDescriptor:function(T,$){return p.f(h(T),$)}})},function(x,b,r){var u=r(3),d=r(46),h=r(128),p=r(129);u({target:"Reflect",stat:!0,sham:!p},{getPrototypeOf:function(T){return h(d(T))}})},function(x,b,r){var u=r(3);u({target:"Reflect",stat:!0},{has:function(h,p){return p in h}})},function(x,b,r){var u=r(3),d=r(46),h=r(279);u({target:"Reflect",stat:!0},{isExtensible:function(y){return d(y),h(y)}})},function(x,b,r){var u=r(3),d=r(56);u({target:"Reflect",stat:!0},{ownKeys:d})},function(x,b,r){var u=r(3),d=r(23),h=r(46),p=r(281);u({target:"Reflect",stat:!0,sham:!p},{preventExtensions:function(T){h(T);try{var $=d("Object","preventExtensions");return $&&$(T),!0}catch(A){return!1}}})},function(x,b,r){var u=r(3),d=r(8),h=r(46),p=r(20),y=r(396),T=r(7),$=r(44),A=r(5),E=r(128),R=r(11);function I(C,D,M){var F=arguments.length<4?C:arguments[3],z=A.f(h(C),D),U,j,G;if(!z){if(p(j=E(C)))return I(j,D,M,F);z=R(0)}if(y(z)){if(z.writable===!1||!p(F))return!1;if(U=A.f(F,D)){if(U.get||U.set||U.writable===!1)return!1;U.value=M,$.f(F,D,U)}else $.f(F,D,R(0,M))}else{if(G=z.set,G===void 0)return!1;d(G,F,M)}return!0}var O=T(function(){var C=function(){},D=$.f(new C,"a",{configurable:!0});return Reflect.set(C.prototype,"a",1,D)!==!1});u({target:"Reflect",stat:!0,forced:O},{set:I})},function(x,b,r){var u=r(3),d=r(46),h=r(115),p=r(113);p&&u({target:"Reflect",stat:!0},{setPrototypeOf:function(T,$){d(T),h($);try{return p(T,$),!0}catch(A){return!1}}})},function(x,b,r){var u=r(3),d=r(4),h=r(82);u({global:!0},{Reflect:{}}),h(d.Reflect,"Reflect",!0)},function(x,b,r){var u=r(6),d=r(4),h=r(14),p=r(67),y=r(118),T=r(43),$=r(71),A=r(57).f,E=r(24),R=r(407),I=r(68),O=r(408),C=r(410),D=r(117),M=r(47),F=r(7),z=r(38),U=r(51).enforce,j=r(194),G=r(33),B=r(411),V=r(412),Y=G("match"),Z=d.RegExp,J=Z.prototype,q=d.SyntaxError,nt=h(J.exec),rt=h("".charAt),_=h("".replace),tt=h("".indexOf),et=h("".slice),lt=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,mt=/a/g,gt=/a/g,xt=new Z(mt)!==mt,yt=C.MISSED_STICKY,Ut=C.UNSUPPORTED_Y,Dt=u&&(!xt||yt||B||V||F(function(){return gt[Y]=!1,Z(mt)!==mt||Z(gt)===gt||String(Z(mt,"i"))!=="/a/i"})),Xt=function(ae){for(var Mt=ae.length,Ht=0,re="",se=!1,ee;Ht<=Mt;Ht++){if(ee=rt(ae,Ht),ee==="\\"){re+=ee+rt(ae,++Ht);continue}!se&&ee==="."?re+="[\\s\\S]":(ee==="["?se=!0:ee==="]"&&(se=!1),re+=ee)}return re},Qt=function(ae){for(var Mt=ae.length,Ht=0,re="",se=[],ee=$(null),fe=!1,Pe=!1,Me=0,$e="",ce;Ht<=Mt;Ht++){if(ce=rt(ae,Ht),ce==="\\")ce+=rt(ae,++Ht);else if(ce==="]")fe=!1;else if(!fe)switch(!0){case ce==="[":fe=!0;break;case ce==="(":if(re+=ce,et(ae,Ht+1,Ht+3)==="?:")continue;nt(lt,et(ae,Ht+1))&&(Ht+=2,Pe=!0),Me++;continue;case(ce===">"&&Pe):if($e===""||z(ee,$e))throw new q("Invalid capture group name");ee[$e]=!0,se[se.length]=[$e,Me],Pe=!1,$e="";continue}Pe?$e+=ce:re+=ce}return[re,se]};if(p("RegExp",Dt)){for(var kt=function(Mt,Ht){var re=E(J,this),se=R(Mt),ee=Ht===void 0,fe=[],Pe=Mt,Me,$e,ce,Ae,Te,de;if(!re&&se&&ee&&Mt.constructor===kt)return Mt;if((se||E(J,Mt))&&(Mt=Mt.source,ee&&(Ht=O(Pe))),Mt=Mt===void 0?"":I(Mt),Ht=Ht===void 0?"":I(Ht),Pe=Mt,B&&"dotAll"in mt&&($e=!!Ht&&tt(Ht,"s")>-1,$e&&(Ht=_(Ht,/s/g,""))),Me=Ht,yt&&"sticky"in mt&&(ce=!!Ht&&tt(Ht,"y")>-1,ce&&Ut&&(Ht=_(Ht,/y/g,""))),V&&(Ae=Qt(Mt),Mt=Ae[0],fe=Ae[1]),Te=y(Z(Mt,Ht),re?this:J,kt),($e||ce||fe.length)&&(de=U(Te),$e&&(de.dotAll=!0,de.raw=kt(Xt(Mt),Me)),ce&&(de.sticky=!0),fe.length&&(de.groups=fe)),Mt!==Pe)try{T(Te,"source",Pe===""?"(?:)":Pe)}catch(bt){}return Te},me=A(Z),ge=0;me.length>ge;)D(kt,Z,me[ge++]);J.constructor=kt,kt.prototype=J,M(d,"RegExp",kt,{constructor:!0})}j("RegExp")},function(x,b,r){var u=r(20),d=r(15),h=r(33),p=h("match");x.exports=function(y){var T;return u(y)&&((T=y[p])!==void 0?!!T:d(y)==="RegExp")}},function(x,b,r){var u=r(8),d=r(38),h=r(24),p=r(409),y=RegExp.prototype;x.exports=function(T){var $=T.flags;return $===void 0&&!("flags"in y)&&!d(T,"flags")&&h(y,T)?u(p,T):$}},function(x,b,r){var u=r(46);x.exports=function(){var d=u(this),h="";return d.hasIndices&&(h+="d"),d.global&&(h+="g"),d.ignoreCase&&(h+="i"),d.multiline&&(h+="m"),d.dotAll&&(h+="s"),d.unicode&&(h+="u"),d.unicodeSets&&(h+="v"),d.sticky&&(h+="y"),h}},function(x,b,r){var u=r(7),d=r(4),h=d.RegExp,p=u(function(){var $=h("a","y");return $.lastIndex=2,$.exec("abcd")!==null}),y=p||u(function(){return!h("a","y").sticky}),T=p||u(function(){var $=h("^r","gy");return $.lastIndex=2,$.exec("str")!==null});x.exports={BROKEN_CARET:T,MISSED_STICKY:y,UNSUPPORTED_Y:p}},function(x,b,r){var u=r(7),d=r(4),h=d.RegExp;x.exports=u(function(){var p=h(".","s");return!(p.dotAll&&p.test(` +`)&&p.flags==="s")})},function(x,b,r){var u=r(7),d=r(4),h=d.RegExp;x.exports=u(function(){var p=h("(?b)","g");return p.exec("b").groups.a!=="b"||"b".replace(p,"$c")!=="bc"})},function(x,b,r){var u=r(3),d=r(14),h=r(414),p=r(38),y=r(243).start,T=r(310),$=Array,A=RegExp.escape,E=d("".charAt),R=d("".charCodeAt),I=d(1.1.toString),O=d([].join),C=/^[0-9a-z]/i,D=/^[$()*+./?[\\\]^{|}]/,M=RegExp("^[!\"#%&',\\-:;<=>@`~"+T+"]"),F=d(C.exec),z={" ":"t","\n":"n","\v":"v","\f":"f","\r":"r"},U=function(G){var B=I(R(G,0),16);return B.length<3?"\\x"+y(B,2,"0"):"\\u"+y(B,4,"0")},j=!A||A("ab")!=="\\x61b";u({target:"RegExp",stat:!0,forced:j},{escape:function(B){h(B);for(var V=B.length,Y=$(V),Z=0;Z=56320||Z+1>=V||(R(B,Z+1)&64512)!==56320?Y[Z]=U(J):(Y[Z]=J,Y[++Z]=E(B,Z))}}return O(Y,"")}})},function(x){var b=TypeError;x.exports=function(r){if(typeof r=="string")return r;throw new b("Argument is not a string")}},function(x,b,r){var u=r(6),d=r(411),h=r(15),p=r(77),y=r(51).get,T=RegExp.prototype,$=TypeError;u&&d&&p(T,"dotAll",{configurable:!0,get:function(){if(this!==T){if(h(this)==="RegExp")return!!y(this).dotAll;throw new $("Incompatible receiver, RegExp required")}}})},function(x,b,r){var u=r(3),d=r(417);u({target:"RegExp",proto:!0,forced:/./.exec!==d},{exec:d})},function(x,b,r){var u=r(8),d=r(14),h=r(68),p=r(409),y=r(410),T=r(34),$=r(71),A=r(51).get,E=r(411),R=r(412),I=T("native-string-replace",String.prototype.replace),O=RegExp.prototype.exec,C=O,D=d("".charAt),M=d("".indexOf),F=d("".replace),z=d("".slice),U=function(){var V=/a/,Y=/b*/g;return u(O,V,"a"),u(O,Y,"a"),V.lastIndex!==0||Y.lastIndex!==0}(),j=y.BROKEN_CARET,G=/()??/.exec("")[1]!==void 0,B=U||G||j||E||R;B&&(C=function(Y){var Z=this,J=A(Z),q=h(Y),nt=J.raw,rt,_,tt,et,lt,mt,gt;if(nt)return nt.lastIndex=Z.lastIndex,rt=u(C,nt,q),Z.lastIndex=nt.lastIndex,rt;var xt=J.groups,yt=j&&Z.sticky,Ut=u(p,Z),Dt=Z.source,Xt=0,Qt=q;if(yt&&(Ut=F(Ut,"y",""),M(Ut,"g")===-1&&(Ut+="g"),Qt=z(q,Z.lastIndex),Z.lastIndex>0&&(!Z.multiline||Z.multiline&&D(q,Z.lastIndex-1)!==` +`)&&(Dt="(?: "+Dt+")",Qt=" "+Qt,Xt++),_=new RegExp("^(?:"+Dt+")",Ut)),G&&(_=new RegExp("^"+Dt+"$(?!\\s)",Ut)),U&&(tt=Z.lastIndex),et=u(O,yt?_:Z,Qt),yt?et?(et.input=z(et.input,Xt),et[0]=z(et[0],Xt),et.index=Z.lastIndex,Z.lastIndex+=et[0].length):Z.lastIndex=0:U&&et&&(Z.lastIndex=Z.global?et.index+et[0].length:tt),G&&et&&et.length>1&&u(I,et[0],_,function(){for(lt=1;ltC.size?T(C.getIterator(),function(M){E(O,M)&&A(D,M)}):y(O,function(M){C.includes(M)&&A(D,M)}),D}},function(x,b,r){var u=r(3),d=r(437),h=r(433),p=!h("isDisjointFrom",function(y){return!y});u({target:"Set",proto:!0,real:!0,forced:p},{isDisjointFrom:d})},function(x,b,r){var u=r(426),d=r(427).has,h=r(431),p=r(432),y=r(429),T=r(430),$=r(135);x.exports=function(E){var R=u(this),I=p(E);if(h(R)<=I.size)return y(R,function(C){if(I.includes(C))return!1},!0)!==!1;var O=I.getIterator();return T(O,function(C){if(d(R,C))return $(O,"normal",!1)})!==!1}},function(x,b,r){var u=r(3),d=r(439),h=r(433),p=!h("isSubsetOf",function(y){return y});u({target:"Set",proto:!0,real:!0,forced:p},{isSubsetOf:d})},function(x,b,r){var u=r(426),d=r(431),h=r(429),p=r(432);x.exports=function(T){var $=u(this),A=p(T);return d($)>A.size?!1:h($,function(E){if(!A.includes(E))return!1},!0)!==!1}},function(x,b,r){var u=r(3),d=r(441),h=r(433),p=!h("isSupersetOf",function(y){return!y});u({target:"Set",proto:!0,real:!0,forced:p},{isSupersetOf:d})},function(x,b,r){var u=r(426),d=r(427).has,h=r(431),p=r(432),y=r(430),T=r(135);x.exports=function(A){var E=u(this),R=p(A);if(h(E)=0?C:O+C;return D<0||D>=O?void 0:$(I,D)}})},function(x,b,r){var u=r(3),d=r(448).codeAt;u({target:"String",proto:!0},{codePointAt:function(p){return d(this,p)}})},function(x,b,r){var u=r(14),d=r(61),h=r(68),p=r(16),y=u("".charAt),T=u("".charCodeAt),$=u("".slice),A=function(E){return function(R,I){var O=h(p(R)),C=d(I),D=O.length,M,F;return C<0||C>=D?E?"":void 0:(M=T(O,C),M<55296||M>56319||C+1===D||(F=T(O,C+1))<56320||F>57343?E?y(O,C):M:E?$(O,C,C+2):(M-55296<<10)+(F-56320)+65536)}};x.exports={codeAt:A(!1),charAt:A(!0)}},function(x,b,r){var u=r(3),d=r(85),h=r(5).f,p=r(64),y=r(68),T=r(450),$=r(16),A=r(451),E=r(36),R=d("".slice),I=Math.min,O=A("endsWith"),C=!E&&!O&&!!function(){var D=h(String.prototype,"endsWith");return D&&!D.writable}();u({target:"String",proto:!0,forced:!C&&!O},{endsWith:function(M){var F=y($(this));T(M);var z=arguments.length>1?arguments[1]:void 0,U=F.length,j=z===void 0?U:I(p(z),U),G=y(M);return R(F,j-G.length,j)===G}})},function(x,b,r){var u=r(407),d=TypeError;x.exports=function(h){if(u(h))throw new d("The method doesn't accept regular expressions");return h}},function(x,b,r){var u=r(33),d=u("match");x.exports=function(h){var p=/./;try{"/./"[h](p)}catch(y){try{return p[d]=!1,"/./"[h](p)}catch(T){}}return!1}},function(x,b,r){var u=r(3),d=r(14),h=r(60),p=RangeError,y=String.fromCharCode,T=String.fromCodePoint,$=d([].join),A=!!T&&T.length!==1;u({target:"String",stat:!0,arity:1,forced:A},{fromCodePoint:function(R){for(var I=[],O=arguments.length,C=0,D;O>C;){if(D=+arguments[C++],h(D,1114111)!==D)throw new p(D+" is not a valid code point");I[C]=D<65536?y(D):y(((D-=65536)>>10)+55296,D%1024+56320)}return $(I,"")}})},function(x,b,r){var u=r(3),d=r(14),h=r(450),p=r(16),y=r(68),T=r(451),$=d("".indexOf);u({target:"String",proto:!0,forced:!T("includes")},{includes:function(E){return!!~$(y(p(this)),y(h(E)),arguments.length>1?arguments[1]:void 0)}})},function(x,b,r){var u=r(3),d=r(14),h=r(16),p=r(68),y=d("".charCodeAt);u({target:"String",proto:!0},{isWellFormed:function(){for(var $=p(h(this)),A=$.length,E=0;E=56320||++E>=A||(y($,E)&64512)!==56320))return!1}return!0}})},function(x,b,r){var u=r(448).charAt,d=r(68),h=r(51),p=r(169),y=r(172),T="String Iterator",$=h.set,A=h.getterFor(T);p(String,"String",function(E){$(this,{type:T,string:d(E),index:0})},function(){var R=A(this),I=R.string,O=R.index,C;return O>=I.length?y(void 0,!0):(C=u(I,O),R.index+=C.length,y(C,!1))})},function(x,b,r){var u=r(8),d=r(457),h=r(46),p=r(17),y=r(64),T=r(68),$=r(16),A=r(29),E=r(458),R=r(459);d("match",function(I,O,C){return[function(M){var F=$(this),z=p(M)?void 0:A(M,I);return z?u(z,M,F):new RegExp(M)[I](T(F))},function(D){var M=h(this),F=T(D),z=C(O,M,F);if(z.done)return z.value;if(!M.global)return R(M,F);var U=M.unicode;M.lastIndex=0;for(var j=[],G=0,B;(B=R(M,F))!==null;){var V=T(B[0]);j[G]=V,V===""&&(M.lastIndex=E(F,y(M.lastIndex),U)),G++}return G===0?null:j}]})},function(x,b,r){r(416);var u=r(8),d=r(47),h=r(417),p=r(7),y=r(33),T=r(43),$=y("species"),A=RegExp.prototype;x.exports=function(E,R,I,O){var C=y(E),D=!p(function(){var U={};return U[C]=function(){return 7},""[E](U)!==7}),M=D&&!p(function(){var U=!1,j=/a/;return E==="split"&&(j={},j.constructor={},j.constructor[$]=function(){return j},j.flags="",j[C]=/./[C]),j.exec=function(){return U=!0,null},j[C](""),!U});if(!D||!M||I){var F=/./[C],z=R(C,""[E],function(U,j,G,B,V){var Y=j.exec;return Y===h||Y===A.exec?D&&!V?{done:!0,value:u(F,j,G,B)}:{done:!0,value:u(U,G,j,B)}:{done:!1}});d(String.prototype,E,z[0]),d(A,C,z[1])}O&&T(A[C],"sham",!0)}},function(x,b,r){var u=r(448).charAt;x.exports=function(d,h,p){return h+(p?u(d,h).length:1)}},function(x,b,r){var u=r(8),d=r(46),h=r(21),p=r(15),y=r(417),T=TypeError;x.exports=function($,A){var E=$.exec;if(h(E)){var R=u(E,$,A);return R!==null&&d(R),R}if(p($)==="RegExp")return u(y,$,A);throw new T("RegExp#exec called on incompatible receiver")}},function(x,b,r){var u=r(3),d=r(8),h=r(85),p=r(170),y=r(172),T=r(16),$=r(64),A=r(68),E=r(46),R=r(17),I=r(15),O=r(407),C=r(408),D=r(29),M=r(47),F=r(7),z=r(33),U=r(364),j=r(458),G=r(459),B=r(51),V=r(36),Y=z("matchAll"),Z="RegExp String",J=Z+" Iterator",q=B.set,nt=B.getterFor(J),rt=RegExp.prototype,_=TypeError,tt=h("".indexOf),et=h("".matchAll),lt=!!et&&!F(function(){et("a",/./)}),mt=p(function(yt,Ut,Dt,Xt){q(this,{type:J,regexp:yt,string:Ut,global:Dt,unicode:Xt,done:!1})},Z,function(){var yt=nt(this);if(yt.done)return y(void 0,!0);var Ut=yt.regexp,Dt=yt.string,Xt=G(Ut,Dt);return Xt===null?(yt.done=!0,y(void 0,!0)):yt.global?(A(Xt[0])===""&&(Ut.lastIndex=j(Dt,$(Ut.lastIndex),yt.unicode)),y(Xt,!1)):(yt.done=!0,y(Xt,!1))}),gt=function(xt){var yt=E(this),Ut=A(xt),Dt=U(yt,RegExp),Xt=A(C(yt)),Qt,kt,me;return Qt=new Dt(Dt===RegExp?yt.source:yt,Xt),kt=!!~tt(Xt,"g"),me=!!~tt(Xt,"u"),Qt.lastIndex=$(yt.lastIndex),new mt(Qt,Ut,kt,me)};u({target:"String",proto:!0,forced:lt},{matchAll:function(yt){var Ut=T(this),Dt,Xt,Qt,kt;if(R(yt)){if(lt)return et(Ut,yt)}else{if(O(yt)&&(Dt=A(T(C(yt))),!~tt(Dt,"g")))throw new _("`.matchAll` does not allow non-global regexes");if(lt)return et(Ut,yt);if(Qt=D(yt,Y),Qt===void 0&&V&&I(yt)==="RegExp"&&(Qt=gt),Qt)return d(Qt,yt,Ut)}return Xt=A(Ut),kt=new RegExp(yt,"g"),V?d(gt,kt,Xt):kt[Y](Xt)}}),V||Y in rt||M(rt,Y,gt)},function(x,b,r){var u=r(3),d=r(243).end,h=r(462);u({target:"String",proto:!0,forced:h},{padEnd:function(y){return d(this,y,arguments.length>1?arguments[1]:void 0)}})},function(x,b,r){var u=r(28);x.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(u)},function(x,b,r){var u=r(3),d=r(243).start,h=r(462);u({target:"String",proto:!0,forced:h},{padStart:function(y){return d(this,y,arguments.length>1?arguments[1]:void 0)}})},function(x,b,r){var u=r(3),d=r(14),h=r(12),p=r(39),y=r(68),T=r(63),$=d([].push),A=d([].join);u({target:"String",stat:!0},{raw:function(R){var I=h(p(R).raw),O=T(I);if(!O)return"";for(var C=arguments.length,D=[],M=0;;){if($(D,y(I[M++])),M===O)return A(D,"");M")!=="7"});p("replace",function(_,tt,et){var lt=nt?"$":"$0";return[function(gt,xt){var yt=O(this),Ut=A(gt)?void 0:D(gt,U);return Ut?d(Ut,gt,yt,xt):d(tt,I(yt),gt,xt)},function(mt,gt){var xt=T(this),yt=I(mt);if(typeof gt=="string"&&Y(gt,lt)===-1&&Y(gt,"$<")===-1){var Ut=et(tt,xt,yt,gt);if(Ut.done)return Ut.value}var Dt=$(gt);Dt||(gt=I(gt));var Xt=xt.global,Qt;Xt&&(Qt=xt.unicode,xt.lastIndex=0);for(var kt=[],me;me=F(xt,yt),!(me===null||(V(kt,me),!Xt));){var ge=I(me[0]);ge===""&&(xt.lastIndex=C(yt,R(xt.lastIndex),Qt))}for(var ae="",Mt=0,Ht=0;Ht=Mt&&(ae+=Z(yt,Mt,se)+fe,Mt=se+re.length)}return ae+Z(yt,Mt)}]},!rt||!q||nt)},function(x,b,r){var u=r(14),d=r(39),h=Math.floor,p=u("".charAt),y=u("".replace),T=u("".slice),$=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,A=/\$([$&'`]|\d{1,2})/g;x.exports=function(E,R,I,O,C,D){var M=I+E.length,F=O.length,z=A;return C!==void 0&&(C=d(C),z=$),y(D,z,function(U,j){var G;switch(p(j,0)){case"$":return"$";case"&":return E;case"`":return T(R,0,I);case"'":return T(R,M);case"<":G=C[T(j,1,-1)];break;default:var B=+j;if(B===0)return U;if(B>F){var V=h(B/10);return V===0?U:V<=F?O[V-1]===void 0?p(j,1):O[V-1]+p(j,1):U}G=O[B-1]}return G===void 0?"":G})}},function(x,b,r){var u=r(3),d=r(8),h=r(14),p=r(16),y=r(21),T=r(17),$=r(407),A=r(68),E=r(29),R=r(408),I=r(467),O=r(33),C=r(36),D=O("replace"),M=TypeError,F=h("".indexOf),z=h("".replace),U=h("".slice),j=Math.max;u({target:"String",proto:!0},{replaceAll:function(B,V){var Y=p(this),Z,J,q,nt,rt,_,tt,et,lt,mt,gt=0,xt="";if(!T(B)){if(Z=$(B),Z&&(J=A(p(R(B))),!~F(J,"g")))throw new M("`.replaceAll` does not allow non-global regexes");if(q=E(B,D),q)return d(q,B,Y,V);if(C&&Z)return z(A(Y),B,V)}for(nt=A(Y),rt=A(B),_=y(V),_||(V=A(V)),tt=rt.length,et=j(1,tt),lt=F(nt,rt);lt!==-1;)mt=_?A(V(rt,lt,nt)):I(rt,nt,lt,[],void 0,V),xt+=U(nt,gt,lt)+mt,gt=lt+tt,lt=lt+et>nt.length?-1:F(nt,rt,lt+et);return gt1||"".split(/.?/).length;h("split",function(V,Y,Z){var J="0".split(void 0,0).length?function(q,nt){return q===void 0&&nt===0?[]:u(Y,this,q,nt)}:Y;return[function(nt,rt){var _=T(this),tt=y(nt)?void 0:I(nt,V);return tt?u(tt,nt,_,rt):u(J,R(_),nt,rt)},function(q,nt){var rt=p(this),_=R(q);if(!B){var tt=Z(J,rt,_,nt,J!==Y);if(tt.done)return tt.value}var et=$(rt,RegExp),lt=rt.unicode,mt=(rt.ignoreCase?"i":"")+(rt.multiline?"m":"")+(rt.unicode?"u":"")+(M?"g":"y"),gt=new et(M?"^(?:"+rt.source+")":rt,mt),xt=nt===void 0?F:nt>>>0;if(xt===0)return[];if(_.length===0)return O(gt,_)===null?[_]:[];for(var yt=0,Ut=0,Dt=[];Ut<_.length;){gt.lastIndex=M?0:Ut;var Xt=O(gt,M?j(_,Ut):_),Qt;if(Xt===null||(Qt=z(E(gt.lastIndex+(M?Ut:0)),_.length))===yt)Ut=A(_,Ut,lt);else{if(U(Dt,j(_,yt,Ut)),Dt.length===xt)return Dt;for(var kt=1;kt<=Xt.length-1;kt++)if(U(Dt,Xt[kt]),Dt.length===xt)return Dt;Ut=yt=Qt}}return U(Dt,j(_,yt)),Dt}]},B||!G,M)},function(x,b,r){var u=r(3),d=r(85),h=r(5).f,p=r(64),y=r(68),T=r(450),$=r(16),A=r(451),E=r(36),R=d("".slice),I=Math.min,O=A("startsWith"),C=!E&&!O&&!!function(){var D=h(String.prototype,"startsWith");return D&&!D.writable}();u({target:"String",proto:!0,forced:!C&&!O},{startsWith:function(M){var F=y($(this));T(M);var z=p(I(arguments.length>1?arguments[1]:void 0,F.length)),U=y(M);return R(F,z,z+U.length)===U}})},function(x,b,r){var u=r(3),d=r(14),h=r(16),p=r(61),y=r(68),T=d("".slice),$=Math.max,A=Math.min,E=!"".substr||"ab".substr(-1)!=="b";u({target:"String",proto:!0,forced:E},{substr:function(I,O){var C=y(h(this)),D=C.length,M=p(I),F,z;return M===1/0&&(M=0),M<0&&(M=$(D+M,0)),F=O===void 0?D:p(O),F<=0||F===1/0?"":(z=A(M+F,D),M>=z?"":T(C,M,z))}})},function(x,b,r){var u=r(3),d=r(8),h=r(14),p=r(16),y=r(68),T=r(7),$=Array,A=h("".charAt),E=h("".charCodeAt),R=h([].join),I="".toWellFormed,O="\uFFFD",C=I&&T(function(){return d(I,1)!=="1"});u({target:"String",proto:!0,forced:C},{toWellFormed:function(){var M=y(p(this));if(C)return d(I,M);for(var F=M.length,z=$(F),U=0;U=56320||U+1>=F||(E(M,U+1)&64512)!==56320?z[U]=O:(z[U]=A(M,U),z[++U]=A(M,U))}return R(z,"")}})},function(x,b,r){var u=r(3),d=r(309).trim,h=r(475);u({target:"String",proto:!0,forced:h("trim")},{trim:function(){return d(this)}})},function(x,b,r){var u=r(49).PROPER,d=r(7),h=r(310),p="\u200B\x85\u180E";x.exports=function(y){return d(function(){return!!h[y]()||p[y]()!==p||u&&h[y].name!==y})}},function(x,b,r){r(477);var u=r(3),d=r(478);u({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==d},{trimEnd:d})},function(x,b,r){var u=r(3),d=r(478);u({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==d},{trimRight:d})},function(x,b,r){var u=r(309).end,d=r(475);x.exports=d("trimEnd")?function(){return u(this)}:"".trimEnd},function(x,b,r){r(480);var u=r(3),d=r(481);u({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==d},{trimStart:d})},function(x,b,r){var u=r(3),d=r(481);u({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==d},{trimLeft:d})},function(x,b,r){var u=r(309).start,d=r(475);x.exports=d("trimStart")?function(){return u(this)}:"".trimStart},function(x,b,r){var u=r(3),d=r(483),h=r(484);u({target:"String",proto:!0,forced:h("anchor")},{anchor:function(y){return d(this,"a","name",y)}})},function(x,b,r){var u=r(14),d=r(16),h=r(68),p=/"/g,y=u("".replace);x.exports=function(T,$,A,E){var R=h(d(T)),I="<"+$;return A!==""&&(I+=" "+A+'="'+y(h(E),p,""")+'"'),I+">"+R+""}},function(x,b,r){var u=r(7);x.exports=function(d){return u(function(){var h=""[d]('"');return h!==h.toLowerCase()||h.split('"').length>3})}},function(x,b,r){var u=r(3),d=r(483),h=r(484);u({target:"String",proto:!0,forced:h("big")},{big:function(){return d(this,"big","","")}})},function(x,b,r){var u=r(3),d=r(483),h=r(484);u({target:"String",proto:!0,forced:h("blink")},{blink:function(){return d(this,"blink","","")}})},function(x,b,r){var u=r(3),d=r(483),h=r(484);u({target:"String",proto:!0,forced:h("bold")},{bold:function(){return d(this,"b","","")}})},function(x,b,r){var u=r(3),d=r(483),h=r(484);u({target:"String",proto:!0,forced:h("fixed")},{fixed:function(){return d(this,"tt","","")}})},function(x,b,r){var u=r(3),d=r(483),h=r(484);u({target:"String",proto:!0,forced:h("fontcolor")},{fontcolor:function(y){return d(this,"font","color",y)}})},function(x,b,r){var u=r(3),d=r(483),h=r(484);u({target:"String",proto:!0,forced:h("fontsize")},{fontsize:function(y){return d(this,"font","size",y)}})},function(x,b,r){var u=r(3),d=r(483),h=r(484);u({target:"String",proto:!0,forced:h("italics")},{italics:function(){return d(this,"i","","")}})},function(x,b,r){var u=r(3),d=r(483),h=r(484);u({target:"String",proto:!0,forced:h("link")},{link:function(y){return d(this,"a","href",y)}})},function(x,b,r){var u=r(3),d=r(483),h=r(484);u({target:"String",proto:!0,forced:h("small")},{small:function(){return d(this,"small","","")}})},function(x,b,r){var u=r(3),d=r(483),h=r(484);u({target:"String",proto:!0,forced:h("strike")},{strike:function(){return d(this,"strike","","")}})},function(x,b,r){var u=r(3),d=r(483),h=r(484);u({target:"String",proto:!0,forced:h("sub")},{sub:function(){return d(this,"sub","","")}})},function(x,b,r){var u=r(3),d=r(483),h=r(484);u({target:"String",proto:!0,forced:h("sup")},{sup:function(){return d(this,"sup","","")}})},function(x,b,r){var u=r(498);u("Float32",function(d){return function(p,y,T){return d(this,p,y,T)}})},function(x,b,r){var u=r(3),d=r(4),h=r(8),p=r(6),y=r(499),T=r(219),$=r(208),A=r(211),E=r(11),R=r(43),I=r(315),O=r(64),C=r(212),D=r(500),M=r(501),F=r(18),z=r(38),U=r(69),j=r(20),G=r(22),B=r(71),V=r(24),Y=r(113),Z=r(57).f,J=r(502),q=r(83).forEach,nt=r(194),rt=r(77),_=r(44),tt=r(5),et=r(199),lt=r(51),mt=r(118),gt=lt.get,xt=lt.set,yt=lt.enforce,Ut=_.f,Dt=tt.f,Xt=d.RangeError,Qt=$.ArrayBuffer,kt=Qt.prototype,me=$.DataView,ge=T.NATIVE_ARRAY_BUFFER_VIEWS,ae=T.TYPED_ARRAY_TAG,Mt=T.TypedArray,Ht=T.TypedArrayPrototype,re=T.isTypedArray,se="BYTES_PER_ELEMENT",ee="Wrong length",fe=function(Ae,Te){rt(Ae,Te,{configurable:!0,get:function(){return gt(this)[Te]}})},Pe=function(Ae){var Te;return V(kt,Ae)||(Te=U(Ae))==="ArrayBuffer"||Te==="SharedArrayBuffer"},Me=function(Ae,Te){return re(Ae)&&!G(Te)&&Te in Ae&&I(+Te)&&Te>=0},$e=function(Te,de){return de=F(de),Me(Te,de)?E(2,Te[de]):Dt(Te,de)},ce=function(Te,de,bt){return de=F(de),Me(Te,de)&&j(bt)&&z(bt,"value")&&!z(bt,"get")&&!z(bt,"set")&&!bt.configurable&&(!z(bt,"writable")||bt.writable)&&(!z(bt,"enumerable")||bt.enumerable)?(Te[de]=bt.value,Te):Ut(Te,de,bt)};p?(ge||(tt.f=$e,_.f=ce,fe(Ht,"buffer"),fe(Ht,"byteOffset"),fe(Ht,"byteLength"),fe(Ht,"length")),u({target:"Object",stat:!0,forced:!ge},{getOwnPropertyDescriptor:$e,defineProperty:ce}),x.exports=function(Ae,Te,de){var bt=Ae.match(/\d+/)[0]/8,Ft=Ae+(de?"Clamped":"")+"Array",Tt="get"+Ae,qt="set"+Ae,te=d[Ft],Zt=te,Yt=Zt&&Zt.prototype,Ye={},Ze=function(Ct,Nt){var Et=gt(Ct);return Et.view[Tt](Nt*bt+Et.byteOffset,!0)},ut=function(Ct,Nt,Et){var ie=gt(Ct);ie.view[qt](Nt*bt+ie.byteOffset,de?M(Et):Et,!0)},It=function(Ct,Nt){Ut(Ct,Nt,{get:function(){return Ze(this,Nt)},set:function(Et){return ut(this,Nt,Et)},enumerable:!0})};ge?y&&(Zt=Te(function(Ct,Nt,Et,ie){return A(Ct,Yt),mt(function(){return j(Nt)?Pe(Nt)?ie!==void 0?new te(Nt,D(Et,bt),ie):Et!==void 0?new te(Nt,D(Et,bt)):new te(Nt):re(Nt)?et(Zt,Nt):h(J,Zt,Nt):new te(C(Nt))}(),Ct,Zt)}),Y&&Y(Zt,Mt),q(Z(te),function(Ct){Ct in Zt||R(Zt,Ct,te[Ct])}),Zt.prototype=Yt):(Zt=Te(function(Ct,Nt,Et,ie){A(Ct,Yt);var we=0,Rt=0,zt,jt,Wt;if(!j(Nt))Wt=C(Nt),jt=Wt*bt,zt=new Qt(jt);else if(Pe(Nt)){zt=Nt,Rt=D(Et,bt);var ue=Nt.byteLength;if(ie===void 0){if(ue%bt)throw new Xt(ee);if(jt=ue-Rt,jt<0)throw new Xt(ee)}else if(jt=O(ie)*bt,jt+Rt>ue)throw new Xt(ee);Wt=jt/bt}else return re(Nt)?et(Zt,Nt):h(J,Zt,Nt);for(xt(Ct,{buffer:zt,byteOffset:Rt,byteLength:jt,length:Wt,view:new me(zt)});we255?255:u&255}},function(x,b,r){var u=r(84),d=r(8),h=r(365),p=r(39),y=r(63),T=r(133),$=r(134),A=r(131),E=r(503),R=r(219).aTypedArrayConstructor,I=r(504);x.exports=function(C){var D=h(this),M=p(C),F=arguments.length,z=F>1?arguments[1]:void 0,U=z!==void 0,j=$(M),G,B,V,Y,Z,J,q,nt;if(j&&!A(j))for(q=T(M,j),nt=q.next,M=[];!(J=d(nt,q)).done;)M.push(J.value);for(U&&F>2&&(z=u(z,arguments[2])),B=y(M),V=new(R(D))(B),Y=E(V),G=0;B>G;G++)Z=U?z(M[G],G):M[G],V[G]=Y?I(Z):+Z;return V}},function(x,b,r){var u=r(69);x.exports=function(d){var h=u(d);return h==="BigInt64Array"||h==="BigUint64Array"}},function(x,b,r){var u=r(19),d=TypeError;x.exports=function(h){var p=u(h,"number");if(typeof p=="number")throw new d("Can't convert number to bigint");return BigInt(p)}},function(x,b,r){var u=r(498);u("Float64",function(d){return function(p,y,T){return d(this,p,y,T)}})},function(x,b,r){var u=r(498);u("Int8",function(d){return function(p,y,T){return d(this,p,y,T)}})},function(x,b,r){var u=r(498);u("Int16",function(d){return function(p,y,T){return d(this,p,y,T)}})},function(x,b,r){var u=r(498);u("Int32",function(d){return function(p,y,T){return d(this,p,y,T)}})},function(x,b,r){var u=r(498);u("Uint8",function(d){return function(p,y,T){return d(this,p,y,T)}})},function(x,b,r){var u=r(498);u("Uint8",function(d){return function(p,y,T){return d(this,p,y,T)}},!0)},function(x,b,r){var u=r(498);u("Uint16",function(d){return function(p,y,T){return d(this,p,y,T)}})},function(x,b,r){var u=r(498);u("Uint32",function(d){return function(p,y,T){return d(this,p,y,T)}})},function(x,b,r){var u=r(219),d=r(63),h=r(61),p=u.aTypedArray,y=u.exportTypedArrayMethod;y("at",function($){var A=p(this),E=d(A),R=h($),I=R>=0?R:E+R;return I<0||I>=E?void 0:A[I]})},function(x,b,r){var u=r(14),d=r(219),h=r(144),p=u(h),y=d.aTypedArray,T=d.exportTypedArrayMethod;T("copyWithin",function(A,E){return p(y(this),A,E,arguments.length>2?arguments[2]:void 0)})},function(x,b,r){var u=r(219),d=r(83).every,h=u.aTypedArray,p=u.exportTypedArrayMethod;p("every",function(T){return d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,b,r){var u=r(219),d=r(149),h=r(504),p=r(69),y=r(8),T=r(14),$=r(7),A=u.aTypedArray,E=u.exportTypedArrayMethod,R=T("".slice),I=$(function(){var O=0;return new Int8Array(2).fill({valueOf:function(){return O++}}),O!==1});E("fill",function(C){var D=arguments.length;A(this);var M=R(p(this),0,3)==="Big"?h(C):+C;return y(d,this,M,D>1?arguments[1]:void 0,D>2?arguments[2]:void 0)},I)},function(x,b,r){var u=r(219),d=r(83).filter,h=r(518),p=u.aTypedArray,y=u.exportTypedArrayMethod;y("filter",function($){var A=d(p(this),$,arguments.length>1?arguments[1]:void 0);return h(this,A)})},function(x,b,r){var u=r(199),d=r(219).getTypedArrayConstructor;x.exports=function(h,p){return u(d(h),p)}},function(x,b,r){var u=r(219),d=r(83).find,h=u.aTypedArray,p=u.exportTypedArrayMethod;p("find",function(T){return d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,b,r){var u=r(219),d=r(83).findIndex,h=u.aTypedArray,p=u.exportTypedArrayMethod;p("findIndex",function(T){return d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,b,r){var u=r(219),d=r(154).findLast,h=u.aTypedArray,p=u.exportTypedArrayMethod;p("findLast",function(T){return d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,b,r){var u=r(219),d=r(154).findLastIndex,h=u.aTypedArray,p=u.exportTypedArrayMethod;p("findLastIndex",function(T){return d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,b,r){var u=r(219),d=r(83).forEach,h=u.aTypedArray,p=u.exportTypedArrayMethod;p("forEach",function(T){d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,b,r){var u=r(499),d=r(219).exportTypedArrayStaticMethod,h=r(502);d("from",h,u)},function(x,b,r){var u=r(219),d=r(59).includes,h=u.aTypedArray,p=u.exportTypedArrayMethod;p("includes",function(T){return d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,b,r){var u=r(219),d=r(59).indexOf,h=u.aTypedArray,p=u.exportTypedArrayMethod;p("indexOf",function(T){return d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,b,r){var u=r(4),d=r(7),h=r(14),p=r(219),y=r(168),T=r(33),$=T("iterator"),A=u.Uint8Array,E=h(y.values),R=h(y.keys),I=h(y.entries),O=p.aTypedArray,C=p.exportTypedArrayMethod,D=A&&A.prototype,M=!d(function(){D[$].call([1])}),F=!!D&&D.values&&D[$]===D.values&&D.values.name==="values",z=function(){return E(O(this))};C("entries",function(){return I(O(this))},M),C("keys",function(){return R(O(this))},M),C("values",z,M||!F,{name:"values"}),C($,z,M||!F,{name:"values"})},function(x,b,r){var u=r(219),d=r(14),h=u.aTypedArray,p=u.exportTypedArrayMethod,y=d([].join);p("join",function($){return y(h(this),$)})},function(x,b,r){var u=r(219),d=r(94),h=r(175),p=u.aTypedArray,y=u.exportTypedArrayMethod;y("lastIndexOf",function($){var A=arguments.length;return d(h,p(this),A>1?[$,arguments[1]]:[$])})},function(x,b,r){var u=r(219),d=r(83).map,h=u.aTypedArray,p=u.getTypedArrayConstructor,y=u.exportTypedArrayMethod;y("map",function($){return d(h(this),$,arguments.length>1?arguments[1]:void 0,function(A,E){return new(p(A))(E)})})},function(x,b,r){var u=r(219),d=r(499),h=u.aTypedArrayConstructor,p=u.exportTypedArrayStaticMethod;p("of",function(){for(var T=0,$=arguments.length,A=new(h(this))($);$>T;)A[T]=arguments[T++];return A},d)},function(x,b,r){var u=r(219),d=r(181).left,h=u.aTypedArray,p=u.exportTypedArrayMethod;p("reduce",function(T){var $=arguments.length;return d(h(this),T,$,$>1?arguments[1]:void 0)})},function(x,b,r){var u=r(219),d=r(181).right,h=u.aTypedArray,p=u.exportTypedArrayMethod;p("reduceRight",function(T){var $=arguments.length;return d(h(this),T,$,$>1?arguments[1]:void 0)})},function(x,b,r){var u=r(219),d=u.aTypedArray,h=u.exportTypedArrayMethod,p=Math.floor;h("reverse",function(){for(var T=this,$=d(T).length,A=p($/2),E=0,R;E1?arguments[1]:void 0,1),j=T(z);if(D)return d(I,this,j,U);var G=this.length,B=p(j),V=0;if(B+U>G)throw new A("Wrong length");for(;VC;)M[C]=I[C++];return M},$)},function(x,b,r){var u=r(219),d=r(83).some,h=u.aTypedArray,p=u.exportTypedArrayMethod;p("some",function(T){return d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,b,r){var u=r(4),d=r(85),h=r(7),p=r(30),y=r(189),T=r(219),$=r(190),A=r(191),E=r(27),R=r(192),I=T.aTypedArray,O=T.exportTypedArrayMethod,C=u.Uint16Array,D=C&&d(C.prototype.sort),M=!!D&&!(h(function(){D(new C(2),null)})&&h(function(){D(new C(2),{})})),F=!!D&&!h(function(){if(E)return E<74;if($)return $<67;if(A)return!0;if(R)return R<602;var U=new C(516),j=Array(516),G,B;for(G=0;G<516;G++)B=G%4,U[G]=515-G,j[G]=G-2*B+3;for(D(U,function(V,Y){return(V/4|0)-(Y/4|0)}),G=0;G<516;G++)if(U[G]!==j[G])return!0}),z=function(U){return function(j,G){return U!==void 0?+U(j,G)||0:G!==G?-1:j!==j?1:j===0&&G===0?1/j>0&&1/G<0?1:-1:j>G}};O("sort",function(j){return j!==void 0&&p(j),F?D(this,j):y(I(this),z(j))},!F||M)},function(x,b,r){var u=r(219),d=r(64),h=r(60),p=u.aTypedArray,y=u.getTypedArrayConstructor,T=u.exportTypedArrayMethod;T("subarray",function(A,E){var R=p(this),I=R.length,O=h(A,I),C=y(R);return new C(R.buffer,R.byteOffset+O*R.BYTES_PER_ELEMENT,d((E===void 0?I:h(E,I))-O))})},function(x,b,r){var u=r(4),d=r(94),h=r(219),p=r(7),y=r(76),T=u.Int8Array,$=h.aTypedArray,A=h.exportTypedArrayMethod,E=[].toLocaleString,R=!!T&&p(function(){E.call(new T(1))}),I=p(function(){return[1,2].toLocaleString()!==new T([1,2]).toLocaleString()})||!p(function(){T.prototype.toLocaleString.call([1,2])});A("toLocaleString",function(){return d(E,R?y($(this)):$(this),y(arguments))},I)},function(x,b,r){var u=r(197),d=r(219),h=d.aTypedArray,p=d.exportTypedArrayMethod,y=d.getTypedArrayConstructor;p("toReversed",function(){return u(h(this),y(this))})},function(x,b,r){var u=r(219),d=r(14),h=r(30),p=r(199),y=u.aTypedArray,T=u.getTypedArrayConstructor,$=u.exportTypedArrayMethod,A=d(u.TypedArrayPrototype.sort);$("toSorted",function(R){R!==void 0&&h(R);var I=y(this),O=p(T(I),I);return A(O,R)})},function(x,b,r){var u=r(219).exportTypedArrayMethod,d=r(7),h=r(4),p=r(14),y=h.Uint8Array,T=y&&y.prototype||{},$=[].toString,A=p([].join);d(function(){$.call({})})&&($=function(){return A(this)});var E=T.toString!==$;u("toString",$,E)},function(x,b,r){var u=r(206),d=r(219),h=r(503),p=r(61),y=r(504),T=d.aTypedArray,$=d.getTypedArrayConstructor,A=d.exportTypedArrayMethod,E=!!function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(R){return R===8}}();A("with",function(R,I){var O=T(this),C=p(R),D=h(O)?y(I):+I;return u(O,$(O),C,D)},!E)},function(x,b,r){var u=r(3),d=r(14),h=r(68),p=String.fromCharCode,y=d("".charAt),T=d(/./.exec),$=d("".slice),A=/^[\da-f]{2}$/i,E=/^[\da-f]{4}$/i;u({global:!0},{unescape:function(I){for(var O=h(I),C="",D=O.length,M=0,F,z;M>(-2*_&6)));return nt}})},function(x){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=b+"+/",u=b+"-_",d=function(h){for(var p={},y=0;y<64;y++)p[h.charAt(y)]=y;return p};x.exports={i2c:r,c2i:d(r),i2cUrl:u,c2iUrl:d(u)}},function(x,b,r){var u=r(3),d=r(4),h=r(23),p=r(14),y=r(8),T=r(7),$=r(68),A=r(367),E=r(552).i2c,R=h("btoa"),I=p("".charAt),O=p("".charCodeAt),C=!!R&&!T(function(){return R("hi")!=="aGk="}),D=C&&!T(function(){R()}),M=C&&T(function(){return R(null)!=="bnVsbA=="}),F=C&&R.length!==1;u({global:!0,bind:!0,enumerable:!0,forced:!C||D||M||F},{btoa:function(U){if(A(arguments.length,1),C)return y(R,d,$(U));for(var j=$(U),G="",B=0,V=E,Y,Z;I(j,B)||(V="=",B%1);){if(Z=O(j,B+=.75),Z>255)throw new(h("DOMException"))("The string contains characters outside of the Latin1 range","InvalidCharacterError");Y=Y<<8|Z,G+=I(V,63&Y>>8-B%1*8)}return G}})},function(x,b,r){var u=r(4),d=r(555),h=r(556),p=r(160),y=r(43),T=function(A){if(A&&A.forEach!==p)try{y(A,"forEach",p)}catch(E){A.forEach=p}};for(var $ in d)d[$]&&T(u[$]&&u[$].prototype);T(h)},function(x){x.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(x,b,r){var u=r(42),d=u("span").classList,h=d&&d.constructor&&d.constructor.prototype;x.exports=h===Object.prototype?void 0:h},function(x,b,r){var u=r(4),d=r(555),h=r(556),p=r(168),y=r(43),T=r(82),$=r(33),A=$("iterator"),E=p.values,R=function(O,C){if(O){if(O[A]!==E)try{y(O,A,E)}catch(M){O[A]=E}if(T(O,C,!0),d[C]){for(var D in p)if(O[D]!==p[D])try{y(O,D,p[D])}catch(M){O[D]=p[D]}}}};for(var I in d)R(u[I]&&u[I].prototype,I);R(h,"DOMTokenList")},function(x,b,r){var u=r(3),d=r(23),h=r(234),p=r(7),y=r(71),T=r(11),$=r(44).f,A=r(47),E=r(77),R=r(38),I=r(211),O=r(46),C=r(125),D=r(119),M=r(559),F=r(122),z=r(51),U=r(6),j=r(36),G="DOMException",B="DATA_CLONE_ERR",V=d("Error"),Y=d(G)||function(){try{var Mt=d("MessageChannel")||h("worker_threads").MessageChannel;new Mt().port1.postMessage(new WeakMap)}catch(Ht){if(Ht.name===B&&Ht.code===25)return Ht.constructor}}(),Z=Y&&Y.prototype,J=V.prototype,q=z.set,nt=z.getterFor(G),rt="stack"in new V(G),_=function(Mt){return R(M,Mt)&&M[Mt].m?M[Mt].c:0},tt=function(){I(this,et);var Ht=arguments.length,re=D(Ht<1?void 0:arguments[0]),se=D(Ht<2?void 0:arguments[1],"Error"),ee=_(se);if(q(this,{type:G,name:se,message:re,code:ee}),U||(this.name=se,this.message=re,this.code=ee),rt){var fe=new V(re);fe.name=G,$(this,"stack",T(1,F(fe.stack,1)))}},et=tt.prototype=y(J),lt=function(Mt){return{enumerable:!0,configurable:!0,get:Mt}},mt=function(Mt){return lt(function(){return nt(this)[Mt]})};U&&(E(et,"code",mt("code")),E(et,"message",mt("message")),E(et,"name",mt("name"))),$(et,"constructor",T(1,tt));var gt=p(function(){return!(new Y instanceof V)}),xt=gt||p(function(){return J.toString!==C||String(new Y(1,2))!=="2: 1"}),yt=gt||p(function(){return new Y(1,"DataCloneError").code!==25}),Ut=gt||Y[B]!==25||Z[B]!==25,Dt=j?xt||yt||Ut:gt;u({global:!0,constructor:!0,forced:Dt},{DOMException:Dt?tt:Y});var Xt=d(G),Qt=Xt.prototype;xt&&(j||Y===Xt)&&A(Qt,"toString",C),yt&&U&&Y===Xt&&E(Qt,"code",lt(function(){return _(O(this).name)}));for(var kt in M)if(R(M,kt)){var me=M[kt],ge=me.s,ae=T(6,me.c);R(Xt,ge)||$(Xt,ge,ae),R(Qt,ge)||$(Qt,ge,ae)}},function(x){x.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},function(x,b,r){var u=r(3),d=r(4),h=r(23),p=r(11),y=r(44).f,T=r(38),$=r(211),A=r(118),E=r(119),R=r(559),I=r(122),O=r(6),C=r(36),D="DOMException",M=h("Error"),F=h(D),z=function(){$(this,U);var tt=arguments.length,et=E(tt<1?void 0:arguments[0]),lt=E(tt<2?void 0:arguments[1],"Error"),mt=new F(et,lt),gt=new M(et);return gt.name=D,y(mt,"stack",p(1,I(gt.stack,1))),A(mt,this,z),mt},U=z.prototype=F.prototype,j="stack"in new M(D),G="stack"in new F(1,2),B=F&&O&&Object.getOwnPropertyDescriptor(d,D),V=!!B&&!(B.writable&&B.configurable),Y=j&&!V&&!G;u({global:!0,constructor:!0,forced:C||Y},{DOMException:Y?z:F});var Z=h(D),J=Z.prototype;if(J.constructor!==Z){C||y(J,"constructor",p(1,Z));for(var q in R)if(T(R,q)){var nt=R[q],rt=nt.s;T(Z,rt)||y(Z,rt,p(6,nt.c))}}},function(x,b,r){var u=r(23),d=r(82),h="DOMException";d(u(h),h)},function(x,b,r){r(563),r(564)},function(x,b,r){var u=r(3),d=r(4),h=r(366).clear;u({global:!0,bind:!0,enumerable:!0,forced:d.clearImmediate!==h},{clearImmediate:h})},function(x,b,r){var u=r(3),d=r(4),h=r(366).set,p=r(565),y=d.setImmediate?p(h,!1):h;u({global:!0,bind:!0,enumerable:!0,forced:d.setImmediate!==y},{setImmediate:y})},function(x,b,r){var u=r(4),d=r(94),h=r(21),p=r(183),y=r(28),T=r(76),$=r(367),A=u.Function,E=/MSIE .\./.test(y)||p==="BUN"&&function(){var R=u.Bun.version.split(".");return R.length<3||R[0]==="0"&&(R[1]<3||R[1]==="3"&&R[2]==="0")}();x.exports=function(R,I){var O=I?2:1;return E?function(C,D){var M=$(arguments.length,1)>O,F=h(C)?C:A(C),z=M?T(arguments,O):[],U=M?function(){d(F,this,z)}:F;return I?R(U,D):R(U)}:R}},function(x,b,r){var u=r(3),d=r(4),h=r(369),p=r(30),y=r(367),T=r(7),$=r(6),A=T(function(){return $&&Object.getOwnPropertyDescriptor(d,"queueMicrotask").value.length!==1});u({global:!0,enumerable:!0,dontCallGetSet:!0,forced:A},{queueMicrotask:function(R){y(arguments.length,1),h(p(R))}})},function(x,b,r){var u=r(3),d=r(4),h=r(77),p=r(6),y=TypeError,T=Object.defineProperty,$=d.self!==d;try{if(p){var A=Object.getOwnPropertyDescriptor(d,"self");($||!A||!A.get||!A.enumerable)&&h(d,"self",{get:function(){return d},set:function(R){if(this!==d)throw new y("Illegal invocation");T(d,"self",{value:R,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})}else u({global:!0,simple:!0,forced:$},{self:d})}catch(E){}},function(x,b,r){var u=r(36),d=r(3),h=r(4),p=r(23),y=r(14),T=r(7),$=r(40),A=r(21),E=r(89),R=r(17),I=r(20),O=r(22),C=r(130),D=r(46),M=r(69),F=r(38),z=r(141),U=r(43),j=r(63),G=r(367),B=r(408),V=r(284),Y=r(427),Z=r(429),J=r(233),q=r(123),nt=r(235),rt=h.Object,_=h.Array,tt=h.Date,et=h.Error,lt=h.TypeError,mt=h.PerformanceMark,gt=p("DOMException"),xt=V.Map,yt=V.has,Ut=V.get,Dt=V.set,Xt=Y.Set,Qt=Y.add,kt=Y.has,me=p("Object","keys"),ge=y([].push),ae=y((!0).valueOf),Mt=y(1 .valueOf),Ht=y("".valueOf),re=y(tt.prototype.getTime),se=$("structuredClone"),ee="DataCloneError",fe="Transferring",Pe=function(ut){return!T(function(){var It=new h.Set([7]),Pt=ut(It),Ct=ut(rt(7));return Pt===It||!Pt.has(7)||!I(Ct)||+Ct!=7})&&ut},Me=function(ut,It){return!T(function(){var Pt=new It,Ct=ut({a:Pt,b:Pt});return!(Ct&&Ct.a===Ct.b&&Ct.a instanceof It&&Ct.a.stack===Pt.stack)})},$e=function(ut){return!T(function(){var It=ut(new h.AggregateError([1],se,{cause:3}));return It.name!=="AggregateError"||It.errors[0]!==1||It.message!==se||It.cause!==3})},ce=h.structuredClone,Ae=u||!Me(ce,et)||!Me(ce,gt)||!$e(ce),Te=!ce&&Pe(function(ut){return new mt(se,{detail:ut}).detail}),de=Pe(ce)||Te,bt=function(ut){throw new gt("Uncloneable type: "+ut,ee)},Ft=function(ut,It){throw new gt((It||"Cloning")+" of "+ut+" cannot be properly polyfilled in this engine",ee)},Tt=function(ut,It){return de||Ft(It),de(ut)},qt=function(){var ut;try{ut=new h.DataTransfer}catch(It){try{ut=new h.ClipboardEvent("").clipboardData}catch(Pt){}}return ut&&ut.items&&ut.files?ut:null},te=function(ut,It,Pt){if(yt(It,ut))return Ut(It,ut);var Ct=Pt||M(ut),Nt,Et,ie,we,Rt,zt;if(Ct==="SharedArrayBuffer")de?Nt=de(ut):Nt=ut;else{var jt=h.DataView;!jt&&!A(ut.slice)&&Ft("ArrayBuffer");try{if(A(ut.slice)&&!ut.resizable)Nt=ut.slice(0);else for(Et=ut.byteLength,ie=("maxByteLength"in ut)?{maxByteLength:ut.maxByteLength}:void 0,Nt=new ArrayBuffer(Et,ie),we=new jt(ut),Rt=new jt(Nt),zt=0;zt1&&!R(arguments[1])?D(arguments[1]):void 0,Ct=Pt?Pt.transfer:void 0,Nt,Et;Ct!==void 0&&(Nt=new xt,Et=Ye(Ct,Nt));var ie=Yt(It,Nt);return Et&&Ze(Et),ie}})},function(x,b,r){r(570),r(571)},function(x,b,r){var u=r(3),d=r(4),h=r(565),p=h(d.setInterval,!0);u({global:!0,bind:!0,forced:d.setInterval!==p},{setInterval:p})},function(x,b,r){var u=r(3),d=r(4),h=r(565),p=h(d.setTimeout,!0);u({global:!0,bind:!0,forced:d.setTimeout!==p},{setTimeout:p})},function(x,b,r){r(573)},function(x,b,r){r(455);var u=r(3),d=r(6),h=r(574),p=r(4),y=r(84),T=r(14),$=r(47),A=r(77),E=r(211),R=r(38),I=r(328),O=r(162),C=r(76),D=r(448).codeAt,M=r(575),F=r(68),z=r(82),U=r(367),j=r(576),G=r(51),B=G.set,V=G.getterFor("URL"),Y=j.URLSearchParams,Z=j.getState,J=p.URL,q=p.TypeError,nt=p.parseInt,rt=Math.floor,_=Math.pow,tt=T("".charAt),et=T(/./.exec),lt=T([].join),mt=T(1 .toString),gt=T([].pop),xt=T([].push),yt=T("".replace),Ut=T([].shift),Dt=T("".split),Xt=T("".slice),Qt=T("".toLowerCase),kt=T([].unshift),me="Invalid authority",ge="Invalid scheme",ae="Invalid host",Mt="Invalid port",Ht=/[a-z]/i,re=/[\d+-.a-z]/i,se=/\d/,ee=/^0x/i,fe=/^[0-7]+$/,Pe=/^\d+$/,Me=/^[\da-f]+$/i,$e=/[\0\t\n\r #%/:<>?@[\\\]^|]/,ce=/[\0\t\n\r #/:<>?@[\\\]^|]/,Ae=/^[\u0000-\u0020]+/,Te=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,de=/[\t\n\r]/g,bt,Ft=function(ft){var wt=Dt(ft,"."),pt,it,Ot,ye,_t,Ie,rn;if(wt.length&&wt[wt.length-1]===""&&wt.length--,pt=wt.length,pt>4)return ft;for(it=[],Ot=0;Ot1&&tt(ye,0)==="0"&&(_t=et(ee,ye)?16:8,ye=Xt(ye,_t===8?1:2)),ye==="")Ie=0;else{if(!et(_t===10?Pe:_t===8?fe:Me,ye))return ft;Ie=nt(ye,_t)}xt(it,Ie)}for(Ot=0;Ot=_(256,5-pt))return null}else if(Ie>255)return null;for(rn=gt(it),Ot=0;Ot6))return;for(Ie=0;an();){if(rn=null,Ie>0)if(an()==="."&&Ie<4)Ot++;else return;if(!et(se,an()))return;for(;et(se,an());){if(hn=nt(an(),10),rn===null)rn=hn;else{if(rn===0)return;rn=rn*10+hn}if(rn>255)return;Ot++}wt[pt]=wt[pt]*256+rn,Ie++,(Ie===2||Ie===4)&&pt++}if(Ie!==4)return;break}else if(an()===":"){if(Ot++,!an())return}else if(an())return;wt[pt++]=ye}if(it!==null)for(pn=pt-it,pt=7;pt!==0&&pn>0;)ot=wt[pt],wt[pt--]=wt[it+pn-1],wt[it+--pn]=ot;else if(pt!==8)return;return wt},qt=function(ft){for(var wt=null,pt=1,it=null,Ot=0,ye=0;ye<8;ye++)ft[ye]!==0?(Ot>pt&&(wt=it,pt=Ot),it=null,Ot=0):(it===null&&(it=ye),++Ot);return Ot>pt?it:wt},te=function(ft){var wt,pt,it,Ot;if(typeof ft=="number"){for(wt=[],pt=0;pt<4;pt++)kt(wt,ft%256),ft=rt(ft/256);return lt(wt,".")}if(typeof ft=="object"){for(wt="",it=qt(ft),pt=0;pt<8;pt++)Ot&&ft[pt]===0||(Ot&&(Ot=!1),it===pt?(wt+=pt?":":"::",Ot=!0):(wt+=mt(ft[pt],16),pt<7&&(wt+=":")));return"["+wt+"]"}return ft},Zt={},Yt=I({},Zt,{" ":1,'"':1,"<":1,">":1,"`":1}),Ye=I({},Yt,{"#":1,"?":1,"{":1,"}":1}),Ze=I({},Ye,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),ut=function(ft,wt){var pt=D(ft,0);return pt>32&&pt<127&&!R(wt,ft)?ft:encodeURIComponent(ft)},It={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Pt=function(ft,wt){var pt;return ft.length===2&&et(Ht,tt(ft,0))&&((pt=tt(ft,1))===":"||!wt&&pt==="|")},Ct=function(ft){var wt;return ft.length>1&&Pt(Xt(ft,0,2))&&(ft.length===2||(wt=tt(ft,2))==="/"||wt==="\\"||wt==="?"||wt==="#")},Nt=function(ft){return ft==="."||Qt(ft)==="%2e"},Et=function(ft){return ft=Qt(ft),ft===".."||ft==="%2e."||ft===".%2e"||ft==="%2e%2e"},ie={},we={},Rt={},zt={},jt={},Wt={},ue={},Ee={},Xe={},Je={},nn={},vn={},jn={},Hr={},Ya={},ga={},yr={},Vn={},Wa={},ir={},Wn={},va=function(ft,wt,pt){var it=F(ft),Ot,ye,_t;if(wt){if(ye=this.parse(it),ye)throw new q(ye);this.searchParams=null}else{if(pt!==void 0&&(Ot=new va(pt,!0)),ye=this.parse(it,null,Ot),ye)throw new q(ye);_t=Z(new Y),_t.bindURL(this),this.searchParams=_t}};va.prototype={type:"URL",parse:function(ft,wt,pt){var it=this,Ot=wt||ie,ye=0,_t="",Ie=!1,rn=!1,hn=!1,pn,ot,an,Fn;for(ft=F(ft),wt||(it.scheme="",it.username="",it.password="",it.host=null,it.port=null,it.path=[],it.query=null,it.fragment=null,it.cannotBeABaseURL=!1,ft=yt(ft,Ae,""),ft=yt(ft,Te,"$1")),ft=yt(ft,de,""),pn=O(ft);ye<=pn.length;){switch(ot=pn[ye],Ot){case ie:if(ot&&et(Ht,ot))_t+=Qt(ot),Ot=we;else{if(wt)return ge;Ot=Rt;continue}break;case we:if(ot&&(et(re,ot)||ot==="+"||ot==="-"||ot==="."))_t+=Qt(ot);else if(ot===":"){if(wt&&(it.isSpecial()!==R(It,_t)||_t==="file"&&(it.includesCredentials()||it.port!==null)||it.scheme==="file"&&!it.host))return;if(it.scheme=_t,wt){it.isSpecial()&&It[it.scheme]===it.port&&(it.port=null);return}_t="",it.scheme==="file"?Ot=Hr:it.isSpecial()&&pt&&pt.scheme===it.scheme?Ot=zt:it.isSpecial()?Ot=Ee:pn[ye+1]==="/"?(Ot=jt,ye++):(it.cannotBeABaseURL=!0,xt(it.path,""),Ot=Wa)}else{if(wt)return ge;_t="",Ot=Rt,ye=0;continue}break;case Rt:if(!pt||pt.cannotBeABaseURL&&ot!=="#")return ge;if(pt.cannotBeABaseURL&&ot==="#"){it.scheme=pt.scheme,it.path=C(pt.path),it.query=pt.query,it.fragment="",it.cannotBeABaseURL=!0,Ot=Wn;break}Ot=pt.scheme==="file"?Hr:Wt;continue;case zt:if(ot==="/"&&pn[ye+1]==="/")Ot=Xe,ye++;else{Ot=Wt;continue}break;case jt:if(ot==="/"){Ot=Je;break}else{Ot=Vn;continue}case Wt:if(it.scheme=pt.scheme,ot===bt)it.username=pt.username,it.password=pt.password,it.host=pt.host,it.port=pt.port,it.path=C(pt.path),it.query=pt.query;else if(ot==="/"||ot==="\\"&&it.isSpecial())Ot=ue;else if(ot==="?")it.username=pt.username,it.password=pt.password,it.host=pt.host,it.port=pt.port,it.path=C(pt.path),it.query="",Ot=ir;else if(ot==="#")it.username=pt.username,it.password=pt.password,it.host=pt.host,it.port=pt.port,it.path=C(pt.path),it.query=pt.query,it.fragment="",Ot=Wn;else{it.username=pt.username,it.password=pt.password,it.host=pt.host,it.port=pt.port,it.path=C(pt.path),it.path.length--,Ot=Vn;continue}break;case ue:if(it.isSpecial()&&(ot==="/"||ot==="\\"))Ot=Xe;else if(ot==="/")Ot=Je;else{it.username=pt.username,it.password=pt.password,it.host=pt.host,it.port=pt.port,Ot=Vn;continue}break;case Ee:if(Ot=Xe,ot!=="/"||tt(_t,ye+1)!=="/")continue;ye++;break;case Xe:if(ot!=="/"&&ot!=="\\"){Ot=Je;continue}break;case Je:if(ot==="@"){Ie&&(_t="%40"+_t),Ie=!0,an=O(_t);for(var en=0;en65535)return Mt;it.port=it.isSpecial()&&Bn===It[it.scheme]?null:Bn,_t=""}if(wt)return;Ot=yr;continue}else return Mt;break;case Hr:if(it.scheme="file",ot==="/"||ot==="\\")Ot=Ya;else if(pt&&pt.scheme==="file")switch(ot){case bt:it.host=pt.host,it.path=C(pt.path),it.query=pt.query;break;case"?":it.host=pt.host,it.path=C(pt.path),it.query="",Ot=ir;break;case"#":it.host=pt.host,it.path=C(pt.path),it.query=pt.query,it.fragment="",Ot=Wn;break;default:Ct(lt(C(pn,ye),""))||(it.host=pt.host,it.path=C(pt.path),it.shortenPath()),Ot=Vn;continue}else{Ot=Vn;continue}break;case Ya:if(ot==="/"||ot==="\\"){Ot=ga;break}pt&&pt.scheme==="file"&&!Ct(lt(C(pn,ye),""))&&(Pt(pt.path[0],!0)?xt(it.path,pt.path[0]):it.host=pt.host),Ot=Vn;continue;case ga:if(ot===bt||ot==="/"||ot==="\\"||ot==="?"||ot==="#"){if(!wt&&Pt(_t))Ot=Vn;else if(_t===""){if(it.host="",wt)return;Ot=yr}else{if(Fn=it.parseHost(_t),Fn)return Fn;if(it.host==="localhost"&&(it.host=""),wt)return;_t="",Ot=yr}continue}else _t+=ot;break;case yr:if(it.isSpecial()){if(Ot=Vn,ot!=="/"&&ot!=="\\")continue}else if(!wt&&ot==="?")it.query="",Ot=ir;else if(!wt&&ot==="#")it.fragment="",Ot=Wn;else if(ot!==bt&&(Ot=Vn,ot!=="/"))continue;break;case Vn:if(ot===bt||ot==="/"||ot==="\\"&&it.isSpecial()||!wt&&(ot==="?"||ot==="#")){if(Et(_t)?(it.shortenPath(),ot!=="/"&&!(ot==="\\"&&it.isSpecial())&&xt(it.path,"")):Nt(_t)?ot!=="/"&&!(ot==="\\"&&it.isSpecial())&&xt(it.path,""):(it.scheme==="file"&&!it.path.length&&Pt(_t)&&(it.host&&(it.host=""),_t=tt(_t,0)+":"),xt(it.path,_t)),_t="",it.scheme==="file"&&(ot===bt||ot==="?"||ot==="#"))for(;it.path.length>1&&it.path[0]==="";)Ut(it.path);ot==="?"?(it.query="",Ot=ir):ot==="#"&&(it.fragment="",Ot=Wn)}else _t+=ut(ot,Ye);break;case Wa:ot==="?"?(it.query="",Ot=ir):ot==="#"?(it.fragment="",Ot=Wn):ot!==bt&&(it.path[0]+=ut(ot,Zt));break;case ir:!wt&&ot==="#"?(it.fragment="",Ot=Wn):ot!==bt&&(ot==="'"&&it.isSpecial()?it.query+="%27":ot==="#"?it.query+="%23":it.query+=ut(ot,Zt));break;case Wn:ot!==bt&&(it.fragment+=ut(ot,Yt));break}ye++}},parseHost:function(ft){var wt,pt,it;if(tt(ft,0)==="["){if(tt(ft,ft.length-1)!=="]"||(wt=Tt(Xt(ft,1,-1)),!wt))return ae;this.host=wt}else if(this.isSpecial()){if(ft=M(ft),et($e,ft)||(wt=Ft(ft),wt===null))return ae;this.host=wt}else{if(et(ce,ft))return ae;for(wt="",pt=O(ft),it=0;it1?arguments[1]:void 0,Ot=B(pt,new va(wt,!1,it));d||(pt.href=Ot.serialize(),pt.origin=Ot.getOrigin(),pt.protocol=Ot.getProtocol(),pt.username=Ot.getUsername(),pt.password=Ot.getPassword(),pt.host=Ot.getHost(),pt.hostname=Ot.getHostname(),pt.port=Ot.getPort(),pt.pathname=Ot.getPathname(),pt.search=Ot.getSearch(),pt.searchParams=Ot.getSearchParams(),pt.hash=Ot.getHash())},xn=xr.prototype,Mn=function(ft,wt){return{get:function(){return V(this)[ft]()},set:wt&&function(pt){return V(this)[wt](pt)},configurable:!0,enumerable:!0}};if(d&&(A(xn,"href",Mn("serialize","setHref")),A(xn,"origin",Mn("getOrigin")),A(xn,"protocol",Mn("getProtocol","setProtocol")),A(xn,"username",Mn("getUsername","setUsername")),A(xn,"password",Mn("getPassword","setPassword")),A(xn,"host",Mn("getHost","setHost")),A(xn,"hostname",Mn("getHostname","setHostname")),A(xn,"port",Mn("getPort","setPort")),A(xn,"pathname",Mn("getPathname","setPathname")),A(xn,"search",Mn("getSearch","setSearch")),A(xn,"searchParams",Mn("getSearchParams")),A(xn,"hash",Mn("getHash","setHash"))),$(xn,"toJSON",function(){return V(this).serialize()},{enumerable:!0}),$(xn,"toString",function(){return V(this).serialize()},{enumerable:!0}),J){var Ka=J.createObjectURL,Za=J.revokeObjectURL;Ka&&$(xr,"createObjectURL",y(Ka,J)),Za&&$(xr,"revokeObjectURL",y(Za,J))}z(xr,"URL"),u({global:!0,constructor:!0,forced:!h,sham:!d},{URL:xr})},function(x,b,r){var u=r(7),d=r(33),h=r(6),p=r(36),y=d("iterator");x.exports=!u(function(){var T=new URL("b?a=1&b=2&c=3","https://a"),$=T.searchParams,A=new URLSearchParams("a=1&a=2&b=3"),E="";return T.pathname="c%20d",$.forEach(function(R,I){$.delete("b"),E+=I+R}),A.delete("a",2),A.delete("b",void 0),p&&(!T.toJSON||!A.has("a",1)||A.has("a",2)||!A.has("a",void 0)||A.has("b"))||!$.size&&(p||!h)||!$.sort||T.href!=="https://a/c%20d?a=1&c=3"||$.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!$[y]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("https://\u0442\u0435\u0441\u0442").host!=="xn--e1aybc"||new URL("https://a#\u0431").hash!=="#%D0%B1"||E!=="a1c3"||new URL("https://x",void 0).host!=="x"})},function(x,b,r){var u=r(14),d=2147483647,h=36,p=1,y=26,T=38,$=700,A=72,E=128,R="-",I=/[^\0-\u007E]/,O=/[.\u3002\uFF0E\uFF61]/g,C="Overflow: input needs wider integers to process",D=h-p,M=RangeError,F=u(O.exec),z=Math.floor,U=String.fromCharCode,j=u("".charCodeAt),G=u([].join),B=u([].push),V=u("".replace),Y=u("".split),Z=u("".toLowerCase),J=function(_){for(var tt=[],et=0,lt=_.length;et=55296&&mt<=56319&&et>1,_+=z(_/tt);_>D*y>>1;)_=z(_/D),lt+=h;return z(lt+(D+1)*_/(_+T))},rt=function(_){var tt=[];_=J(_);var et=_.length,lt=E,mt=0,gt=A,xt,yt;for(xt=0;xt<_.length;xt++)yt=_[xt],yt<128&&B(tt,U(yt));var Ut=tt.length,Dt=Ut;for(Ut&&B(tt,R);Dt=lt&&ytz((d-mt)/Qt))throw new M(C);for(mt+=(Xt-lt)*Qt,lt=Xt,xt=0;xt<_.length;xt++){if(yt=_[xt],ytd)throw new M(C);if(yt===lt){for(var kt=mt,me=h;;){var ge=me<=gt?p:me>=gt+y?y:me-gt;if(kt0&&(Rt&jt)!==0;jt>>=1)zt++;return zt},qt=function(Rt){var zt=null;switch(Rt.length){case 1:zt=Rt[0];break;case 2:zt=(Rt[0]&31)<<6|Rt[1]&63;break;case 3:zt=(Rt[0]&15)<<12|(Rt[1]&63)<<6|Rt[2]&63;break;case 4:zt=(Rt[0]&7)<<18|(Rt[1]&63)<<12|(Rt[2]&63)<<6|Rt[3]&63;break}return zt>1114111?null:zt},te=function(Rt){Rt=fe(Rt,Te," ");for(var zt=Rt.length,jt="",Wt=0;Wtzt){jt+="%",Wt++;continue}var Ee=Ft(Rt,Wt+1);if(Ee!==Ee){jt+=ue,Wt++;continue}Wt+=2;var Xe=Tt(Ee);if(Xe===0)ue=ae(Ee);else{if(Xe===1||Xe>4){jt+=de,Wt++;continue}for(var Je=[Ee],nn=1;nnzt||re(Rt,Wt)!=="%"));){var vn=Ft(Rt,Wt+1);if(vn!==vn){Wt+=3;break}if(vn>191||vn<128)break;ee(Je,vn),Wt+=2,nn++}if(Je.length!==Xe){jt+=de;continue}var jn=qt(Je);jn===null?jt+=de:ue=Mt(jn)}}jt+=ue,Wt++}return jt},Zt=/[!'()~]|%20/g,Yt={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},Ye=function(Rt){return Yt[Rt]},Ze=function(Rt){return fe(ge(Rt),Zt,Ye)},ut=C(function(zt,jt){gt(this,{type:mt,target:xt(zt).entries,index:0,kind:jt})},lt,function(){var zt=yt(this),jt=zt.target,Wt=zt.index++;if(!jt||Wt>=jt.length)return zt.target=null,nt(void 0,!0);var ue=jt[Wt];switch(zt.kind){case"keys":return nt(ue.key,!1);case"values":return nt(ue.value,!1)}return nt([ue.key,ue.value],!1)},!0),It=function(Rt){this.entries=[],this.url=null,Rt!==void 0&&(B(Rt)?this.parseObject(Rt):this.parseQuery(typeof Rt=="string"?re(Rt,0)==="?"?ce(Rt,1):Rt:V(Rt)))};It.prototype={type:lt,bindURL:function(Rt){this.url=Rt,this.update()},parseObject:function(Rt){var zt=this.entries,jt=q(Rt),Wt,ue,Ee,Xe,Je,nn,vn;if(jt)for(Wt=J(Rt,jt),ue=Wt.next;!(Ee=y(ue,Wt)).done;){if(Xe=J(G(Ee.value)),Je=Xe.next,(nn=y(Je,Xe)).done||(vn=y(Je,Xe)).done||!y(Je,Xe).done)throw new me("Expected sequence with length 2");ee(zt,{key:V(nn.value),value:V(vn.value)})}else for(var jn in Rt)z(Rt,jn)&&ee(zt,{key:jn,value:V(Rt[jn])})},parseQuery:function(Rt){if(Rt)for(var zt=this.entries,jt=$e(Rt,"&"),Wt=0,ue,Ee;Wt0?arguments[0]:void 0,jt=gt(this,new It(zt));$||(this.size=jt.entries.length)},Ct=Pt.prototype;if(I(Ct,{append:function(zt,jt){var Wt=xt(this);rt(arguments.length,2),ee(Wt.entries,{key:V(zt),value:V(jt)}),$||this.length++,Wt.updateURL()},delete:function(Rt){for(var zt=xt(this),jt=rt(arguments.length,1),Wt=zt.entries,ue=V(Rt),Ee=jt<2?void 0:arguments[1],Xe=Ee===void 0?Ee:V(Ee),Je=0;JeWt.key?1:-1}),zt.updateURL()},forEach:function(zt){for(var jt=xt(this).entries,Wt=U(zt,arguments.length>1?arguments[1]:void 0),ue=0,Ee;ue1?ie(arguments[1]):{})}}),F(Dt)){var we=function(zt){return M(this,Qt),new Dt(zt,arguments.length>1?ie(arguments[1]):{})};Qt.constructor=we,we.prototype=Qt,u({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:we})}}x.exports={URLSearchParams:Pt,getState:xt}},function(x,b,r){var u=r(3),d=r(23),h=r(7),p=r(367),y=r(68),T=r(574),$=d("URL"),A=T&&h(function(){$.canParse()}),E=h(function(){return $.canParse.length!==1});u({target:"URL",stat:!0,forced:!A||E},{canParse:function(I){var O=p(arguments.length,1),C=y(I),D=O<2||arguments[1]===void 0?void 0:y(arguments[1]);try{return!!new $(C,D)}catch(M){return!1}}})},function(x,b,r){var u=r(3),d=r(23),h=r(367),p=r(68),y=r(574),T=d("URL");u({target:"URL",stat:!0,forced:!y},{parse:function(A){var E=h(arguments.length,1),R=p(A),I=E<2||arguments[1]===void 0?void 0:p(arguments[1]);try{return new T(R,I)}catch(O){return null}}})},function(x,b,r){var u=r(3),d=r(8);u({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return d(URL.prototype.toString,this)}})},function(x,b,r){r(576)},function(x,b,r){var u=r(47),d=r(14),h=r(68),p=r(367),y=URLSearchParams,T=y.prototype,$=d(T.append),A=d(T.delete),E=d(T.forEach),R=d([].push),I=new y("a=1&a=2&b=3");I.delete("a",1),I.delete("b",void 0),I+""!="a=2"&&u(T,"delete",function(O){var C=arguments.length,D=C<2?void 0:arguments[1];if(C&&D===void 0)return A(this,O);var M=[];E(this,function(Y,Z){R(M,{key:Z,value:Y})}),p(C,1);for(var F=h(O),z=h(D),U=0,j=0,G=!1,B=M.length,V;U=W&&(W=X+1);!(k=L[W])&&++W=0;)(s=a[i])&&(o&&s.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(s,o),o=s);return this}function xt(t){t||(t=yt);function e(v,m){return v&&m?t(v.__data__,m.__data__):!v-!m}for(var n=this._groups,a=n.length,i=new Array(a),o=0;oe?1:t>=e?0:NaN}function Ut(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Dt(){return Array.from(this)}function Xt(){for(var t=this._groups,e=0,n=t.length;e=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),ae.hasOwnProperty(e)?{space:ae[e],local:t}:t}function Ht(t){return function(){this.removeAttribute(t)}}function re(t){return function(){this.removeAttributeNS(t.space,t.local)}}function se(t,e){return function(){this.setAttribute(t,e)}}function ee(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function fe(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function Pe(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function Me(t,e){var n=Mt(t);if(arguments.length<2){var a=this.node();return n.local?a.getAttributeNS(n.space,n.local):a.getAttribute(n)}return this.each((e==null?n.local?re:Ht:typeof e=="function"?n.local?Pe:fe:n.local?ee:se)(n,e))}function $e(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function ce(t){return function(){this.style.removeProperty(t)}}function Ae(t,e,n){return function(){this.style.setProperty(t,e,n)}}function Te(t,e,n){return function(){var a=e.apply(this,arguments);a==null?this.style.removeProperty(t):this.style.setProperty(t,a,n)}}function de(t,e,n){return arguments.length>1?this.each((e==null?ce:typeof e=="function"?Te:Ae)(t,e,n==null?"":n)):bt(this.node(),t)}function bt(t,e){return t.style.getPropertyValue(e)||$e(t).getComputedStyle(t,null).getPropertyValue(e)}function Ft(t){return function(){delete this[t]}}function Tt(t,e){return function(){this[t]=e}}function qt(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function te(t,e){return arguments.length>1?this.each((e==null?Ft:typeof e=="function"?qt:Tt)(t,e)):this.node()[t]}function Zt(t){return t.trim().split(/^|\s+/)}function Yt(t){return t.classList||new Ye(t)}function Ye(t){this._node=t,this._names=Zt(t.getAttribute("class")||"")}Ye.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function Ze(t,e){for(var n=Yt(t),a=-1,i=e.length;++a=0&&(n=e.slice(a+1),e=e.slice(0,a)),{type:e,name:n}})}function Ka(t){return function(){var e=this.__on;if(e){for(var n=0,a=-1,i=e.length,o;n(t(o=new Date(+o)),o),i.ceil=o=>(t(o=new Date(o-1)),e(o,1),t(o),o),i.round=o=>{const s=i(o),l=i.ceil(o);return o-s(e(o=new Date(+o),s==null?1:Math.floor(s)),o),i.range=(o,s,l)=>{const c=[];if(o=i.ceil(o),l=l==null?1:Math.floor(l),!(o0))return c;let f;do c.push(f=new Date(+o)),e(o,l),t(o);while(fen(s=>{if(s>=s)for(;t(s),!o(s);)s.setTime(s-1)},(s,l)=>{if(s>=s)if(l<0)for(;++l<=0;)for(;e(s,-1),!o(s););else for(;--l>=0;)for(;e(s,1),!o(s););}),n&&(i.count=(o,s)=>(an.setTime(+o),Fn.setTime(+s),t(an),t(Fn),Math.floor(n(an,Fn))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(a?s=>a(s)%o===0:s=>i.count(0,s)%o===0):i)),i}const Gn=1e3,In=Gn*60,Bn=In*60,or=Bn*24,to=or*7,Ps=or*30,eo=or*365;function Rr(t){return en(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*In)/to)}const Ja=Rr(0),Qa=Rr(1),Rf=Rr(2),If=Rr(3),Yr=Rr(4),Of=Rr(5),Cf=Rr(6),I0=Ja.range,O0=Qa.range,C0=Rf.range,P0=If.range,w0=Yr.range,M0=Of.range,D0=Cf.range;function Ir(t){return en(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/to)}const ka=Ir(0),qa=Ir(1),Pf=Ir(2),wf=Ir(3),Wr=Ir(4),Mf=Ir(5),Df=Ir(6),L0=ka.range,N0=qa.range,F0=Pf.range,B0=wf.range,U0=Wr.range,z0=Mf.range,j0=Df.range,pa=en(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*In)/or,t=>t.getDate()-1),V0=pa.range,_a=en(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/or,t=>t.getUTCDate()-1),G0=_a.range,ws=en(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/or,t=>Math.floor(t/or)),X0=ws.range,sr=en(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());sr.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:en(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});const H0=sr.range,lr=en(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());lr.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:en(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});const Y0=lr.range;function no(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function ro(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function ma(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Lf(t){var e=t.dateTime,n=t.date,a=t.time,i=t.periods,o=t.days,s=t.shortDays,l=t.months,c=t.shortMonths,f=ya(i),g=xa(i),v=ya(o),m=xa(o),S=ya(s),P=xa(s),N=ya(l),L=xa(l),w=ya(c),X=xa(c),W={a:At,A:Gt,b:Bt,B:Kt,c:null,d:Bs,e:Bs,f:rd,g:hd,G:vd,H:td,I:ed,j:nd,L:Us,m:ad,M:id,p:ne,q:le,Q:Hs,s:Ys,S:od,u:sd,U:ld,V:cd,w:ud,W:fd,x:null,X:null,y:dd,Y:gd,Z:pd,"%":Xs},H={a:be,A:Oe,b:Ce,B:He,c:null,d:js,e:js,f:Td,g:Pd,G:Md,H:md,I:yd,j:xd,L:Vs,m:$d,M:Sd,p:Fe,q:dn,Q:Hs,s:Ys,S:Ad,u:Ed,U:bd,V:Rd,w:Id,W:Od,x:null,X:null,y:Cd,Y:wd,Z:Dd,"%":Xs},k={a:dt,A:st,b:Vt,B:vt,c:Q,d:Ns,e:Ns,f:Qf,g:Ls,G:Ds,H:Fs,I:Fs,j:Wf,L:Jf,m:Yf,M:Kf,p:$t,q:Hf,Q:qf,s:_f,S:Zf,u:zf,U:jf,V:Vf,w:Uf,W:Gf,x:St,X:ct,y:Ls,Y:Ds,Z:Xf,"%":kf};W.x=K(n,W),W.X=K(a,W),W.c=K(e,W),H.x=K(n,H),H.X=K(a,H),H.c=K(e,H);function K(Jt,xe){return function(Re){var Lt=[],un=-1,Ge=0,Pn=Jt.length,wn,pe,fn;for(Re instanceof Date||(Re=new Date(+Re));++un53)return null;"w"in Lt||(Lt.w=1),"Z"in Lt?(Ge=ro(ma(Lt.y,0,1)),Pn=Ge.getUTCDay(),Ge=Pn>4||Pn===0?qa.ceil(Ge):qa(Ge),Ge=_a.offset(Ge,(Lt.V-1)*7),Lt.y=Ge.getUTCFullYear(),Lt.m=Ge.getUTCMonth(),Lt.d=Ge.getUTCDate()+(Lt.w+6)%7):(Ge=no(ma(Lt.y,0,1)),Pn=Ge.getDay(),Ge=Pn>4||Pn===0?Qa.ceil(Ge):Qa(Ge),Ge=pa.offset(Ge,(Lt.V-1)*7),Lt.y=Ge.getFullYear(),Lt.m=Ge.getMonth(),Lt.d=Ge.getDate()+(Lt.w+6)%7)}else("W"in Lt||"U"in Lt)&&("w"in Lt||(Lt.w="u"in Lt?Lt.u%7:"W"in Lt?1:0),Pn="Z"in Lt?ro(ma(Lt.y,0,1)).getUTCDay():no(ma(Lt.y,0,1)).getDay(),Lt.m=0,Lt.d="W"in Lt?(Lt.w+6)%7+Lt.W*7-(Pn+5)%7:Lt.w+Lt.U*7-(Pn+6)%7);return"Z"in Lt?(Lt.H+=Lt.Z/100|0,Lt.M+=Lt.Z%100,ro(Lt)):no(Lt)}}function ht(Jt,xe,Re,Lt){for(var un=0,Ge=xe.length,Pn=Re.length,wn,pe;un=Pn)return-1;if(wn=xe.charCodeAt(un++),wn===37){if(wn=xe.charAt(un++),pe=k[wn in Ms?xe.charAt(un++):wn],!pe||(Lt=pe(Jt,Re,Lt))<0)return-1}else if(wn!=Re.charCodeAt(Lt++))return-1}return Lt}function $t(Jt,xe,Re){var Lt=f.exec(xe.slice(Re));return Lt?(Jt.p=g.get(Lt[0].toLowerCase()),Re+Lt[0].length):-1}function dt(Jt,xe,Re){var Lt=S.exec(xe.slice(Re));return Lt?(Jt.w=P.get(Lt[0].toLowerCase()),Re+Lt[0].length):-1}function st(Jt,xe,Re){var Lt=v.exec(xe.slice(Re));return Lt?(Jt.w=m.get(Lt[0].toLowerCase()),Re+Lt[0].length):-1}function Vt(Jt,xe,Re){var Lt=w.exec(xe.slice(Re));return Lt?(Jt.m=X.get(Lt[0].toLowerCase()),Re+Lt[0].length):-1}function vt(Jt,xe,Re){var Lt=N.exec(xe.slice(Re));return Lt?(Jt.m=L.get(Lt[0].toLowerCase()),Re+Lt[0].length):-1}function Q(Jt,xe,Re){return ht(Jt,e,xe,Re)}function St(Jt,xe,Re){return ht(Jt,n,xe,Re)}function ct(Jt,xe,Re){return ht(Jt,a,xe,Re)}function At(Jt){return s[Jt.getDay()]}function Gt(Jt){return o[Jt.getDay()]}function Bt(Jt){return c[Jt.getMonth()]}function Kt(Jt){return l[Jt.getMonth()]}function ne(Jt){return i[+(Jt.getHours()>=12)]}function le(Jt){return 1+~~(Jt.getMonth()/3)}function be(Jt){return s[Jt.getUTCDay()]}function Oe(Jt){return o[Jt.getUTCDay()]}function Ce(Jt){return c[Jt.getUTCMonth()]}function He(Jt){return l[Jt.getUTCMonth()]}function Fe(Jt){return i[+(Jt.getUTCHours()>=12)]}function dn(Jt){return 1+~~(Jt.getUTCMonth()/3)}return{format:function(Jt){var xe=K(Jt+="",W);return xe.toString=function(){return Jt},xe},parse:function(Jt){var xe=at(Jt+="",!1);return xe.toString=function(){return Jt},xe},utcFormat:function(Jt){var xe=K(Jt+="",H);return xe.toString=function(){return Jt},xe},utcParse:function(Jt){var xe=at(Jt+="",!0);return xe.toString=function(){return Jt},xe}}}var Ms={"-":"",_:" ",0:"0"},mn=/^\s*\d+/,Nf=/^%/,Ff=/[\\^$*+?|[\]().{}]/g;function Ne(t,e,n){var a=t<0?"-":"",i=(a?-t:t)+"",o=i.length;return a+(o[e.toLowerCase(),n]))}function Uf(t,e,n){var a=mn.exec(e.slice(n,n+1));return a?(t.w=+a[0],n+a[0].length):-1}function zf(t,e,n){var a=mn.exec(e.slice(n,n+1));return a?(t.u=+a[0],n+a[0].length):-1}function jf(t,e,n){var a=mn.exec(e.slice(n,n+2));return a?(t.U=+a[0],n+a[0].length):-1}function Vf(t,e,n){var a=mn.exec(e.slice(n,n+2));return a?(t.V=+a[0],n+a[0].length):-1}function Gf(t,e,n){var a=mn.exec(e.slice(n,n+2));return a?(t.W=+a[0],n+a[0].length):-1}function Ds(t,e,n){var a=mn.exec(e.slice(n,n+4));return a?(t.y=+a[0],n+a[0].length):-1}function Ls(t,e,n){var a=mn.exec(e.slice(n,n+2));return a?(t.y=+a[0]+(+a[0]>68?1900:2e3),n+a[0].length):-1}function Xf(t,e,n){var a=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return a?(t.Z=a[1]?0:-(a[2]+(a[3]||"00")),n+a[0].length):-1}function Hf(t,e,n){var a=mn.exec(e.slice(n,n+1));return a?(t.q=a[0]*3-3,n+a[0].length):-1}function Yf(t,e,n){var a=mn.exec(e.slice(n,n+2));return a?(t.m=a[0]-1,n+a[0].length):-1}function Ns(t,e,n){var a=mn.exec(e.slice(n,n+2));return a?(t.d=+a[0],n+a[0].length):-1}function Wf(t,e,n){var a=mn.exec(e.slice(n,n+3));return a?(t.m=0,t.d=+a[0],n+a[0].length):-1}function Fs(t,e,n){var a=mn.exec(e.slice(n,n+2));return a?(t.H=+a[0],n+a[0].length):-1}function Kf(t,e,n){var a=mn.exec(e.slice(n,n+2));return a?(t.M=+a[0],n+a[0].length):-1}function Zf(t,e,n){var a=mn.exec(e.slice(n,n+2));return a?(t.S=+a[0],n+a[0].length):-1}function Jf(t,e,n){var a=mn.exec(e.slice(n,n+3));return a?(t.L=+a[0],n+a[0].length):-1}function Qf(t,e,n){var a=mn.exec(e.slice(n,n+6));return a?(t.L=Math.floor(a[0]/1e3),n+a[0].length):-1}function kf(t,e,n){var a=Nf.exec(e.slice(n,n+1));return a?n+a[0].length:-1}function qf(t,e,n){var a=mn.exec(e.slice(n));return a?(t.Q=+a[0],n+a[0].length):-1}function _f(t,e,n){var a=mn.exec(e.slice(n));return a?(t.s=+a[0],n+a[0].length):-1}function Bs(t,e){return Ne(t.getDate(),e,2)}function td(t,e){return Ne(t.getHours(),e,2)}function ed(t,e){return Ne(t.getHours()%12||12,e,2)}function nd(t,e){return Ne(1+pa.count(sr(t),t),e,3)}function Us(t,e){return Ne(t.getMilliseconds(),e,3)}function rd(t,e){return Us(t,e)+"000"}function ad(t,e){return Ne(t.getMonth()+1,e,2)}function id(t,e){return Ne(t.getMinutes(),e,2)}function od(t,e){return Ne(t.getSeconds(),e,2)}function sd(t){var e=t.getDay();return e===0?7:e}function ld(t,e){return Ne(Ja.count(sr(t)-1,t),e,2)}function zs(t){var e=t.getDay();return e>=4||e===0?Yr(t):Yr.ceil(t)}function cd(t,e){return t=zs(t),Ne(Yr.count(sr(t),t)+(sr(t).getDay()===4),e,2)}function ud(t){return t.getDay()}function fd(t,e){return Ne(Qa.count(sr(t)-1,t),e,2)}function dd(t,e){return Ne(t.getFullYear()%100,e,2)}function hd(t,e){return t=zs(t),Ne(t.getFullYear()%100,e,2)}function gd(t,e){return Ne(t.getFullYear()%1e4,e,4)}function vd(t,e){var n=t.getDay();return t=n>=4||n===0?Yr(t):Yr.ceil(t),Ne(t.getFullYear()%1e4,e,4)}function pd(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Ne(e/60|0,"0",2)+Ne(e%60,"0",2)}function js(t,e){return Ne(t.getUTCDate(),e,2)}function md(t,e){return Ne(t.getUTCHours(),e,2)}function yd(t,e){return Ne(t.getUTCHours()%12||12,e,2)}function xd(t,e){return Ne(1+_a.count(lr(t),t),e,3)}function Vs(t,e){return Ne(t.getUTCMilliseconds(),e,3)}function Td(t,e){return Vs(t,e)+"000"}function $d(t,e){return Ne(t.getUTCMonth()+1,e,2)}function Sd(t,e){return Ne(t.getUTCMinutes(),e,2)}function Ad(t,e){return Ne(t.getUTCSeconds(),e,2)}function Ed(t){var e=t.getUTCDay();return e===0?7:e}function bd(t,e){return Ne(ka.count(lr(t)-1,t),e,2)}function Gs(t){var e=t.getUTCDay();return e>=4||e===0?Wr(t):Wr.ceil(t)}function Rd(t,e){return t=Gs(t),Ne(Wr.count(lr(t),t)+(lr(t).getUTCDay()===4),e,2)}function Id(t){return t.getUTCDay()}function Od(t,e){return Ne(qa.count(lr(t)-1,t),e,2)}function Cd(t,e){return Ne(t.getUTCFullYear()%100,e,2)}function Pd(t,e){return t=Gs(t),Ne(t.getUTCFullYear()%100,e,2)}function wd(t,e){return Ne(t.getUTCFullYear()%1e4,e,4)}function Md(t,e){var n=t.getUTCDay();return t=n>=4||n===0?Wr(t):Wr.ceil(t),Ne(t.getUTCFullYear()%1e4,e,4)}function Dd(){return"+0000"}function Xs(){return"%"}function Hs(t){return+t}function Ys(t){return Math.floor(+t/1e3)}var Kr,ao,Ws,io,Ks;Ld({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Ld(t){return Kr=Lf(t),ao=Kr.format,Ws=Kr.parse,io=Kr.utcFormat,Ks=Kr.utcParse,Kr}var Nd=Object.defineProperty,Zs=Object.getOwnPropertySymbols,Fd=Object.prototype.hasOwnProperty,Bd=Object.prototype.propertyIsEnumerable,Js=(t,e,n)=>e in t?Nd(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ke=(t,e)=>{for(var n in e||(e={}))Fd.call(e,n)&&Js(t,n,e[n]);if(Zs)for(var n of Zs(e))Bd.call(e,n)&&Js(t,n,e[n]);return t};const Se={button:"bb-button",chart:"bb-chart",empty:"bb-empty",main:"bb-main",target:"bb-target",EXPANDED:"_expanded_"},Ve={arc:"bb-arc",arcLabelLine:"bb-arc-label-line",arcRange:"bb-arc-range",arcs:"bb-arcs",chartArc:"bb-chart-arc",chartArcs:"bb-chart-arcs",chartArcsBackground:"bb-chart-arcs-background",chartArcsTitle:"bb-chart-arcs-title",needle:"bb-needle"},ti={area:"bb-area",areas:"bb-areas"},Tn={axis:"bb-axis",axisX:"bb-axis-x",axisXLabel:"bb-axis-x-label",axisY:"bb-axis-y",axisY2:"bb-axis-y2",axisY2Label:"bb-axis-y2-label",axisYLabel:"bb-axis-y-label",axisXTooltip:"bb-axis-x-tooltip",axisYTooltip:"bb-axis-y-tooltip",axisY2Tooltip:"bb-axis-y2-tooltip"},Kn={bar:"bb-bar",bars:"bb-bars",chartBar:"bb-chart-bar",chartBars:"bb-chart-bars"},cr={candlestick:"bb-candlestick",candlesticks:"bb-candlesticks",chartCandlestick:"bb-chart-candlestick",chartCandlesticks:"bb-chart-candlesticks",valueDown:"bb-value-down",valueUp:"bb-value-up"},$n={chartCircles:"bb-chart-circles",circle:"bb-circle",circles:"bb-circles"},oo={colorPattern:"bb-color-pattern",colorScale:"bb-colorscale"},Or={dragarea:"bb-dragarea",INCLUDED:"_included_"},Ta={funnel:"bb-funnel",chartFunnel:"bb-chart-funnel",chartFunnels:"bb-chart-funnels",funnelBackground:"bb-funnel-background"},Un={chartArcsGaugeMax:"bb-chart-arcs-gauge-max",chartArcsGaugeMin:"bb-chart-arcs-gauge-min",chartArcsGaugeUnit:"bb-chart-arcs-gauge-unit",chartArcsGaugeTitle:"bb-chart-arcs-gauge-title",gaugeValue:"bb-gauge-value"},We={legend:"bb-legend",legendBackground:"bb-legend-background",legendItem:"bb-legend-item",legendItemEvent:"bb-legend-item-event",legendItemHidden:"bb-legend-item-hidden",legendItemPoint:"bb-legend-item-point",legendItemTile:"bb-legend-item-tile"},ur={chartLine:"bb-chart-line",chartLines:"bb-chart-lines",line:"bb-line",lines:"bb-lines"},Zn={eventRect:"bb-event-rect",eventRects:"bb-event-rects",eventRectsMultiple:"bb-event-rects-multiple",eventRectsSingle:"bb-event-rects-single"},qe={focused:"bb-focused",defocused:"bb-defocused",legendItemFocused:"bb-legend-item-focused",xgridFocus:"bb-xgrid-focus",ygridFocus:"bb-ygrid-focus"},on={grid:"bb-grid",gridLines:"bb-grid-lines",xgrid:"bb-xgrid",xgridLine:"bb-xgrid-line",xgridLines:"bb-xgrid-lines",xgrids:"bb-xgrids",ygrid:"bb-ygrid",ygridLine:"bb-ygrid-line",ygridLines:"bb-ygrid-lines",ygrids:"bb-ygrids"},Tr={level:"bb-level",levels:"bb-levels"},Qs={chartRadar:"bb-chart-radar",chartRadars:"bb-chart-radars"},$a={region:"bb-region",regions:"bb-regions"},tn={selectedCircle:"bb-selected-circle",selectedCircles:"bb-selected-circles",SELECTED:"_selected_"},sn={shape:"bb-shape",shapes:"bb-shapes"},ks={brush:"bb-brush",subchart:"bb-subchart"},On={chartText:"bb-chart-text",chartTexts:"bb-chart-texts",text:"bb-text",texts:"bb-texts",title:"bb-title",TextOverlapping:"text-overlapping"},ei={tooltip:"bb-tooltip",tooltipContainer:"bb-tooltip-container",tooltipName:"bb-tooltip-name"},qs={treemap:"bb-treemap",chartTreemap:"bb-chart-treemap",chartTreemaps:"bb-chart-treemaps"},so={buttonZoomReset:"bb-zoom-reset",zoomBrush:"bb-zoom-brush"};var Ue=ke(ke(ke(ke(ke(ke(ke(ke(ke(ke(ke(ke(ke(ke(ke(ke(ke(ke(ke(ke(ke(ke(ke(ke(ke({},Se),Ve),ti),Tn),Kn),cr),$n),oo),Or),Un),We),ur),Zn),qe),Ta),on),Qs),$a),tn),sn),ks),On),ei),qs),so),Ud={boost_useCssRule:!1,boost_useWorker:!1},zd={color_pattern:[],color_tiles:void 0,color_threshold:{},color_onover:void 0},jd={legend_contents_bindto:void 0,legend_contents_template:"{=TITLE}",legend_equally:!1,legend_hide:!1,legend_inset_anchor:"top-left",legend_inset_x:10,legend_inset_y:0,legend_inset_step:void 0,legend_item_interaction:!0,legend_item_dblclick:!1,legend_item_onclick:void 0,legend_item_onover:void 0,legend_item_onout:void 0,legend_item_tile_width:10,legend_item_tile_height:10,legend_item_tile_r:5,legend_item_tile_type:"rectangle",legend_format:void 0,legend_padding:0,legend_position:"bottom",legend_show:!0,legend_tooltip:!1,legend_usePoint:!1},Vd={bindto:"#chart",background:{},clipPath:!0,svg_classname:void 0,size_width:void 0,size_height:void 0,padding:!0,padding_mode:void 0,padding_left:void 0,padding_right:void 0,padding_top:void 0,padding_bottom:void 0,resize_auto:!0,resize_timer:!0,onclick:void 0,onover:void 0,onout:void 0,onresize:void 0,onresized:void 0,onbeforeinit:void 0,oninit:void 0,onafterinit:void 0,onrendered:void 0,transition_duration:250,plugins:[],render:{},regions:[]},Gd={title_text:void 0,title_padding:{top:0,right:0,bottom:0,left:0},title_position:"center"},Xd={tooltip_show:!0,tooltip_doNotHide:!1,tooltip_grouped:!0,tooltip_format_title:void 0,tooltip_format_name:void 0,tooltip_format_value:void 0,tooltip_position:void 0,tooltip_contents:{},tooltip_init_show:!1,tooltip_init_x:0,tooltip_init_position:void 0,tooltip_linked:!1,tooltip_linked_name:"",tooltip_onshow:()=>{},tooltip_onhide:()=>{},tooltip_onshown:()=>{},tooltip_onhidden:()=>{},tooltip_order:null},Hd={data_x:void 0,data_idConverter:t=>t,data_names:{},data_classes:{},data_type:void 0,data_types:{},data_order:"desc",data_groups:[],data_groupsZeroAs:"positive",data_color:void 0,data_colors:{},data_labels:{},data_labels_backgroundColors:void 0,data_labels_colors:void 0,data_labels_position:{},data_hide:!1,data_filter:void 0,data_onclick:()=>{},data_onover:()=>{},data_onout:()=>{},data_onshown:void 0,data_onhidden:void 0,data_onmin:void 0,data_onmax:void 0,data_url:void 0,data_headers:void 0,data_json:void 0,data_rows:void 0,data_columns:void 0,data_mimeType:"csv",data_keys:void 0,data_empty_label_text:""},Yd={interaction_enabled:!0,interaction_brighten:!0,interaction_inputType_mouse:!0,interaction_inputType_touch:{},interaction_onout:!0},Wd={value:()=>{}};function _s(){for(var t=0,e=arguments.length,n={},a;t=0&&(a=n.slice(i+1),n=n.slice(0,i)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:a}})}ni.prototype=_s.prototype={constructor:ni,on:function(t,e){var n=this._,a=Kd(t+"",n),i,o=-1,s=a.length;if(arguments.length<2){for(;++o0)for(var n=new Array(i),a=0,i,o;a>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?ii(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?ii(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=kd.exec(t))?new Dn(e[1],e[2],e[3],1):(e=qd.exec(t))?new Dn(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=_d.exec(t))?ii(e[1],e[2],e[3],e[4]):(e=th.exec(t))?ii(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=eh.exec(t))?ll(e[1],e[2]/100,e[3]/100,1):(e=nh.exec(t))?ll(e[1],e[2]/100,e[3]/100,e[4]):nl.hasOwnProperty(t)?il(nl[t]):t==="transparent"?new Dn(NaN,NaN,NaN,0):null}function il(t){return new Dn(t>>16&255,t>>8&255,t&255,1)}function ii(t,e,n,a){return a<=0&&(t=e=n=NaN),new Dn(t,e,n,a)}function ih(t){return t instanceof Aa||(t=Cr(t)),t?(t=t.rgb(),new Dn(t.r,t.g,t.b,t.opacity)):new Dn}function oi(t,e,n,a){return arguments.length===1?ih(t):new Dn(t,e,n,a==null?1:a)}function Dn(t,e,n,a){this.r=+t,this.g=+e,this.b=+n,this.opacity=+a}fo(Dn,oi,el(Aa,{brighter(t){return t=t==null?ai:Math.pow(ai,t),new Dn(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Ea:Math.pow(Ea,t),new Dn(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Dn(Pr(this.r),Pr(this.g),Pr(this.b),si(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ol,formatHex:ol,formatHex8:oh,formatRgb:sl,toString:sl}));function ol(){return`#${wr(this.r)}${wr(this.g)}${wr(this.b)}`}function oh(){return`#${wr(this.r)}${wr(this.g)}${wr(this.b)}${wr((isNaN(this.opacity)?1:this.opacity)*255)}`}function sl(){const t=si(this.opacity);return`${t===1?"rgb(":"rgba("}${Pr(this.r)}, ${Pr(this.g)}, ${Pr(this.b)}${t===1?")":`, ${t})`}`}function si(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Pr(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function wr(t){return t=Pr(t),(t<16?"0":"")+t.toString(16)}function ll(t,e,n,a){return a<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Jn(t,e,n,a)}function cl(t){if(t instanceof Jn)return new Jn(t.h,t.s,t.l,t.opacity);if(t instanceof Aa||(t=Cr(t)),!t)return new Jn;if(t instanceof Jn)return t;t=t.rgb();var e=t.r/255,n=t.g/255,a=t.b/255,i=Math.min(e,n,a),o=Math.max(e,n,a),s=NaN,l=o-i,c=(o+i)/2;return l?(e===o?s=(n-a)/l+(n0&&c<1?0:s,new Jn(s,l,c,t.opacity)}function sh(t,e,n,a){return arguments.length===1?cl(t):new Jn(t,e,n,a==null?1:a)}function Jn(t,e,n,a){this.h=+t,this.s=+e,this.l=+n,this.opacity=+a}fo(Jn,sh,el(Aa,{brighter(t){return t=t==null?ai:Math.pow(ai,t),new Jn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ea:Math.pow(Ea,t),new Jn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,a=n+(n<.5?n:1-n)*e,i=2*n-a;return new Dn(ho(t>=240?t-240:t+120,i,a),ho(t,i,a),ho(t<120?t+240:t-120,i,a),this.opacity)},clamp(){return new Jn(ul(this.h),li(this.s),li(this.l),si(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=si(this.opacity);return`${t===1?"hsl(":"hsla("}${ul(this.h)}, ${li(this.s)*100}%, ${li(this.l)*100}%${t===1?")":`, ${t})`}`}}));function ul(t){return t=(t||0)%360,t<0?t+360:t}function li(t){return Math.max(0,Math.min(1,t||0))}function ho(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}function fl(t,e,n,a,i){var o=t*t,s=o*t;return((1-3*t+3*o-s)*e+(4-6*o+3*s)*n+(1+3*t+3*o-3*s)*a+s*i)/6}function lh(t){var e=t.length-1;return function(n){var a=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[a],o=t[a+1],s=a>0?t[a-1]:2*i-o,l=a()=>t;function dl(t,e){return function(n){return t+n*e}}function uh(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(a){return Math.pow(t+a*e,n)}}function W0(t,e){var n=e-t;return n?dl(t,n>180||n<-180?n-360*Math.round(n/360):n):ci(isNaN(t)?e:t)}function fh(t){return(t=+t)==1?hl:function(e,n){return n-e?uh(e,n,t):ci(isNaN(e)?n:e)}}function hl(t,e){var n=e-t;return n?dl(t,n):ci(isNaN(t)?e:t)}var ui=function t(e){var n=fh(e);function a(i,o){var s=n((i=oi(i)).r,(o=oi(o)).r),l=n(i.g,o.g),c=n(i.b,o.b),f=hl(i.opacity,o.opacity);return function(g){return i.r=s(g),i.g=l(g),i.b=c(g),i.opacity=f(g),i+""}}return a.gamma=t,a}(1);function gl(t){return function(e){var n=e.length,a=new Array(n),i=new Array(n),o=new Array(n),s,l;for(s=0;sn&&(o=e.slice(n,o),l[s]?l[s]+=o:l[++s]=o),(a=a[0])===(i=i[0])?l[s]?l[s]+=i:l[++s]=i:(l[++s]=null,c.push({i:s,x:Qn(a,i)})),n=vo.lastIndex;return n=0&&t._call.call(void 0,e),t=t._next;--kr}function Sl(){Mr=(di=Ca.now())+hi,kr=Ra=0;try{yh()}finally{kr=0,Th(),Mr=0}}function xh(){var t=Ca.now(),e=t-di;e>xl&&(hi-=e,di=t)}function Th(){for(var t,e=fi,n,a=1/0;e;)e._call?(a>e._time&&(a=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:fi=n);Oa=t,mo(a)}function mo(t){if(!kr){Ra&&(Ra=clearTimeout(Ra));var e=t-Mr;e>24?(t<1/0&&(Ra=setTimeout(Sl,t-Ca.now()-hi)),Ia&&(Ia=clearInterval(Ia))):(Ia||(di=Ca.now(),Ia=setInterval(xh,xl)),kr=1,Tl(Sl))}}function Al(t,e,n){var a=new gi;return e=e==null?0:+e,a.restart(i=>{a.stop(),t(i+e)},e,n),a}var $h=ri("start","end","cancel","interrupt"),Sh=[],El=0,bl=1,yo=2,vi=3,Rl=4,xo=5,pi=6;function mi(t,e,n,a,i,o){var s=t.__transition;if(!s)t.__transition={};else if(n in s)return;Ah(t,n,{name:e,index:a,group:i,on:$h,tween:Sh,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:El})}function To(t,e){var n=kn(t,e);if(n.state>El)throw new Error("too late; already scheduled");return n}function er(t,e){var n=kn(t,e);if(n.state>vi)throw new Error("too late; already running");return n}function kn(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Ah(t,e,n){var a=t.__transition,i;a[e]=n,n.timer=$l(o,0,n.time);function o(f){n.state=bl,n.timer.restart(s,n.delay,n.time),n.delay<=f&&s(f-n.delay)}function s(f){var g,v,m,S;if(n.state!==bl)return c();for(g in a)if(S=a[g],S.name===n.name){if(S.state===vi)return Al(s);S.state===Rl?(S.state=pi,S.timer.stop(),S.on.call("interrupt",t,t.__data__,S.index,S.group),delete a[g]):+gyo&&a.state180?g+=360:g-f>180&&(f+=360),m.push({i:v.push(i(v)+"rotate(",null,a)-2,x:Qn(f,g)})):g&&v.push(i(v)+"rotate("+g+a)}function l(f,g,v,m){f!==g?m.push({i:v.push(i(v)+"skewX(",null,a)-2,x:Qn(f,g)}):g&&v.push(i(v)+"skewX("+g+a)}function c(f,g,v,m,S,P){if(f!==v||g!==m){var N=S.push(i(S)+"scale(",null,",",null,")");P.push({i:N-4,x:Qn(f,v)},{i:N-2,x:Qn(g,m)})}else(v!==1||m!==1)&&S.push(i(S)+"scale("+v+","+m+")")}return function(f,g){var v=[],m=[];return f=t(f),g=t(g),o(f.translateX,f.translateY,g.translateX,g.translateY,v,m),s(f.rotate,g.rotate,v,m),l(f.skewX,g.skewX,v,m),c(f.scaleX,f.scaleY,g.scaleX,g.scaleY,v,m),f=g=null,function(S){for(var P=-1,N=m.length,L;++P=0&&(e=e.slice(0,n)),!e||e==="start"})}function rg(t,e,n){var a,i,o=ng(e)?To:er;return function(){var s=o(this,t),l=s.on;l!==a&&(i=(a=l).copy()).on(e,n),s.on=i}}function ag(t,e){var n=this._id;return arguments.length<2?kn(this.node(),n).on.on(t):this.each(rg(n,t,e))}function ig(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function og(){return this.on("end.remove",ig(this._id))}function sg(t){var e=this._name,n=this._id;typeof t!="function"&&(t=p(t));for(var a=this._groups,i=a.length,o=new Array(i),s=0;s()=>t;function Mg(t,{sourceEvent:e,target:n,selection:a,mode:i,dispatch:o}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},selection:{value:a,enumerable:!0,configurable:!0},mode:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function Dg(t){t.stopImmediatePropagation()}function Eo(t){t.preventDefault(),t.stopImmediatePropagation()}var Ll={name:"drag"},bo={name:"space"},_r={name:"handle"},ta={name:"center"};const{abs:Nl,max:Sn,min:An}=Math;function Fl(t){return[+t[0],+t[1]]}function Ro(t){return[Fl(t[0]),Fl(t[1])]}var xi={name:"x",handles:["w","e"].map(Pa),input:function(t,e){return t==null?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},Ti={name:"y",handles:["n","s"].map(Pa),input:function(t,e){return t==null?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},Lg={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(Pa),input:function(t){return t==null?null:Ro(t)},output:function(t){return t}},hr={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},Ul={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Ng={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Fg={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function Pa(t){return{type:t}}function Bg(t){return!t.ctrlKey&&!t.button}function Ug(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function zg(){return navigator.maxTouchPoints||"ontouchstart"in this}function Io(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function jg(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function zl(t){var e=t.__brush;return e?e.dim.output(e.selection):null}function Vg(){return Oo(xi)}function Gg(){return Oo(Ti)}function q0(){return Oo(Lg)}function Oo(t){var e=Ug,n=Bg,a=zg,i=!0,o=ri("start","brush","end"),s=6,l;function c(L){var w=L.property("__brush",N).selectAll(".overlay").data([Pa("overlay")]);w.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",hr.overlay).merge(w).each(function(){var W=Io(this).extent;ot(this).attr("x",W[0][0]).attr("y",W[0][1]).attr("width",W[1][0]-W[0][0]).attr("height",W[1][1]-W[0][1])}),L.selectAll(".selection").data([Pa("selection")]).enter().append("rect").attr("class","selection").attr("cursor",hr.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var X=L.selectAll(".handle").data(t.handles,function(W){return W.type});X.exit().remove(),X.enter().append("rect").attr("class",function(W){return"handle handle--"+W.type}).attr("cursor",function(W){return hr[W.type]}),L.each(f).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",m).filter(a).on("touchstart.brush",m).on("touchmove.brush",S).on("touchend.brush touchcancel.brush",P).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}c.move=function(L,w,X){L.tween?L.on("start.brush",function(W){g(this,arguments).beforestart().start(W)}).on("interrupt.brush end.brush",function(W){g(this,arguments).end(W)}).tween("brush",function(){var W=this,H=W.__brush,k=g(W,arguments),K=H.selection,at=t.input(typeof w=="function"?w.apply(this,arguments):w,H.extent),ht=Qr(K,at);function $t(dt){H.selection=dt===1&&at===null?null:ht(dt),f.call(W),k.brush()}return K!==null&&at!==null?$t:$t(1)}):L.each(function(){var W=this,H=arguments,k=W.__brush,K=t.input(typeof w=="function"?w.apply(W,H):w,k.extent),at=g(W,H).beforestart();qr(W),k.selection=K===null?null:K,f.call(W),at.start(X).brush(X).end(X)})},c.clear=function(L,w){c.move(L,null,w)};function f(){var L=ot(this),w=Io(this).selection;w?(L.selectAll(".selection").style("display",null).attr("x",w[0][0]).attr("y",w[0][1]).attr("width",w[1][0]-w[0][0]).attr("height",w[1][1]-w[0][1]),L.selectAll(".handle").style("display",null).attr("x",function(X){return X.type[X.type.length-1]==="e"?w[1][0]-s/2:w[0][0]-s/2}).attr("y",function(X){return X.type[0]==="s"?w[1][1]-s/2:w[0][1]-s/2}).attr("width",function(X){return X.type==="n"||X.type==="s"?w[1][0]-w[0][0]+s:s}).attr("height",function(X){return X.type==="e"||X.type==="w"?w[1][1]-w[0][1]+s:s})):L.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function g(L,w,X){var W=L.__brush.emitter;return W&&(!X||!W.clean)?W:new v(L,w,X)}function v(L,w,X){this.that=L,this.args=w,this.state=L.__brush,this.active=0,this.clean=X}v.prototype={beforestart:function(){return++this.active===1&&(this.state.emitter=this,this.starting=!0),this},start:function(L,w){return this.starting?(this.starting=!1,this.emit("start",L,w)):this.emit("brush",L),this},brush:function(L,w){return this.emit("brush",L,w),this},end:function(L,w){return--this.active===0&&(delete this.state.emitter,this.emit("end",L,w)),this},emit:function(L,w,X){var W=ot(this.that).datum();o.call(L,this.that,new Mg(L,{sourceEvent:w,target:c,selection:t.output(this.state.selection),mode:X,dispatch:o}),W)}};function m(L){if(l&&!L.touches||!n.apply(this,arguments))return;var w=this,X=L.target.__data__.type,W=(i&&L.metaKey?X="overlay":X)==="selection"?Ll:i&&L.altKey?ta:_r,H=t===Ti?null:Ng[X],k=t===xi?null:Fg[X],K=Io(w),at=K.extent,ht=K.selection,$t=at[0][0],dt,st,Vt=at[0][1],vt,Q,St=at[1][0],ct,At,Gt=at[1][1],Bt,Kt,ne=0,le=0,be,Oe=H&&k&&i&&L.shiftKey,Ce,He,Fe=Array.from(L.touches||[L],pe=>{const fn=pe.identifier;return pe=Xn(pe,w),pe.point0=pe.slice(),pe.identifier=fn,pe});qr(w);var dn=g(w,arguments,!0).beforestart();if(X==="overlay"){ht&&(be=!0);const pe=[Fe[0],Fe[1]||Fe[0]];K.selection=ht=[[dt=t===Ti?$t:An(pe[0][0],pe[1][0]),vt=t===xi?Vt:An(pe[0][1],pe[1][1])],[ct=t===Ti?St:Sn(pe[0][0],pe[1][0]),Bt=t===xi?Gt:Sn(pe[0][1],pe[1][1])]],Fe.length>1&&un(L)}else dt=ht[0][0],vt=ht[0][1],ct=ht[1][0],Bt=ht[1][1];st=dt,Q=vt,At=ct,Kt=Bt;var Jt=ot(w).attr("pointer-events","none"),xe=Jt.selectAll(".overlay").attr("cursor",hr[X]);if(L.touches)dn.moved=Lt,dn.ended=Ge;else{var Re=ot(L.view).on("mousemove.brush",Lt,!0).on("mouseup.brush",Ge,!0);i&&Re.on("keydown.brush",Pn,!0).on("keyup.brush",wn,!0),co(L.view)}f.call(w),dn.start(L,W.name);function Lt(pe){for(const fn of pe.changedTouches||[pe])for(const Ga of Fe)Ga.identifier===fn.identifier&&(Ga.cur=Xn(fn,w));if(Oe&&!Ce&&!He&&Fe.length===1){const fn=Fe[0];Nl(fn.cur[0]-fn[0])>Nl(fn.cur[1]-fn[1])?He=!0:Ce=!0}for(const fn of Fe)fn.cur&&(fn[0]=fn.cur[0],fn[1]=fn.cur[1]);be=!0,Eo(pe),un(pe)}function un(pe){const fn=Fe[0],Ga=fn.point0;var br;switch(ne=fn[0]-Ga[0],le=fn[1]-Ga[1],W){case bo:case Ll:{H&&(ne=Sn($t-dt,An(St-ct,ne)),st=dt+ne,At=ct+ne),k&&(le=Sn(Vt-vt,An(Gt-Bt,le)),Q=vt+le,Kt=Bt+le);break}case _r:{Fe[1]?(H&&(st=Sn($t,An(St,Fe[0][0])),At=Sn($t,An(St,Fe[1][0])),H=1),k&&(Q=Sn(Vt,An(Gt,Fe[0][1])),Kt=Sn(Vt,An(Gt,Fe[1][1])),k=1)):(H<0?(ne=Sn($t-dt,An(St-dt,ne)),st=dt+ne,At=ct):H>0&&(ne=Sn($t-ct,An(St-ct,ne)),st=dt,At=ct+ne),k<0?(le=Sn(Vt-vt,An(Gt-vt,le)),Q=vt+le,Kt=Bt):k>0&&(le=Sn(Vt-Bt,An(Gt-Bt,le)),Q=vt,Kt=Bt+le));break}case ta:{H&&(st=Sn($t,An(St,dt-ne*H)),At=Sn($t,An(St,ct+ne*H))),k&&(Q=Sn(Vt,An(Gt,vt-le*k)),Kt=Sn(Vt,An(Gt,Bt+le*k)));break}}At0&&(dt=st-ne),k<0?Bt=Kt-le:k>0&&(vt=Q-le),W=bo,xe.attr("cursor",hr.selection),un(pe));break}default:return}Eo(pe)}function wn(pe){switch(pe.keyCode){case 16:{Oe&&(Ce=He=Oe=!1,un(pe));break}case 18:{W===ta&&(H<0?ct=At:H>0&&(dt=st),k<0?Bt=Kt:k>0&&(vt=Q),W=_r,un(pe));break}case 32:{W===bo&&(pe.altKey?(H&&(ct=At-ne*H,dt=st+ne*H),k&&(Bt=Kt-le*k,vt=Q+le*k),W=ta):(H<0?ct=At:H>0&&(dt=st),k<0?Bt=Kt:k>0&&(vt=Q),W=_r),xe.attr("cursor",hr[X]),un(pe));break}default:return}Eo(pe)}}function S(L){g(this,arguments).moved(L)}function P(L){g(this,arguments).ended(L)}function N(){var L=this.__brush||{selection:null};return L.extent=Ro(e.apply(this,arguments)),L.dim=t,L}return c.extent=function(L){return arguments.length?(e=typeof L=="function"?L:Ao(Ro(L)),c):e},c.filter=function(L){return arguments.length?(n=typeof L=="function"?L:Ao(!!L),c):n},c.touchable=function(L){return arguments.length?(a=typeof L=="function"?L:Ao(!!L),c):a},c.handleSize=function(L){return arguments.length?(s=+L,c):s},c.keyModifiers=function(L){return arguments.length?(i=!!L,c):i},c.on=function(){var L=o.on.apply(o,arguments);return L===o?c:L},c}function Xg(){return typeof globalThis=="object"&&globalThis!==null&&globalThis.Object===Object&&globalThis||typeof global=="object"&&global!==null&&global.Object===Object&&global||typeof self=="object"&&self!==null&&self.Object===Object&&self||Function("return this")()}function Hg(t){const e=typeof(t==null?void 0:t.requestAnimationFrame)=="function"&&typeof(t==null?void 0:t.cancelAnimationFrame)=="function",n=typeof(t==null?void 0:t.requestIdleCallback)=="function"&&typeof(t==null?void 0:t.cancelIdleCallback)=="function",a=o=>setTimeout(o,1),i=o=>clearTimeout(o);return[e?t.requestAnimationFrame:a,e?t.cancelAnimationFrame:i,n?t.requestIdleCallback:a,n?t.cancelIdleCallback:i]}const Ke=Xg(),gn=Ke==null?void 0:Ke.document,[Yg,_0,jl,t1]=Hg(Ke);var Wg=Object.defineProperty,Vl=Object.getOwnPropertySymbols,Kg=Object.prototype.hasOwnProperty,Zg=Object.prototype.propertyIsEnumerable,Gl=(t,e,n)=>e in t?Wg(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Xl=(t,e)=>{for(var n in e||(e={}))Kg.call(e,n)&&Gl(t,n,e[n]);if(Vl)for(var n of Vl(e))Zg.call(e,n)&&Gl(t,n,e[n]);return t};const De=t=>t||t===0,ve=t=>typeof t=="function",ze=t=>typeof t=="string",he=t=>typeof t=="number",ln=t=>typeof t=="undefined",Qe=t=>typeof t!="undefined",Co=t=>typeof t=="boolean",Jg=t=>Math.ceil(t/10)*10,$i=t=>Math.ceil(t)+.5,Dr=t=>t[1]-t[0],nr=t=>typeof t=="object",qn=t=>ln(t)||t===null||ze(t)&&t.length===0||nr(t)&&!(t instanceof Date)&&Object.keys(t).length===0||he(t)&&isNaN(t),cn=t=>!qn(t),je=t=>Array.isArray(t),Be=t=>t&&!(t!=null&&t.nodeType)&&nr(t)&&!je(t);function $r(t,e,n){return Qe(t[e])?t[e]:n}function Qg(t,e){let n=!1;return Object.keys(t).forEach(a=>t[a]===e&&(n=!0)),n}function _e(t,e,...n){const a=ve(t);return a&&t.call(e,...n),a}function Si(t,e){let n=0;const a=function(...i){!--n&&e.apply(this,...i)};"duration"in t?t.each(()=>++n).on("end",a):(++n,t.call(a))}function Po(t){return ze(t)?t.replace(/<(script|img)?/ig,"<").replace(/(script)?>/ig,">"):t}function wa(t,e,n=[-1,1],a=!1){if(!(!t||!ze(e)))if(e.indexOf(` +`)===-1)t.text(e);else{const i=[t.text(),e].map(o=>o.replace(/[\s\n]/g,""));if(i[0]!==i[1]){const o=e.split(` +`),s=a?o.length-1:1;t.html(""),o.forEach((l,c)=>{t.append("tspan").attr("x",0).attr("dy",`${c===0?n[0]*s:n[1]}em`).text(l)})}}}function Hl(t){const{x:e,y:n,width:a,height:i}=t.getBBox();return[{x:e,y:n+i},{x:e,y:n},{x:e+a,y:n},{x:e+a,y:n+i}]}function Yl(t){const{width:e,height:n}=t.getBoundingClientRect(),a=Hl(t),i=a[0].x,o=Math.min(a[0].y,a[1].y);return{x:i,y:o,width:e,height:n}}function Hn(t,e){var n;const a=t&&((n=t.touches||t.sourceEvent&&t.sourceEvent.touches)==null?void 0:n[0]);let i=[0,0];try{i=Xn(a||t,e)}catch(o){}return i.map(o=>isNaN(o)?0:o)}function Wl(t){const{event:e,$el:n}=t,a=n.subchart.main||n.main;let i;return e&&e.type==="brush"?i=e.selection:a&&(i=a.select(".bb-brush").node())&&(i=zl(i)),i}function Ma(t){return!("rect"in t)||"rect"in t&&t.hasAttribute("width")&&t.rect.width!==+t.getAttribute("width")?t.rect=t.getBoundingClientRect():t.rect}function gr(t=!0,e=0,n=1e4){const a=Ke.crypto||Ke.msCrypto,i=a?e+a.getRandomValues(new Uint32Array(1))[0]%(n-e+1):Math.floor(Math.random()*(n-e)+e);return t?String(i):i}function wo(t,e,n,a,i){if(n>a)return-1;const o=Math.floor((n+a)/2);let{x:s,w:l=0}=t[o];return i&&(s=t[o].y,l=t[o].h),e>=s&&e<=s+l?o:e{if(Be(n)&&n.constructor){const a=new n.constructor;for(const i in n)a[i]=e(n[i]);return a}return n};return t.map(n=>e(n)).reduce((n,a)=>Xl(Xl({},n),a))}function yn(t={},e){je(e)&&e.forEach(n=>yn(t,n));for(const n in e)/^\d+$/.test(n)||n in t||(t[n]=e[n]);return t}const Cn=t=>t.charAt(0).toUpperCase()+t.slice(1);function qg(t,e="-"){return t.split(e).map((n,a)=>a?n.charAt(0).toUpperCase()+n.slice(1).toLowerCase():n.toLowerCase()).join("")}const Lr=t=>[].slice.call(t);function _g(t,e,n){const{rootSelector:a="",sheet:i}=t,s=`${a} ${(l=>l.replace(/\s?(bb-)/g,".$1").replace(/\.+/g,"."))(e)} {${n.join(";")}}`;return i[i.insertRule?"insertRule":"addRule"](s,i.cssRules.length)}function tv(t){let e=[];return t.forEach(n=>{var a;try{n.cssRules&&n.cssRules.length&&(e=e.concat(Lr(n.cssRules)))}catch(i){(a=Ke.console)==null||a.warn(`Error while reading rules from ${n.href}: ${i.toString()}`)}}),e}function Zl(t){var e,n,a,i,o,s;return{x:((n=(e=Ke.pageXOffset)!=null?e:Ke.scrollX)!=null?n:0)+((a=t.scrollLeft)!=null?a:0),y:((o=(i=Ke.pageYOffset)!=null?i:Ke.scrollY)!=null?o:0)+((s=t.scrollTop)!=null?s:0)}}function Ai(t,e=0,n=0,a=!0){const i=new DOMPoint(e,n),o=t.getScreenCTM(),s=i.matrixTransform(a?o==null?void 0:o.inverse():o);if(a===!1){const l=t.getBoundingClientRect();s.x-=l.x,s.y-=l.y}return s}function Jl(t){const e=t?t.transform:null,n=e&&e.baseVal;return n&&n.numberOfItems?n.getItem(0).matrix:{a:0,b:0,c:0,d:0,e:0,f:0}}function Mo(t){const e=t[0]instanceof Date,n=(e?t.map(Number):t).filter((a,i,o)=>o.indexOf(a)===i);return e?n.map(a=>new Date(a)):n}function Do(t){return t&&t.length?t.reduce((e,n)=>e.concat(n)):[]}function ea(t,...e){if(!e.length||e.length===1&&!e[0])return t;const n=e.shift();return Be(t)&&Be(n)&&Object.keys(n).forEach(a=>{if(!/^(__proto__|constructor|prototype)$/i.test(a)){const i=n[a];Be(i)?(!t[a]&&(t[a]={}),t[a]=ea(t[a],i)):t[a]=je(i)?i.concat():i}}),ea(t,...e)}function na(t,e=!0){let n;return t[0]instanceof Date?n=e?(a,i)=>a-i:(a,i)=>i-a:e&&!t.every(isNaN)?n=(a,i)=>a-i:e||(n=(a,i)=>a>i&&-1||acn(a));return n.length?he(n[0])?n=Math[t](...n):n[0]instanceof Date&&(n=na(n,t==="min")[0]):n=void 0,n}const Ei=(t,e,n=1)=>{const a=[],i=Math.max(0,Math.ceil((e-t)/n))|0;for(let o=t;o{const t=()=>({bubbles:!1,cancelable:!1,screenX:0,screenY:0,clientX:0,clientY:0});try{return new MouseEvent("t"),(e,n,a=t())=>{e.dispatchEvent(new MouseEvent(n,a))}}catch(e){return(n,a,i=t())=>{const o=gn.createEvent("MouseEvent");o.initMouseEvent(a,i.bubbles,i.cancelable,Ke,0,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),n.dispatchEvent(o)}}})(),touch:(t,e,n)=>{const a=new Touch(ea({identifier:Date.now(),target:t,radiusX:2.5,radiusY:2.5,rotationAngle:10,force:.5},n));t.dispatchEvent(new TouchEvent(e,{cancelable:!0,bubbles:!0,shiftKey:!0,touches:[a],targetTouches:[],changedTouches:[a]}))}};function bi(t,e){let n=t;for(const a in e)n=n.replace(new RegExp(`{=${a}}`,"g"),e[a]);return n}function Yn(t){var e;let n;if(t instanceof Date)n=t;else if(ze(t)){const{config:a,format:i}=this;n=(e=i.dataTime(a.data_xFormat)(t))!=null?e:new Date(t)}else he(t)&&!isNaN(t)&&(n=new Date(+t));return(!n||isNaN(+n))&&console&&console.error&&console.error(`Failed to parse x '${t}' to Date object`),n}function Lo(t){const e=t.attr("viewBox");return e?/(\d+(\.\d+)?){3}/.test(e):!1}function nv(t,e,n=!1){const a=!!t.node;let i=!1;for(const[o,s]of Object.entries(e))if(i=a?t.style(o)===s:t.style[o]===s,n===!1&&i)break;return i}function Da(){var t,e;return((t=gn)==null?void 0:t.hidden)===!1||((e=gn)==null?void 0:e.visibilityState)==="visible"}function rv(t,e){const{DocumentTouch:n,matchMedia:a,navigator:i}=Ke,o=a==null?void 0:a("(pointer:coarse)").matches;let s=!1;if(e)if(i&&"maxTouchPoints"in i)s=i.maxTouchPoints>0;else if("ontouchmove"in Ke||n&&gn instanceof n)s=!0;else if(o)s=!0;else{const c=i.userAgent;s=/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(c)||/\b(Android|Windows Phone|iPad|iPod)\b/i.test(c)}return t&&!o&&(a==null?void 0:a("(pointer:fine)").matches)&&"mouse"||s&&"touch"||"mouse"}function Ql(t,e){e()===!1?Yg(()=>Ql(t,e)):t()}var av=Object.defineProperty,kl=Object.getOwnPropertySymbols,iv=Object.prototype.hasOwnProperty,ov=Object.prototype.propertyIsEnumerable,No=(t,e,n)=>e in t?av(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ql=(t,e)=>{for(var n in e||(e={}))iv.call(e,n)&&No(t,n,e[n]);if(kl)for(var n of kl(e))ov.call(e,n)&&No(t,n,e[n]);return t},sv=(t,e,n)=>No(t,typeof e!="symbol"?e+"":e,n);const _l=class bf{static setOptions(e){this.data=e.reduce((n,a)=>ql(ql({},n),a),this.data)}constructor(){return kg(Vd,Ud,Hd,zd,Yd,jd,Gd,Xd,bf.data)}};sv(_l,"data",{});let Nr=_l;class lv{constructor(){return{chart:null,main:null,svg:null,axis:{x:null,y:null,y2:null,subX:null},axisTooltip:{x:null,y:null,y2:null},defs:null,tooltip:null,legend:null,title:null,subchart:{main:null,bar:null,line:null,area:null},arcs:null,bar:null,candlestick:null,line:null,area:null,circle:null,radar:null,text:null,grid:{main:null,x:null,y:null},gridLines:{main:null,x:null,y:null},region:{main:null,list:null},eventRect:null,zoomResetBtn:null}}}class cv{constructor(){return{width:0,width2:0,height:0,height2:0,margin:{top:0,bottom:0,left:0,right:0},margin2:{top:0,bottom:0,left:0,right:0},margin3:{top:0,bottom:0,left:0,right:0},arcWidth:0,arcHeight:0,xAxisHeight:0,hasAxis:!1,hasFunnel:!1,hasRadar:!1,hasTreemap:!1,cssRule:{},current:{domain:void 0,width:0,height:0,dataMax:0,maxTickSize:{x:{width:0,height:0,ticks:[],clipPath:0,domain:""},y:{width:0,height:0,domain:""},y2:{width:0,height:0,domain:""}},types:[],needle:void 0},isLegendRight:!1,isLegendInset:!1,isLegendTop:!1,isLegendLeft:!1,legendStep:0,legendItemWidth:0,legendItemHeight:0,legendHasRendered:!1,eventReceiver:{currentIdx:-1,rect:{},data:[],coords:[]},axis:{x:{padding:{left:0,right:0},tickCount:0}},rotatedPadding:{left:30,right:0,top:5},withoutFadeIn:{},inputType:"",datetimeId:"",clip:{id:"",idXAxis:"",idYAxis:"",idXAxisTickTexts:"",idGrid:"",idSubchart:"",path:"",pathXAxis:"",pathYAxis:"",pathXAxisTickTexts:"",pathGrid:""},event:null,dragStart:null,dragging:!1,flowing:!1,cancelClick:!1,mouseover:!1,rendered:!1,transiting:!1,redrawing:!1,resizing:!1,toggling:!1,zooming:!1,hasNegativeValue:!1,hasPositiveValue:!0,orgAreaOpacity:"0.2",orgConfig:{},hiddenTargetIds:[],hiddenLegendIds:[],focusedTargetIds:[],defocusedTargetIds:[],radius:0,innerRadius:0,outerRadius:void 0,innerRadiusRatio:0,gaugeArcWidth:0,radiusExpanded:0,xgridAttr:{x1:null,x2:null,y1:null,y2:null}}}}const tc={element:lv,state:cv};class uv{constructor(){Object.keys(tc).forEach(e=>{this[e]=new tc[e]})}getStore(e){return this[e]}}var fv=Object.defineProperty,dv=(t,e,n)=>e in t?fv(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,hv=(t,e,n)=>dv(t,typeof e!="symbol"?e+"":e,n);const Ln={bubbleBaseLength:"$baseLength",colorPattern:"__colorPattern__",dataMinMax:"$dataMinMax",dataTotalSum:"$dataTotalSum",dataTotalPerIndex:"$totalPerIndex",legendItemTextBox:"legendItemTextBox",radarPoints:"$radarPoints",radarTextWidth:"$radarTextWidth",setOverOut:"setOverOut",callOverOutForTouch:"callOverOutForTouch",textRect:"textRect"};class gv{constructor(){hv(this,"cache",{})}add(e,n,a=!1){return this.cache[e]=a?this.cloneTarget(n):n,this.cache[e]}remove(e){(ze(e)?[e]:e).forEach(n=>delete this.cache[n])}get(e,n=!1){if(n&&Array.isArray(e)){const a=[];for(let i=0,o;o=e[i];i++)o in this.cache&&a.push(this.cloneTarget(this.cache[o]));return a}else{const a=this.cache[e];return De(a)?a:null}}reset(e){const n=this;for(const a in n.cache)(e||/^\$/.test(a))&&(n.cache[a]=null)}cloneTarget(e){return{id:e.id,id_org:e.id_org,values:e.values.map(n=>({x:n.x,value:n.value,id:n.id}))}}}const oe={AREA:"area",AREA_LINE_RANGE:"area-line-range",AREA_SPLINE:"area-spline",AREA_SPLINE_RANGE:"area-spline-range",AREA_STEP:"area-step",AREA_STEP_RANGE:"area-step-range",BAR:"bar",BUBBLE:"bubble",CANDLESTICK:"candlestick",DONUT:"donut",FUNNEL:"funnel",GAUGE:"gauge",LINE:"line",PIE:"pie",POLAR:"polar",RADAR:"radar",SCATTER:"scatter",SPLINE:"spline",STEP:"step",TREEMAP:"treemap"},Fo={AREA:"initArea",AREA_LINE_RANGE:"initArea",AREA_SPLINE:"initArea",AREA_SPLINE_RANGE:"initArea",AREA_STEP:"initArea",AREA_STEP_RANGE:"initArea",BAR:"initBar",BUBBLE:"initCircle",CANDLESTICK:"initCandlestick",DONUT:"initArc",FUNNEL:"initFunnel",GAUGE:"initArc",LINE:"initLine",PIE:"initArc",POLAR:"initPolar",RADAR:"initCircle",SCATTER:"initCircle",SPLINE:"initLine",STEP:"initLine",TREEMAP:"initTreemap"},Sr={Area:[oe.AREA,oe.AREA_SPLINE,oe.AREA_SPLINE_RANGE,oe.AREA_LINE_RANGE,oe.AREA_STEP,oe.AREA_STEP_RANGE],AreaRange:[oe.AREA_SPLINE_RANGE,oe.AREA_LINE_RANGE,oe.AREA_STEP_RANGE],Arc:[oe.PIE,oe.DONUT,oe.GAUGE,oe.POLAR,oe.RADAR],Line:[oe.LINE,oe.SPLINE,oe.AREA,oe.AREA_SPLINE,oe.AREA_SPLINE_RANGE,oe.AREA_LINE_RANGE,oe.STEP,oe.AREA_STEP,oe.AREA_STEP_RANGE],Step:[oe.STEP,oe.AREA_STEP,oe.AREA_STEP_RANGE],Spline:[oe.SPLINE,oe.AREA_SPLINE,oe.AREA_SPLINE_RANGE]};function vv(t){const e=t,{config:n}=e;let a="";if(qn(n.data_type||n.data_types)&&!e[Fo.LINE])a="line";else for(const i in Fo){const o=oe[i];if(e.hasType(o)&&!e[Fo[i]]){a=o;break}}a&&pv(`Please, make sure if %c${qg(a)}`,"module has been imported and specified correctly.","https://github.com/naver/billboard.js/wiki/CHANGELOG-v2#modularization-by-its-functionality")}function pv(t,e,n){var a;const i="[billboard.js]";if((a=Ke.console)==null?void 0:a.error){const s=e?["background:red;color:white;display:block;font-size:15px",e]:[];console.error(`\u274C ${i} ${t}`,"background:red;color:white;display:block;font-size:15px",...s),n&&console.info("%c\u2139\uFE0F","font-size:15px",n)}throw Error(`${i} ${t.replace(/\%c([a-z-]+)/i,"'$1' ")} ${e!=null?e:""}`)}const{setTimeout:mv,clearTimeout:yv}=Ke;function xv(t){const e=[];let n;const a=function(){a.clear(),t===!1?jl(()=>{e.forEach(i=>i())},{timeout:200}):n=mv(()=>{e.forEach(i=>i())},he(t)?t:200)};return a.clear=()=>{n&&(yv(n),n=null)},a.add=i=>e.push(i),a.remove=i=>e.splice(e.indexOf(i),1),a}function ec(){let t=[];const e=function(n,a){function i(){var o;let s=0;for(let l=0,c;c=t[l];l++){if(c===!0||(o=c.empty)!=null&&o.call(c)){s++;continue}if(Da()===!1){s=t.length;break}try{c.transition()}catch(f){s++}}return s===t.length}Ql(()=>{a==null||a()},i)};return e.add=function(n){je(n)?t=t.concat(n):t.push(n)},e}const Bo={};function Tv(t,e){var n;const a=t.toString(),i=a.replace(/(function|[\s\W\n])/g,"").substring(0,15);return i in Bo||(Bo[i]=new Ke.Blob([`${(n=e==null?void 0:e.map(String).join(";"))!=null?n:""} + + self.onmessage=function({data}) { + const result = (${a}).apply(null, data); + self.postMessage(result); + };`],{type:"text/javascript"})),Ke.URL.createObjectURL(Bo[i])}function $v(t){const e=new Ke.Worker(t);return e.onerror=function(n){console.error?console.error(n):console.log(n)},e}function Uo(t=!0,e,n,a){let i=function(...o){const s=e(...o);n(s)};if(Ke.Worker&&t){const o=Tv(e,a),s=$v(o);i=function(...l){s.postMessage(l),s.onmessage=function(c){return Ke.URL.revokeObjectURL(o),n(c.data)}}}return i}var nc={},zo={},jo=34,La=10,Vo=13;function rc(t){return new Function("d","return {"+t.map(function(e,n){return JSON.stringify(e)+": d["+n+'] || ""'}).join(",")+"}")}function Sv(t,e){var n=rc(t);return function(a,i){return e(n(a),i,t)}}function ac(t){var e=Object.create(null),n=[];return t.forEach(function(a){for(var i in a)i in e||n.push(e[i]=i)}),n}function Nn(t,e){var n=t+"",a=n.length;return a9999?"+"+Nn(t,6):Nn(t,4)}function Ev(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),a=t.getUTCSeconds(),i=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":Av(t.getUTCFullYear(),4)+"-"+Nn(t.getUTCMonth()+1,2)+"-"+Nn(t.getUTCDate(),2)+(i?"T"+Nn(e,2)+":"+Nn(n,2)+":"+Nn(a,2)+"."+Nn(i,3)+"Z":a?"T"+Nn(e,2)+":"+Nn(n,2)+":"+Nn(a,2)+"Z":n||e?"T"+Nn(e,2)+":"+Nn(n,2)+"Z":"")}function ic(t){var e=new RegExp('["'+t+` +\r]`),n=t.charCodeAt(0);function a(v,m){var S,P,N=i(v,function(L,w){if(S)return S(L,w-1);P=L,S=m?Sv(L,m):rc(L)});return N.columns=P||[],N}function i(v,m){var S=[],P=v.length,N=0,L=0,w,X=P<=0,W=!1;v.charCodeAt(P-1)===La&&--P,v.charCodeAt(P-1)===Vo&&--P;function H(){if(X)return zo;if(W)return W=!1,nc;var K,at=N,ht;if(v.charCodeAt(at)===jo){for(;N++=P?X=!0:(ht=v.charCodeAt(N++))===La?W=!0:ht===Vo&&(W=!0,v.charCodeAt(N)===La&&++N),v.slice(at+1,K-1).replace(/""/g,'"')}for(;N0){if(typeof e[s-1]=="undefined"&&(e[s-1]={}),typeof o=="undefined")throw new Error(`Source data is missing a component at (${a}, ${s})!`);e[s-1][i]=o}})}),e}function Xo(t){const e=t[0],n=[];return t.forEach(function(a,i){if(i>0){const o={};a.forEach(function(s,l){if(typeof s=="undefined")throw new Error(`Source data is missing a component at (${i}, ${l})!`);o[e[l]]=s}),n.push(o)}}),n}function oc(t,e){const n=[];let a,i;if(Array.isArray(t)){const o=function(s,l){if(s[l]!==void 0)return s[l];const f=l.replace(/\[(\w+)\]/g,".$1").replace(/^\./,"").split(".");let g=s;return f.some(function(v){return!(g=g&&v in g?g[v]:void 0)}),g};e.x?a=e.value.concat(e.x):a=e.value,n.push(a),t.forEach(function(s){const l=a.map(function(c){let f=o(s,c);return typeof f=="undefined"&&(f=null),f});n.push(l)}),i=Xo(n)}else Object.keys(t).forEach(function(o){var s;const l=t[o].concat();(s=l.unshift)==null||s.call(l,o),n.push(l)}),i=Go(n);return i}function Cv(t,e="csv",n,a,i){const o=new XMLHttpRequest,s={csv:Pv,tsv:wv,json:oc};o.open("GET",t),n&&Object.keys(n).forEach(function(l){o.setRequestHeader(l,n[l])}),o.onreadystatechange=function(){if(o.readyState===4)if(o.status===200){const l=o.responseText;l&&i.call(this,s[e](e==="json"?JSON.parse(l):l,a))}else throw new Error(`${t}: Something went wrong loading!`)},o.send()}function sc(t,e){const n=t.rows(e);let a;return n.length===1?(a=[{}],n[0].forEach(i=>{a[0][i]=null})):a=t.parse(e),a}function Pv(t){return sc({rows:Rv,parse:bv},t)}function wv(t){return sc({rows:Ov,parse:Iv},t)}function lc(t,e){const n=t||(e==null?void 0:e.data_keys);return n!=null&&n.x&&(e.data_x=n.x),n}var Mv={convertData(t,e){const{config:n}=this,a=n.boost_useWorker;let i=t;if(t.bindto&&(i={},["url","mimeType","headers","keys","json","keys","rows","columns"].forEach(o=>{const s=`data_${o}`;s in t&&(i[o]=t[s])})),i.url&&e)Cv(i.url,i.mimeType,i.headers,lc(i.keys,n),e);else if(i.json)Uo(a,oc,e,[Go,Xo])(i.json,lc(i.keys,n));else if(i.rows)Uo(a,Xo,e)(i.rows);else if(i.columns)Uo(a,Go,e)(i.columns);else if(t.bindto)throw Error("url or json or rows or columns is required.")},convertDataToTargets(t,e){const n=this,{axis:a,config:i,state:o}=n,s=i.data_type;let l=!1,c=!1,f=!1;a&&(l=a.isCategorized(),c=a.isTimeSeries(),f=a.isCustomX());const g=Object.keys(t[0]||{}),v=g.length?g.filter(n.isNotX,n):[],m=g.length?g.filter(n.isX,n):[];let S;v.forEach(N=>{const L=this.getXKey(N);f||c?m.indexOf(L)>=0?S=(e&&n.data.xs[N]||[]).concat(t.map(w=>w[L]).filter(De).map((w,X)=>n.generateTargetX(w,N,X))):i.data_x?S=this.getOtherTargetXs():cn(i.data_xs)&&(S=n.getXValuesOfXKey(L,n.data.targets)):S=t.map((w,X)=>X),S&&(this.data.xs[N]=S)}),v.forEach(N=>{if(!this.data.xs[N])throw new Error(`x is not defined for id = "${N}".`)});const P=v.map((N,L)=>{const w=i.data_idConverter.bind(n.api)(N),X=n.getXKey(N),W=f&&l,H=W&&t.map(at=>at.x).every(at=>i.axis_x_categories.indexOf(at)>-1),k=t.__append__,K=X===null&&k?n.api.data.values(N).length:0;return{id:w,id_org:N,values:t.map((at,ht)=>{const $t=at[X];let dt=at[N],st;return dt=dt!==null&&!isNaN(dt)&&!Be(dt)?+dt:je(dt)||Be(dt)?dt:null,(W||o.hasRadar)&&L===0&&!ln($t)?(!H&&L===0&&ht===0&&!k&&(i.axis_x_categories=[]),st=i.axis_x_categories.indexOf($t),st===-1&&(st=i.axis_x_categories.length,i.axis_x_categories.push($t))):st=n.generateTargetX($t,N,K+ht),(ln(dt)||n.data.xs[N].length<=ht)&&(st=void 0),{x:st,value:dt,id:w,index:-1}}).filter(at=>Qe(at.x))}});if(P.forEach(N=>{var L;i.data_xSort&&(N.values=N.values.sort((w,X)=>{const W=w.x||w.x===0?w.x:1/0,H=X.x||X.x===0?X.x:1/0;return W-H})),N.values.forEach((w,X)=>w.index=X),(L=n.data.xs[N.id])==null||L.sort((w,X)=>w-X)}),o.hasNegativeValue=n.hasNegativeValueInTargets(P),o.hasPositiveValue=n.hasPositiveValueInTargets(P),s&&n.isValidChartType(s)){const N=n.mapToIds(P).filter(L=>!(L in i.data_types)||!n.isValidChartType(i.data_types[L]));n.setTargetType(N,s)}return P.forEach(N=>n.cache.add(N.id_org,N,!0)),P}},Dv={isX(t){const e=this,{config:n}=e,a=n.data_x&&t===n.data_x,i=cn(n.data_xs)&&Qg(n.data_xs,t);return a||i},isNotX(t){return!this.isX(t)},isStackNormalized(){const{config:t}=this;return!!(t.data_stack_normalize&&t.data_groups.length)},isGrouped(t){const e=this.config.data_groups;return t?e.some(n=>n.indexOf(t)>=0&&n.length>1):e.length>0},getXKey(t){const e=this,{config:n}=e;return n.data_x?n.data_x:cn(n.data_xs)?n.data_xs[t]:null},getXValuesOfXKey(t,e){const n=this,a=e&&cn(e)?n.mapToIds(e):[];let i;return a.forEach(o=>{n.getXKey(o)===t&&(i=n.data.xs[o])}),i},getIndexByX(t,e){const n=this;return e?e.indexOf(ze(t)?t:+t):(n.filterByX(n.data.targets,t)[0]||{index:null}).index},getXValue(t,e){const n=this;return t in n.data.xs&&n.data.xs[t]&&De(n.data.xs[t][e])?n.data.xs[t][e]:e},getOtherTargetXs(){const t=this,e=Object.keys(t.data.xs);return e.length?t.data.xs[e[0]]:null},getOtherTargetX(t){const e=this.getOtherTargetXs();return e&&t{n.data_xs[a]=t[a]})},isMultipleX(){return!this.config.axis_x_forceAsSingle&&(cn(this.config.data_xs)||this.hasType("bubble")||this.hasType("scatter"))},addName(t){const e=this,{config:n}=e;let a;return t&&(a=n.data_names[t.id],t.name=a!==void 0?a:t.id),t},getAllValuesOnIndex(t,e=!1){const n=this;let a=n.filterTargetsToShow(n.data.targets).map(i=>n.addName(n.getValueOnIndex(i.values,t)));return e&&(a=a.filter(i=>i&&"value"in i&&De(i.value))),a},getValueOnIndex(t,e){const n=t.filter(a=>a.index===e);return n.length?n[0]:null},updateTargetX(t,e){const n=this;t.forEach(a=>{a.values.forEach((i,o)=>{i.x=n.generateTargetX(e[o],a.id,o)}),n.data.xs[a.id]=e})},updateTargetXs(t,e){const n=this;t.forEach(a=>{e[a.id]&&n.updateTargetX([a],e[a.id])})},generateTargetX(t,e,n){const a=this,{axis:i}=a;let o=i!=null&&i.isCategorized()?n:t||n;if(i!=null&&i.isTimeSeries()){const s=Yn.bind(a);o=s(t||a.getXValue(e,n))}else i!=null&&i.isCustomX()&&!(i!=null&&i.isCategorized())&&(o=De(t)?+t:a.getXValue(e,n));return o},updateXs(t){t.length&&(this.axis.xs=t.map(e=>e.x))},getPrevX(t){const e=this.axis.xs[t-1];return Qe(e)?e:null},getNextX(t){const e=this.axis.xs[t+1];return Qe(e)?e:null},getBaseValue(t){const e=this,{hasAxis:n}=e.state;let{value:a}=t;return a&&n&&(e.isAreaRangeType(t)?a=e.getRangedData(t,"mid"):e.isBubbleZType(t)&&(a=e.getBubbleZData(a,"y"))),a},getMinMaxValue(t){const e=this.getBaseValue.bind(this);let n,a;return(t||this.data.targets.map(i=>i.values)).forEach((i,o)=>{const s=i.map(e).filter(he);n=Math.min(o?n:1/0,...s),a=Math.max(o?a:-1/0,...s)}),{min:n,max:a}},getMinMaxData(){const t=this,e=Ln.dataMinMax;let n=t.cache.get(e);if(!n){const a=t.data.targets.map(l=>l.values),i=t.getMinMaxValue(a);let o=[],s=[];a.forEach(l=>{const c=t.getFilteredDataByValue(l,i.min),f=t.getFilteredDataByValue(l,i.max);c.length&&(o=o.concat(c)),f.length&&(s=s.concat(f))}),t.cache.add(e,n={min:o,max:s})}return n},getTotalPerIndex(){const t=this,e=Ln.dataTotalPerIndex;let n=t.cache.get(e);return(t.config.data_groups.length||t.isStackNormalized())&&!n&&(n=[],t.data.targets.forEach(a=>{a.values.forEach((i,o)=>{n[o]||(n[o]=0),n[o]+=he(i.value)?i.value:0})})),n},getTotalDataSum(t){const e=this,n=Ln.dataTotalSum;let a=e.cache.get(n);if(!he(a)){const i=Do(e.data.targets.map(o=>o.values)).map(o=>o.value);a=i.length?i.reduce((o,s)=>o+s):0,e.cache.add(n,a)}return t&&(a-=e.getHiddenTotalDataSum()),a},getHiddenTotalDataSum(){const t=this,{api:e,state:{hiddenTargetIds:n}}=t;let a=0;return n.length&&(a=e.data.values.bind(e)(n).reduce((i,o)=>i+o)),a},getFilteredDataByValue(t,e){return t.filter(n=>this.getBaseValue(n)===e)},getMaxDataCount(){return Math.max(...this.data.targets.map(t=>t.values.length),0)},getMaxDataCountTarget(){let t=this.filterTargetsToShow()||[];const e=t.length,n=this.config.axis_x_inverted;return e>1?(t=t.map(a=>a.values).reduce((a,i)=>a.concat(i)).map(a=>a.x),t=na(Mo(t)).map((a,i,o)=>({x:a,index:n?o.length-i-1:i}))):e&&(t=t[0].values.concat()),t},mapToIds(t){return t.map(e=>e.id)},mapToTargetIds(t){const e=this;return t?je(t)?t.concat():[t]:e.mapToIds(e.data.targets)},hasTarget(t,e){const n=this.mapToIds(t);for(let a=0,i;i=n[a];a++)if(i===e)return!0;return!1},isTargetToShow(t){return this.state.hiddenTargetIds.indexOf(t)<0},isLegendToShow(t){return this.state.hiddenLegendIds.indexOf(t)<0},filterTargetsToShow(t){const e=this;return(t||e.data.targets).filter(n=>e.isTargetToShow(n.id))},mapTargetsToUniqueXs(t){const e=this,{axis:n}=e;let a=[];return t!=null&&t.length&&(a=Mo(Do(t.map(i=>i.values.map(o=>+o.x)))),a=n!=null&&n.isTimeSeries()?a.map(i=>new Date(+i)):a.map(Number)),na(a)},addTargetIds(t,e){const{state:n}=this;(je(e)?e:[e]).forEach(i=>{n[t].indexOf(i)<0&&n[t].push(i)})},removeTargetIds(t,e){const{state:n}=this;(je(e)?e:[e]).forEach(i=>{const o=n[t].indexOf(i);o>=0&&n[t].splice(o,1)})},addHiddenTargetIds(t){this.addTargetIds("hiddenTargetIds",t)},removeHiddenTargetIds(t){this.removeTargetIds("hiddenTargetIds",t)},addHiddenLegendIds(t){this.addTargetIds("hiddenLegendIds",t)},removeHiddenLegendIds(t){this.removeTargetIds("hiddenLegendIds",t)},getValuesAsIdKeyed(t){const e=this,{hasAxis:n}=e.state,a={},i=e.isMultipleX(),o=i?e.mapTargetsToUniqueXs(t).map(s=>ze(s)?s:+s):null;return t.forEach(s=>{const l=[];s.values.filter(({value:c})=>De(c)||c===null).forEach(c=>{let{value:f}=c;f!==null&&e.isCandlestickType(c)&&(f=je(f)?f.slice(0,4):[f.open,f.high,f.low,f.close]),je(f)?l.push(...f):Be(f)&&"high"in f?l.push(...Object.values(f)):e.isBubbleZType(c)?l.push(n&&e.getBubbleZData(f,"y")):i?l[e.getIndexByX(c.x,o)]=f:l.push(f)}),a[s.id]=l}),a},checkValueInTargets(t,e){const n=Object.keys(t);let a;for(let i=0;i1},hasNegativeValueInTargets(t){return this.checkValueInTargets(t,e=>e<0)},hasPositiveValueInTargets(t){return this.checkValueInTargets(t,e=>e>0)},orderTargets(t){const e=this,n=[...t],a=e.getSortCompareFn();return a&&n.sort(a),n},getSortCompareFn(t=!1){const e=this,{config:n}=e,a=n.data_order,i=/asc/i.test(a),o=/desc/i.test(a);let s;if(i||o){const l=(f,g)=>f+Math.abs(g.value),c=f=>he(f)?f:"values"in f?f.values.reduce(l,0):f.value;s=(f,g)=>{const v=c(f),m=c(g);return t?i?v-m:m-v:i?m-v:v-m}}else ve(a)&&(s=a.bind(e.api));return s||null},filterByX(t,e){return Do(t.map(n=>n.values)).filter(n=>n.x-e===0)},filterRemoveNull(t){return t.filter(e=>De(this.getBaseValue(e)))},filterByXDomain(t,e){return t.map(n=>({id:n.id,id_org:n.id_org,values:n.values.filter(a=>e[0]<=a.x&&a.x<=e[1])}))},hasDataLabel(){const t=this.config.data_labels;return Co(t)&&t||nr(t)&&cn(t)},hasNullDataValue(t){return t.some(({value:e})=>e===null)},getDataIndexFromEvent(t){const e=this,{$el:n,config:a,state:{hasRadar:i,inputType:o,eventReceiver:{coords:s,rect:l}}}=e;let c;if(i){let f=t.target;/tspan/i.test(f.tagName)&&(f=f.parentNode);const g=ot(f).datum();c=g&&Object.keys(g).length===1?g.index:void 0}else{const f=a.axis_rotated,g=Zl(n.chart.node()),v=o==="touch"&&t.changedTouches?t.changedTouches[0]:t;let m=f?v.clientY+g.y:v.clientX+g.x;if(Lo(n.svg)){const S=[m,0];f&&S.reverse(),m=Ai(n.eventRect.node(),...S)[f?"y":"x"]}else m-=f?l.top:l.left;c=wo(s,m,0,s.length-1,f)}return c},getDataLabelLength(t,e,n){const a=this,i=[0,0],o=1.3;return a.$el.chart.select("svg").selectAll(".dummy").data([t,e]).enter().append("text").text(s=>a.dataLabelFormat(s.id)(s)).each(function(s,l){i[l]=this.getBoundingClientRect()[n]*o}).remove(),i},isNoneArc(t){return this.hasTarget(this.data.targets,t.id)},isArc(t){return"data"in t&&this.hasTarget(this.data.targets,t.data.id)},findSameXOfValues(t,e){const n=t[e].x,a=[];let i;for(i=e-1;i>=0&&n===t[i].x;i--)a.push(t[i]);for(i=e;in.findClosest(i.values,e));return n.findClosest(a,e)},findClosest(t,e){const n=this,{$el:{main:a}}=n,i=t.filter(l=>l&&De(l.value));let o,s;return i.filter(l=>n.isBarType(l.id)||n.isCandlestickType(l.id)).forEach(l=>{const c=n.isBarType(l.id)?`.${Kn.chartBar}.${Se.target}${n.getTargetSelectorSuffix(l.id)} .${Kn.bar}-${l.index}`:`.${cr.chartCandlestick}.${Se.target}${n.getTargetSelectorSuffix(l.id)} .${cr.candlestick}-${l.index} path`;!s&&n.isWithinBar(a.select(c).node())&&(s=l)}),i.filter(l=>!n.isBarType(l.id)&&!n.isCandlestickType(l.id)).forEach(l=>{const c=n.dist(l,e);o=n.getPointSensitivity(l),c{const{x:i,id:o}=a;n.push({x:i,id:o,value:a.value[0]}),n.push({x:i,id:o,value:a.value[2]})}),n},updateDataAttributes(t,e){const n=this,{config:a}=n,i=a[`data_${t}`];return ln(e)||(Object.keys(e).forEach(o=>{i[o]=e[o]}),n.redraw({withLegend:!0})),i},getRangedData(t,e="",n="areaRange"){const a=t==null?void 0:t.value;if(je(a)){if(n==="bar")return a.reduce((i,o)=>o-i);{const i={areaRange:["high","mid","low"],candlestick:["open","high","low","close","volume"]}[n].indexOf(e);return i>=0&&a?a[i]:void 0}}else if(a&&e)return a[e];return a},setRatioForGroupedData(t){const e=this,{config:n}=e;if(n.data_groups.length&&t.some(a=>e.isGrouped(a.id))){const a=i=>e.getRatio("index",i,!0);t.forEach(i=>{"values"in i?i.values.forEach(a):a(i)})}},getRatio(t,e,n=!1){const a=this,{config:i,state:o}=a,s=a.api;let l=0;if(e&&s.data.shown().length)if(l=e.ratio||e.value,t==="arc")if(a.pie.padAngle()())l=e.value/a.getTotalDataSum(!0);else{const c=i.gauge_fullCircle?a.getArcLength():a.getStartingAngle()*-2,f=a.hasType("gauge")?c:Math.PI*2;l=(e.endAngle-e.startAngle)/f}else if(t==="index"){const c=s.data.values.bind(s);let f=this.getTotalPerIndex();if(o.hiddenTargetIds.length){let v=c(o.hiddenTargetIds,!1);v.length&&(v=v.reduce((m,S)=>m.map((P,N)=>(he(P)?P:0)+S[N])),f=f.map((m,S)=>m-v[S]))}const g=f[e.index];e.ratio=he(e.value)&&f&&g?e.value/g:0,l=e.ratio}else if(t==="radar")l=parseFloat(String(Math.max(e.value,0)))/o.current.dataMax*i.radar_size_ratio;else if(t==="bar"){const f=a.getYScaleById.bind(a)(e.id).domain().reduce((g,v)=>v-g);l=f===0?0:Math.abs(a.getRangedData(e,null,t)/f)}else t==="treemap"&&(l/=a.getTotalDataSum(!0));return n&&l?l*100:l},updateDataIndexByX(t){const e=this,n=t.reduce((a,i,o)=>(a[Number(i.x)]=o,a),{});e.data.targets.forEach(a=>{a.values.forEach((i,o)=>{let s=n[Number(i.x)];s===void 0&&(s=o),i.index=s})})},isBubbleZType(t){return this.isBubbleType(t)&&(Be(t.value)&&("z"in t.value||"y"in t.value)||je(t.value)&&t.value.length>=2)},isBarRangeType(t){const e=this,{value:n}=t;return e.isBarType(t)&&je(n)&&n.length>=2&&n.every(a=>he(a))},getDataById(t){var e;const n=this.cache.get(t)||this.api.data(t);return(e=n==null?void 0:n[0])!=null?e:n}};function cc(t,e=!1){const n=this,{api:a}=n;e&&n.api.flush(!0),t==null||t.call(a)}var Lv={load(t,e){const n=this,{axis:a,data:i,org:o,scale:s}=n,{append:l}=e,c={domain:null,currentDomain:null,x:null};let f=t;f&&(e.filter&&(f=f.filter(e.filter)),(e.type||e.types)&&f.forEach(g=>{var v;const m=((v=e.types)==null?void 0:v[g.id])||e.type;n.setTargetType(g.id,m)}),i.targets.forEach(g=>{for(let v=0;v{const a=t.data||n;t.append&&(a.__append__=!0),a&&e.load(e.convertDataToTargets(a),t)}))},unload(t,e){var n;const a=this,{state:i,$el:o,$T:s}=a,l=!!((n=a.hasLegendDefsPoint)!=null&&n.call(a));let c=e,f=t;if(a.cache.reset(),c||(c=()=>{}),f=f.filter(v=>a.hasTarget(a.data.targets,v)),!f||f.length===0){c();return}const g=o.svg.selectAll(f.map(v=>a.selectorTarget(v)));s(g).style("opacity","0").remove().call(Si,c),f.forEach(v=>{var m;const S=a.getTargetSelectorSuffix(v);i.withoutFadeIn[v]=!1,o.legend&&o.legend.selectAll(`.${We.legendItem}${S}`).remove(),a.data.targets=a.data.targets.filter(P=>P.id!==v),l&&((m=o.defs)==null||m.select(`#${a.getDefsPointId(S)}`).remove())}),i.hasFunnel&&a.updateFunnel(a.data.targets),i.hasTreemap&&a.updateTargetsForTreemap(a.data.targets),a.updateTypesElements()}},Ri=t=>()=>t;function Ho(t,{sourceEvent:e,subject:n,target:a,identifier:i,active:o,x:s,y:l,dx:c,dy:f,dispatch:g}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:a,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:f,enumerable:!0,configurable:!0},_:{value:g}})}Ho.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function Nv(t){return!t.ctrlKey&&!t.button}function Fv(){return this.parentNode}function Bv(t,e){return e==null?{x:t.x,y:t.y}:e}function Uv(){return navigator.maxTouchPoints||"ontouchstart"in this}function uc(){var t=Nv,e=Fv,n=Bv,a=Uv,i={},o=ri("start","drag","end"),s=0,l,c,f,g,v=0;function m(H){H.on("mousedown.drag",S).filter(a).on("touchstart.drag",L).on("touchmove.drag",w,Jd).on("touchend.drag touchcancel.drag",X).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function S(H,k){if(!(g||!t.call(this,H,k))){var K=W(this,e.call(this,H,k),H,k,"mouse");K&&(ot(H.view).on("mousemove.drag",P,Sa).on("mouseup.drag",N,Sa),co(H.view),lo(H),f=!1,l=H.clientX,c=H.clientY,K("start",H))}}function P(H){if(Zr(H),!f){var k=H.clientX-l,K=H.clientY-c;f=k*k+K*K>v}i.mouse("drag",H)}function N(H){ot(H.view).on("mousemove.drag mouseup.drag",null),uo(H.view,f),Zr(H),i.mouse("end",H)}function L(H,k){if(t.call(this,H,k)){var K=H.changedTouches,at=e.call(this,H,k),ht=K.length,$t,dt;for($t=0;$ti.$el[o]).forEach(o=>{a&&i.$el[o].classed(Se.EXPANDED,!1),i.getShapeByIndex(o,e,n).classed(Se.EXPANDED,t)})},setOverOut(t,e){const n=this,{config:a,state:{hasFunnel:i,hasRadar:o,hasTreemap:s},$el:{main:l}}=n,c=Be(e);if(c||e!==-1){const f=a[t?"data_onover":"data_onout"].bind(n.api);if(a.color_onover&&n.setOverColor(t,e,c),c){const g=n.getTargetSelectorSuffix(e.id),v=i||s?`${Se.target+g} .${sn.shape}`:Ve.arc+g;f(e,l.select(`.${v}`).node())}else if(a.tooltip_grouped)t&&(o&&n.isPointFocusOnly()?n.showCircleFocus(n.getAllValuesOnIndex(e,!0)):n.setExpand(e,null,!0)),!n.isMultipleX()&&l.selectAll(`.${sn.shape}-${e}`).each(function(g){f(g,this)});else{const g=n.cache.get(Ln.setOverOut)||[],v=l.selectAll(`.${sn.shape}-${e}`).filter(function(S){return n.isWithinShape(this,S)}),m=v.filter(function(){return g.every(S=>S!==this)});if(!t||v.empty()||g.length===m.size()&&m.nodes().every((S,P)=>S!==g[P]))for(;g.length;){const S=g.pop();a.data_onout.bind(n.api)(ot(S).datum(),S)}m.each(function(){t&&(f(ot(this).datum(),this),g.push(this))}),n.cache.add(Ln.setOverOut,g)}}},callOverOutForTouch(t){const e=this,n=e.cache.get(Ln.callOverOutForTouch);(Be(t)&&n?t.id!==n.id:t!==n)&&((n||he(n))&&e.setOverOut(!1,n),(t||he(t))&&e.setOverOut(!0,t),e.cache.add(Ln.callOverOutForTouch,t))},getDraggableSelection(){const t=this,{config:e,state:n}=t;return e.interaction_enabled&&e.data_selection_draggable&&t.drag?uc().on("drag",function(a){n.event=a,t.drag(Hn(a,this))}).on("start",function(a){n.event=a,t.dragstart(Hn(a,this))}).on("end",a=>{n.event=a,t.dragend()}):()=>{}},dispatchEvent(t,e,n){var a,i,o;const s=this,{config:l,state:{eventReceiver:c,hasAxis:f,hasFunnel:g,hasRadar:v,hasTreemap:m},$el:{eventRect:S,funnel:P,radar:N,svg:L,treemap:w}}=s;let X=(o=(i=(g||m)&&c.rect||v&&N.axes.select(`.${Tn.axis}-${e} text`)||S||((a=s.getArcElementByIdOrIndex)==null?void 0:a.call(s,e)))==null?void 0:i.node)==null?void 0:o.call(i);if(X){const W=s.isMultipleX(),H=l.axis_rotated;let{width:k,left:K,top:at}=X.getBoundingClientRect();if(f&&!v&&!W){const st=c.coords[e];st?(k=st.w,K+=st.x,at+=st.y):(k=0,K=0,at=0)}let ht=K+(n?n[0]:0)+(W||H?0:k/2),$t=at+(n?n[1]:0)+(H?4:0);if(Lo(L)){const st=Ai(s.$el.eventRect.node(),ht,$t,!1);ht=st.x,$t=st.y}const dt={screenX:ht,screenY:$t,clientX:ht,clientY:$t,bubbles:v};(g||m)&&(X=(P!=null?P:w).node()),ev[/^(mouse|click)/.test(t)?"mouse":"touch"](X,t,dt)}},setDragStatus(t){this.state.dragging=t},unbindZoomEvent(){const t=this,{$el:{eventRect:e,zoomResetBtn:n}}=t;e==null||e.on(".zoom wheel.zoom .drag",null),n==null||n.on("click",null).style("display","none")},unbindAllEvents(){var t;const e=this,{$el:{arcs:n,eventRect:a,legend:i,region:o,svg:s,treemap:l},brush:c}=e,f=["wheel","click","mouseover","mousemove","mouseout","touchstart","touchmove","touchend","touchstart.eventRect","touchmove.eventRect","touchend.eventRect",".brush",".drag",".zoom","wheel.zoom","dblclick.zoom"].join(" ");[s,a,o==null?void 0:o.list,c==null?void 0:c.getSelection(),n==null?void 0:n.selectAll("path"),i==null?void 0:i.selectAll("g"),l].forEach(g=>g==null?void 0:g.on(f,null)),(t=e.unbindZoomEvent)==null||t.call(e)}},jv={categoryName(t){var e;const{axis_x_categories:n}=this.config;return(e=n==null?void 0:n[t])!=null?e:t}},Vv={generateClass(t,e){return` ${t} ${t+this.getTargetSelectorSuffix(e)}`},getClass(t,e){const n=/s$/.test(t),a=/^(area|arc|line|funnel|treemap)s?$/.test(t),i=n?"id":"index";return o=>{const s=o.data||o;return((e?this.generateClass(Ue[n?"shapes":"shape"],s[i]):"")+this.generateClass(Ue[t],s[a?"id":i])).trim()}},getChartClass(t){return e=>Ue[`chart${t}`]+this.classTarget((e.data?e.data:e).id)},generateExtraLineClass(){const e=this.config.line_classes||[],n=[];return function(a){var i;const o=a.id||((i=a.data)==null?void 0:i.id)||a;return n.indexOf(o)<0&&n.push(o),e[n.indexOf(o)%e.length]}},classRegion(t,e){return`${this.generateClass(Ue.region,e)} ${"class"in t?t.class:""}`},classTarget(t){const e=this.config.data_classes[t];let n="";return e&&(n=` ${Ue.target}-${e}`),this.generateClass(Ue.target,t)+n},classFocus(t){return this.classFocused(t)+this.classDefocused(t)},classFocused(t){return` ${this.state.focusedTargetIds.indexOf(t.id)>=0?Ue.focused:""}`},classDefocused(t){return` ${this.state.defocusedTargetIds.indexOf(t.id)>=0?Ue.defocused:""}`},getTargetSelectorSuffix(t){return(t||t===0?`-${t}`:"").replace(/[\x00-\x20\x7F-\xA0\s?!@#$%^&*()_=+,.<>'":;\[\]\/|~`{}\\]/g,"-")},selectorTarget(t,e="",n=""){const a=this.getTargetSelectorSuffix(t);return`${e}.${Ue.target+a} ${n}, ${e}.${Ue.circles+a} ${n}`},selectorTargets(t,e){const n=t||[];return n.length?n.map(a=>this.selectorTarget(a,e)):null},selectorLegend(t){return`.${Ue.legendItem+this.getTargetSelectorSuffix(t)}`},selectorLegends(t){return t!=null&&t.length?t.map(e=>this.selectorLegend(e)):null}};class fc extends Map{constructor(e,n=gc){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[a,i]of e)this.set(a,i)}get(e){return super.get(Yo(this,e))}has(e){return super.has(Yo(this,e))}set(e,n){return super.set(dc(this,e),n)}delete(e){return super.delete(hc(this,e))}}class f1 extends Set{constructor(e,n=gc){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const a of e)this.add(a)}has(e){return super.has(Yo(this,e))}add(e){return super.add(dc(this,e))}delete(e){return super.delete(hc(this,e))}}function Yo({_intern:t,_key:e},n){const a=e(n);return t.has(a)?t.get(a):n}function dc({_intern:t,_key:e},n){const a=e(n);return t.has(a)?t.get(a):(t.set(a,n),n)}function hc({_intern:t,_key:e},n){const a=e(n);return t.has(a)&&(n=t.get(a),t.delete(a)),n}function gc(t){return t!==null&&typeof t=="object"?t.valueOf():t}function ra(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function d1(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}const vc=Symbol("implicit");function pc(){var t=new fc,e=[],n=[],a=vc;function i(o){let s=t.get(o);if(s===void 0){if(a!==vc)return a;t.set(o,s=e.push(o)-1)}return n[s%n.length]}return i.domain=function(o){if(!arguments.length)return e.slice();e=[],t=new fc;for(const s of o)t.has(s)||t.set(s,e.push(s)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(a=o,i):a},i.copy=function(){return pc(e,n).unknown(a)},ra.apply(i,arguments),i}const Gv=(t,e,n)=>{const a=ot(t.cloneNode(!0));return a.attr("id",n).insert("rect",":first-child").attr("width",a.attr("width")).attr("height",a.attr("height")).style("fill",e),{id:n,node:a.node()}};function Xv(t){const e=Ln.colorPattern,{body:n}=gn;let a=n[e];if(!a){const i=";",o=t.classed(oo.colorPattern,!0).style("background-image");t.classed(oo.colorPattern,!1),o.indexOf(i)>-1&&(a=o.replace(/url[^#]*|["'()]|(\s|%20)/g,"").split(i).map(s=>s.trim().replace(/[\"'\s]/g,"")).filter(Boolean),n[e]=a)}return a}const Hv=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"];var Yv={generateColor(){const t=this,{$el:e,config:n}=t,a=n.data_colors,i=n.data_color,o=[];let s=cn(n.color_pattern)?n.color_pattern:pc(Xv(e.chart)||Hv).range();const l=s;if(ve(n.color_tiles)){const c=n.color_tiles.bind(t.api)(),f=s.map((g,v)=>{const m=g.replace(/[#\(\)\s,]/g,""),S=`${t.state.datetimeId}-pattern-${m}-${v}`;return Gv(c[v%c.length],g,S)});s=f.map(g=>`url(#${g.id})`),t.patterns=f}return function(c){var f;const g=c.id||((f=c.data)==null?void 0:f.id)||c,v=t.isTypeOf(g,["line","spline","step"])||!n.data_types[g];let m;return ve(a[g])?m=a[g].bind(t.api)(c):a[g]?m=a[g]:(o.indexOf(g)<0&&o.push(g),m=v?l[o.indexOf(g)%l.length]:s[o.indexOf(g)%s.length],a[g]=m),ve(i)?i.bind(t.api)(m,c):m}},generateLevelColor(){const t=this,{config:e}=t,n=e.color_pattern,a=e.color_threshold,i=a.unit==="value",o=a.max||100,s=a.values&&a.values.length?a.values:[];return cn(a)?function(l){const c=i?l:l*100/o;let f=n[n.length-1];for(let g=0,v=s.length;g{const l=`${i.datetimeId}-labels-bg${n.getTargetSelectorSuffix(s)}${ze(t)?n.getTargetSelectorSuffix(t):""}`;a.defs.append("filter").attr("x",e.x).attr("y",e.y).attr("width",e.width).attr("height",e.height).attr("id",l).html(` + `)})}},getGradienColortUrl(t){return`url(#${this.state.datetimeId}-gradient${this.getTargetSelectorSuffix(t)})`},updateLinearGradient(){const t=this,{config:e,data:{targets:n},state:{datetimeId:a},$el:{defs:i}}=t;n.forEach(o=>{const s=`${a}-gradient${t.getTargetSelectorSuffix(o.id)}`,l=t.hasPointType()&&e.point_radialGradient,c=t.isAreaType(o)&&"area"||t.isBarType(o)&&"bar";if((l||c)&&i.select(`#${s}`).empty()){const f=t.color(o),g={defs:null,stops:[]};if(l){const{cx:v=.3,cy:m=.3,r:S=.7,stops:P=[[.1,f,0],[.9,f,1]]}=l;g.stops=P,g.defs=i.append("radialGradient").attr("id",`${s}`).attr("cx",v).attr("cy",m).attr("r",S)}else{const v=e.axis_rotated,{x:m=v?[1,0]:[0,0],y:S=v?[0,0]:[0,1],stops:P=[[0,f,1],[1,f,0]]}=e[`${c}_linearGradient`];g.stops=P,g.defs=i.append("linearGradient").attr("id",`${s}`).attr("x1",m[0]).attr("x2",m[1]).attr("y1",S[0]).attr("y2",S[1])}g.stops.forEach(v=>{const[m,S,P]=v,N=ve(S)?S.bind(t.api)(o.id):S;g.defs&&g.defs.append("stop").attr("offset",m).attr("stop-color",N||f).attr("stop-opacity",P)})}})},setOverColor(t,e){const n=this,{config:a,$el:{main:i}}=n,o=a.color_onover;let s=t?o:n.color;Be(s)?s=({id:l})=>l in o?o[l]:n.color(l):ze(s)?s=()=>o:ve(o)&&(s=s.bind(n.api)),i.selectAll(Be(e)?`.${Ve.arc}${n.getTargetSelectorSuffix(e.id)}`:`.${sn.shape}-${e}`).style("fill",s)}},Wv={getYDomainMinMax(t,e){const n=this,{axis:a,config:i}=n,o=e==="min",s=i.data_groups,l=n.mapToIds(t),c=n.getValuesAsIdKeyed(t);if(s.length>0){const f=n[`has${o?"Negative":"Positive"}ValueInTargets`](t);s.forEach(g=>{const v=g.filter(m=>l.indexOf(m)>=0);if(v.length){const m=v[0],S=a.getId(m);f&&c[m]&&(c[m]=c[m].map(P=>(o?P<0:P>0)?P:0)),v.filter((P,N)=>N>0).forEach(P=>{if(c[P]){const N=a.getId(P);c[P].forEach((L,w)=>{const X=+L,W=o?X>0:X<0;N===S&&!(f&&W)&&(c[m][w]+=X)})}})}})}return _n(e,Object.keys(c).map(f=>_n(e,c[f])))},isHiddenTargetWithYDomain(t){const e=this;return e.state.hiddenTargetIds.some(n=>e.axis.getId(n)===t)},getYDomain(t,e,n){const a=this,{axis:i,config:o,scale:s}=a,l=`axis_${e}`;if(a.isStackNormalized())return[0,100];const c=(s==null?void 0:s[e])&&s[e].type==="log",f=t.filter(dt=>i.getId(dt.id)===e),g=n?a.filterByXDomain(f,n):f;if(g.length===0)return a.isHiddenTargetWithYDomain(e)?s[e].domain():e==="y2"?s.y.domain():a.getYDomain(t,"y2",n);const v=o[`${l}_min`],m=o[`${l}_max`],S=o[`${l}_center`],P=o[`${l}_inverted`],N=a.hasDataLabel()&&o.axis_rotated,L=a.hasDataLabel()&&!o.axis_rotated;let w=a.getYDomainMinMax(g,"min"),X=a.getYDomainMinMax(g,"max"),W=[oe.BAR,oe.BUBBLE,oe.SCATTER,...Sr.Line].some(dt=>{const st=dt.indexOf("area")>-1?"area":dt;return a.hasType(dt,g,!0)&&o[`${st}_zerobased`]});w=De(v)?v:De(m)?w<=m?w:m-10:w,X=De(m)?m:De(v)?v<=X?X:v+10:X,isNaN(w)&&(w=0),isNaN(X)&&(X=w),w===X&&(w<0?X=0:w=0);const H=w>=0&&X>=0,k=w<=0&&X<=0;(De(v)&&H||De(m)&&k)&&(W=!1),W&&(H&&(w=0),k&&(X=0));const K=Math.abs(X-w);let at={top:K*.1,bottom:K*.1};if(Qe(S)){const dt=Math.max(Math.abs(w),Math.abs(X));X=S+dt,w=S-dt}if(N){const dt=Dr(s.y.range()),st=a.getDataLabelLength(w,X,"width").map(Vt=>Vt/dt);["bottom","top"].forEach((Vt,vt)=>{at[Vt]+=K*(st[vt]/(1-st[0]-st[1]))})}else if(L){const dt=a.getDataLabelLength(w,X,"height");["bottom","top"].forEach((st,Vt)=>{at[st]+=a.convertPixelToScale("y",dt[Vt],K)})}at=a.getResettedPadding(at);const ht=o[`${l}_padding`];cn(ht)&&["bottom","top"].forEach(dt=>{at[dt]=i.getPadding(ht,dt,at[dt],K)}),W&&(H&&(at.bottom=w),k&&(at.top=-X));const $t=c?[w,X].map(dt=>dt<0?0:dt):[w-at.bottom,X+at.top];return P?$t.reverse():$t},getXDomainMinMax(t,e){var n;const a=this,i=a.config[`axis_x_${e}`],o=_n(e,t.map(l=>_n(e,l.values.map(c=>c.x))));let s=Be(i)?i.value:i;return s=Qe(s)&&((n=a.axis)!=null&&n.isTimeSeries())?Yn.bind(this)(s):s,Be(i)&&i.fit&&(e==="min"&&so)&&(s=void 0),Qe(s)?s:o},getXDomainPadding(t,e){const n=this,{axis:a,config:i}=n,o=i.axis_x_padding,s=a.isTimeSeries()&&e,l=Dr(t);let c;if(a.isCategorized()||s)c=0;else if(n.hasType("bar")){const v=n.getMaxDataCount();c=v>1?l/(v-1)/2:.5}else c=n.getResettedPadding(l*.01);let{left:f=c,right:g=c}=he(o)?{left:o,right:o}:o;if(o.unit==="px"){const v=Math.abs(l+l*.2);f=a.getPadding(o,"left",c,v),g=a.getPadding(o,"right",c,v)}else{const v=l+f+g;if(s&&v){const m=l/e/v;f=f/v/m,g=g/v/m}}return{left:f,right:g}},getXDomain(t){const e=this,{axis:n,config:a,scale:{x:i}}=e,o=a.axis_x_inverted,s=[e.getXDomainMinMax(t,"min"),e.getXDomainMinMax(t,"max")];let[l=0,c=0]=s;if(i.type!=="log"){const f=n.isCategorized(),g=n.isTimeSeries(),v=e.getXDomainPadding(s);let[m,S]=s;m-S===0&&!f&&(g?(m=new Date(m.getTime()*.5),S=new Date(S.getTime()*1.5)):(m=m===0?1:m*.5,S=S===0?-1:S*1.5)),(m||m===0)&&(l=g?new Date(m.getTime()-v.left):m-v.left),(S||S===0)&&(c=g?new Date(S.getTime()+v.right):S+v.right)}return o?[c,l]:[l,c]},updateXDomain(t,e,n,a,i){var o;const s=this,{config:l,org:c,scale:{x:f,subX:g}}=s,v=l.zoom_enabled;if(n&&(f.domain(i||na(s.getXDomain(t),!l.axis_x_inverted)),c.xDomain=f.domain(),g.domain(f.domain()),(o=s.brush)==null||o.scale(g)),e){const m=i||!s.brush||Kl(s)?c.xDomain:Wl(s).map(g.invert);f.domain(m)}return(n||e)&&v&&s.zoom.updateScaleExtent(),a&&f.domain(s.trimXDomain(f.orgDomain())),f.domain()},trimXDomain(t){const e=this,n=e.config.axis_x_inverted,a=e.getZoomDomain(),[i,o]=a;return(n?t[0]>=i:t[0]<=i)&&(t[1]=+t[1]+(i-t[0]),t[0]=i),(n?t[1]<=o:t[1]>=o)&&(t[0]=+t[0]-(t[1]-o),t[1]=o),t},getZoomDomain(t="zoom",e=!1){const n=this,{config:a,scale:i,org:o}=n;let[s,l]=e&&i[t]?i[t].domain():o.xDomain;return t==="zoom"&&(Qe(a.zoom_x_min)&&(s=_n("min",[s,a.zoom_x_min])),Qe(a.zoom_x_max)&&(l=_n("max",[l,a.zoom_x_max]))),[s,l]},getZoomDomainValue(t){const e=this,{config:n,axis:a}=e;if(a.isCategorized()&&Array.isArray(t)){const i=n.axis_x_inverted;return t.map((s,l)=>Number(s)+(l===0?+i:+!i))}return t},convertPixelToScale(t,e,n){const a=this,{config:i,state:o}=a,s=i.axis_rotated;let l;return t==="x"?l=s?"height":"width":l=s?"width":"height",n*(e/o[l])},withinRange(t,e=[0,0],n){const i=this.config.axis_x_inverted,[o,s]=n;if(Array.isArray(t)){const l=[...t];if(i&&l.reverse(),l[0](f===0?i?+c<=o:+c>=o:i?+c>=s:+c<=s)&&!t.every((g,v)=>g===e[v]))}return!1}};function mc(t,e,n){const{config:a}=t,i=`axis_${e}_tick_format`;return(a[i]?a[i]:t.defaultValueFormat).call(t.api,n)}var Kv={yFormat(t){return mc(this,"y",t)},y2Format(t){return mc(this,"y2",t)},getDefaultValueFormat(){const t=this,{defaultArcValueFormat:e,yFormat:n,y2Format:a}=t,i=t.hasArcType(null,["gauge","polar","radar"]);return function(o,s,l){return(i?e:t.axis&&t.axis.getId(l)==="y2"?a:n).call(t,o,s)}},defaultValueFormat(t){return je(t)?t.join("~"):De(t)?+t:""},defaultArcValueFormat(t,e){return`${(e*100).toFixed(1)}%`},defaultPolarValueFormat(t){return`${t}`},dataLabelFormat(t){const e=this,n=e.config.data_labels,a=o=>{const s="~";let l=o;return je(o)?l=o.join(s):Be(o)&&(l=Object.values(o).join(s)),l};let i=a;return ve(n.format)?i=n.format:nr(n.format)&&(n.format[t]?i=n.format[t]===!0?a:n.format[t]:i=()=>""),i.bind(e.api)}};function Ii(t){const e=this,n=e.getDataById(t);return e.levelColor?e.levelColor(n.values[0].value):e.color(n)}function Wo(t,e=!0){var n;const{config:a}=this;let i=(n=a.data_names[t])!=null?n:t;return e&&ve(a.legend_format)&&(i=a.legend_format(i,t!==i?t:void 0)),i}var Zv={initLegend(){const t=this,{config:e,$el:n}=t;t.legendItemTextBox={},t.state.legendHasRendered=!1,e.legend_show?(e.legend_contents_bindto||(n.legend=t.$el.svg.append("g").classed(We.legend,!0).attr("transform",t.getTranslate("legend"))),t.updateLegend()):t.state.hiddenLegendIds=t.mapToIds(t.data.targets)},updateLegend(t,e,n){var a;const i=this,{config:o,state:s,scale:l,$el:c}=i,f=e||{withTransform:!1,withTransitionForTransform:!1,withTransition:!1};f.withTransition=$r(f,"withTransition",!0),f.withTransitionForTransform=$r(f,"withTransitionForTransform",!0),o.legend_contents_bindto&&o.legend_contents_template?i.updateLegendTemplate():s.hasTreemap||i.updateLegendElement(t||i.mapToIds(i.data.targets),f,n),(a=c.legend)==null||a.selectAll(`.${We.legendItem}`).classed(We.legendItemHidden,function(g){const v=!i.isTargetToShow(g);return v&&(this.style.opacity=null),v}),i.updateScales(!1,!l.zoom),i.updateSvgSize(),i.transformAll(f.withTransitionForTransform,n),s.legendHasRendered=!0},updateLegendTemplate(){const t=this,{config:e,$el:n}=t,a=ot(e.legend_contents_bindto),i=e.legend_contents_template;if(!a.empty()){const o=t.mapToIds(t.data.targets),s=[];let l="";o.forEach(f=>{const g=ve(i)?i.bind(t.api)(f,t.color(f),t.api.data(f)[0].values):bi(i,{COLOR:t.color(f),TITLE:f});g&&(s.push(f),l+=g)});const c=a.html(l).selectAll(function(){return this.childNodes}).data(s);t.setLegendItem(c),n.legend=a}},updateSizeForLegend(t){const e=this,{config:n,state:{isLegendTop:a,isLegendLeft:i,isLegendRight:o,isLegendInset:s,current:l}}=e,{width:c,height:f}=t,g={top:a?e.getCurrentPaddingByDirection("top")+n.legend_inset_y+5.5:l.height-f-e.getCurrentPaddingByDirection("bottom")-n.legend_inset_y,left:i?e.getCurrentPaddingByDirection("left")+n.legend_inset_x+.5:l.width-c-e.getCurrentPaddingByDirection("right")-n.legend_inset_x+.5};e.state.margin3={top:o?0:s?g.top:l.height-f,right:NaN,bottom:0,left:o?l.width-c:s?g.left:0}},transformLegend(t){const e=this,{$el:{legend:n},$T:a}=e;a(n,t).attr("transform",e.getTranslate("legend"))},updateLegendStep(t){this.state.legendStep=t},updateLegendItemWidth(t){this.state.legendItemWidth=t},updateLegendItemHeight(t){this.state.legendItemHeight=t},updateLegendItemColor(t,e){const{legend:n}=this.$el;n&&n.select(`.${We.legendItem}-${t} line`).style("stroke",e)},getLegendWidth(){const t=this,{current:{width:e},isLegendRight:n,isLegendInset:a,legendItemWidth:i,legendStep:o}=t.state;return t.config.legend_show?n||a?i*(o+1):e:0},getLegendHeight(){var t;const e=this,{current:n,isLegendRight:a,legendItemHeight:i,legendStep:o}=e.state,s=((t=e.config.padding)==null?void 0:t.mode)==="fit";return e.config.legend_show?a?n.height:Math.max(s?10:20,i)*(o+1):0},opacityForUnfocusedLegend(t){return t.classed(We.legendItemHidden)?null:"0.3"},toggleFocusLegend(t,e){const n=this,{$el:{legend:a},$T:i}=n,o=n.mapToTargetIds(t);a&&i(a.selectAll(`.${We.legendItem}`).filter(s=>o.indexOf(s)>=0).classed(qe.legendItemFocused,e)).style("opacity",function(){return e?null:n.opacityForUnfocusedLegend.call(n,ot(this))})},revertLegend(){const t=this,{$el:{legend:e},$T:n}=t;e&&n(e.selectAll(`.${We.legendItem}`).classed(qe.legendItemFocused,!1)).style("opacity",null)},showLegend(t){const e=this,{config:n,$el:a,$T:i}=e;n.legend_show||(n.legend_show=!0,a.legend?a.legend.style("visibility",null):e.initLegend(),!e.state.legendHasRendered&&e.updateLegend()),e.removeHiddenLegendIds(t),i(a.legend.selectAll(e.selectorLegends(t)).style("visibility",null)).style("opacity",null)},hideLegend(t){const e=this,{config:n,$el:{legend:a}}=e;n.legend_show&&qn(t)&&(n.legend_show=!1,a.style("visibility","hidden")),e.addHiddenLegendIds(t),a.selectAll(e.selectorLegends(t)).style("opacity","0").style("visibility","hidden")},getLegendItemTextBox(t,e){const n=this,{cache:a,state:i}=n;let o;const s=Ln.legendItemTextBox;return t&&(o=!i.redrawing&&a.get(s)||{},o[t]||(o[t]=n.getTextRect(e,We.legendItem),a.add(s,o)),o=o[t]),o},setLegendItem(t){const e=this,{$el:n,api:a,config:i,state:o}=e,s=o.inputType==="touch",l=e.hasType("gauge"),c=i.boost_useCssRule,f=i.legend_item_interaction;t.attr("class",function(g){const v=ot(this);return(!v.empty()&&v.attr("class")||"")+e.generateClass(We.legendItem,g)}).style("visibility",g=>e.isLegendToShow(g)?null:"hidden"),i.interaction_enabled&&(c&&[[`.${We.legendItem}`,"cursor:pointer"],[`.${We.legendItem} text`,"pointer-events:none"],[`.${We.legendItemPoint} text`,"pointer-events:none"],[`.${We.legendItemTile}`,"pointer-events:none"],[`.${We.legendItemEvent}`,"fill-opacity:0"]].forEach(g=>{const[v,m]=g;e.setCssRule(!1,v,[m])(n.legend)}),t.on(f.dblclick?"dblclick":"click",f||ve(i.legend_item_onclick)?function(g,v){if(!_e(i.legend_item_onclick,a,v,!o.hiddenTargetIds.includes(v))){const{altKey:m,target:S,type:P}=g;P==="dblclick"||m?o.hiddenTargetIds.length&&S.parentNode.getAttribute("class").indexOf(We.legendItemHidden)===-1?a.show():(a.hide(),a.show(v)):(a.toggle(v),ot(this).classed(qe.legendItemFocused,!1))}s&&e.hideTooltip()}:null),!s&&t.on("mouseout",f||ve(i.legend_item_onout)?function(g,v){_e(i.legend_item_onout,a,v,!o.hiddenTargetIds.includes(v))||(ot(this).classed(qe.legendItemFocused,!1),l&&e.undoMarkOverlapped(e,`.${Un.gaugeValue}`),e.api.revert())}:null).on("mouseover",f||ve(i.legend_item_onover)?function(g,v){_e(i.legend_item_onover,a,v,!o.hiddenTargetIds.includes(v))||(ot(this).classed(qe.legendItemFocused,!0),l&&e.markOverlapped(v,e,`.${Un.gaugeValue}`),!o.transiting&&e.isTargetToShow(v)&&a.focus(v))}:null),!t.empty()&&t.on("click mouseout mouseover")&&t.style("cursor",e.getStylePropValue("pointer")))},updateLegendElement(t,e){const n=this,{config:a,state:i,$el:{legend:o},$T:s}=n,c=a.legend_item_tile_type!=="circle",f=a.legend_item_tile_r,g={width:c?a.legend_item_tile_width:f*2,height:c?a.legend_item_tile_height:f*2},v={padding:{top:4,right:10},max:{width:0,height:0},posMin:10,step:0,tileWidth:g.width+5,totalLength:0},m={offsets:{},widths:{},heights:{},margins:[0],steps:{}};let S,P,N;const L=t.filter(K=>!Qe(a.data_names[K])||a.data_names[K]!==null),w=e.withTransition,X=n.getUpdateLegendPositions(L,v,m);i.isLegendInset&&(v.step=a.legend_inset_step?a.legend_inset_step:L.length,n.updateLegendStep(v.step)),i.isLegendRight?(S=K=>v.max.width*m.steps[K],P=K=>m.margins[m.steps[K]]+m.offsets[K]):i.isLegendInset?(S=K=>v.max.width*m.steps[K]+10,P=K=>m.margins[m.steps[K]]+m.offsets[K]):(S=K=>m.margins[m.steps[K]]+m.offsets[K],P=K=>v.max.height*m.steps[K]);const W={xText:(K,at)=>S(K,at)+4+g.width,xRect:(K,at)=>S(K,at),x1Tile:(K,at)=>S(K,at)-2,x2Tile:(K,at)=>S(K,at)-2+g.width,yText:(K,at)=>P(K,at)+9,yRect:(K,at)=>P(K,at)-5,yTile:(K,at)=>P(K,at)+4};n.generateLegendItem(L,g,X,W),N=o.select(`.${We.legendBackground} rect`),i.isLegendInset&&v.max.width>0&&N.size()===0&&(N=o.insert("g",`.${We.legendItem}`).attr("class",We.legendBackground).append("rect")),a.legend_tooltip&&o.selectAll("title").data(L).text(K=>Wo.bind(n)(K,!1));const H=o.selectAll("text").data(L).text(K=>Wo.bind(n)(K)).each(function(K,at){X(this,K,at)});s(H,w).attr("x",W.xText).attr("y",W.yText);const k=o.selectAll(`rect.${We.legendItemEvent}`).data(L);s(k,w).attr("width",K=>m.widths[K]).attr("height",K=>m.heights[K]).attr("x",W.xRect).attr("y",W.yRect),n.updateLegendItemPos(L,w,W),N&&s(N,w).attr("height",n.getLegendHeight()-12).attr("width",v.max.width*(v.step+1)+10),n.updateLegendItemWidth(v.max.width),n.updateLegendItemHeight(v.max.height),n.updateLegendStep(v.step)},getUpdateLegendPositions(t,e,n){const a=this,{config:i,state:o}=a,s=o.isLegendRight||o.isLegendInset;return function(l,c,f){const g=f===0,v=f===t.length-1,m=a.getLegendItemTextBox(c,l),S=m.width+e.tileWidth+(v&&!s?0:e.padding.right)+i.legend_padding,P=m.height+e.padding.top,N=s?P:S,L=s?a.getLegendHeight():a.getLegendWidth();let w;const X=function(H,k){k||(w=(L-e.totalLength-N)/2,w=e.max.width)&&(e.max.width=S),(!e.max.height||P>=e.max.height)&&(e.max.height=P);const W=s?e.max.height:e.max.width;i.legend_equally?(Object.keys(n.widths).forEach(H=>n.widths[H]=e.max.width),Object.keys(n.heights).forEach(H=>n.heights[H]=e.max.height),w=(L-W*t.length)/2,wX(H))):X(c,!0)):X(c)}},generateLegendItem(t,e,n,a){const i=this,{config:o,state:s,$el:{legend:l}}=i,c=o.legend_usePoint,f=o.legend_item_tile_r,g=o.legend_item_tile_type,v=g!=="circle",m=s.isLegendRight||s.isLegendInset,S=-200,P=l.selectAll(`.${We.legendItem}`).data(t).enter().append("g");if(i.setLegendItem(P),o.legend_tooltip&&P.append("title").text(N=>N),P.append("text").text(N=>Wo.bind(i)(N)).each(function(N,L){n(this,N,L)}).style("pointer-events",i.getStylePropValue("none")).attr("x",m?a.xText:S).attr("y",m?S:a.yText),P.append("rect").attr("class",We.legendItemEvent).style("fill-opacity",i.getStylePropValue("0")).attr("x",m?a.xRect:S).attr("y",m?S:a.yRect),c){const N=[];P.append(L=>{const w=cn(o.point_pattern)?o.point_pattern:[o.point_type];N.indexOf(L)===-1&&N.push(L);let X=w[N.indexOf(L)%w.length];return X==="rectangle"&&(X="rect"),gn.createElementNS(ae.svg,"hasValidPointType"in i&&i.hasValidPointType(X)?X:"use")}).attr("class",We.legendItemPoint).style("fill",Ii.bind(i)).style("pointer-events",i.getStylePropValue("none")).attr("href",(L,w,X)=>{const H=X[w].nodeName.toLowerCase(),k=i.getTargetSelectorSuffix(L);return H==="use"?`#${s.datetimeId}-point${k}`:void 0})}else P.append(v?"line":g).attr("class",We.legendItemTile).style("stroke",Ii.bind(i)).style("pointer-events",i.getStylePropValue("none")).call(N=>{g==="circle"?N.attr("r",f).style("fill",Ii.bind(i)).attr("cx",m?a.x2Tile:S).attr("cy",m?S:a.yTile):v&&N.attr("stroke-width",e.height).attr("x1",m?a.x1Tile:S).attr("y1",m?S:a.yTile).attr("x2",m?a.x2Tile:S).attr("y2",m?S:a.yTile)})},updateLegendItemPos(t,e,n){const a=this,{config:i,$el:{legend:o},$T:s}=a,l=i.legend_usePoint,c=i.legend_item_tile_type,f=c!=="circle";if(l){const g=o.selectAll(`.${We.legendItemPoint}`).data(t);s(g,e).each(function(){const v=this.nodeName.toLowerCase(),m=i.point_r;let S="x",P="y",N=2,L=2.5,w=null,X=null,W=null;if(v==="circle"){const H=m*.2;S="cx",P="cy",w=m+H,N=m*2,L=-H}else if(v==="rect"){const H=m*2.5;X=H,W=H,L=3}ot(this).attr(S,H=>n.x1Tile(H)+N).attr(P,H=>n.yTile(H)-L).attr("r",w).attr("width",X).attr("height",W)})}else{const g=o.selectAll(`.${We.legendItemTile}`).data(t);s(g,e).style("stroke",Ii.bind(a)).call(v=>{c==="circle"?v.attr("cx",m=>{const S=n.x2Tile(m);return S-(S-n.x1Tile(m))/2}).attr("cy",n.yTile):f&&v.attr("x1",n.x1Tile).attr("y1",n.yTile).attr("x2",n.x2Tile).attr("y2",n.yTile)})}}},Jv={redraw(t={}){var e,n,a,i;const o=this,{config:s,state:l,$el:c}=o,{main:f,treemap:g}=c;l.redrawing=!0;const v=o.filterTargetsToShow(o.data.targets),{flow:m,initializing:S}=t,P=o.getWithOption(t),N=P.Transition?s.transition_duration:0,L=P.TransitionForExit?N:0,w=P.TransitionForAxis?N:0,X=(e=o.axis)==null?void 0:e.generateTransitions(w);o.updateSizes(S),P.Legend&&s.legend_show?(t.withTransition=!!N,!g&&o.updateLegend(o.mapToIds(o.data.targets),t,X)):P.Dimension&&o.updateDimension(!0),s.data_empty_label_text&&f.select(`text.${On.text}.${Se.empty}`).attr("x",l.width/2).attr("y",l.height/2).text(s.data_empty_label_text).style("display",v.length?"none":null),l.hasAxis?(o.axis.redrawAxis(v,P,X,m,S),o.hasGrid()&&o.updateGrid(),s.regions.length&&o.updateRegion(),["bar","candlestick","line","area"].forEach(W=>{const H=Cn(W);(/^(line|area)$/.test(W)&&o.hasTypeOf(H)||o.hasType(W))&&o[`update${H}`](P.TransitionForExit)}),c.text&&f.selectAll(`.${tn.selectedCircles}`).filter(o.isBarType.bind(o)).selectAll("circle").remove(),s.interaction_enabled&&!m&&P.EventRect&&(o.redrawEventRect(),(n=o.bindZoomEvent)==null||n.call(o))):(c.arcs&&o.redrawArc(N,L,P.Transform),c.radar&&o.redrawRadar(),c.polar&&o.redrawPolar(),c.funnel&&o.redrawFunnel(),g&&o.updateTreemap(L)),!l.resizing&&!g&&(o.hasPointType()||l.hasRadar)?o.updateCircle():(a=o.hasLegendDefsPoint)!=null&&a.call(o)&&o.data.targets.forEach(o.point("create",this)),o.hasDataLabel()&&!o.hasArcType(null,["radar"])&&o.updateText(),(i=o.redrawTitle)==null||i.call(o),S&&o.updateTypesElements(),o.generateRedrawList(v,m,N,P.Subchart),o.updateTooltipOnRedraw(),o.callPluginHook("$redraw",t,N)},generateRedrawList(t,e,n,a){const i=this,{config:o,state:s}=i,l=i.getDrawShape();s.hasAxis&&o.subchart_show&&i.redrawSubchart(a,n,l);const c=e&&i.generateFlow({targets:t,flow:e,duration:e.duration,shape:l,xv:i.xv.bind(i)}),f=(n||c)&&Da(),g=i.getRedrawList(l,e,c,f),v=()=>{c&&c(),s.redrawing=!1,_e(o.onrendered,i.api)};if(v)if(f&&g.length){const m=ec();Ml().duration(n).each(()=>{g.reduce((S,P)=>S.concat(P),[]).forEach(S=>m.add(S))}).call(m,v)}else s.transiting||v();i.mapToIds(i.data.targets).forEach(m=>{s.withoutFadeIn[m]=!0})},getRedrawList(t,e,n,a){const i=this,{config:o,state:{hasAxis:s,hasRadar:l,hasTreemap:c},$el:{grid:f}}=i,{cx:g,cy:v,xForText:m,yForText:S}=t.pos,P=[];return s&&((o.grid_x_lines.length||o.grid_y_lines.length)&&P.push(i.redrawGrid(a)),o.regions.length&&P.push(i.redrawRegion(a)),Object.keys(t.type).forEach(N=>{const L=Cn(N),w=t.type[N];(/^(area|line)$/.test(N)&&i.hasTypeOf(L)||i.hasType(N))&&P.push(i[`redraw${L}`](w,a))}),!e&&f.main&&P.push(i.updateGridFocus())),(!i.hasArcType()||l)&&cn(o.data_labels)&&o.data_labels!==!1&&P.push(i.redrawText(m,S,e,a)),(i.hasPointType()||l)&&!i.isPointFocusOnly()&&i.redrawCircle&&P.push(i.redrawCircle(g,v,a,n)),c&&P.push(i.redrawTreemap(a)),P},updateAndRedraw(t={}){const e=this,{config:n,state:a}=e;let i;t.withTransition=$r(t,"withTransition",!0),t.withTransform=$r(t,"withTransform",!1),t.withLegend=$r(t,"withLegend",!1),t.withUpdateXDomain=!0,t.withUpdateOrgXDomain=!0,t.withTransitionForExit=!1,t.withTransitionForTransform=$r(t,"withTransitionForTransform",t.withTransition),t.withLegend&&n.legend_show||(a.hasAxis&&(i=e.axis.generateTransitions(t.withTransitionForAxis?n.transition_duration:0)),e.updateScales(),e.updateSvgSize(),e.transformAll(t.withTransitionForTransform,i)),e.redraw(t,i)}};const Qv=Math.sqrt(50),kv=Math.sqrt(10),qv=Math.sqrt(2);function Oi(t,e,n){const a=(e-t)/Math.max(0,n),i=Math.floor(Math.log10(a)),o=a/Math.pow(10,i),s=o>=Qv?10:o>=kv?5:o>=qv?2:1;let l,c,f;return i<0?(f=Math.pow(10,-i)/s,l=Math.round(t*f),c=Math.round(e*f),l/fe&&--c,f=-f):(f=Math.pow(10,i)*s,l=Math.round(t/f),c=Math.round(e/f),l*fe&&--c),c0))return[];if(t===e)return[t];const a=e=i))return[];const l=o-i+1,c=new Array(l);if(a)if(s<0)for(let f=0;fe?1:t>=e?0:NaN}function _v(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function Qo(t){let e,n,a;t.length!==2?(e=Ci,n=(l,c)=>Ci(t(l),c),a=(l,c)=>t(l)-c):(e=t===Ci||t===_v?t:tp,n=t,a=t);function i(l,c,f=0,g=l.length){if(f>>1;n(l[v],c)<0?f=v+1:g=v}while(f>>1;n(l[v],c)<=0?f=v+1:g=v}while(ff&&a(l[v-1],c)>-a(l[v],c)?v-1:v}return{left:i,center:s,right:o}}function tp(){return 0}function ep(t){return t===null?NaN:+t}function*h1(t,e){if(e===void 0)for(let n of t)n!=null&&(n=+n)>=n&&(yield n);else{let n=-1;for(let a of t)(a=e(a,++n,t))!=null&&(a=+a)>=a&&(yield a)}}const yc=Qo(Ci),np=yc.right,g1=yc.left,v1=Qo(ep).center;var rp=np;function ap(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}function ip(t){return function(){return t}}function op(t){return+t}var xc=[0,1];function aa(t){return t}function ko(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:ip(isNaN(e)?NaN:.5)}function sp(t,e){var n;return t>e&&(n=t,t=e,e=n),function(a){return Math.max(t,Math.min(e,a))}}function lp(t,e,n){var a=t[0],i=t[1],o=e[0],s=e[1];return i2?cp:lp,c=f=null,v}function v(m){return m==null||isNaN(m=+m)?o:(c||(c=l(t.map(a),e,n)))(a(s(m)))}return v.invert=function(m){return s(i((f||(f=l(e,t.map(a),Qn)))(m)))},v.domain=function(m){return arguments.length?(t=Array.from(m,op),g()):t.slice()},v.range=function(m){return arguments.length?(e=Array.from(m),g()):e.slice()},v.rangeRound=function(m){return e=Array.from(m),n=ap,g()},v.clamp=function(m){return arguments.length?(s=m?!0:aa,g()):s!==aa},v.interpolate=function(m){return arguments.length?(n=m,g()):n},v.unknown=function(m){return arguments.length?(o=m,v):o},function(m,S){return a=m,i=S,g()}}function Tc(){return qo()(aa,aa)}var up=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Na(t){if(!(e=up.exec(t)))throw new Error("invalid format: "+t);var e;return new _o({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}Na.prototype=_o.prototype;function _o(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}_o.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function fp(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function wi(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,a=t.slice(0,n);return[a.length>1?a[0]+a.slice(2):a,+t.slice(n+1)]}function ia(t){return t=wi(Math.abs(t)),t?t[1]:NaN}function dp(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(ia(e)/3)))*3-ia(Math.abs(t)))}function hp(t,e){return function(n,a){for(var i=n.length,o=[],s=0,l=t[0],c=0;i>0&&l>0&&(c+l+1>a&&(l=Math.max(1,a-c)),o.push(n.substring(i-=l,i+l)),!((c+=l+1)>a));)l=t[s=(s+1)%t.length];return o.reverse().join(e)}}function gp(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}function vp(t){t:for(var e=t.length,n=1,a=-1,i;n0&&(a=0);break}return a>0?t.slice(0,a)+t.slice(i+1):t}var $c;function pp(t,e){var n=wi(t,e);if(!n)return t+"";var a=n[0],i=n[1],o=i-($c=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=a.length;return o===s?a:o>s?a+new Array(o-s+1).join("0"):o>0?a.slice(0,o)+"."+a.slice(o):"0."+new Array(1-o).join("0")+wi(t,Math.max(0,e+o-1))[0]}function Sc(t,e){var n=wi(t,e);if(!n)return t+"";var a=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+a:a.length>i+1?a.slice(0,i+1)+"."+a.slice(i+1):a+new Array(i-a.length+2).join("0")}var Ac={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:fp,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Sc(t*100,e),r:Sc,s:pp,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Ec(t){return t}var bc=Array.prototype.map,Rc=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function mp(t){var e=t.grouping===void 0||t.thousands===void 0?Ec:hp(bc.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",a=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",o=t.numerals===void 0?Ec:gp(bc.call(t.numerals,String)),s=t.percent===void 0?"%":t.percent+"",l=t.minus===void 0?"\u2212":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function f(v){v=Na(v);var m=v.fill,S=v.align,P=v.sign,N=v.symbol,L=v.zero,w=v.width,X=v.comma,W=v.precision,H=v.trim,k=v.type;k==="n"?(X=!0,k="g"):Ac[k]||(W===void 0&&(W=12),H=!0,k="g"),(L||m==="0"&&S==="=")&&(L=!0,m="0",S="=");var K=N==="$"?n:N==="#"&&/[boxX]/.test(k)?"0"+k.toLowerCase():"",at=N==="$"?a:/[%p]/.test(k)?s:"",ht=Ac[k],$t=/[defgprs%]/.test(k);W=W===void 0?6:/[gprs]/.test(k)?Math.max(1,Math.min(21,W)):Math.max(0,Math.min(20,W));function dt(st){var Vt=K,vt=at,Q,St,ct;if(k==="c")vt=ht(st)+vt,st="";else{st=+st;var At=st<0||1/st<0;if(st=isNaN(st)?c:ht(Math.abs(st),W),H&&(st=vp(st)),At&&+st==0&&P!=="+"&&(At=!1),Vt=(At?P==="("?P:l:P==="-"||P==="("?"":P)+Vt,vt=(k==="s"?Rc[8+$c/3]:"")+vt+(At&&P==="("?")":""),$t){for(Q=-1,St=st.length;++Qct||ct>57){vt=(ct===46?i+st.slice(Q+1):st.slice(Q))+vt,st=st.slice(0,Q);break}}}X&&!L&&(st=e(st,1/0));var Gt=Vt.length+st.length+vt.length,Bt=Gt>1)+Vt+st+vt+Bt.slice(Gt);break;default:st=Bt+Vt+st+vt;break}return o(st)}return dt.toString=function(){return v+""},dt}function g(v,m){var S=f((v=Na(v),v.type="f",v)),P=Math.max(-8,Math.min(8,Math.floor(ia(m)/3)))*3,N=Math.pow(10,-P),L=Rc[8+P/3];return function(w){return S(N*w)+L}}return{format:f,formatPrefix:g}}var Mi,ts,Ic;yp({thousands:",",grouping:[3],currency:["$",""]});function yp(t){return Mi=mp(t),ts=Mi.format,Ic=Mi.formatPrefix,Mi}function xp(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,ia(e)-ia(t))+1}function Tp(t){return Math.max(0,-ia(Math.abs(t)))}function $p(t,e,n,a){var i=Jo(t,e,n),o;switch(a=Na(a==null?",f":a),a.type){case"s":{var s=Math.max(Math.abs(t),Math.abs(e));return a.precision==null&&!isNaN(o=dp(i,s))&&(a.precision=o),Ic(a,s)}case"":case"e":case"g":case"p":case"r":{a.precision==null&&!isNaN(o=xp(i,Math.max(Math.abs(t),Math.abs(e))))&&(a.precision=o-(a.type==="e"));break}case"f":case"%":{a.precision==null&&!isNaN(o=Tp(i))&&(a.precision=o-(a.type==="%")*2);break}}return ts(a)}function Oc(t){var e=t.domain;return t.ticks=function(n){var a=e();return Ko(a[0],a[a.length-1],n==null?10:n)},t.tickFormat=function(n,a){var i=e();return $p(i[0],i[i.length-1],n==null?10:n,a)},t.nice=function(n){n==null&&(n=10);var a=e(),i=0,o=a.length-1,s=a[i],l=a[o],c,f,g=10;for(l0;){if(f=Zo(s,l,n),f===c)return a[i]=s,a[o]=l,e(a);if(f>0)s=Math.floor(s/f)*f,l=Math.ceil(l/f)*f;else if(f<0)s=Math.ceil(s*f)/f,l=Math.floor(l*f)/f;else break;c=f}return t},t}function Di(){var t=Tc();return t.copy=function(){return Pi(t,Di())},ra.apply(t,arguments),Oc(t)}function Cc(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function Pc(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function Sp(t){var e=1,n=t(Cc(e),Pc(e));return n.constant=function(a){return arguments.length?t(Cc(e=+a),Pc(e)):e},Oc(n)}function wc(){var t=Sp(qo());return t.copy=function(){return Pi(t,wc()).constant(t.constant())},ra.apply(t,arguments)}function Mc(t,e){t=t.slice();var n=0,a=t.length-1,i=t[n],o=t[a],s;return oMath.pow(t,e)}function Ip(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function Nc(t){return(e,n)=>-t(-e,n)}function Op(t){const e=t(Dc,Lc),n=e.domain;let a=10,i,o;function s(){return i=Ip(a),o=Rp(a),n()[0]<0?(i=Nc(i),o=Nc(o),t(Ap,Ep)):t(Dc,Lc),e}return e.base=function(l){return arguments.length?(a=+l,s()):a},e.domain=function(l){return arguments.length?(n(l),s()):n()},e.ticks=l=>{const c=n();let f=c[0],g=c[c.length-1];const v=g0){for(;m<=S;++m)for(P=1;Pg)break;w.push(N)}}else for(;m<=S;++m)for(P=a-1;P>=1;--P)if(N=m>0?P/o(-m):P*o(m),!(Ng)break;w.push(N)}w.length*2{if(l==null&&(l=10),c==null&&(c=a===10?"s":","),typeof c!="function"&&(!(a%1)&&(c=Na(c)).precision==null&&(c.trim=!0),c=ts(c)),l===1/0)return c;const f=Math.max(1,a*l/e.ticks().length);return g=>{let v=g/o(Math.round(i(g)));return v*an(Mc(n(),{floor:l=>o(Math.floor(i(l))),ceil:l=>o(Math.ceil(i(l)))})),e}function Fc(){const t=Op(qo()).domain([1,10]);return t.copy=()=>Pi(t,Fc()).base(t.base()),ra.apply(t,arguments),t}const Li=en(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);Li.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?en(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):Li);const p1=Li.range,Ur=en(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*Gn)},(t,e)=>(e-t)/Gn,t=>t.getUTCSeconds()),m1=Ur.range,es=en(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Gn)},(t,e)=>{t.setTime(+t+e*In)},(t,e)=>(e-t)/In,t=>t.getMinutes()),y1=es.range,ns=en(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*In)},(t,e)=>(e-t)/In,t=>t.getUTCMinutes()),x1=ns.range,rs=en(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Gn-t.getMinutes()*In)},(t,e)=>{t.setTime(+t+e*Bn)},(t,e)=>(e-t)/Bn,t=>t.getHours()),T1=rs.range,as=en(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*Bn)},(t,e)=>(e-t)/Bn,t=>t.getUTCHours()),$1=as.range,is=en(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),S1=is.range,os=en(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),A1=os.range;function Bc(t,e,n,a,i,o){const s=[[Ur,1,Gn],[Ur,5,5*Gn],[Ur,15,15*Gn],[Ur,30,30*Gn],[o,1,In],[o,5,5*In],[o,15,15*In],[o,30,30*In],[i,1,Bn],[i,3,3*Bn],[i,6,6*Bn],[i,12,12*Bn],[a,1,or],[a,2,2*or],[n,1,to],[e,1,Ps],[e,3,3*Ps],[t,1,eo]];function l(f,g,v){const m=gL).right(s,m);if(S===s.length)return t.every(Jo(f/eo,g/eo,v));if(S===0)return Li.every(Math.max(Jo(f,g,v),1));const[P,N]=s[m/s[S-1][2]n.axis.x.tickOffset()),i=n.config.axis_x_inverted,o=function(s){return t(s)+a()};for(const s in t)o[s]=t[s];return o.orgDomain=()=>t.domain(),o.orgScale=()=>t,n.axis.isCategorized()&&(o.domain=function(s){let l=s;return arguments.length?(t.domain(l),o):(l=this.orgDomain(),i?[l[0]+1,l[1]]:[l[0],l[1]+1])}),o},updateScales(t,e=!0){var n,a;const i=this,{axis:o,config:s,format:l,org:c,scale:f,state:{current:g,width:v,height:m,width2:S,height2:P,hasAxis:N,hasTreemap:L}}=i;if(N){const w=s.axis_rotated,X=i.getResettedPadding(1),W={x:w?X:0,y:w?0:m,subX:w?1:0,subY:w?0:P},H={x:w?m:v,y:w?v:X,subX:w?m:v,subY:w?S:1},k=e&&((n=f.x)==null?void 0:n.orgDomain()),K=e&&c.xDomain;f.x=i.getXScale(W.x,H.x,k,()=>o.x.tickOffset()),f.subX=i.getXScale(W.x,H.x,K,at=>{var ht;return at%1?0:((ht=o.subX)!=null?ht:o.x).tickOffset()}),l.xAxisTick=o.getXAxisTickFormat(),l.subXAxisTick=o.getXAxisTickFormat(!0),o.setAxis("x",f.x,s.axis_x_tick_outer,t),s.subchart_show&&o.setAxis("subX",f.subX,s.axis_x_tick_outer,t),f.y=i.getYScale("y",W.y,H.y,f.y?f.y.domain():s.axis_y_default),f.subY=i.getYScale("y",W.subY,H.subY,f.subY?f.subY.domain():s.axis_y_default),o.setAxis("y",f.y,s.axis_y_tick_outer,t),s.axis_y2_show&&(f.y2=i.getYScale("y2",W.y,H.y,f.y2?f.y2.domain():s.axis_y2_default),f.subY2=i.getYScale("y2",W.subY,H.subY,f.subY2?f.subY2.domain():s.axis_y2_default),o.setAxis("y2",f.y2,s.axis_y2_tick_outer,t))}else if(L){const w=i.getCurrentPadding();f.x=Di().rangeRound([w.left,g.width-w.right]),f.y=Di().rangeRound([w.top,g.height-w.bottom])}else(a=i.updateArc)==null||a.call(i)},xx(t){const e=this,{config:n,scale:{x:a,zoom:i}}=e,o=n.zoom_enabled&&i?i:a;return t?o(De(t.x)?t.x:t):null},xv(t){const e=this,{axis:n,config:a,scale:{x:i,zoom:o}}=e,s=a.zoom_enabled&&o?o:i;let l=e.getBaseValue(t);return n.isTimeSeries()?l=Yn.call(e,l):n.isCategorized()&&ze(l)&&(l=a.axis_x_categories.indexOf(l)),s(l)},yv(t){const e=this,{scale:{y:n,y2:a}}=e;return(t.axis&&t.axis==="y2"?a:n)(e.getBaseValue(t))},subxx(t){return t?this.scale.subX(t.x):null}},Up={setContainerSize(){const t=this,{state:e}=t;e.current.width=t.getCurrentWidth(),e.current.height=t.getCurrentHeight()},getCurrentWidth(){const t=this;return t.config.size_width||t.getParentWidth()},getCurrentHeight(){const t=this,{config:e}=t,n=e.size_height||t.getParentHeight();return n>0?n:320/(t.hasType("gauge")&&!e.gauge_fullCircle?2:1)},getParentRectValue(t){const e=`offset${Cn(t)}`;let n=this.$el.chart.node(),a=0;for(;a<30&&n&&n.tagName!=="BODY";){try{a=n.getBoundingClientRect()[t]}catch(o){e in n&&(a=n[e])}n=n.parentNode}const i=gn.body[e];return a>i&&(a=i),a},getParentWidth(){return this.getParentRectValue("width")},getParentHeight(){const t=this.$el.chart.style("height");let e=0;return t&&(e=/px$/.test(t)?parseInt(t,10):this.getParentRectValue("height")),e},getSvgLeft(t){const e=this,{config:n,state:{hasAxis:a},$el:i}=e,o=n.axis_rotated,s=o||!o&&!n.axis_y_inner,l=o?Tn.axisX:Tn.axisY,c=i.main.select(`.${l}`).node(),f=a&&n[`axis_${o?"x":"y"}_label`];let g=0;if(a&&(ze(f)||ze(f.text)||/^inner-/.test(f==null?void 0:f.position))){const N=i.main.select(`.${l}-label`);N.empty()||(g=N.node().getBoundingClientRect().left)}const v=c&&s?c.getBoundingClientRect():{right:0},m=i.chart.node().getBoundingClientRect().left+g,S=e.hasArcType(),P=v.right-m-(S?0:e.getCurrentPaddingByDirection("left",t));return P>0?P:0},updateDimension(t){var e;const n=this,{config:a,state:{hasAxis:i},$el:o}=n;i&&!t&&n.axis.x&&a.axis_rotated&&((e=n.axis.subX)==null||e.create(o.axis.subX)),n.updateScales(t),n.updateSvgSize(),n.transformAll(!1)},updateSvgSize(){const t=this,{config:e,state:{clip:n,current:a,hasAxis:i,width:o,height:s},$el:{svg:l}}=t;if(e.resize_auto==="viewBox"?l.attr("viewBox",`0 0 ${a.width} ${a.height}`):l.attr("width",a.width).attr("height",a.height),i){const c=l.select(`.${ks.brush} .overlay`),f={width:0,height:0};c.size()&&(f.width=+c.attr("width"),f.height=+c.attr("height")),l.selectAll([`#${n.id}`,`#${n.idGrid}`]).select("rect").attr("width",o).attr("height",s),l.select(`#${n.idXAxis}`).select("rect").call(t.setXAxisClipPath.bind(t)),l.select(`#${n.idYAxis}`).select("rect").call(t.setYAxisClipPath.bind(t)),n.idSubchart&&l.select(`#${n.idSubchart}`).select("rect").attr("width",o).attr("height",f.height)}},getCurrentPaddingByDirection(t,e=!1,n=!1){var a;const i=this,{config:o,$el:s,state:{hasAxis:l}}=i,c=o.axis_rotated,f=((a=o.padding)==null?void 0:a.mode)==="fit",g=he(o[`padding_${t}`])?o[`padding_${t}`]:void 0,v=l?{top:c?"y2":null,bottom:c?"y":"x",left:c?"x":"y",right:c?null:"y2"}[t]:null,m=/^(left|right)$/.test(t),S=v&&o[`axis_${v}_inner`],P=v&&o[`axis_${v}_show`],N=v?o[`axis_${v}_axes`].length:0;let L=v?m?i.getAxisWidthByAxisId(v,e):i.getHorizontalAxisHeight(v):0;const w=20;let X=0;!f&&m&&(L=Jg(L));let W=l&&m&&(S||ln(g)&&!P)?0:f?(P?L:0)+(g!=null?g:0):ln(g)?L:g;return m&&l?(v&&(f||S)&&o[`axis_${v}_label`].text&&(W+=i.axis.getAxisLabelPosition(v).isOuter?w:0),t==="right"?(W+=c?!f&&ln(g)?10:2:!P||S?f?2:1:0,W+=n?i.axis.getXAxisTickTextY2Overflow(w):0):t==="left"&&c&&ln(g)&&(W=o.axis_x_show?f?L:Math.max(L,40):1)):t==="top"?(s.title&&s.title.node()&&(W+=i.getTitlePadding()),X=c&&!S?N:0):t==="bottom"&&l&&c&&!P&&(W+=1),W+L*N-X},getCurrentPadding(t=!1){const e=this,[n,a,i,o]=["top","bottom","left","right"].map(s=>e.getCurrentPaddingByDirection(s,null,t));return{top:n,bottom:a,left:i,right:o}},getResettedPadding(t){const e=this,{config:n}=e,a=he(t);let i=a?0:{};return n.padding===!1?!a&&Object.keys(t).forEach(o=>{i[o]=!qn(n.data_labels)&&n.data_labels!==!1&&o==="top"?t[o]:0}):i=t,i},updateSizes(t){var e,n,a,i,o;const s=this,{config:l,state:c,$el:{legend:f}}=s,g=l.axis_rotated,v=s.hasArcType()||c.hasFunnel||c.hasTreemap,m=((e=l.padding)==null?void 0:e.mode)==="fit";!t&&s.setContainerSize();const S={width:f?s.getLegendWidth():0,height:f?s.getLegendHeight():0};!v&&l.axis_x_show&&l.axis_x_tick_autorotate&&s.updateXAxisTickClip();const P={right:l.legend_show&&c.isLegendRight?s.getLegendWidth()+(m?0:20):0,bottom:!l.legend_show||c.isLegendRight||c.isLegendInset?0:S.height},N=g||v?0:s.getHorizontalAxisHeight("x"),L=l.subchart_axis_x_show&&l.subchart_axis_x_tick_text_show?N:30,w=l.subchart_show&&!v?l.subchart_size_height+L:0,X=s.hasType("gauge")&&l.arc_needle_show&&!l.gauge_fullCircle&&!l.gauge_label_show?10:0,W=s.getCurrentPadding(!0);if(c.margin=!v&&g?{top:W.top,right:v?0:W.right+P.right,bottom:P.bottom+W.bottom,left:w+(v?0:W.left)}:{top:(m?0:4)+W.top,right:v?0:W.right+P.right,bottom:X+w+P.bottom+W.bottom,left:v?0:W.left},c.margin=s.getResettedPadding(c.margin),c.margin2=g?{top:c.margin.top,right:NaN,bottom:20+P.bottom,left:s.state.rotatedPadding.left}:{top:c.current.height-w-P.bottom,right:NaN,bottom:L+P.bottom,left:c.margin.left},c.margin3={top:0,right:NaN,bottom:0,left:0},(n=s.updateSizeForLegend)==null||n.call(s,S),c.width=c.current.width-c.margin.left-c.margin.right,c.height=c.current.height-c.margin.top-c.margin.bottom,c.width<0&&(c.width=0),c.height<0&&(c.height=0),c.width2=g?c.margin.left-c.rotatedPadding.left-c.rotatedPadding.right:c.width,c.height2=g?c.height:c.current.height-c.margin2.top-c.margin2.bottom,c.width2<0&&(c.width2=0),c.height2<0&&(c.height2=0),s.hasArcType()){const H=s.hasType("gauge"),k=l.legend_show&&c.isLegendRight,K=(a=c.hasRadar&&s.cache.get(Ln.radarTextWidth))!=null?a:0;c.arcWidth=c.width-(k?S.width+10:0)-K,c.arcHeight=c.height-(k&&!H?0:10),(i=l.arc_rangeText_values)!=null&&i.length&&(H?(c.arcWidth-=25,c.arcHeight-=10,c.margin.left+=10):(c.arcHeight-=20,c.margin.top+=10)),H&&!l.gauge_fullCircle&&(c.arcHeight+=c.height-s.getPaddingBottomForGauge()),(o=s.updateRadius)==null||o.call(s)}c.isLegendRight&&v&&(c.margin3.left=c.arcWidth/2+c.radiusExpanded*1.1)}},zp={setCssRule(t,e,n,a){const i=this,{config:o,state:{cssRule:s,style:l}}=i;return o.boost_useCssRule?c=>{c.each(f=>{const g=a&&(a==null?void 0:a.call(i,f)),v=`${t?`.${sn.shapes+i.getTargetSelectorSuffix(f.id)}`:""}${e}`;e in s&&l.sheet.deleteRule(s[v]),i.state.cssRule[v]=_g(l,v,n.filter(Boolean).map(m=>ze(g)&&m.indexOf(":")===-1?`${m}: ${g}`:m||""))})}:()=>{}},getStylePropValue(t){const{config:{boost_useCssRule:e}}=this;return e?null:ve(t)?t.bind(this):t}};function Uc(t){return typeof t=="string"?new Ie([document.querySelectorAll(t)],[document.documentElement]):new Ie([T(t)],_t)}function jp(t){let e="middle";return t>0&&t<=170?e="end":t>190&&t<=360&&(e="start"),e}function Vp(t,e,n,a,i){var o;const s=this,{value:l}=t,c=s.isCandlestickType(t),f=he(l)&&l<0||c&&!((o=s.getCandlestickData(t))!=null&&o._isUp);let{x:g,y:v}=e;const m=4,S=m*2;return a?n==="start"?(g+=f?0:S,v+=m):n==="middle"?(g+=S,v-=S):n==="end"&&(f&&(g-=S),v+=m):(n==="start"?(g+=m,f&&(v+=S*2)):n==="middle"?v-=S:n==="end"&&(g-=m,f&&(v+=S*2)),i&&(v+=f?-17:c?13:7)),{x:g,y:v}}function zc(t,e){var n;const a=this.config.data_labels_position,{id:i,index:o,value:s}=t;return(n=ve(a)?a.bind(this.api)(e,s,i,o,this.$el.text):(i in a?a[i]:a)[e])!=null?n:0}var Gp={opacityForText(t){const e=this;return e.isBarType(t)&&!e.meetsLabelThreshold(Math.abs(e.getRatio("bar",t)),"bar")?"0":e.hasDataLabel?null:"0"},initText(){const{$el:t}=this;t.main.select(`.${Se.chart}`).append("g").attr("class",On.chartTexts).style("pointer-events",t.funnel||t.treemap?"none":null)},updateTargetsForText(t){const e=this,n=e.getChartClass("Text"),a=e.getClass("texts","id"),i=e.classFocus.bind(e);e.$el.main.select(`.${On.chartTexts}`).selectAll(`.${On.chartText}`).data(t).attr("class",l=>`${n(l)}${i(l)}`.trim()).enter().append("g").style("opacity","0").attr("class",n).call(e.setCssRule(!0,` .${On.text}`,["fill","pointer-events:none"],e.updateTextColor)).append("g").attr("class",a)},updateText(){const t=this,{$el:e,$T:n,config:a,axis:i}=t,o=t.getClass("text","index"),s=a.data_labels.centered,l=e.main.selectAll(`.${On.texts}`).selectAll(`.${On.text}`).data(t.labelishData.bind(t));n(l.exit()).style("fill-opacity","0").remove(),e.text=l.enter().append("text").merge(l).attr("class",o).attr("text-anchor",c=>{let g=a[`axis_${i==null?void 0:i.getId(c.id)}_inverted`]?c.value>0:c.value<0;if(t.isCandlestickType(c)){const v=t.getCandlestickData(c);g=!(v!=null&&v._isUp)}else if(t.isTreemapType(c))return s?"middle":"start";return a.axis_rotated?g?"end":"start":"middle"}).style("fill",t.getStylePropValue(t.updateTextColor)).style("fill-opacity","0").each(function(c,f,g){const v=ot(this);let{value:m}=c;if(t.isBubbleZType(c))m=t.getBubbleZData(m,"z");else if(t.isCandlestickType(c)){const S=t.getCandlestickData(c);S&&(m=S.close)}m=t.isTreemapType(c)?t.treemapDataLabelFormat(c)(v):t.dataLabelFormat(c.id)(m,c.id,c.index,g),he(m)?this.textContent=m:wa(v,m)})},updateTextColor(t){const e=this,{config:n}=e,a=n.data_labels_colors,i=e.isArcType(t)&&!e.isRadarType(t)||e.isFunnelType(t)||e.isTreemapType(t)?null:e.color(t);let o;if(ze(a))o=a;else if(Be(a)){const{id:s}=t.data||t;o=a[s]}else ve(a)&&(o=a.bind(e.api)(i,t));if(e.isCandlestickType(t)&&!ve(a)){const s=e.getCandlestickData(t);if(!(s!=null&&s._isUp)){const l=n.candlestick_color_down;o=Be(l)?l[t.id]:l}}return o||i},updateTextBGColor(t,e){const n=this,{$el:a}=n;let i="";if(ze(e)||Be(e)){const o=ze(e)?"":n.getTargetSelectorSuffix("id"in t?t.id:t.data.id),s=a.defs.select(["filter[id*='labels-bg","']"].join(o));s.size()&&(i=`url(#${s.attr("id")})`)}return i||null},redrawText(t,e,n,a){const i=this,{$T:o,axis:s,config:l,state:{hasTreemap:c}}=i,f=gr(!0),g=l.axis_rotated,v=l.data_labels.rotate,m=jp(v),S=v?`rotate(${v})`:"";return i.$el.text.style("fill",i.getStylePropValue(i.updateTextColor)).attr("filter",P=>i.updateTextBGColor.bind(i)(P,l.data_labels_backgroundColors)).style("fill-opacity",n?0:i.opacityForText.bind(i)).each(function(P,N){const L=o(c&&this.childElementCount?this.parentNode:this,!!(a&&this.getAttribute("x")),f),w=l[`axis_${s==null?void 0:s.getId(P.id)}_inverted`];let X={x:t.bind(this)(P,N),y:e.bind(this)(P,N)};v&&(X=Vp.bind(i)(P,X,m,g,w),L.attr("text-anchor",m)),this.childElementCount||v?L.attr("transform",`translate(${X.x} ${X.y}) ${S}`):L.attr("x",X.x).attr("y",X.y)}),!0},getTextRect(t,e){const n=this;let a=t.node?t.node():t;/text/i.test(a.tagName)||(a=a.querySelector("text"));const i=a.textContent,o=`${Ln.textRect}-${i.replace(/\W/g,"_")}`;let s=n.cache.get(o);return s||(n.$el.svg.append("text").style("visibility","hidden").style("font",ot(a).style("font")).classed(e,!0).text(i).call(l=>{s=Ma(l.node())}).remove(),n.cache.add(o,s)),s},generateXYForText(t,e){const n=this,{state:{hasRadar:a,hasFunnel:i,hasTreemap:o}}=n,s=Object.keys(t),l={},c=e?n.getXForText:n.getYForText;return i&&s.push("funnel"),a&&s.push("radar"),o&&s.push("treemap"),s.forEach(f=>{l[f]=n[`generateGet${Cn(f)}Points`](t[f],!1)}),function(f,g){const v=n.isAreaType(f)&&"area"||n.isBarType(f)&&"bar"||n.isCandlestickType(f)&&"candlestick"||n.isFunnelType(f)&&"funnel"||n.isRadarType(f)&&"radar"||n.isTreemapType(f)&&"treemap"||"line";return c.call(n,l[v](f,g),f,this)}},getCenteredTextPos(t,e,n,a){const i=this,{config:o}=i,s=o.axis_rotated,l=i.isBarType(t),c=i.isTreemapType(t);if(o.data_labels.centered&&(l||c)){const f=Ma(n);if(l){const g=i.getRangedData(t,null,"bar")>=0;if(s){const v=(g?e[1][1]-e[0][1]:e[0][1]-e[1][1])/2+f.width/2;return g?-v-3:v+2}else{const v=(g?e[0][1]-e[1][1]:e[1][1]-e[0][1])/2+f.height/2;return g?v:-v-2}}else if(c)return a==="x"?(e[1][0]-e[0][0])/2:(e[1][1]-e[0][1])/2+f.height/2}return 0},getXForText(t,e,n){var a;const i=this,{config:o}=i,s=o.axis_rotated,l=i.isFunnelType(e),c=i.isTreemapType(e);let f=t?t[0][0]:0;if(i.isCandlestickType(e))s?f=(a=i.getCandlestickData(e))!=null&&a._isUp?t[2][2]+4:t[2][1]-4:f+=(t[1][0]-f)/2;else if(l)f+=i.state.current.width/2;else if(c)f+=o.data_labels.centered?0:5;else if(s){const g=o[`axis_${i.axis.getId(e.id)}_inverted`],v=i.isBarType(e)?4:6,m=e.value;f=t[2][1],g?f-=v*(m>0?1:-1):f+=v*(m<0?-1:1)}else f=i.hasType("bar")?(t[2][0]+t[0][0])/2:f;return(s||c)&&(f+=i.getCenteredTextPos(e,t,n,"x")),f+zc.call(this,e,"x")},getYForText(t,e,n){const a=this,{axis:i,config:o,state:s}=a,l=o.axis_rotated,c=o[`axis_${i==null?void 0:i.getId(e.id)}_inverted`],f=a.isBarType(e),g=a.isFunnelType(e),v=a.isTreemapType(e),m=o.point_r,S=Ma(n);let{value:P}=e,N=3,L;if(a.isCandlestickType(e))P=a.getCandlestickData(e),l?(L=t[0][0],L+=(t[1][0]-L)/2+N):(L=P&&P._isUp?t[2][2]-N:t[2][1]+N*4,c&&(L+=15*(P._isUp?1:-1)));else if(g)L=t?t[0][1]+(t[1][1]-t[0][1])/2+S.height/2-3:0;else if(v)L=t[0][1]+(o.data_labels.centered?0:S.height+5);else if(l)L=(t[0][0]+t[2][0]+S.height*.6)/2;else if(L=t[2][1],he(m)&&m>5&&(a.isLineType(e)||a.isScatterType(e))&&(N+=o.point_r/2.3),P<0||P===0&&!s.hasPositiveValue&&s.hasNegativeValue)L+=c?f?-3:-5:S.height+(f?-N:N);else{let w=-N*2;f?w=-N:a.isBubbleType(e)&&(w=N),c&&(w=f?10:15),L+=w}return(!l||v)&&(L+=a.getCenteredTextPos(e,t,n,"y")),L+zc.call(this,e,"y")},markOverlapped(t,e,n){const a=e.$el.arcs.selectAll(n),i=a.filter(c=>c.data.id!==t),o=a.filter(c=>c.data.id===t),s=Jl(o.node()),l=(c,f)=>Math.sqrt(Math.pow(c,2)+Math.pow(f,2));o.node()&&i.each(function(){const c=Jl(this),f=ot(this),g=l(s.e,s.f)>l(c.e,c.f)?o:f,v=Math.ceil(Math.abs(s.e-c.e))=i}};function jc(t="left",e){const n=he(e);let a;return t.indexOf("center")>-1?a=n?e/2:"middle":t.indexOf("right")>-1?a=n?e:"end":a=n?0:"start",a}var Xp={initTitle(){const t=this,{config:e,$el:n}=t;if(e.title_text){n.title=n.svg.append("g");const a=n.title.append("text").style("text-anchor",jc(e.title_position)).attr("class",On.title);wa(a,e.title_text,[.3,1.5])}},redrawTitle(){const t=this,{config:e,state:{current:n},$el:{title:a}}=t;if(a){const i=jc(e.title_position,n.width),o=(e.title_padding.top||0)+t.getTextRect(t.$el.title,On.title).height;a.attr("transform",`translate(${i}, ${o})`)}},getTitlePadding(){const t=this,{$el:{title:e},config:n}=t;return(n.title_padding.top||0)+(e?t.getTextRect(e,On.title).height:0)+(n.title_padding.bottom||0)}},Hp={initTooltip(){const t=this,{config:e,$el:n}=t;n.tooltip=ot(e.tooltip_contents.bindto),n.tooltip.empty()&&(n.tooltip=n.chart.append("div").attr("class",ei.tooltipContainer).style("position","absolute").style("pointer-events","none").style("display","none")),t.bindTooltipResizePos()},initShowTooltip(){var t;const e=this,{config:n,$el:a,state:{hasAxis:i,hasRadar:o}}=e;if(n.tooltip_init_show){const s=!(i||o);(t=e.axis)!=null&&t.isTimeSeries()&&ze(n.tooltip_init_x)&&(n.tooltip_init_x=Yn.call(e,n.tooltip_init_x)),e.api.tooltip.show({data:{[s?"index":"x"]:n.tooltip_init_x}});const l=n.tooltip_init_position;if(!n.tooltip_contents.bindto&&!qn(l)){const{top:c=0,left:f=50}=l;a.tooltip.style("top",ze(c)?c:`${c}px`).style("left",ze(f)?f:`${f}px`).style("display",null)}}},getTooltipHTML(...t){const e=this,{api:n,config:a}=e;return ve(a.tooltip_contents)?a.tooltip_contents.bind(n)(...t):e.getTooltipContent(...t)},getTooltipContent(t,e,n,a){var i;const o=this,{api:s,config:l,state:c,$el:f}=o,[g,v,m]=["title","name","value"].map(vt=>{const Q=l[`tooltip_format_${vt}`];return ve(Q)?Q.bind(s):Q}),S=(...vt)=>Po((g||e)(...vt)),P=(...vt)=>Po((v||(Q=>Q))(...vt)),N=(...vt)=>{const Q=m||(c.hasTreemap||o.isStackNormalized()?(St,ct)=>`${(ct*100).toFixed(2)}%`:n);return Po(Q(...vt))},L=l.tooltip_order,w=vt=>o.axis&&o.isBubbleZType(vt)?o.getBubbleZData(vt.value,"z"):o.getBaseValue(vt),X=o.levelColor?vt=>o.levelColor(vt.value):vt=>a(vt),W=l.tooltip_contents,H=W.template,k=o.mapToTargetIds();if(L===null&&l.data_groups.length){const vt=o.orderTargets(o.data.targets).map(Q=>Q.id).reverse();t.sort((Q,St)=>{let ct=Q?Q.value:null,At=St?St.value:null;return ct>0&&At>0&&(ct=Q.id?vt.indexOf(Q.id):null,At=St.id?vt.indexOf(St.id):null),ct-At})}else if(/^(asc|desc)$/.test(L)){const vt=L==="asc";t.sort((Q,St)=>{const ct=Q?w(Q):null,At=St?w(St):null;return vt?ct-At:At-ct})}else ve(L)&&t.sort(L.bind(s));const K=o.getTooltipContentTemplate(H),at=t.length;let ht,$t,dt,st,Vt;for(Vt=0;Vt`:""})}if(!$t.ratio&&f.arcs&&(dt=["arc",o.$el.arcs.select(`path.${Ve.arc}-${$t.id}`).data()[0]],$t.ratio=o.getRatio(...dt)),dt=[$t.ratio,$t.id,$t.index],o.isAreaRangeType($t)){const[vt,Q]=["high","low"].map(ct=>N(o.getRangedData($t,ct),...dt));st=`Mid: ${N(w($t),...dt)} High: ${vt} Low: ${Q}`}else if(o.isCandlestickType($t)){const[vt,Q,St,ct,At]=["open","high","low","close","volume"].map(Gt=>o.getRangedData($t,Gt,"candlestick")?N(o.getRangedData($t,Gt,"candlestick"),...dt):void 0);st=`Open: ${vt} High: ${Q} Low: ${St} Close: ${ct}${At?` Volume: ${At}`:""}`}else if(o.isBarRangeType($t)){const{value:vt,id:Q,index:St}=$t;st=`${N(vt,void 0,Q,St)}`}else st=N(w($t),...dt);if(st!==void 0){if($t.name===null)continue;const vt=P((i=$t.name)!=null?i:$t.id,...dt),Q=X($t),St={CLASS_TOOLTIP_NAME:ei.tooltipName+o.getTargetSelectorSuffix($t.id),COLOR:H||!o.patterns?Q:``,NAME:vt,VALUE:st};if(H&&Be(W.text)){const ct=k.indexOf($t.id);Object.keys(W.text).forEach(At=>{St[At]=W.text[At][ct]})}ht+=bi(K[1],St)}}return`${ht}
${vt}
`},getTooltipContentTemplate(t){return(t||` + {=TITLE} + {{ + + + }} +
${this.patterns?"{=COLOR}":''}{=NAME}{=VALUE}
`).replace(/(\r?\n|\t)/g,"").split(/{{(.*)}}/)},setTooltipPosition(t,e){var n,a;const i=this,{config:o,scale:s,state:l,$el:{eventRect:c,tooltip:f,svg:g}}=i,{bindto:v}=o.tooltip_contents,m=o.axis_rotated,S=f==null?void 0:f.datum();if(!v&&S){const P=t!=null?t:JSON.parse(S.current),[N,L]=Hn(l.event,e!=null?e:c==null?void 0:c.node()),w={x:N,y:L};if(l.hasAxis&&s.x&&S&&"x"in S){const k=(K=0,at,ht="y")=>{var $t;const dt=s[at?($t=i.axis)==null?void 0:$t.getId(at):ht];return dt?dt(K)+(m?l.margin.left:l.margin.top):0};w.xAxis=s.x(S.x)+(o.tooltip_position?m?l.margin.top:l.margin.left:0),P.length===1?w.yAxis=k(P[0].value,P[0].id):w.yAxis=k}const{width:X=0,height:W=0}=S,H=(a=(n=o.tooltip_position)==null?void 0:n.bind(i.api)(P,X,W,c==null?void 0:c.node(),w))!=null?a:Lo(g)?i.getTooltipPositionViewBox.bind(i)(X,W,w):i.getTooltipPosition.bind(i)(X,W,w);["top","left"].forEach(k=>{const K=H[k];f.style(k,`${K}px`),k==="left"&&!S.xPosInPercent&&(S.xPosInPercent=K/l.current.width*100)})}},getTooltipPositionViewBox(t,e,n){var a,i;const o=this,{$el:{eventRect:s,svg:l},config:c,state:f}=o,g=c.axis_rotated,v=o.hasArcType()||f.hasFunnel||f.hasTreemap,m=(i=(a=v?l:s)==null?void 0:a.node())!=null?i:f.event.target;let{x:S,y:P}=n;f.hasAxis&&(S=g?S:n.xAxis,P=g?n.xAxis:P);const N=Ai(m,S,P,!1),L=m.getBoundingClientRect(),w=Ai(m,20,0,!1).x;let X=N.y,W=N.x+t/2+w;return v&&(f.hasFunnel||f.hasTreemap||f.hasRadar?(W-=t/2+w,X+=e):(X+=L.height/2,W+=L.width/2-(t-w))),W+t>L.width&&(W=L.width-t-w),X+e>L.height&&(X-=e*2),{top:X,left:W}},getTooltipPosition(t,e,n){var a,i,o;const s=this,{config:l,scale:c,state:f}=s,{width:g,height:v,current:m,hasFunnel:S,hasRadar:P,hasTreemap:N,isLegendRight:L,inputType:w}=f,X=s.hasType("gauge")&&!l.gauge_fullCircle,W=l.axis_rotated,H=s.hasArcType(),k=s.getSvgLeft(!0);let K=k+m.width-s.getCurrentPaddingByDirection("right");const at=20;let{x:ht,y:$t}=n;if(P)ht+=ht>=g/2?15:-(t+15),$t+=15;else if(H){if(w!=="touch"){let Vt=(i=(a=s.getTitlePadding)==null?void 0:a.call(s))!=null?i:0;Vt&&X&&((o=l.arc_rangeText_values)!=null&&o.length)&&(Vt+=10),ht+=(g-(L?s.getLegendWidth():0))/2,$t+=(X?v:v/2+e)+Vt}}else if(S||N)$t+=e;else{const st={top:s.getCurrentPaddingByDirection("top",!0),left:s.getCurrentPaddingByDirection("left",!0)};W?(ht+=k+st.left+at,$t=st.top+n.xAxis+at,K-=k):(ht=k+st.left+at+(c.zoom?ht:n.xAxis),$t+=st.top-5)}if(ht+t+15>K&&(ht-=t+(S||N||H?0:W?at*2:38)),$t+e>m.height){const st=N?e+10:30;$t-=X?e*1.5:e+st}const dt={top:$t,left:ht};return Object.keys(dt).forEach(st=>{dt[st]<0&&(dt[st]=0)}),dt},showTooltip(t,e){const n=this,{config:a,$el:{tooltip:i}}=n,o=t.filter(c=>c&&De(n.getBaseValue(c)));if(!i||o.length===0||!a.tooltip_show)return;let s=i.datum();const l=JSON.stringify(t);if(!s||s.current!==l){const{index:c,x:f}=t.concat().sort()[0];_e(a.tooltip_onshow,n.api,t),i.html(n.getTooltipHTML(t,n.axis?n.axis.getXAxisTickFormat():n.categoryName.bind(n),n.getDefaultValueFormat(),n.color)).style("display",null).style("visibility",null).datum(s={index:c,x:f,current:l,width:i.property("offsetWidth"),height:i.property("offsetHeight")}),_e(a.tooltip_onshown,n.api,t),n._handleLinkedCharts(!0,c)}n.setTooltipPosition(o,e)},bindTooltipResizePos(){const t=this,{resizeFunction:e,state:n,$el:{tooltip:a}}=t;e.add(()=>{if(a.style("display")==="block"){const{current:i}=n,{width:o,xPosInPercent:s}=a.datum();let l=i.width/100*s;const c=i.width-(l+o);c<0&&(l+=c),a.style("left",`${l}px`)}})},hideTooltip(t){var e;const n=this,{api:a,config:i,$el:{tooltip:o}}=n;if(o&&o.style("display")!=="none"&&(!i.tooltip_doNotHide||t)){const s=JSON.parse((e=o.datum().current)!=null?e:{});_e(i.tooltip_onhide,a,s),o.style("display","none").style("visibility","hidden").datum(null),_e(i.tooltip_onhidden,a,s)}},_handleLinkedCharts(t,e){const n=this,{charts:a,config:i,state:{event:o}}=n;if(o!=null&&o.isTrusted&&i.tooltip_linked&&a.length>1){const s=i.tooltip_linked_name;a.filter(l=>l!==n.api).forEach(l=>{const{config:c,$el:f}=l.internal,g=c.tooltip_linked,v=c.tooltip_linked_name,m=gn.body.contains(f.chart.node());if(g&&s===v&&m){const S=f.tooltip.data()[0],P=e!==(S==null?void 0:S.index);try{l.tooltip[t&&P?"show":"hide"]({index:e})}catch(N){}}})}},updateTooltipOnRedraw(t,e){var n;const a=this,{config:i,$el:{eventRect:o,svg:s,tooltip:l},state:{event:c,hasAxis:f,hasRadar:g,hasTreemap:v}}=a;if((l==null?void 0:l.style("display"))==="block"&&c){const m=t!=null?t:(n=g?s:o)==null?void 0:n.node();if(f||g)if(a.isMultipleX())a.selectRectForMultipleXs(m,!1);else{const S=e!=null?e:a.getDataIndexFromEvent(c);e===-1?a.api.tooltip.hide():(a.selectRectForSingle(m,S),a.setExpand(S,null,!0))}else{const{clientX:S,clientY:P}=c;setTimeout(()=>{let N=[S,P].every(Number.isFinite)&&gn.elementFromPoint(S,P);const L=N&&ot(N).datum();if(L){const w=a.hasArcType()?a.convertToArcData(a.updateAngle(L)):L==null?void 0:L.data;v&&(N=s.node()),w&&a.showTooltip([w],N)}else a.api.tooltip.hide()},i.transition_duration)}}}},Yp={getTranslate(t,e=0){var n;const a=this,{config:i,state:o}=a,s=i.axis_rotated;let l=0,c,f;if(e&&/^(x|y2?)$/.test(t)&&(l=a.getAxisSize(t)*e),t==="main")c=$i(o.margin.left),f=$i(o.margin.top);else if(t==="context")c=$i(o.margin2.left),f=$i(o.margin2.top);else if(t==="legend")c=o.margin3.left,f=o.margin3.top;else if(t==="x")c=s?-l:0,f=s?0:o.height+l;else if(t==="y")c=s?0:-l,f=s?o.height+l:0;else if(t==="y2")c=s?0:o.width+l,f=s?-l-1:0;else if(t==="subX")c=0,f=s?0:o.height2;else if(t==="arc")c=o.arcWidth/2,f=o.arcHeight/2,(n=i.arc_rangeText_values)!=null&&n.length&&(f+=5+(a.hasType("gauge")&&i.title_text?10:0));else if(t==="polar")c=o.arcWidth/2,f=o.arcHeight/2;else if(t==="radar"){const[g,v]=a.getRadarSize();c=o.width/2-g,f=o.height/2-v}return`translate(${c}, ${f})`},transformMain(t,e){const n=this,{$el:{main:a},$T:i}=n,o=e!=null&&e.axisX?e.axisX:i(a.select(`.${Tn.axisX}`),t),s=e!=null&&e.axisY?e.axisY:i(a.select(`.${Tn.axisY}`),t),l=e!=null&&e.axisY2?e.axisY2:i(a.select(`.${Tn.axisY2}`),t);i(a,t).attr("transform",n.getTranslate("main")),o.attr("transform",n.getTranslate("x")),s.attr("transform",n.getTranslate("y")),l.attr("transform",n.getTranslate("y2")),a.select(`.${Ve.chartArcs}`).attr("transform",n.getTranslate("arc"))},transformAll(t,e){const n=this,{config:a,state:{hasAxis:i,hasFunnel:o,hasTreemap:s},$el:l}=n;!o&&!s&&n.transformMain(t,e),i&&a.subchart_show&&n.transformContext(t,e),l.legend&&n.transformLegend(t)}},Wp={isValidChartType(t){return!!(t&&Object.values(oe).indexOf(t)>-1)},setTargetType(t,e){const n=this,{config:a,state:{withoutFadeIn:i}}=n;n.mapToTargetIds(t).forEach(o=>{i[o]=e===a.data_types[o],a.data_types[o]=e}),t||(a.data_type=e)},updateTypesElements(){const t=this,{state:{current:e}}=t;Object.keys(oe).forEach(n=>{const a=oe[n],i=t.hasType(a,null,!0),o=e.types.indexOf(a);o===-1&&i?e.types.push(a):o>-1&&!i&&e.types.splice(o,1)}),t.setChartElements()},hasType(t,e,n=!1){var a;const i=this,{config:o,state:{current:s}}=i,l=o.data_types,c=e||i.data.targets;let f=!1;return!n&&((a=s.types)==null?void 0:a.indexOf(t))>-1?f=!0:c!=null&&c.length?c.forEach(g=>{const v=l[g.id];(v===t||!v&&t==="line")&&(f=!0)}):Object.keys(l).length?Object.keys(l).forEach(g=>{l[g]===t&&(f=!0)}):f=o.data_type===t,f},hasTypeOf(t,e,n=[]){return t in Sr?!Sr[t].filter(a=>n.indexOf(a)===-1).every(a=>!this.hasType(a,e)):!1},isTypeOf(t,e){var n;const a=ze(t)?t:t.id,i=this.config&&(((n=this.config.data_types)==null?void 0:n[a])||this.config.data_type);return je(e)?e.indexOf(i)>=0:i===e},hasPointType(){const t=this;return t.hasTypeOf("Line")||t.hasType("bubble")||t.hasType("scatter")},hasArcType(t,e){return this.hasTypeOf("Arc",t,e)},hasMultiArcGauge(){return this.hasType("gauge")&&this.config.gauge_type==="multi"},isLineType(t){const e=ze(t)?t:t.id;return!this.config.data_types[e]||this.isTypeOf(e,Sr.Line)},isStepType(t){return this.isTypeOf(t,Sr.Step)},isSplineType(t){return this.isTypeOf(t,Sr.Spline)},isAreaType(t){return this.isTypeOf(t,Sr.Area)},isAreaRangeType(t){return this.isTypeOf(t,Sr.AreaRange)},isBarType(t){return this.isTypeOf(t,"bar")},isBubbleType(t){return this.isTypeOf(t,"bubble")},isCandlestickType(t){return this.isTypeOf(t,"candlestick")},isScatterType(t){return this.isTypeOf(t,"scatter")},isTreemapType(t){return this.isTypeOf(t,"treemap")},isPieType(t){return this.isTypeOf(t,"pie")},isFunnelType(t){return this.isTypeOf(t,"funnel")},isGaugeType(t){return this.isTypeOf(t,"gauge")},isDonutType(t){return this.isTypeOf(t,"donut")},isPolarType(t){return this.isTypeOf(t,"polar")},isRadarType(t){return this.isTypeOf(t,"radar")},isArcType(t){return this.isPieType(t)||this.isDonutType(t)||this.isGaugeType(t)||this.isPolarType(t)||this.isRadarType(t)},isCirclePoint(t){const{config:e}=this,n=e.point_pattern;let a=!1;return(t==null?void 0:t.tagName)==="circle"?a=!0:a=e.point_type==="circle"&&(!n||je(n)&&n.length===0),a},lineData(t){return this.isLineType(t)?[t]:[]},arcData(t){return this.isArcType(t.data)?[t]:[]},labelishData(t){return this.isBarType(t)||this.isLineType(t)||this.isScatterType(t)||this.isBubbleType(t)||this.isCandlestickType(t)||this.isFunnelType(t)||this.isRadarType(t)||this.isTreemapType(t)?t.values.filter(e=>he(e.value)||!!e.value):[]},barLineBubbleData(t){return this.isBarType(t)||this.isLineType(t)||this.isBubbleType(t)?t.values:[]},isInterpolationType(t){return["basis","basis-closed","basis-open","bundle","cardinal","cardinal-closed","cardinal-open","catmull-rom","catmull-rom-closed","catmull-rom-open","linear","linear-closed","monotone-x","monotone-y","natural"].indexOf(t)>=0}};function Ni(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function Fi(t){this._context=t}Fi.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Ni(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Ni(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Kp(t){return new Fi(t)}function Ar(){}function Vc(t){this._context=t}Vc.prototype={areaStart:Ar,areaEnd:Ar,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Ni(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Zp(t){return new Vc(t)}function Gc(t){this._context=t}Gc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,a=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,a):this._context.moveTo(n,a);break;case 3:this._point=4;default:Ni(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Jp(t){return new Gc(t)}function Xc(t,e){this._basis=new Fi(t),this._beta=e}Xc.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var a=t[0],i=e[0],o=t[n]-a,s=e[n]-i,l=-1,c;++l<=n;)c=l/n,this._basis.point(this._beta*t[l]+(1-this._beta)*(a+c*o),this._beta*e[l]+(1-this._beta)*(i+c*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var Qp=function t(e){function n(a){return e===1?new Fi(a):new Xc(a,e)}return n.beta=function(a){return t(+a)},n}(.85);function Bi(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function ls(t,e){this._context=t,this._k=(1-e)/6}ls.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Bi(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:Bi(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var kp=function t(e){function n(a){return new ls(a,e)}return n.tension=function(a){return t(+a)},n}(0);function cs(t,e){this._context=t,this._k=(1-e)/6}cs.prototype={areaStart:Ar,areaEnd:Ar,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Bi(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var qp=function t(e){function n(a){return new cs(a,e)}return n.tension=function(a){return t(+a)},n}(0);function us(t,e){this._context=t,this._k=(1-e)/6}us.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Bi(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var _p=function t(e){function n(a){return new us(a,e)}return n.tension=function(a){return t(+a)},n}(0);const Hc=Math.abs,En=Math.atan2,jr=Math.cos,tm=Math.max,fs=Math.min,rr=Math.sin,oa=Math.sqrt,bn=1e-12,Fa=Math.PI,Ui=Fa/2,zi=2*Fa;function em(t){return t>1?0:t<-1?Fa:Math.acos(t)}function Yc(t){return t>=1?Ui:t<=-1?-Ui:Math.asin(t)}function ds(t,e,n){var a=t._x1,i=t._y1,o=t._x2,s=t._y2;if(t._l01_a>bn){var l=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);a=(a*l-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*l-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>bn){var f=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,g=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*f+t._x1*t._l23_2a-e*t._l12_2a)/g,s=(s*f+t._y1*t._l23_2a-n*t._l12_2a)/g}t._context.bezierCurveTo(a,i,o,s,t._x2,t._y2)}function Wc(t,e){this._context=t,this._alpha=e}Wc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,a=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+a*a,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:ds(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var nm=function t(e){function n(a){return e?new Wc(a,e):new ls(a,0)}return n.alpha=function(a){return t(+a)},n}(.5);function Kc(t,e){this._context=t,this._alpha=e}Kc.prototype={areaStart:Ar,areaEnd:Ar,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,a=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+a*a,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:ds(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var rm=function t(e){function n(a){return e?new Kc(a,e):new cs(a,0)}return n.alpha=function(a){return t(+a)},n}(.5);function Zc(t,e){this._context=t,this._alpha=e}Zc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,a=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+a*a,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:ds(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var am=function t(e){function n(a){return e?new Zc(a,e):new us(a,0)}return n.alpha=function(a){return t(+a)},n}(.5);function Jc(t){return t<0?-1:1}function Qc(t,e,n){var a=t._x1-t._x0,i=e-t._x1,o=(t._y1-t._y0)/(a||i<0&&-0),s=(n-t._y1)/(i||a<0&&-0),l=(o*i+s*a)/(a+i);return(Jc(o)+Jc(s))*Math.min(Math.abs(o),Math.abs(s),.5*Math.abs(l))||0}function kc(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function hs(t,e,n){var a=t._x0,i=t._y0,o=t._x1,s=t._y1,l=(o-a)/3;t._context.bezierCurveTo(a+l,i+l*e,o-l,s-l*n,o,s)}function ji(t){this._context=t}ji.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:hs(this,this._t0,kc(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,hs(this,kc(this,n=Qc(this,t,e)),n);break;default:hs(this,this._t0,n=Qc(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}};function qc(t){this._context=new _c(t)}(qc.prototype=Object.create(ji.prototype)).point=function(t,e){ji.prototype.point.call(this,e,t)};function _c(t){this._context=t}_c.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,a,i,o){this._context.bezierCurveTo(e,t,a,n,o,i)}};function im(t){return new ji(t)}function om(t){return new qc(t)}function tu(t){this._context=t}tu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var a=eu(t),i=eu(e),o=0,s=1;s=0;--e)i[e]=(s[e]-i[e+1])/o[e];for(o[n-1]=(t[n]+i[n-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}break}}this._x=t,this._y=e}};function cm(t){return new Vi(t,.5)}function um(t){return new Vi(t,0)}function fm(t){return new Vi(t,1)}function dm(t){const e=this;let n;return e.isLineType(t)?n=e.generateGetLinePoints(e.getShapeIndices(e.isLineType)):e.isBarType(t)&&(n=e.generateGetBarPoints(e.getShapeIndices(e.isBarType))),n}var hm={getDrawShape(){const t=this,e=t.config.axis_rotated,{hasRadar:n,hasTreemap:a}=t.state,i={type:{},indices:{},pos:{}};if(!a&&["bar","candlestick","line","area"].forEach(o=>{const s=Cn(/^(bubble|scatter)$/.test(o)?"line":o);if(t.hasType(o)||t.hasTypeOf(s)||o==="line"&&(t.hasType("bubble")||t.hasType("scatter"))){const l=t.getShapeIndices(t[`is${s}Type`]),c=t[`generateDraw${s}`];i.indices[o]=l,i.type[o]=c?c.bind(t)(l,!1):void 0}}),!t.hasArcType()||n||a){let o,s;a||(o=n?t.radarCircleX:e?t.circleY:t.circleX,s=n?t.radarCircleY:e?t.circleX:t.circleY),i.pos={xForText:t.generateXYForText(i.indices,!0),yForText:t.generateXYForText(i.indices,!1),cx:(o||function(){}).bind(t),cy:(s||function(){}).bind(t)}}return i},getShapeIndices(t){const e=this,{config:n}=e,a=n.data_xs,i=cn(a),o={};let s=i?{}:0;return i&&Mo(Object.keys(a).map(l=>a[l])).forEach(l=>{s[l]=0,o[l]={}}),e.filterTargetsToShow(e.data.targets.filter(t,e)).forEach(l=>{var c;const f=l.id in a?a[l.id]:"",g=f?o[f]:o;for(let v=0,m;m=n.data_groups[v];v++)if(!(m.indexOf(l.id)<0))for(let S=0,P;P=m[S];S++){if(P in g){g[l.id]=g[P];break}l.id!==P&&f&&(g[P]=(c=g[l.id])!=null?c:s[f])}ln(g[l.id])&&(g[l.id]=f?s[f]++:s++,g.__max__=(f?s[f]:s)-1)}),o},getIndices(t,e,n){const a=this,{data_xs:i,bar_indices_removeNull:o}=a.config,{id:s,index:l}=e;if(a.isBarType(s)&&o){const c={};return a.getAllValuesOnIndex(l,!0).forEach((f,g)=>{c[f.id]=g,c.__max__=g}),c}return cn(i)?t[i[s]]:t},getIndicesMax(t){return cn(this.config.data_xs)?Object.keys(t).map(e=>t[e].__max__||0).reduce((e,n)=>e+n):t.__max__},getShapeX(t,e,n){const a=this,{config:i,scale:o}=a,s=n?o.subX:o.zoom||o.x,l=i.bar_overlap,c=i.bar_padding,f=(v,m)=>v+m,g=nr(t)&&(t._$total.length?t._$total.reduce(f)/2:0);return v=>{const m=a.getIndices(e,v,"getShapeX"),S=v.id in m?m[v.id]:0,P=(m.__max__||0)+1;let N=0;if(cn(v.x)){const L=s(v.x,!0);if(g){const w=t[v.id]||t._$width;N=l?L-w/2:L-w+t._$total.slice(0,S+1).reduce(f)-g}else N=L-(he(t)?t:t._$width)*(P/2-(l?1:S))}return t&&N&&P>1&&c&&(S&&(N+=c*S),P>2?N-=(P-1)*c/2:P===2&&(N-=c/2)),N}},getShapeY(t){const e=this,n=e.isStackNormalized();return a=>{let{value:i}=a;return he(a)?i=a:e.isAreaRangeType(a)?i=e.getBaseValue(a,"mid"):n?i=e.getRatio("index",a,!0):e.isBubbleZType(a)?i=e.getBubbleZData(a.value,"y"):e.isBarRangeType(a)&&(i=i[1]),e.getYScaleById(a.id,t)(i)}},getShapeYMin(t){const e=this,n=e.axis.getId(t),a=e.scale[n],[i]=a.domain(),o=e.config[`axis_${n}_inverted`];return!e.isGrouped(t)&&!o&&i>0?i:0},getShapeOffsetData(t){const e=this,n=e.orderTargets(e.filterTargetsToShow(e.data.targets.filter(t,e))),a=e.isStackNormalized(),i=n.map(s=>{let l=s.values;const c={};e.isStepType(s)&&(l=e.convertValuesToStep(l));const f=l.reduce((g,v)=>{const m=Number(v.x);return g[m]=v,c[m]=a?e.getRatio("index",v,!0):v.value,g},{});return{id:s.id,rowValues:l,rowValueMapByXValue:f,values:c}});return{indexMapByTargetId:n.reduce((s,{id:l},c)=>(s[l]=c,s),{}),shapeOffsetTargets:i}},getShapeOffset(t,e,n){const a=this,{shapeOffsetTargets:i,indexMapByTargetId:o}=a.getShapeOffsetData(t),s=a.config.data_groupsZeroAs;return(l,c)=>{const{id:f,value:g,x:v}=l,m=a.getIndices(e,l),S=a.getYScaleById(f,n);if(a.isBarRangeType(l))return S(g[0]);const P=Number(v),N=S(s==="zero"?0:a.getShapeYMin(f));let L=N;return i.filter(w=>w.id!==f&&m[w.id]===m[f]).forEach(w=>{const{id:X,rowValueMapByXValue:W,rowValues:H,values:k}=w;if(o[X]=0&&he(K)&&(g!==0||s==="positive"&&K>0||s==="negative"&&K<0)&&(L+=S(K)-N)}}),L}},circleY(t,e){const n=this,a=t.id;let i;return n.isGrouped(a)&&(i=dm.bind(n)(t)),i?i(t,e)[0][1]:n.getYScaleById(a)(n.getBaseValue(t))},getBarW(t,e,n){var a,i,o,s,l;const c=this,{config:f,org:g,scale:v,state:m}=c,S=c.getMaxDataCount(),P=t==="bar"&&((a=f.data_groups)==null?void 0:a.length),N=`${t}_width`,{k:L}=(o=(i=c.getZoomTransform)==null?void 0:i.call(c))!=null?o:{k:1},w=[(s=f.axis_x_min)!=null?s:g.xDomain[0],(l=f.axis_x_max)!=null?l:g.xDomain[1]].map(c.axis.isTimeSeries()?Yn.bind(c):Number);let X=e.tickInterval(S);if(v.zoom&&!c.axis.isCategorized()&&L>1){const k=w.every((K,at)=>K===g.xDomain[at]);X=g.xDomain.map((K,at)=>{const ht=k?K:K-Math.abs(w[at]);return v.zoom(ht)}).reduce((K,at)=>Math.abs(K)+at)/S}const W=k=>{const K=k?f[N][k]:f[N],at=k?K.ratio:f[`${N}_ratio`],ht=k?K.max:f[`${N}_max`],$t=he(K)?K:ve(K)?K.call(c,m.width,n,S):n?X*at/n:0;return ht&&$t>ht?ht:$t};let H=W();return!P&&nr(f[N])&&(H={_$width:H,_$total:[]},c.filterTargetsToShow(c.data.targets).forEach(k=>{f[N][k.id]&&(H[k.id]=W(k.id),H._$total.push(H[k.id]||H._$width))})),H},getShapeByIndex(t,e,n){const a=this,{$el:i}=a,o=De(e)?`-${e}`:"";let s=i[t];return s&&!s.empty()?s=s.filter(l=>n?l.id===n:!0).filter(l=>De(e)?l.index===e:!0):s=(n?i.main.selectAll(`.${Ue[`${t}s`]}${a.getTargetSelectorSuffix(n)}`):i.main).selectAll(`.${Ue[t]}${o}`),s},isWithinShape(t,e){var n;const a=this,i=ot(t);let o;return a.isTargetToShow(e.id)?(n=a.hasValidPointType)!=null&&n.call(a,t.nodeName)?o=a.isStepType(e)?a.isWithinStep(t,a.getYScaleById(e.id)(a.getBaseValue(e))):a.isWithinCircle(t,a.isBubbleType(e)?a.pointSelectR(e)*1.5:0):t.nodeName==="path"&&(o=i.classed(Ue.bar)?a.isWithinBar(t):!0):o=!1,o},getInterpolate(t){const n=this.getInterpolateType(t);return{basis:Kp,"basis-closed":Zp,"basis-open":Jp,bundle:Qp,cardinal:kp,"cardinal-closed":qp,"cardinal-open":_p,"catmull-rom":nm,"catmull-rom-closed":rm,"catmull-rom-open":am,"monotone-x":im,"monotone-y":om,natural:sm,"linear-closed":lm,linear:gs,step:cm,"step-after":fm,"step-before":um}[n]},getInterpolateType(t){const e=this,{config:n}=e,a=n.spline_interpolation_type,i=e.isInterpolationType(a)?a:"cardinal";return e.isSplineType(t)?i:e.isStepType(t)?n.line_step_type:"linear"},isWithinBar(t){const e=Hn(this.state.event,t),n=Hl(t),[a,i]=n,o=Math.min(a.x,i.x),s=Math.min(a.y,i.y),l=this.config.bar_sensitivity,{width:c,height:f}=t.getBBox(),g=o-l,v=o+c+l,m=s+f+l,S=s-l;return ge in t?gm(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Rn=(t,e,n)=>vm(t,typeof e!="symbol"?e+"":e,n);class Vr{constructor(e){Rn(this,"api"),Rn(this,"config"),Rn(this,"cache"),Rn(this,"$el"),Rn(this,"state"),Rn(this,"charts"),Rn(this,"data",{xs:{},targets:[]}),Rn(this,"axis"),Rn(this,"scale",{x:null,y:null,y2:null,subX:null,subY:null,subY2:null,zoom:null}),Rn(this,"org",{xScale:null,xDomain:null}),Rn(this,"color"),Rn(this,"patterns"),Rn(this,"levelColor"),Rn(this,"point"),Rn(this,"brush"),Rn(this,"format",{extraLineClasses:null,xAxisTick:null,dataTime:null,defaultAxisTime:null,axisTime:null});const n=this;n.api=e,n.config=new Nr,n.cache=new gv;const a=new uv;n.$el=a.getStore("element"),n.state=a.getStore("state"),n.$T=n.$T.bind(n)}$T(e,n,a){const{config:i,state:o}=this,s=i.transition_duration,l=i.subchart_show;let c=e;return c&&("tagName"in c&&(c=ot(c)),c=(n!==!1&&s||n)&&(!o.zooming||o.dragging)&&!o.resizing&&o.rendered&&!l?c.transition(a).duration(s):c),c}beforeInit(){const e=this;e.callPluginHook("$beforeInit"),_e(e.config.onbeforeinit,e.api)}afterInit(){const e=this;e.callPluginHook("$afterInit"),_e(e.config.onafterinit,e.api)}init(){const e=this,{config:n,state:a,$el:i}=e,o=n.boost_useCssRule;if(vv(e),a.hasRadar=!a.hasAxis&&e.hasType("radar"),a.hasFunnel=!a.hasAxis&&e.hasType("funnel"),a.hasTreemap=!a.hasAxis&&e.hasType("treemap"),a.hasAxis=!e.hasArcType()&&!a.hasFunnel&&!a.hasTreemap,a.datetimeId=`bb-${+new Date*gr()}`,o){const l=gn.createElement("style");l.type="text/css",gn.head.appendChild(l),a.style={rootSelctor:`.${a.datetimeId}`,sheet:l.sheet},i.style=l}const s={element:n.bindto,classname:"bb"};Be(n.bindto)&&(s.element=n.bindto.element||"#chart",s.classname=n.bindto.classname||s.classname),i.chart=ve(s.element.node)?n.bindto.element:ot(s.element||[]),i.chart.empty()&&(i.chart=ot(gn.body.appendChild(gn.createElement("div")))),i.chart.html("").classed(s.classname,!0).classed(a.datetimeId,o).style("position","relative"),e.initParams(),e.initToRender()}initToRender(e){const n=this,{config:a,state:i,$el:{chart:o}}=n,s=()=>nv(o,{display:"none",visibility:"hidden"}),l=a.render.lazy===!1?!1:a.render.lazy||s(),c=Ke.MutationObserver;l&&c&&a.render.observe!==!1&&!e&&new c((f,g)=>{s()||(g.disconnect(),!i.rendered&&n.initToRender(!0))}).observe(o.node(),{attributes:!0,attributeFilter:["class","style"]}),(!l||e)&&n.convertData(a,f=>{n.initWithData(f),n.afterInit()})}initParams(){var e;const n=this,{config:a,format:i,state:o}=n,s=a.axis_rotated;if(n.color=n.generateColor(),n.levelColor=n.generateLevelColor(),a.padding===!1&&(a.axis_x_show=!1,a.axis_y_show=!1,a.axis_y2_show=!1,a.subchart_show=!1),(n.hasPointType()||(e=n.hasLegendDefsPoint)!=null&&e.call(n))&&(n.point=n.generatePoint()),o.hasAxis){n.initClip(),i.extraLineClasses=n.generateExtraLineClass(),i.dataTime=a.data_xLocaltime?Ws:Ks,i.axisTime=a.axis_x_localtime?ao:io;const l=n.config.zoom_enabled&&n.config.zoom_type==="drag";i.defaultAxisTime=c=>{const{x:f,zoom:g}=n.scale,v=l?g:g&&f.orgDomain().toString()!==g.domain().toString(),m=c.getMilliseconds()&&".%L"||c.getSeconds()&&".:%S"||c.getMinutes()&&"%I:%M"||c.getHours()&&"%I %p"||c.getDate()!==1&&"%b %d"||v&&c.getDate()===1&&"%b'%y"||c.getMonth()&&"%-m/%-d"||"%Y";return i.axisTime(m)(c)}}o.isLegendRight=a.legend_position==="right",o.isLegendInset=a.legend_position==="inset",o.isLegendTop=a.legend_inset_anchor==="top-left"||a.legend_inset_anchor==="top-right",o.isLegendLeft=a.legend_inset_anchor==="top-left"||a.legend_inset_anchor==="bottom-left",o.rotatedPadding.top=n.getResettedPadding(o.rotatedPadding.top),o.rotatedPadding.right=s&&!a.axis_x_show?0:30,o.inputType=rv(a.interaction_inputType_mouse,a.interaction_inputType_touch)}initWithData(e){var n,a,i;const o=this,{config:s,scale:l,state:c,$el:f,org:g}=o,{hasAxis:v,hasFunnel:m,hasTreemap:S}=c,P=s.interaction_enabled,N=o.hasType("polar"),L=s.data_labels_backgroundColors;if(v&&(o.axis=o.getAxisInstance(),s.zoom_enabled&&o.initZoom()),o.data.xs={},o.data.targets=o.convertDataToTargets(e),s.data_filter&&(o.data.targets=o.data.targets.filter(s.data_filter.bind(o.api))),s.data_hide&&o.addHiddenTargetIds(s.data_hide===!0?o.mapToIds(o.data.targets):s.data_hide),s.legend_hide&&o.addHiddenLegendIds(s.legend_hide===!0?o.mapToIds(o.data.targets):s.legend_hide),o.updateSizes(),o.updateScales(!0),v){const{x:W,y:H,y2:k,subX:K,subY:at,subY2:ht}=l;W&&(W.domain(na(o.getXDomain(o.data.targets),!s.axis_x_inverted)),K.domain(W.domain()),g.xDomain=W.domain()),H&&(H.domain(o.getYDomain(o.data.targets,"y")),at.domain(H.domain())),k&&(k.domain(o.getYDomain(o.data.targets,"y2")),ht&&ht.domain(k.domain()))}if(f.svg=f.chart.append("svg").style("overflow","hidden").style("display","block"),P&&c.inputType){const W=c.inputType==="touch",{onclick:H,onover:k,onout:K}=s;f.svg.on("click",(H==null?void 0:H.bind(o.api))||null).on(W?"touchstart":"mouseenter",(k==null?void 0:k.bind(o.api))||null).on(W?"touchend":"mouseleave",(K==null?void 0:K.bind(o.api))||null)}s.svg_classname&&f.svg.attr("class",s.svg_classname);const w=ve(s.color_tiles)&&o.patterns;(v||w||N||S||L||(n=o.hasLegendDefsPoint)!=null&&n.call(o))&&(f.defs=f.svg.append("defs"),v&&["id","idXAxis","idYAxis","idGrid"].forEach(W=>{o.appendClip(f.defs,c.clip[W])}),o.generateTextBGColorFilter(L),w&&o.patterns.forEach(W=>f.defs.append(()=>W.node))),o.updateSvgSize(),o.bindResize();const X=f.svg.append("g").classed(Se.main,!0).attr("transform",m||S?null:o.getTranslate("main"));if(f.main=X,s.subchart_show&&o.initSubchart(),s.tooltip_show&&o.initTooltip(),s.title_text&&o.initTitle(),!S&&s.legend_show&&o.initLegend(),s.data_empty_label_text&&X.append("text").attr("class",`${On.text} ${Se.empty}`).attr("text-anchor","middle").attr("dominant-baseline","middle"),v&&(s.regions.length&&o.initRegion(),!s.clipPath&&o.axis.init()),X.append("g").classed(Se.chart,!0).attr("clip-path",v?c.clip.path:null),o.callPluginHook("$init"),o.initChartElements(),v&&(P&&((a=o.initEventRect)==null||a.call(o)),o.initGrid(),s.clipPath&&((i=o.axis)==null||i.init())),o.updateTargets(o.data.targets),o.updateDimension(),_e(s.oninit,o.api),o.setBackground(),o.redraw({withTransition:!1,withTransform:!0,withUpdateXDomain:!0,withUpdateOrgXDomain:!0,withTransitionForAxis:!1,initializing:!0}),s.data_onmin||s.data_onmax){const W=o.getMinMaxData();_e(s.data_onmin,o.api,W.min),_e(s.data_onmax,o.api,W.max)}s.tooltip_show&&o.initShowTooltip(),c.rendered=!0}initChartElements(){const e=this,{hasAxis:n,hasRadar:a,hasTreemap:i}=e.state,o=[];if(n){const s=["bar","bubble","candlestick","line"];e.config.bar_front&&s.push(s.shift()),s.forEach(l=>{const c=Cn(l);(l==="line"&&e.hasTypeOf(c)||e.hasType(l))&&o.push(c)})}else if(i)o.push("Treemap");else if(e.hasType("funnel"))o.push("Funnel");else{const s=e.hasType("polar");a||o.push("Arc","Pie"),e.hasType("gauge")?o.push("Gauge"):a?o.push("Radar"):s&&o.push("Polar")}o.forEach(s=>{e[`init${s}`]()}),cn(e.config.data_labels)&&!e.hasArcType(null,["radar"])&&e.initText()}setChartElements(){const e=this,{$el:{chart:n,svg:a,defs:i,main:o,tooltip:s,legend:l,title:c,grid:f,needle:g,arcs:v,circle:m,bar:S,candlestick:P,line:N,area:L,text:w}}=e;e.api.$={chart:n,svg:a,defs:i,main:o,tooltip:s,legend:l,title:c,grid:f,arc:v,circles:m,bar:{bars:S},candlestick:P,line:{lines:N,areas:L},needle:g,text:{texts:w}}}setBackground(){const e=this,{config:{background:n},state:a,$el:{svg:i}}=e;if(cn(n)){const o=i.select("g").insert(n.imgUrl?"image":"rect",":first-child");n.imgUrl?o.attr("href",n.imgUrl):n.color&&o.style("fill",n.color).attr("clip-path",a.clip.path),o.attr("class",n.class||null).attr("width","100%").attr("height","100%")}}updateTargets(e){var n;const a=this,{hasAxis:i,hasFunnel:o,hasRadar:s,hasTreemap:l}=a.state,c=g=>a[`updateTargetsFor${g}`](e.filter(a[`is${g}Type`].bind(a)));if(a.updateTargetsForText(e),i)["bar","candlestick","line"].forEach(g=>{const v=Cn(g);(g==="line"&&a.hasTypeOf(v)||a.hasType(g))&&c(v)}),a.updateTargetsForSubchart&&a.updateTargetsForSubchart(e);else if(a.hasArcType(e)){let g="Arc";s?g="Radar":a.hasType("polar")&&(g="Polar"),c(g)}else o?c("Funnel"):l&&c("Treemap");const f=a.hasType("bubble")||a.hasType("scatter");f&&((n=a.updateTargetForCircle)==null||n.call(a)),a.filterTargetsToShowAtInit(f)}filterTargetsToShowAtInit(e=!1){const n=this,{$el:{svg:a},$T:i}=n;let o=`.${Se.target}`;e&&(o+=`, .${$n.chartCircles} > .${$n.circles}`),i(a.selectAll(o).filter(s=>n.isTargetToShow(s.id))).style("opacity",null)}getWithOption(e){const n={Dimension:!0,EventRect:!0,Legend:!1,Subchart:!0,Transform:!1,Transition:!0,TrimXDomain:!0,UpdateXAxis:"UpdateXDomain",UpdateXDomain:!1,UpdateOrgXDomain:!1,TransitionForExit:"Transition",TransitionForAxis:"Transition",Y:!0};return Object.keys(n).forEach(a=>{let i=n[a];ze(i)&&(i=n[i]),n[a]=$r(e,`with${a}`,i)}),n}initialOpacity(e){const n=this,{withoutFadeIn:a}=n.state;return n.getBaseValue(e)!==null&&a[e.id]?null:"0"}bindResize(){const e=this,{$el:n,config:a,state:i}=e,o=xv(a.resize_timer),s=[];s.push(()=>_e(a.onresize,e.api)),/^(true|parent)$/.test(a.resize_auto)&&s.push(()=>{i.resizing=!0,a.legend_show&&(e.updateSizes(),e.updateLegend()),e.api.flush(!1)}),s.push(()=>{_e(a.onresized,e.api),i.resizing=!1}),s.forEach(l=>o.add(l)),e.resizeFunction=o,a.resize_auto==="parent"?(e.resizeFunction.resizeObserver=new ResizeObserver(e.resizeFunction.bind(e))).observe(n.chart.node().parentNode):Ke.addEventListener("resize",e.resizeFunction)}callPluginHook(e,...n){this.config.plugins.forEach(a=>{e==="$beforeInit"&&(a.$$=this,this.api.plugins.push(a)),a[e](...n)})}}yn(Vr.prototype,[Mv,Dv,Lv,jv,Vv,Yv,Wv,zv,Kv,Zv,Jv,Bp,hm,Up,zp,Gp,Xp,Hp,Yp,Wp]);function pm(t){const e=this.config;let n,a,i;const o=()=>{const s=a.shift();if(s&&n&&nr(n)&&s in n)return n=n[s],o();if(!s)return n};Object.keys(e).forEach(s=>{n=t,a=s.split("_"),i=o(),Qe(i)&&(e[s]=i)}),this.api&&(this.state.orgConfig=t)}var mm={resize(t){const e=this.internal,{config:n,state:a}=e;a.rendered&&(n.size_width=t?t.width:null,n.size_height=t?t.height:null,a.resizing=!0,this.flush(!1),e.resizeFunction())},flush(t){var e,n;const a=this.internal,{state:i,$el:{zoomResetBtn:o}}=a;i.rendered?(i.resizing?(e=a.brush)==null||e.updateResize():(n=a.axis)==null||n.setOrient(),o==null||o.style("display","none"),a.scale.zoom=null,t?a.redraw({withTransform:!0,withUpdateXDomain:!0,withUpdateOrgXDomain:!0,withLegend:!0}):a.updateAndRedraw({withLegend:!0,withTransition:!1,withTransitionForTransform:!1}),!i.resizing&&a.brush&&(a.brush.getSelection().call(a.brush.move),a.unselectRect())):a.initToRender(!0)},destroy(){var t;const e=this.internal,{$el:{chart:n,style:a,svg:i}}=e;if(cn(e)){e.callPluginHook("$willDestroy"),e.charts.splice(e.charts.indexOf(this),1),e.unbindAllEvents(),i.select("*").interrupt(),e.resizeFunction.clear(),(t=e.resizeFunction.resizeObserver)==null||t.disconnect(),Ke.removeEventListener("resize",e.resizeFunction),n.classed("bb",!1).style("position",null).selectChildren().remove(),a&&a.parentNode.removeChild(a),Object.keys(this).forEach(o=>{o==="internal"&&Object.keys(e).forEach(s=>{e[s]=null}),this[o]=null,delete this[o]});for(const o in this)this[o]=()=>{}}return null},config(t,e,n){const a=this.internal,{config:i,state:o}=a,s=t==null?void 0:t.replace(/\./g,"_");let l;return t&&s in i?Qe(e)?(i[s]=e,l=e,n&&this.flush()):l=i[s]:(arguments.length===0||qn(t))&&(l=o.orgConfig),l}},ym={color(t){return this.internal.color(t)}};const au=function(t){const{targets:e}=this.internal.data;if(!ln(t)){const n=je(t)?t:[t];return e.filter(a=>n.some(i=>i===a.id))}return e};yn(au,{shown:function(t){return this.internal.filterTargetsToShow(this.data(t))},values:function(t,e=!0){let n=null;if(t){const a=this.data(t);je(a)&&(n=[],a.forEach(i=>{const o=i.values.map(s=>s.value);e?n=n.concat(o):n.push(o)}))}return n},names:function(t){return this.internal.updateDataAttributes("names",t)},colors:function(t){return this.internal.updateDataAttributes("colors",t)},axes:function(t){return this.internal.updateDataAttributes("axes",t)},min:function(){return this.internal.getMinMaxData().min},max:function(){return this.internal.getMinMaxData().max}});var xm={data:au};const Tm=t=>{var e,n;return(n=(e=Ke).btoa)==null?void 0:n.call(e,encodeURIComponent(t).replace(/%([0-9A-F]{2})/g,(a,i)=>String.fromCharCode(+`0x${i}`)))};function $m(t,e,n){const{width:a,height:i}=e||n,o=new XMLSerializer,s=t.cloneNode(!0),l=tv(Lr(gn.styleSheets)).filter(m=>m.cssText).map(m=>m.cssText);s.setAttribute("xmlns",ae.xhtml),s.style.margin="0",s.style.padding="0",e.preserveFontStyle&&s.querySelectorAll("text").forEach(m=>{m.innerHTML=""});const c=o.serializeToString(s),f=gn.createElement("style");f.appendChild(gn.createTextNode(l.join(` +`)));const g=o.serializeToString(f),v=` + + ${g} + ${c.replace(/(url\()[^#]+/g,"$1")} + `;return`data:image/svg+xml;base64,${Tm(v)}`}function Sm(t,e){const{top:n,left:a}=e,{x:i,y:o}=t.getBBox(),{a:s,b:l,c,d:f,e:g,f:v}=t.getScreenCTM(),{width:m,height:S}=t.getBoundingClientRect();return{x:s*i+c*o+g-a,y:l*i+f*o+v-n+(S-Math.round(S/4)),width:m,height:S}}function Am(t){const{left:e,top:n}=t.getBoundingClientRect(),a=o=>o.textContent||o.childElementCount,i=[];return Lr(t.querySelectorAll("text")).filter(a).forEach(o=>{const s=l=>{const{fill:c,fontFamily:f,fontSize:g,textAnchor:v,transform:m}=Ke.getComputedStyle(l),{x:S,y:P,width:N,height:L}=Sm(l,{left:e,top:n});return{[l.textContent]:{x:S,y:P,width:N,height:L,fill:c,fontFamily:f,fontSize:g,textAnchor:v,transform:m}}};if(o.childElementCount>1){const l=[];return Lr(o.querySelectorAll("tspan")).filter(a).forEach(c=>{i.push(s(c))}),l}else i.push(s(o))}),i}function Em(t,e){e.forEach(n=>{Object.keys(n).forEach(a=>{const{x:i,y:o,width:s,height:l,fill:c,fontFamily:f,fontSize:g,transform:v}=n[a];if(t.save(),t.font=`${g} ${f}`,t.fillStyle=c,v==="none")t.fillText(a,i,o);else{const m=v.replace(/(matrix|\(|\))/g,"").split(",");m.splice(4).every(S=>+S==0)?(m.push(i+s-s/4),m.push(o-l+l/3)):(m.push(i),m.push(o)),t.transform(...m),t.fillText(a,0,0)}t.restore()})})}var bm={export(t,e){const n=this.internal,{state:a,$el:{chart:i,svg:o}}=n,{width:s,height:l}=a.current,c=ea(Object.create(null),{width:s,height:l,preserveAspectRatio:!0,preserveFontStyle:!1,mimeType:"image/png"},t),f=$m(i.node(),c,{width:s,height:l}),g=c.preserveFontStyle?Am(o.node()):[];if(e&&ve(e)){const v=new Image;v.crossOrigin="Anonymous",v.onload=()=>{const m=gn.createElement("canvas"),S=m.getContext("2d");m.width=c.width||s,m.height=c.height||l,S.drawImage(v,0,0),g.length&&(Em(S,g),g.length=0),e.bind(this)(m.toDataURL(c.mimeType))},v.src=f}return f}},Rm={focus(t){const e=this.internal,{state:n}=e,a=e.mapToTargetIds(t),i=e.$el.svg.selectAll(e.selectorTargets(a.filter(e.isTargetToShow,e)));this.revert(),this.defocus(),i.classed(qe.focused,!0).classed(qe.defocused,!1),e.hasArcType()&&!n.hasRadar&&(e.expandArc(a),e.hasType("gauge")&&e.markOverlapped(t,e,`.${Un.gaugeValue}`)),e.toggleFocusLegend(a,!0),n.focusedTargetIds=a,n.defocusedTargetIds=n.defocusedTargetIds.filter(o=>a.indexOf(o)<0)},defocus(t){const e=this.internal,{state:n}=e,a=e.mapToTargetIds(t);e.$el.svg.selectAll(e.selectorTargets(a.filter(e.isTargetToShow,e))).classed(qe.focused,!1).classed(qe.defocused,!0),e.hasArcType(null,["polar"])&&(e.unexpandArc(a),e.hasType("gauge")&&e.undoMarkOverlapped(e,`.${Un.gaugeValue}`)),e.toggleFocusLegend(a,!1),n.focusedTargetIds=n.focusedTargetIds.filter(o=>a.indexOf(o)<0),n.defocusedTargetIds=a},revert(t){const e=this.internal,{config:n,state:a,$el:i}=e,o=e.mapToTargetIds(t);i.svg.selectAll(e.selectorTargets(o)).classed(qe.focused,!1).classed(qe.defocused,!1),e.hasArcType(null,["polar"])&&e.unexpandArc(o),n.legend_show&&(e.showLegend(o.filter(e.isLegendToShow.bind(e))),i.legend.selectAll(e.selectorLegends(o)).filter(function(){return ot(this).classed(qe.legendItemFocused)}).classed(qe.legendItemFocused,!1)),a.focusedTargetIds=[],a.defocusedTargetIds=[]}},Im={legend:{show:function(t){const e=this.internal;e.showLegend(e.mapToTargetIds(t)),e.updateAndRedraw({withLegend:!0})},hide:function(t){const e=this.internal;e.hideLegend(e.mapToTargetIds(t)),e.updateAndRedraw({withLegend:!0})}}},Om={load(t){const e=this.internal,{config:n}=e;t.xs&&e.addXs(t.xs),"names"in t&&this.data.names(t.names),"classes"in t&&Object.keys(t.classes).forEach(a=>{n.data_classes[a]=t.classes[a]}),"categories"in t&&e.axis.isCategorized()&&(n.axis_x_categories=t.categories),"axes"in t&&Object.keys(t.axes).forEach(a=>{n.data_axes[a]=t.axes[a]}),"colors"in t&&Object.keys(t.colors).forEach(a=>{n.data_colors[a]=t.colors[a]}),"unload"in t&&t.unload!==!1?e.unload(e.mapToTargetIds(t.unload===!0?null:t.unload),()=>{jl(()=>e.loadFromArgs(t))}):e.loadFromArgs(t)},unload(t){const e=this.internal;let n=t||{};qn(n)&&this.tooltip.hide(),je(n)?n={ids:n}:ze(n)&&(n={ids:[n]});const a=e.mapToTargetIds(n.ids);e.unload(a,()=>{e.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0,withLegend:!0}),e.cache.remove(a),cc.call(e,n.done,n.resizeAfter)})}};function iu(t,e,n){const a=this.internal,i=a.mapToTargetIds(e),o=a.state.hiddenTargetIds.map(c=>i.indexOf(c)>-1&&c).filter(Boolean);a.state.toggling=!0,a[`${t?"remove":"add"}HiddenTargetIds`](i);const s=a.$el.svg.selectAll(a.selectorTargets(i)),l=t?null:"0";t&&o.length&&(s.style("display",null),_e(a.config.data_onshown,this,o)),a.$T(s).style("opacity",l,"important").call(Si,()=>{var c;!t&&o.length===0&&(s.style("display","none"),_e((c=a.config)==null?void 0:c.data_onhidden,this,i)),s.style("opacity",l)}),n.withLegend&&a[`${t?"show":"hide"}Legend`](i),a.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0,withLegend:!0}),a.state.toggling=!1}var Cm={show(t,e={}){iu.call(this,!0,t,e)},hide(t,e={}){iu.call(this,!1,t,e)},toggle(t,e={}){const n=this.internal,a={show:[],hide:[]};n.mapToTargetIds(t).forEach(i=>a[n.isTargetToShow(i)?"hide":"show"].push(i)),a.show.length&&this.show(a.show,e),a.hide.length&&setTimeout(()=>this.hide(a.hide,e),0)}},Pm={tooltip:{show:function(t){var e,n,a;const i=this.internal,{$el:o,config:s,state:{eventReceiver:l,hasFunnel:c,hasTreemap:f,inputType:g}}=i;let v,m;if(t.mouse&&(m=t.mouse),t.data){const{data:S}=t,P=(e=i.getYScaleById(S.id))==null?void 0:e(S.value);if((c||f)&&S.id){const N=i.selectorTarget(S.id,void 0,`.${sn.shape}`);l.rect=o.main.select(N)}else i.isMultipleX()?m=[i.xx(S),P]:(s.tooltip_grouped||(m=[0,P]),v=(a=S.index)!=null?a:i.hasArcType()&&S.id?(n=i.getArcElementByIdOrIndex(S.id))==null?void 0:n.datum().index:i.getIndexByX(S.x))}else Qe(t.x)?v=i.getIndexByX(t.x):Qe(t.index)&&(v=t.index);(g==="mouse"?["mouseover","mousemove"]:["touchstart"]).forEach(S=>{i.dispatchEvent(S,v,m)})},hide:function(){var t,e,n;const a=this.internal,{state:{inputType:i},$el:{tooltip:o}}=a,s=o==null?void 0:o.datum();if(s){const{index:l}=JSON.parse(s.current)[0];(i==="mouse"?["mouseout"]:["touchend"]).forEach(c=>{a.dispatchEvent(c,l)})}i==="touch"&&a.callOverOutForTouch(),a.hideTooltip(!0),(t=a.hideGridFocus)==null||t.call(a),(e=a.unexpandCircles)==null||e.call(a),(n=a.expandBarTypeShapes)==null||n.call(a,!1)}}},wm=Object.defineProperty,Mm=(t,e,n)=>e in t?wm(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ou=(t,e,n)=>Mm(t,typeof e!="symbol"?e+"":e,n);class Er{constructor(e){ou(this,"plugins",[]),ou(this,"internal");const n=new Vr(this);this.internal=n,function a(i,o,s){Object.keys(i).forEach(l=>{const c=ve(i[l]),f=o!==s,g=cn(i[l]),v=g&&Object.keys(i[l]).length>0;c&&(!f&&v||f)?o[l]=i[l].bind(s):g&&!c?o[l]={}:o[l]=i[l],v&&a(i[l],o[l],s)})}(Er.prototype,this,this),pm.call(n,e),n.beforeInit(),n.init()}}yn(Er.prototype,[mm,ym,xm,bm,Rm,Im,Om,Cm,Pm]);function su(t=!1,e,n,a){const i=this,{config:o,$el:{main:s}}=i,l=o.data_selection_grouped,c=o.data_selection_isselectable.bind(i.api);o.data_selection_enabled&&s.selectAll(`.${sn.shapes}`).selectAll(`.${sn.shape}`).each(function(f){const g=ot(this),{id:v,index:m}=f.data?f.data:f,S=i.getToggle(this,f).bind(i),P=l||!e||e.indexOf(v)>=0,N=!n||n.indexOf(m)>=0,L=g.classed(tn.SELECTED);g.classed(ur.line)||g.classed(ti.area)||(t?P&&N&&c(f)&&!L?S(!0,g.classed(tn.SELECTED,!0),f,m):Qe(a)&&a&&L&&S(!1,g.classed(tn.SELECTED,!1),f,m):P&&N&&c(f)&&L&&S(!1,g.classed(tn.SELECTED,!1),f,m))})}var Dm={selected(t){const e=this.internal,n=[];return e.$el.main.selectAll(`.${sn.shapes+e.getTargetSelectorSuffix(t)}`).selectAll(`.${sn.shape}`).filter(function(){return ot(this).classed(tn.SELECTED)}).each(a=>n.push(a)),n},select(t,e,n){const a=this.internal;su.bind(a)(!0,t,e,n)},unselect(t,e){const n=this.internal;su.bind(n)(!1,t,e)}};const lu=function(t){var e;const n=this.internal,{axis:a,brush:i,config:o,scale:{x:s,subX:l},state:c}=n;let f;return o.subchart_show&&(f=t,Array.isArray(f)?(a.isTimeSeries()&&(f=f.map(v=>Yn.bind(n)(v))),n.withinRange(f,n.getZoomDomain("subX",!0),n.getZoomDomain("subX"))&&(c.domain=f,i.move(i.getSelection(),f.map(l)))):f=(e=c.domain)!=null?e:s.orgDomain()),f};yn(lu,{show(){var t,e;const n=this.internal,{$el:{subchart:a},config:i}=n,o=i.subchart_show;if(!o){n.unbindZoomEvent(),i.subchart_show=!o,!a.main&&n.initSubchart();let s=a.main.selectAll(`.${Se.target}`);n.data.targets.length!==s.size()&&(n.updateSizes(),n.updateTargetsForSubchart(n.data.targets),s=(t=a.main)==null?void 0:t.selectAll(`.${Se.target}`)),s==null||s.style("opacity",null),(e=a.main)==null||e.style("display",null),this.resize()}},hide(){const t=this.internal,{$el:{subchart:{main:e}},config:n}=t;n.subchart_show&&(e==null?void 0:e.style("display"))!=="none"&&(n.subchart_show=!1,e.style("display","none"),this.resize())},toggle(){const t=this.internal,{config:e}=t;this.subchart[e.subchart_show?"hide":"show"]()},reset(){const t=this.internal,{brush:e}=t;e.clear(e.getSelection())}});var Lm={subchart:lu},Nm=1e-12;function cu(t){return((t=Math.exp(t))+1/t)/2}function Fm(t){return((t=Math.exp(t))-1/t)/2}function Bm(t){return((t=Math.exp(2*t))-1)/(t+1)}var Um=function t(e,n,a){function i(o,s){var l=o[0],c=o[1],f=o[2],g=s[0],v=s[1],m=s[2],S=g-l,P=v-c,N=S*S+P*P,L,w;if(N()=>t;function zm(t,{sourceEvent:e,target:n,transform:a,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:a,enumerable:!0,configurable:!0},_:{value:i}})}function vr(t,e,n){this.k=t,this.x=e,this.y=n}vr.prototype={constructor:vr,scale:function(t){return t===1?this:new vr(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new vr(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var ar=new vr(1,0,0);vs.prototype=vr.prototype;function vs(t){for(;!t.__zoom;)if(!(t=t.parentNode))return ar;return t.__zoom}function ps(t){t.stopImmediatePropagation()}function Ba(t){t.preventDefault(),t.stopImmediatePropagation()}function jm(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Vm(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function uu(){return this.__zoom||ar}function Gm(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Xm(){return navigator.maxTouchPoints||"ontouchstart"in this}function Hm(t,e,n){var a=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],o=t.invertY(e[0][1])-n[0][1],s=t.invertY(e[1][1])-n[1][1];return t.translate(i>a?(a+i)/2:Math.min(0,a)||Math.max(0,i),s>o?(o+s)/2:Math.min(0,o)||Math.max(0,s))}function Ym(){var t=jm,e=Vm,n=Hm,a=Gm,i=Xm,o=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],l=250,c=Um,f=ri("start","zoom","end"),g,v,m,S=500,P=150,N=0,L=10;function w(Q){Q.property("__zoom",uu).on("wheel.zoom",ht,{passive:!1}).on("mousedown.zoom",$t).on("dblclick.zoom",dt).filter(i).on("touchstart.zoom",st).on("touchmove.zoom",Vt).on("touchend.zoom touchcancel.zoom",vt).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}w.transform=function(Q,St,ct,At){var Gt=Q.selection?Q.selection():Q;Gt.property("__zoom",uu),Q!==Gt?k(Q,St,ct,At):Gt.interrupt().each(function(){K(this,arguments).event(At).start().zoom(null,typeof St=="function"?St.apply(this,arguments):St).end()})},w.scaleBy=function(Q,St,ct,At){w.scaleTo(Q,function(){var Gt=this.__zoom.k,Bt=typeof St=="function"?St.apply(this,arguments):St;return Gt*Bt},ct,At)},w.scaleTo=function(Q,St,ct,At){w.transform(Q,function(){var Gt=e.apply(this,arguments),Bt=this.__zoom,Kt=ct==null?H(Gt):typeof ct=="function"?ct.apply(this,arguments):ct,ne=Bt.invert(Kt),le=typeof St=="function"?St.apply(this,arguments):St;return n(W(X(Bt,le),Kt,ne),Gt,s)},ct,At)},w.translateBy=function(Q,St,ct,At){w.transform(Q,function(){return n(this.__zoom.translate(typeof St=="function"?St.apply(this,arguments):St,typeof ct=="function"?ct.apply(this,arguments):ct),e.apply(this,arguments),s)},null,At)},w.translateTo=function(Q,St,ct,At,Gt){w.transform(Q,function(){var Bt=e.apply(this,arguments),Kt=this.__zoom,ne=At==null?H(Bt):typeof At=="function"?At.apply(this,arguments):At;return n(ar.translate(ne[0],ne[1]).scale(Kt.k).translate(typeof St=="function"?-St.apply(this,arguments):-St,typeof ct=="function"?-ct.apply(this,arguments):-ct),Bt,s)},At,Gt)};function X(Q,St){return St=Math.max(o[0],Math.min(o[1],St)),St===Q.k?Q:new vr(St,Q.x,Q.y)}function W(Q,St,ct){var At=St[0]-ct[0]*Q.k,Gt=St[1]-ct[1]*Q.k;return At===Q.x&&Gt===Q.y?Q:new vr(Q.k,At,Gt)}function H(Q){return[(+Q[0][0]+ +Q[1][0])/2,(+Q[0][1]+ +Q[1][1])/2]}function k(Q,St,ct,At){Q.on("start.zoom",function(){K(this,arguments).event(At).start()}).on("interrupt.zoom end.zoom",function(){K(this,arguments).event(At).end()}).tween("zoom",function(){var Gt=this,Bt=arguments,Kt=K(Gt,Bt).event(At),ne=e.apply(Gt,Bt),le=ct==null?H(ne):typeof ct=="function"?ct.apply(Gt,Bt):ct,be=Math.max(ne[1][0]-ne[0][0],ne[1][1]-ne[0][1]),Oe=Gt.__zoom,Ce=typeof St=="function"?St.apply(Gt,Bt):St,He=c(Oe.invert(le).concat(be/Oe.k),Ce.invert(le).concat(be/Ce.k));return function(Fe){if(Fe===1)Fe=Ce;else{var dn=He(Fe),Jt=be/dn[2];Fe=new vr(Jt,le[0]-dn[0]*Jt,le[1]-dn[1]*Jt)}Kt.zoom(null,Fe)}})}function K(Q,St,ct){return!ct&&Q.__zooming||new at(Q,St)}function at(Q,St){this.that=Q,this.args=St,this.active=0,this.sourceEvent=null,this.extent=e.apply(Q,St),this.taps=0}at.prototype={event:function(Q){return Q&&(this.sourceEvent=Q),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(Q,St){return this.mouse&&Q!=="mouse"&&(this.mouse[1]=St.invert(this.mouse[0])),this.touch0&&Q!=="touch"&&(this.touch0[1]=St.invert(this.touch0[0])),this.touch1&&Q!=="touch"&&(this.touch1[1]=St.invert(this.touch1[0])),this.that.__zoom=St,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(Q){var St=ot(this.that).datum();f.call(Q,this.that,new zm(Q,{sourceEvent:this.sourceEvent,target:w,type:Q,transform:this.that.__zoom,dispatch:f}),St)}};function ht(Q,...St){if(!t.apply(this,arguments))return;var ct=K(this,St).event(Q),At=this.__zoom,Gt=Math.max(o[0],Math.min(o[1],At.k*Math.pow(2,a.apply(this,arguments)))),Bt=Xn(Q);if(ct.wheel)(ct.mouse[0][0]!==Bt[0]||ct.mouse[0][1]!==Bt[1])&&(ct.mouse[1]=At.invert(ct.mouse[0]=Bt)),clearTimeout(ct.wheel);else{if(At.k===Gt)return;ct.mouse=[Bt,At.invert(Bt)],qr(this),ct.start()}Ba(Q),ct.wheel=setTimeout(Kt,P),ct.zoom("mouse",n(W(X(At,Gt),ct.mouse[0],ct.mouse[1]),ct.extent,s));function Kt(){ct.wheel=null,ct.end()}}function $t(Q,...St){if(m||!t.apply(this,arguments))return;var ct=Q.currentTarget,At=K(this,St,!0).event(Q),Gt=ot(Q.view).on("mousemove.zoom",le,!0).on("mouseup.zoom",be,!0),Bt=Xn(Q,ct),Kt=Q.clientX,ne=Q.clientY;co(Q.view),ps(Q),At.mouse=[Bt,this.__zoom.invert(Bt)],qr(this),At.start();function le(Oe){if(Ba(Oe),!At.moved){var Ce=Oe.clientX-Kt,He=Oe.clientY-ne;At.moved=Ce*Ce+He*He>N}At.event(Oe).zoom("mouse",n(W(At.that.__zoom,At.mouse[0]=Xn(Oe,ct),At.mouse[1]),At.extent,s))}function be(Oe){Gt.on("mousemove.zoom mouseup.zoom",null),uo(Oe.view,At.moved),Ba(Oe),At.event(Oe).end()}}function dt(Q,...St){if(t.apply(this,arguments)){var ct=this.__zoom,At=Xn(Q.changedTouches?Q.changedTouches[0]:Q,this),Gt=ct.invert(At),Bt=ct.k*(Q.shiftKey?.5:2),Kt=n(W(X(ct,Bt),At,Gt),e.apply(this,St),s);Ba(Q),l>0?ot(this).transition().duration(l).call(k,Kt,At,Q):ot(this).call(w.transform,Kt,At,Q)}}function st(Q,...St){if(t.apply(this,arguments)){var ct=Q.touches,At=ct.length,Gt=K(this,St,Q.changedTouches.length===At).event(Q),Bt,Kt,ne,le;for(ps(Q),Kt=0;KtYn.bind(n)(v))),n.withinRange(f,n.getZoomDomain("zoom",!0),n.getZoomDomain("zoom"))){if(l.domain=f,f=n.getZoomDomainValue(f),n.api.tooltip.hide(),i.subchart_show){const v=s.zoom||s.x;n.brush.getSelection().call(n.brush.move,f.map(v))}else{const v=c?s.x.orgScale():o.xScale||s.x;n.updateCurrentZoomTransform(v,f)}n.setZoomResetButton()}}else f=n.zoom.getDomain();return(e=l.domain)!=null?e:f};yn(fu,{enable(t){const e=this.internal,{config:n}=e;/^(drag|wheel)$/.test(t)&&(n.zoom_type=t),n.zoom_enabled=!!t,e.zoom?t===!1&&e.bindZoomEvent(!1):(e.initZoom(),e.bindZoomEvent()),e.updateAndRedraw()},max(t){const e=this.internal,{config:n,org:{xDomain:a}}=e;return(t===0||t)&&(n.zoom_x_max=_n("max",[a[1],t])),n.zoom_x_max},min(t){const e=this.internal,{config:n,org:{xDomain:a}}=e;return(t===0||t)&&(n.zoom_x_min=_n("min",[a[0],t])),n.zoom_x_min},range(t){const e=this.zoom;if(Be(t)){const{min:n,max:a}=t;Qe(n)&&e.min(n),Qe(a)&&e.max(a)}return{min:e.min(),max:e.max()}}});var Wm={zoom:fu,unzoom(){const t=this.internal,{config:e,$el:{eventRect:n,zoomResetBtn:a},scale:{zoom:i},state:o}=t;i&&(e.subchart_show?t.brush.getSelection().call(t.brush.move,null):t.zoom.updateTransformScale(ar),t.updateZoom(!0),a==null||a.style("display","none"),vs(n.node())!==ar&&t.zoom.transform(n,ar),o.domain=void 0)}},Km={initBrush(){const t=this,{config:e,scale:n,$el:{subchart:a},state:i}=t,o=e.axis_rotated,s=e.subchart_size_height;let l,c,f;t.brush=(o?Gg():Vg()).handleSize(5),t.brush.on("start brush end",g=>{const{selection:v,sourceEvent:m,target:S,type:P}=g;P==="start"&&(t.state.inputType==="touch"&&t.hideTooltip(),c=m?v:null),/(start|brush)/.test(P)&&(P==="brush"&&m&&i.domain&&(c==null||c.forEach((N,L)=>{N!==v[L]&&(i.domain[L]=n.x.orgDomain()[L])})),t.redrawForBrush(P!=="start")),P==="end"&&(l=n.x.orgDomain()),S!=null&&S.handle&&(v===null?t.brush.handle.attr("display","none"):t.brush.handle.attr("display",null).attr("transform",(N,L)=>{const w=[v[L],s/2];return`translate(${o?w.reverse():w})`}))}),t.brush.updateResize=function(){f&&clearTimeout(f),f=setTimeout(()=>{const g=this.getSelection();l&&zl(g.node())&&this.move(g,l.map(n.subX.orgScale()))},0)},t.brush.update=function(){var g;return this.extent()()[1].filter(m=>isNaN(m)).length===0&&((g=a.main)==null||g.select(`.${Ue.brush}`).call(this)),this},t.brush.scale=function(g){const v=e.subchart_size_height;let m=t.axis.getExtent();!m&&g.range?m=[[0,0],[g.range()[1],v]]:je(m)&&(m=m.map((S,P)=>[S,P>0?v:P])),o&&m[1].reverse(),this.extent(m),this.update()},t.brush.getSelection=()=>a.main?a.main.select(`.${Ue.brush}`):ot([])},initSubchart(){const t=this,{config:e,state:{clip:n,hasAxis:a},$el:{defs:i,svg:o,subchart:s,axis:l}}=t;if(!a)return;const c=e.subchart_show?null:"hidden",f=`${n.id}-subchart`,g=t.getClipPath(f);n.idSubchart=f,t.appendClip(i,f),t.initBrush(),s.main=o.append("g").classed(Ue.subchart,!0).attr("transform",t.getTranslate("context"));const{main:v}=s;v.style("visibility",c),v.append("g").attr("clip-path",g).attr("class",Ue.chart),["bar","line","bubble","candlestick","scatter"].forEach(S=>{const P=Cn(/^(bubble|scatter)$/.test(S)?"circle":S);if(t.hasType(S)||t.hasTypeOf(P)){const N=v.select(`.${Ue.chart}`),L=Ue[`chart${P}s`];N.select(`.${L}`).empty()&&N.append("g").attr("class",L)}});const m=v.append("g").attr("clip-path",g).attr("class",Ue.brush).call(t.brush);e.subchart_showHandle&&t.addBrushHandle(m),l.subX=v.append("g").attr("class",Ue.axisX).attr("transform",t.getTranslate("subX")).attr("clip-path",e.axis_rotated?"":n.pathXAxis).style("visibility",e.subchart_axis_x_show?c:"hidden")},addBrushHandle(t){const e=this,{config:n}=e,a=n.axis_rotated,i=n.subchart_init_range,o="handle--custom",s=a?["M8.5 0 a6 6 0 0 0 -6 -6.5 H-2.5 a 6 6 0 0 0 -6 6.5 z m-5 -2 H-3.5 m7 -2 H-3.5z","M8.5 0 a6 -6 0 0 1 -6 6.5 H-2.5 a 6 -6 0 0 1 -6 -6.5z m-5 2 H-3.5 m7 2 H-3.5z"]:["M0 -8.5 A6 6 0 0 0 -6.5 -3.5 V2.5 A6 6 0 0 0 0 8.5 Z M-2 -3.5 V3.5 M-4 -3.5 V3.5z","M0 -8.5 A6 6 0 0 1 6.5 -3.5 V2.5 A6 6 0 0 1 0 8.5 Z M2 -3.5 V3.5 M4 -3.5 V3.5z"];e.brush.handle=t.selectAll(`.${o}`).data(a?[{type:"n"},{type:"s"}]:[{type:"w"},{type:"e"}]).enter().append("path").attr("class",o).attr("cursor",`${a?"ns":"ew"}-resize`).attr("d",l=>s[+/[se]/.test(l.type)]).attr("display",i?null:"none")},updateTargetsForSubchart(t){const e=this,{config:n,state:a,$el:{subchart:{main:i}}}=e;n.subchart_show&&(["bar","line","bubble","candlestick","scatter"].filter(o=>e.hasType(o)||e.hasTypeOf(Cn(o))).forEach(o=>{const s=/^(bubble|scatter)$/.test(o),l=Cn(s?"circle":o),c=e.getChartClass(l,!0),f=e.getClass(s?"circles":`${o}s`,!0),g=i.select(`.${Ue[`chart${`${l}s`}`]}`);if(s){const v=g.selectAll(`.${Ue.circles}`).data(t.filter(e[`is${Cn(o)}Type`].bind(e))).attr("class",f);v.exit().remove(),v.enter().append("g").attr("class",f)}else{const v=g.selectAll(`.${Ue[`chart${l}`]}`).attr("class",c).data(t.filter(e[`is${l}Type`].bind(e))),m=v.enter().append("g").style("opacity","0").attr("class",c).append("g").attr("class",f);v.exit().remove(),o==="line"&&e.hasTypeOf("Area")&&m.append("g").attr("class",e.getClass("areas",!0))}}),i.selectAll(`.${Ue.brush} rect`).attr(n.axis_rotated?"width":"height",n.axis_rotated?a.width2:a.height2))},redrawSubchart(t,e,n){var a;const i=this,{config:o,$el:{subchart:{main:s}},state:l}=i,c=!!e;if(s.style("visibility",o.subchart_show?null:"hidden"),o.subchart_show&&(((a=l.event)==null?void 0:a.type)==="zoom"&&i.brush.update(),t)){const f=o.subchart_init_range;if(!Kl(i)&&i.brush.update(),Object.keys(n.type).forEach(g=>{const v=Cn(g),m=i[`generateDraw${v}`](n.indices[g],!0);i[`update${v}`](c,!0),i[`redraw${v}`](m,c,!0)}),i.hasType("bubble")||i.hasType("scatter")){const{cx:g}=n.pos,v=i.updateCircleY(!0);i.updateCircle(!0),i.redrawCircle(g,v,c,void 0,!0)}!l.rendered&&f&&(l.domain=f,i.brush.move(i.brush.getSelection(),f.map(i.scale.x)))}},redrawForBrush(t=!0){var e;const n=this,{config:{subchart_onbrush:a,zoom_rescale:i},scale:o,state:s}=n;n.redraw({withTransition:!1,withY:i,withSubchart:!1,withUpdateXDomain:!0,withDimension:!1}),t&&s.rendered&&a.bind(n.api)((e=s.domain)!=null?e:o.x.orgDomain())},transformContext(t,e){const n=this,{$el:{subchart:a},$T:i}=n,o=e!=null&&e.axisSubX?e.axisSubX:i(a.main.select(`.${Ue.axisX}`),t);a.main.attr("transform",n.getTranslate("context")),o.attr("transform",n.getTranslate("subX"))}},Zm={initZoom(){const t=this;t.scale.zoom=null,t.generateZoom(),t.config.zoom_type==="drag"&&t.initZoomBehaviour()},bindZoomEvent(t=!0){const e=this,{config:n}=e;n.zoom_enabled&&t?!n.subchart_show&&e.bindZoomOnEventRect():t===!1&&(e.api.unzoom(),e.unbindZoomEvent())},generateZoom(){const t=this,{config:e,org:n,scale:a}=t,i=Ym().duration(0).on("start",t.onZoomStart.bind(t)).on("zoom",t.onZoom.bind(t)).on("end",t.onZoomEnd.bind(t));i.orgScaleExtent=()=>{const o=e.zoom_extent||[1,10];return[o[0],Math.max(t.getMaxDataCount()/o[1],o[1])]},i.updateScaleExtent=function(){const o=Dr(t.scale.x.orgDomain())/Dr(t.getZoomDomain()),s=this.orgScaleExtent();return this.scaleExtent([s[0]*o,s[1]*o]),this},i.updateTransformScale=(o,s)=>{var l;const c=e.axis_rotated;(l=n.xScale)==null||l.range(a.x.range());const f=o[c?"rescaleY":"rescaleX"](n.xScale||a.x);if(f.domain().some(m=>/(Invalid Date|NaN)/.test(m.toString())))return;const g=t.trimXDomain(f.domain()),v=e.zoom_rescale;if(f.domain(g,n.xDomain),s){const m=f(a.x.domain()[0]),S=c?o.x:m,P=c?m:o.y;t.$el.eventRect.property("__zoom",ar.translate(S,P).scale(o.k))}t.state.xTickOffset||(t.state.xTickOffset=t.axis.x.tickOffset()),a.zoom=t.getCustomizedXScale(f),t.axis.x.scale(a.zoom),v?(!n.xScale&&(n.xScale=a.x.copy()),a.x.domain(g)):n.xScale&&(a.x.domain(n.xScale.domain()),n.xScale=null)},i.getDomain=()=>{const o=a[a.zoom?"zoom":"subX"].domain();return t.axis.isCategorized()&&(o[1]-=2),o},t.zoom=i},onZoomStart(t){const e=this,{sourceEvent:n}=t;n&&(e.zoom.startEvent=n,e.state.zooming=!0,_e(e.config.zoom_onzoomstart,e.api,t))},onZoom(t){var e;const n=this,{config:a,scale:i,state:o,org:s}=n,{sourceEvent:l}=t,c=(t==null?void 0:t.transform)===ar;if(!a.zoom_enabled||n.filterTargetsToShow(n.data.targets).length===0||!i.zoom&&(l==null?void 0:l.type.indexOf("touch"))>-1&&(l==null?void 0:l.touches.length)===1)return;t.sourceEvent&&(o.zooming=!0,o.domain=void 0);const f=(l==null?void 0:l.type)==="mousemove",g=(l==null?void 0:l.wheelDelta)<0,{transform:v}=t;!f&&g&&i.x.domain().every((S,P)=>S!==s.xDomain[P])&&i.x.domain(s.xDomain),n.zoom.updateTransformScale(v,a.zoom_type==="wheel"&&l);const m=a.transition_duration>0&&!a.subchart_show&&(o.dragging||c||!t.sourceEvent);n.redraw({withTransition:m,withY:a.zoom_rescale,withSubchart:!1,withEventRect:!1,withDimension:!1}),n.state.cancelClick=f,!c&&_e(a.zoom_onzoom,n.api,(e=n.state.domain)!=null?e:n.zoom.getDomain())},onZoomEnd(t){var e,n;const a=this,{config:i,state:o}=a;let{startEvent:s}=a.zoom,l=t==null?void 0:t.sourceEvent;const c=(t==null?void 0:t.transform)===ar;(s==null?void 0:s.type.indexOf("touch"))>-1&&(s=s.changedTouches[0],l=(e=l==null?void 0:l.changedTouches)==null?void 0:e[0]),!(i.zoom_type==="drag"&&l&&s.clientX===l.clientX&&s.clientY===l.clientY)&&(o.zooming=!1,a.redrawEventRect(),a.updateZoom(),!c&&(l||o.dragging)&&_e(i.zoom_onzoomend,a.api,(n=a.state.domain)!=null?n:a.zoom.getDomain()))},updateZoom(t){const e=this,{subX:n,x:a,zoom:i}=e.scale;if(i){const o=i.domain(),s=n.domain(),l=.015,c=e.config.axis_x_inverted?(o[0]>=s[0]||o[0]+l>=s[0])&&(s[1]>=o[1]||s[1]>=o[1]+l):(o[0]<=s[0]||o[0]-l<=s[0])&&(s[1]<=o[1]||s[1]<=o[1]-l);(t||c)&&(e.axis.x.scale(n),a.domain(n.orgDomain()),e.scale.zoom=null)}},updateCurrentZoomTransform(t,e){const n=this,{$el:{eventRect:a},config:i}=n,o=i.axis_rotated,s=[-t(e[0]),0],l=ar.scale(t.range()[1]/(t(e[1])-t(e[0]))).translate(...o?s.reverse():s);a.call(n.zoom.transform,l)},bindZoomOnEventRect(){var t;const e=this,{config:n,$el:{eventRect:a,svg:i}}=e,o=n.zoom_type==="drag"?e.zoomBehaviour:e.zoom;Ke.GestureEvent&&/^((?!chrome|android|mobile).)*safari/i.test((t=Ke.navigator)==null?void 0:t.userAgent)&&i.on("wheel",()=>{}),a==null||a.call(o).on("dblclick.zoom",null)},initZoomBehaviour(){const t=this,{config:e,state:n}=t,a=e.axis_rotated;let i=0,o=0,s,l;const c={axis:a?"y":"x",attr:a?"height":"width",index:a?1:0};t.zoomBehaviour=uc().clickDistance(4).on("start",function(f){l=t.scale.zoom?null:t.axis.getExtent(),n.event=f,t.setDragStatus(!0),t.unselectRect(),s||(s=t.$el.main.append("rect").attr("clip-path",n.clip.path).attr("class",so.zoomBrush).attr("width",a?n.width:0).attr("height",a?0:n.height)),i=Hn(f,this)[c.index],l&&(il[1]&&(i=l[1])),o=i,s.attr(c.axis,i).attr(c.attr,0),t.onZoomStart(f)}).on("drag",function(f){o=Hn(f,this)[c.index],l&&(o>l[1]?o=l[1]:o{const g=t.scale.zoom||t.scale.x;n.event=f,s.attr(c.axis,0).attr(c.attr,0),i>o&&([i,o]=[o,i]),i<0&&(o+=Math.abs(i),i=0),i!==o&&t.api.zoom([i,o].map(v=>g.invert(v))),t.setDragStatus(!1)})},setZoomResetButton(){const t=this,{config:e,$el:n}=t,a=e.zoom_resetButton;a&&e.zoom_type==="drag"&&(n.zoomResetBtn?n.zoomResetBtn.style("display",null):n.zoomResetBtn=t.$el.chart.append("div").classed(Se.button,!0).append("span").on("click",function(){ve(a.onclick)&&a.onclick.bind(t.api)(this),t.api.unzoom()}).classed(so.buttonZoomReset,!0).text(a.text||"Reset Zoom"))},getZoomTransform(){const t=this,{$el:{eventRect:e}}=t;return e!=null&&e.node()?vs(e.node()):{k:1}}},Jm={drag(t){const e=this,{config:n,state:a,$el:{main:i}}=e,o=n.data_selection_grouped,s=n.interaction_enabled&&n.data_selection_isselectable;if(e.hasArcType()||!n.data_selection_enabled||n.zoom_enabled&&!e.zoom.altDomain||!n.data_selection_multiple)return;const[l,c]=a.dragStart||[0,0],[f,g]=t,v=Math.min(l,f),m=Math.max(l,f),S=o?a.margin.top:Math.min(c,g),P=o?a.height:Math.max(c,g);i.select(`.${Or.dragarea}`).attr("x",v).attr("y",S).attr("width",m-v).attr("height",P-S),i.selectAll(`.${sn.shapes}`).selectAll(`.${sn.shape}`).filter(N=>s==null?void 0:s.bind(e.api)(N)).each(function(N,L){const w=ot(this),X=w.classed(tn.SELECTED),W=w.classed(Or.INCLUDED);let H=!1,k;if(w.classed($n.circle)){const K=+w.attr("cx")*1,at=+w.attr("cy")*1;k=e.togglePoint,H=ve in t?Qm(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ey=(t,e)=>{for(var n in e||(e={}))_m.call(e,n)&&hu(t,n,e[n]);if(du)for(var n of du(e))ty.call(e,n)&&hu(t,n,e[n]);return t},ny=(t,e)=>km(t,qm(e)),ry=ny(ey({},Jm),{selectPoint(t,e,n){const a=this,{config:i,$el:{main:o},$T:s}=a,l=i.axis_rotated,c=(l?a.circleY:a.circleX).bind(a),f=(l?a.circleX:a.circleY).bind(a),g=a.pointSelectR.bind(a);_e(i.data_onselected,a.api,e,t.node()),s(o.select(`.${tn.selectedCircles}${a.getTargetSelectorSuffix(e.id)}`).selectAll(`.${tn.selectedCircle}-${n}`).data([e]).enter().append("circle").attr("class",()=>a.generateClass(tn.selectedCircle,n)).attr("cx",c).attr("cy",f).attr("stroke",a.color).attr("r",v=>a.pointSelectR(v)*1.4)).attr("r",g)},unselectPoint(t,e,n){const a=this,{config:i,$el:{main:o},$T:s}=a;_e(i.data_onunselected,a.api,e,t==null?void 0:t.node()),s(o.select(`.${tn.selectedCircles}${a.getTargetSelectorSuffix(e.id)}`).selectAll(`.${tn.selectedCircle}-${n}`)).attr("r",0).remove()},togglePoint(t,e,n,a){this[`${t?"":"un"}selectPoint`](e,n,a)},selectPath(t,e){const n=this,{config:a}=n;_e(a.data_onselected,n.api,e,t.node()),a.interaction_brighten&&t.style("filter","brightness(1.25)")},unselectPath(t,e){const n=this,{config:a}=n;_e(a.data_onunselected,n.api,e,t.node()),a.interaction_brighten&&t.style("filter",null)},togglePath(t,e,n,a){this[`${t?"":"un"}selectPath`](e,n,a)},getToggle(t,e){const n=this;return t.nodeName==="path"?n.togglePath:n.isStepType(e)?()=>{}:n.togglePoint},toggleShape(t,e,n){var a;const i=this,{config:o,$el:{main:s}}=i;if(o.data_selection_enabled&&o.data_selection_isselectable.bind(i.api)(e)){const l=ot(t),c=l.classed(tn.SELECTED),f=i.getToggle(t,e).bind(i);let g;if(!o.data_selection_multiple){const v=(a=i.isPointFocusOnly)==null?void 0:a.call(i);let m=`.${v?tn.selectedCircles:sn.shapes}`;o.data_selection_grouped&&(m+=i.getTargetSelectorSuffix(e.id)),s.selectAll(m).selectAll(v?`.${tn.selectedCircle}`:`.${sn.shape}.${tn.SELECTED}`).classed(tn.SELECTED,!1).each(function(S){const P=ot(this);g=P,f(!1,P,S,S.index)})}(!g||g.node()!==l.node())&&(l.classed(tn.SELECTED,!c),f(!c,l,e,n))}}}),ay={data_selection_enabled:!1,data_selection_grouped:!1,data_selection_isselectable:()=>!0,data_selection_multiple:!0,data_selection_draggable:!1,data_onselected:()=>{},data_onunselected:()=>{}},iy={subchart_show:!1,subchart_showHandle:!1,subchart_size_height:60,subchart_axis_x_show:!0,subchart_axis_x_tick_show:!0,subchart_axis_x_tick_format:void 0,subchart_axis_x_tick_text_show:!0,subchart_init_range:void 0,subchart_onbrush:()=>{}},oy={zoom_enabled:!1,zoom_type:"wheel",zoom_extent:void 0,zoom_privileged:!1,zoom_rescale:!1,zoom_onzoom:void 0,zoom_onzoomstart:void 0,zoom_onzoomend:void 0,zoom_resetButton:!0,zoom_x_min:void 0,zoom_x_max:void 0};let gu=()=>(yn(Vr.prototype,ry),yn(Er.prototype,Dm),Nr.setOptions([ay]),(gu=()=>!0)()),vu=()=>(yn(Vr.prototype,Km),yn(Er.prototype,Lm),Nr.setOptions([iy]),(vu=()=>!0)()),pu=()=>(yn(Vr.prototype,Zm),yn(Er.prototype,Wm),Nr.setOptions([oy]),(pu=()=>!0)());function mu(t,e,n){const{config:a}=t,i=(o,s)=>{const l=he(s)?s:s===!1?void 0:null;l!==null&&(a[`axis_${o}_${e}`]=l)};Qe(n)&&(nr(n)?Object.keys(n).forEach(o=>{i(o,n[o])}):(he(n)||n===!1)&&["y","y2"].forEach(o=>{i(o,n)}),t.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0}))}function yu(t,e){const{config:n}=t;return{x:n[`axis_x_${e}`],y:n[`axis_y_${e}`],y2:n[`axis_y2_${e}`]}}var sy={axis:{labels:function(t){const e=this.internal;let n;return t&&(Object.keys(t).forEach(a=>{e.axis.setLabelText(a,t[a])}),e.axis.updateLabels()),["x","y","y2"].forEach(a=>{const i=e.axis.getLabelText(a);i&&(!n&&(n={}),n[a]=i)}),n},min:function(t){const e=this.internal;return De(t)||t===!1?mu(e,"min",t):yu(e,"min")},max:function(t){const e=this.internal;return De(t)||t===!1?mu(e,"max",t):yu(e,"max")},range:function(t){const{axis:e}=this;if(arguments.length){const{min:n,max:a}=t;Qe(a)&&e.max(a),Qe(n)&&e.min(n)}else return{max:e.max(),min:e.min()}}}},ly={category(t,e){const n=this.internal,{config:a}=n;return arguments.length>1&&(a.axis_x_categories[t]=e,n.redraw()),a.axis_x_categories[t]},categories(t){const e=this.internal,{config:n}=e;if(!t||!Array.isArray(t)){const a=n.axis_x_categories;return qn(a)?Object.values(e.data.xs)[0]:a}return n.axis_x_categories=t,e.redraw(),n.axis_x_categories}},cy={flow(t){const e=this.internal;let n;(t.json||t.rows||t.columns)&&e.convertData(t,i=>{n=i,a()});function a(){let i,o=0,s=0,l,c;if(e.state.redrawing||!n||!Da())return;const f=[],g=e.getMaxDataCount(),v=e.convertDataToTargets(n,!0),m=e.axis.isTimeSeries();e.data.targets.forEach(N=>{let L=!1;for(let w=0;w{for(let L=0;L{const L=[];for(let w=e.data.targets[0].values[0].index;w{w.index+=s,m||(w.x+=s)}),N.values=L.concat(N.values)}),e.data.targets=e.data.targets.concat(v);const S=e.data.targets[0],P=S.values[0];Qe(t.to)?(o=0,c=m?Yn.call(e,t.to):t.to,S.values.forEach(N=>{N.x1?S.values[S.values.length-1].x-P.x:P.x-e.getXDomain(e.data.targets)[0]:l=1,i=[P.x-l,P.x]),i&&e.updateXDomain(null,!0,!0,!1,i),e.updateTargets(e.data.targets),e.redraw({flow:{index:P.index,length:o,duration:De(t.duration)?t.duration:e.config.transition_duration,done:t.done,orgDataCount:g},withLegend:!0,withTransition:g>1,withTrimXDomain:!1,withUpdateXAxis:!0})}}};function ms(t,e){const n=this.internal,{config:a}=n,i=a.transition_duration&&Da(),o=`grid_${e}_lines`;return t&&(a[o]=t,n.updateGrid(),n.redrawGrid(i)),a[o]}function xu(t,e){const n=`grid_${e}_lines`;return ms.bind(this)(this.internal.config[n].concat(t||[]),e)}function Tu(t,e){this.internal.removeGridLines(t,e)}const $u=function(t){return ms.bind(this)(t,"x")};yn($u,{add(t){return xu.bind(this)(t,"x")},remove(t){return Tu.bind(this)(t,!0)}});const Su=function(t){return ms.bind(this)(t,"y")};yn(Su,{add(t){return xu.bind(this)(t,"y")},remove(t){return Tu.bind(this)(t,!1)}});var uy={xgrids:$u,ygrids:Su},fy={groups(t){const e=this.internal,{config:n}=e;return ln(t)||(n.data_groups=t,e.redraw()),n.data_groups}};function Au(t,e=!1){const n=this.internal,{config:a}=n,i=a.transition_duration&&Da();return t?(a.regions=e?a.regions.concat(t):t,n.updateRegion(),n.redrawRegion(i),e?a.regions:t):a.regions}const Eu=function(t){return Au.bind(this)(t)};yn(Eu,{add:function(t){return Au.bind(this)(t,!0)},remove:function(t){const e=this.internal,{config:n,$T:a}=e,i=t||{},o=$r(i,"classes",[$a.region]);let s=e.$el.main.select(`.${$a.regions}`).selectAll(o.map(l=>`.${l}`));return a(s).style("opacity","0").remove(),s=n.regions,Object.keys(i).length?(s=s.filter(l=>{let c=!1;return l.class?(l.class.split(" ").forEach(f=>{o.indexOf(f)>=0&&(c=!0)}),!c):!0}),n.regions=s):n.regions=[],s}});var dy={regions:Eu},hy={x(t){const e=this.internal,{axis:n,data:a}=e,i=n.isCustomX()&&n.isCategorized();return je(t)&&(i?this.categories(t):(e.updateTargetX(a.targets,t),e.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0}))),i?this.categories():a.xs},xs(t){const e=this.internal;return Be(t)&&(e.updateTargetXs(e.data.targets,t),e.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0})),e.data.xs}};function gy(t){return t}var Xi=1,Hi=2,ys=3,Ua=4,bu=1e-6;function vy(t){return"translate("+t+",0)"}function py(t){return"translate(0,"+t+")"}function my(t){return e=>+t(e)}function yy(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function xy(){return!this.__axis}function Yi(t,e){var n=[],a=null,i=null,o=6,s=6,l=3,c=typeof window!="undefined"&&window.devicePixelRatio>1?0:.5,f=t===Xi||t===Ua?-1:1,g=t===Ua||t===Hi?"x":"y",v=t===Xi||t===ys?vy:py;function m(S){var P=a==null?e.ticks?e.ticks.apply(e,n):e.domain():a,N=i==null?e.tickFormat?e.tickFormat.apply(e,n):gy:i,L=Math.max(o,0)+l,w=e.range(),X=+w[0]+c,W=+w[w.length-1]+c,H=(e.bandwidth?yy:my)(e.copy(),c),k=S.selection?S.selection():S,K=k.selectAll(".domain").data([null]),at=k.selectAll(".tick").data(P,e).order(),ht=at.exit(),$t=at.enter().append("g").attr("class","tick"),dt=at.select("line"),st=at.select("text");K=K.merge(K.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),at=at.merge($t),dt=dt.merge($t.append("line").attr("stroke","currentColor").attr(g+"2",f*o)),st=st.merge($t.append("text").attr("fill","currentColor").attr(g,f*L).attr("dy",t===Xi?"0em":t===ys?"0.71em":"0.32em")),S!==k&&(K=K.transition(S),at=at.transition(S),dt=dt.transition(S),st=st.transition(S),ht=ht.transition(S).attr("opacity",bu).attr("transform",function(Vt){return isFinite(Vt=H(Vt))?v(Vt+c):this.getAttribute("transform")}),$t.attr("opacity",bu).attr("transform",function(Vt){var vt=this.parentNode.__axis;return v((vt&&isFinite(vt=vt(Vt))?vt:H(Vt))+c)})),ht.remove(),K.attr("d",t===Ua||t===Hi?s?"M"+f*s+","+X+"H"+c+"V"+W+"H"+f*s:"M"+c+","+X+"V"+W:s?"M"+X+","+f*s+"V"+c+"H"+W+"V"+f*s:"M"+X+","+c+"H"+W),at.attr("opacity",1).attr("transform",function(Vt){return v(H(Vt)+c)}),dt.attr(g+"2",f*o),st.attr(g,f*L).text(N),k.filter(xy).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Hi?"start":t===Ua?"end":"middle"),k.each(function(){this.__axis=H})}return m.scale=function(S){return arguments.length?(e=S,m):e},m.ticks=function(){return n=Array.from(arguments),m},m.tickArguments=function(S){return arguments.length?(n=S==null?[]:Array.from(S),m):n.slice()},m.tickValues=function(S){return arguments.length?(a=S==null?null:Array.from(S),m):a&&a.slice()},m.tickFormat=function(S){return arguments.length?(i=S,m):i},m.tickSize=function(S){return arguments.length?(o=s=+S,m):o},m.tickSizeInner=function(S){return arguments.length?(o=+S,m):o},m.tickSizeOuter=function(S){return arguments.length?(s=+S,m):s},m.tickPadding=function(S){return arguments.length?(l=+S,m):l},m.offset=function(S){return arguments.length?(c=+S,m):c},m}function Ty(t){return Yi(Xi,t)}function $y(t){return Yi(Hi,t)}function Ru(t){return Yi(ys,t)}function Iu(t){return Yi(Ua,t)}var Sy=Object.defineProperty,Ay=(t,e,n)=>e in t?Sy(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,xs=(t,e,n)=>Ay(t,typeof e!="symbol"?e+"":e,n);class Ou{constructor(e){xs(this,"owner"),xs(this,"config"),xs(this,"scale");const n=zr(),{config:a,params:i}=e;this.owner=e,this.config=a,this.scale=n,(a.noTransition||!i.config.transition_duration)&&(a.withoutTransition=!0),a.range=this.scaleExtent((i.orgXScale||n).range())}static getSizeFor1Char(e,n=!0){const a={w:5.5,h:11.5};return!e.empty()&&e.text("0").call(i=>{try{const{width:o,height:s}=i.node().getBBox();o&&s&&(a.w=o,a.h=s)}finally{i.text("")}}),n&&(this.getSizeFor1Char=()=>a),a}getTickTransformSetter(e){const{config:n}=this,a=e==="x"?i=>`translate(${i+n.tickOffset},0)`:i=>`translate(0,${i})`;return(i,o)=>{i.attr("transform",s=>{const l=o(s);return De(s)?a(l):null})}}scaleExtent(e){const n=e[0],a=e[e.length-1];return n0?i:1,o]).range(e.range());s=c.ticks();for(let f=o.toFixed().length;s.length>15;f--)s=c.ticks(f);s.splice(0,1,i),s.splice(s.length-1,1,o)}else s=e.ticks(...this.config.tickArguments||[]);s=s.map(c=>ze(c)&&he(c)&&!isNaN(c)&&Math.round(c*10)/10||c)}return s}copyScale(){const e=this.scale.copy();return e.domain().length||e.domain(this.scale.domain()),e.type=this.scale.type,e}textFormatted(e){const n=this.config.tickFormat,a=/\d+\.\d+0{5,}\d$/.test(e)?+String(e).replace(/0+\d$/,""):e,i=n?n(a):a;return Qe(i)?i:""}transitionise(e){const{config:n}=this;let a=e;if(n.withoutTransition)a=e.interrupt();else if(n.transition||!this.owner.params.noTransition)try{a=e.transition(n.transition)}catch(i){}return a}}var Ey=Object.defineProperty,by=(t,e,n)=>e in t?Ey(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,za=(t,e,n)=>by(t,typeof e!="symbol"?e+"":e,n);class Ry{constructor(e={}){za(this,"helper"),za(this,"config"),za(this,"params"),za(this,"g"),za(this,"generatedTicks");const n={innerTickSize:6,outerTickSize:e.outerTick?6:0,orient:"bottom",range:[],tickArguments:null,tickCentered:null,tickCulling:!0,tickFormat:null,tickLength:9,tickOffset:0,tickPadding:3,tickValues:null,transition:null,noTransition:e.noTransition};n.tickLength=Math.max(n.innerTickSize,0)+n.tickPadding,this.config=n,this.params=e,this.helper=new Ou(this)}create(e){const n=this,{config:a,helper:i,params:o}=n,{scale:s}=i,{orient:l}=a,c=this.splitTickText.bind(n),f=/^(left|right)$/.test(l),g=/^(top|bottom)$/.test(l),v=i.getTickTransformSetter(g?"x":"y"),m=v===i.axisX?"y":"x",S=/^(top|left)$/.test(l)?-1:1,P=o.tickTextRotate;this.config.range=s.rangeExtent?s.rangeExtent():i.scaleExtent((o.orgXScale||s).range());const{innerTickSize:N,tickLength:L,range:w}=a,X=o.id,W=X&&/^(x|y|y2)$/.test(X)?o.config[`axis_${X}_tick_text_position`]:{x:0,y:0},H=X==="subX"?"subchart_axis_x":`axis_${X}`,k=o.config[`${H}_show`],K={tick:k?o.config[`${H}_tick_show`]:!1,text:k?o.config[`${H}_tick_text_show`]:!1},at=o.config.axis_evalTextSize;let ht;e.each(function(){const $t=ot(this);let dt=this.__chart__||s,st=i.copyScale();ht=$t,this.__chart__=st,a.tickOffset=o.isCategory?(st(1)-st(0))/2:0;const Vt=$t.selectAll(".domain").data([0]);if(Vt.enter().append("path").attr("class","domain").merge(Vt).attr("d",()=>{const vt=a.outerTickSize*S;return g?`M${w[0]},${vt}V0H${w[1]}V${vt}`:`M${vt},${w[0]}H0V${w[1]}H${vt}`}),K.tick||K.text){const vt=a.tickValues||i.generateTicks(st,f);n.generatedTicks=vt;let Q=$t.selectAll(".tick").data(vt,st);const St=Q.enter().insert("g",".domain").attr("class","tick"),ct=Q.exit().remove();Q=St.merge(Q),K.tick&&St.append("line"),K.text&&St.append("text");const At=Q.select("text"),Gt=ve(at)?at.bind(n.params.owner.api)(At.node()):Ou.getSizeFor1Char(At,at),Bt=[];let Kt=At.selectAll("tspan").data((be,Oe)=>{const Ce=o.tickMultiline?c(be,st,vt,f,Gt.w):je(i.textFormatted(be))?i.textFormatted(be).concat():[i.textFormatted(be)];return Bt[Oe]=Ce.length,Ce.map(He=>({index:Oe,splitted:He}))});Kt.exit().remove(),Kt=Kt.enter().append("tspan").merge(Kt).text(be=>be.splitted),Kt.attr("x",g?0:L*S).attr("dx",(()=>{let be=0;return/(top|bottom)/.test(l)&&P&&(be=8*Math.sin(Math.PI*(P/180))*(l==="top"?-1:1)),be+(W.x||0)})()).attr("dy",(be,Oe)=>{const Ce=".71em";let He=0;return l!=="top"&&(He=Gt.h,Oe===0&&(He=f?-((Bt[be.index]-1)*(Gt.h/2)-3):W.y===0?Ce:0)),he(He)&&W.y?He+W.y:He||Ce});const ne=Q.select("line"),le=Q.select("text");if(St.select("line").attr(`${m}2`,N*S),St.select("text").attr(m,L*S),n.setTickLineTextPosition(ne,le),o.tickTitle){const be=le.select("title");(be.empty()?le.append("title"):be).text(Oe=>o.tickTitle[Oe])}if(st.bandwidth){const be=st,Oe=be.bandwidth()/2;dt=Ce=>be(Ce)+Oe,st=dt}else dt.bandwidth?dt=st:v(ct,st);Q=o.owner.state.flowing?i.transitionise(Q):o.owner.$T(Q),v(St,dt),v(Q.style("opacity",null),st)}}),this.g=ht}getGeneratedTicks(e){var n;const a=((n=this.generatedTicks)==null?void 0:n.length)-1;let i=this.generatedTicks;if(a>e){const o=Math.round(a/e+.1);i=this.generatedTicks.map((s,l)=>l%o===0?s:null).filter(s=>s!==null).splice(0,e)}return i}getTickXY(){const{config:e}=this,n={x:0,y:0};return this.params.isCategory&&(n.x=e.tickCentered?0:e.tickOffset,n.y=e.tickCentered?e.tickOffset:0),n}getTickSize(e){const{scale:n}=this.helper,{config:a}=this,{innerTickSize:i,range:o}=a,s=n(e)+(a.tickCentered?0:a.tickOffset);return o[0]{const N=["start","end"];return o==="top"&&N.reverse(),P?N[P>0?0:1]:"middle"},g=P=>P?`rotate(${P})`:null,v=P=>{const N=P/(o==="bottom"?15:23);return P?11.5-2.5*N*(P>0?1:-1):s},{config:{axis_rotated:m,axis_x_tick_text_inner:S}}=this.params.owner;switch(o){case"bottom":e.attr("x1",a.x).attr("x2",a.x).attr("y2",this.getTickSize.bind(this)),n.attr("x",0).attr("y",v(c)).style("text-anchor",f(c)).style("text-anchor",(P,N,{length:L})=>!m&&N===0&&(S===!0||S.first)?"start":!m&&N===L-1&&(S===!0||S.last)?"end":f(c)).attr("transform",g(c));break;case"top":e.attr("x2",0).attr("y2",-i),n.attr("x",0).attr("y",-v(c)*2).style("text-anchor",f(c)).attr("transform",g(c));break;case"left":e.attr("x2",-i).attr("y1",a.y).attr("y2",a.y),n.attr("x",-s).attr("y",l).style("text-anchor","end");break;case"right":e.attr("x2",i).attr("y2",0),n.attr("x",s).attr("y",0).style("text-anchor","start")}}splitTickText(e,n,a,i,o){const{params:s}=this,l=this.helper.textFormatted(e),c=ze(l)&&l.indexOf(` +`)>-1?l.split(` +`):[];if(c.length)return c;if(je(l))return l;let f=s.tickWidth;(!f||f<=0)&&(f=i?95:s.isCategory?(s.isInverted?n(a[0])-n(a[1]):n(a[1])-n(a[0]))-12:110);function g(v,m){let S,P,N;for(let L=1;L{const S=v+1;return Se(this.helper.scale.domain());else{if(!arguments.length)return n.tickValues;n.tickValues=e}return this}setTransition(e){return this.config.transition=e,this}}var Iy=Object.defineProperty,Oy=(t,e,n)=>e in t?Iy(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,pr=(t,e,n)=>Oy(t,typeof e!="symbol"?e+"":e,n),Cy={getAxisInstance:function(){return this.axis||new Py(this)}};class Py{constructor(e){pr(this,"owner"),pr(this,"x"),pr(this,"subX"),pr(this,"y"),pr(this,"y2"),pr(this,"axesList",{}),pr(this,"tick",{x:null,y:null,y2:null}),pr(this,"xs",[]),pr(this,"orient",{x:"bottom",y:"left",y2:"right",subX:"bottom"}),this.owner=e,this.setOrient()}getAxisClassName(e){return`${Tn.axis} ${Tn[`axis${Cn(e)}`]}`}isHorizontal(e,n){const a=e.config.axis_rotated;return n?a:!a}isCategorized(){const{config:e,state:n}=this.owner;return e.axis_x_type.indexOf("category")>=0||n.hasRadar}isCustomX(){const{config:e}=this.owner;return!this.isTimeSeries()&&(e.data_x||cn(e.data_xs))}isTimeSeries(e="x"){return this.owner.config[`axis_${e}_type`]==="timeseries"}isLog(e="x"){return this.owner.config[`axis_${e}_type`]==="log"}isTimeSeriesY(){return this.isTimeSeries("y")}getAxisType(e="x"){let n="linear";return this.isTimeSeries(e)?n=this.owner.config.axis_x_localtime?"time":"utc":this.isLog(e)&&(n="log"),n}getExtent(){const e=this.owner,{config:n,scale:a}=e;let i=n.axis_x_extent;if(i){if(ve(i))i=i.bind(e.api)(e.getXDomain(e.data.targets),a.subX);else if(this.isTimeSeries()&&i.every(isNaN)){const o=Yn.bind(e);i=i.map(s=>a.subX(o(s)))}}return i}init(){const e=this.owner,{config:n,$el:{main:a,axis:i},state:{clip:o}}=e,s=["x","y"];n.axis_y2_show&&s.push("y2"),s.forEach(l=>{const c=this.getAxisClassName(l);i[l]=a.append("g").attr("class",c).attr("clip-path",()=>{let f=null;return l==="x"?f=o.pathXAxis:l==="y"&&(f=o.pathYAxis),f}).attr("transform",e.getTranslate(l)).style("visibility",n[`axis_${l}_show`]?null:"hidden"),this.generateAxes(l)})}setOrient(){const e=this.owner,{axis_rotated:n,axis_y_inner:a,axis_y2_inner:i}=e.config;this.orient={x:n?"left":"bottom",y:n?a?"top":"bottom":a?"right":"left",y2:n?i?"bottom":"top":i?"left":"right",subX:n?"left":"bottom"}}generateAxes(e){const n=this.owner,{config:a}=n,i=[],o=a[`axis_${e}_axes`],s=a.axis_rotated;let l;e==="x"?l=s?Iu:Ru:e==="y"?l=s?Ru:Iu:e==="y2"&&(l=s?Ty:$y),o.length&&o.forEach(c=>{const f=c.tick||{},g=n.scale[e].copy();c.domain&&g.domain(c.domain),i.push(l(g).ticks(f.count).tickFormat(ve(f.format)?f.format.bind(n.api):v=>v).tickValues(f.values).tickSizeOuter(f.outer===!1?0:6))}),this.axesList[e]=i}updateAxes(){const e=this.owner,{config:n,$el:{main:a},$T:i}=e;Object.keys(this.axesList).forEach(o=>{const s=n[`axis_${o}_axes`],l=e.scale[o].copy(),c=l.range();this.axesList[o].forEach((f,g)=>{const v=f.scale().range();c.every((P,N)=>P===v[N])||f.scale().range(c);const m=`${this.getAxisClassName(o)}-${g+1}`;let S=a.select(`.${m.replace(/\s/,".")}`);S.empty()?S=a.append("g").attr("class",m).style("visibility",n[`axis_${o}_show`]?null:"hidden").call(f):(s[g].domain&&l.domain(s[g].domain),i(S).call(f.scale(l))),S.attr("transform",e.getTranslate(o,g+1))})})}setAxis(e,n,a,i){const o=this.owner;e!=="subX"&&(this.tick[e]=this.getTickValues(e)),this[e]=this.getAxis(e,n,a,e==="x"&&(o.scale.zoom||o.config.subchart_show||o.state.resizing)?!0:i)}getAxis(e,n,a,i,o){const s=this.owner,{config:l}=s,c=/^(x|subX)$/.test(e),f=c?"x":e,g=c&&this.isCategorized(),v=this.orient[e],m=o?0:s.getAxisTickRotate(f);let S;if(c)S=e==="subX"?s.format.subXAxisTick:s.format.xAxisTick;else{const X=l[`axis_${e}_tick_format`];ve(X)&&(S=X.bind(s.api))}let P=this.tick[f];const N=ea({outerTick:a,noTransition:i,config:l,id:e,tickTextRotate:m,owner:s},c&&{isCategory:g,isInverted:l.axis_x_inverted,tickMultiline:l.axis_x_tick_multiline,tickWidth:l.axis_x_tick_width,tickTitle:g&&l.axis_x_tick_tooltip&&s.api.categories(),orgXScale:s.scale.x});c||(N.tickStepSize=l[`axis_${f}_tick_stepSize`]);const L=new Ry(N).scale(c&&s.scale.zoom||n).orient(v);if(c&&this.isTimeSeries()&&P&&!ve(P)){const X=Yn.bind(s);P=P.map(W=>X(W))}else!c&&this.isTimeSeriesY()&&(L.ticks(l.axis_y_tick_time_value),P=null);P&&L.tickValues(P),L.tickFormat(S||!c&&s.isStackNormalized()&&(X=>`${X}%`)),g&&(L.tickCentered(l.axis_x_tick_centered),qn(l.axis_x_tick_culling)&&(l.axis_x_tick_culling=!1));const w=l[`axis_${f}_tick_count`];return w&&L.ticks(w),L}updateXAxisTickValues(e,n){var a;const i=this.owner,{config:o}=i,s=o.axis_x_tick_fit;let l=o.axis_x_tick_count,c;return(s||l&&s)&&(c=i.mapTargetsToUniqueXs(e),this.isCategorized()&&l>c.length&&(l=c.length),c=this.generateTickValues(c,l,this.isTimeSeries())),n?n.tickValues(c):this.x&&(this.x.tickValues(c),(a=this.subX)==null||a.tickValues(c)),c}getId(e){const{config:n,scale:a}=this.owner;let i=n.data_axes[e];return(!i||!a[i])&&(i="y"),i}getXAxisTickFormat(e){const n=this.owner,{config:a,format:i}=n,o=e&&a.subchart_axis_x_tick_format||a.axis_x_tick_format,s=this.isTimeSeries(),l=this.isCategorized();let c;return o?ve(o)?c=o.bind(n.api):s&&(c=f=>f?i.axisTime(o)(f):""):c=s?i.defaultAxisTime:l?n.categoryName:f=>f<0?f.toFixed(0):f,ve(c)?f=>c.apply(n,l?[f,n.categoryName(f)]:[f]):c}getTickValues(e){const n=this.owner,a=n.config[`axis_${e}_tick_values`],i=n[`${e}Axis`];return(ve(a)?a.call(n.api):a)||(i?i.tickValues():void 0)}getLabelOptionByAxisId(e){return this.owner.config[`axis_${e}_label`]}getLabelText(e){const n=this.getLabelOptionByAxisId(e);return ze(n)?n:n?n.text:null}setLabelText(e,n){const a=this.owner,{config:i}=a,o=this.getLabelOptionByAxisId(e);ze(o)?i[`axis_${e}_label`]=n:o&&(o.text=n)}getLabelPosition(e,n){const a=this.owner.config.axis_rotated,i=this.getLabelOptionByAxisId(e),o=nr(i)&&i.position?i.position:n[+!a],s=l=>!!~o.indexOf(l);return{isInner:s("inner"),isOuter:s("outer"),isLeft:s("left"),isCenter:s("center"),isRight:s("right"),isTop:s("top"),isMiddle:s("middle"),isBottom:s("bottom")}}getAxisLabelPosition(e){return this.getLabelPosition(e,e==="x"?["inner-top","inner-right"]:["inner-right","inner-top"])}getLabelPositionById(e){return this.getAxisLabelPosition(e)}xForAxisLabel(e){const n=this.owner,{state:{width:a,height:i}}=n,o=this.getAxisLabelPosition(e);let s=o.isMiddle?-i/2:0;return this.isHorizontal(n,e!=="x")?s=o.isLeft?0:o.isCenter?a/2:a:o.isBottom&&(s=-i),s}textAnchorForAxisLabel(e){const n=this.owner,a=this.getAxisLabelPosition(e);let i=a.isMiddle?"middle":"end";return this.isHorizontal(n,e!=="x")?i=a.isLeft?"start":a.isCenter?"middle":"end":a.isBottom&&(i="start"),i}dxForAxisLabel(e){const n=this.owner,a=this.getAxisLabelPosition(e);let i=a.isBottom?"0.5em":"0";return this.isHorizontal(n,e!=="x")?i=a.isLeft?"0.5em":a.isRight?"-0.5em":"0":a.isTop&&(i="-0.5em"),i}dyForAxisLabel(e){const n=this.owner,{config:a}=n,i=a.axis_rotated,o=this.getAxisLabelPosition(e).isInner,s=a[`axis_${e}_tick_rotate`]?n.getHorizontalAxisHeight(e):0,{width:l}=this.getMaxTickSize(e);let c;if(e==="x"){const f=a.axis_x_height;i?c=o?"1.2em":-25-l:o?c="-0.5em":f?c=f-10:s?c=s-10:c="3em"}else c={y:["-0.5em",10,"3em","1.2em",10],y2:["1.2em",-20,"-2.2em","-0.5em",15]}[e],i?o?c=c[0]:s?c=s*(e==="y2"?-1:1)-c[1]:c=c[2]:c=o?c[3]:(c[4]+(a[`axis_${e}_inner`]?0:l+c[4]))*(e==="y"?-1:1);return c}getMaxTickSize(e,n){const a=this.owner,{config:i,state:{current:o},$el:{svg:s,chart:l}}=a,c=o.maxTickSize[e],f=`axis_${e}`,g={width:0,height:0};if(n||!i[`${f}_show`]||c.width>0&&a.filterTargetsToShow().length===0)return c;if(s){const v=/^y2?$/.test(e),m=a.filterTargetsToShow(a.data.targets),S=a.scale[e].copy().domain(a[`get${v?"Y":"X"}Domain`](m,e)),P=S.domain(),N=P[0]===P[1]&&P.every(K=>K>0),L=je(c.domain)&&c.domain[0]===c.domain[1]&&c.domain.every(K=>K>0);if(N||L)return c.size;c.domain=P,v||c.ticks.splice(0);const w=this.getAxis(e,S,!1,!1,!0),X=i[`${f}_tick_rotate`],W=i[`${f}_tick_count`];!i[`${f}_tick_values`]&&W&&w.tickValues(this.generateTickValues(P,W,v?this.isTimeSeriesY():this.isTimeSeries())),!v&&this.updateXAxisTickValues(m,w);const k=l.append("svg").style("visibility","hidden").style("position","fixed").style("top","0").style("left","0");w.create(k),k.selectAll("text").attr("transform",he(X)?`rotate(${X})`:null).each(function(K,at){const{width:ht,height:$t}=this.getBoundingClientRect();g.width=Math.max(g.width,ht),g.height=Math.max(g.height,$t),v||(c.ticks[at]=ht)}),k.remove()}return Object.keys(g).forEach(v=>{g[v]>0&&(c[v]=g[v])}),c}getXAxisTickTextY2Overflow(e){const n=this.owner,{axis:a,config:i,state:{current:o,isLegendRight:s,legendItemWidth:l}}=n,c=n.getAxisTickRotate("x"),f=c>0&&c<90;if((a.isCategorized()||a.isTimeSeries())&&i.axis_x_tick_fit&&(!i.axis_x_tick_culling||qn(i.axis_x_tick_culling))&&!i.axis_x_tick_multiline&&f){const g=i.axis_y2_show&&o.maxTickSize.y2.width||0,v=s&&l||0,m=o.width-n.getCurrentPaddingByDirection("left"),S=this.getXAxisTickMaxOverflow(c,m-e)-g-v,P=Math.max(0,S)+e;return Math.min(P,m/2)}return 0}getXAxisTickMaxOverflow(e,n){const a=this.owner,{axis:i,config:o,state:s}=a,l=i.isTimeSeries(),c=s.current.maxTickSize.x.ticks,f=c.length,{left:g,right:v}=s.axis.x.padding;let m=0;const S=f-(l&&o.axis_x_tick_fit?.5:0);for(let L=0;L{const c=this.getLabelText(l),f=`axis${Cn(l)}`,g=Tn[`${f}Label`];if(c){let v=i.select(`text.${g}`);v.empty()&&(v=i.select(`g.${Tn[f]}`).insert("text",":first-child").attr("class",g).attr("transform",["rotate(-90)",null][l==="x"?+!s:+s]).style("text-anchor",()=>this.textAnchorForAxisLabel(l))),o(v,e).attr("x",()=>this.xForAxisLabel(l)).attr("dx",()=>this.dxForAxisLabel(l)).attr("dy",()=>this.dyForAxisLabel(l)).text(c)}})}getPadding(e,n,a,i){const o=he(e)?e:e[n];return De(o)?this.owner.convertPixelToScale(/(bottom|top)/.test(n)?"y":"x",o,i):a}generateTickValues(e,n,a){let i=e;if(n){const o=ve(n)?n():n;if(o===1)i=[e[0]];else if(o===2)i=[e[0],e[e.length-1]];else if(o>2){const s=this.isCategorized(),l=o-2,c=e[0],f=e[e.length-1],g=(f-c)/(l+1);let v;i=[c];for(let m=0;mo-s)),i}generateTransitions(e){const n=this.owner,{$el:{axis:a},$T:i}=n,[o,s,l,c]=["x","y","y2","subX"].map(f=>i(a[f],e));return{axisX:o,axisY:s,axisY2:l,axisSubX:c}}redraw(e,n,a){const i=this.owner,{config:o,state:s,$el:l}=i,c=n?"0":null;["x","y","y2","subX"].forEach(f=>{const g=this[f],v=l.axis[f];g&&v&&(!a&&!o.transition_duration&&(g.config.withoutTransition=!0),v.style("opacity",c),g.create(e[`axis${Cn(f)}`]))}),this.updateAxes(),!s.rendered&&o.axis_tooltip&&this.setAxisTooltip()}redrawAxis(e,n,a,i,o){var s,l,c;const f=this.owner,{config:g,scale:v,$el:m}=f,S=!!v.zoom;let P;!S&&this.isCategorized()&&e.length===0&&v.x.domain([0,m.axis.x.selectAll(".tick").size()]),v.x&&e.length?(!S&&f.updateXDomain(e,n.UpdateXDomain,n.UpdateOrgXDomain,n.TrimXDomain),g.axis_x_tick_values||this.updateXAxisTickValues(e)):this.x&&(this.x.tickValues([]),(s=this.subX)==null||s.tickValues([])),g.zoom_rescale&&!i&&(P=v.x.orgDomain()),["y","y2"].forEach(N=>{const L=`axis_${N}_`,w=v[N];if(w){const X=g[`${L}tick_values`],W=g[`${L}tick_count`];if(w.domain(f.getYDomain(e,N,P)),!X&&W){const H=f.axis[N],k=w.domain();H.tickValues(this.generateTickValues(k,k.every(K=>K===0)?1:W,this.isTimeSeriesY()))}}}),this.redraw(a,f.hasArcType(),o),this.updateLabels(n.Transition),(n.UpdateXDomain||n.UpdateXAxis||n.Y)&&e.length&&this.setCulling(),n.Y&&((l=v.subY)==null||l.domain(f.getYDomain(e,"y")),(c=v.subY2)==null||c.domain(f.getYDomain(e,"y2")))}setCulling(){const e=this.owner,{config:n,state:{clip:a,current:i},$el:o}=e;["subX","x","y","y2"].forEach(s=>{const l=o.axis[s],f=`axis_${s==="subX"?"x":s}_tick_culling`,g=n[f];if(l&&g){const v=l.selectAll(".tick"),m=na(v.data()),S=m.length,P=n[`${f}_max`],N=n[`${f}_lines`];let L;if(S){for(let w=1;w{var f,g,v;if(ze(l)||l[c])if(s[c]=(f=o[c])==null?void 0:f.append("text").classed(Tn[`axis${c.toUpperCase()}Tooltip`],!0).attr("filter",n.updateTextBGColor({id:c},l)),a){const m=c==="x"?"x":"y",S=c==="y"?"1.15em":c==="x"?"-0.3em":"-0.4em";(g=s[c])==null||g.attr(m,S).attr(`d${c==="x"?"y":"x"}`,c==="x"?"0.4em":"-1.3em").style("text-anchor",c==="x"?"end":null)}else{const m=c==="x"?"y":"x",S=c==="x"?"1.15em":`${c==="y"?"-":""}0.4em`;(v=s[c])==null||v.attr(m,S).attr(`d${c==="x"?"x":"y"}`,c==="x"?"-1em":"0.3em").style("text-anchor",c==="y"?"end":null)}})}}var wy={initEventRect(){this.$el.main.select(`.${Se.chart}`).append("g").attr("class",Zn.eventRects).style("fill-opacity","0")},redrawEventRect(){var t;const e=this,{config:n,state:a,$el:i}=e,o=e.isMultipleX(),s=n.axis_x_inverted;if(i.eventRect)e.updateEventRect(i.eventRect,!0);else if(e.data.targets.length){const c=e.$el.main.select(`.${Zn.eventRects}`).style("cursor",n.zoom_enabled&&n.zoom_type!=="drag"?n.axis_rotated?"ns-resize":"ew-resize":null).classed(Zn.eventRectsMultiple,o).classed(Zn.eventRectsSingle,!o).selectAll(`.${Zn.eventRect}`).data([0]).enter().append("rect");e.updateEventRect(c),e.updateEventType(c),c.call(e.getDraggableSelection()),i.eventRect=c,e.state.inputType==="touch"&&!i.svg.on("touchstart.eventRect")&&!e.hasArcType()&&e.bindTouchOnEventRect(),a.rendered&&e.updateEventRect(i.eventRect,!0)}if(!o){const l=e.getMaxDataCountTarget();(!n.data_xSort||s)&&l.sort((c,f)=>s?f.x-c.x:c.x-f.x),e.updateDataIndexByX(l),e.updateXs(l),(t=e.updatePointClass)==null||t.call(e,!0),a.eventReceiver.data=l}e.updateEventRectData()},bindTouchOnEventRect(){const t=this,{config:e,state:n,$el:{eventRect:a,svg:i}}=t,o=m=>{if(t.isMultipleX())t.selectRectForMultipleXs(m);else{const S=t.getDataIndexFromEvent(n.event);t.callOverOutForTouch(S),S===-1?t.unselectRect():t.selectRectForSingle(m,S)}},s=()=>{t.unselectRect(),t.callOverOutForTouch()},l=e.interaction_inputType_touch.preventDefault,c=Co(l)&&l||!1,f=!isNaN(l)&&l||null;let g;const v=m=>{const S=m.type,N=m.changedTouches[0][`client${e.axis_rotated?"Y":"X"}`];S==="touchstart"?c?m.preventDefault():f!==null&&(g=N):S==="touchmove"&&(c||g===!0||f!==null&&Math.abs(g-N)>=f)&&(g=!0,m.preventDefault())};a.on("touchstart",m=>{n.event=m,t.updateEventRect()}).on("touchstart.eventRect touchmove.eventRect",m=>{if(n.event=m,!a.empty()&&a.classed(Zn.eventRect)){if(n.dragging||n.flowing||t.hasArcType()||m.touches.length>1)return;v(m),o(a.node())}else s()},!0).on("touchend.eventRect",m=>{n.event=m,!a.empty()&&a.classed(Zn.eventRect)&&(t.hasArcType()||!t.toggleShape||n.cancelClick)&&n.cancelClick&&(n.cancelClick=!1)},!0),i.on("touchstart",m=>{n.event=m;const{target:S}=m;S&&S!==a.node()&&s()})},updateEventRect(t,e=!1){const n=this,{state:a,$el:i}=n,{eventReceiver:o,width:s,height:l,rendered:c,resizing:f}=a,g=t||i.eventRect,v=()=>{if(o){const m=Zl(i.chart.node());o.rect=g.node().getBoundingClientRect().toJSON(),o.rect.top+=m.y,o.rect.left+=m.x}};(!c||f||e)&&(g.attr("x",0).attr("y",0).attr("width",s).attr("height",l),(!c||e)&&g.classed(Zn.eventRect,!0)),v()},updateEventType(t){const e=this,n=Co(t),a=n?e.$el.eventRect:t,i=n?t!==(a==null?void 0:a.datum().multipleX):!1;a&&(i&&(a==null||a.on("mouseover mousemove mouseout click",null)),e.isMultipleX()?e.generateEventRectsForMultipleXs(a):e.generateEventRectsForSingleX(a))},updateEventRectData(){const t=this,{config:e,scale:n,state:a}=t,i=n.zoom||n.x,o=e.axis_rotated,s=t.isMultipleX();let l,c,f,g;if(t.updateEventType(s),s)l=0,c=0,f=a.width,g=a.height;else{let S,P;if(t.axis.isCategorized())S=t.getEventRectWidth(),P=N=>i(N.x)-S/2;else{const N=({index:L})=>({prev:t.getPrevX(L),next:t.getNextX(L)});S=L=>{const w=N(L),X=i.domain();let W;return w.prev===null&&w.next===null?W=o?a.height:a.width:w.prev===null?W=(i(w.next)+i(L.x))/2:w.next===null?W=i(X[1])-(i(w.prev)+i(L.x))/2:(Object.keys(w).forEach((H,k)=>{var K;w[H]=(K=w[H])!=null?K:X[k]}),W=Math.max(0,(i(w.next)-i(w.prev))/2)),W},P=L=>{const w=N(L);let X;return w.prev===null&&w.next===null?X=0:w.prev===null?X=i(i.domain()[0]):X=(i(L.x)+i(w.prev))/2,X}}l=o?0:P,c=o?P:0,f=o?a.width:S,g=o?S:a.height}const{eventReceiver:v}=a,m=(S,P)=>ve(S)?S(P):S;v.coords.splice(v.data.length),v.data.forEach((S,P)=>{v.coords[P]={x:m(l,S),y:m(c,S),w:m(f,S),h:m(g,S)}})},selectRectForSingle(t,e){var n,a;const i=this,{config:o,$el:{main:s,circle:l}}=i,c=o.data_selection_enabled,f=o.data_selection_grouped,g=o.data_selection_isselectable,v=o.tooltip_grouped,m=i.getAllValuesOnIndex(e);if(v&&(i.showTooltip(m,t),(n=i.showGridFocus)==null||n.call(i,m),!c||f))return;!l&&s.selectAll(`.${Se.EXPANDED}:not(.${sn.shape}-${e})`).classed(Se.EXPANDED,!1);const S=s.selectAll(`.${sn.shape}-${e}`).classed(Se.EXPANDED,!0).style("cursor",g?"pointer":null).filter(function(P){return i.isWithinShape(this,P)});S.empty()&&!v&&o.interaction_onout&&((a=i.hideGridFocus)==null||a.call(i),i.hideTooltip(),!f&&i.setExpand(e)),S.call(P=>{var N,L;const w=P.data();c&&(f||g!=null&&g.bind(i.api)(w))&&(t.style.cursor="pointer"),v||(i.showTooltip(w,t),(N=i.showGridFocus)==null||N.call(i,w),(L=i.unexpandCircles)==null||L.call(i),P.each(X=>i.setExpand(e,X.id)))})},selectRectForMultipleXs(t,e=!0){const n=this,{config:a,state:i}=n,o=n.filterTargetsToShow(n.data.targets);if(i.dragging||n.hasArcType(o))return;const s=Hn(i.event,t),l=n.findClosestFromTargets(o,s);if(e&&i.mouseover&&(!l||l.id!==i.mouseover.id)&&(a.data_onout.call(n.api,i.mouseover),i.mouseover=void 0),!l){n.unselectRect();return}const f=(n.isBubbleType(l)||n.isScatterType(l)||!a.tooltip_grouped?[l]:n.filterByX(o,l.x)).map(v=>n.addName(v));n.showTooltip(f,t),n.setExpand(l.index,l.id,!0),n.showGridFocus(f);const g=n.dist(l,s);(n.isBarType(l.id)||g{const c=l?e.getDataIndexFromEvent(l):i.currentIdx;return c>-1?i.data[c]:null};o.on("mouseover",l=>{a.event=l,e.updateEventRect(),Object.values(e.$el.axisTooltip).forEach(c=>c==null?void 0:c.style("display",null))}).on("mousemove",function(l){const c=s(l);if(a.event=l,!c)return;let{index:f}=c;const g=n.line_step_type;if(n.line_step_tooltipMatch&&e.hasType("step")&&/^step\-(before|after)$/.test(g)){const m=e.scale.zoom||e.scale.x,S=e.axis.xs[f],P=m.invert(Hn(l,this)[0]);g==="step-after"&&PS&&(f+=1)}e.showAxisGridFocus();const v=n.tooltip_grouped&&f===i.currentIdx;if(a.dragging||a.flowing||e.hasArcType()||v){n.tooltip_show&&v&&e.setTooltipPosition();return}f!==i.currentIdx&&(e.setOverOut(!1,i.currentIdx),i.currentIdx=f),f===-1?e.unselectRect():e.selectRectForSingle(this,f),e.setOverOut(f!==-1,f)}).on("mouseout",l=>{a.event=l,!(!n||e.hasArcType()||i.currentIdx===-1||!n.interaction_onout)&&(e.hideAxisGridFocus(),e.unselectRect(),e.setOverOut(!1,i.currentIdx),i.currentIdx=-1)})}return o},clickHandlerForSingleX(t,e){const n=e,{config:a,state:i,$el:{main:o}}=n;if(!t||n.hasArcType()||i.cancelClick){i.cancelClick&&(i.cancelClick=!1);return}const{index:s}=t;o.selectAll(`.${sn.shape}-${s}`).each(function(l){var c;(a.data_selection_grouped||n.isWithinShape(this,l))&&((c=n.toggleShape)==null||c.call(n,this,l,s),a.data_onclick.bind(n.api)(l,this))})},generateEventRectsForMultipleXs(t){const e=this,{config:n,state:a}=e;t.on("click",function(i){a.event=i,e.clickHandlerForMultipleXS.bind(this)(e)}).datum({multipleX:!0}),a.inputType==="mouse"&&t.on("mouseover mousemove",function(i){a.event=i,e.selectRectForMultipleXs(this)}).on("mouseout",i=>{a.event=i,!(!e.config||e.hasArcType()||!n.interaction_onout)&&e.unselectRect()})},clickHandlerForMultipleXS(t){const e=t,{config:n,state:a}=e,i=e.filterTargetsToShow(e.data.targets);if(e.hasArcType(i))return;const o=Hn(a.event,this),s=e.findClosestFromTargets(i,o),l=e.getPointSensitivity(s);s&&(e.isBarType(s.id)||e.dist(s,o)+t;var Dy={generateFlow(t){const e=this,{data:n,state:a,$el:i}=e;return function(){const o=t.flow.length;a.flowing=!0,n.targets.forEach(l=>{l.values.splice(0,o)}),e.updateXGrid&&e.updateXGrid(!0);const s={};["axis.x","grid.x","gridLines.x","region.list","text","bar","line","area","circle"].forEach(l=>{const c=l.split(".");let f=i[c[0]];f&&c.length>1&&(f=f[c[1]]),f!=null&&f.size()&&(s[l]=f)}),e.hideGridFocus(),e.setFlowList(s,t)}},setFlowList(t,e){const n=this,{flow:a,targets:i}=e,{duration:o=e.duration,index:s,length:l,orgDataCount:c}=a,f=n.getFlowTransform(i,c,s,l),g=ec();let v;g.add(Object.keys(t).map(m=>(v=t[m].transition().ease(My).duration(o),m==="axis.x"?v=v.call(S=>{n.axis.x.setTransition(S).create(S)}):m==="region.list"?v=v.filter(n.isRegionOnX).attr("transform",f):v=v.attr("transform",f),v))),v.call(g,()=>{n.cleanUpFlow(t,e)})},cleanUpFlow(t,e){const n=this,{config:a,state:i,$el:{svg:o}}=n,s=a.axis_rotated,{flow:l,shape:c,xv:f}=e,{cx:g,cy:v,xForText:m,yForText:S}=c.pos,{done:P=()=>{},length:N}=l;N&&(["circle","text","shape","eventRect"].forEach(L=>{const w=[];for(let X=0;X{const w=t[L];if(L!=="axis.x"&&w.attr("transform",null),L==="grid.x")w.attr(i.xgridAttr);else if(L==="gridLines.x")w.attr("x1",s?0:f).attr("x2",s?i.width:f),w.select("text").attr("x",s?i.width:0).attr("y",f);else if(/^(area|bar|line)$/.test(L))w.attr("d",c.type[L]);else if(L==="text")w.attr("x",m).attr("y",S).style("fill-opacity",n.opacityForText.bind(n));else if(L==="circle")if(n.isCirclePoint())w.attr("cx",g).attr("cy",v);else{const X=H=>g(H)-a.point_r,W=H=>v(H)-a.point_r;w.attr("x",X).attr("y",W)}else L==="region.list"&&w.select("rect").filter(n.isRegionOnX).attr("x",n.regionX.bind(n)).attr("width",n.regionWidth.bind(n))}),a.interaction_enabled&&n.redrawEventRect(),P.call(n.api),i.flowing=!1},getFlowTransform(t,e,n,a){const i=this,{data:o,scale:{x:s}}=i,l=o.targets[0].values;let c=i.getValueOnIndex(l,n),f=i.getValueOnIndex(l,n+a),g;const v=s.domain(),m=i.updateXDomain(t,!0,!0);e?e===1||(c==null?void 0:c.x)===(f==null?void 0:f.x)?g=s(v[0])-s(m[0]):g=i.axis.isTimeSeries()?s(v[0])-s(m[0]):s((c==null?void 0:c.x)||0)-s(f.x):l.length!==1?g=s(v[0])-s(m[0]):i.axis.isTimeSeries()?(c=i.getValueOnIndex(l,0),f=i.getValueOnIndex(l,l.length-1),g=s(c.x)-s(f.x)):g=Dr(m)/2;const S=Dr(v)/Dr(m);return`translate(${g},0) scale(${S},1)`}},Ly={initClip(){const t=this,{clip:e,datetimeId:n}=t.state;e.id=`${n}-clip`,e.idXAxis=`${e.id}-xaxis`,e.idYAxis=`${e.id}-yaxis`,e.idGrid=`${e.id}-grid`,e.path=t.getClipPath(e.id),e.pathXAxis=t.getClipPath(e.idXAxis),e.pathYAxis=t.getClipPath(e.idYAxis),e.pathGrid=t.getClipPath(e.idGrid)},getClipPath(t){const e=this,{config:n}=e;return!n.clipPath&&/-clip$/.test(t)||!n.axis_x_clipPath&&/-clip-xaxis$/.test(t)||!n.axis_y_clipPath&&/-clip-yaxis$/.test(t)?null:`url(#${t})`},appendClip(t,e){e&&t.append("clipPath").attr("id",e).append("rect")},setXAxisClipPath(t){const e=this,{config:n,state:{margin:a,width:i,height:o}}=e,s=n.axis_rotated,l=Math.max(30,a.left)-(s?0:20),c=(s?a.top+o+10:a.bottom)+20,f=s?-(1+l):-(l-1),g=-15,v=s?a.left+20:i+10+l;t.attr("x",f).attr("y",g).attr("width",v).attr("height",c)},setYAxisClipPath(t){const e=this,{config:n,state:{margin:a,width:i,height:o}}=e,s=n.axis_rotated,l=Math.max(30,a.left)-(s?20:0),c=n.axis_y_inner,f=c&&!s?n.axis_y_label.text?-20:-1:s?-(1+l):-(l-1),g=-(s?20:a.top),v=(s?i+15+l:a.left+20)+(c?20:0),m=(s?a.bottom+10:a.top+o)+10;t.attr("x",f).attr("y",g).attr("width",v).attr("height",m)},updateXAxisTickClip(){const t=this,{config:e,state:{clip:n,xAxisHeight:a},$el:{defs:i}}=t,o=t.getHorizontalAxisHeight("x");if(i&&!n.idXAxisTickTexts){const s=`${n.id}-xaxisticktexts`;t.appendClip(i,s),n.pathXAxisTickTexts=t.getClipPath(n.idXAxisTickTexts),n.idXAxisTickTexts=s}!e.axis_x_tick_multiline&&t.getAxisTickRotate("x")&&o!==a&&(t.setXAxisTickClipWidth(),t.setXAxisTickTextClipPathWidth()),t.state.xAxisHeight=o},setXAxisTickClipWidth(){const t=this,{config:e,state:{current:{maxTickSize:n}}}=t,a=t.getAxisTickRotate("x");if(!e.axis_x_tick_multiline&&a){const i=Math.sin(Math.PI/180*Math.abs(a));n.x.clipPath=(t.getHorizontalAxisHeight("x")-20)/i}else n.x.clipPath=null},setXAxisTickTextClipPathWidth(){const t=this,{state:{clip:e,current:n},$el:{svg:a}}=t;a&&a.select(`#${e.idXAxisTickTexts} rect`).attr("width",n.maxTickSize.x.clipPath).attr("height",30)}};const Ny=t=>De(t.position)||"end",Fy=t=>t.position==="start"?4:t.position==="middle"?0:-4;function Cu(t,e,n){return a=>{let i=t?0:e;return a.position==="start"?i=t?-n:0:a.position==="middle"&&(i=(t?-n:e)/2),i}}function Pu(t,e){e==="grid"&&t.each(function(){const n=ot(this);["x1","x2","y1","y2"].forEach(a=>n.attr(a,+n.attr(a)))})}var By={hasGrid(){const{config:t}=this;return["x","y"].some(e=>t[`grid_${e}_show`]||t[`grid_${e}_lines`].length)},initGrid(){const t=this;t.hasGrid()&&t.initGridLines(),t.initFocusGrid()},initGridLines(){const t=this,{config:e,state:{clip:n},$el:a}=t;(e.grid_x_lines.length||e.grid_y_lines.length)&&(a.gridLines.main=a.main.insert("g",`.${Se.chart}${e.grid_lines_front?" + *":""}`).attr("clip-path",n.pathGrid).attr("class",`${on.grid} ${on.gridLines}`),a.gridLines.main.append("g").attr("class",on.xgridLines),a.gridLines.main.append("g").attr("class",on.ygridLines),a.gridLines.x=Uc([]))},updateXGrid(t){const e=this,{config:n,scale:a,state:i,$el:{main:o,grid:s}}=e,l=n.axis_rotated,c=e.generateGridData(n.grid_x_type,a.x),f=e.axis.isCategorized()?e.axis.x.tickOffset():0,g=v=>(a.zoom||a.x)(v)+f*(l?-1:1);i.xgridAttr=l?{x1:0,x2:i.width,y1:g,y2:g}:{x1:g,x2:g,y1:0,y2:i.height},s.x=o.select(`.${on.xgrids}`).selectAll(`.${on.xgrid}`).data(c),s.x.exit().remove(),s.x=s.x.enter().append("line").attr("class",on.xgrid).merge(s.x),t||s.x.each(function(){const v=ot(this);Object.keys(i.xgridAttr).forEach(m=>{v.attr(m,i.xgridAttr[m]).style("opacity",()=>v.attr(l?"y1":"x1")===(l?i.height:0)?"0":null)})})},updateYGrid(){const t=this,{axis:e,config:n,scale:a,state:i,$el:{grid:o,main:s}}=t,l=n.axis_rotated,c=g=>a.y(g),f=e.y.getGeneratedTicks(n.grid_y_ticks)||t.scale.y.ticks(n.grid_y_ticks);o.y=s.select(`.${on.ygrids}`).selectAll(`.${on.ygrid}`).data(f),o.y.exit().remove(),o.y=o.y.enter().append("line").attr("class",on.ygrid).merge(o.y),o.y.attr("x1",l?c:0).attr("x2",l?c:i.width).attr("y1",l?0:c).attr("y2",l?i.height:c),Pu(o.y,"grid")},updateGrid(){const t=this,{$el:{grid:e,gridLines:n}}=t;!n.main&&t.initGridLines(),e.main.style("visibility",t.hasArcType()?"hidden":null),t.hideGridFocus(),t.updateGridLines("x"),t.updateGridLines("y")},updateGridLines(t){const e=this,{config:n,$el:{gridLines:a,main:i},$T:o}=e,s=n.axis_rotated,l=t==="x";n[`grid_${t}_show`]&&e[`update${t.toUpperCase()}Grid`]();let c=i.select(`.${on[`${t}gridLines`]}`).selectAll(`.${on[`${t}gridLine`]}`).data(n[`grid_${t}_lines`]);o(c.exit()).style("opacity","0").remove();const f=c.enter().append("g");f.append("line").style("opacity","0"),c=f.merge(c),c.each(function(g){const v=ot(this);v.select("text").empty()&&g.text&&v.append("text").style("opacity","0")}),o(c.attr("class",g=>`${on[`${t}gridLine`]} ${g.class||""}`.trim()).select("text").attr("text-anchor",Ny).attr("transform",()=>l?s?null:"rotate(-90)":s?"rotate(-90)":null).attr("dx",Fy).attr("dy",-5)).text(function(g){var v;return(v=g.text)!=null?v:this.remove()}),a[t]=c},redrawGrid(t){const e=this,{config:{axis_rotated:n},state:{width:a,height:i},$el:{gridLines:o},$T:s}=e,l=e.xv.bind(e),c=e.yv.bind(e);let f=o.x.select("line"),g=o.x.select("text"),v=o.y.select("line"),m=o.y.select("text");return f=s(f,t).attr("x1",n?0:l).attr("x2",n?a:l).attr("y1",n?l:0).attr("y2",n?l:i),g=s(g,t).attr("x",Cu(!n,a,i)).attr("y",l),v=s(v,t).attr("x1",n?c:0).attr("x2",n?c:a).attr("y1",n?0:c).attr("y2",n?i:c),m=s(m,t).attr("x",Cu(n,a,i)).attr("y",c),[f.style("opacity",null),g.style("opacity",null),v.style("opacity",null),m.style("opacity",null)]},initFocusGrid(){const t=this,{config:e,state:{clip:n},$el:a}=t,i=e.grid_front,o=`.${i&&a.gridLines.main?on.gridLines:Se.chart}${i?" + *":""}`,s=a.main.insert("g",o).attr("clip-path",n.pathGrid).attr("class",on.grid);if(a.grid.main=s,e.grid_x_show&&s.append("g").attr("class",on.xgrids),e.grid_y_show&&s.append("g").attr("class",on.ygrids),e.axis_tooltip){const l=s.append("g").attr("class","bb-axis-tooltip");l.append("line").attr("class","bb-axis-tooltip-x"),l.append("line").attr("class","bb-axis-tooltip-y")}e.interaction_enabled&&e.grid_focus_show&&!e.axis_tooltip&&(s.append("g").attr("class",qe.xgridFocus).append("line").attr("class",qe.xgridFocus),e.grid_focus_y&&!e.tooltip_grouped&&s.append("g").attr("class",qe.ygridFocus).append("line").attr("class",qe.ygridFocus))},showAxisGridFocus(){var t,e;const n=this,{config:a,format:i,state:{event:o,width:s,height:l}}=n,c=a.axis_rotated,[f,g]=Hn(o,(t=n.$el.eventRect)==null?void 0:t.node()),v={x:f,y:g};for(const[m,S]of Object.entries(n.$el.axisTooltip)){const P=m==="x"&&!c||m!=="x"&&c?"x":"y",N=v[P];let L=(e=n.scale[m])==null?void 0:e.invert(N);L&&(L=m==="x"&&n.axis.isTimeSeries()?i.xAxisTick(L):L==null?void 0:L.toFixed(2),S==null||S.attr(P,N).text(L))}n.$el.main.selectAll("line.bb-axis-tooltip-x, line.bb-axis-tooltip-y").style("visibility",null).each(function(m,S){const P=ot(this);S===0?P.attr("x1",f).attr("x2",f).attr("y1",S?0:l).attr("y2",S?l:0):P.attr("x1",S?0:s).attr("x2",S?s:0).attr("y1",g).attr("y2",g)})},hideAxisGridFocus(){const t=this;t.$el.main.selectAll("line.bb-axis-tooltip-x, line.bb-axis-tooltip-y").style("visibility","hidden"),Object.values(t.$el.axisTooltip).forEach(e=>e==null?void 0:e.style("display","none"))},showGridFocus(t){var e;const n=this,{config:a,state:{width:i,height:o}}=n,s=a.axis_rotated,l=n.$el.main.selectAll(`line.${qe.xgridFocus}, line.${qe.ygridFocus}`),c=(t||[l.datum()]).filter(v=>v&&De(n.getBaseValue(v)));if(!a.tooltip_show||c.length===0||!a.axis_x_forceAsSingle&&n.hasType("bubble")||n.hasArcType())return;const f=a.grid_focus_edge&&!a.tooltip_grouped,g=n.xx.bind(n);l.style("visibility",null).data(c.concat(c)).each(function(v){const m=ot(this),S={x:g(v),y:n.getYScaleById(v.id)(v.value)};let P;if(m.classed(qe.xgridFocus))P=s?[null,S.x,f?S.y:i,S.x]:[S.x,f?S.y:null,S.x,o];else{const N=n.axis.getId(v.id)==="y2";P=s?[S.y,f&&!N?S.x:null,S.y,f&&N?S.x:o]:[f&&N?S.x:null,S.y,f&&!N?S.x:i,S.y]}["x1","y1","x2","y2"].forEach((N,L)=>m.attr(N,P[L]))}),Pu(l,"grid"),(e=n.showCircleFocus)==null||e.call(n,t)},hideGridFocus(){var t;const e=this,{state:{inputType:n,resizing:a},$el:{main:i}}=e;(n==="mouse"||!a)&&(i.selectAll(`line.${qe.xgridFocus}, line.${qe.ygridFocus}`).style("visibility","hidden"),(t=e.hideCircleFocus)==null||t.call(e))},updateGridFocus(){var t;const e=this,{state:{inputType:n,width:a,height:i,resizing:o},$el:{grid:s}}=e,l=s.main.select(`line.${qe.xgridFocus}`);if(n==="touch")l.empty()?o&&((t=e.showCircleFocus)==null||t.call(e)):e.showGridFocus();else{const c=e.config.axis_rotated;l.attr("x1",c?0:-10).attr("x2",c?a:-10).attr("y1",c?-10:0).attr("y2",c?-10:i)}return!0},generateGridData(t,e){const n=this,a=n.$el.main.select(`.${Tn.axisX}`).selectAll(".tick").size();let i=[];if(t==="year"){const o=n.getXDomain(),[s,l]=o.map(c=>c.getFullYear());for(let c=s;c<=l;c++)i.push(new Date(`${c}-01-01 00:00:00`))}else i=e.ticks(10),i.length>a&&(i=i.filter(o=>String(o).indexOf(".")<0));return i},getGridFilterToRemove(t){return t?e=>{let n=!1;return(je(t)?t.concat():[t]).forEach(a=>{("value"in a&&e.value===a.value||"class"in a&&e.class===a.class)&&(n=!0)}),n}:()=>!0},removeGridLines(t,e){const n=this,{config:a,$T:i}=n,o=n.getGridFilterToRemove(t),s=g=>!o(g),l=e?on.xgridLines:on.ygridLines,c=e?on.xgridLine:on.ygridLine;i(n.$el.main.select(`.${l}`).selectAll(`.${c}`).filter(o)).style("opacity","0").remove();const f=`grid_${e?"x":"y"}_lines`;a[f]=a[f].filter(s)}},Uy={initRegion(){const t=this,{$el:e}=t;e.region.main=e.main.insert("g",":first-child").attr("clip-path",t.state.clip.path).attr("class",$a.regions)},updateRegion(){const t=this,{config:e,$el:{region:n},$T:a}=t;n.main||t.initRegion(),n.main.style("visibility",t.hasArcType()?"hidden":null);const i=n.main.selectAll(`.${$a.region}`).data(e.regions);a(i.exit()).style("opacity","0").remove();const o=i.enter().append("g");o.append("rect").style("fill-opacity","0"),n.list=o.merge(i).attr("class",t.classRegion.bind(t)),n.list.each(function(s){var l;ot(this).select("text").empty()&&((l=s.label)!=null&&l.text)&&ot(this).append("text").style("opacity","0")})},redrawRegion(t){const e=this,{$el:{region:n},$T:a}=e,i=e.regionX.bind(e),o=e.regionY.bind(e),s=["width","height"];let l=n.list.select("rect"),c=n.list.selectAll("text");return l=a(l,t).attr("x",i).attr("y",o).attr("width",e.regionWidth.bind(e)).attr("height",e.regionHeight.bind(e)),c=a(c,t).text(f=>{var g;return(g=f.label)==null?void 0:g.text}).attr("transform",({label:f})=>f.rotated?" rotate(-90)":null).attr("transform",function(f){var g;const{x:v=0,y:m=0,center:S=!1,rotated:P=!1}=(g=f.label)!=null?g:{},N=this.previousElementSibling,L={x:0,y:0};return ze(S)&&["x","y"].forEach((w,X)=>{S.indexOf(w)>-1&&(L[w]=(+N.getAttribute(s[X])-Ma(this)[s[X]])/2)}),`translate(${i(f)+L.x+v}, ${o(f)+L.y+m})${P?" rotate(-90)":""}`}).attr("text-anchor",({label:f})=>f!=null&&f.rotated?"end":null).attr("dy","1em").style("fill",({label:f})=>{var g;return(g=f==null?void 0:f.color)!=null?g:null}),[l.style("fill-opacity",f=>De(f.opacity)?f.opacity:null).on("end",function(){ot(this.parentNode).selectAll("rect:not([x])").remove()}),c.style("opacity",null)]},regionX(t){return this.getRegionSize("x",t)},regionY(t){return this.getRegionSize("y",t)},regionWidth(t){return this.getRegionSize("width",t)},regionHeight(t){return this.getRegionSize("height",t)},getRegionSize(t,e){const n=this,{config:a,scale:i,state:o}=n,s=a.axis_rotated,l=/(x|y|y2)/.test(t),c=l?t==="x":t==="width",f=!l&&n[c?"regionX":"regionY"](e);let g=l?"start":"end",v=l?0:o[t],m;if(e.axis==="y"||e.axis==="y2"?(!l&&!c?g="start":l&&!c&&(g="end"),(c?s:!s)&&g in e&&(m=i[e.axis])):(c?!s:s)&&g in e&&(m=i.zoom||i.x),m){let S=0;v=e[g],n.axis.isTimeSeries(e.axis)?v=Yn.call(n,v):/(x|width)/.test(t)&&n.axis.isCategorized()&&isNaN(v)&&(v=a.axis_x_categories.indexOf(v),S=n.axis.x.tickOffset()*(g==="start"?-1:1)),v=m(v)+S}return l?v:v0&&(!i.axis_x_tick_autorotate||a.needToRotateXAxisTickTexts());return(i.axis_x_tick_multiline||L)&&N.height>S&&(P+=N.height-S),P+(a.axis.getLabelPositionById(t).isInner?0:10)+(t==="y2"&&!f?-10:0)},getEventRectWidth(){const t=this,{config:e,axis:n}=t,a=e.axis_x_inverted,i=n.x.tickInterval();return Math.max(0,a?Math.abs(i):i)},getAxisTickRotate(t){const e=this,{axis:n,config:a,state:i,$el:o}=e;let s=a[`axis_${t}_tick_rotate`];if(t==="x"){const l=n.isCategorized()||n.isTimeSeries();if(a.axis_x_tick_fit&&l){const c=a.axis_x_tick_count,f=i.current.maxTickSize.x.ticks.length;let g=0;if(c?g=c>f?f:c:f&&(g=f),g!==i.axis.x.tickCount){const{targets:v}=e.data;i.axis.x.padding=e.getXDomainPadding([e.getXDomainMinMax(v,"min"),e.getXDomainMinMax(v,"max")],g)}i.axis.x.tickCount=g}o.svg&&a.axis_x_tick_autorotate&&a.axis_x_tick_fit&&!a.axis_x_tick_multiline&&!a.axis_x_tick_culling&&l&&(s=e.needToRotateXAxisTickTexts()?a.axis_x_tick_rotate:0)}return s},needToRotateXAxisTickTexts(){const t=this,{state:{axis:e,current:n,isLegendRight:a,legendItemWidth:i}}=t,o=a&&i,s=n.width-o-t.getCurrentPaddingByDirection("left")-t.getCurrentPaddingByDirection("right"),l=e.x.tickCount+e.x.padding.left+e.x.padding.right,{width:c}=t.axis.getMaxTickSize("x"),f=l?s/l:0;return c>f}},jy={axis_x_clipPath:!0,axis_x_show:!0,axis_x_forceAsSingle:!1,axis_x_type:"indexed",axis_x_localtime:!0,axis_x_categories:[],axis_x_tick_centered:!1,axis_x_tick_format:void 0,axis_x_tick_culling:{},axis_x_tick_culling_max:10,axis_x_tick_culling_lines:!0,axis_x_tick_count:void 0,axis_x_tick_show:!0,axis_x_tick_text_show:!0,axis_x_tick_text_inner:!1,axis_x_tick_text_position:{x:0,y:0},axis_x_tick_fit:!0,axis_x_tick_values:null,axis_x_tick_autorotate:!1,axis_x_tick_rotate:0,axis_x_tick_outer:!0,axis_x_tick_multiline:!0,axis_x_tick_width:null,axis_x_tick_tooltip:!1,axis_x_max:void 0,axis_x_min:void 0,axis_x_inverted:!1,axis_x_padding:{},axis_x_height:void 0,axis_x_extent:void 0,axis_x_label:{},axis_x_axes:[]},Vy={axis_y_clipPath:!0,axis_y_show:!0,axis_y_type:"indexed",axis_y_max:void 0,axis_y_min:void 0,axis_y_inverted:!1,axis_y_center:void 0,axis_y_inner:!1,axis_y_label:{},axis_y_tick_format:void 0,axis_y_tick_culling:!1,axis_y_tick_culling_max:5,axis_y_tick_culling_lines:!0,axis_y_tick_outer:!0,axis_y_tick_values:null,axis_y_tick_rotate:0,axis_y_tick_count:void 0,axis_y_tick_show:!0,axis_y_tick_stepSize:null,axis_y_tick_text_show:!0,axis_y_tick_text_position:{x:0,y:0},axis_y_tick_time_value:void 0,axis_y_padding:{},axis_y_default:void 0,axis_y_axes:[]},Gy={axis_y2_show:!1,axis_y2_type:"indexed",axis_y2_max:void 0,axis_y2_min:void 0,axis_y2_inverted:!1,axis_y2_center:void 0,axis_y2_inner:!1,axis_y2_label:{},axis_y2_tick_format:void 0,axis_y2_tick_culling:!1,axis_y2_tick_culling_max:5,axis_y2_tick_culling_lines:!0,axis_y2_tick_outer:!0,axis_y2_tick_values:null,axis_y2_tick_rotate:0,axis_y2_tick_count:void 0,axis_y2_tick_show:!0,axis_y2_tick_stepSize:null,axis_y2_tick_text_show:!0,axis_y2_tick_text_position:{x:0,y:0},axis_y2_padding:{},axis_y2_default:void 0,axis_y2_axes:[]},Xy=Object.defineProperty,wu=Object.getOwnPropertySymbols,Hy=Object.prototype.hasOwnProperty,Yy=Object.prototype.propertyIsEnumerable,Mu=(t,e,n)=>e in t?Xy(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Ts=(t,e)=>{for(var n in e||(e={}))Hy.call(e,n)&&Mu(t,n,e[n]);if(wu)for(var n of wu(e))Yy.call(e,n)&&Mu(t,n,e[n]);return t},Wy=Ts(Ts(Ts({axis_evalTextSize:!0,axis_rotated:!1,axis_tooltip:!1},jy),Vy),Gy),Ky={grid_x_show:!1,grid_x_type:"tick",grid_x_lines:[],grid_y_show:!1,grid_y_lines:[],grid_y_ticks:void 0,grid_focus_edge:!1,grid_focus_show:!0,grid_focus_y:!1,grid_front:!1,grid_lines_front:!0},Zy={data_xs:{},data_xFormat:"%Y-%m-%d",data_xLocaltime:!0,data_xSort:!0,data_axes:{},data_regions:{},data_stack_normalize:!1};const Jy=[sy,ly,cy,uy,fy,dy,hy],Du={axis:Cy,clip:Ly,eventrect:wy,flow:Dy,grid:By,region:Uy,sizeAxis:zy},Lu={optDataAxis:Zy,optAxis:Wy,optGrid:Ky};var I1=Array.prototype.slice;function $s(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Le(t){return function(){return t}}function Qy(t,e){return et?1:e>=t?0:NaN}function ky(t){return t}function qy(){var t=ky,e=Qy,n=null,a=Le(0),i=Le(zi),o=Le(0);function s(l){var c,f=(l=$s(l)).length,g,v,m=0,S=new Array(f),P=new Array(f),N=+a.apply(this,arguments),L=Math.min(zi,Math.max(-zi,i.apply(this,arguments)-N)),w,X=Math.min(Math.abs(L)/f,o.apply(this,arguments)),W=X*(L<0?-1:1),H;for(c=0;c0&&(m+=H);for(e!=null?S.sort(function(k,K){return e(P[k],P[K])}):n!=null&&S.sort(function(k,K){return n(l[k],l[K])}),c=0,v=m?(L-f*W)/m:0;c0?H*v:0)+W,P[g]={data:l[g],index:c,value:H,startAngle:N,endAngle:w,padAngle:X};return P}return s.value=function(l){return arguments.length?(t=typeof l=="function"?l:Le(+l),s):t},s.sortValues=function(l){return arguments.length?(e=l,n=null,s):e},s.sort=function(l){return arguments.length?(n=l,e=null,s):n},s.startAngle=function(l){return arguments.length?(a=typeof l=="function"?l:Le(+l),s):a},s.endAngle=function(l){return arguments.length?(i=typeof l=="function"?l:Le(+l),s):i},s.padAngle=function(l){return arguments.length?(o=typeof l=="function"?l:Le(+l),s):o},s}var _y=Math.pow;const Ss=Math.PI,As=2*Ss,Gr=1e-6,tx=As-Gr;function Nu(t){this._+=t[0];for(let e=1,n=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return Nu;const n=_y(10,e);return function(a){this._+=a[0];for(let i=1,o=a.length;iGr)if(!(Math.abs(v*c-f*g)>Gr)||!o)this._append`L${this._x1=e},${this._y1=n}`;else{let S=a-s,P=i-l,N=c*c+f*f,L=S*S+P*P,w=Math.sqrt(N),X=Math.sqrt(m),W=o*Math.tan((Ss-Math.acos((N+m-L)/(2*w*X)))/2),H=W/X,k=W/w;Math.abs(H-1)>Gr&&this._append`L${e+H*g},${n+H*v}`,this._append`A${o},${o},0,0,${+(v*S>g*P)},${this._x1=e+k*c},${this._y1=n+k*f}`}}arc(e,n,a,i,o,s){if(e=+e,n=+n,a=+a,s=!!s,a<0)throw new Error(`negative radius: ${a}`);let l=a*Math.cos(i),c=a*Math.sin(i),f=e+l,g=n+c,v=1^s,m=s?i-o:o-i;this._x1===null?this._append`M${f},${g}`:(Math.abs(this._x1-f)>Gr||Math.abs(this._y1-g)>Gr)&&this._append`L${f},${g}`,a&&(m<0&&(m=m%As+As),m>tx?this._append`A${a},${a},0,1,${v},${e-l},${n-c}A${a},${a},0,1,${v},${this._x1=f},${this._y1=g}`:m>Gr&&this._append`A${a},${a},0,${+(m>=Ss)},${v},${this._x1=e+a*Math.cos(o)},${this._y1=n+a*Math.sin(o)}`)}rect(e,n,a,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${a=+a}v${+i}h${-a}Z`}toString(){return this._}}function nx(){return new Wi}nx.prototype=Wi.prototype;function O1(t=3){return new Wi(+t)}function Es(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{const a=Math.floor(n);if(!(a>=0))throw new RangeError(`invalid digits: ${n}`);e=a}return t},()=>new Wi(e)}function rx(t){return t.innerRadius}function ax(t){return t.outerRadius}function ix(t){return t.startAngle}function ox(t){return t.endAngle}function sx(t){return t&&t.padAngle}function lx(t,e,n,a,i,o,s,l){var c=n-t,f=a-e,g=s-i,v=l-o,m=v*c-g*f;if(!(m*mQ*Q+St*St&&(ht=dt,$t=st),{cx:ht,cy:$t,x01:-g,y01:-v,x11:ht*(i/k-1),y11:$t*(i/k-1)}}function Fu(){var t=rx,e=ax,n=Le(0),a=null,i=ix,o=ox,s=sx,l=null,c=Es(f);function f(){var g,v,m=+t.apply(this,arguments),S=+e.apply(this,arguments),P=i.apply(this,arguments)-Ui,N=o.apply(this,arguments)-Ui,L=Hc(N-P),w=N>P;if(l||(l=g=c()),Sbn))l.moveTo(0,0);else if(L>zi-bn)l.moveTo(S*jr(P),S*rr(P)),l.arc(0,0,S,P,N,!w),m>bn&&(l.moveTo(m*jr(N),m*rr(N)),l.arc(0,0,m,N,P,w));else{var X=P,W=N,H=P,k=N,K=L,at=L,ht=s.apply(this,arguments)/2,$t=ht>bn&&(a?+a.apply(this,arguments):oa(m*m+S*S)),dt=fs(Hc(S-m)/2,+n.apply(this,arguments)),st=dt,Vt=dt,vt,Q;if($t>bn){var St=Yc($t/m*rr(ht)),ct=Yc($t/S*rr(ht));(K-=St*2)>bn?(St*=w?1:-1,H+=St,k-=St):(K=0,H=k=(P+N)/2),(at-=ct*2)>bn?(ct*=w?1:-1,X+=ct,W-=ct):(at=0,X=W=(P+N)/2)}var At=S*jr(X),Gt=S*rr(X),Bt=m*jr(k),Kt=m*rr(k);if(dt>bn){var ne=S*jr(W),le=S*rr(W),be=m*jr(H),Oe=m*rr(H),Ce;if(Lbn?Vt>bn?(vt=Ki(be,Oe,At,Gt,S,Vt,w),Q=Ki(ne,le,Bt,Kt,S,Vt,w),l.moveTo(vt.cx+vt.x01,vt.cy+vt.y01),Vtbn)||!(K>bn)?l.lineTo(Bt,Kt):st>bn?(vt=Ki(Bt,Kt,ne,le,m,-st,w),Q=Ki(At,Gt,be,Oe,m,-st,w),l.lineTo(vt.cx+vt.x01,vt.cy+vt.y01),ste in t?cx(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,gx=(t,e)=>{for(var n in e||(e={}))dx.call(e,n)&&Uu(t,n,e[n]);if(Bu)for(var n of Bu(e))hx.call(e,n)&&Uu(t,n,e[n]);return t},vx=(t,e)=>ux(t,fx(e));function zu(t=0){const e=this,{config:n,state:a}=e,i=e.hasMultiArcGauge(),o=a.gaugeArcWidth/e.filterTargetsToShow(e.data.targets).length,s=t?Math.min(a.radiusExpanded*t-a.radius,o*.8-(1-t)*100):0;return{inner(l){const{innerRadius:c}=e.getRadius(l);return i?a.radius-o*(l.index+1):he(c)?c:0},outer(l){const{outerRadius:c}=e.getRadius(l);let f;if(i)f=a.radius-o*l.index+s;else if(e.hasType("polar")&&!t)f=e.getPolarOuterRadius(l,c);else if(f=c,t){let{radiusExpanded:g}=a;a.radius!==c&&(g-=Math.abs(a.radius-c)),f=g*t}return f},corner(l,c){const{arc_cornerRadius_ratio:f=0,arc_cornerRadius:g=0}=n,{data:{id:v},value:m}=l;let S=0;return f?S=f*c:S=he(g)?g:g.call(e.api,v,m,c),S}}}function bs(t){return function(e){const n=({startAngle:i=0,endAngle:o=0,padAngle:s=0})=>({startAngle:i,endAngle:o,padAngle:s}),a=Qr(n(this._current),n(e));return this._current=e,function(i){const o=a(i),{data:s,index:l,value:c}=e;return t(vx(gx({},o),{data:s,index:l,value:c}))}}}var px={initPie(){const t=this,{config:e}=t,n=e.data_type,a=e[`${n}_padding`],i=e[`${n}_startingAngle`]||0,o=(a?a*.01:e[`${n}_padAngle`])||0;t.pie=qy().startAngle(i).endAngle(i+2*Math.PI).padAngle(o).value(s=>{var l,c;return(c=(l=s.values)==null?void 0:l.reduce((f,g)=>f+g.value,0))!=null?c:s}).sort(t.getSortCompareFn.bind(t)(!0))},updateRadius(){const t=this,{config:e,state:n}=t,a=e.data_type,i=e[`${a}_padding`],o=e.gauge_width||e.donut_width,s=t.filterTargetsToShow(t.data.targets).length*e.gauge_arcs_minWidth;n.radiusExpanded=Math.min(n.arcWidth,n.arcHeight)/2*(t.hasMultiArcGauge()&&e.gauge_label_show?.85:1),n.radius=n.radiusExpanded*.95,n.innerRadiusRatio=o?(n.radius-o)/n.radius:.6,n.gaugeArcWidth=o||(s<=n.radius-n.innerRadius?n.radius-n.innerRadius:s<=n.radius?s:n.radius);const l=e.pie_innerRadius||(i?i*(n.innerRadiusRatio+.1):0);n.outerRadius=e.pie_outerRadius,n.innerRadius=t.hasType("donut")||t.hasType("gauge")?n.radius*n.innerRadiusRatio:l},getRadius(t){const e=this,n=t==null?void 0:t.data;let{innerRadius:a,outerRadius:i}=e.state;return!he(a)&&n&&(a=a[n.id]||0),Be(i)&&n&&n.id in i?i=i[n.id]:he(i)||(i=e.state.radius),{innerRadius:a,outerRadius:i}},updateArc(){const t=this;t.updateRadius(),t.svgArc=t.getSvgArc(),t.svgArcExpanded=t.getSvgArcExpanded()},getArcLength(){const t=this,{config:e}=t,n=e.gauge_arcLength*3.6;let a=2*(n/360);return n<-360?a=-2:n>360&&(a=2),a*Math.PI},getStartingAngle(){const t=this,{config:e}=t,n=e.data_type,a=t.hasType("gauge")?e.gauge_fullCircle:!1,i=-1*Math.PI/2,o=Math.PI/2;let s=e[`${n}_startingAngle`]||0;return!a&&s<=i?s=i:!a&&s>=o?s=o:(s>Math.PI||s<-1*Math.PI)&&(s=Math.PI),s},updateAngle(t,e=!1){var n;const a=this,{config:i,state:o}=a,s=e&&a.hasType("gauge");let{pie:l}=a,c=t,f=!1;if(!i)return null;const g=a.getStartingAngle(),v=i.gauge_fullCircle||e&&!s?a.getArcLength():g*-2;if(c.data&&a.isGaugeType(c.data)&&!a.hasMultiArcGauge()){const{gauge_min:m,gauge_max:S}=i,P=a.getTotalDataSum(o.rendered),N=v*((P-m)/(S-m));l=l.startAngle(g).endAngle(N+g)}if(e===!1&&l(a.filterTargetsToShow()).forEach((m,S)=>{var P;!f&&m.data.id===((P=c.data)==null?void 0:P.id)&&(f=!0,c=m,c.index=S)}),isNaN(c.startAngle)&&(c.startAngle=0),isNaN(c.endAngle)&&(c.endAngle=c.startAngle),e||c.data&&(i.gauge_enforceMinMax||a.hasMultiArcGauge())){const{gauge_min:m,gauge_max:S}=i,P=e&&!s?a.getTotalDataSum(o.rendered):S,N=v/(P-m),L=(n=c.value)!=null?n:0,w=L{const l=e.updateAngle(s),c=a(l);let f=0;return l&&(f=i(l,c)),l?o.cornerRadius(f)(l):"M 0 0"}},getArc(t,e,n){return n||this.isArcType(t.data)?this.svgArc(t,e):"M 0 0"},redrawArcRangeText(){const t=this,{config:e,$el:{arcs:n},state:a,$T:i}=t,o=e.arc_rangeText_format,s=t.hasType("gauge")&&e.arc_rangeText_fixed;let l=e.arc_rangeText_values;if(l!=null&&l.length){const c=e.arc_rangeText_unit==="%",f=t.getTotalDataSum(a.rendered);c&&(l=l.map(m=>f/100*m));const g=t.pie(l).map((m,S)=>(m.index=S,m));let v=n.selectAll(`.${Ve.arcRange}`).data(l);v.exit(),v=i(v.enter().append("text").attr("class",Ve.arcRange).style("text-anchor","middle").style("pointer-events","none").style("opacity","0").text(m=>{const S=c?m/f*100:m;return ve(o)?o(S):`${S}${c?"%":""}`}).merge(v)),(!a.rendered||a.rendered&&!s)&&f>0&&v.attr("transform",(m,S)=>t.transformForArcLabel(g[S],!0)),v.style("opacity",m=>!s&&(m>f||f===0)?"0":null)}},transformForArcLabel(t,e=!1){var n,a,i;const o=this,{config:s,state:{radiusExpanded:l}}=o,c=o.updateAngle(t,e);let f="";if(c){if(e||o.hasMultiArcGauge()){const g=Math.sin(c.endAngle-Math.PI/2),v=s.arc_rangeText_position;let m=Math.cos(c.endAngle-Math.PI/2)*(l+(e?5:25)),S=g*(l+15-Math.abs(g*10))+3;if(e&&v){const P=s.arc_rangeText_values,N=ve(v)?v(P[t.index]):v;m+=(n=N==null?void 0:N.x)!=null?n:0,S+=(a=N==null?void 0:N.y)!=null?a:0}f=`translate(${m},${S})`}else if(!o.hasType("gauge")||o.data.targets.length>1){let{outerRadius:g}=o.getRadius(t);o.hasType("polar")&&(g=o.getPolarOuterRadius(t,g));const v=this.svgArc.centroid(c),[m,S]=v.map(L=>isNaN(L)?0:L),P=Math.sqrt(m*m+S*S);let N=(i=["donut","gauge","pie","polar"].filter(o.hasType.bind(o)).map(L=>s[`${L}_label_ratio`]))==null?void 0:i[0];N?N=ve(N)?N.bind(o.api)(t,g,P):N:N=g&&(P?(36/g>.375?1.175-36/g:.8)*g/P:0),f=`translate(${m*N},${S*N})`}}return f},convertToArcData(t){return this.addName({id:"data"in t?t.data.id:t.id,value:t.value,ratio:this.getRatio("arc",t),index:t.index})},textForArcLabel(t){const e=this,n=e.hasType("gauge");e.shouldShowArcLabel()&&t.style("fill",e.updateTextColor.bind(e)).attr("filter",a=>e.updateTextBGColor.bind(e)(a,e.config.data_labels_backgroundColors)).each(function(a){var i;const o=ot(this),s=e.updateAngle(a),l=e.getRatio("arc",s);if(e.meetsLabelThreshold(l,(i=["donut","gauge","pie","polar"].filter(e.hasType.bind(e)))==null?void 0:i[0])){const{value:f}=s||a,g=(e.getArcLabelFormat()||e.defaultArcValueFormat)(f,l,a.data.id).toString();wa(o,g,[-1,1],n)}else o.text("")})},expandArc(t){const e=this,{state:{transiting:n},$el:a}=e;if(n){const o=setInterval(()=>{n||(clearInterval(o),a.legend.selectAll(`.${qe.legendItemFocused}`).size()>0&&e.expandArc(t))},10);return}const i=e.mapToTargetIds(t);a.svg.selectAll(e.selectorTargets(i,`.${Ve.chartArc}`)).each(function(o){if(!e.shouldExpand(o.data.id))return;const s=e.getExpandConfig(o.data.id,"duration"),l=e.getSvgArcExpanded(e.getExpandConfig(o.data.id,"rate"));ot(this).selectAll("path").transition().duration(s).attrTween("d",bs(e.svgArcExpanded.bind(e))).transition().duration(s*2).attrTween("d",bs(l.bind(e)))})},unexpandArc(t){const e=this,{state:{transiting:n},$el:{svg:a}}=e;if(n)return;const i=e.mapToTargetIds(t);a.selectAll(e.selectorTargets(i,`.${Ve.chartArc}`)).selectAll("path").transition().duration(o=>e.getExpandConfig(o.data.id,"duration")).attrTween("d",bs(e.svgArc.bind(e))),a.selectAll(`${Ve.arc}`).style("opacity",null)},getExpandConfig(t,e){const n=this,{config:a}=n,i={duration:50,rate:.98};let o;return n.isDonutType(t)?o="donut":n.isGaugeType(t)?o="gauge":n.isPieType(t)&&(o="pie"),o?a[`${o}_expand_${e}`]:i[e]},shouldExpand(t){const e=this,{config:n}=e;return e.isDonutType(t)&&n.donut_expand||e.isGaugeType(t)&&n.gauge_expand||e.isPieType(t)&&n.pie_expand},shouldShowArcLabel(){const t=this,{config:e}=t;return["donut","gauge","pie","polar"].some(n=>t.hasType(n)&&e[`${n}_label_show`])},getArcLabelFormat(){const t=this,{config:e}=t;let n=a=>a;return["donut","gauge","pie","polar"].filter(t.hasType.bind(t)).forEach(a=>{n=e[`${a}_label_format`]}),ve(n)?n.bind(t.api):n},updateTargetsForArc(t){const e=this,{$el:n}=e,a=e.hasType("gauge"),i=e.getChartClass("Arc"),o=e.getClass("arcs",!0),s=e.classFocus.bind(e),l=n.main.select(`.${Ve.chartArcs}`),c=l.selectAll(`.${Ve.chartArc}`).data(e.pie(t)).attr("class",g=>i(g)+s(g.data)),f=c.enter().append("g").attr("class",i).call(this.setCssRule(!1,`.${Ve.chartArcs} text`,["pointer-events:none","text-anchor:middle"]));f.append("g").attr("class",o).merge(c),f.append("text").attr("dy",a&&!e.hasMultiTargets()?"-.1em":".35em").style("opacity","0").style("text-anchor",e.getStylePropValue("middle")).style("pointer-events",e.getStylePropValue("none")),n.text=l.selectAll(`.${Se.target} text`)},initArc(){const t=this,{$el:e}=t;e.arcs=e.main.select(`.${Se.chart}`).append("g").attr("class",Ve.chartArcs).attr("transform",t.getTranslate("arc")),t.setArcTitle()},setArcTitle(t){const e=this,n=t||e.getArcTitle(),a=e.hasType("gauge");if(n){const i=a?Un.chartArcsGaugeTitle:Ve.chartArcsTitle;let o=e.$el.arcs.select(`.${i}`);o.empty()&&(o=e.$el.arcs.append("text").attr("class",i).style("text-anchor","middle")),a&&o.attr("dy","-0.3em"),wa(o,n,a?void 0:[-.6,1.35],!0)}},getArcTitle(){const t=this,e=t.hasType("donut")&&"donut"||t.hasType("gauge")&&"gauge";return e?t.config[`${e}_title`]:""},getArcTitleWithNeedleValue(){const t=this,{config:e,state:n}=t,a=t.getArcTitle();if(a&&t.config.arc_needle_show&&/{=[A-Z_]+}/.test(a)){let i=n.current.needle;return he(i)||(i=e.arc_needle_value),bi(a,{NEEDLE_VALUE:he(i)?i:0})}return!1},redrawArc(t,e,n){const a=this,{config:i,state:o,$el:{main:s}}=a,l=i.interaction_enabled,c=l&&i.data_selection_isselectable;let f=s.selectAll(`.${Ve.arcs}`).selectAll(`.${Ve.arc}`).data(a.arcData.bind(a));f.exit().transition().duration(e).style("opacity","0").remove(),f=f.enter().append("path").attr("class",a.getClass("arc",!0)).style("fill",g=>a.color(g.data)).style("cursor",g=>{var v;return(v=c==null?void 0:c.bind)!=null&&v.call(c,a.api)(g)?"pointer":null}).style("opacity","0").each(function(g){a.isGaugeType(g.data)&&(g.startAngle=i.gauge_startingAngle,g.endAngle=i.gauge_startingAngle),this._current=g}).merge(f),a.hasType("gauge")&&(a.updateGaugeMax(),a.hasMultiArcGauge()&&a.redrawArcGaugeLine()),f.attr("transform",g=>!a.isGaugeType(g.data)&&n?"scale(0)":"").style("opacity",function(g){return g===this._current?"0":null}).each(()=>{o.transiting=!0}).transition().duration(t).attrTween("d",function(g){const v=a.updateAngle(g);if(!v)return()=>"M 0 0";isNaN(this._current.startAngle)&&(this._current.startAngle=0),isNaN(this._current.endAngle)&&(this._current.endAngle=this._current.startAngle);const m=Qr(this._current,v);return this._current=m(0),function(S){const P=m(S);return P.data=g.data,a.getArc(P,!0)}}).attr("transform",n?"scale(1)":"").style("fill",g=>{let v;return a.levelColor?(v=a.levelColor(g.data.values[0].value),i.data_colors[g.data.id]=v):v=a.color(g.data),v}).style("opacity",null).call(Si,function(){if(a.levelColor){const g=ot(this),v=g.datum(this._current);a.updateLegendItemColor(v.data.id,g.style("fill"))}o.transiting=!1,_e(i.onrendered,a.api)}),l&&a.bindArcEvent(f),a.hasType("polar")&&a.redrawPolar(),a.hasType("gauge")&&a.redrawBackgroundArcs(),i.arc_needle_show&&a.redrawNeedle(),a.redrawArcText(t),a.redrawArcRangeText()},redrawNeedle(){const t=this,{$el:e,config:n,state:{hiddenTargetIds:a,radius:i}}=t,o=(i-1)/100*n.arc_needle_length,s=a.length!==t.data.targets.length;let l=t.$el.arcs.select(`.${Ve.needle}`);const c=n.arc_needle_path,f=n.arc_needle_bottom_width/2,g=n.arc_needle_top_width/2,v=n.arc_needle_top_rx,m=n.arc_needle_top_ry,S=n.arc_needle_bottom_len,P=n.arc_needle_bottom_rx,N=n.arc_needle_bottom_ry,L=t.getNeedleAngle(),w=()=>{const X=t.getArcTitleWithNeedleValue();X&&t.setArcTitle(X)};if(w(),l.empty()&&(l=e.arcs.append("path").classed(Ve.needle,!0),e.needle=l,e.needle.updateHelper=(X,W=!1)=>{e.needle.style("display")!=="none"&&t.$T(e.needle).style("transform",`rotate(${t.getNeedleAngle(X)}deg)`).call(Si,()=>{W&&(n.arc_needle_value=X),w()})}),s){const X=ve(c)?c.call(t,o):`M-${f} ${S} A${P} ${N} 0 0 0 ${f} ${S} L${g} -${o} A${v} ${m} 0 0 0 -${g} -${o} L-${f} ${S} Z`;t.$T(l).attr("d",X).style("fill",n.arc_needle_color).style("display",null).style("transform",`rotate(${L}deg)`)}else l.style("display","none")},getNeedleAngle(t){const e=this,{config:n,state:a}=e,i=e.getArcLength(),o=e.hasType("gauge"),s=e.getTotalDataSum(!0);let l=Qe(t)?t:n.arc_needle_value,c=n[`${n.data_type}_startingAngle`]||0,f=0;if(he(l)||(l=o&&e.data.targets.length===1?s:0),a.current.needle=l,o){c=e.getStartingAngle();const g=n.gauge_fullCircle?i:c*-2,{gauge_min:v,gauge_max:m}=n;f=g*((l-v)/(m-v))}else f=i*(l/s);return(c+f)*(180/Math.PI)},redrawBackgroundArcs(){const t=this,{config:e,state:n}=t,a=t.hasMultiArcGauge(),i=e.gauge_fullCircle,o=t.filterTargetsToShow(t.data.targets).length===0&&!!e.data_empty_label_text,s=t.getStartingAngle(),l=i?s+t.getArcLength():s*-1;let c=t.$el.arcs.select(`${a?"g":""}.${Ve.chartArcsBackground}`);if(a){let f=0;c=c.selectAll(`path.${Ve.chartArcsBackground}`).data(t.data.targets),c.enter().append("path").attr("class",(g,v)=>`${Ve.chartArcsBackground} ${Ve.chartArcsBackground}-${v}`).merge(c).style("fill",e.gauge_background||null).attr("d",({id:g})=>{if(o||n.hiddenTargetIds.indexOf(g)>=0)return"M 0 0";const v={data:[{value:e.gauge_max}],startAngle:s,endAngle:l,index:f++};return t.getArc(v,!0,!0)}),c.exit().remove()}else c.attr("d",o?"M 0 0":()=>{const f={data:[{value:e.gauge_max}],startAngle:s,endAngle:l};return t.getArc(f,!0,!0)})},bindArcEvent(t){const e=this,{config:n,state:a}=e,i=a.inputType==="touch",o=a.inputType==="mouse";function s(c,f,g){e.expandArc(g),e.api.focus(g),e.toggleFocusLegend(g,!0),e.showTooltip([f],c)}function l(c){const f=(c==null?void 0:c.id)||void 0;e.unexpandArc(f),e.api.revert(),e.revertLegend(),e.hideTooltip()}if(t.on("click",function(c,f,g){var v;const m=e.updateAngle(f);let S;m&&(S=e.convertToArcData(m),(v=e.toggleShape)==null||v.call(e,this,S,g),n.data_onclick.bind(e.api)(S,this))}),o&&t.on("mouseover",function(c,f){if(a.transiting)return;a.event=c;const g=e.updateAngle(f),v=g?e.convertToArcData(g):null,m=(v==null?void 0:v.id)||void 0;s(this,v,m),e.setOverOut(!0,v)}).on("mouseout",(c,f)=>{if(a.transiting||!n.interaction_onout)return;a.event=c;const g=e.updateAngle(f),v=g?e.convertToArcData(g):null;l(),e.setOverOut(!1,v)}).on("mousemove",function(c,f){const g=e.updateAngle(f),v=g?e.convertToArcData(g):null;a.event=c,e.showTooltip([v],this)}),i&&e.hasArcType()&&!e.radars){const c=f=>{var g,v;const{clientX:m,clientY:S}=(v=(g=f.changedTouches)==null?void 0:g[0])!=null?v:{clientX:0,clientY:0};return ot(gn.elementFromPoint(m,S))};e.$el.svg.on("touchstart touchmove",function(f){if(a.transiting)return;a.event=f;const v=c(f).datum(),m=v!=null&&v.data&&v.data.id?e.updateAngle(v):null,S=m?e.convertToArcData(m):null,P=(S==null?void 0:S.id)||void 0;e.callOverOutForTouch(S),ln(P)?l():s(this,S,P)})}},redrawArcText(t){const e=this,{config:n,state:a,$el:{main:i,arcs:o}}=e,s=e.hasType("gauge"),l=e.hasMultiArcGauge();let c;if(s&&e.data.targets.length===1&&n.gauge_title||(c=i.selectAll(`.${Ve.chartArc}`).select("text").style("opacity","0").attr("class",f=>e.isGaugeType(f.data)?Un.gaugeValue:null).call(e.textForArcLabel.bind(e)).attr("transform",f=>e.transformForArcLabel.bind(e)(f)).style("font-size",f=>e.isGaugeType(f.data)&&e.data.targets.length===1&&!l?`${Math.round(a.radius/5)}px`:null).transition().duration(t).style("opacity",f=>e.isTargetToShow(f.data.id)&&e.isArcType(f.data)?null:"0"),l&&c.attr("dy","-.1em")),i.select(`.${Ve.chartArcsTitle}`).style("opacity",e.hasType("donut")||s?null:"0"),s){const f=n.gauge_fullCircle;f&&(c==null||c.attr("dy",`${l?0:Math.round(a.radius/14)}`)),n.gauge_label_show&&(o.select(`.${Un.chartArcsGaugeUnit}`).attr("dy",`${f?1.5:.75}em`).text(n.gauge_units),o.select(`.${Un.chartArcsGaugeMin}`).attr("dx",`${-1*(a.innerRadius+(a.radius-a.innerRadius)/(f?1:2))}px`).attr("dy","1.2em").text(e.textForGaugeMinMax(n.gauge_min,!1)),!f&&o.select(`.${Un.chartArcsGaugeMax}`).attr("dx",`${a.innerRadius+(a.radius-a.innerRadius)/2}px`).attr("dy","1.2em").text(e.textForGaugeMinMax(n.gauge_max,!0)))}},getArcElementByIdOrIndex(t){const e=this,{$el:{arcs:n}}=e,a=he(t)?i=>i.index===t:i=>i.data.id===t;return n==null?void 0:n.selectAll(`.${Se.target} path`).filter(a)}};function ju(t){return t[0]}function Vu(t){return t[1]}function Gu(t,e){var n=Le(!0),a=null,i=gs,o=null,s=Es(l);t=typeof t=="function"?t:t===void 0?ju:Le(t),e=typeof e=="function"?e:e===void 0?Vu:Le(e);function l(c){var f,g=(c=$s(c)).length,v,m=!1,S;for(a==null&&(o=i(S=s())),f=0;f<=g;++f)!(f=S;--P)l.point(W[P],H[P]);l.lineEnd(),l.areaEnd()}w&&(W[m]=+t(L,m,v),H[m]=+e(L,m,v),l.point(a?+a(L,m,v):W[m],n?+n(L,m,v):H[m]))}if(X)return l=null,X+""||null}function g(){return Gu().defined(i).curve(s).context(o)}return f.x=function(v){return arguments.length?(t=typeof v=="function"?v:Le(+v),a=null,f):t},f.x0=function(v){return arguments.length?(t=typeof v=="function"?v:Le(+v),f):t},f.x1=function(v){return arguments.length?(a=v==null?null:typeof v=="function"?v:Le(+v),f):a},f.y=function(v){return arguments.length?(e=typeof v=="function"?v:Le(+v),n=null,f):e},f.y0=function(v){return arguments.length?(e=typeof v=="function"?v:Le(+v),f):e},f.y1=function(v){return arguments.length?(n=v==null?null:typeof v=="function"?v:Le(+v),f):n},f.lineX0=f.lineY0=function(){return g().x(t).y(e)},f.lineY1=function(){return g().x(t).y(n)},f.lineX1=function(){return g().x(a).y(e)},f.defined=function(v){return arguments.length?(i=typeof v=="function"?v:Le(!!v),f):i},f.curve=function(v){return arguments.length?(s=v,o!=null&&(l=s(o)),f):s},f.context=function(v){return arguments.length?(v==null?o=l=null:l=s(o=v),f):o},f}var sa={initArea(t){const e=this,{config:n}=e;t.insert("g",`.${n.area_front?$n.circles:ur.lines}`).attr("class",e.getClass("areas",!0))},updateAreaColor(t){const e=this;return e.config.area_linearGradient?e.getGradienColortUrl(t.id):e.color(t)},updateArea(t,e=!1){const n=this,{config:a,state:i,$el:o,$T:s}=n,l=e?o.subchart:o;a.area_linearGradient&&n.updateLinearGradient();const c=l.main.selectAll(`.${ti.areas}`).selectAll(`.${ti.area}`).data(n.lineData.bind(n));s(c.exit(),t).style("opacity","0").remove(),l.area=c.enter().append("path").attr("class",n.getClass("area",!0)).style("fill",n.updateAreaColor.bind(n)).style("opacity",function(){return i.orgAreaOpacity=ot(this).style("opacity"),"0"}).merge(c),c.style("opacity",i.orgAreaOpacity),n.setRatioForGroupedData(l.area.data())},redrawArea(t,e,n=!1){const a=this,{area:i}=n?this.$el.subchart:this.$el,{orgAreaOpacity:o}=a.state;return[a.$T(i,e,gr()).attr("d",t).style("fill",a.updateAreaColor.bind(a)).style("opacity",s=>String(a.isAreaRangeType(s)?o/1.75:o))]},generateDrawArea(t,e){const n=this,{config:a}=n,i=a.line_connectNull,o=a.axis_rotated,s=n.generateGetAreaPoints(t,e),l=n.getYScaleById.bind(n),c=v=>(e?n.subxx:n.xx).call(n,v),f=(v,m)=>n.isGrouped(v.id)?s(v,m)[0][1]:l(v.id,e)(n.isAreaRangeType(v)?n.getRangedData(v,"high"):n.getShapeYMin(v.id)),g=(v,m)=>n.isGrouped(v.id)?s(v,m)[1][1]:l(v.id,e)(n.isAreaRangeType(v)?n.getRangedData(v,"low"):v.value);return v=>{let m=i?n.filterRemoveNull(v.values):v.values,S=0,P=0,N;if(n.isAreaType(v)){let L=mx();L=o?L.y(c).x0(f).x1(g):L.x(c).y0(a.area_above?0:a.area_below?n.state.height:f).y1(g),i||(L=L.defined(w=>n.getBaseValue(w)!==null)),n.isStepType(v)&&(m=n.convertValuesToStep(m)),N=L.curve(n.getCurve(v))(m)}else m[0]&&(S=n.scale.x(m[0].x),P=n.getYScaleById(v.id)(m[0].value)),N=o?`M ${P} ${S}`:`M ${S} ${P}`;return N||"M 0 0"}},generateGetAreaPoints(t,e){const n=this,{config:a}=n,i=n.getShapeX(0,t,e),o=n.getShapeY(!!e),s=n.getShapeOffset(n.isAreaType,t,e),l=n.getYScaleById.bind(n);return function(c,f){const g=l.call(n,c.id,e)(n.getShapeYMin(c.id)),v=s(c,f)||g,m=i(c),S=c.value;let P=o(c);return a.axis_rotated&&(S>0&&Pg.values.some(v=>he(v.value)||e.isBarRangeType(v)))).attr("class",g=>i(g)+s(g)).enter().append("g").attr("class",i).style("opacity","0").style("pointer-events",e.getStylePropValue("none")).append("g").attr("class",o).style("cursor",g=>{var v;return(v=l==null?void 0:l.bind)!=null&&v.call(l,e.api)(g)?"pointer":null}).call(e.setCssRule(!0,` .${Kn.bar}`,["fill"],e.color))},updateBar(t,e=!1){const n=this,{config:a,$el:i,$T:o}=n,s=e?i.subchart:i,l=n.getClass("bar",!0),c=n.initialOpacity.bind(n);a.bar_linearGradient&&n.updateLinearGradient();const f=s.main.selectAll(`.${Kn.bars}`).selectAll(`.${Kn.bar}`).data(n.labelishData.bind(n));o(f.exit(),t).style("opacity","0").remove(),s.bar=f.enter().append("path").attr("class",l).style("fill",n.updateBarColor.bind(n)).merge(f).style("opacity",c),n.setRatioForGroupedData(s.bar.data())},updateBarColor(t){const e=this,n=e.getStylePropValue(e.color);return e.config.bar_linearGradient?e.getGradienColortUrl(t.id):n?n(t):null},redrawBar(t,e,n=!1){const a=this,{bar:i}=n?a.$el.subchart:a.$el;return[a.$T(i,e,gr()).attr("d",o=>(he(o.value)||a.isBarRangeType(o))&&t(o)).style("fill",a.updateBarColor.bind(a)).style("clip-path",o=>o.clipPath).style("opacity",null)]},generateDrawBar(t,e){const n=this,{config:a}=n,i=n.generateGetBarPoints(t,e),o=a.axis_rotated,s=a.bar_radius,l=a.bar_radius_ratio,c=he(s)&&s>0?()=>s:he(l)?f=>f*l:null;return(f,g)=>{const v=i(f,g),m=+o,S=+!m,P=f.value<0,N=a[`axis_${n.axis.getId(f.id)}_inverted`],L=!N&&P||N&&!P,w=["",""],X=n.isGrouped(f.id),W=c&&X?n.isStackingRadiusData(f):!1,H=[v[0][m],v[0][S]];let k=0;if(f.clipPath=null,c){const ht=o?S:m,$t=v[2][ht]-v[0][ht];k=!X||W?c($t):0;const dt=`a${k} ${k} ${L?"1 0 0":"0 0 1"} `;w[+!o]=`${dt}${k},${k}`,w[+o]=`${dt}${[-k,k][o?"sort":"reverse"]()}`,L&&w.reverse()}const K=o?v[1][m]+(L?k:-k):v[1][S]+(L?-k:k);if(k){let ht="";o?L&&H[0]K&&(ht=`0 0 0 ${H[0]-K}px`):L&&H[1]>K?ht=`${H[1]-K}px 0 0 0`:!L&&H[1]-1){const m=n.bar.filter(S=>S.id===s&&S.value===c);return!m.empty()&&/a\d+/i.test(m.attr("d"))}const f=a.data_groups.find(m=>m.indexOf(s)>-1),v=e.orderTargets(e.filterTargetsToShow(i.targets.filter(e.isBarType,e))).filter(m=>f.indexOf(m.id)>-1).map(m=>m.values.filter(S=>S.index===l&&(he(c)&&c>0?S.value>0:S.value<0))[0]).filter(Boolean).map(m=>m.id);return c!==0&&v.indexOf(s)===v.length-1},generateGetBarPoints(t,e){const n=this,{config:a}=n,i=e?n.axis.subX:n.axis.x,o=n.getIndicesMax(t)+1,s=n.getBarW("bar",i,o),l=n.getShapeX(s,t,!!e),c=n.getShapeY(!!e),f=n.getShapeOffset(n.isBarType,t,!!e),g=n.getYScaleById.bind(n);return(v,m)=>{const{id:S}=v,P=g.call(n,S,e)(n.getShapeYMin(S)),N=f(v,m)||P,L=he(s)?s:s[v.id]||s._$width,w=a[`axis_${n.axis.getId(S)}_inverted`],X=v.value,W=l(v);let H=c(v);a.axis_rotated&&!w&&(X>0&&He.isBubbleZType(s)?e.getBubbleZData(s.value,"y"):Be(s.value)?s.value.mid:s.value)),i=n*n*Math.PI,o=(e.isBubbleZType(t)?e.getBubbleZData(t.value,"z"):t.value)*(i/a);return Math.sqrt(o/Math.PI)},getBubbleZData(t,e){return Be(t)?t[e]:t[e==="y"?0:1]}},Tx=Object.defineProperty,Xu=Object.getOwnPropertySymbols,$x=Object.prototype.hasOwnProperty,Sx=Object.prototype.propertyIsEnumerable,Hu=(t,e,n)=>e in t?Tx(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Ax=(t,e)=>{for(var n in e||(e={}))$x.call(e,n)&&Hu(t,n,e[n]);if(Xu)for(var n of Xu(e))Sx.call(e,n)&&Hu(t,n,e[n]);return t},Ex={initCandlestick(){const{$el:t}=this;t.candlestick=t.main.select(`.${Se.chart}`).append("g").attr("class",cr.chartCandlesticks)},updateTargetsForCandlestick(t){const e=this,{$el:n}=e,a=e.getChartClass("Candlestick");n.candlestick||e.initCandlestick(),e.$el.main.select(`.${cr.chartCandlesticks}`).selectAll(`.${cr.chartCandlestick}`).data(t).enter().append("g").attr("class",a).style("pointer-events","none")},updateCandlestick(t,e=!1){const n=this,{$el:a,$T:i}=n,o=e?a.subchart:a,s=n.getClass("candlestick",!0),l=n.initialOpacity.bind(n),c=o.main.selectAll(`.${cr.chartCandlestick}`).selectAll(`.${cr.candlestick}`).data(n.labelishData.bind(n));i(c.exit(),t).style("opacity","0").remove();const f=c.enter().filter(g=>g.value).append("g").attr("class",s);f.append("line"),f.append("path"),o.candlestick=c.merge(f).style("opacity",l)},generateDrawCandlestick(t,e){const n=this,{config:a}=n,i=n.generateGetCandlestickPoints(t,e),o=a.axis_rotated,s=a.candlestick_color_down;return(l,c,f)=>{const g=i(l,c),v=n.getCandlestickData(l),m=v==null?void 0:v._isUp,S=+o,P=+!S;f.classed&&f.classed(cr[m?"valueUp":"valueDown"],!0);const N=o?`H${g[1][1]} V${g[1][0]} H${g[0][1]}`:`V${g[1][1]} H${g[1][0]} V${g[0][1]}`;f.select("path").attr("d",`M${g[0][S]},${g[0][P]}${N}z`).style("fill",X=>(m?n.color(X):Be(s)?s[X.id]:s)||n.color(X));const L=f.select("line"),w=o?{x1:g[2][1],x2:g[2][2],y1:g[2][0],y2:g[2][0]}:{x1:g[2][0],x2:g[2][0],y1:g[2][1],y2:g[2][2]};for(const X in w)L.attr(X,w[X])}},generateGetCandlestickPoints(t,e=!1){const n=this,a=e?n.axis.subX:n.axis.x,i=n.getIndicesMax(t)+1,o=n.getBarW("candlestick",a,i),s=n.getShapeX(o,t,!!e),l=n.getShapeY(!!e),c=n.getShapeOffset(n.isBarType,t,!!e),f=n.getYScaleById.bind(n);return(g,v)=>{const m=f.call(n,g.id,e)(n.getShapeYMin(g.id)),S=c(g,v)||m,P=he(o)?o:o[g.id]||o._$width,N=n.getCandlestickData(g);let L;if(N&&he(N.open)&&he(N.close)){const w={start:s(g),end:0};w.end=w.start+P;const X={start:l(N.open),end:l(N.close)},W={x:w.start+P/2,high:l(N.high),low:l(N.low)};X.start-=m-S,L=[[w.start,X.start],[w.end,X.end],[W.x,W.low,W.high]]}else L=[[0,0],[0,0],[0,0,0]];return L}},redrawCandlestick(t,e,n=!1){const a=this,{$el:i,$T:o}=a,{candlestick:s}=n?i.subchart:i,l=gr(!0);return[s.each(function(c,f){const g=o(ot(this),e,l);t(c,f,g)}).style("opacity",null)]},getCandlestickData({value:t}){let e;if(je(t)){const[n,a,i,o,s=!1]=t;e={open:n,high:a,low:i,close:o},s!==!1&&(e.volume=s)}else Be(t)&&(e=Ax({},t));return e&&(e._isUp=e.close>=e.open),e||null}},bx=Object.defineProperty,Yu=Object.getOwnPropertySymbols,Rx=Object.prototype.hasOwnProperty,Ix=Object.prototype.propertyIsEnumerable,Wu=(t,e,n)=>e in t?bx(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Ox=(t,e)=>{for(var n in e||(e={}))Rx.call(e,n)&&Wu(t,n,e[n]);if(Yu)for(var n of Yu(e))Ix.call(e,n)&&Wu(t,n,e[n]);return t};function Zi(t=!1){const e=this,{config:n,state:{current:{width:a,height:i}}}=e,o=e.getCurrentPadding(),s=Ox({width:a-(o.left+o.right),height:i-(n.legend_show?e.getLegendHeight()+10:0)-(o.top+o.bottom)},o);if(t){const{width:l,height:c}=Ku.call(e,{width:s.width,height:s.height});s.width{let l=o;return Be(o)&&(l=t[s?"height":"width"]*o.ratio),l}),{width:a,height:i}}function Cx(t){const e=this,{top:n,left:a,width:i}=Zi.call(e,!0),o=[];return t.forEach((s,l)=>{const{ratio:c}=s,f=l>0?o[l-1][2][1]:n;o.push(s.coords=[[a,f],[a+i,f],[a+i,l>0?c+f:c+n],[a,l>0?c+f:c+n],[a,f]])}),o}function Zu(t=!1){const e=this,{width:n,height:a,top:i,left:o}=Zi.call(e,!0),s=Ku.call(e,{width:n,height:a}),l=(n-s.width)/2,c=(n+s.width)/2,f=a-s.height,g=[[0,0],[n,0],[c,f],[c,a],[l,a],[l,f],[0,0]];return t&&g.forEach(v=>{v[0]+=o,v[1]+=i}),`M${g.join("L")}z`}function Px(t){const e=this,{config:n}=e,a=t.map(i=>({id:i.id,value:i.values.reduce((o,s)=>o+s.value,0)}));return n.data_order&&a.sort(e.getSortCompareFn.bind(e)(!0)),Ju.call(e,a)}function Ju(t){const e=this,{height:n}=Zi.call(e),a=e.getTotalDataSum(!0);return t.forEach(i=>{i.ratio=i.value/a*n}),t}var wx={initFunnel(){const t=this,{$el:e}=t;e.funnel=e.main.select(`.${Se.chart}`).append("g").classed(Ta.chartFunnels,!0),e.funnel.background=e.funnel.append("path").classed(Ta.funnelBackground,!0),t.bindFunnelEvent()},bindFunnelEvent(){const t=this,{$el:{funnel:e},config:n,state:a}=t,i=o=>{var s;const l=o.isTrusted?o.target:(s=a.eventReceiver.rect)==null?void 0:s.node();let c;return/^path$/i.test(l.tagName)&&(a.event=o,c=ot(l).datum()),c};if(n.interaction_enabled){const o=a.inputType==="touch";e.on(o?"touchstart":"mouseover mousemove",s=>{const l=i(s);l&&(t.showTooltip([l],s.target),/^(touchstart|mouseover)$/.test(s.type)&&t.setOverOut(!0,l))}).on(o?"touchend":"mouseout",s=>{const l=i(s);n.interaction_onout&&(t.hideTooltip(),t.setOverOut(!1,l))})}},updateTargetsForFunnel(t){const e=this,{$el:{funnel:n}}=e,a=e.getChartClass("Funnel"),i=e.getClass("funnel",!0);n||e.initFunnel();const o=Px.call(e,t.filter(e.isFunnelType.bind(e))),s=n.selectAll(`.${Ta.chartFunnel}`).data(o);s.exit().remove();const l=s.enter().insert("g",`.${Ta.funnelBackground}`);l.append("path"),n.path=l.merge(s).attr("class",c=>a(c)).select("path").attr("class",i).style("opacity","0").style("fill",e.color)},updateFunnel(t){const e=this,{$el:{funnel:n}}=e,a=t.map(({id:i})=>i);n.path=n.path.filter(i=>a.indexOf(i.id)>=0)},generateGetFunnelPoints(){const t=this,{$el:{funnel:e}}=t,n=t.filterTargetsToShow(e.path),{top:a,left:i,right:o}=Zi.call(t),s=(i-o)/2,l={};let c=a!=null?a:0;return n.each((f,g)=>{var v;l[f.id]=[[s,c],[s,c+=((v=n==null?void 0:n[g])!=null?v:f).ratio]]}),f=>l[f.id]},redrawFunnel(){const t=this,{$T:e,$el:{funnel:n}}=t,a=t.filterTargetsToShow(n.path),i=Cx.call(t,Ju.call(t,a.data()));n.attr("clip-path",`path('${Zu.bind(t)()}')`),n.background.attr("d",Zu.call(t,!0)),e(a).attr("d",(o,s)=>`M${i[s].join("L")}z`).style("opacity","1"),n.selectAll("g").style("opacity",null)}},Mx={initGauge(){const t=this,{config:e,$el:{arcs:n}}=t,a=(i=null,o="")=>{n.append("text").attr("class",i).style("text-anchor","middle").style("pointer-events","none").text(o)};if(t.hasType("gauge")){const i=t.hasMultiArcGauge();n.append(i?"g":"path").attr("class",Ve.chartArcsBackground).style("fill",!i&&e.gauge_background||null),e.gauge_units&&a(Un.chartArcsGaugeUnit),e.gauge_label_show&&(a(Un.chartArcsGaugeMin),!e.gauge_fullCircle&&a(Un.chartArcsGaugeMax))}},updateGaugeMax(){const t=this,{config:e,state:n}=t,i=t.hasMultiArcGauge()?t.getMinMaxData().max[0].value:t.getTotalDataSum(n.rendered);!e.gauge_enforceMinMax&&i+e.gauge_min*(e.gauge_min>0?-1:1)>e.gauge_max&&(e.gauge_max=i-e.gauge_min)},redrawArcGaugeLine(){const t=this,{config:e,state:n,$el:a}=t,{hiddenTargetIds:i}=t.state,o=a.main.selectAll(`.${Ve.arcs}`).selectAll(`.${Ve.arcLabelLine}`).data(t.arcData.bind(t));o.enter().append("rect").attr("class",l=>`${Ve.arcLabelLine} ${Se.target} ${Se.target}-${l.data.id}`).merge(o).style("fill",l=>t.levelColor?t.levelColor(l.data.values[0].value):t.color(l.data)).style("display",e.gauge_label_show?null:"none").each(function(l){let c=0;const f=2;let g=0,v=0,m="";if(i.indexOf(l.data.id)<0){const S=t.updateAngle(l),P=n.gaugeArcWidth/t.filterTargetsToShow(t.data.targets).length*(S.index+1),N=S.endAngle-Math.PI/2,L=n.radius-P,w=N-(L===0?0:1/L);c=n.radiusExpanded-n.radius+P,g=Math.cos(w)*L,v=Math.sin(w)*L,m=`rotate(${N*180/Math.PI}, ${g}, ${v})`}ot(this).attr("x",g).attr("y",v).attr("width",c).attr("height",f).attr("transform",m).style("stroke-dasharray",`0, ${c+f}, 0`)})},textForGaugeMinMax(t,e){const n=this,{config:a}=n,i=a.gauge_label_extents;return ve(i)?i.bind(n.api)(t,e):t},getGaugeLabelHeight(){const{config:t}=this;return this.config.gauge_label_show&&!t.gauge_fullCircle?20:0},getPaddingBottomForGauge(){const t=this;return t.getGaugeLabelHeight()*(t.config.gauge_label_show?2:2.5)}};function Dx(t,e,n,a=!1){const i=t?[t,0]:n;for(let o=t||n.reduce((s,l)=>s+l);o<=e;)n.forEach(s=>{o+s<=e&&i.push(s),o+=s});return i.length%2!==0&&i.push(a?n[1]:0),{dash:i.join(" "),length:i.reduce((o,s)=>o+s,0)}}function Lx(t,e,n){const a=this,i=[],o="2 2";if(Qe(e)){const s=(l,c)=>ln(l)?c:n?Yn.call(a,l):l;for(let l=0,c;c=e[l];l++){const f=s(c.start,t[0].x),g=s(c.end,t[t.length-1].x),v=c.style||{dasharray:o};i[l]={start:f,end:g,style:v}}}return i}var Nx={initLine(){const{$el:t}=this;t.line=t.main.select(`.${Se.chart}`).append("g").attr("class",ur.chartLines).call(this.setCssRule(!1,`.${ur.chartLines}`,["pointer-events:none"]))},updateTargetsForLine(t){const e=this,{$el:{area:n,line:a,main:i}}=e,o=e.getChartClass("Line"),s=e.getClass("lines",!0),l=e.classFocus.bind(e);a||e.initLine();const c=t.filter(v=>!(e.isScatterType(v)||e.isBubbleType(v))),f=i.select(`.${ur.chartLines}`).selectAll(`.${ur.chartLine}`).data(c).attr("class",v=>o(v)+l(v)),g=f.enter().append("g").attr("class",o).style("opacity","0").style("pointer-events",e.getStylePropValue("none"));if(g.append("g").attr("class",s),e.hasTypeOf("Area")){const v=(!n&&g.empty()?f:g).filter(e.isAreaType.bind(e));e.initArea(v)}e.updateTargetForCircle(c,g)},updateLine(t,e=!1){const n=this,{format:{extraLineClasses:a},$el:i,$T:o}=n,s=e?i.subchart:i,l=s.main.selectAll(`.${ur.lines}`).selectAll(`.${ur.line}`).data(n.lineData.bind(n));o(l.exit(),t).style("opacity","0").remove(),s.line=l.enter().append("path").attr("class",c=>`${n.getClass("line",!0)(c)} ${a(c)||""}`).style("stroke",n.color).merge(l).style("opacity",n.initialOpacity.bind(n)).attr("transform",null)},redrawLine(t,e,n=!1){const a=this,{$el:i,$T:o}=a,{line:s}=n?i.subchart:i;return[o(s,e,gr()).attr("d",t).style("stroke",this.color).style("opacity",null)]},getCurve(t){const e=this;return e.config.axis_rotated&&e.isStepType(t)?a=>{const i=e.getInterpolate(t)(a);return i.orgPoint=i.point,i.pointRotated=function(o,s){this._point===1&&(this._point=2);const l=this._y*(1-this._t)+s*this._t;this._context.lineTo(this._x,l),this._context.lineTo(o,l),this._x=o,this._y=s},i.point=function(o,s){this._point===0?this.orgPoint(o,s):this.pointRotated(o,s)},i}:e.getInterpolate(t)},generateDrawLine(t,e){const n=this,{config:a,scale:i}=n,o=a.line_connectNull,s=a.axis_rotated,l=n.generateGetLinePoints(t,e),c=n.getYScaleById.bind(n),f=S=>(e?n.subxx:n.xx).call(n,S),g=(S,P)=>n.isGrouped(S.id)?l(S,P)[0][1]:c(S.id,e)(n.getBaseValue(S));let v=Gu();v=s?v.x(g).y(f):v.x(f).y(g),o||(v=v.defined(S=>n.getBaseValue(S)!==null));const m=e?i.subX:i.x;return S=>{const P=c(S.id,e);let N=o?n.filterRemoveNull(S.values):S.values,L=0,w=0,X;if(n.isLineType(S)){const W=a.data_regions[S.id];W?X=n.lineWithRegions(N,i.zoom||m,P,W):(n.isStepType(S)&&(N=n.convertValuesToStep(N)),X=v.curve(n.getCurve(S))(N))}else N[0]&&(L=m(N[0].x),w=P(N[0].value)),X=s?`M ${w} ${L}`:`M ${L} ${w}`;return X||"M 0 0"}},lineWithRegions(t,e,n,a){const i=this,{config:o}=i,s=o.axis_rotated,l=i.axis.isTimeSeries(),c="2 2",f=Lx.bind(i)(t,a,l),g=i.hasNullDataValue(t);let v,m,S,P;const N=s?dt=>n(dt.value):dt=>e(dt.x),L=s?dt=>e(dt.x):dt=>n(dt.value),w=dt=>`M${dt[0][0]},${dt[0][1]}L${dt[1][0]},${dt[1][1]}`,X=l?(dt,st,Vt,vt)=>{const Q=dt.x.getTime(),St=st.x-dt.x,ct=new Date(Q+St*Vt),At=new Date(Q+St*(Vt+vt)),Gt=s?[[n(m(Vt)),e(ct)],[n(m(Vt+S)),e(At)]]:[[e(ct),n(m(Vt))],[e(At),n(m(Vt+S))]];return w(Gt)}:(dt,st,Vt,vt)=>{const Q=e(st.x,!s),St=n(st.value,s),ct=Vt+vt,At=e(v(Vt),!s),Gt=n(m(Vt),s);let Bt=e(v(ct),!s),Kt=n(m(ct),s);Bt>Q&&(Bt=Q),dt.value>st.value&&(s?KtSt)&&(Kt=St);const ne=[[At,Gt],[Bt,Kt]];return s&&ne.forEach(le=>le.reverse()),w(ne)},W={x:i.axis.getAxisType("x"),y:i.axis.getAxisType("y")};let H="";const k=i.$el.line.filter(({id:dt})=>dt===t[0].id),K=k.clone().style("display","none"),at=(dt,st)=>dt.attr("d",st).node().getTotalLength(),ht={dash:[],lastLength:0};let $t=!1;for(let dt=0,st;st=t[dt];dt++){const Vt=t[dt-1],vt=Vt&&De(Vt.value);let Q=i.isWithinRegions(st.x,f);if(De(st.value)){if(ln(f)||!Q||!vt)H+=`${dt&&vt?"L":"M"}${N(st)},${L(st)}`;else if(vt)if(Q=((Q==null?void 0:Q.dasharray)||c).split(" ").map(Number),v=zr(W.x,Vt.x,st.x),m=zr(W.y,Vt.value,st.value),g){const St=e(st.x)-e(Vt.x),ct=n(st.value)-n(Vt.value),At=Math.sqrt(Math.pow(St,2)+Math.pow(ct,2));S=Q[0]/At,P=S*Q[1];for(let Gt=S;Gt<=1;Gt+=P)H+=X(Vt,st,Gt,S),Gt+P>=1&&(H+=X(Vt,st,1,0))}else{let St=[];if($t=st.x===t[t.length-1].x,l){const Bt=+Vt.x,Kt=new Date(Bt),ne=new Date(Bt+(+st.x-Bt));St=[[e(Kt),n(m(0))],[e(ne),n(m(1))]]}else St=[[e(v(0)),n(m(0))],[e(v(1)),n(m(1))]];s&&St.forEach(Bt=>Bt.reverse());const ct=at(K,H),At=at(K,H+=`L${St[1].join(",")}`),Gt=Dx(ct-ht.lastLength,At-ht.lastLength,Q,$t);ht.lastLength+=Gt.length,ht.dash.push(Gt.dash)}}}return ht.dash.length&&(!$t&&ht.dash.push(at(K,H)),K.remove(),k.attr("stroke-dasharray",ht.dash.join(" "))),H},isWithinRegions(t,e){for(let n=0,a;a=e[n];n++)if(a.startgr();var Ji={initialOpacityForCircle(t){const{config:e,state:{withoutFadeIn:n}}=this;let a=e.point_opacity;return ln(a)&&(a=this.getBaseValue(t)!==null&&n[t.id]?this.opacityForCircle(t):"0"),a},opacityForCircle(t){var e;const{config:n}=this;let a=n.point_opacity;return ln(a)&&(a=n.point_show&&!((e=this.isPointFocusOnly)!=null&&e.call(this))?null:"0",a=De(this.getBaseValue(t))?this.isBubbleType(t)||this.isScatterType(t)?"0.5":a:"0"),a},initCircle(){const t=this,{$el:{main:e}}=t;!t.point&&(t.point=t.generatePoint()),(t.hasType("bubble")||t.hasType("scatter"))&&e.select(`.${Se.chart} > .${$n.chartCircles}`).empty()&&e.select(`.${Se.chart}`).append("g").attr("class",$n.chartCircles)},updateTargetForCircle(t,e){const n=this,{config:a,data:i,$el:o}=n,s=a.interaction_enabled&&a.data_selection_enabled,l=s&&a.data_selection_isselectable,c=n.getClass("circles",!0);if(!a.point_show)return;n.initCircle();let f=t,g=e;if(!f){f=i.targets.filter(m=>this.isScatterType(m)||this.isBubbleType(m));const v=o.main.select(`.${$n.chartCircles}`).style("pointer-events","none").selectAll(`.${$n.circles}`).data(f);v.exit().remove(),g=v.enter()}s&&g.append("g").attr("class",v=>n.generateClass(tn.selectedCircles,v.id)),g.append("g").attr("class",c).call(v=>{n.setCssRule(!0,`.${$n.circles}`,["cursor:pointer"],l)(v),n.setCssRule(!0,` .${$n.circle}`,["fill","stroke"],n.color)(v)}).style("opacity",function(){return ot(this.parentNode).attr("class").indexOf($n.chartCircles)>-1?"0":null}),s&&f.forEach(v=>{o.main.selectAll(`.${tn.selectedCircles}${n.getTargetSelectorSuffix(v.id)}`).selectAll(`${tn.selectedCircle}`).each(m=>{m.value=v.values[m.index].value})})},updateCircle(t=!1){const e=this,{config:n,state:a,$el:i}=e,o=e.isPointFocusOnly(),s=t?i.subchart:i;if(n.point_show&&!a.toggling){n.point_radialGradient&&e.updateLinearGradient();const l=s.main.selectAll(`.${$n.circles}`).selectAll(`.${$n.circle}`).data(c=>e.isLineType(c)&&e.shouldDrawPointsForLine(c)||e.isBubbleType(c)||e.isRadarType(c)||e.isScatterType(c)?o?[c.values[0]]:c.values:[]);l.exit().remove(),l.enter().filter(Boolean).append(e.point("create",this,e.pointR.bind(e),e.updateCircleColor.bind(e))),s.circle=s.main.selectAll(`.${$n.circles} .${$n.circle}`).style("stroke",e.getStylePropValue(e.color)).style("opacity",e.initialOpacityForCircle.bind(e))}},updateCircleColor(t){const e=this,n=e.getStylePropValue(e.color);return e.config.point_radialGradient?e.getGradienColortUrl(t.id):n?n(t):null},redrawCircle(t,e,n,a,i=!1){const o=this,{state:{rendered:s},$el:l,$T:c}=o,f=i?l.subchart:l,g=f.main.selectAll(`.${tn.selectedCircle}`);if(!o.config.point_show)return[];const v=o.point("update",o,t,e,o.updateCircleColor.bind(o),n,a,g),m=o.isCirclePoint()?"c":"",S=gr(),P=o.opacityForCircle.bind(o),N=[];return f.circle.each(function(L){let w=v.bind(this)(L);w=c(w,n||!s,S).style("opacity",P),N.push(w)}),[N,c(g,n).attr(`${m}x`,t).attr(`${m}y`,e)]},showCircleFocus(t){const e=this,{state:{hasRadar:n,resizing:a,toggling:i,transiting:o},$el:s}=e;let{circle:l}=s;if(o===!1&&l&&e.isPointFocusOnly()){const c=(n?e.radarCircleX:e.circleX).bind(e),f=(n?e.radarCircleY:e.circleY).bind(e),g=i||ln(t),v=e.point("update",e,c,f,e.getStylePropValue(e.color),a?!1:g);t&&(l=l.filter(function(m){var S;const P=(S=t.filter)==null?void 0:S.call(t,N=>N.id===m.id);return P.length?ot(this).datum(P[0]):!1})),l.attr("class",this.updatePointClass.bind(this)).style("opacity",null).each(function(m){const{id:S,index:P,value:N}=m;let L="hidden";De(N)&&(v.bind(this)(m),e.expandCircles(P,S),L=""),this.style.visibility=L})}},hideCircleFocus(){const t=this,{$el:{circle:e}}=t;t.isPointFocusOnly()&&e&&(t.unexpandCircles(),e.style("visibility","hidden"))},circleX(t){return this.xx(t)},updateCircleY(t=!1){const e=this,n=e.generateGetLinePoints(e.getShapeIndices(e.isLineType),t);return(a,i)=>{const o=a.id;return e.isGrouped(o)?n(a,i)[0][1]:e.getYScaleById(o,t)(e.getBaseValue(a))}},expandCircles(t,e,n){const a=this,i=a.pointExpandedR.bind(a);n&&a.unexpandCircles();const o=a.getShapeByIndex("circle",t,e).classed(Se.EXPANDED,!0),s=i(o)/a.config.point_r,l=1-s;a.isCirclePoint()?o.attr("r",i):o.each(function(){const c=ot(this);if(this.tagName==="circle")c.attr("r",i);else{const{width:f,height:g}=this.getBBox(),v=l*(+c.attr("x")+f/2),m=l*(+c.attr("y")+g/2);c.attr("transform",`translate(${v} ${m}) scale(${s})`)}})},unexpandCircles(t){const e=this,n=e.pointR.bind(e),a=e.getShapeByIndex("circle",t).filter(function(){return ot(this).classed(Se.EXPANDED)}).classed(Se.EXPANDED,!1);if(a.attr("r",n),!e.isCirclePoint()){const i=n(a)/e.config.point_r;a.attr("transform",i!==1?`scale(${i})`:null)}},pointR(t){const e=this,{config:n}=e,a=n.point_r;let i=a;return e.isBubbleType(t)?i=e.getBubbleR(t):ve(a)&&(i=a.bind(e.api)(t)),t.r=i,i},pointExpandedR(t){const e=this,{config:n}=e,a=e.isBubbleType(t)?1.15:1.75;return n.point_focus_expand_enabled?n.point_focus_expand_r||e.pointR(t)*a:e.pointR(t)},pointSelectR(t){const e=this,n=e.config.point_select_r;return ve(n)?n(t):n||e.pointR(t)*4},isPointFocusOnly(){const t=this;return t.config.point_focus_only&&!t.hasType("bubble")&&!t.hasType("scatter")&&!t.hasArcType(null,["radar"])},isWithinCircle(t,e){const{state:n}=this,a=Hn(n.event,t),i=ot(t),o=this.isCirclePoint(t)?"c":"",s=this.getPointSensitivity(i==null?void 0:i.datum());let l=+i.attr(`${o}x`),c=+i.attr(`${o}y`);if(!(l||c)&&t.nodeType===1){const{x:f,y:g}=Ma(t);l=f,c=g}return Math.sqrt(Math.pow(l-a[0],2)+Math.pow(c-a[1],2))<(e||s)},getPointSensitivity(t){const e=this;let n=e.config.point_sensitivity;if(t)ve(n)?n=n.call(e.api,t):n==="radius"&&(n=t.r);else return n;return n},updatePointClass(t){const e=this,{circle:n}=e.$el;let a=!1;return(Be(t)||n)&&(a=t===!0?n.each(function(i){let o=e.getClass("circle",!0)(i);this.getAttribute("class").indexOf(Se.EXPANDED)>-1&&(o+=` ${Se.EXPANDED}`),this.setAttribute("class",o)}):e.getClass("circle",!0)(t)),a},generateGetLinePoints(t,e){const n=this,{config:a}=n,i=n.getShapeX(0,t,e),o=n.getShapeY(e),s=n.getShapeOffset(n.isLineType,t,e),l=n.getYScaleById.bind(n);return(c,f)=>{const g=l.call(n,c.id,e)(n.getShapeYMin(c.id)),v=s(c,f)||g,m=i(c);let S=o(c);a.axis_rotated&&(c.value>0&&SDe(S.value)?e(S)-c/2:0,v=S=>De(S.value)?n(S)-f/2:0;let m=t;return i&&(o&&m.attr("x",g),m=l.$T(m,i,la()),s&&l.$T(s,i,la())),m.attr("x",g).attr("y",v).style("fill",a)}},circle:{create(t,e,n){return t.append("circle").attr("class",this.updatePointClass.bind(this)).attr("r",e).style("fill",n).node()},update(t,e,n,a,i,o,s){const l=this;let c=t;return l.hasType("bubble")&&c.attr("r",l.pointR.bind(l)),i&&(o&&c.attr("cx",e),c.attr("cx")&&(c=l.$T(c,i,la())),s&&l.$T(c,i,la())),c.attr("cx",e).attr("cy",n).style("fill",a)}},rectangle:{create(t,e,n){const a=i=>e(i)*2;return t.append("rect").attr("class",this.updatePointClass.bind(this)).attr("width",a).attr("height",a).style("fill",n).node()},update(t,e,n,a,i,o,s){const l=this,c=l.config.point_r,f=m=>e(m)-c,g=m=>n(m)-c;let v=t;return i&&(o&&v.attr("x",f),v=l.$T(v,i,la()),s&&l.$T(s,i,la())),v.attr("x",f).attr("y",g).style("fill",a)}}};function Fx(t){return nr(t)&&ve(t.create)&&ve(t.update)}function Bx(t,e){var n;const a=this,i=(c,f)=>{const g=c.attributes;for(let v=0,m;m=g[v];v++)m=m.name,f.setAttribute(m,c.getAttribute(m))},s=new DOMParser().parseFromString(t,"image/svg+xml").documentElement,l=gn.createElementNS(ae.svg,s.nodeName.toLowerCase());if(l.id=e,l.style.fill="inherit",l.style.stroke="inherit",i(s,l),(n=s.childNodes)!=null&&n.length){const c=ot(l);"innerHTML"in l?c.html(s.innerHTML):Lr(s.childNodes).forEach(f=>{i(f,c.append(f.tagName).node())})}a.$el.defs.node().appendChild(l)}var ca={hasValidPointType(t){return/^(circle|rect(angle)?|polygon|ellipse|use)$/i.test(t||this.config.point_type)},hasLegendDefsPoint(){var t;const{config:e}=this;return e.legend_show&&((t=e.point_pattern)==null?void 0:t.length)&&e.legend_usePoint},getDefsPointId(t){const{state:{datetimeId:e}}=this;return`${e}-point${t}`},generatePoint(){const t=this,{$el:e,config:n}=t,a=[],i=cn(n.point_pattern)?n.point_pattern:[n.point_type];return function(o,s,...l){return function(c){var f,g,v,m;const S=t.getTargetSelectorSuffix(c.id||((f=c.data)==null?void 0:f.id)||c),P=ot(this);a.indexOf(S)<0&&a.push(S);let N=i[a.indexOf(S)%i.length];if(t.hasValidPointType(N))N=t[N];else if(!Fx(N||n.point_type)){const L=t.getDefsPointId(S);if(e.defs.select(`#${L}`).size()<1&&Bx.bind(t)(N,L),o==="create")return(g=t.custom)==null?void 0:g.create.bind(s)(P,L,...l);if(o==="update")return(v=t.custom)==null?void 0:v.update.bind(s)(P,...l)}return(m=N[o])==null?void 0:m.bind(s)(P,...l)}}}};function Qu(t){const e=t.config.polar_level_max;let n=t.getMinMaxData().max[0].value;return e&&e>n&&(n=e),n}var Ux={initPolar(){const t=this,{$el:{arcs:e},config:n}=t,a=n.polar_level_text_show,i=n.polar_level_text_backgroundColor;e.levels=e.append("g").attr("class",Tr.levels),a&&i&&t.generateTextBGColorFilter(i)},getPolarOuterRadius(t,e){var n;const a=Qu(this);return((n=t==null?void 0:t.data.values[0].value)!=null?n:0)/a*e},updateTargetsForPolar(t){this.updateTargetsForArc(t)},redrawPolar(){const t=this,{config:e}=t;e.polar_level_show&&t.updatePolarLevel()},updatePolarLevel(){const t=this,{config:e,state:n,$el:{arcs:{levels:a}}}=t,i=e.polar_level_depth,o=Qu(t),s=Ei(0,i),l=n.radius,c=s.map(m=>l*((m+1)/i)),f=(e.polar_level_text_format||function(){}).bind(t.api),g=a.selectAll(`.${Tr.level}`).data(s);g.exit().remove();const v=g.enter().append("g").attr("class",(m,S)=>`${Tr.level} ${Tr.level}-${S}`);if(v.append("circle"),v.merge(g).selectAll("circle").style("visibility",e.polar_level_show?null:"hidden").attr("cx",0).attr("cy",0).attr("r",m=>c[m]),e.polar_level_text_show){const m=e.polar_level_text_backgroundColor,S=`#${n.datetimeId}-labels-bg${t.getTargetSelectorSuffix(m)}`;v.append("text").style("text-anchor","middle"),v.merge(g).selectAll("text").attr("dy",P=>-c[P]+5).attr("filter",m?`url(${S})`:null).text(P=>f(o/s.length*(P+1)))}}};function zx(t,e,n,a,i,o){const s=t&&a>0?n-a:a,l=2*Math.PI;return i*(1-o*(e==="x"?Math.sin:Math.cos)(s*l/n))}const ua=Ln.radarPoints,ku=Ln.radarTextWidth;var jx={initRadar(){const t=this,{config:e,state:{current:n},$el:a}=t;t.hasType("radar")&&(a.radar=a.main.select(`.${Se.chart}`).append("g").attr("class",Qs.chartRadars),a.radar.levels=a.radar.append("g").attr("class",Tr.levels),a.radar.axes=a.radar.append("g").attr("class",Tn.axis),a.radar.shapes=a.radar.append("g").attr("class",sn.shapes),n.dataMax=e.radar_axis_max||t.getMinMaxData().max[0].value,e.radar_axis_text_show&&(e.interaction_enabled&&t.bindRadarEvent(),t.updateRadarLevel(),t.updateRadarAxes()))},getRadarSize(){const t=this,{config:e,state:{arcWidth:n,arcHeight:a}}=t,i=e.axis_x_categories.length<4?-20:10,o=(Math.min(n,a)-i)/2;return[o,o]},updateTargetsForRadar(t){const e=this,{config:n}=e;qn(n.axis_x_categories)&&(n.axis_x_categories=Ei(0,_n("max",t.map(a=>a.values.length)))),e.generateRadarPoints()},getRadarPosition(t,e,n,a){const i=this,{config:o}=i,[s,l]=i.getRadarSize(),c=o.axis_x_categories.length,f=o.radar_direction_clockwise,g=Lr(t).map(v=>zx(f,v,c,e,Qe(n)?n:t==="x"?s:l,he(a)?a:o.radar_size_ratio));return g.length===1?g[0]:g},generateRadarPoints(){const t=this,e=t.data.targets,[n,a]=t.getRadarSize(),i=t.cache.get(ua)||{},o=i._size;(!o||o.width!==n&&o.height!==a)&&(e.forEach(s=>{i[s.id]=s.values.map((l,c)=>t.getRadarPosition(["x","y"],c,void 0,t.getRatio("radar",l)))}),i._size={width:n,height:a},t.cache.add(ua,i))},redrawRadar(){const t=this,{radar:e,main:n}=t.$el,a=t.getTranslate("radar");a&&(e.attr("transform",a),n.select(`.${On.chartTexts}`).attr("transform",a),t.generateRadarPoints(),t.updateRadarLevel(),t.updateRadarAxes(),t.updateRadarShape())},generateGetRadarPoints(){const t=this.cache.get(ua);return(e,n)=>{const a=t[e.id][n];return[a,a,a,a]}},updateRadarLevel(){const t=this,{config:e,state:n,$el:{radar:a}}=t,[i,o]=t.getRadarSize(),s=e.radar_level_depth,l=e.axis_x_categories.length,c=e.radar_level_text_show,f=a.levels,g=Ei(0,s),v=e.radar_size_ratio*Math.min(i,o),m=g.map(w=>v*((w+1)/s)),S=(e.radar_level_text_format||function(){}).bind(t.api),P=g.map(w=>{const X=m[w];return Ei(0,l).map(H=>t.getRadarPosition(["x","y"],H,X,1).join(",")).join(" ")}),N=f.selectAll(`.${Tr.level}`).data(g);N.exit().remove();const L=N.enter().append("g").attr("class",(w,X)=>`${Tr.level} ${Tr.level}-${X}`);L.append("polygon").style("visibility",e.radar_level_show?null:"hidden"),c&&(f.select("text").empty()&&f.append("text").attr("dx","-.5em").attr("dy","-.7em").style("text-anchor","end").text(()=>S(0)),L.append("text").attr("dx","-.5em").style("text-anchor","end").text(w=>S(n.current.dataMax/g.length*(w+1)))),L.merge(N).attr("transform",w=>`translate(${i-m[w]}, ${o-m[w]})`).selectAll("polygon").attr("points",w=>P[w]),c&&f.selectAll("text").attr("x",w=>ln(w)?i:P[w].split(",")[0]).attr("y",w=>ln(w)?o:0)},updateRadarAxes(){const t=this,{config:e,$el:{radar:n}}=t,[a,i]=t.getRadarSize(),o=e.axis_x_categories;let s=n.axes.selectAll("g").data(o);s.exit().remove();const l=s.enter().append("g").attr("class",(c,f)=>`${Tn.axis}-${f}`);if(e.radar_axis_line_show&&l.append("line"),e.radar_axis_text_show&&l.append("text"),s=l.merge(s),e.radar_axis_line_show&&s.select("line").attr("x1",a).attr("y1",i).attr("x2",(c,f)=>t.getRadarPosition("x",f)).attr("y2",(c,f)=>t.getRadarPosition("y",f)),e.radar_axis_text_show){const{x:c=0,y:f=0}=e.radar_axis_text_position,g=t.cache.get(ku)||0;if(s.select("text").style("text-anchor","middle").attr("dy",".5em").call(v=>{v.each(function(m){wa(ot(this),String(m),[-.6,1.2])})}).datum((v,m)=>({index:m})).attr("transform",function(v){ln(this.width)&&(this.width=this.getBoundingClientRect().width/2);let m=t.getRadarPosition("x",v.index,void 0,1),S=Math.round(t.getRadarPosition("y",v.index,void 0,1));return m>a?m+=this.width+c:Math.round(m)i?(S/2===i&&this.firstChild.tagName==="tspan"&&this.firstChild.setAttribute("dy","0em"),S+=f):SYl(m.node()).width);v.every(m=>m>0)&&t.cache.add(ku,v[0]-v[1])}}},bindRadarEvent(){const t=this,{config:e,state:n,$el:{radar:a,svg:i}}=t,o=t.isPointFocusOnly(),{inputType:s,transiting:l}=n,c=s==="mouse",f=g=>{if(n.event=g,!e.interaction_onout)return;const v=t.getDataIndexFromEvent(g),m=ln(v);(c||m)&&(t.hideTooltip(),o?t.hideCircleFocus():t.unexpandCircles(),c?t.setOverOut(!1,v):m&&t.callOverOutForTouch())};a.axes.on(c?"mouseover ":"touchstart",g=>{if(l)return;n.event=g;const v=t.getDataIndexFromEvent(g);t.selectRectForSingle(i.node(),v),c?t.setOverOut(!0,v):t.callOverOutForTouch(v)}).on("mouseout",c?f:null),c||i.on("touchstart",f)},updateRadarShape(){const t=this,e=t.data.targets.filter(o=>t.isRadarType(o)),n=t.cache.get(ua),a=t.$el.radar.shapes.selectAll("polygon").data(e),i=a.enter().append("g").attr("class",t.getChartClass("Radar"));t.$T(a.exit()).remove(),i.append("polygon").merge(a).style("fill",t.color).style("stroke",t.color).attr("points",o=>n[o.id].join(" ")),t.updateTargetForCircle(e,i)},radarCircleX(t){return this.cache.get(ua)[t.id][t.index][0]},radarCircleY(t){return this.cache.get(ua)[t.id][t.index][1]}};function Vx(t){var e=0,n=t.children,a=n&&n.length;if(!a)e=1;else for(;--a>=0;)e+=n[a].value;t.value=e}function Gx(){return this.eachAfter(Vx)}function Xx(t,e){let n=-1;for(const a of this)t.call(e,a,++n,this);return this}function Hx(t,e){for(var n=this,a=[n],i,o,s=-1;n=a.pop();)if(t.call(e,n,++s,this),i=n.children)for(o=i.length-1;o>=0;--o)a.push(i[o]);return this}function Yx(t,e){for(var n=this,a=[n],i=[],o,s,l,c=-1;n=a.pop();)if(i.push(n),o=n.children)for(s=0,l=o.length;s=0;)n+=a[i].value;e.value=n})}function Zx(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})}function Jx(t){for(var e=this,n=Qx(e,t),a=[e];e!==n;)e=e.parent,a.push(e);for(var i=a.length;t!==n;)a.splice(i,0,t),t=t.parent;return a}function Qx(t,e){if(t===e)return t;var n=t.ancestors(),a=e.ancestors(),i=null;for(t=n.pop(),e=a.pop();t===e;)i=t,t=n.pop(),e=a.pop();return i}function kx(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e}function qx(){return Array.from(this)}function _x(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t}function t0(){var t=this,e=[];return t.each(function(n){n!==t&&e.push({source:n.parent,target:n})}),e}function*e0(){var t=this,e,n=[t],a,i,o;do for(e=n.reverse(),n=[];t=e.pop();)if(yield t,a=t.children)for(i=0,o=a.length;i=0;--l)i.push(o=s[l]=new Qi(s[l])),o.parent=a,o.depth=a.depth+1;return n.eachBefore(o0)}function n0(){return Rs(this).eachBefore(i0)}function r0(t){return t.children}function a0(t){return Array.isArray(t)?t[1]:null}function i0(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function o0(t){var e=0;do t.height=e;while((t=t.parent)&&t.height<++e)}function Qi(t){this.data=t,this.depth=this.height=0,this.parent=null}Qi.prototype=Rs.prototype={constructor:Qi,count:Gx,each:Xx,eachAfter:Yx,eachBefore:Hx,find:Wx,sum:Kx,sort:Zx,path:Jx,ancestors:kx,descendants:qx,leaves:_x,links:t0,copy:n0,[Symbol.iterator]:e0};function s0(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function ki(t,e,n,a,i){for(var o=t.children,s,l=-1,c=o.length,f=t.value&&(a-e)/t.value;++lX&&(X=f),K=L*L*k,W=Math.max(X/K,K/w),W>H){L-=f;break}H=W}s.push(c={value:L,dice:S1?a:1)},n}(qu);function C1(t){return t==null?null:ef(t)}function ef(t){if(typeof t!="function")throw new Error;return t}function ja(){return 0}function Va(t){return function(){return t}}function l0(){var t=tf,e=!1,n=1,a=1,i=[0],o=ja,s=ja,l=ja,c=ja,f=ja;function g(m){return m.x0=m.y0=0,m.x1=n,m.y1=a,m.eachBefore(v),i=[0],e&&m.eachBefore(s0),m}function v(m){var S=i[m.depth],P=m.x0+S,N=m.y0+S,L=m.x1-S,w=m.y1-S;L=m-1){var X=o[v];X.x0=P,X.y0=N,X.x1=L,X.y1=w;return}for(var W=f[v],H=S/2+W,k=v+1,K=m-1;k>>1;f[at]w-N){var dt=S?(P*$t+L*ht)/S:L;g(v,k,ht,P,N,dt,w),g(k,m,$t,dt,N,L,w)}else{var st=S?(N*$t+w*ht)/S:w;g(v,k,ht,P,N,L,st),g(k,m,$t,P,st,L,w)}}}function c0(t,e,n,a,i){(t.depth&1?qi:ki)(t,e,n,a,i)}var u0=function t(e){function n(a,i,o,s,l){if((c=a._squarify)&&c.ratio===e)for(var c,f,g,v,m=-1,S,P=c.length,N=a.value;++m1?a:1)},n}(qu);function f0(t,e){const n=this,{scale:{x:a,y:i},state:{width:o}}=n;t.selectAll("g").attr("transform",s=>`translate(${s===e?"0,0":`${a(s.x0)},${i(s.y0)}`})`).select("rect").attr("width",s=>s===e?o:a(s.x1)-a(s.x0)).attr("height",s=>s===e?0:i(s.y1)-i(s.y0))}function d0(t){const e=this;return t.map(n=>{const{id:a,values:i}=n,{value:o}=i[0];return{name:a,id:a,value:o,ratio:e.getRatio("treemap",i[0])}})}function h0(t){const e=this,n=Rs(t).sum(i=>i.value),a=e.getSortCompareFn(!0);return[e.treemap(a?n.sort(a):n)]}var g0={initTreemap(){const t=this,{$el:e,state:{current:{width:n,height:a},clip:i,datetimeId:o}}=t;i.id=`${o}-clip`,t.treemap=l0().tile(t.getTreemapTile()),e.defs.append("clipPath").attr("id",i.id).append("rect").attr("width",n).attr("height",a),e.treemap=e.main.select(`.${Se.chart}`).attr("clip-path",`url(#${i.id})`).append("g").classed(qs.chartTreemaps,!0),t.bindTreemapEvent()},bindTreemapEvent(){const t=this,{$el:e,config:n,state:a}=t,i=o=>{var s;const l=o.isTrusted?o.target:(s=a.eventReceiver.rect)==null?void 0:s.node();let c;return/^rect$/i.test(l.tagName)&&(a.event=o,c=ot(l).datum()),c==null?void 0:c.data};if(n.interaction_enabled){const o=a.inputType==="touch";e.treemap.on(o?"touchstart":"mouseover mousemove",s=>{const l=i(s);l&&(t.showTooltip([l],s.currentTarget),/^(touchstart|mouseover)$/.test(s.type)&&t.setOverOut(!0,l))}).on(o?"touchend":"mouseout",s=>{const l=i(s);n.interaction_onout&&(t.hideTooltip(),t.setOverOut(!1,l))})}},getTreemapTile(){var t,e;const n=this,{config:a,state:{current:{width:i,height:o}}}=n,s=(e={binary:nf,dice:ki,slice:qi,sliceDice:c0,squarify:tf,resquarify:u0}[(t=a.treemap_tile)!=null?t:"binary"])!=null?e:nf;return(l,c,f,g,v)=>{s(l,0,0,i,o);for(const m of l.children)m.x0=c+m.x0/i*(g-c),m.x1=c+m.x1/i*(g-c),m.y0=f+m.y0/o*(v-f),m.y1=f+m.y1/o*(v-f)}},getTreemapData(t){const e=this;return{name:"root",children:d0.bind(e)(e.filterTargetsToShow(t.filter(e.isTreemapType,e)))}},updateTargetsForTreemap(t){const e=this,{$el:{treemap:n}}=e,a=h0.call(e,e.getTreemapData(t!=null?t:e.data.targets));n.data(a)},updateTreemap(t){const e=this,{$el:n,$T:a}=e,i=n.treemap.datum(),o=e.getChartClass("Treemap"),s=e.getClass("treemap",!0),l=n.treemap.selectAll("g").data(i.children);a(l.exit(),t).style("opacity","0").remove(),l.enter().append("g").append("rect"),n.treemap.selectAll("g").attr("class",o).select("rect").attr("class",s).attr("fill",c=>e.color(c.data.name))},generateGetTreemapPoints(){const t=this,{$el:e,scale:{x:n,y:a}}=t,i={};return e.treemap.selectAll("g").each(o=>{i[o.data.name]=[[n(o.x0),a(o.y0)],[n(o.x1),a(o.y1)]]}),o=>i[o.id]},redrawTreemap(t){const e=this,{$el:n,state:{current:{width:a,height:i}}}=e;return n.defs.select("rect").attr("width",a).attr("height",i),[e.$T(n.treemap,t,gr()).call(f0.bind(e),n.treemap.datum())]},treemapDataLabelFormat(t){const e=this,{config:n}=e,{id:a,value:i}=t,o=n.treemap_label_format,s=e.getRatio("treemap",t),l=(s*100).toFixed(2),c=n.treemap_label_show&&e.meetsLabelThreshold(s,"treemap")?null:"0";return function(f){return f.style("opacity",c),ve(o)?o.bind(e.api)(i,s,a):`${a} +${l}%`}}},Xr={point_show:!0,point_r:2.5,point_radialGradient:!1,point_sensitivity:10,point_focus_expand_enabled:!0,point_focus_expand_r:void 0,point_focus_only:!1,point_opacity:void 0,point_pattern:[],point_select_r:void 0,point_type:"circle"},fa={area_above:!1,area_below:!1,area_front:!0,area_linearGradient:!1,area_zerobased:!0},v0={bar_front:!1,bar_indices_removeNull:!1,bar_label_threshold:0,bar_linearGradient:!1,bar_overlap:!1,bar_padding:0,bar_radius:void 0,bar_radius_ratio:void 0,bar_sensitivity:2,bar_width:void 0,bar_width_ratio:.6,bar_width_max:void 0,bar_zerobased:!0},p0={bubble_maxR:35,bubble_zerobased:!1},m0={candlestick_width:void 0,candlestick_width_ratio:.6,candlestick_width_max:void 0,candlestick_color_down:"red"},y0={line_connectNull:!1,line_step_type:"step",line_step_tooltipMatch:!1,line_zerobased:!1,line_classes:void 0,line_point:!0},x0={scatter_zerobased:!1},Is={spline_interpolation_type:"cardinal"},_i={arc_cornerRadius:0,arc_cornerRadius_ratio:0,arc_needle_show:!1,arc_needle_color:void 0,arc_needle_value:void 0,arc_needle_path:void 0,arc_needle_length:100,arc_needle_top_rx:0,arc_needle_top_ry:0,arc_needle_top_width:0,arc_needle_bottom_rx:1,arc_needle_bottom_ry:1,arc_needle_bottom_width:15,arc_needle_bottom_len:0,arc_rangeText_values:void 0,arc_rangeText_unit:"absolute",arc_rangeText_fixed:!1,arc_rangeText_format:void 0,arc_rangeText_position:void 0},T0={donut_label_show:!0,donut_label_format:void 0,donut_label_threshold:.05,donut_label_ratio:void 0,donut_width:void 0,donut_title:"",donut_expand:{},donut_expand_rate:.98,donut_expand_duration:50,donut_padAngle:0,donut_startingAngle:0},$0={funnel_neck_width:0,funnel_neck_height:0},S0={gauge_background:"",gauge_fullCircle:!1,gauge_label_show:!0,gauge_label_extents:void 0,gauge_label_format:void 0,gauge_label_ratio:void 0,gauge_label_threshold:0,gauge_enforceMinMax:!1,gauge_min:0,gauge_max:100,gauge_type:"single",gauge_startingAngle:-1*Math.PI/2,gauge_arcLength:100,gauge_title:"",gauge_units:void 0,gauge_width:void 0,gauge_arcs_minWidth:5,gauge_expand:{},gauge_expand_rate:.98,gauge_expand_duration:50},A0={pie_label_show:!0,pie_label_format:void 0,pie_label_ratio:void 0,pie_label_threshold:.05,pie_expand:{},pie_expand_rate:.98,pie_expand_duration:50,pie_innerRadius:0,pie_outerRadius:void 0,pie_padAngle:0,pie_padding:0,pie_startingAngle:0},E0={polar_label_show:!0,polar_label_format:void 0,polar_label_threshold:.05,polar_label_ratio:void 0,polar_level_depth:3,polar_level_max:void 0,polar_level_show:!0,polar_level_text_backgroundColor:"#fff",polar_level_text_format:t=>t%1===0?t:t.toFixed(2),polar_level_text_show:!0,polar_padAngle:0,polar_padding:0,polar_startingAngle:0},b0={radar_axis_max:void 0,radar_axis_line_show:!0,radar_axis_text_show:!0,radar_axis_text_position:{},radar_level_depth:3,radar_level_show:!0,radar_level_text_format:t=>t%1===0?t:t.toFixed(2),radar_level_text_show:!0,radar_size_ratio:.87,radar_direction_clockwise:!1},R0={treemap_tile:"binary",treemap_label_format:void 0,treemap_label_threshold:.05,treemap_label_show:!0};function da(t,e){yn(Vr.prototype,Object.values(Du).concat(t)),yn(Er.prototype,Jy),Nr.setOptions(Object.values(Lu).concat(e||[]))}function mr(t,e){da([ca,Ji,Nx].concat(t||[])),Nr.setOptions([Xr,y0].concat(e||[]))}function ha(t,e){yn(Vr.prototype,[px,ca].concat(t||[])),Nr.setOptions([Xr].concat(e||[]))}let rf=()=>(mr(sa,[fa]),(rf=()=>oe.AREA)()),af=()=>(mr(sa,[fa]),(af=()=>oe.AREA_LINE_RANGE)()),of=()=>(mr(sa,[fa]),(of=()=>oe.AREA_STEP_RANGE)()),sf=()=>(mr(sa,[fa,Is]),(sf=()=>oe.AREA_SPLINE)()),lf=()=>(mr(sa,[fa,Is]),(lf=()=>oe.AREA_SPLINE_RANGE)()),cf=()=>(mr(sa,[fa]),(cf=()=>oe.AREA_STEP)()),uf=()=>(mr(),(uf=()=>oe.LINE)()),ff=()=>(mr(void 0,[Is]),(ff=()=>oe.SPLINE)()),df=()=>(mr(),(df=()=>oe.STEP)()),hf=()=>(ha(void 0,[_i,T0]),(hf=()=>oe.DONUT)()),gf=()=>(ha([Mx],[_i,S0]),(gf=()=>oe.GAUGE)()),vf=()=>(ha(void 0,[_i,A0]),(vf=()=>oe.PIE)()),pf=()=>(ha([Ux],[_i,E0]),(pf=()=>oe.POLAR)()),mf=()=>(ha([Du.eventrect,Ji,jx],[Xr,b0,{axis_x_categories:Lu.optAxis.axis_x_categories}]),(mf=()=>oe.RADAR)()),yf=()=>(da([yx,ca],[v0,Xr]),(yf=()=>oe.BAR)()),xf=()=>(da([ca,Ji,xx],[p0,Xr]),(xf=()=>oe.BUBBLE)()),Tf=()=>(da([Ex,ca],[m0,Xr]),(Tf=()=>oe.CANDLESTICK)()),$f=()=>(da([ca,Ji],[Xr,x0]),($f=()=>oe.SCATTER)()),Sf=()=>(ha([wx],[$0]),(Sf=()=>oe.FUNNEL)()),Af=()=>(da([g0],[R0]),(Af=()=>oe.TREEMAP)()),Os=Object.create(null);const Ef={version:"3.15.1",generate(t){const e=ea(Object.create(null),Os,t),n=new Er(e);return n.internal.charts=this.instance,this.instance.push(n),n},defaults(t){return Be(t)&&(Os=t),Os},instance:[],plugin:{}};Object.keys(d).forEach(t=>d[t]()),Object.keys(u).forEach(t=>u[t]())}],Xa={};function zn(x){var b=Xa[x];if(b!==void 0)return b.exports;var r=Xa[x]={exports:{}};return Cs[x].call(r.exports,r,r.exports,zn),r.exports}(function(){zn.d=function(x,b){for(var r in b)zn.o(b,r)&&!zn.o(x,r)&&Object.defineProperty(x,r,{enumerable:!0,get:b[r]})}})(),function(){zn.o=function(x,b){return Object.prototype.hasOwnProperty.call(x,b)}}(),function(){zn.r=function(x){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(x,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(x,"__esModule",{value:!0})}}(),zn(0);var Ha=zn(584);return Ha}()}); diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js deleted file mode 100644 index 166487309..000000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js +++ /dev/null @@ -1,5 +0,0 @@ -!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++ie;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++aa;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)0?0:3:xo(r[0]-e)0?2:1:xo(r[1]-t)0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){ -r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)Uo?{x:s,y:xo(t-s)Uo?{x:xo(e-g)Uo?{x:h,y:xo(t-h)Uo?{x:xo(e-p)=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.yd||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.yr||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.yp){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.xu||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return ur;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++oe;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.ro;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++0;h--)o.push(u(c)*h);for(c=0;o[c]l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++oe?[NaN,NaN]:[e>0?a[e-1]:n[0],et?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}else{for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++ii){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++rr;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++uu;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv(" ","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], -shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++rn?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.xy&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++lt;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++cs?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u0)for(u=-1;++u=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.xg.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++it?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++oe&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0; -if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++ue.dx)&&(f=e.dx);++ue&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++au;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}(); \ No newline at end of file diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/nv.d3.min.js b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/nv.d3.min.js deleted file mode 100644 index 801e721d3..000000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/nv.d3.min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* nvd3 version 1.8.1 (https://github.com/novus/nvd3) 2015-06-15 */ -!function(){var a={};a.dev=!1,a.tooltip=a.tooltip||{},a.utils=a.utils||{},a.models=a.models||{},a.charts={},a.logs={},a.dom={},a.dispatch=d3.dispatch("render_start","render_end"),Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),a.dev&&(a.dispatch.on("render_start",function(){a.logs.startTime=+new Date}),a.dispatch.on("render_end",function(){a.logs.endTime=+new Date,a.logs.totalTime=a.logs.endTime-a.logs.startTime,a.log("total",a.logs.totalTime)})),a.log=function(){if(a.dev&&window.console&&console.log&&console.log.apply)console.log.apply(console,arguments);else if(a.dev&&window.console&&"function"==typeof console.log&&Function.prototype.bind){var b=Function.prototype.bind.call(console.log,console);b.apply(console,arguments)}return arguments[arguments.length-1]},a.deprecated=function(a,b){console&&console.warn&&console.warn("nvd3 warning: `"+a+"` has been deprecated. ",b||"")},a.render=function(b){b=b||1,a.render.active=!0,a.dispatch.render_start();var c=function(){for(var d,e,f=0;b>f&&(e=a.render.queue[f]);f++)d=e.generate(),typeof e.callback==typeof Function&&e.callback(d);a.render.queue.splice(0,f),a.render.queue.length?setTimeout(c):(a.dispatch.render_end(),a.render.active=!1)};setTimeout(c)},a.render.active=!1,a.render.queue=[],a.addGraph=function(b){typeof arguments[0]==typeof Function&&(b={generate:arguments[0],callback:arguments[1]}),a.render.queue.push(b),a.render.active||a.render()},"undefined"!=typeof module&&"undefined"!=typeof exports&&(module.exports=a),"undefined"!=typeof window&&(window.nv=a),a.dom.write=function(a){return void 0!==window.fastdom?fastdom.write(a):a()},a.dom.read=function(a){return void 0!==window.fastdom?fastdom.read(a):a()},a.interactiveGuideline=function(){"use strict";function b(l){l.each(function(l){function m(){var a=d3.mouse(this),d=a[0],e=a[1],i=!0,j=!1;if(k&&(d=d3.event.offsetX,e=d3.event.offsetY,"svg"!==d3.event.target.tagName&&(i=!1),d3.event.target.className.baseVal.match("nv-legend")&&(j=!0)),i&&(d-=f.left,e-=f.top),0>d||0>e||d>o||e>p||d3.event.relatedTarget&&void 0===d3.event.relatedTarget.ownerSVGElement||j){if(k&&d3.event.relatedTarget&&void 0===d3.event.relatedTarget.ownerSVGElement&&(void 0===d3.event.relatedTarget.className||d3.event.relatedTarget.className.match(c.nvPointerEventsClass)))return;return h.elementMouseout({mouseX:d,mouseY:e}),b.renderGuideLine(null),void c.hidden(!0)}c.hidden(!1);var l=g.invert(d);h.elementMousemove({mouseX:d,mouseY:e,pointXValue:l}),"dblclick"===d3.event.type&&h.elementDblclick({mouseX:d,mouseY:e,pointXValue:l}),"click"===d3.event.type&&h.elementClick({mouseX:d,mouseY:e,pointXValue:l})}var n=d3.select(this),o=d||960,p=e||400,q=n.selectAll("g.nv-wrap.nv-interactiveLineLayer").data([l]),r=q.enter().append("g").attr("class"," nv-wrap nv-interactiveLineLayer");r.append("g").attr("class","nv-interactiveGuideLine"),j&&(j.on("touchmove",m).on("mousemove",m,!0).on("mouseout",m,!0).on("dblclick",m).on("click",m),b.guideLine=null,b.renderGuideLine=function(c){i&&(b.guideLine&&b.guideLine.attr("x1")===c||a.dom.write(function(){var b=q.select(".nv-interactiveGuideLine").selectAll("line").data(null!=c?[a.utils.NaNtoZero(c)]:[],String);b.enter().append("line").attr("class","nv-guideline").attr("x1",function(a){return a}).attr("x2",function(a){return a}).attr("y1",p).attr("y2",0),b.exit().remove()}))})})}var c=a.models.tooltip();c.duration(0).hideDelay(0)._isInteractiveLayer(!0).hidden(!1);var d=null,e=null,f={left:0,top:0},g=d3.scale.linear(),h=d3.dispatch("elementMousemove","elementMouseout","elementClick","elementDblclick"),i=!0,j=null,k="ActiveXObject"in window;return b.dispatch=h,b.tooltip=c,b.margin=function(a){return arguments.length?(f.top="undefined"!=typeof a.top?a.top:f.top,f.left="undefined"!=typeof a.left?a.left:f.left,b):f},b.width=function(a){return arguments.length?(d=a,b):d},b.height=function(a){return arguments.length?(e=a,b):e},b.xScale=function(a){return arguments.length?(g=a,b):g},b.showGuideLine=function(a){return arguments.length?(i=a,b):i},b.svgContainer=function(a){return arguments.length?(j=a,b):j},b},a.interactiveBisect=function(a,b,c){"use strict";if(!(a instanceof Array))return null;var d;d="function"!=typeof c?function(a){return a.x}:c;var e=function(a,b){return d(a)-b},f=d3.bisector(e).left,g=d3.max([0,f(a,b)-1]),h=d(a[g]);if("undefined"==typeof h&&(h=g),h===b)return g;var i=d3.min([g+1,a.length-1]),j=d(a[i]);return"undefined"==typeof j&&(j=i),Math.abs(j-b)>=Math.abs(h-b)?g:i},a.nearestValueIndex=function(a,b,c){"use strict";var d=1/0,e=null;return a.forEach(function(a,f){var g=Math.abs(b-a);null!=a&&d>=g&&c>g&&(d=g,e=f)}),e},function(){"use strict";a.models.tooltip=function(){function b(){if(k){var a=d3.select(k);"svg"!==a.node().tagName&&(a=a.select("svg"));var b=a.node()?a.attr("viewBox"):null;if(b){b=b.split(" ");var c=parseInt(a.style("width"),10)/b[2];p.left=p.left*c,p.top=p.top*c}}}function c(){if(!n){var a;a=k?k:document.body,n=d3.select(a).append("div").attr("class","nvtooltip "+(j?j:"xy-tooltip")).attr("id",v),n.style("top",0).style("left",0),n.style("opacity",0),n.selectAll("div, table, td, tr").classed(w,!0),n.classed(w,!0),o=n.node()}}function d(){if(r&&B(e)){b();var f=p.left,g=null!==i?i:p.top;return a.dom.write(function(){c();var b=A(e);b&&(o.innerHTML=b),k&&u?a.dom.read(function(){var a=k.getElementsByTagName("svg")[0],b={left:0,top:0};if(a){var c=a.getBoundingClientRect(),d=k.getBoundingClientRect(),e=c.top;if(0>e){var i=k.getBoundingClientRect();e=Math.abs(e)>i.height?0:e}b.top=Math.abs(e-d.top),b.left=Math.abs(c.left-d.left)}f+=k.offsetLeft+b.left-2*k.scrollLeft,g+=k.offsetTop+b.top-2*k.scrollTop,h&&h>0&&(g=Math.floor(g/h)*h),C([f,g])}):C([f,g])}),d}}var e=null,f="w",g=25,h=0,i=null,j=null,k=null,l=!0,m=400,n=null,o=null,p={left:null,top:null},q={left:0,top:0},r=!0,s=100,t=!0,u=!1,v="nvtooltip-"+Math.floor(1e5*Math.random()),w="nv-pointer-events-none",x=function(a){return a},y=function(a){return a},z=function(a){return a},A=function(a){if(null===a)return"";var b=d3.select(document.createElement("table"));if(t){var c=b.selectAll("thead").data([a]).enter().append("thead");c.append("tr").append("td").attr("colspan",3).append("strong").classed("x-value",!0).html(y(a.value))}var d=b.selectAll("tbody").data([a]).enter().append("tbody"),e=d.selectAll("tr").data(function(a){return a.series}).enter().append("tr").classed("highlight",function(a){return a.highlight});e.append("td").classed("legend-color-guide",!0).append("div").style("background-color",function(a){return a.color}),e.append("td").classed("key",!0).html(function(a,b){return z(a.key,b)}),e.append("td").classed("value",!0).html(function(a,b){return x(a.value,b)}),e.selectAll("td").each(function(a){if(a.highlight){var b=d3.scale.linear().domain([0,1]).range(["#fff",a.color]),c=.6;d3.select(this).style("border-bottom-color",b(c)).style("border-top-color",b(c))}});var f=b.node().outerHTML;return void 0!==a.footer&&(f+=""),f},B=function(a){if(a&&a.series){if(a.series instanceof Array)return!!a.series.length;if(a.series instanceof Object)return a.series=[a.series],!0}return!1},C=function(b){o&&a.dom.read(function(){var c,d,e=parseInt(o.offsetHeight,10),h=parseInt(o.offsetWidth,10),i=a.utils.windowSize().width,j=a.utils.windowSize().height,k=window.pageYOffset,p=window.pageXOffset;j=window.innerWidth>=document.body.scrollWidth?j:j-16,i=window.innerHeight>=document.body.scrollHeight?i:i-16;var r,t,u=function(a){var b=d;do isNaN(a.offsetTop)||(b+=a.offsetTop),a=a.offsetParent;while(a);return b},v=function(a){var b=c;do isNaN(a.offsetLeft)||(b+=a.offsetLeft),a=a.offsetParent;while(a);return b};switch(f){case"e":c=b[0]-h-g,d=b[1]-e/2,r=v(o),t=u(o),p>r&&(c=b[0]+g>p?b[0]+g:p-r+c),k>t&&(d=k-t+d),t+e>k+j&&(d=k+j-t+d-e);break;case"w":c=b[0]+g,d=b[1]-e/2,r=v(o),t=u(o),r+h>i&&(c=b[0]-h-g),k>t&&(d=k+5),t+e>k+j&&(d=k+j-t+d-e);break;case"n":c=b[0]-h/2-5,d=b[1]+g,r=v(o),t=u(o),p>r&&(c=p+5),r+h>i&&(c=c-h/2+5),t+e>k+j&&(d=k+j-t+d-e);break;case"s":c=b[0]-h/2,d=b[1]-e-g,r=v(o),t=u(o),p>r&&(c=p+5),r+h>i&&(c=c-h/2+5),k>t&&(d=k);break;case"none":c=b[0],d=b[1]-g,r=v(o),t=u(o)}c-=q.left,d-=q.top;var w=o.getBoundingClientRect(),k=window.pageYOffset||document.documentElement.scrollTop,p=window.pageXOffset||document.documentElement.scrollLeft,x="translate("+(w.left+p)+"px, "+(w.top+k)+"px)",y="translate("+c+"px, "+d+"px)",z=d3.interpolateString(x,y),A=n.style("opacity")<.1;l?n.transition().delay(m).duration(0).style("opacity",0):n.interrupt().transition().duration(A?0:s).styleTween("transform",function(){return z},"important").style("-webkit-transform",y).style("opacity",1)})};return d.nvPointerEventsClass=w,d.options=a.utils.optionsFunc.bind(d),d._options=Object.create({},{duration:{get:function(){return s},set:function(a){s=a}},gravity:{get:function(){return f},set:function(a){f=a}},distance:{get:function(){return g},set:function(a){g=a}},snapDistance:{get:function(){return h},set:function(a){h=a}},classes:{get:function(){return j},set:function(a){j=a}},chartContainer:{get:function(){return k},set:function(a){k=a}},fixedTop:{get:function(){return i},set:function(a){i=a}},enabled:{get:function(){return r},set:function(a){r=a}},hideDelay:{get:function(){return m},set:function(a){m=a}},contentGenerator:{get:function(){return A},set:function(a){A=a}},valueFormatter:{get:function(){return x},set:function(a){x=a}},headerFormatter:{get:function(){return y},set:function(a){y=a}},keyFormatter:{get:function(){return z},set:function(a){z=a}},headerEnabled:{get:function(){return t},set:function(a){t=a}},_isInteractiveLayer:{get:function(){return u},set:function(a){u=!!a}},position:{get:function(){return p},set:function(a){p.left=void 0!==a.left?a.left:p.left,p.top=void 0!==a.top?a.top:p.top}},offset:{get:function(){return q},set:function(a){q.left=void 0!==a.left?a.left:q.left,q.top=void 0!==a.top?a.top:q.top}},hidden:{get:function(){return l},set:function(a){l!=a&&(l=!!a,d())}},data:{get:function(){return e},set:function(a){a.point&&(a.value=a.point.x,a.series=a.series||{},a.series.value=a.point.y,a.series.color=a.point.color||a.series.color),e=a}},tooltipElem:{get:function(){return o},set:function(){}},id:{get:function(){return v},set:function(){}}}),a.utils.initOptions(d),d}}(),a.utils.windowSize=function(){var a={width:640,height:480};return window.innerWidth&&window.innerHeight?(a.width=window.innerWidth,a.height=window.innerHeight,a):"CSS1Compat"==document.compatMode&&document.documentElement&&document.documentElement.offsetWidth?(a.width=document.documentElement.offsetWidth,a.height=document.documentElement.offsetHeight,a):document.body&&document.body.offsetWidth?(a.width=document.body.offsetWidth,a.height=document.body.offsetHeight,a):a},a.utils.windowResize=function(b){return window.addEventListener?window.addEventListener("resize",b):a.log("ERROR: Failed to bind to window.resize with: ",b),{callback:b,clear:function(){window.removeEventListener("resize",b)}}},a.utils.getColor=function(b){if(void 0===b)return a.utils.defaultColor();if(Array.isArray(b)){var c=d3.scale.ordinal().range(b);return function(a,b){var d=void 0===b?a:b;return a.color||c(d)}}return b},a.utils.defaultColor=function(){return a.utils.getColor(d3.scale.category20().range())},a.utils.customTheme=function(a,b,c){b=b||function(a){return a.key},c=c||d3.scale.category20().range();var d=c.length;return function(e){var f=b(e);return"function"==typeof a[f]?a[f]():void 0!==a[f]?a[f]:(d||(d=c.length),d-=1,c[d])}},a.utils.pjax=function(b,c){var d=function(d){d3.html(d,function(d){var e=d3.select(c).node();e.parentNode.replaceChild(d3.select(d).select(c).node(),e),a.utils.pjax(b,c)})};d3.selectAll(b).on("click",function(){history.pushState(this.href,this.textContent,this.href),d(this.href),d3.event.preventDefault()}),d3.select(window).on("popstate",function(){d3.event.state&&d(d3.event.state)})},a.utils.calcApproxTextWidth=function(a){if("function"==typeof a.style&&"function"==typeof a.text){var b=parseInt(a.style("font-size").replace("px",""),10),c=a.text().length;return c*b*.5}return 0},a.utils.NaNtoZero=function(a){return"number"!=typeof a||isNaN(a)||null===a||1/0===a||a===-1/0?0:a},d3.selection.prototype.watchTransition=function(a){var b=[this].concat([].slice.call(arguments,1));return a.transition.apply(a,b)},a.utils.renderWatch=function(b,c){if(!(this instanceof a.utils.renderWatch))return new a.utils.renderWatch(b,c);var d=void 0!==c?c:250,e=[],f=this;this.models=function(a){return a=[].slice.call(arguments,0),a.forEach(function(a){a.__rendered=!1,function(a){a.dispatch.on("renderEnd",function(){a.__rendered=!0,f.renderEnd("model")})}(a),e.indexOf(a)<0&&e.push(a)}),this},this.reset=function(a){void 0!==a&&(d=a),e=[]},this.transition=function(a,b,c){if(b=arguments.length>1?[].slice.call(arguments,1):[],c=b.length>1?b.pop():void 0!==d?d:250,a.__rendered=!1,e.indexOf(a)<0&&e.push(a),0===c)return a.__rendered=!0,a.delay=function(){return this},a.duration=function(){return this},a;a.__rendered=0===a.length?!0:a.every(function(a){return!a.length})?!0:!1;var g=0;return a.transition().duration(c).each(function(){++g}).each("end",function(){0===--g&&(a.__rendered=!0,f.renderEnd.apply(this,b))})},this.renderEnd=function(){e.every(function(a){return a.__rendered})&&(e.forEach(function(a){a.__rendered=!1}),b.renderEnd.apply(this,arguments))}},a.utils.deepExtend=function(b){var c=arguments.length>1?[].slice.call(arguments,1):[];c.forEach(function(c){for(var d in c){var e=b[d]instanceof Array,f="object"==typeof b[d],g="object"==typeof c[d];f&&!e&&g?a.utils.deepExtend(b[d],c[d]):b[d]=c[d]}})},a.utils.state=function(){if(!(this instanceof a.utils.state))return new a.utils.state;var b={},c=function(){},d=function(){return{}},e=null,f=null;this.dispatch=d3.dispatch("change","set"),this.dispatch.on("set",function(a){c(a,!0)}),this.getter=function(a){return d=a,this},this.setter=function(a,b){return b||(b=function(){}),c=function(c,d){a(c),d&&b()},this},this.init=function(b){e=e||{},a.utils.deepExtend(e,b)};var g=function(){var a=d();if(JSON.stringify(a)===JSON.stringify(b))return!1;for(var c in a)void 0===b[c]&&(b[c]={}),b[c]=a[c],f=!0;return!0};this.update=function(){e&&(c(e,!1),e=null),g.call(this)&&this.dispatch.change(b)}},a.utils.optionsFunc=function(a){return a&&d3.map(a).forEach(function(a,b){"function"==typeof this[a]&&this[a](b)}.bind(this)),this},a.utils.calcTicksX=function(b,c){var d=1,e=0;for(e;ed?f:d}return a.log("Requested number of ticks: ",b),a.log("Calculated max values to be: ",d),b=b>d?b=d-1:b,b=1>b?1:b,b=Math.floor(b),a.log("Calculating tick count as: ",b),b},a.utils.calcTicksY=function(b,c){return a.utils.calcTicksX(b,c)},a.utils.initOption=function(a,b){a._calls&&a._calls[b]?a[b]=a._calls[b]:(a[b]=function(c){return arguments.length?(a._overrides[b]=!0,a._options[b]=c,a):a._options[b]},a["_"+b]=function(c){return arguments.length?(a._overrides[b]||(a._options[b]=c),a):a._options[b]})},a.utils.initOptions=function(b){b._overrides=b._overrides||{};var c=Object.getOwnPropertyNames(b._options||{}),d=Object.getOwnPropertyNames(b._calls||{});c=c.concat(d);for(var e in c)a.utils.initOption(b,c[e])},a.utils.inheritOptionsD3=function(a,b,c){a._d3options=c.concat(a._d3options||[]),c.unshift(b),c.unshift(a),d3.rebind.apply(this,c)},a.utils.arrayUnique=function(a){return a.sort().filter(function(b,c){return!c||b!=a[c-1]})},a.utils.symbolMap=d3.map(),a.utils.symbol=function(){function b(b,e){var f=c.call(this,b,e),g=d.call(this,b,e);return-1!==d3.svg.symbolTypes.indexOf(f)?d3.svg.symbol().type(f).size(g)():a.utils.symbolMap.get(f)(g)}var c,d=64;return b.type=function(a){return arguments.length?(c=d3.functor(a),b):c},b.size=function(a){return arguments.length?(d=d3.functor(a),b):d},b},a.utils.inheritOptions=function(b,c){var d=Object.getOwnPropertyNames(c._options||{}),e=Object.getOwnPropertyNames(c._calls||{}),f=c._inherited||[],g=c._d3options||[],h=d.concat(e).concat(f).concat(g);h.unshift(c),h.unshift(b),d3.rebind.apply(this,h),b._inherited=a.utils.arrayUnique(d.concat(e).concat(f).concat(d).concat(b._inherited||[])),b._d3options=a.utils.arrayUnique(g.concat(b._d3options||[]))},a.utils.initSVG=function(a){a.classed({"nvd3-svg":!0})},a.utils.sanitizeHeight=function(a,b){return a||parseInt(b.style("height"),10)||400},a.utils.sanitizeWidth=function(a,b){return a||parseInt(b.style("width"),10)||960},a.utils.availableHeight=function(b,c,d){return a.utils.sanitizeHeight(b,c)-d.top-d.bottom},a.utils.availableWidth=function(b,c,d){return a.utils.sanitizeWidth(b,c)-d.left-d.right},a.utils.noData=function(b,c){var d=b.options(),e=d.margin(),f=d.noData(),g=null==f?["No Data Available."]:[f],h=a.utils.availableHeight(d.height(),c,e),i=a.utils.availableWidth(d.width(),c,e),j=e.left+i/2,k=e.top+h/2;c.selectAll("g").remove();var l=c.selectAll(".nv-noData").data(g);l.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),l.attr("x",j).attr("y",k).text(function(a){return a})},a.models.axis=function(){"use strict";function b(g){return s.reset(),g.each(function(b){var g=d3.select(this);a.utils.initSVG(g);var p=g.selectAll("g.nv-wrap.nv-axis").data([b]),q=p.enter().append("g").attr("class","nvd3 nv-wrap nv-axis"),t=(q.append("g"),p.select("g"));null!==n?c.ticks(n):("top"==c.orient()||"bottom"==c.orient())&&c.ticks(Math.abs(d.range()[1]-d.range()[0])/100),t.watchTransition(s,"axis").call(c),r=r||c.scale();var u=c.tickFormat();null==u&&(u=r.tickFormat());var v=t.selectAll("text.nv-axislabel").data([h||null]);v.exit().remove();var w,x,y;switch(c.orient()){case"top":v.enter().append("text").attr("class","nv-axislabel"),y=d.range().length<2?0:2===d.range().length?d.range()[1]:d.range()[d.range().length-1]+(d.range()[1]-d.range()[0]),v.attr("text-anchor","middle").attr("y",0).attr("x",y/2),i&&(x=p.selectAll("g.nv-axisMaxMin").data(d.domain()),x.enter().append("g").attr("class",function(a,b){return["nv-axisMaxMin","nv-axisMaxMin-x",0==b?"nv-axisMin-x":"nv-axisMax-x"].join(" ")}).append("text"),x.exit().remove(),x.attr("transform",function(b){return"translate("+a.utils.NaNtoZero(d(b))+",0)"}).select("text").attr("dy","-0.5em").attr("y",-c.tickPadding()).attr("text-anchor","middle").text(function(a){var b=u(a);return(""+b).match("NaN")?"":b}),x.watchTransition(s,"min-max top").attr("transform",function(b,c){return"translate("+a.utils.NaNtoZero(d.range()[c])+",0)"}));break;case"bottom":w=o+36;var z=30,A=0,B=t.selectAll("g").select("text"),C="";if(j%360){B.each(function(){var a=this.getBoundingClientRect(),b=a.width;A=a.height,b>z&&(z=b)}),C="rotate("+j+" 0,"+(A/2+c.tickPadding())+")";var D=Math.abs(Math.sin(j*Math.PI/180));w=(D?D*z:z)+30,B.attr("transform",C).style("text-anchor",j%360>0?"start":"end")}v.enter().append("text").attr("class","nv-axislabel"),y=d.range().length<2?0:2===d.range().length?d.range()[1]:d.range()[d.range().length-1]+(d.range()[1]-d.range()[0]),v.attr("text-anchor","middle").attr("y",w).attr("x",y/2),i&&(x=p.selectAll("g.nv-axisMaxMin").data([d.domain()[0],d.domain()[d.domain().length-1]]),x.enter().append("g").attr("class",function(a,b){return["nv-axisMaxMin","nv-axisMaxMin-x",0==b?"nv-axisMin-x":"nv-axisMax-x"].join(" ")}).append("text"),x.exit().remove(),x.attr("transform",function(b){return"translate("+a.utils.NaNtoZero(d(b)+(m?d.rangeBand()/2:0))+",0)"}).select("text").attr("dy",".71em").attr("y",c.tickPadding()).attr("transform",C).style("text-anchor",j?j%360>0?"start":"end":"middle").text(function(a){var b=u(a);return(""+b).match("NaN")?"":b}),x.watchTransition(s,"min-max bottom").attr("transform",function(b){return"translate("+a.utils.NaNtoZero(d(b)+(m?d.rangeBand()/2:0))+",0)"})),l&&B.attr("transform",function(a,b){return"translate(0,"+(b%2==0?"0":"12")+")"});break;case"right":v.enter().append("text").attr("class","nv-axislabel"),v.style("text-anchor",k?"middle":"begin").attr("transform",k?"rotate(90)":"").attr("y",k?-Math.max(e.right,f)+12:-10).attr("x",k?d3.max(d.range())/2:c.tickPadding()),i&&(x=p.selectAll("g.nv-axisMaxMin").data(d.domain()),x.enter().append("g").attr("class",function(a,b){return["nv-axisMaxMin","nv-axisMaxMin-y",0==b?"nv-axisMin-y":"nv-axisMax-y"].join(" ")}).append("text").style("opacity",0),x.exit().remove(),x.attr("transform",function(b){return"translate(0,"+a.utils.NaNtoZero(d(b))+")"}).select("text").attr("dy",".32em").attr("y",0).attr("x",c.tickPadding()).style("text-anchor","start").text(function(a){var b=u(a);return(""+b).match("NaN")?"":b}),x.watchTransition(s,"min-max right").attr("transform",function(b,c){return"translate(0,"+a.utils.NaNtoZero(d.range()[c])+")"}).select("text").style("opacity",1));break;case"left":v.enter().append("text").attr("class","nv-axislabel"),v.style("text-anchor",k?"middle":"end").attr("transform",k?"rotate(-90)":"").attr("y",k?-Math.max(e.left,f)+25-(o||0):-10).attr("x",k?-d3.max(d.range())/2:-c.tickPadding()),i&&(x=p.selectAll("g.nv-axisMaxMin").data(d.domain()),x.enter().append("g").attr("class",function(a,b){return["nv-axisMaxMin","nv-axisMaxMin-y",0==b?"nv-axisMin-y":"nv-axisMax-y"].join(" ")}).append("text").style("opacity",0),x.exit().remove(),x.attr("transform",function(b){return"translate(0,"+a.utils.NaNtoZero(r(b))+")"}).select("text").attr("dy",".32em").attr("y",0).attr("x",-c.tickPadding()).attr("text-anchor","end").text(function(a){var b=u(a);return(""+b).match("NaN")?"":b}),x.watchTransition(s,"min-max right").attr("transform",function(b,c){return"translate(0,"+a.utils.NaNtoZero(d.range()[c])+")"}).select("text").style("opacity",1))}if(v.text(function(a){return a}),!i||"left"!==c.orient()&&"right"!==c.orient()||(t.selectAll("g").each(function(a){d3.select(this).select("text").attr("opacity",1),(d(a)d.range()[0]-10)&&((a>1e-10||-1e-10>a)&&d3.select(this).attr("opacity",0),d3.select(this).select("text").attr("opacity",0))}),d.domain()[0]==d.domain()[1]&&0==d.domain()[0]&&p.selectAll("g.nv-axisMaxMin").style("opacity",function(a,b){return b?0:1})),i&&("top"===c.orient()||"bottom"===c.orient())){var E=[];p.selectAll("g.nv-axisMaxMin").each(function(a,b){try{E.push(b?d(a)-this.getBoundingClientRect().width-4:d(a)+this.getBoundingClientRect().width+4)}catch(c){E.push(b?d(a)-4:d(a)+4)}}),t.selectAll("g").each(function(a){(d(a)E[1])&&(a>1e-10||-1e-10>a?d3.select(this).remove():d3.select(this).select("text").remove())})}t.selectAll(".tick").filter(function(a){return!parseFloat(Math.round(1e5*a)/1e6)&&void 0!==a}).classed("zero",!0),r=d.copy()}),s.renderEnd("axis immediate"),b}var c=d3.svg.axis(),d=d3.scale.linear(),e={top:0,right:0,bottom:0,left:0},f=75,g=60,h=null,i=!0,j=0,k=!0,l=!1,m=!1,n=null,o=0,p=250,q=d3.dispatch("renderEnd");c.scale(d).orient("bottom").tickFormat(function(a){return a});var r,s=a.utils.renderWatch(q,p);return b.axis=c,b.dispatch=q,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{axisLabelDistance:{get:function(){return o},set:function(a){o=a}},staggerLabels:{get:function(){return l},set:function(a){l=a}},rotateLabels:{get:function(){return j},set:function(a){j=a}},rotateYLabel:{get:function(){return k},set:function(a){k=a}},showMaxMin:{get:function(){return i},set:function(a){i=a}},axisLabel:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return g},set:function(a){g=a}},ticks:{get:function(){return n},set:function(a){n=a}},width:{get:function(){return f},set:function(a){f=a}},margin:{get:function(){return e},set:function(a){e.top=void 0!==a.top?a.top:e.top,e.right=void 0!==a.right?a.right:e.right,e.bottom=void 0!==a.bottom?a.bottom:e.bottom,e.left=void 0!==a.left?a.left:e.left}},duration:{get:function(){return p},set:function(a){p=a,s.reset(p)}},scale:{get:function(){return d},set:function(e){d=e,c.scale(d),m="function"==typeof d.rangeBands,a.utils.inheritOptionsD3(b,d,["domain","range","rangeBand","rangeBands"])}}}),a.utils.initOptions(b),a.utils.inheritOptionsD3(b,c,["orient","tickValues","tickSubdivide","tickSize","tickPadding","tickFormat"]),a.utils.inheritOptionsD3(b,d,["domain","range","rangeBand","rangeBands"]),b},a.models.boxPlot=function(){"use strict";function b(l){return v.reset(),l.each(function(b){var l=j-i.left-i.right,p=k-i.top-i.bottom;r=d3.select(this),a.utils.initSVG(r),m.domain(c||b.map(function(a,b){return o(a,b)})).rangeBands(e||[0,l],.1);var w=[];if(!d){var x=d3.min(b.map(function(a){var b=[];return b.push(a.values.Q1),a.values.hasOwnProperty("whisker_low")&&null!==a.values.whisker_low&&b.push(a.values.whisker_low),a.values.hasOwnProperty("outliers")&&null!==a.values.outliers&&(b=b.concat(a.values.outliers)),d3.min(b)})),y=d3.max(b.map(function(a){var b=[];return b.push(a.values.Q3),a.values.hasOwnProperty("whisker_high")&&null!==a.values.whisker_high&&b.push(a.values.whisker_high),a.values.hasOwnProperty("outliers")&&null!==a.values.outliers&&(b=b.concat(a.values.outliers)),d3.max(b)}));w=[x,y]}n.domain(d||w),n.range(f||[p,0]),g=g||m,h=h||n.copy().range([n(0),n(0)]);{var z=r.selectAll("g.nv-wrap").data([b]);z.enter().append("g").attr("class","nvd3 nv-wrap")}z.attr("transform","translate("+i.left+","+i.top+")");var A=z.selectAll(".nv-boxplot").data(function(a){return a}),B=A.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6);A.attr("class","nv-boxplot").attr("transform",function(a,b){return"translate("+(m(o(a,b))+.05*m.rangeBand())+", 0)"}).classed("hover",function(a){return a.hover}),A.watchTransition(v,"nv-boxplot: boxplots").style("stroke-opacity",1).style("fill-opacity",.75).delay(function(a,c){return c*t/b.length}).attr("transform",function(a,b){return"translate("+(m(o(a,b))+.05*m.rangeBand())+", 0)"}),A.exit().remove(),B.each(function(a,b){var c=d3.select(this);["low","high"].forEach(function(d){a.values.hasOwnProperty("whisker_"+d)&&null!==a.values["whisker_"+d]&&(c.append("line").style("stroke",a.color?a.color:q(a,b)).attr("class","nv-boxplot-whisker nv-boxplot-"+d),c.append("line").style("stroke",a.color?a.color:q(a,b)).attr("class","nv-boxplot-tick nv-boxplot-"+d))})});var C=A.selectAll(".nv-boxplot-outlier").data(function(a){return a.values.hasOwnProperty("outliers")&&null!==a.values.outliers?a.values.outliers:[]});C.enter().append("circle").style("fill",function(a,b,c){return q(a,c)}).style("stroke",function(a,b,c){return q(a,c)}).on("mouseover",function(a,b,c){d3.select(this).classed("hover",!0),s.elementMouseover({series:{key:a,color:q(a,c)},e:d3.event})}).on("mouseout",function(a,b,c){d3.select(this).classed("hover",!1),s.elementMouseout({series:{key:a,color:q(a,c)},e:d3.event})}).on("mousemove",function(){s.elementMousemove({e:d3.event})}),C.attr("class","nv-boxplot-outlier"),C.watchTransition(v,"nv-boxplot: nv-boxplot-outlier").attr("cx",.45*m.rangeBand()).attr("cy",function(a){return n(a)}).attr("r","3"),C.exit().remove();var D=function(){return null===u?.9*m.rangeBand():Math.min(75,.9*m.rangeBand())},E=function(){return.45*m.rangeBand()-D()/2},F=function(){return.45*m.rangeBand()+D()/2};["low","high"].forEach(function(a){var b="low"===a?"Q1":"Q3";A.select("line.nv-boxplot-whisker.nv-boxplot-"+a).watchTransition(v,"nv-boxplot: boxplots").attr("x1",.45*m.rangeBand()).attr("y1",function(b){return n(b.values["whisker_"+a])}).attr("x2",.45*m.rangeBand()).attr("y2",function(a){return n(a.values[b])}),A.select("line.nv-boxplot-tick.nv-boxplot-"+a).watchTransition(v,"nv-boxplot: boxplots").attr("x1",E).attr("y1",function(b){return n(b.values["whisker_"+a])}).attr("x2",F).attr("y2",function(b){return n(b.values["whisker_"+a])})}),["low","high"].forEach(function(a){B.selectAll(".nv-boxplot-"+a).on("mouseover",function(b,c,d){d3.select(this).classed("hover",!0),s.elementMouseover({series:{key:b.values["whisker_"+a],color:q(b,d)},e:d3.event})}).on("mouseout",function(b,c,d){d3.select(this).classed("hover",!1),s.elementMouseout({series:{key:b.values["whisker_"+a],color:q(b,d)},e:d3.event})}).on("mousemove",function(){s.elementMousemove({e:d3.event})})}),B.append("rect").attr("class","nv-boxplot-box").on("mouseover",function(a,b){d3.select(this).classed("hover",!0),s.elementMouseover({key:a.label,value:a.label,series:[{key:"Q3",value:a.values.Q3,color:a.color||q(a,b)},{key:"Q2",value:a.values.Q2,color:a.color||q(a,b)},{key:"Q1",value:a.values.Q1,color:a.color||q(a,b)}],data:a,index:b,e:d3.event})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),s.elementMouseout({key:a.label,value:a.label,series:[{key:"Q3",value:a.values.Q3,color:a.color||q(a,b)},{key:"Q2",value:a.values.Q2,color:a.color||q(a,b)},{key:"Q1",value:a.values.Q1,color:a.color||q(a,b)}],data:a,index:b,e:d3.event})}).on("mousemove",function(){s.elementMousemove({e:d3.event})}),A.select("rect.nv-boxplot-box").watchTransition(v,"nv-boxplot: boxes").attr("y",function(a){return n(a.values.Q3)}).attr("width",D).attr("x",E).attr("height",function(a){return Math.abs(n(a.values.Q3)-n(a.values.Q1))||1}).style("fill",function(a,b){return a.color||q(a,b)}).style("stroke",function(a,b){return a.color||q(a,b)}),B.append("line").attr("class","nv-boxplot-median"),A.select("line.nv-boxplot-median").watchTransition(v,"nv-boxplot: boxplots line").attr("x1",E).attr("y1",function(a){return n(a.values.Q2)}).attr("x2",F).attr("y2",function(a){return n(a.values.Q2)}),g=m.copy(),h=n.copy()}),v.renderEnd("nv-boxplot immediate"),b}var c,d,e,f,g,h,i={top:0,right:0,bottom:0,left:0},j=960,k=500,l=Math.floor(1e4*Math.random()),m=d3.scale.ordinal(),n=d3.scale.linear(),o=function(a){return a.x},p=function(a){return a.y},q=a.utils.defaultColor(),r=null,s=d3.dispatch("elementMouseover","elementMouseout","elementMousemove","renderEnd"),t=250,u=null,v=a.utils.renderWatch(s,t);return b.dispatch=s,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return j},set:function(a){j=a}},height:{get:function(){return k},set:function(a){k=a}},maxBoxWidth:{get:function(){return u},set:function(a){u=a}},x:{get:function(){return o},set:function(a){o=a}},y:{get:function(){return p},set:function(a){p=a}},xScale:{get:function(){return m},set:function(a){m=a}},yScale:{get:function(){return n},set:function(a){n=a}},xDomain:{get:function(){return c},set:function(a){c=a}},yDomain:{get:function(){return d},set:function(a){d=a}},xRange:{get:function(){return e},set:function(a){e=a}},yRange:{get:function(){return f},set:function(a){f=a}},id:{get:function(){return l},set:function(a){l=a}},margin:{get:function(){return i},set:function(a){i.top=void 0!==a.top?a.top:i.top,i.right=void 0!==a.right?a.right:i.right,i.bottom=void 0!==a.bottom?a.bottom:i.bottom,i.left=void 0!==a.left?a.left:i.left}},color:{get:function(){return q},set:function(b){q=a.utils.getColor(b)}},duration:{get:function(){return t},set:function(a){t=a,v.reset(t)}}}),a.utils.initOptions(b),b},a.models.boxPlotChart=function(){"use strict";function b(k){return t.reset(),t.models(e),l&&t.models(f),m&&t.models(g),k.each(function(k){var p=d3.select(this);a.utils.initSVG(p);var t=(i||parseInt(p.style("width"))||960)-h.left-h.right,u=(j||parseInt(p.style("height"))||400)-h.top-h.bottom;if(b.update=function(){r.beforeUpdate(),p.transition().duration(s).call(b)},b.container=this,!(k&&k.length&&k.filter(function(a){return a.values.hasOwnProperty("Q1")&&a.values.hasOwnProperty("Q2")&&a.values.hasOwnProperty("Q3")}).length)){var v=p.selectAll(".nv-noData").data([q]);return v.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),v.attr("x",h.left+t/2).attr("y",h.top+u/2).text(function(a){return a}),b}p.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale().clamp(!0);var w=p.selectAll("g.nv-wrap.nv-boxPlotWithAxes").data([k]),x=w.enter().append("g").attr("class","nvd3 nv-wrap nv-boxPlotWithAxes").append("g"),y=x.append("defs"),z=w.select("g"); -x.append("g").attr("class","nv-x nv-axis"),x.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),x.append("g").attr("class","nv-barsWrap"),z.attr("transform","translate("+h.left+","+h.top+")"),n&&z.select(".nv-y.nv-axis").attr("transform","translate("+t+",0)"),e.width(t).height(u);var A=z.select(".nv-barsWrap").datum(k.filter(function(a){return!a.disabled}));if(A.transition().call(e),y.append("clipPath").attr("id","nv-x-label-clip-"+e.id()).append("rect"),z.select("#nv-x-label-clip-"+e.id()+" rect").attr("width",c.rangeBand()*(o?2:1)).attr("height",16).attr("x",-c.rangeBand()/(o?1:2)),l){f.scale(c).ticks(a.utils.calcTicksX(t/100,k)).tickSize(-u,0),z.select(".nv-x.nv-axis").attr("transform","translate(0,"+d.range()[0]+")"),z.select(".nv-x.nv-axis").call(f);var B=z.select(".nv-x.nv-axis").selectAll("g");o&&B.selectAll("text").attr("transform",function(a,b,c){return"translate(0,"+(c%2==0?"5":"17")+")"})}m&&(g.scale(d).ticks(Math.floor(u/36)).tickSize(-t,0),z.select(".nv-y.nv-axis").call(g)),z.select(".nv-zeroLine line").attr("x1",0).attr("x2",t).attr("y1",d(0)).attr("y2",d(0))}),t.renderEnd("nv-boxplot chart immediate"),b}var c,d,e=a.models.boxPlot(),f=a.models.axis(),g=a.models.axis(),h={top:15,right:10,bottom:50,left:60},i=null,j=null,k=a.utils.getColor(),l=!0,m=!0,n=!1,o=!1,p=a.models.tooltip(),q="No Data Available.",r=d3.dispatch("tooltipShow","tooltipHide","beforeUpdate","renderEnd"),s=250;f.orient("bottom").showMaxMin(!1).tickFormat(function(a){return a}),g.orient(n?"right":"left").tickFormat(d3.format(",.1f")),p.duration(0);var t=a.utils.renderWatch(r,s);return e.dispatch.on("elementMouseover.tooltip",function(a){p.data(a).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(a){p.data(a).hidden(!0)}),e.dispatch.on("elementMousemove.tooltip",function(){p.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=r,b.boxplot=e,b.xAxis=f,b.yAxis=g,b.tooltip=p,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return i},set:function(a){i=a}},height:{get:function(){return j},set:function(a){j=a}},staggerLabels:{get:function(){return o},set:function(a){o=a}},showXAxis:{get:function(){return l},set:function(a){l=a}},showYAxis:{get:function(){return m},set:function(a){m=a}},tooltips:{get:function(){return tooltips},set:function(a){tooltips=a}},tooltipContent:{get:function(){return p},set:function(a){p=a}},noData:{get:function(){return q},set:function(a){q=a}},margin:{get:function(){return h},set:function(a){h.top=void 0!==a.top?a.top:h.top,h.right=void 0!==a.right?a.right:h.right,h.bottom=void 0!==a.bottom?a.bottom:h.bottom,h.left=void 0!==a.left?a.left:h.left}},duration:{get:function(){return s},set:function(a){s=a,t.reset(s),e.duration(s),f.duration(s),g.duration(s)}},color:{get:function(){return k},set:function(b){k=a.utils.getColor(b),e.color(k)}},rightAlignYAxis:{get:function(){return n},set:function(a){n=a,g.orient(a?"right":"left")}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.bullet=function(){"use strict";function b(d){return d.each(function(b,d){var p=m-c.left-c.right,s=n-c.top-c.bottom;o=d3.select(this),a.utils.initSVG(o);{var t=f.call(this,b,d).slice().sort(d3.descending),u=g.call(this,b,d).slice().sort(d3.descending),v=h.call(this,b,d).slice().sort(d3.descending),w=i.call(this,b,d).slice(),x=j.call(this,b,d).slice(),y=k.call(this,b,d).slice(),z=d3.scale.linear().domain(d3.extent(d3.merge([l,t]))).range(e?[p,0]:[0,p]);this.__chart__||d3.scale.linear().domain([0,1/0]).range(z.range())}this.__chart__=z;var A=d3.min(t),B=d3.max(t),C=t[1],D=o.selectAll("g.nv-wrap.nv-bullet").data([b]),E=D.enter().append("g").attr("class","nvd3 nv-wrap nv-bullet"),F=E.append("g"),G=D.select("g");F.append("rect").attr("class","nv-range nv-rangeMax"),F.append("rect").attr("class","nv-range nv-rangeAvg"),F.append("rect").attr("class","nv-range nv-rangeMin"),F.append("rect").attr("class","nv-measure"),D.attr("transform","translate("+c.left+","+c.top+")");var H=function(a){return Math.abs(z(a)-z(0))},I=function(a){return z(0>a?a:0)};G.select("rect.nv-rangeMax").attr("height",s).attr("width",H(B>0?B:A)).attr("x",I(B>0?B:A)).datum(B>0?B:A),G.select("rect.nv-rangeAvg").attr("height",s).attr("width",H(C)).attr("x",I(C)).datum(C),G.select("rect.nv-rangeMin").attr("height",s).attr("width",H(B)).attr("x",I(B)).attr("width",H(B>0?A:B)).attr("x",I(B>0?A:B)).datum(B>0?A:B),G.select("rect.nv-measure").style("fill",q).attr("height",s/3).attr("y",s/3).attr("width",0>v?z(0)-z(v[0]):z(v[0])-z(0)).attr("x",I(v)).on("mouseover",function(){r.elementMouseover({value:v[0],label:y[0]||"Current",color:d3.select(this).style("fill")})}).on("mousemove",function(){r.elementMousemove({value:v[0],label:y[0]||"Current",color:d3.select(this).style("fill")})}).on("mouseout",function(){r.elementMouseout({value:v[0],label:y[0]||"Current",color:d3.select(this).style("fill")})});var J=s/6,K=u.map(function(a,b){return{value:a,label:x[b]}});F.selectAll("path.nv-markerTriangle").data(K).enter().append("path").attr("class","nv-markerTriangle").attr("transform",function(a){return"translate("+z(a.value)+","+s/2+")"}).attr("d","M0,"+J+"L"+J+","+-J+" "+-J+","+-J+"Z").on("mouseover",function(a){r.elementMouseover({value:a.value,label:a.label||"Previous",color:d3.select(this).style("fill"),pos:[z(a.value),s/2]})}).on("mousemove",function(a){r.elementMousemove({value:a.value,label:a.label||"Previous",color:d3.select(this).style("fill")})}).on("mouseout",function(a){r.elementMouseout({value:a.value,label:a.label||"Previous",color:d3.select(this).style("fill")})}),D.selectAll(".nv-range").on("mouseover",function(a,b){var c=w[b]||(b?1==b?"Mean":"Minimum":"Maximum");r.elementMouseover({value:a,label:c,color:d3.select(this).style("fill")})}).on("mousemove",function(){r.elementMousemove({value:v[0],label:y[0]||"Previous",color:d3.select(this).style("fill")})}).on("mouseout",function(a,b){var c=w[b]||(b?1==b?"Mean":"Minimum":"Maximum");r.elementMouseout({value:a,label:c,color:d3.select(this).style("fill")})})}),b}var c={top:0,right:0,bottom:0,left:0},d="left",e=!1,f=function(a){return a.ranges},g=function(a){return a.markers?a.markers:[0]},h=function(a){return a.measures},i=function(a){return a.rangeLabels?a.rangeLabels:[]},j=function(a){return a.markerLabels?a.markerLabels:[]},k=function(a){return a.measureLabels?a.measureLabels:[]},l=[0],m=380,n=30,o=null,p=null,q=a.utils.getColor(["#1f77b4"]),r=d3.dispatch("elementMouseover","elementMouseout","elementMousemove");return b.dispatch=r,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{ranges:{get:function(){return f},set:function(a){f=a}},markers:{get:function(){return g},set:function(a){g=a}},measures:{get:function(){return h},set:function(a){h=a}},forceX:{get:function(){return l},set:function(a){l=a}},width:{get:function(){return m},set:function(a){m=a}},height:{get:function(){return n},set:function(a){n=a}},tickFormat:{get:function(){return p},set:function(a){p=a}},margin:{get:function(){return c},set:function(a){c.top=void 0!==a.top?a.top:c.top,c.right=void 0!==a.right?a.right:c.right,c.bottom=void 0!==a.bottom?a.bottom:c.bottom,c.left=void 0!==a.left?a.left:c.left}},orient:{get:function(){return d},set:function(a){d=a,e="right"==d||"bottom"==d}},color:{get:function(){return q},set:function(b){q=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.bulletChart=function(){"use strict";function b(d){return d.each(function(e,o){var p=d3.select(this);a.utils.initSVG(p);var q=a.utils.availableWidth(k,p,g),r=l-g.top-g.bottom;if(b.update=function(){b(d)},b.container=this,!e||!h.call(this,e,o))return a.utils.noData(b,p),b;p.selectAll(".nv-noData").remove();var s=h.call(this,e,o).slice().sort(d3.descending),t=i.call(this,e,o).slice().sort(d3.descending),u=j.call(this,e,o).slice().sort(d3.descending),v=p.selectAll("g.nv-wrap.nv-bulletChart").data([e]),w=v.enter().append("g").attr("class","nvd3 nv-wrap nv-bulletChart"),x=w.append("g"),y=v.select("g");x.append("g").attr("class","nv-bulletWrap"),x.append("g").attr("class","nv-titles"),v.attr("transform","translate("+g.left+","+g.top+")");var z=d3.scale.linear().domain([0,Math.max(s[0],t[0],u[0])]).range(f?[q,0]:[0,q]),A=this.__chart__||d3.scale.linear().domain([0,1/0]).range(z.range());this.__chart__=z;var B=x.select(".nv-titles").append("g").attr("text-anchor","end").attr("transform","translate(-6,"+(l-g.top-g.bottom)/2+")");B.append("text").attr("class","nv-title").text(function(a){return a.title}),B.append("text").attr("class","nv-subtitle").attr("dy","1em").text(function(a){return a.subtitle}),c.width(q).height(r);var C=y.select(".nv-bulletWrap");d3.transition(C).call(c);var D=m||z.tickFormat(q/100),E=y.selectAll("g.nv-tick").data(z.ticks(n?n:q/50),function(a){return this.textContent||D(a)}),F=E.enter().append("g").attr("class","nv-tick").attr("transform",function(a){return"translate("+A(a)+",0)"}).style("opacity",1e-6);F.append("line").attr("y1",r).attr("y2",7*r/6),F.append("text").attr("text-anchor","middle").attr("dy","1em").attr("y",7*r/6).text(D);var G=d3.transition(E).attr("transform",function(a){return"translate("+z(a)+",0)"}).style("opacity",1);G.select("line").attr("y1",r).attr("y2",7*r/6),G.select("text").attr("y",7*r/6),d3.transition(E.exit()).attr("transform",function(a){return"translate("+z(a)+",0)"}).style("opacity",1e-6).remove()}),d3.timer.flush(),b}var c=a.models.bullet(),d=a.models.tooltip(),e="left",f=!1,g={top:5,right:40,bottom:20,left:120},h=function(a){return a.ranges},i=function(a){return a.markers?a.markers:[0]},j=function(a){return a.measures},k=null,l=55,m=null,n=null,o=null,p=d3.dispatch("tooltipShow","tooltipHide");return d.duration(0).headerEnabled(!1),c.dispatch.on("elementMouseover.tooltip",function(a){a.series={key:a.label,value:a.value,color:a.color},d.data(a).hidden(!1)}),c.dispatch.on("elementMouseout.tooltip",function(){d.hidden(!0)}),c.dispatch.on("elementMousemove.tooltip",function(){d.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.bullet=c,b.dispatch=p,b.tooltip=d,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{ranges:{get:function(){return h},set:function(a){h=a}},markers:{get:function(){return i},set:function(a){i=a}},measures:{get:function(){return j},set:function(a){j=a}},width:{get:function(){return k},set:function(a){k=a}},height:{get:function(){return l},set:function(a){l=a}},tickFormat:{get:function(){return m},set:function(a){m=a}},ticks:{get:function(){return n},set:function(a){n=a}},noData:{get:function(){return o},set:function(a){o=a}},tooltips:{get:function(){return d.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),d.enabled(!!b)}},tooltipContent:{get:function(){return d.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),d.contentGenerator(b)}},margin:{get:function(){return g},set:function(a){g.top=void 0!==a.top?a.top:g.top,g.right=void 0!==a.right?a.right:g.right,g.bottom=void 0!==a.bottom?a.bottom:g.bottom,g.left=void 0!==a.left?a.left:g.left}},orient:{get:function(){return e},set:function(a){e=a,f="right"==e||"bottom"==e}}}),a.utils.inheritOptions(b,c),a.utils.initOptions(b),b},a.models.candlestickBar=function(){"use strict";function b(x){return x.each(function(b){c=d3.select(this);var x=a.utils.availableWidth(i,c,h),y=a.utils.availableHeight(j,c,h);a.utils.initSVG(c);var A=x/b[0].values.length*.45;l.domain(d||d3.extent(b[0].values.map(n).concat(t))),l.range(v?f||[.5*x/b[0].values.length,x*(b[0].values.length-.5)/b[0].values.length]:f||[5+A/2,x-A/2-5]),m.domain(e||[d3.min(b[0].values.map(s).concat(u)),d3.max(b[0].values.map(r).concat(u))]).range(g||[y,0]),l.domain()[0]===l.domain()[1]&&l.domain(l.domain()[0]?[l.domain()[0]-.01*l.domain()[0],l.domain()[1]+.01*l.domain()[1]]:[-1,1]),m.domain()[0]===m.domain()[1]&&m.domain(m.domain()[0]?[m.domain()[0]+.01*m.domain()[0],m.domain()[1]-.01*m.domain()[1]]:[-1,1]);var B=d3.select(this).selectAll("g.nv-wrap.nv-candlestickBar").data([b[0].values]),C=B.enter().append("g").attr("class","nvd3 nv-wrap nv-candlestickBar"),D=C.append("defs"),E=C.append("g"),F=B.select("g");E.append("g").attr("class","nv-ticks"),B.attr("transform","translate("+h.left+","+h.top+")"),c.on("click",function(a,b){z.chartClick({data:a,index:b,pos:d3.event,id:k})}),D.append("clipPath").attr("id","nv-chart-clip-path-"+k).append("rect"),B.select("#nv-chart-clip-path-"+k+" rect").attr("width",x).attr("height",y),F.attr("clip-path",w?"url(#nv-chart-clip-path-"+k+")":"");var G=B.select(".nv-ticks").selectAll(".nv-tick").data(function(a){return a});G.exit().remove();{var H=G.enter().append("g").attr("class",function(a,b,c){return(p(a,b)>q(a,b)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+c+"-"+b});H.append("line").attr("class","nv-candlestick-lines").attr("transform",function(a,b){return"translate("+l(n(a,b))+",0)"}).attr("x1",0).attr("y1",function(a,b){return m(r(a,b))}).attr("x2",0).attr("y2",function(a,b){return m(s(a,b))}),H.append("rect").attr("class","nv-candlestick-rects nv-bars").attr("transform",function(a,b){return"translate("+(l(n(a,b))-A/2)+","+(m(o(a,b))-(p(a,b)>q(a,b)?m(q(a,b))-m(p(a,b)):0))+")"}).attr("x",0).attr("y",0).attr("width",A).attr("height",function(a,b){var c=p(a,b),d=q(a,b);return c>d?m(d)-m(c):m(c)-m(d)})}c.selectAll(".nv-candlestick-lines").transition().attr("transform",function(a,b){return"translate("+l(n(a,b))+",0)"}).attr("x1",0).attr("y1",function(a,b){return m(r(a,b))}).attr("x2",0).attr("y2",function(a,b){return m(s(a,b))}),c.selectAll(".nv-candlestick-rects").transition().attr("transform",function(a,b){return"translate("+(l(n(a,b))-A/2)+","+(m(o(a,b))-(p(a,b)>q(a,b)?m(q(a,b))-m(p(a,b)):0))+")"}).attr("x",0).attr("y",0).attr("width",A).attr("height",function(a,b){var c=p(a,b),d=q(a,b);return c>d?m(d)-m(c):m(c)-m(d)})}),b}var c,d,e,f,g,h={top:0,right:0,bottom:0,left:0},i=null,j=null,k=Math.floor(1e4*Math.random()),l=d3.scale.linear(),m=d3.scale.linear(),n=function(a){return a.x},o=function(a){return a.y},p=function(a){return a.open},q=function(a){return a.close},r=function(a){return a.high},s=function(a){return a.low},t=[],u=[],v=!1,w=!0,x=a.utils.defaultColor(),y=!1,z=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd","chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove");return b.highlightPoint=function(a,d){b.clearHighlights(),c.select(".nv-candlestickBar .nv-tick-0-"+a).classed("hover",d)},b.clearHighlights=function(){c.select(".nv-candlestickBar .nv-tick.hover").classed("hover",!1)},b.dispatch=z,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return i},set:function(a){i=a}},height:{get:function(){return j},set:function(a){j=a}},xScale:{get:function(){return l},set:function(a){l=a}},yScale:{get:function(){return m},set:function(a){m=a}},xDomain:{get:function(){return d},set:function(a){d=a}},yDomain:{get:function(){return e},set:function(a){e=a}},xRange:{get:function(){return f},set:function(a){f=a}},yRange:{get:function(){return g},set:function(a){g=a}},forceX:{get:function(){return t},set:function(a){t=a}},forceY:{get:function(){return u},set:function(a){u=a}},padData:{get:function(){return v},set:function(a){v=a}},clipEdge:{get:function(){return w},set:function(a){w=a}},id:{get:function(){return k},set:function(a){k=a}},interactive:{get:function(){return y},set:function(a){y=a}},x:{get:function(){return n},set:function(a){n=a}},y:{get:function(){return o},set:function(a){o=a}},open:{get:function(){return p()},set:function(a){p=a}},close:{get:function(){return q()},set:function(a){q=a}},high:{get:function(){return r},set:function(a){r=a}},low:{get:function(){return s},set:function(a){s=a}},margin:{get:function(){return h},set:function(a){h.top=void 0!=a.top?a.top:h.top,h.right=void 0!=a.right?a.right:h.right,h.bottom=void 0!=a.bottom?a.bottom:h.bottom,h.left=void 0!=a.left?a.left:h.left}},color:{get:function(){return x},set:function(b){x=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.cumulativeLineChart=function(){"use strict";function b(l){return H.reset(),H.models(f),r&&H.models(g),s&&H.models(h),l.each(function(l){function A(){d3.select(b.container).style("cursor","ew-resize")}function E(){G.x=d3.event.x,G.i=Math.round(F.invert(G.x)),K()}function H(){d3.select(b.container).style("cursor","auto"),y.index=G.i,C.stateChange(y)}function K(){bb.data([G]);var a=b.duration();b.duration(0),b.update(),b.duration(a)}var L=d3.select(this);a.utils.initSVG(L),L.classed("nv-chart-"+x,!0);var M=this,N=a.utils.availableWidth(o,L,m),O=a.utils.availableHeight(p,L,m);if(b.update=function(){0===D?L.call(b):L.transition().duration(D).call(b)},b.container=this,y.setter(J(l),b.update).getter(I(l)).update(),y.disabled=l.map(function(a){return!!a.disabled}),!z){var P;z={};for(P in y)z[P]=y[P]instanceof Array?y[P].slice(0):y[P]}var Q=d3.behavior.drag().on("dragstart",A).on("drag",E).on("dragend",H);if(!(l&&l.length&&l.filter(function(a){return a.values.length}).length))return a.utils.noData(b,L),b;if(L.selectAll(".nv-noData").remove(),d=f.xScale(),e=f.yScale(),w)f.yDomain(null);else{var R=l.filter(function(a){return!a.disabled}).map(function(a){var b=d3.extent(a.values,f.y());return b[0]<-.95&&(b[0]=-.95),[(b[0]-b[1])/(1+b[1]),(b[1]-b[0])/(1+b[0])]}),S=[d3.min(R,function(a){return a[0]}),d3.max(R,function(a){return a[1]})];f.yDomain(S)}F.domain([0,l[0].values.length-1]).range([0,N]).clamp(!0);var l=c(G.i,l),T=v?"none":"all",U=L.selectAll("g.nv-wrap.nv-cumulativeLine").data([l]),V=U.enter().append("g").attr("class","nvd3 nv-wrap nv-cumulativeLine").append("g"),W=U.select("g");if(V.append("g").attr("class","nv-interactive"),V.append("g").attr("class","nv-x nv-axis").style("pointer-events","none"),V.append("g").attr("class","nv-y nv-axis"),V.append("g").attr("class","nv-background"),V.append("g").attr("class","nv-linesWrap").style("pointer-events",T),V.append("g").attr("class","nv-avgLinesWrap").style("pointer-events","none"),V.append("g").attr("class","nv-legendWrap"),V.append("g").attr("class","nv-controlsWrap"),q&&(i.width(N),W.select(".nv-legendWrap").datum(l).call(i),m.top!=i.height()&&(m.top=i.height(),O=a.utils.availableHeight(p,L,m)),W.select(".nv-legendWrap").attr("transform","translate(0,"+-m.top+")")),u){var X=[{key:"Re-scale y-axis",disabled:!w}];j.width(140).color(["#444","#444","#444"]).rightAlign(!1).margin({top:5,right:0,bottom:5,left:20}),W.select(".nv-controlsWrap").datum(X).attr("transform","translate(0,"+-m.top+")").call(j)}U.attr("transform","translate("+m.left+","+m.top+")"),t&&W.select(".nv-y.nv-axis").attr("transform","translate("+N+",0)");var Y=l.filter(function(a){return a.tempDisabled});U.select(".tempDisabled").remove(),Y.length&&U.append("text").attr("class","tempDisabled").attr("x",N/2).attr("y","-.71em").style("text-anchor","end").text(Y.map(function(a){return a.key}).join(", ")+" values cannot be calculated for this time period."),v&&(k.width(N).height(O).margin({left:m.left,top:m.top}).svgContainer(L).xScale(d),U.select(".nv-interactive").call(k)),V.select(".nv-background").append("rect"),W.select(".nv-background rect").attr("width",N).attr("height",O),f.y(function(a){return a.display.y}).width(N).height(O).color(l.map(function(a,b){return a.color||n(a,b)}).filter(function(a,b){return!l[b].disabled&&!l[b].tempDisabled}));var Z=W.select(".nv-linesWrap").datum(l.filter(function(a){return!a.disabled&&!a.tempDisabled}));Z.call(f),l.forEach(function(a,b){a.seriesIndex=b});var $=l.filter(function(a){return!a.disabled&&!!B(a)}),_=W.select(".nv-avgLinesWrap").selectAll("line").data($,function(a){return a.key}),ab=function(a){var b=e(B(a));return 0>b?0:b>O?O:b};_.enter().append("line").style("stroke-width",2).style("stroke-dasharray","10,10").style("stroke",function(a){return f.color()(a,a.seriesIndex)}).attr("x1",0).attr("x2",N).attr("y1",ab).attr("y2",ab),_.style("stroke-opacity",function(a){var b=e(B(a));return 0>b||b>O?0:1}).attr("x1",0).attr("x2",N).attr("y1",ab).attr("y2",ab),_.exit().remove();var bb=Z.selectAll(".nv-indexLine").data([G]);bb.enter().append("rect").attr("class","nv-indexLine").attr("width",3).attr("x",-2).attr("fill","red").attr("fill-opacity",.5).style("pointer-events","all").call(Q),bb.attr("transform",function(a){return"translate("+F(a.i)+",0)"}).attr("height",O),r&&(g.scale(d)._ticks(a.utils.calcTicksX(N/70,l)).tickSize(-O,0),W.select(".nv-x.nv-axis").attr("transform","translate(0,"+e.range()[0]+")"),W.select(".nv-x.nv-axis").call(g)),s&&(h.scale(e)._ticks(a.utils.calcTicksY(O/36,l)).tickSize(-N,0),W.select(".nv-y.nv-axis").call(h)),W.select(".nv-background rect").on("click",function(){G.x=d3.mouse(this)[0],G.i=Math.round(F.invert(G.x)),y.index=G.i,C.stateChange(y),K()}),f.dispatch.on("elementClick",function(a){G.i=a.pointIndex,G.x=F(G.i),y.index=G.i,C.stateChange(y),K()}),j.dispatch.on("legendClick",function(a){a.disabled=!a.disabled,w=!a.disabled,y.rescaleY=w,C.stateChange(y),b.update()}),i.dispatch.on("stateChange",function(a){for(var c in a)y[c]=a[c];C.stateChange(y),b.update()}),k.dispatch.on("elementMousemove",function(c){f.clearHighlights();var d,e,i,j=[];if(l.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(g,h){e=a.interactiveBisect(g.values,c.pointXValue,b.x()),f.highlightPoint(h,e,!0);var k=g.values[e];"undefined"!=typeof k&&("undefined"==typeof d&&(d=k),"undefined"==typeof i&&(i=b.xScale()(b.x()(k,e))),j.push({key:g.key,value:b.y()(k,e),color:n(g,g.seriesIndex)}))}),j.length>2){var o=b.yScale().invert(c.mouseY),p=Math.abs(b.yScale().domain()[0]-b.yScale().domain()[1]),q=.03*p,r=a.nearestValueIndex(j.map(function(a){return a.value}),o,q);null!==r&&(j[r].highlight=!0)}var s=g.tickFormat()(b.x()(d,e),e);k.tooltip.position({left:i+m.left,top:c.mouseY+m.top}).chartContainer(M.parentNode).valueFormatter(function(a){return h.tickFormat()(a)}).data({value:s,series:j})(),k.renderGuideLine(i)}),k.dispatch.on("elementMouseout",function(){f.clearHighlights()}),C.on("changeState",function(a){"undefined"!=typeof a.disabled&&(l.forEach(function(b,c){b.disabled=a.disabled[c]}),y.disabled=a.disabled),"undefined"!=typeof a.index&&(G.i=a.index,G.x=F(G.i),y.index=a.index,bb.data([G])),"undefined"!=typeof a.rescaleY&&(w=a.rescaleY),b.update()})}),H.renderEnd("cumulativeLineChart immediate"),b}function c(a,b){return K||(K=f.y()),b.map(function(b){if(!b.values)return b;var c=b.values[a];if(null==c)return b;var d=K(c,a);return-.95>d&&!E?(b.tempDisabled=!0,b):(b.tempDisabled=!1,b.values=b.values.map(function(a,b){return a.display={y:(K(a,b)-d)/(1+d)},a}),b)})}var d,e,f=a.models.line(),g=a.models.axis(),h=a.models.axis(),i=a.models.legend(),j=a.models.legend(),k=a.interactiveGuideline(),l=a.models.tooltip(),m={top:30,right:30,bottom:50,left:60},n=a.utils.defaultColor(),o=null,p=null,q=!0,r=!0,s=!0,t=!1,u=!0,v=!1,w=!0,x=f.id(),y=a.utils.state(),z=null,A=null,B=function(a){return a.average},C=d3.dispatch("stateChange","changeState","renderEnd"),D=250,E=!1;y.index=0,y.rescaleY=w,g.orient("bottom").tickPadding(7),h.orient(t?"right":"left"),l.valueFormatter(function(a,b){return h.tickFormat()(a,b)}).headerFormatter(function(a,b){return g.tickFormat()(a,b)}),j.updateState(!1);var F=d3.scale.linear(),G={i:0,x:0},H=a.utils.renderWatch(C,D),I=function(a){return function(){return{active:a.map(function(a){return!a.disabled}),index:G.i,rescaleY:w}}},J=function(a){return function(b){void 0!==b.index&&(G.i=b.index),void 0!==b.rescaleY&&(w=b.rescaleY),void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};f.dispatch.on("elementMouseover.tooltip",function(a){var c={x:b.x()(a.point),y:b.y()(a.point),color:a.point.color};a.point=c,l.data(a).position(a.pos).hidden(!1)}),f.dispatch.on("elementMouseout.tooltip",function(){l.hidden(!0)});var K=null;return b.dispatch=C,b.lines=f,b.legend=i,b.controls=j,b.xAxis=g,b.yAxis=h,b.interactiveLayer=k,b.state=y,b.tooltip=l,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return o},set:function(a){o=a}},height:{get:function(){return p},set:function(a){p=a}},rescaleY:{get:function(){return w},set:function(a){w=a}},showControls:{get:function(){return u},set:function(a){u=a}},showLegend:{get:function(){return q},set:function(a){q=a}},average:{get:function(){return B},set:function(a){B=a}},defaultState:{get:function(){return z},set:function(a){z=a}},noData:{get:function(){return A},set:function(a){A=a}},showXAxis:{get:function(){return r},set:function(a){r=a}},showYAxis:{get:function(){return s},set:function(a){s=a}},noErrorCheck:{get:function(){return E},set:function(a){E=a}},tooltips:{get:function(){return l.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),l.enabled(!!b)}},tooltipContent:{get:function(){return l.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),l.contentGenerator(b)}},margin:{get:function(){return m},set:function(a){m.top=void 0!==a.top?a.top:m.top,m.right=void 0!==a.right?a.right:m.right,m.bottom=void 0!==a.bottom?a.bottom:m.bottom,m.left=void 0!==a.left?a.left:m.left}},color:{get:function(){return n},set:function(b){n=a.utils.getColor(b),i.color(n)}},useInteractiveGuideline:{get:function(){return v},set:function(a){v=a,a===!0&&(b.interactive(!1),b.useVoronoi(!1))}},rightAlignYAxis:{get:function(){return t},set:function(a){t=a,h.orient(a?"right":"left")}},duration:{get:function(){return D},set:function(a){D=a,f.duration(D),g.duration(D),h.duration(D),H.reset(D)}}}),a.utils.inheritOptions(b,f),a.utils.initOptions(b),b},a.models.discreteBar=function(){"use strict";function b(m){return y.reset(),m.each(function(b){var m=k-j.left-j.right,x=l-j.top-j.bottom;c=d3.select(this),a.utils.initSVG(c),b.forEach(function(a,b){a.values.forEach(function(a){a.series=b})});var z=d&&e?[]:b.map(function(a){return a.values.map(function(a,b){return{x:p(a,b),y:q(a,b),y0:a.y0}})});n.domain(d||d3.merge(z).map(function(a){return a.x})).rangeBands(f||[0,m],.1),o.domain(e||d3.extent(d3.merge(z).map(function(a){return a.y}).concat(r))),o.range(t?g||[x-(o.domain()[0]<0?12:0),o.domain()[1]>0?12:0]:g||[x,0]),h=h||n,i=i||o.copy().range([o(0),o(0)]);{var A=c.selectAll("g.nv-wrap.nv-discretebar").data([b]),B=A.enter().append("g").attr("class","nvd3 nv-wrap nv-discretebar"),C=B.append("g");A.select("g")}C.append("g").attr("class","nv-groups"),A.attr("transform","translate("+j.left+","+j.top+")");var D=A.select(".nv-groups").selectAll(".nv-group").data(function(a){return a},function(a){return a.key});D.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),D.exit().watchTransition(y,"discreteBar: exit groups").style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),D.attr("class",function(a,b){return"nv-group nv-series-"+b}).classed("hover",function(a){return a.hover}),D.watchTransition(y,"discreteBar: groups").style("stroke-opacity",1).style("fill-opacity",.75);var E=D.selectAll("g.nv-bar").data(function(a){return a.values});E.exit().remove();var F=E.enter().append("g").attr("transform",function(a,b){return"translate("+(n(p(a,b))+.05*n.rangeBand())+", "+o(0)+")"}).on("mouseover",function(a,b){d3.select(this).classed("hover",!0),v.elementMouseover({data:a,index:b,color:d3.select(this).style("fill")})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),v.elementMouseout({data:a,index:b,color:d3.select(this).style("fill")})}).on("mousemove",function(a,b){v.elementMousemove({data:a,index:b,color:d3.select(this).style("fill")})}).on("click",function(a,b){v.elementClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}).on("dblclick",function(a,b){v.elementDblClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()});F.append("rect").attr("height",0).attr("width",.9*n.rangeBand()/b.length),t?(F.append("text").attr("text-anchor","middle"),E.select("text").text(function(a,b){return u(q(a,b))}).watchTransition(y,"discreteBar: bars text").attr("x",.9*n.rangeBand()/2).attr("y",function(a,b){return q(a,b)<0?o(q(a,b))-o(0)+12:-4})):E.selectAll("text").remove(),E.attr("class",function(a,b){return q(a,b)<0?"nv-bar negative":"nv-bar positive"}).style("fill",function(a,b){return a.color||s(a,b)}).style("stroke",function(a,b){return a.color||s(a,b)}).select("rect").attr("class",w).watchTransition(y,"discreteBar: bars rect").attr("width",.9*n.rangeBand()/b.length),E.watchTransition(y,"discreteBar: bars").attr("transform",function(a,b){var c=n(p(a,b))+.05*n.rangeBand(),d=q(a,b)<0?o(0):o(0)-o(q(a,b))<1?o(0)-1:o(q(a,b));return"translate("+c+", "+d+")"}).select("rect").attr("height",function(a,b){return Math.max(Math.abs(o(q(a,b))-o(e&&e[0]||0))||1)}),h=n.copy(),i=o.copy()}),y.renderEnd("discreteBar immediate"),b}var c,d,e,f,g,h,i,j={top:0,right:0,bottom:0,left:0},k=960,l=500,m=Math.floor(1e4*Math.random()),n=d3.scale.ordinal(),o=d3.scale.linear(),p=function(a){return a.x},q=function(a){return a.y},r=[0],s=a.utils.defaultColor(),t=!1,u=d3.format(",.2f"),v=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),w="discreteBar",x=250,y=a.utils.renderWatch(v,x);return b.dispatch=v,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return k},set:function(a){k=a}},height:{get:function(){return l},set:function(a){l=a}},forceY:{get:function(){return r},set:function(a){r=a}},showValues:{get:function(){return t},set:function(a){t=a}},x:{get:function(){return p},set:function(a){p=a}},y:{get:function(){return q},set:function(a){q=a}},xScale:{get:function(){return n},set:function(a){n=a}},yScale:{get:function(){return o},set:function(a){o=a}},xDomain:{get:function(){return d},set:function(a){d=a}},yDomain:{get:function(){return e},set:function(a){e=a}},xRange:{get:function(){return f},set:function(a){f=a}},yRange:{get:function(){return g},set:function(a){g=a}},valueFormat:{get:function(){return u},set:function(a){u=a}},id:{get:function(){return m},set:function(a){m=a}},rectClass:{get:function(){return w},set:function(a){w=a}},margin:{get:function(){return j},set:function(a){j.top=void 0!==a.top?a.top:j.top,j.right=void 0!==a.right?a.right:j.right,j.bottom=void 0!==a.bottom?a.bottom:j.bottom,j.left=void 0!==a.left?a.left:j.left}},color:{get:function(){return s},set:function(b){s=a.utils.getColor(b)}},duration:{get:function(){return x},set:function(a){x=a,y.reset(x)}}}),a.utils.initOptions(b),b},a.models.discreteBarChart=function(){"use strict";function b(h){return t.reset(),t.models(e),m&&t.models(f),n&&t.models(g),h.each(function(h){var l=d3.select(this);a.utils.initSVG(l);var q=a.utils.availableWidth(j,l,i),t=a.utils.availableHeight(k,l,i);if(b.update=function(){r.beforeUpdate(),l.transition().duration(s).call(b)},b.container=this,!(h&&h.length&&h.filter(function(a){return a.values.length}).length))return a.utils.noData(b,l),b;l.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale().clamp(!0);var u=l.selectAll("g.nv-wrap.nv-discreteBarWithAxes").data([h]),v=u.enter().append("g").attr("class","nvd3 nv-wrap nv-discreteBarWithAxes").append("g"),w=v.append("defs"),x=u.select("g");v.append("g").attr("class","nv-x nv-axis"),v.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),v.append("g").attr("class","nv-barsWrap"),x.attr("transform","translate("+i.left+","+i.top+")"),o&&x.select(".nv-y.nv-axis").attr("transform","translate("+q+",0)"),e.width(q).height(t);var y=x.select(".nv-barsWrap").datum(h.filter(function(a){return!a.disabled}));if(y.transition().call(e),w.append("clipPath").attr("id","nv-x-label-clip-"+e.id()).append("rect"),x.select("#nv-x-label-clip-"+e.id()+" rect").attr("width",c.rangeBand()*(p?2:1)).attr("height",16).attr("x",-c.rangeBand()/(p?1:2)),m){f.scale(c)._ticks(a.utils.calcTicksX(q/100,h)).tickSize(-t,0),x.select(".nv-x.nv-axis").attr("transform","translate(0,"+(d.range()[0]+(e.showValues()&&d.domain()[0]<0?16:0))+")"),x.select(".nv-x.nv-axis").call(f); -var z=x.select(".nv-x.nv-axis").selectAll("g");p&&z.selectAll("text").attr("transform",function(a,b,c){return"translate(0,"+(c%2==0?"5":"17")+")"})}n&&(g.scale(d)._ticks(a.utils.calcTicksY(t/36,h)).tickSize(-q,0),x.select(".nv-y.nv-axis").call(g)),x.select(".nv-zeroLine line").attr("x1",0).attr("x2",q).attr("y1",d(0)).attr("y2",d(0))}),t.renderEnd("discreteBar chart immediate"),b}var c,d,e=a.models.discreteBar(),f=a.models.axis(),g=a.models.axis(),h=a.models.tooltip(),i={top:15,right:10,bottom:50,left:60},j=null,k=null,l=a.utils.getColor(),m=!0,n=!0,o=!1,p=!1,q=null,r=d3.dispatch("beforeUpdate","renderEnd"),s=250;f.orient("bottom").showMaxMin(!1).tickFormat(function(a){return a}),g.orient(o?"right":"left").tickFormat(d3.format(",.1f")),h.duration(0).headerEnabled(!1).valueFormatter(function(a,b){return g.tickFormat()(a,b)}).keyFormatter(function(a,b){return f.tickFormat()(a,b)});var t=a.utils.renderWatch(r,s);return e.dispatch.on("elementMouseover.tooltip",function(a){a.series={key:b.x()(a.data),value:b.y()(a.data),color:a.color},h.data(a).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(){h.hidden(!0)}),e.dispatch.on("elementMousemove.tooltip",function(){h.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=r,b.discretebar=e,b.xAxis=f,b.yAxis=g,b.tooltip=h,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return j},set:function(a){j=a}},height:{get:function(){return k},set:function(a){k=a}},staggerLabels:{get:function(){return p},set:function(a){p=a}},showXAxis:{get:function(){return m},set:function(a){m=a}},showYAxis:{get:function(){return n},set:function(a){n=a}},noData:{get:function(){return q},set:function(a){q=a}},tooltips:{get:function(){return h.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),h.enabled(!!b)}},tooltipContent:{get:function(){return h.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),h.contentGenerator(b)}},margin:{get:function(){return i},set:function(a){i.top=void 0!==a.top?a.top:i.top,i.right=void 0!==a.right?a.right:i.right,i.bottom=void 0!==a.bottom?a.bottom:i.bottom,i.left=void 0!==a.left?a.left:i.left}},duration:{get:function(){return s},set:function(a){s=a,t.reset(s),e.duration(s),f.duration(s),g.duration(s)}},color:{get:function(){return l},set:function(b){l=a.utils.getColor(b),e.color(l)}},rightAlignYAxis:{get:function(){return o},set:function(a){o=a,g.orient(a?"right":"left")}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.distribution=function(){"use strict";function b(k){return m.reset(),k.each(function(b){var k=(e-("x"===g?d.left+d.right:d.top+d.bottom),"x"==g?"y":"x"),l=d3.select(this);a.utils.initSVG(l),c=c||j;var n=l.selectAll("g.nv-distribution").data([b]),o=n.enter().append("g").attr("class","nvd3 nv-distribution"),p=(o.append("g"),n.select("g"));n.attr("transform","translate("+d.left+","+d.top+")");var q=p.selectAll("g.nv-dist").data(function(a){return a},function(a){return a.key});q.enter().append("g"),q.attr("class",function(a,b){return"nv-dist nv-series-"+b}).style("stroke",function(a,b){return i(a,b)});var r=q.selectAll("line.nv-dist"+g).data(function(a){return a.values});r.enter().append("line").attr(g+"1",function(a,b){return c(h(a,b))}).attr(g+"2",function(a,b){return c(h(a,b))}),m.transition(q.exit().selectAll("line.nv-dist"+g),"dist exit").attr(g+"1",function(a,b){return j(h(a,b))}).attr(g+"2",function(a,b){return j(h(a,b))}).style("stroke-opacity",0).remove(),r.attr("class",function(a,b){return"nv-dist"+g+" nv-dist"+g+"-"+b}).attr(k+"1",0).attr(k+"2",f),m.transition(r,"dist").attr(g+"1",function(a,b){return j(h(a,b))}).attr(g+"2",function(a,b){return j(h(a,b))}),c=j.copy()}),m.renderEnd("distribution immediate"),b}var c,d={top:0,right:0,bottom:0,left:0},e=400,f=8,g="x",h=function(a){return a[g]},i=a.utils.defaultColor(),j=d3.scale.linear(),k=250,l=d3.dispatch("renderEnd"),m=a.utils.renderWatch(l,k);return b.options=a.utils.optionsFunc.bind(b),b.dispatch=l,b.margin=function(a){return arguments.length?(d.top="undefined"!=typeof a.top?a.top:d.top,d.right="undefined"!=typeof a.right?a.right:d.right,d.bottom="undefined"!=typeof a.bottom?a.bottom:d.bottom,d.left="undefined"!=typeof a.left?a.left:d.left,b):d},b.width=function(a){return arguments.length?(e=a,b):e},b.axis=function(a){return arguments.length?(g=a,b):g},b.size=function(a){return arguments.length?(f=a,b):f},b.getData=function(a){return arguments.length?(h=d3.functor(a),b):h},b.scale=function(a){return arguments.length?(j=a,b):j},b.color=function(c){return arguments.length?(i=a.utils.getColor(c),b):i},b.duration=function(a){return arguments.length?(k=a,m.reset(k),b):k},b},a.models.furiousLegend=function(){"use strict";function b(p){function q(a,b){return"furious"!=o?"#000":m?a.disengaged?g(a,b):"#fff":m?void 0:a.disabled?g(a,b):"#fff"}function r(a,b){return m&&"furious"==o?a.disengaged?"#fff":g(a,b):a.disabled?"#fff":g(a,b)}return p.each(function(b){var p=d-c.left-c.right,s=d3.select(this);a.utils.initSVG(s);var t=s.selectAll("g.nv-legend").data([b]),u=(t.enter().append("g").attr("class","nvd3 nv-legend").append("g"),t.select("g"));t.attr("transform","translate("+c.left+","+c.top+")");var v,w=u.selectAll(".nv-series").data(function(a){return"furious"!=o?a:a.filter(function(a){return m?!0:!a.disengaged})}),x=w.enter().append("g").attr("class","nv-series");if("classic"==o)x.append("circle").style("stroke-width",2).attr("class","nv-legend-symbol").attr("r",5),v=w.select("circle");else if("furious"==o){x.append("rect").style("stroke-width",2).attr("class","nv-legend-symbol").attr("rx",3).attr("ry",3),v=w.select("rect"),x.append("g").attr("class","nv-check-box").property("innerHTML",'').attr("transform","translate(-10,-8)scale(0.5)");var y=w.select(".nv-check-box");y.each(function(a,b){d3.select(this).selectAll("path").attr("stroke",q(a,b))})}x.append("text").attr("text-anchor","start").attr("class","nv-legend-text").attr("dy",".32em").attr("dx","8");var z=w.select("text.nv-legend-text");w.on("mouseover",function(a,b){n.legendMouseover(a,b)}).on("mouseout",function(a,b){n.legendMouseout(a,b)}).on("click",function(a,b){n.legendClick(a,b);var c=w.data();if(k){if("classic"==o)l?(c.forEach(function(a){a.disabled=!0}),a.disabled=!1):(a.disabled=!a.disabled,c.every(function(a){return a.disabled})&&c.forEach(function(a){a.disabled=!1}));else if("furious"==o)if(m)a.disengaged=!a.disengaged,a.userDisabled=void 0==a.userDisabled?!!a.disabled:a.userDisabled,a.disabled=a.disengaged||a.userDisabled;else if(!m){a.disabled=!a.disabled,a.userDisabled=a.disabled;var d=c.filter(function(a){return!a.disengaged});d.every(function(a){return a.userDisabled})&&c.forEach(function(a){a.disabled=a.userDisabled=!1})}n.stateChange({disabled:c.map(function(a){return!!a.disabled}),disengaged:c.map(function(a){return!!a.disengaged})})}}).on("dblclick",function(a,b){if(("furious"!=o||!m)&&(n.legendDblclick(a,b),k)){var c=w.data();c.forEach(function(a){a.disabled=!0,"furious"==o&&(a.userDisabled=a.disabled)}),a.disabled=!1,"furious"==o&&(a.userDisabled=a.disabled),n.stateChange({disabled:c.map(function(a){return!!a.disabled})})}}),w.classed("nv-disabled",function(a){return a.userDisabled}),w.exit().remove(),z.attr("fill",q).text(f);var A;switch(o){case"furious":A=23;break;case"classic":A=20}if(h){var B=[];w.each(function(){var b,c=d3.select(this).select("text");try{if(b=c.node().getComputedTextLength(),0>=b)throw Error()}catch(d){b=a.utils.calcApproxTextWidth(c)}B.push(b+i)});for(var C=0,D=0,E=[];p>D&&Cp&&C>1;){E=[],C--;for(var F=0;F(E[F%C]||0)&&(E[F%C]=B[F]);D=E.reduce(function(a,b){return a+b})}for(var G=[],H=0,I=0;C>H;H++)G[H]=I,I+=E[H];w.attr("transform",function(a,b){return"translate("+G[b%C]+","+(5+Math.floor(b/C)*A)+")"}),j?u.attr("transform","translate("+(d-c.right-D)+","+c.top+")"):u.attr("transform","translate(0,"+c.top+")"),e=c.top+c.bottom+Math.ceil(B.length/C)*A}else{var J,K=5,L=5,M=0;w.attr("transform",function(){var a=d3.select(this).select("text").node().getComputedTextLength()+i;return J=L,dM&&(M=L),"translate("+J+","+K+")"}),u.attr("transform","translate("+(d-c.right-M)+","+c.top+")"),e=c.top+c.bottom+K+15}"furious"==o&&v.attr("width",function(a,b){return z[0][b].getComputedTextLength()+27}).attr("height",18).attr("y",-9).attr("x",-15),v.style("fill",r).style("stroke",function(a,b){return a.color||g(a,b)})}),b}var c={top:5,right:0,bottom:5,left:0},d=400,e=20,f=function(a){return a.key},g=a.utils.getColor(),h=!0,i=28,j=!0,k=!0,l=!1,m=!1,n=d3.dispatch("legendClick","legendDblclick","legendMouseover","legendMouseout","stateChange"),o="classic";return b.dispatch=n,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return d},set:function(a){d=a}},height:{get:function(){return e},set:function(a){e=a}},key:{get:function(){return f},set:function(a){f=a}},align:{get:function(){return h},set:function(a){h=a}},rightAlign:{get:function(){return j},set:function(a){j=a}},padding:{get:function(){return i},set:function(a){i=a}},updateState:{get:function(){return k},set:function(a){k=a}},radioButtonMode:{get:function(){return l},set:function(a){l=a}},expanded:{get:function(){return m},set:function(a){m=a}},vers:{get:function(){return o},set:function(a){o=a}},margin:{get:function(){return c},set:function(a){c.top=void 0!==a.top?a.top:c.top,c.right=void 0!==a.right?a.right:c.right,c.bottom=void 0!==a.bottom?a.bottom:c.bottom,c.left=void 0!==a.left?a.left:c.left}},color:{get:function(){return g},set:function(b){g=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.historicalBar=function(){"use strict";function b(x){return x.each(function(b){w.reset(),k=d3.select(this);var x=a.utils.availableWidth(h,k,g),y=a.utils.availableHeight(i,k,g);a.utils.initSVG(k),l.domain(c||d3.extent(b[0].values.map(n).concat(p))),l.range(r?e||[.5*x/b[0].values.length,x*(b[0].values.length-.5)/b[0].values.length]:e||[0,x]),m.domain(d||d3.extent(b[0].values.map(o).concat(q))).range(f||[y,0]),l.domain()[0]===l.domain()[1]&&l.domain(l.domain()[0]?[l.domain()[0]-.01*l.domain()[0],l.domain()[1]+.01*l.domain()[1]]:[-1,1]),m.domain()[0]===m.domain()[1]&&m.domain(m.domain()[0]?[m.domain()[0]+.01*m.domain()[0],m.domain()[1]-.01*m.domain()[1]]:[-1,1]);var z=k.selectAll("g.nv-wrap.nv-historicalBar-"+j).data([b[0].values]),A=z.enter().append("g").attr("class","nvd3 nv-wrap nv-historicalBar-"+j),B=A.append("defs"),C=A.append("g"),D=z.select("g");C.append("g").attr("class","nv-bars"),z.attr("transform","translate("+g.left+","+g.top+")"),k.on("click",function(a,b){u.chartClick({data:a,index:b,pos:d3.event,id:j})}),B.append("clipPath").attr("id","nv-chart-clip-path-"+j).append("rect"),z.select("#nv-chart-clip-path-"+j+" rect").attr("width",x).attr("height",y),D.attr("clip-path",s?"url(#nv-chart-clip-path-"+j+")":"");var E=z.select(".nv-bars").selectAll(".nv-bar").data(function(a){return a},function(a,b){return n(a,b)});E.exit().remove(),E.enter().append("rect").attr("x",0).attr("y",function(b,c){return a.utils.NaNtoZero(m(Math.max(0,o(b,c))))}).attr("height",function(b,c){return a.utils.NaNtoZero(Math.abs(m(o(b,c))-m(0)))}).attr("transform",function(a,c){return"translate("+(l(n(a,c))-x/b[0].values.length*.45)+",0)"}).on("mouseover",function(a,b){v&&(d3.select(this).classed("hover",!0),u.elementMouseover({data:a,index:b,color:d3.select(this).style("fill")}))}).on("mouseout",function(a,b){v&&(d3.select(this).classed("hover",!1),u.elementMouseout({data:a,index:b,color:d3.select(this).style("fill")}))}).on("mousemove",function(a,b){v&&u.elementMousemove({data:a,index:b,color:d3.select(this).style("fill")})}).on("click",function(a,b){v&&(u.elementClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation())}).on("dblclick",function(a,b){v&&(u.elementDblClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation())}),E.attr("fill",function(a,b){return t(a,b)}).attr("class",function(a,b,c){return(o(a,b)<0?"nv-bar negative":"nv-bar positive")+" nv-bar-"+c+"-"+b}).watchTransition(w,"bars").attr("transform",function(a,c){return"translate("+(l(n(a,c))-x/b[0].values.length*.45)+",0)"}).attr("width",x/b[0].values.length*.9),E.watchTransition(w,"bars").attr("y",function(b,c){var d=o(b,c)<0?m(0):m(0)-m(o(b,c))<1?m(0)-1:m(o(b,c));return a.utils.NaNtoZero(d)}).attr("height",function(b,c){return a.utils.NaNtoZero(Math.max(Math.abs(m(o(b,c))-m(0)),1))})}),w.renderEnd("historicalBar immediate"),b}var c,d,e,f,g={top:0,right:0,bottom:0,left:0},h=null,i=null,j=Math.floor(1e4*Math.random()),k=null,l=d3.scale.linear(),m=d3.scale.linear(),n=function(a){return a.x},o=function(a){return a.y},p=[],q=[0],r=!1,s=!0,t=a.utils.defaultColor(),u=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),v=!0,w=a.utils.renderWatch(u,0);return b.highlightPoint=function(a,b){k.select(".nv-bars .nv-bar-0-"+a).classed("hover",b)},b.clearHighlights=function(){k.select(".nv-bars .nv-bar.hover").classed("hover",!1)},b.dispatch=u,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return i},set:function(a){i=a}},forceX:{get:function(){return p},set:function(a){p=a}},forceY:{get:function(){return q},set:function(a){q=a}},padData:{get:function(){return r},set:function(a){r=a}},x:{get:function(){return n},set:function(a){n=a}},y:{get:function(){return o},set:function(a){o=a}},xScale:{get:function(){return l},set:function(a){l=a}},yScale:{get:function(){return m},set:function(a){m=a}},xDomain:{get:function(){return c},set:function(a){c=a}},yDomain:{get:function(){return d},set:function(a){d=a}},xRange:{get:function(){return e},set:function(a){e=a}},yRange:{get:function(){return f},set:function(a){f=a}},clipEdge:{get:function(){return s},set:function(a){s=a}},id:{get:function(){return j},set:function(a){j=a}},interactive:{get:function(){return v},set:function(a){v=a}},margin:{get:function(){return g},set:function(a){g.top=void 0!==a.top?a.top:g.top,g.right=void 0!==a.right?a.right:g.right,g.bottom=void 0!==a.bottom?a.bottom:g.bottom,g.left=void 0!==a.left?a.left:g.left}},color:{get:function(){return t},set:function(b){t=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.historicalBarChart=function(b){"use strict";function c(b){return b.each(function(k){z.reset(),z.models(f),q&&z.models(g),r&&z.models(h);var w=d3.select(this),A=this;a.utils.initSVG(w);var B=a.utils.availableWidth(n,w,l),C=a.utils.availableHeight(o,w,l);if(c.update=function(){w.transition().duration(y).call(c)},c.container=this,u.disabled=k.map(function(a){return!!a.disabled}),!v){var D;v={};for(D in u)v[D]=u[D]instanceof Array?u[D].slice(0):u[D]}if(!(k&&k.length&&k.filter(function(a){return a.values.length}).length))return a.utils.noData(c,w),c;w.selectAll(".nv-noData").remove(),d=f.xScale(),e=f.yScale();var E=w.selectAll("g.nv-wrap.nv-historicalBarChart").data([k]),F=E.enter().append("g").attr("class","nvd3 nv-wrap nv-historicalBarChart").append("g"),G=E.select("g");F.append("g").attr("class","nv-x nv-axis"),F.append("g").attr("class","nv-y nv-axis"),F.append("g").attr("class","nv-barsWrap"),F.append("g").attr("class","nv-legendWrap"),F.append("g").attr("class","nv-interactive"),p&&(i.width(B),G.select(".nv-legendWrap").datum(k).call(i),l.top!=i.height()&&(l.top=i.height(),C=a.utils.availableHeight(o,w,l)),E.select(".nv-legendWrap").attr("transform","translate(0,"+-l.top+")")),E.attr("transform","translate("+l.left+","+l.top+")"),s&&G.select(".nv-y.nv-axis").attr("transform","translate("+B+",0)"),t&&(j.width(B).height(C).margin({left:l.left,top:l.top}).svgContainer(w).xScale(d),E.select(".nv-interactive").call(j)),f.width(B).height(C).color(k.map(function(a,b){return a.color||m(a,b)}).filter(function(a,b){return!k[b].disabled}));var H=G.select(".nv-barsWrap").datum(k.filter(function(a){return!a.disabled}));H.transition().call(f),q&&(g.scale(d)._ticks(a.utils.calcTicksX(B/100,k)).tickSize(-C,0),G.select(".nv-x.nv-axis").attr("transform","translate(0,"+e.range()[0]+")"),G.select(".nv-x.nv-axis").transition().call(g)),r&&(h.scale(e)._ticks(a.utils.calcTicksY(C/36,k)).tickSize(-B,0),G.select(".nv-y.nv-axis").transition().call(h)),j.dispatch.on("elementMousemove",function(b){f.clearHighlights();var d,e,i,n=[];k.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(g){e=a.interactiveBisect(g.values,b.pointXValue,c.x()),f.highlightPoint(e,!0);var h=g.values[e];void 0!==h&&(void 0===d&&(d=h),void 0===i&&(i=c.xScale()(c.x()(h,e))),n.push({key:g.key,value:c.y()(h,e),color:m(g,g.seriesIndex),data:g.values[e]}))});var o=g.tickFormat()(c.x()(d,e));j.tooltip.position({left:i+l.left,top:b.mouseY+l.top}).chartContainer(A.parentNode).valueFormatter(function(a){return h.tickFormat()(a)}).data({value:o,index:e,series:n})(),j.renderGuideLine(i)}),j.dispatch.on("elementMouseout",function(){x.tooltipHide(),f.clearHighlights()}),i.dispatch.on("legendClick",function(a){a.disabled=!a.disabled,k.filter(function(a){return!a.disabled}).length||k.map(function(a){return a.disabled=!1,E.selectAll(".nv-series").classed("disabled",!1),a}),u.disabled=k.map(function(a){return!!a.disabled}),x.stateChange(u),b.transition().call(c)}),i.dispatch.on("legendDblclick",function(a){k.forEach(function(a){a.disabled=!0}),a.disabled=!1,u.disabled=k.map(function(a){return!!a.disabled}),x.stateChange(u),c.update()}),x.on("changeState",function(a){"undefined"!=typeof a.disabled&&(k.forEach(function(b,c){b.disabled=a.disabled[c]}),u.disabled=a.disabled),c.update()})}),z.renderEnd("historicalBarChart immediate"),c}var d,e,f=b||a.models.historicalBar(),g=a.models.axis(),h=a.models.axis(),i=a.models.legend(),j=a.interactiveGuideline(),k=a.models.tooltip(),l={top:30,right:90,bottom:50,left:90},m=a.utils.defaultColor(),n=null,o=null,p=!1,q=!0,r=!0,s=!1,t=!1,u={},v=null,w=null,x=d3.dispatch("tooltipHide","stateChange","changeState","renderEnd"),y=250;g.orient("bottom").tickPadding(7),h.orient(s?"right":"left"),k.duration(0).headerEnabled(!1).valueFormatter(function(a,b){return h.tickFormat()(a,b)}).headerFormatter(function(a,b){return g.tickFormat()(a,b)});var z=a.utils.renderWatch(x,0);return f.dispatch.on("elementMouseover.tooltip",function(a){a.series={key:c.x()(a.data),value:c.y()(a.data),color:a.color},k.data(a).hidden(!1)}),f.dispatch.on("elementMouseout.tooltip",function(){k.hidden(!0)}),f.dispatch.on("elementMousemove.tooltip",function(){k.position({top:d3.event.pageY,left:d3.event.pageX})()}),c.dispatch=x,c.bars=f,c.legend=i,c.xAxis=g,c.yAxis=h,c.interactiveLayer=j,c.tooltip=k,c.options=a.utils.optionsFunc.bind(c),c._options=Object.create({},{width:{get:function(){return n},set:function(a){n=a}},height:{get:function(){return o},set:function(a){o=a}},showLegend:{get:function(){return p},set:function(a){p=a}},showXAxis:{get:function(){return q},set:function(a){q=a}},showYAxis:{get:function(){return r},set:function(a){r=a}},defaultState:{get:function(){return v},set:function(a){v=a}},noData:{get:function(){return w},set:function(a){w=a}},tooltips:{get:function(){return k.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),k.enabled(!!b)}},tooltipContent:{get:function(){return k.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),k.contentGenerator(b)}},margin:{get:function(){return l},set:function(a){l.top=void 0!==a.top?a.top:l.top,l.right=void 0!==a.right?a.right:l.right,l.bottom=void 0!==a.bottom?a.bottom:l.bottom,l.left=void 0!==a.left?a.left:l.left}},color:{get:function(){return m},set:function(b){m=a.utils.getColor(b),i.color(m),f.color(m)}},duration:{get:function(){return y},set:function(a){y=a,z.reset(y),h.duration(y),g.duration(y)}},rightAlignYAxis:{get:function(){return s},set:function(a){s=a,h.orient(a?"right":"left")}},useInteractiveGuideline:{get:function(){return t},set:function(a){t=a,a===!0&&c.interactive(!1)}}}),a.utils.inheritOptions(c,f),a.utils.initOptions(c),c},a.models.ohlcBarChart=function(){var b=a.models.historicalBarChart(a.models.ohlcBar());return b.useInteractiveGuideline(!0),b.interactiveLayer.tooltip.contentGenerator(function(a){var c=a.series[0].data,d=c.open'+a.value+"
open:"+b.yAxis.tickFormat()(c.open)+"
close:"+b.yAxis.tickFormat()(c.close)+"
high"+b.yAxis.tickFormat()(c.high)+"
low:"+b.yAxis.tickFormat()(c.low)+"
"}),b},a.models.candlestickBarChart=function(){var b=a.models.historicalBarChart(a.models.candlestickBar());return b.useInteractiveGuideline(!0),b.interactiveLayer.tooltip.contentGenerator(function(a){var c=a.series[0].data,d=c.open'+a.value+"
open:"+b.yAxis.tickFormat()(c.open)+"
close:"+b.yAxis.tickFormat()(c.close)+"
high"+b.yAxis.tickFormat()(c.high)+"
low:"+b.yAxis.tickFormat()(c.low)+"
"}),b},a.models.legend=function(){"use strict";function b(p){function q(a,b){return"furious"!=o?"#000":m?a.disengaged?"#000":"#fff":m?void 0:(a.color||(a.color=g(a,b)),a.disabled?a.color:"#fff")}function r(a,b){return m&&"furious"==o&&a.disengaged?"#eee":a.color||g(a,b)}function s(a){return m&&"furious"==o?1:a.disabled?0:1}return p.each(function(b){var g=d-c.left-c.right,p=d3.select(this);a.utils.initSVG(p);var t=p.selectAll("g.nv-legend").data([b]),u=t.enter().append("g").attr("class","nvd3 nv-legend").append("g"),v=t.select("g");t.attr("transform","translate("+c.left+","+c.top+")");var w,x,y=v.selectAll(".nv-series").data(function(a){return"furious"!=o?a:a.filter(function(a){return m?!0:!a.disengaged})}),z=y.enter().append("g").attr("class","nv-series");switch(o){case"furious":x=23;break;case"classic":x=20}if("classic"==o)z.append("circle").style("stroke-width",2).attr("class","nv-legend-symbol").attr("r",5),w=y.select("circle");else if("furious"==o){z.append("rect").style("stroke-width",2).attr("class","nv-legend-symbol").attr("rx",3).attr("ry",3),w=y.select(".nv-legend-symbol"),z.append("g").attr("class","nv-check-box").property("innerHTML",'').attr("transform","translate(-10,-8)scale(0.5)");var A=y.select(".nv-check-box");A.each(function(a,b){d3.select(this).selectAll("path").attr("stroke",q(a,b))})}z.append("text").attr("text-anchor","start").attr("class","nv-legend-text").attr("dy",".32em").attr("dx","8");var B=y.select("text.nv-legend-text");y.on("mouseover",function(a,b){n.legendMouseover(a,b)}).on("mouseout",function(a,b){n.legendMouseout(a,b)}).on("click",function(a,b){n.legendClick(a,b);var c=y.data();if(k){if("classic"==o)l?(c.forEach(function(a){a.disabled=!0}),a.disabled=!1):(a.disabled=!a.disabled,c.every(function(a){return a.disabled})&&c.forEach(function(a){a.disabled=!1}));else if("furious"==o)if(m)a.disengaged=!a.disengaged,a.userDisabled=void 0==a.userDisabled?!!a.disabled:a.userDisabled,a.disabled=a.disengaged||a.userDisabled;else if(!m){a.disabled=!a.disabled,a.userDisabled=a.disabled;var d=c.filter(function(a){return!a.disengaged});d.every(function(a){return a.userDisabled})&&c.forEach(function(a){a.disabled=a.userDisabled=!1})}n.stateChange({disabled:c.map(function(a){return!!a.disabled}),disengaged:c.map(function(a){return!!a.disengaged})})}}).on("dblclick",function(a,b){if(("furious"!=o||!m)&&(n.legendDblclick(a,b),k)){var c=y.data();c.forEach(function(a){a.disabled=!0,"furious"==o&&(a.userDisabled=a.disabled)}),a.disabled=!1,"furious"==o&&(a.userDisabled=a.disabled),n.stateChange({disabled:c.map(function(a){return!!a.disabled})})}}),y.classed("nv-disabled",function(a){return a.userDisabled}),y.exit().remove(),B.attr("fill",q).text(f);var C=0;if(h){var D=[];y.each(function(){var b,c=d3.select(this).select("text");try{if(b=c.node().getComputedTextLength(),0>=b)throw Error()}catch(d){b=a.utils.calcApproxTextWidth(c)}D.push(b+i)});var E=0,F=[];for(C=0;g>C&&Eg&&E>1;){F=[],E--;for(var G=0;G(F[G%E]||0)&&(F[G%E]=D[G]);C=F.reduce(function(a,b){return a+b})}for(var H=[],I=0,J=0;E>I;I++)H[I]=J,J+=F[I];y.attr("transform",function(a,b){return"translate("+H[b%E]+","+(5+Math.floor(b/E)*x)+")"}),j?v.attr("transform","translate("+(d-c.right-C)+","+c.top+")"):v.attr("transform","translate(0,"+c.top+")"),e=c.top+c.bottom+Math.ceil(D.length/E)*x}else{var K,L=5,M=5,N=0;y.attr("transform",function(){var a=d3.select(this).select("text").node().getComputedTextLength()+i;return K=M,dN&&(N=M),K+N>C&&(C=K+N),"translate("+K+","+L+")"}),v.attr("transform","translate("+(d-c.right-N)+","+c.top+")"),e=c.top+c.bottom+L+15}if("furious"==o){w.attr("width",function(a,b){return B[0][b].getComputedTextLength()+27}).attr("height",18).attr("y",-9).attr("x",-15),u.insert("rect",":first-child").attr("class","nv-legend-bg").attr("fill","#eee").attr("opacity",0);var O=v.select(".nv-legend-bg");O.transition().duration(300).attr("x",-x).attr("width",C+x-12).attr("height",e+10).attr("y",-c.top-10).attr("opacity",m?1:0)}w.style("fill",r).style("fill-opacity",s).style("stroke",r)}),b}var c={top:5,right:0,bottom:5,left:0},d=400,e=20,f=function(a){return a.key},g=a.utils.getColor(),h=!0,i=32,j=!0,k=!0,l=!1,m=!1,n=d3.dispatch("legendClick","legendDblclick","legendMouseover","legendMouseout","stateChange"),o="classic";return b.dispatch=n,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return d},set:function(a){d=a}},height:{get:function(){return e},set:function(a){e=a}},key:{get:function(){return f},set:function(a){f=a}},align:{get:function(){return h},set:function(a){h=a}},rightAlign:{get:function(){return j},set:function(a){j=a}},padding:{get:function(){return i},set:function(a){i=a}},updateState:{get:function(){return k},set:function(a){k=a}},radioButtonMode:{get:function(){return l},set:function(a){l=a}},expanded:{get:function(){return m},set:function(a){m=a}},vers:{get:function(){return o},set:function(a){o=a}},margin:{get:function(){return c},set:function(a){c.top=void 0!==a.top?a.top:c.top,c.right=void 0!==a.right?a.right:c.right,c.bottom=void 0!==a.bottom?a.bottom:c.bottom,c.left=void 0!==a.left?a.left:c.left}},color:{get:function(){return g},set:function(b){g=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.line=function(){"use strict";function b(r){return v.reset(),v.models(e),r.each(function(b){i=d3.select(this);var r=a.utils.availableWidth(g,i,f),s=a.utils.availableHeight(h,i,f);a.utils.initSVG(i),c=e.xScale(),d=e.yScale(),t=t||c,u=u||d;var w=i.selectAll("g.nv-wrap.nv-line").data([b]),x=w.enter().append("g").attr("class","nvd3 nv-wrap nv-line"),y=x.append("defs"),z=x.append("g"),A=w.select("g");z.append("g").attr("class","nv-groups"),z.append("g").attr("class","nv-scatterWrap"),w.attr("transform","translate("+f.left+","+f.top+")"),e.width(r).height(s);var B=w.select(".nv-scatterWrap");B.call(e),y.append("clipPath").attr("id","nv-edge-clip-"+e.id()).append("rect"),w.select("#nv-edge-clip-"+e.id()+" rect").attr("width",r).attr("height",s>0?s:0),A.attr("clip-path",p?"url(#nv-edge-clip-"+e.id()+")":""),B.attr("clip-path",p?"url(#nv-edge-clip-"+e.id()+")":"");var C=w.select(".nv-groups").selectAll(".nv-group").data(function(a){return a},function(a){return a.key});C.enter().append("g").style("stroke-opacity",1e-6).style("stroke-width",function(a){return a.strokeWidth||j}).style("fill-opacity",1e-6),C.exit().remove(),C.attr("class",function(a,b){return(a.classed||"")+" nv-group nv-series-"+b}).classed("hover",function(a){return a.hover}).style("fill",function(a,b){return k(a,b)}).style("stroke",function(a,b){return k(a,b)}),C.watchTransition(v,"line: groups").style("stroke-opacity",1).style("fill-opacity",function(a){return a.fillOpacity||.5});var D=C.selectAll("path.nv-area").data(function(a){return o(a)?[a]:[]});D.enter().append("path").attr("class","nv-area").attr("d",function(b){return d3.svg.area().interpolate(q).defined(n).x(function(b,c){return a.utils.NaNtoZero(t(l(b,c)))}).y0(function(b,c){return a.utils.NaNtoZero(u(m(b,c)))}).y1(function(){return u(d.domain()[0]<=0?d.domain()[1]>=0?0:d.domain()[1]:d.domain()[0])}).apply(this,[b.values])}),C.exit().selectAll("path.nv-area").remove(),D.watchTransition(v,"line: areaPaths").attr("d",function(b){return d3.svg.area().interpolate(q).defined(n).x(function(b,d){return a.utils.NaNtoZero(c(l(b,d)))}).y0(function(b,c){return a.utils.NaNtoZero(d(m(b,c)))}).y1(function(){return d(d.domain()[0]<=0?d.domain()[1]>=0?0:d.domain()[1]:d.domain()[0])}).apply(this,[b.values])});var E=C.selectAll("path.nv-line").data(function(a){return[a.values]});E.enter().append("path").attr("class","nv-line").attr("d",d3.svg.line().interpolate(q).defined(n).x(function(b,c){return a.utils.NaNtoZero(t(l(b,c)))}).y(function(b,c){return a.utils.NaNtoZero(u(m(b,c)))})),E.watchTransition(v,"line: linePaths").attr("d",d3.svg.line().interpolate(q).defined(n).x(function(b,d){return a.utils.NaNtoZero(c(l(b,d)))}).y(function(b,c){return a.utils.NaNtoZero(d(m(b,c)))})),t=c.copy(),u=d.copy()}),v.renderEnd("line immediate"),b}var c,d,e=a.models.scatter(),f={top:0,right:0,bottom:0,left:0},g=960,h=500,i=null,j=1.5,k=a.utils.defaultColor(),l=function(a){return a.x},m=function(a){return a.y},n=function(a,b){return!isNaN(m(a,b))&&null!==m(a,b)},o=function(a){return a.area},p=!1,q="linear",r=250,s=d3.dispatch("elementClick","elementMouseover","elementMouseout","renderEnd");e.pointSize(16).pointDomain([16,256]);var t,u,v=a.utils.renderWatch(s,r);return b.dispatch=s,b.scatter=e,e.dispatch.on("elementClick",function(){s.elementClick.apply(this,arguments)}),e.dispatch.on("elementMouseover",function(){s.elementMouseover.apply(this,arguments)}),e.dispatch.on("elementMouseout",function(){s.elementMouseout.apply(this,arguments)}),b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return g},set:function(a){g=a}},height:{get:function(){return h},set:function(a){h=a}},defined:{get:function(){return n},set:function(a){n=a}},interpolate:{get:function(){return q},set:function(a){q=a}},clipEdge:{get:function(){return p},set:function(a){p=a}},margin:{get:function(){return f},set:function(a){f.top=void 0!==a.top?a.top:f.top,f.right=void 0!==a.right?a.right:f.right,f.bottom=void 0!==a.bottom?a.bottom:f.bottom,f.left=void 0!==a.left?a.left:f.left}},duration:{get:function(){return r},set:function(a){r=a,v.reset(r),e.duration(r)}},isArea:{get:function(){return o},set:function(a){o=d3.functor(a)}},x:{get:function(){return l},set:function(a){l=a,e.x(a)}},y:{get:function(){return m},set:function(a){m=a,e.y(a)}},color:{get:function(){return k},set:function(b){k=a.utils.getColor(b),e.color(k)}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.lineChart=function(){"use strict";function b(j){return y.reset(),y.models(e),p&&y.models(f),q&&y.models(g),j.each(function(j){var v=d3.select(this),y=this;a.utils.initSVG(v);var B=a.utils.availableWidth(m,v,k),C=a.utils.availableHeight(n,v,k);if(b.update=function(){0===x?v.call(b):v.transition().duration(x).call(b)},b.container=this,t.setter(A(j),b.update).getter(z(j)).update(),t.disabled=j.map(function(a){return!!a.disabled}),!u){var D;u={};for(D in t)u[D]=t[D]instanceof Array?t[D].slice(0):t[D] -}if(!(j&&j.length&&j.filter(function(a){return a.values.length}).length))return a.utils.noData(b,v),b;v.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale();var E=v.selectAll("g.nv-wrap.nv-lineChart").data([j]),F=E.enter().append("g").attr("class","nvd3 nv-wrap nv-lineChart").append("g"),G=E.select("g");F.append("rect").style("opacity",0),F.append("g").attr("class","nv-x nv-axis"),F.append("g").attr("class","nv-y nv-axis"),F.append("g").attr("class","nv-linesWrap"),F.append("g").attr("class","nv-legendWrap"),F.append("g").attr("class","nv-interactive"),G.select("rect").attr("width",B).attr("height",C>0?C:0),o&&(h.width(B),G.select(".nv-legendWrap").datum(j).call(h),k.top!=h.height()&&(k.top=h.height(),C=a.utils.availableHeight(n,v,k)),E.select(".nv-legendWrap").attr("transform","translate(0,"+-k.top+")")),E.attr("transform","translate("+k.left+","+k.top+")"),r&&G.select(".nv-y.nv-axis").attr("transform","translate("+B+",0)"),s&&(i.width(B).height(C).margin({left:k.left,top:k.top}).svgContainer(v).xScale(c),E.select(".nv-interactive").call(i)),e.width(B).height(C).color(j.map(function(a,b){return a.color||l(a,b)}).filter(function(a,b){return!j[b].disabled}));var H=G.select(".nv-linesWrap").datum(j.filter(function(a){return!a.disabled}));H.call(e),p&&(f.scale(c)._ticks(a.utils.calcTicksX(B/100,j)).tickSize(-C,0),G.select(".nv-x.nv-axis").attr("transform","translate(0,"+d.range()[0]+")"),G.select(".nv-x.nv-axis").call(f)),q&&(g.scale(d)._ticks(a.utils.calcTicksY(C/36,j)).tickSize(-B,0),G.select(".nv-y.nv-axis").call(g)),h.dispatch.on("stateChange",function(a){for(var c in a)t[c]=a[c];w.stateChange(t),b.update()}),i.dispatch.on("elementMousemove",function(c){e.clearHighlights();var d,h,m,n=[];if(j.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(f,g){h=a.interactiveBisect(f.values,c.pointXValue,b.x());var i=f.values[h],j=b.y()(i,h);null!=j&&e.highlightPoint(g,h,!0),void 0!==i&&(void 0===d&&(d=i),void 0===m&&(m=b.xScale()(b.x()(i,h))),n.push({key:f.key,value:j,color:l(f,f.seriesIndex)}))}),n.length>2){var o=b.yScale().invert(c.mouseY),p=Math.abs(b.yScale().domain()[0]-b.yScale().domain()[1]),q=.03*p,r=a.nearestValueIndex(n.map(function(a){return a.value}),o,q);null!==r&&(n[r].highlight=!0)}var s=f.tickFormat()(b.x()(d,h));i.tooltip.position({left:c.mouseX+k.left,top:c.mouseY+k.top}).chartContainer(y.parentNode).valueFormatter(function(a){return null==a?"N/A":g.tickFormat()(a)}).data({value:s,index:h,series:n})(),i.renderGuideLine(m)}),i.dispatch.on("elementClick",function(c){var d,f=[];j.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(e){var g=a.interactiveBisect(e.values,c.pointXValue,b.x()),h=e.values[g];if("undefined"!=typeof h){"undefined"==typeof d&&(d=b.xScale()(b.x()(h,g)));var i=b.yScale()(b.y()(h,g));f.push({point:h,pointIndex:g,pos:[d,i],seriesIndex:e.seriesIndex,series:e})}}),e.dispatch.elementClick(f)}),i.dispatch.on("elementMouseout",function(){e.clearHighlights()}),w.on("changeState",function(a){"undefined"!=typeof a.disabled&&j.length===a.disabled.length&&(j.forEach(function(b,c){b.disabled=a.disabled[c]}),t.disabled=a.disabled),b.update()})}),y.renderEnd("lineChart immediate"),b}var c,d,e=a.models.line(),f=a.models.axis(),g=a.models.axis(),h=a.models.legend(),i=a.interactiveGuideline(),j=a.models.tooltip(),k={top:30,right:20,bottom:50,left:60},l=a.utils.defaultColor(),m=null,n=null,o=!0,p=!0,q=!0,r=!1,s=!1,t=a.utils.state(),u=null,v=null,w=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd"),x=250;f.orient("bottom").tickPadding(7),g.orient(r?"right":"left"),j.valueFormatter(function(a,b){return g.tickFormat()(a,b)}).headerFormatter(function(a,b){return f.tickFormat()(a,b)});var y=a.utils.renderWatch(w,x),z=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},A=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return e.dispatch.on("elementMouseover.tooltip",function(a){j.data(a).position(a.pos).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(){j.hidden(!0)}),b.dispatch=w,b.lines=e,b.legend=h,b.xAxis=f,b.yAxis=g,b.interactiveLayer=i,b.tooltip=j,b.dispatch=w,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return m},set:function(a){m=a}},height:{get:function(){return n},set:function(a){n=a}},showLegend:{get:function(){return o},set:function(a){o=a}},showXAxis:{get:function(){return p},set:function(a){p=a}},showYAxis:{get:function(){return q},set:function(a){q=a}},defaultState:{get:function(){return u},set:function(a){u=a}},noData:{get:function(){return v},set:function(a){v=a}},tooltips:{get:function(){return j.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),j.enabled(!!b)}},tooltipContent:{get:function(){return j.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),j.contentGenerator(b)}},margin:{get:function(){return k},set:function(a){k.top=void 0!==a.top?a.top:k.top,k.right=void 0!==a.right?a.right:k.right,k.bottom=void 0!==a.bottom?a.bottom:k.bottom,k.left=void 0!==a.left?a.left:k.left}},duration:{get:function(){return x},set:function(a){x=a,y.reset(x),e.duration(x),f.duration(x),g.duration(x)}},color:{get:function(){return l},set:function(b){l=a.utils.getColor(b),h.color(l),e.color(l)}},rightAlignYAxis:{get:function(){return r},set:function(a){r=a,g.orient(r?"right":"left")}},useInteractiveGuideline:{get:function(){return s},set:function(a){s=a,s&&(e.interactive(!1),e.useVoronoi(!1))}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.linePlusBarChart=function(){"use strict";function b(v){return v.each(function(v){function J(a){var b=+("e"==a),c=b?1:-1,d=X/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)}function S(){u.empty()||u.extent(I),kb.data([u.empty()?e.domain():I]).each(function(a){var b=e(a[0])-e.range()[0],c=e.range()[1]-e(a[1]);d3.select(this).select(".left").attr("width",0>b?0:b),d3.select(this).select(".right").attr("x",e(a[1])).attr("width",0>c?0:c)})}function T(){I=u.empty()?null:u.extent(),c=u.empty()?e.domain():u.extent(),K.brush({extent:c,brush:u}),S(),l.width(V).height(W).color(v.map(function(a,b){return a.color||C(a,b)}).filter(function(a,b){return!v[b].disabled&&v[b].bar})),j.width(V).height(W).color(v.map(function(a,b){return a.color||C(a,b)}).filter(function(a,b){return!v[b].disabled&&!v[b].bar}));var b=db.select(".nv-focus .nv-barsWrap").datum(Z.length?Z.map(function(a){return{key:a.key,values:a.values.filter(function(a,b){return l.x()(a,b)>=c[0]&&l.x()(a,b)<=c[1]})}}):[{values:[]}]),h=db.select(".nv-focus .nv-linesWrap").datum($[0].disabled?[{values:[]}]:$.map(function(a){return{area:a.area,fillOpacity:a.fillOpacity,key:a.key,values:a.values.filter(function(a,b){return j.x()(a,b)>=c[0]&&j.x()(a,b)<=c[1]})}}));d=Z.length?l.xScale():j.xScale(),n.scale(d)._ticks(a.utils.calcTicksX(V/100,v)).tickSize(-W,0),n.domain([Math.ceil(c[0]),Math.floor(c[1])]),db.select(".nv-x.nv-axis").transition().duration(L).call(n),b.transition().duration(L).call(l),h.transition().duration(L).call(j),db.select(".nv-focus .nv-x.nv-axis").attr("transform","translate(0,"+f.range()[0]+")"),p.scale(f)._ticks(a.utils.calcTicksY(W/36,v)).tickSize(-V,0),q.scale(g)._ticks(a.utils.calcTicksY(W/36,v)).tickSize(Z.length?0:-V,0),db.select(".nv-focus .nv-y1.nv-axis").style("opacity",Z.length?1:0),db.select(".nv-focus .nv-y2.nv-axis").style("opacity",$.length&&!$[0].disabled?1:0).attr("transform","translate("+d.range()[1]+",0)"),db.select(".nv-focus .nv-y1.nv-axis").transition().duration(L).call(p),db.select(".nv-focus .nv-y2.nv-axis").transition().duration(L).call(q)}var U=d3.select(this);a.utils.initSVG(U);var V=a.utils.availableWidth(y,U,w),W=a.utils.availableHeight(z,U,w)-(E?H:0),X=H-x.top-x.bottom;if(b.update=function(){U.transition().duration(L).call(b)},b.container=this,M.setter(R(v),b.update).getter(Q(v)).update(),M.disabled=v.map(function(a){return!!a.disabled}),!N){var Y;N={};for(Y in M)N[Y]=M[Y]instanceof Array?M[Y].slice(0):M[Y]}if(!(v&&v.length&&v.filter(function(a){return a.values.length}).length))return a.utils.noData(b,U),b;U.selectAll(".nv-noData").remove();var Z=v.filter(function(a){return!a.disabled&&a.bar}),$=v.filter(function(a){return!a.bar});d=l.xScale(),e=o.scale(),f=l.yScale(),g=j.yScale(),h=m.yScale(),i=k.yScale();var _=v.filter(function(a){return!a.disabled&&a.bar}).map(function(a){return a.values.map(function(a,b){return{x:A(a,b),y:B(a,b)}})}),ab=v.filter(function(a){return!a.disabled&&!a.bar}).map(function(a){return a.values.map(function(a,b){return{x:A(a,b),y:B(a,b)}})});d.range([0,V]),e.domain(d3.extent(d3.merge(_.concat(ab)),function(a){return a.x})).range([0,V]);var bb=U.selectAll("g.nv-wrap.nv-linePlusBar").data([v]),cb=bb.enter().append("g").attr("class","nvd3 nv-wrap nv-linePlusBar").append("g"),db=bb.select("g");cb.append("g").attr("class","nv-legendWrap");var eb=cb.append("g").attr("class","nv-focus");eb.append("g").attr("class","nv-x nv-axis"),eb.append("g").attr("class","nv-y1 nv-axis"),eb.append("g").attr("class","nv-y2 nv-axis"),eb.append("g").attr("class","nv-barsWrap"),eb.append("g").attr("class","nv-linesWrap");var fb=cb.append("g").attr("class","nv-context");if(fb.append("g").attr("class","nv-x nv-axis"),fb.append("g").attr("class","nv-y1 nv-axis"),fb.append("g").attr("class","nv-y2 nv-axis"),fb.append("g").attr("class","nv-barsWrap"),fb.append("g").attr("class","nv-linesWrap"),fb.append("g").attr("class","nv-brushBackground"),fb.append("g").attr("class","nv-x nv-brush"),D){var gb=t.align()?V/2:V,hb=t.align()?gb:0;t.width(gb),db.select(".nv-legendWrap").datum(v.map(function(a){return a.originalKey=void 0===a.originalKey?a.key:a.originalKey,a.key=a.originalKey+(a.bar?O:P),a})).call(t),w.top!=t.height()&&(w.top=t.height(),W=a.utils.availableHeight(z,U,w)-H),db.select(".nv-legendWrap").attr("transform","translate("+hb+","+-w.top+")")}bb.attr("transform","translate("+w.left+","+w.top+")"),db.select(".nv-context").style("display",E?"initial":"none"),m.width(V).height(X).color(v.map(function(a,b){return a.color||C(a,b)}).filter(function(a,b){return!v[b].disabled&&v[b].bar})),k.width(V).height(X).color(v.map(function(a,b){return a.color||C(a,b)}).filter(function(a,b){return!v[b].disabled&&!v[b].bar}));var ib=db.select(".nv-context .nv-barsWrap").datum(Z.length?Z:[{values:[]}]),jb=db.select(".nv-context .nv-linesWrap").datum($[0].disabled?[{values:[]}]:$);db.select(".nv-context").attr("transform","translate(0,"+(W+w.bottom+x.top)+")"),ib.transition().call(m),jb.transition().call(k),G&&(o._ticks(a.utils.calcTicksX(V/100,v)).tickSize(-X,0),db.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+h.range()[0]+")"),db.select(".nv-context .nv-x.nv-axis").transition().call(o)),F&&(r.scale(h)._ticks(X/36).tickSize(-V,0),s.scale(i)._ticks(X/36).tickSize(Z.length?0:-V,0),db.select(".nv-context .nv-y3.nv-axis").style("opacity",Z.length?1:0).attr("transform","translate(0,"+e.range()[0]+")"),db.select(".nv-context .nv-y2.nv-axis").style("opacity",$.length?1:0).attr("transform","translate("+e.range()[1]+",0)"),db.select(".nv-context .nv-y1.nv-axis").transition().call(r),db.select(".nv-context .nv-y2.nv-axis").transition().call(s)),u.x(e).on("brush",T),I&&u.extent(I);var kb=db.select(".nv-brushBackground").selectAll("g").data([I||u.extent()]),lb=kb.enter().append("g");lb.append("rect").attr("class","left").attr("x",0).attr("y",0).attr("height",X),lb.append("rect").attr("class","right").attr("x",0).attr("y",0).attr("height",X);var mb=db.select(".nv-x.nv-brush").call(u);mb.selectAll("rect").attr("height",X),mb.selectAll(".resize").append("path").attr("d",J),t.dispatch.on("stateChange",function(a){for(var c in a)M[c]=a[c];K.stateChange(M),b.update()}),K.on("changeState",function(a){"undefined"!=typeof a.disabled&&(v.forEach(function(b,c){b.disabled=a.disabled[c]}),M.disabled=a.disabled),b.update()}),T()}),b}var c,d,e,f,g,h,i,j=a.models.line(),k=a.models.line(),l=a.models.historicalBar(),m=a.models.historicalBar(),n=a.models.axis(),o=a.models.axis(),p=a.models.axis(),q=a.models.axis(),r=a.models.axis(),s=a.models.axis(),t=a.models.legend(),u=d3.svg.brush(),v=a.models.tooltip(),w={top:30,right:30,bottom:30,left:60},x={top:0,right:30,bottom:20,left:60},y=null,z=null,A=function(a){return a.x},B=function(a){return a.y},C=a.utils.defaultColor(),D=!0,E=!0,F=!1,G=!0,H=50,I=null,J=null,K=d3.dispatch("brush","stateChange","changeState"),L=0,M=a.utils.state(),N=null,O=" (left axis)",P=" (right axis)";j.clipEdge(!0),k.interactive(!1),n.orient("bottom").tickPadding(5),p.orient("left"),q.orient("right"),o.orient("bottom").tickPadding(5),r.orient("left"),s.orient("right"),v.headerEnabled(!0).headerFormatter(function(a,b){return n.tickFormat()(a,b)});var Q=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},R=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return j.dispatch.on("elementMouseover.tooltip",function(a){v.duration(100).valueFormatter(function(a,b){return q.tickFormat()(a,b)}).data(a).position(a.pos).hidden(!1)}),j.dispatch.on("elementMouseout.tooltip",function(){v.hidden(!0)}),l.dispatch.on("elementMouseover.tooltip",function(a){a.value=b.x()(a.data),a.series={value:b.y()(a.data),color:a.color},v.duration(0).valueFormatter(function(a,b){return p.tickFormat()(a,b)}).data(a).hidden(!1)}),l.dispatch.on("elementMouseout.tooltip",function(){v.hidden(!0)}),l.dispatch.on("elementMousemove.tooltip",function(){v.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=K,b.legend=t,b.lines=j,b.lines2=k,b.bars=l,b.bars2=m,b.xAxis=n,b.x2Axis=o,b.y1Axis=p,b.y2Axis=q,b.y3Axis=r,b.y4Axis=s,b.tooltip=v,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return y},set:function(a){y=a}},height:{get:function(){return z},set:function(a){z=a}},showLegend:{get:function(){return D},set:function(a){D=a}},brushExtent:{get:function(){return I},set:function(a){I=a}},noData:{get:function(){return J},set:function(a){J=a}},focusEnable:{get:function(){return E},set:function(a){E=a}},focusHeight:{get:function(){return H},set:function(a){H=a}},focusShowAxisX:{get:function(){return G},set:function(a){G=a}},focusShowAxisY:{get:function(){return F},set:function(a){F=a}},legendLeftAxisHint:{get:function(){return O},set:function(a){O=a}},legendRightAxisHint:{get:function(){return P},set:function(a){P=a}},tooltips:{get:function(){return v.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),v.enabled(!!b)}},tooltipContent:{get:function(){return v.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),v.contentGenerator(b)}},margin:{get:function(){return w},set:function(a){w.top=void 0!==a.top?a.top:w.top,w.right=void 0!==a.right?a.right:w.right,w.bottom=void 0!==a.bottom?a.bottom:w.bottom,w.left=void 0!==a.left?a.left:w.left}},duration:{get:function(){return L},set:function(a){L=a}},color:{get:function(){return C},set:function(b){C=a.utils.getColor(b),t.color(C)}},x:{get:function(){return A},set:function(a){A=a,j.x(a),k.x(a),l.x(a),m.x(a)}},y:{get:function(){return B},set:function(a){B=a,j.y(a),k.y(a),l.y(a),m.y(a)}}}),a.utils.inheritOptions(b,j),a.utils.initOptions(b),b},a.models.lineWithFocusChart=function(){"use strict";function b(o){return o.each(function(o){function z(a){var b=+("e"==a),c=b?1:-1,d=M/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)}function G(){n.empty()||n.extent(y),U.data([n.empty()?e.domain():y]).each(function(a){var b=e(a[0])-c.range()[0],d=K-e(a[1]);d3.select(this).select(".left").attr("width",0>b?0:b),d3.select(this).select(".right").attr("x",e(a[1])).attr("width",0>d?0:d)})}function H(){y=n.empty()?null:n.extent();var a=n.empty()?e.domain():n.extent();if(!(Math.abs(a[0]-a[1])<=1)){A.brush({extent:a,brush:n}),G();var b=Q.select(".nv-focus .nv-linesWrap").datum(o.filter(function(a){return!a.disabled}).map(function(b){return{key:b.key,area:b.area,values:b.values.filter(function(b,c){return g.x()(b,c)>=a[0]&&g.x()(b,c)<=a[1]})}}));b.transition().duration(B).call(g),Q.select(".nv-focus .nv-x.nv-axis").transition().duration(B).call(i),Q.select(".nv-focus .nv-y.nv-axis").transition().duration(B).call(j)}}var I=d3.select(this),J=this;a.utils.initSVG(I);var K=a.utils.availableWidth(t,I,q),L=a.utils.availableHeight(u,I,q)-v,M=v-r.top-r.bottom;if(b.update=function(){I.transition().duration(B).call(b)},b.container=this,C.setter(F(o),b.update).getter(E(o)).update(),C.disabled=o.map(function(a){return!!a.disabled}),!D){var N;D={};for(N in C)D[N]=C[N]instanceof Array?C[N].slice(0):C[N]}if(!(o&&o.length&&o.filter(function(a){return a.values.length}).length))return a.utils.noData(b,I),b;I.selectAll(".nv-noData").remove(),c=g.xScale(),d=g.yScale(),e=h.xScale(),f=h.yScale();var O=I.selectAll("g.nv-wrap.nv-lineWithFocusChart").data([o]),P=O.enter().append("g").attr("class","nvd3 nv-wrap nv-lineWithFocusChart").append("g"),Q=O.select("g");P.append("g").attr("class","nv-legendWrap");var R=P.append("g").attr("class","nv-focus");R.append("g").attr("class","nv-x nv-axis"),R.append("g").attr("class","nv-y nv-axis"),R.append("g").attr("class","nv-linesWrap"),R.append("g").attr("class","nv-interactive");var S=P.append("g").attr("class","nv-context");S.append("g").attr("class","nv-x nv-axis"),S.append("g").attr("class","nv-y nv-axis"),S.append("g").attr("class","nv-linesWrap"),S.append("g").attr("class","nv-brushBackground"),S.append("g").attr("class","nv-x nv-brush"),x&&(m.width(K),Q.select(".nv-legendWrap").datum(o).call(m),q.top!=m.height()&&(q.top=m.height(),L=a.utils.availableHeight(u,I,q)-v),Q.select(".nv-legendWrap").attr("transform","translate(0,"+-q.top+")")),O.attr("transform","translate("+q.left+","+q.top+")"),w&&(p.width(K).height(L).margin({left:q.left,top:q.top}).svgContainer(I).xScale(c),O.select(".nv-interactive").call(p)),g.width(K).height(L).color(o.map(function(a,b){return a.color||s(a,b)}).filter(function(a,b){return!o[b].disabled})),h.defined(g.defined()).width(K).height(M).color(o.map(function(a,b){return a.color||s(a,b)}).filter(function(a,b){return!o[b].disabled})),Q.select(".nv-context").attr("transform","translate(0,"+(L+q.bottom+r.top)+")");var T=Q.select(".nv-context .nv-linesWrap").datum(o.filter(function(a){return!a.disabled}));d3.transition(T).call(h),i.scale(c)._ticks(a.utils.calcTicksX(K/100,o)).tickSize(-L,0),j.scale(d)._ticks(a.utils.calcTicksY(L/36,o)).tickSize(-K,0),Q.select(".nv-focus .nv-x.nv-axis").attr("transform","translate(0,"+L+")"),n.x(e).on("brush",function(){H()}),y&&n.extent(y);var U=Q.select(".nv-brushBackground").selectAll("g").data([y||n.extent()]),V=U.enter().append("g");V.append("rect").attr("class","left").attr("x",0).attr("y",0).attr("height",M),V.append("rect").attr("class","right").attr("x",0).attr("y",0).attr("height",M);var W=Q.select(".nv-x.nv-brush").call(n);W.selectAll("rect").attr("height",M),W.selectAll(".resize").append("path").attr("d",z),H(),k.scale(e)._ticks(a.utils.calcTicksX(K/100,o)).tickSize(-M,0),Q.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+f.range()[0]+")"),d3.transition(Q.select(".nv-context .nv-x.nv-axis")).call(k),l.scale(f)._ticks(a.utils.calcTicksY(M/36,o)).tickSize(-K,0),d3.transition(Q.select(".nv-context .nv-y.nv-axis")).call(l),Q.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+f.range()[0]+")"),m.dispatch.on("stateChange",function(a){for(var c in a)C[c]=a[c];A.stateChange(C),b.update()}),p.dispatch.on("elementMousemove",function(c){g.clearHighlights();var d,f,h,k=[];if(o.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(i,j){var l=n.empty()?e.domain():n.extent(),m=i.values.filter(function(a,b){return g.x()(a,b)>=l[0]&&g.x()(a,b)<=l[1]});f=a.interactiveBisect(m,c.pointXValue,g.x());var o=m[f],p=b.y()(o,f);null!=p&&g.highlightPoint(j,f,!0),void 0!==o&&(void 0===d&&(d=o),void 0===h&&(h=b.xScale()(b.x()(o,f))),k.push({key:i.key,value:b.y()(o,f),color:s(i,i.seriesIndex)}))}),k.length>2){var l=b.yScale().invert(c.mouseY),m=Math.abs(b.yScale().domain()[0]-b.yScale().domain()[1]),r=.03*m,t=a.nearestValueIndex(k.map(function(a){return a.value}),l,r);null!==t&&(k[t].highlight=!0)}var u=i.tickFormat()(b.x()(d,f));p.tooltip.position({left:c.mouseX+q.left,top:c.mouseY+q.top}).chartContainer(J.parentNode).valueFormatter(function(a){return null==a?"N/A":j.tickFormat()(a)}).data({value:u,index:f,series:k})(),p.renderGuideLine(h)}),p.dispatch.on("elementMouseout",function(){g.clearHighlights()}),A.on("changeState",function(a){"undefined"!=typeof a.disabled&&o.forEach(function(b,c){b.disabled=a.disabled[c]}),b.update()})}),b}var c,d,e,f,g=a.models.line(),h=a.models.line(),i=a.models.axis(),j=a.models.axis(),k=a.models.axis(),l=a.models.axis(),m=a.models.legend(),n=d3.svg.brush(),o=a.models.tooltip(),p=a.interactiveGuideline(),q={top:30,right:30,bottom:30,left:60},r={top:0,right:30,bottom:20,left:60},s=a.utils.defaultColor(),t=null,u=null,v=50,w=!1,x=!0,y=null,z=null,A=d3.dispatch("brush","stateChange","changeState"),B=250,C=a.utils.state(),D=null;g.clipEdge(!0).duration(0),h.interactive(!1),i.orient("bottom").tickPadding(5),j.orient("left"),k.orient("bottom").tickPadding(5),l.orient("left"),o.valueFormatter(function(a,b){return j.tickFormat()(a,b)}).headerFormatter(function(a,b){return i.tickFormat()(a,b)});var E=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},F=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return g.dispatch.on("elementMouseover.tooltip",function(a){o.data(a).position(a.pos).hidden(!1)}),g.dispatch.on("elementMouseout.tooltip",function(){o.hidden(!0)}),b.dispatch=A,b.legend=m,b.lines=g,b.lines2=h,b.xAxis=i,b.yAxis=j,b.x2Axis=k,b.y2Axis=l,b.interactiveLayer=p,b.tooltip=o,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return t},set:function(a){t=a}},height:{get:function(){return u},set:function(a){u=a}},focusHeight:{get:function(){return v},set:function(a){v=a}},showLegend:{get:function(){return x},set:function(a){x=a}},brushExtent:{get:function(){return y},set:function(a){y=a}},defaultState:{get:function(){return D},set:function(a){D=a}},noData:{get:function(){return z},set:function(a){z=a}},tooltips:{get:function(){return o.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),o.enabled(!!b)}},tooltipContent:{get:function(){return o.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),o.contentGenerator(b)}},margin:{get:function(){return q},set:function(a){q.top=void 0!==a.top?a.top:q.top,q.right=void 0!==a.right?a.right:q.right,q.bottom=void 0!==a.bottom?a.bottom:q.bottom,q.left=void 0!==a.left?a.left:q.left}},color:{get:function(){return s},set:function(b){s=a.utils.getColor(b),m.color(s)}},interpolate:{get:function(){return g.interpolate()},set:function(a){g.interpolate(a),h.interpolate(a)}},xTickFormat:{get:function(){return i.tickFormat()},set:function(a){i.tickFormat(a),k.tickFormat(a)}},yTickFormat:{get:function(){return j.tickFormat()},set:function(a){j.tickFormat(a),l.tickFormat(a)}},duration:{get:function(){return B},set:function(a){B=a,j.duration(B),l.duration(B),i.duration(B),k.duration(B)}},x:{get:function(){return g.x()},set:function(a){g.x(a),h.x(a)}},y:{get:function(){return g.y()},set:function(a){g.y(a),h.y(a)}},useInteractiveGuideline:{get:function(){return w},set:function(a){w=a,w&&(g.interactive(!1),g.useVoronoi(!1))}}}),a.utils.inheritOptions(b,g),a.utils.initOptions(b),b},a.models.multiBar=function(){"use strict";function b(E){return C.reset(),E.each(function(b){var E=k-j.left-j.right,F=l-j.top-j.bottom;p=d3.select(this),a.utils.initSVG(p);var G=0;if(x&&b.length&&(x=[{values:b[0].values.map(function(a){return{x:a.x,y:0,series:a.series,size:.01}})}]),u){var H=d3.layout.stack().offset(v).values(function(a){return a.values}).y(r)(!b.length&&x?x:b);H.forEach(function(a,c){a.nonStackable?(b[c].nonStackableSeries=G++,H[c]=b[c]):c>0&&H[c-1].nonStackable&&H[c].values.map(function(a,b){a.y0-=H[c-1].values[b].y,a.y1=a.y0+a.y})}),b=H}b.forEach(function(a,b){a.values.forEach(function(c){c.series=b,c.key=a.key})}),u&&b[0].values.map(function(a,c){var d=0,e=0;b.map(function(a,f){if(!b[f].nonStackable){var g=a.values[c];g.size=Math.abs(g.y),g.y<0?(g.y1=e,e-=g.size):(g.y1=g.size+d,d+=g.size)}})});var I=d&&e?[]:b.map(function(a,b){return a.values.map(function(a,c){return{x:q(a,c),y:r(a,c),y0:a.y0,y1:a.y1,idx:b}})});m.domain(d||d3.merge(I).map(function(a){return a.x})).rangeBands(f||[0,E],A),n.domain(e||d3.extent(d3.merge(I).map(function(a){var c=a.y;return u&&!b[a.idx].nonStackable&&(c=a.y>0?a.y1:a.y1+a.y),c}).concat(s))).range(g||[F,0]),m.domain()[0]===m.domain()[1]&&m.domain(m.domain()[0]?[m.domain()[0]-.01*m.domain()[0],m.domain()[1]+.01*m.domain()[1]]:[-1,1]),n.domain()[0]===n.domain()[1]&&n.domain(n.domain()[0]?[n.domain()[0]+.01*n.domain()[0],n.domain()[1]-.01*n.domain()[1]]:[-1,1]),h=h||m,i=i||n;var J=p.selectAll("g.nv-wrap.nv-multibar").data([b]),K=J.enter().append("g").attr("class","nvd3 nv-wrap nv-multibar"),L=K.append("defs"),M=K.append("g"),N=J.select("g");M.append("g").attr("class","nv-groups"),J.attr("transform","translate("+j.left+","+j.top+")"),L.append("clipPath").attr("id","nv-edge-clip-"+o).append("rect"),J.select("#nv-edge-clip-"+o+" rect").attr("width",E).attr("height",F),N.attr("clip-path",t?"url(#nv-edge-clip-"+o+")":"");var O=J.select(".nv-groups").selectAll(".nv-group").data(function(a){return a},function(a,b){return b});O.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6);var P=C.transition(O.exit().selectAll("rect.nv-bar"),"multibarExit",Math.min(100,z)).attr("y",function(a){var c=i(0)||0;return u&&b[a.series]&&!b[a.series].nonStackable&&(c=i(a.y0)),c}).attr("height",0).remove();P.delay&&P.delay(function(a,b){var c=b*(z/(D+1))-b;return c}),O.attr("class",function(a,b){return"nv-group nv-series-"+b}).classed("hover",function(a){return a.hover}).style("fill",function(a,b){return w(a,b)}).style("stroke",function(a,b){return w(a,b)}),O.style("stroke-opacity",1).style("fill-opacity",.75);var Q=O.selectAll("rect.nv-bar").data(function(a){return x&&!b.length?x.values:a.values});Q.exit().remove();Q.enter().append("rect").attr("class",function(a,b){return r(a,b)<0?"nv-bar negative":"nv-bar positive"}).attr("x",function(a,c,d){return u&&!b[d].nonStackable?0:d*m.rangeBand()/b.length}).attr("y",function(a,c,d){return i(u&&!b[d].nonStackable?a.y0:0)||0}).attr("height",0).attr("width",function(a,c,d){return m.rangeBand()/(u&&!b[d].nonStackable?1:b.length)}).attr("transform",function(a,b){return"translate("+m(q(a,b))+",0)"});Q.style("fill",function(a,b,c){return w(a,c,b)}).style("stroke",function(a,b,c){return w(a,c,b)}).on("mouseover",function(a,b){d3.select(this).classed("hover",!0),B.elementMouseover({data:a,index:b,color:d3.select(this).style("fill")})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),B.elementMouseout({data:a,index:b,color:d3.select(this).style("fill")})}).on("mousemove",function(a,b){B.elementMousemove({data:a,index:b,color:d3.select(this).style("fill")})}).on("click",function(a,b){B.elementClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}).on("dblclick",function(a,b){B.elementDblClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}),Q.attr("class",function(a,b){return r(a,b)<0?"nv-bar negative":"nv-bar positive"}).attr("transform",function(a,b){return"translate("+m(q(a,b))+",0)"}),y&&(c||(c=b.map(function(){return!0})),Q.style("fill",function(a,b,d){return d3.rgb(y(a,b)).darker(c.map(function(a,b){return b}).filter(function(a,b){return!c[b]})[d]).toString()}).style("stroke",function(a,b,d){return d3.rgb(y(a,b)).darker(c.map(function(a,b){return b}).filter(function(a,b){return!c[b]})[d]).toString()}));var R=Q.watchTransition(C,"multibar",Math.min(250,z)).delay(function(a,c){return c*z/b[0].values.length});u?R.attr("y",function(a,c,d){var e=0;return e=b[d].nonStackable?r(a,c)<0?n(0):n(0)-n(r(a,c))<-1?n(0)-1:n(r(a,c))||0:n(a.y1)}).attr("height",function(a,c,d){return b[d].nonStackable?Math.max(Math.abs(n(r(a,c))-n(0)),1)||0:Math.max(Math.abs(n(a.y+a.y0)-n(a.y0)),1)}).attr("x",function(a,c,d){var e=0;return b[d].nonStackable&&(e=a.series*m.rangeBand()/b.length,b.length!==G&&(e=b[d].nonStackableSeries*m.rangeBand()/(2*G))),e}).attr("width",function(a,c,d){if(b[d].nonStackable){var e=m.rangeBand()/G;return b.length!==G&&(e=m.rangeBand()/(2*G)),e}return m.rangeBand()}):R.attr("x",function(a){return a.series*m.rangeBand()/b.length}).attr("width",m.rangeBand()/b.length).attr("y",function(a,b){return r(a,b)<0?n(0):n(0)-n(r(a,b))<1?n(0)-1:n(r(a,b))||0}).attr("height",function(a,b){return Math.max(Math.abs(n(r(a,b))-n(0)),1)||0}),h=m.copy(),i=n.copy(),b[0]&&b[0].values&&(D=b[0].values.length)}),C.renderEnd("multibar immediate"),b}var c,d,e,f,g,h,i,j={top:0,right:0,bottom:0,left:0},k=960,l=500,m=d3.scale.ordinal(),n=d3.scale.linear(),o=Math.floor(1e4*Math.random()),p=null,q=function(a){return a.x},r=function(a){return a.y},s=[0],t=!0,u=!1,v="zero",w=a.utils.defaultColor(),x=!1,y=null,z=500,A=.1,B=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),C=a.utils.renderWatch(B,z),D=0;return b.dispatch=B,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return k},set:function(a){k=a}},height:{get:function(){return l},set:function(a){l=a}},x:{get:function(){return q},set:function(a){q=a}},y:{get:function(){return r},set:function(a){r=a}},xScale:{get:function(){return m},set:function(a){m=a}},yScale:{get:function(){return n},set:function(a){n=a}},xDomain:{get:function(){return d},set:function(a){d=a}},yDomain:{get:function(){return e},set:function(a){e=a}},xRange:{get:function(){return f},set:function(a){f=a}},yRange:{get:function(){return g},set:function(a){g=a}},forceY:{get:function(){return s},set:function(a){s=a}},stacked:{get:function(){return u},set:function(a){u=a}},stackOffset:{get:function(){return v},set:function(a){v=a}},clipEdge:{get:function(){return t},set:function(a){t=a}},disabled:{get:function(){return c},set:function(a){c=a}},id:{get:function(){return o},set:function(a){o=a}},hideable:{get:function(){return x},set:function(a){x=a}},groupSpacing:{get:function(){return A},set:function(a){A=a}},margin:{get:function(){return j},set:function(a){j.top=void 0!==a.top?a.top:j.top,j.right=void 0!==a.right?a.right:j.right,j.bottom=void 0!==a.bottom?a.bottom:j.bottom,j.left=void 0!==a.left?a.left:j.left}},duration:{get:function(){return z},set:function(a){z=a,C.reset(z)}},color:{get:function(){return w},set:function(b){w=a.utils.getColor(b)}},barColor:{get:function(){return y},set:function(b){y=b?a.utils.getColor(b):null}}}),a.utils.initOptions(b),b},a.models.multiBarChart=function(){"use strict";function b(j){return D.reset(),D.models(e),r&&D.models(f),s&&D.models(g),j.each(function(j){var z=d3.select(this);a.utils.initSVG(z);var D=a.utils.availableWidth(l,z,k),H=a.utils.availableHeight(m,z,k);if(b.update=function(){0===C?z.call(b):z.transition().duration(C).call(b)},b.container=this,x.setter(G(j),b.update).getter(F(j)).update(),x.disabled=j.map(function(a){return!!a.disabled}),!y){var I;y={};for(I in x)y[I]=x[I]instanceof Array?x[I].slice(0):x[I]}if(!(j&&j.length&&j.filter(function(a){return a.values.length}).length))return a.utils.noData(b,z),b;z.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale(); -var J=z.selectAll("g.nv-wrap.nv-multiBarWithLegend").data([j]),K=J.enter().append("g").attr("class","nvd3 nv-wrap nv-multiBarWithLegend").append("g"),L=J.select("g");if(K.append("g").attr("class","nv-x nv-axis"),K.append("g").attr("class","nv-y nv-axis"),K.append("g").attr("class","nv-barsWrap"),K.append("g").attr("class","nv-legendWrap"),K.append("g").attr("class","nv-controlsWrap"),q&&(h.width(D-B()),L.select(".nv-legendWrap").datum(j).call(h),k.top!=h.height()&&(k.top=h.height(),H=a.utils.availableHeight(m,z,k)),L.select(".nv-legendWrap").attr("transform","translate("+B()+","+-k.top+")")),o){var M=[{key:p.grouped||"Grouped",disabled:e.stacked()},{key:p.stacked||"Stacked",disabled:!e.stacked()}];i.width(B()).color(["#444","#444","#444"]),L.select(".nv-controlsWrap").datum(M).attr("transform","translate(0,"+-k.top+")").call(i)}J.attr("transform","translate("+k.left+","+k.top+")"),t&&L.select(".nv-y.nv-axis").attr("transform","translate("+D+",0)"),e.disabled(j.map(function(a){return a.disabled})).width(D).height(H).color(j.map(function(a,b){return a.color||n(a,b)}).filter(function(a,b){return!j[b].disabled}));var N=L.select(".nv-barsWrap").datum(j.filter(function(a){return!a.disabled}));if(N.call(e),r){f.scale(c)._ticks(a.utils.calcTicksX(D/100,j)).tickSize(-H,0),L.select(".nv-x.nv-axis").attr("transform","translate(0,"+d.range()[0]+")"),L.select(".nv-x.nv-axis").call(f);var O=L.select(".nv-x.nv-axis > g").selectAll("g");if(O.selectAll("line, text").style("opacity",1),v){var P=function(a,b){return"translate("+a+","+b+")"},Q=5,R=17;O.selectAll("text").attr("transform",function(a,b,c){return P(0,c%2==0?Q:R)});var S=d3.selectAll(".nv-x.nv-axis .nv-wrap g g text")[0].length;L.selectAll(".nv-x.nv-axis .nv-axisMaxMin text").attr("transform",function(a,b){return P(0,0===b||S%2!==0?R:Q)})}u&&O.filter(function(a,b){return b%Math.ceil(j[0].values.length/(D/100))!==0}).selectAll("text, line").style("opacity",0),w&&O.selectAll(".tick text").attr("transform","rotate("+w+" 0,0)").style("text-anchor",w>0?"start":"end"),L.select(".nv-x.nv-axis").selectAll("g.nv-axisMaxMin text").style("opacity",1)}s&&(g.scale(d)._ticks(a.utils.calcTicksY(H/36,j)).tickSize(-D,0),L.select(".nv-y.nv-axis").call(g)),h.dispatch.on("stateChange",function(a){for(var c in a)x[c]=a[c];A.stateChange(x),b.update()}),i.dispatch.on("legendClick",function(a){if(a.disabled){switch(M=M.map(function(a){return a.disabled=!0,a}),a.disabled=!1,a.key){case"Grouped":case p.grouped:e.stacked(!1);break;case"Stacked":case p.stacked:e.stacked(!0)}x.stacked=e.stacked(),A.stateChange(x),b.update()}}),A.on("changeState",function(a){"undefined"!=typeof a.disabled&&(j.forEach(function(b,c){b.disabled=a.disabled[c]}),x.disabled=a.disabled),"undefined"!=typeof a.stacked&&(e.stacked(a.stacked),x.stacked=a.stacked,E=a.stacked),b.update()})}),D.renderEnd("multibarchart immediate"),b}var c,d,e=a.models.multiBar(),f=a.models.axis(),g=a.models.axis(),h=a.models.legend(),i=a.models.legend(),j=a.models.tooltip(),k={top:30,right:20,bottom:50,left:60},l=null,m=null,n=a.utils.defaultColor(),o=!0,p={},q=!0,r=!0,s=!0,t=!1,u=!0,v=!1,w=0,x=a.utils.state(),y=null,z=null,A=d3.dispatch("stateChange","changeState","renderEnd"),B=function(){return o?180:0},C=250;x.stacked=!1,e.stacked(!1),f.orient("bottom").tickPadding(7).showMaxMin(!1).tickFormat(function(a){return a}),g.orient(t?"right":"left").tickFormat(d3.format(",.1f")),j.duration(0).valueFormatter(function(a,b){return g.tickFormat()(a,b)}).headerFormatter(function(a,b){return f.tickFormat()(a,b)}),i.updateState(!1);var D=a.utils.renderWatch(A),E=!1,F=function(a){return function(){return{active:a.map(function(a){return!a.disabled}),stacked:E}}},G=function(a){return function(b){void 0!==b.stacked&&(E=b.stacked),void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return e.dispatch.on("elementMouseover.tooltip",function(a){a.value=b.x()(a.data),a.series={key:a.data.key,value:b.y()(a.data),color:a.color},j.data(a).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(){j.hidden(!0)}),e.dispatch.on("elementMousemove.tooltip",function(){j.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=A,b.multibar=e,b.legend=h,b.controls=i,b.xAxis=f,b.yAxis=g,b.state=x,b.tooltip=j,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return l},set:function(a){l=a}},height:{get:function(){return m},set:function(a){m=a}},showLegend:{get:function(){return q},set:function(a){q=a}},showControls:{get:function(){return o},set:function(a){o=a}},controlLabels:{get:function(){return p},set:function(a){p=a}},showXAxis:{get:function(){return r},set:function(a){r=a}},showYAxis:{get:function(){return s},set:function(a){s=a}},defaultState:{get:function(){return y},set:function(a){y=a}},noData:{get:function(){return z},set:function(a){z=a}},reduceXTicks:{get:function(){return u},set:function(a){u=a}},rotateLabels:{get:function(){return w},set:function(a){w=a}},staggerLabels:{get:function(){return v},set:function(a){v=a}},tooltips:{get:function(){return j.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),j.enabled(!!b)}},tooltipContent:{get:function(){return j.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),j.contentGenerator(b)}},margin:{get:function(){return k},set:function(a){k.top=void 0!==a.top?a.top:k.top,k.right=void 0!==a.right?a.right:k.right,k.bottom=void 0!==a.bottom?a.bottom:k.bottom,k.left=void 0!==a.left?a.left:k.left}},duration:{get:function(){return C},set:function(a){C=a,e.duration(C),f.duration(C),g.duration(C),D.reset(C)}},color:{get:function(){return n},set:function(b){n=a.utils.getColor(b),h.color(n)}},rightAlignYAxis:{get:function(){return t},set:function(a){t=a,g.orient(t?"right":"left")}},barColor:{get:function(){return e.barColor},set:function(a){e.barColor(a),h.color(function(a,b){return d3.rgb("#ccc").darker(1.5*b).toString()})}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.multiBarHorizontal=function(){"use strict";function b(m){return E.reset(),m.each(function(b){var m=k-j.left-j.right,C=l-j.top-j.bottom;n=d3.select(this),a.utils.initSVG(n),w&&(b=d3.layout.stack().offset("zero").values(function(a){return a.values}).y(r)(b)),b.forEach(function(a,b){a.values.forEach(function(c){c.series=b,c.key=a.key})}),w&&b[0].values.map(function(a,c){var d=0,e=0;b.map(function(a){var b=a.values[c];b.size=Math.abs(b.y),b.y<0?(b.y1=e-b.size,e-=b.size):(b.y1=d,d+=b.size)})});var F=d&&e?[]:b.map(function(a){return a.values.map(function(a,b){return{x:q(a,b),y:r(a,b),y0:a.y0,y1:a.y1}})});o.domain(d||d3.merge(F).map(function(a){return a.x})).rangeBands(f||[0,C],A),p.domain(e||d3.extent(d3.merge(F).map(function(a){return w?a.y>0?a.y1+a.y:a.y1:a.y}).concat(t))),p.range(x&&!w?g||[p.domain()[0]<0?z:0,m-(p.domain()[1]>0?z:0)]:g||[0,m]),h=h||o,i=i||d3.scale.linear().domain(p.domain()).range([p(0),p(0)]);{var G=d3.select(this).selectAll("g.nv-wrap.nv-multibarHorizontal").data([b]),H=G.enter().append("g").attr("class","nvd3 nv-wrap nv-multibarHorizontal"),I=(H.append("defs"),H.append("g"));G.select("g")}I.append("g").attr("class","nv-groups"),G.attr("transform","translate("+j.left+","+j.top+")");var J=G.select(".nv-groups").selectAll(".nv-group").data(function(a){return a},function(a,b){return b});J.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),J.exit().watchTransition(E,"multibarhorizontal: exit groups").style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),J.attr("class",function(a,b){return"nv-group nv-series-"+b}).classed("hover",function(a){return a.hover}).style("fill",function(a,b){return u(a,b)}).style("stroke",function(a,b){return u(a,b)}),J.watchTransition(E,"multibarhorizontal: groups").style("stroke-opacity",1).style("fill-opacity",.75);var K=J.selectAll("g.nv-bar").data(function(a){return a.values});K.exit().remove();var L=K.enter().append("g").attr("transform",function(a,c,d){return"translate("+i(w?a.y0:0)+","+(w?0:d*o.rangeBand()/b.length+o(q(a,c)))+")"});L.append("rect").attr("width",0).attr("height",o.rangeBand()/(w?1:b.length)),K.on("mouseover",function(a,b){d3.select(this).classed("hover",!0),D.elementMouseover({data:a,index:b,color:d3.select(this).style("fill")})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),D.elementMouseout({data:a,index:b,color:d3.select(this).style("fill")})}).on("mouseout",function(a,b){D.elementMouseout({data:a,index:b,color:d3.select(this).style("fill")})}).on("mousemove",function(a,b){D.elementMousemove({data:a,index:b,color:d3.select(this).style("fill")})}).on("click",function(a,b){D.elementClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}).on("dblclick",function(a,b){D.elementDblClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}),s(b[0],0)&&(L.append("polyline"),K.select("polyline").attr("fill","none").attr("points",function(a,c){var d=s(a,c),e=.8*o.rangeBand()/(2*(w?1:b.length));d=d.length?d:[-Math.abs(d),Math.abs(d)],d=d.map(function(a){return p(a)-p(0)});var f=[[d[0],-e],[d[0],e],[d[0],0],[d[1],0],[d[1],-e],[d[1],e]];return f.map(function(a){return a.join(",")}).join(" ")}).attr("transform",function(a,c){var d=o.rangeBand()/(2*(w?1:b.length));return"translate("+(r(a,c)<0?0:p(r(a,c))-p(0))+", "+d+")"})),L.append("text"),x&&!w?(K.select("text").attr("text-anchor",function(a,b){return r(a,b)<0?"end":"start"}).attr("y",o.rangeBand()/(2*b.length)).attr("dy",".32em").text(function(a,b){var c=B(r(a,b)),d=s(a,b);return void 0===d?c:d.length?c+"+"+B(Math.abs(d[1]))+"-"+B(Math.abs(d[0])):c+"±"+B(Math.abs(d))}),K.watchTransition(E,"multibarhorizontal: bars").select("text").attr("x",function(a,b){return r(a,b)<0?-4:p(r(a,b))-p(0)+4})):K.selectAll("text").text(""),y&&!w?(L.append("text").classed("nv-bar-label",!0),K.select("text.nv-bar-label").attr("text-anchor",function(a,b){return r(a,b)<0?"start":"end"}).attr("y",o.rangeBand()/(2*b.length)).attr("dy",".32em").text(function(a,b){return q(a,b)}),K.watchTransition(E,"multibarhorizontal: bars").select("text.nv-bar-label").attr("x",function(a,b){return r(a,b)<0?p(0)-p(r(a,b))+4:-4})):K.selectAll("text.nv-bar-label").text(""),K.attr("class",function(a,b){return r(a,b)<0?"nv-bar negative":"nv-bar positive"}),v&&(c||(c=b.map(function(){return!0})),K.style("fill",function(a,b,d){return d3.rgb(v(a,b)).darker(c.map(function(a,b){return b}).filter(function(a,b){return!c[b]})[d]).toString()}).style("stroke",function(a,b,d){return d3.rgb(v(a,b)).darker(c.map(function(a,b){return b}).filter(function(a,b){return!c[b]})[d]).toString()})),w?K.watchTransition(E,"multibarhorizontal: bars").attr("transform",function(a,b){return"translate("+p(a.y1)+","+o(q(a,b))+")"}).select("rect").attr("width",function(a,b){return Math.abs(p(r(a,b)+a.y0)-p(a.y0))}).attr("height",o.rangeBand()):K.watchTransition(E,"multibarhorizontal: bars").attr("transform",function(a,c){return"translate("+p(r(a,c)<0?r(a,c):0)+","+(a.series*o.rangeBand()/b.length+o(q(a,c)))+")"}).select("rect").attr("height",o.rangeBand()/b.length).attr("width",function(a,b){return Math.max(Math.abs(p(r(a,b))-p(0)),1)}),h=o.copy(),i=p.copy()}),E.renderEnd("multibarHorizontal immediate"),b}var c,d,e,f,g,h,i,j={top:0,right:0,bottom:0,left:0},k=960,l=500,m=Math.floor(1e4*Math.random()),n=null,o=d3.scale.ordinal(),p=d3.scale.linear(),q=function(a){return a.x},r=function(a){return a.y},s=function(a){return a.yErr},t=[0],u=a.utils.defaultColor(),v=null,w=!1,x=!1,y=!1,z=60,A=.1,B=d3.format(",.2f"),C=250,D=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),E=a.utils.renderWatch(D,C);return b.dispatch=D,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return k},set:function(a){k=a}},height:{get:function(){return l},set:function(a){l=a}},x:{get:function(){return q},set:function(a){q=a}},y:{get:function(){return r},set:function(a){r=a}},yErr:{get:function(){return s},set:function(a){s=a}},xScale:{get:function(){return o},set:function(a){o=a}},yScale:{get:function(){return p},set:function(a){p=a}},xDomain:{get:function(){return d},set:function(a){d=a}},yDomain:{get:function(){return e},set:function(a){e=a}},xRange:{get:function(){return f},set:function(a){f=a}},yRange:{get:function(){return g},set:function(a){g=a}},forceY:{get:function(){return t},set:function(a){t=a}},stacked:{get:function(){return w},set:function(a){w=a}},showValues:{get:function(){return x},set:function(a){x=a}},disabled:{get:function(){return c},set:function(a){c=a}},id:{get:function(){return m},set:function(a){m=a}},valueFormat:{get:function(){return B},set:function(a){B=a}},valuePadding:{get:function(){return z},set:function(a){z=a}},groupSpacing:{get:function(){return A},set:function(a){A=a}},margin:{get:function(){return j},set:function(a){j.top=void 0!==a.top?a.top:j.top,j.right=void 0!==a.right?a.right:j.right,j.bottom=void 0!==a.bottom?a.bottom:j.bottom,j.left=void 0!==a.left?a.left:j.left}},duration:{get:function(){return C},set:function(a){C=a,E.reset(C)}},color:{get:function(){return u},set:function(b){u=a.utils.getColor(b)}},barColor:{get:function(){return v},set:function(b){v=b?a.utils.getColor(b):null}}}),a.utils.initOptions(b),b},a.models.multiBarHorizontalChart=function(){"use strict";function b(j){return C.reset(),C.models(e),r&&C.models(f),s&&C.models(g),j.each(function(j){var w=d3.select(this);a.utils.initSVG(w);var C=a.utils.availableWidth(l,w,k),D=a.utils.availableHeight(m,w,k);if(b.update=function(){w.transition().duration(z).call(b)},b.container=this,t=e.stacked(),u.setter(B(j),b.update).getter(A(j)).update(),u.disabled=j.map(function(a){return!!a.disabled}),!v){var E;v={};for(E in u)v[E]=u[E]instanceof Array?u[E].slice(0):u[E]}if(!(j&&j.length&&j.filter(function(a){return a.values.length}).length))return a.utils.noData(b,w),b;w.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale();var F=w.selectAll("g.nv-wrap.nv-multiBarHorizontalChart").data([j]),G=F.enter().append("g").attr("class","nvd3 nv-wrap nv-multiBarHorizontalChart").append("g"),H=F.select("g");if(G.append("g").attr("class","nv-x nv-axis"),G.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),G.append("g").attr("class","nv-barsWrap"),G.append("g").attr("class","nv-legendWrap"),G.append("g").attr("class","nv-controlsWrap"),q&&(h.width(C-y()),H.select(".nv-legendWrap").datum(j).call(h),k.top!=h.height()&&(k.top=h.height(),D=a.utils.availableHeight(m,w,k)),H.select(".nv-legendWrap").attr("transform","translate("+y()+","+-k.top+")")),o){var I=[{key:p.grouped||"Grouped",disabled:e.stacked()},{key:p.stacked||"Stacked",disabled:!e.stacked()}];i.width(y()).color(["#444","#444","#444"]),H.select(".nv-controlsWrap").datum(I).attr("transform","translate(0,"+-k.top+")").call(i)}F.attr("transform","translate("+k.left+","+k.top+")"),e.disabled(j.map(function(a){return a.disabled})).width(C).height(D).color(j.map(function(a,b){return a.color||n(a,b)}).filter(function(a,b){return!j[b].disabled}));var J=H.select(".nv-barsWrap").datum(j.filter(function(a){return!a.disabled}));if(J.transition().call(e),r){f.scale(c)._ticks(a.utils.calcTicksY(D/24,j)).tickSize(-C,0),H.select(".nv-x.nv-axis").call(f);var K=H.select(".nv-x.nv-axis").selectAll("g");K.selectAll("line, text")}s&&(g.scale(d)._ticks(a.utils.calcTicksX(C/100,j)).tickSize(-D,0),H.select(".nv-y.nv-axis").attr("transform","translate(0,"+D+")"),H.select(".nv-y.nv-axis").call(g)),H.select(".nv-zeroLine line").attr("x1",d(0)).attr("x2",d(0)).attr("y1",0).attr("y2",-D),h.dispatch.on("stateChange",function(a){for(var c in a)u[c]=a[c];x.stateChange(u),b.update()}),i.dispatch.on("legendClick",function(a){if(a.disabled){switch(I=I.map(function(a){return a.disabled=!0,a}),a.disabled=!1,a.key){case"Grouped":e.stacked(!1);break;case"Stacked":e.stacked(!0)}u.stacked=e.stacked(),x.stateChange(u),t=e.stacked(),b.update()}}),x.on("changeState",function(a){"undefined"!=typeof a.disabled&&(j.forEach(function(b,c){b.disabled=a.disabled[c]}),u.disabled=a.disabled),"undefined"!=typeof a.stacked&&(e.stacked(a.stacked),u.stacked=a.stacked,t=a.stacked),b.update()})}),C.renderEnd("multibar horizontal chart immediate"),b}var c,d,e=a.models.multiBarHorizontal(),f=a.models.axis(),g=a.models.axis(),h=a.models.legend().height(30),i=a.models.legend().height(30),j=a.models.tooltip(),k={top:30,right:20,bottom:50,left:60},l=null,m=null,n=a.utils.defaultColor(),o=!0,p={},q=!0,r=!0,s=!0,t=!1,u=a.utils.state(),v=null,w=null,x=d3.dispatch("stateChange","changeState","renderEnd"),y=function(){return o?180:0},z=250;u.stacked=!1,e.stacked(t),f.orient("left").tickPadding(5).showMaxMin(!1).tickFormat(function(a){return a}),g.orient("bottom").tickFormat(d3.format(",.1f")),j.duration(0).valueFormatter(function(a,b){return g.tickFormat()(a,b)}).headerFormatter(function(a,b){return f.tickFormat()(a,b)}),i.updateState(!1);var A=function(a){return function(){return{active:a.map(function(a){return!a.disabled}),stacked:t}}},B=function(a){return function(b){void 0!==b.stacked&&(t=b.stacked),void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}},C=a.utils.renderWatch(x,z);return e.dispatch.on("elementMouseover.tooltip",function(a){a.value=b.x()(a.data),a.series={key:a.data.key,value:b.y()(a.data),color:a.color},j.data(a).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(){j.hidden(!0)}),e.dispatch.on("elementMousemove.tooltip",function(){j.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=x,b.multibar=e,b.legend=h,b.controls=i,b.xAxis=f,b.yAxis=g,b.state=u,b.tooltip=j,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return l},set:function(a){l=a}},height:{get:function(){return m},set:function(a){m=a}},showLegend:{get:function(){return q},set:function(a){q=a}},showControls:{get:function(){return o},set:function(a){o=a}},controlLabels:{get:function(){return p},set:function(a){p=a}},showXAxis:{get:function(){return r},set:function(a){r=a}},showYAxis:{get:function(){return s},set:function(a){s=a}},defaultState:{get:function(){return v},set:function(a){v=a}},noData:{get:function(){return w},set:function(a){w=a}},tooltips:{get:function(){return j.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),j.enabled(!!b)}},tooltipContent:{get:function(){return j.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),j.contentGenerator(b)}},margin:{get:function(){return k},set:function(a){k.top=void 0!==a.top?a.top:k.top,k.right=void 0!==a.right?a.right:k.right,k.bottom=void 0!==a.bottom?a.bottom:k.bottom,k.left=void 0!==a.left?a.left:k.left}},duration:{get:function(){return z},set:function(a){z=a,C.reset(z),e.duration(z),f.duration(z),g.duration(z)}},color:{get:function(){return n},set:function(b){n=a.utils.getColor(b),h.color(n)}},barColor:{get:function(){return e.barColor},set:function(a){e.barColor(a),h.color(function(a,b){return d3.rgb("#ccc").darker(1.5*b).toString()})}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.multiChart=function(){"use strict";function b(j){return j.each(function(j){function k(a){var b=2===j[a.seriesIndex].yAxis?z:y;a.value=a.point.x,a.series={value:a.point.y,color:a.point.color},B.duration(100).valueFormatter(function(a,c){return b.tickFormat()(a,c)}).data(a).position(a.pos).hidden(!1)}function l(a){var b=2===j[a.seriesIndex].yAxis?z:y;a.point.x=v.x()(a.point),a.point.y=v.y()(a.point),B.duration(100).valueFormatter(function(a,c){return b.tickFormat()(a,c)}).data(a).position(a.pos).hidden(!1)}function n(a){var b=2===j[a.data.series].yAxis?z:y;a.value=t.x()(a.data),a.series={value:t.y()(a.data),color:a.color},B.duration(0).valueFormatter(function(a,c){return b.tickFormat()(a,c)}).data(a).hidden(!1)}var C=d3.select(this);a.utils.initSVG(C),b.update=function(){C.transition().call(b)},b.container=this;var D=a.utils.availableWidth(g,C,e),E=a.utils.availableHeight(h,C,e),F=j.filter(function(a){return"line"==a.type&&1==a.yAxis}),G=j.filter(function(a){return"line"==a.type&&2==a.yAxis}),H=j.filter(function(a){return"bar"==a.type&&1==a.yAxis}),I=j.filter(function(a){return"bar"==a.type&&2==a.yAxis}),J=j.filter(function(a){return"area"==a.type&&1==a.yAxis}),K=j.filter(function(a){return"area"==a.type&&2==a.yAxis});if(!(j&&j.length&&j.filter(function(a){return a.values.length}).length))return a.utils.noData(b,C),b;C.selectAll(".nv-noData").remove();var L=j.filter(function(a){return!a.disabled&&1==a.yAxis}).map(function(a){return a.values.map(function(a){return{x:a.x,y:a.y}})}),M=j.filter(function(a){return!a.disabled&&2==a.yAxis}).map(function(a){return a.values.map(function(a){return{x:a.x,y:a.y}})});o.domain(d3.extent(d3.merge(L.concat(M)),function(a){return a.x})).range([0,D]);var N=C.selectAll("g.wrap.multiChart").data([j]),O=N.enter().append("g").attr("class","wrap nvd3 multiChart").append("g");O.append("g").attr("class","nv-x nv-axis"),O.append("g").attr("class","nv-y1 nv-axis"),O.append("g").attr("class","nv-y2 nv-axis"),O.append("g").attr("class","lines1Wrap"),O.append("g").attr("class","lines2Wrap"),O.append("g").attr("class","bars1Wrap"),O.append("g").attr("class","bars2Wrap"),O.append("g").attr("class","stack1Wrap"),O.append("g").attr("class","stack2Wrap"),O.append("g").attr("class","legendWrap");var P=N.select("g"),Q=j.map(function(a,b){return j[b].color||f(a,b)});if(i){var R=A.align()?D/2:D,S=A.align()?R:0;A.width(R),A.color(Q),P.select(".legendWrap").datum(j.map(function(a){return a.originalKey=void 0===a.originalKey?a.key:a.originalKey,a.key=a.originalKey+(1==a.yAxis?"":" (right axis)"),a})).call(A),e.top!=A.height()&&(e.top=A.height(),E=a.utils.availableHeight(h,C,e)),P.select(".legendWrap").attr("transform","translate("+S+","+-e.top+")")}r.width(D).height(E).interpolate(m).color(Q.filter(function(a,b){return!j[b].disabled&&1==j[b].yAxis&&"line"==j[b].type})),s.width(D).height(E).interpolate(m).color(Q.filter(function(a,b){return!j[b].disabled&&2==j[b].yAxis&&"line"==j[b].type})),t.width(D).height(E).color(Q.filter(function(a,b){return!j[b].disabled&&1==j[b].yAxis&&"bar"==j[b].type})),u.width(D).height(E).color(Q.filter(function(a,b){return!j[b].disabled&&2==j[b].yAxis&&"bar"==j[b].type})),v.width(D).height(E).color(Q.filter(function(a,b){return!j[b].disabled&&1==j[b].yAxis&&"area"==j[b].type})),w.width(D).height(E).color(Q.filter(function(a,b){return!j[b].disabled&&2==j[b].yAxis&&"area"==j[b].type})),P.attr("transform","translate("+e.left+","+e.top+")");var T=P.select(".lines1Wrap").datum(F.filter(function(a){return!a.disabled})),U=P.select(".bars1Wrap").datum(H.filter(function(a){return!a.disabled})),V=P.select(".stack1Wrap").datum(J.filter(function(a){return!a.disabled})),W=P.select(".lines2Wrap").datum(G.filter(function(a){return!a.disabled})),X=P.select(".bars2Wrap").datum(I.filter(function(a){return!a.disabled})),Y=P.select(".stack2Wrap").datum(K.filter(function(a){return!a.disabled})),Z=J.length?J.map(function(a){return a.values}).reduce(function(a,b){return a.map(function(a,c){return{x:a.x,y:a.y+b[c].y}})}).concat([{x:0,y:0}]):[],$=K.length?K.map(function(a){return a.values}).reduce(function(a,b){return a.map(function(a,c){return{x:a.x,y:a.y+b[c].y}})}).concat([{x:0,y:0}]):[];p.domain(c||d3.extent(d3.merge(L).concat(Z),function(a){return a.y})).range([0,E]),q.domain(d||d3.extent(d3.merge(M).concat($),function(a){return a.y})).range([0,E]),r.yDomain(p.domain()),t.yDomain(p.domain()),v.yDomain(p.domain()),s.yDomain(q.domain()),u.yDomain(q.domain()),w.yDomain(q.domain()),J.length&&d3.transition(V).call(v),K.length&&d3.transition(Y).call(w),H.length&&d3.transition(U).call(t),I.length&&d3.transition(X).call(u),F.length&&d3.transition(T).call(r),G.length&&d3.transition(W).call(s),x._ticks(a.utils.calcTicksX(D/100,j)).tickSize(-E,0),P.select(".nv-x.nv-axis").attr("transform","translate(0,"+E+")"),d3.transition(P.select(".nv-x.nv-axis")).call(x),y._ticks(a.utils.calcTicksY(E/36,j)).tickSize(-D,0),d3.transition(P.select(".nv-y1.nv-axis")).call(y),z._ticks(a.utils.calcTicksY(E/36,j)).tickSize(-D,0),d3.transition(P.select(".nv-y2.nv-axis")).call(z),P.select(".nv-y1.nv-axis").classed("nv-disabled",L.length?!1:!0).attr("transform","translate("+o.range()[0]+",0)"),P.select(".nv-y2.nv-axis").classed("nv-disabled",M.length?!1:!0).attr("transform","translate("+o.range()[1]+",0)"),A.dispatch.on("stateChange",function(){b.update()}),r.dispatch.on("elementMouseover.tooltip",k),s.dispatch.on("elementMouseover.tooltip",k),r.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),s.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),v.dispatch.on("elementMouseover.tooltip",l),w.dispatch.on("elementMouseover.tooltip",l),v.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),w.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),t.dispatch.on("elementMouseover.tooltip",n),u.dispatch.on("elementMouseover.tooltip",n),t.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),u.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),t.dispatch.on("elementMousemove.tooltip",function(){B.position({top:d3.event.pageY,left:d3.event.pageX})()}),u.dispatch.on("elementMousemove.tooltip",function(){B.position({top:d3.event.pageY,left:d3.event.pageX})()})}),b}var c,d,e={top:30,right:20,bottom:50,left:60},f=a.utils.defaultColor(),g=null,h=null,i=!0,j=null,k=function(a){return a.x},l=function(a){return a.y},m="monotone",n=!0,o=d3.scale.linear(),p=d3.scale.linear(),q=d3.scale.linear(),r=a.models.line().yScale(p),s=a.models.line().yScale(q),t=a.models.multiBar().stacked(!1).yScale(p),u=a.models.multiBar().stacked(!1).yScale(q),v=a.models.stackedArea().yScale(p),w=a.models.stackedArea().yScale(q),x=a.models.axis().scale(o).orient("bottom").tickPadding(5),y=a.models.axis().scale(p).orient("left"),z=a.models.axis().scale(q).orient("right"),A=a.models.legend().height(30),B=a.models.tooltip(),C=d3.dispatch();return b.dispatch=C,b.lines1=r,b.lines2=s,b.bars1=t,b.bars2=u,b.stack1=v,b.stack2=w,b.xAxis=x,b.yAxis1=y,b.yAxis2=z,b.tooltip=B,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return g},set:function(a){g=a}},height:{get:function(){return h},set:function(a){h=a}},showLegend:{get:function(){return i},set:function(a){i=a}},yDomain1:{get:function(){return c},set:function(a){c=a}},yDomain2:{get:function(){return d},set:function(a){d=a}},noData:{get:function(){return j},set:function(a){j=a}},interpolate:{get:function(){return m},set:function(a){m=a}},tooltips:{get:function(){return B.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),B.enabled(!!b)}},tooltipContent:{get:function(){return B.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),B.contentGenerator(b)}},margin:{get:function(){return e},set:function(a){e.top=void 0!==a.top?a.top:e.top,e.right=void 0!==a.right?a.right:e.right,e.bottom=void 0!==a.bottom?a.bottom:e.bottom,e.left=void 0!==a.left?a.left:e.left}},color:{get:function(){return f},set:function(b){f=a.utils.getColor(b)}},x:{get:function(){return k},set:function(a){k=a,r.x(a),s.x(a),t.x(a),u.x(a),v.x(a),w.x(a)}},y:{get:function(){return l},set:function(a){l=a,r.y(a),s.y(a),v.y(a),w.y(a),t.y(a),u.y(a)}},useVoronoi:{get:function(){return n},set:function(a){n=a,r.useVoronoi(a),s.useVoronoi(a),v.useVoronoi(a),w.useVoronoi(a)}}}),a.utils.initOptions(b),b},a.models.ohlcBar=function(){"use strict";function b(y){return y.each(function(b){k=d3.select(this);var y=a.utils.availableWidth(h,k,g),A=a.utils.availableHeight(i,k,g);a.utils.initSVG(k);var B=y/b[0].values.length*.9;l.domain(c||d3.extent(b[0].values.map(n).concat(t))),l.range(v?e||[.5*y/b[0].values.length,y*(b[0].values.length-.5)/b[0].values.length]:e||[5+B/2,y-B/2-5]),m.domain(d||[d3.min(b[0].values.map(s).concat(u)),d3.max(b[0].values.map(r).concat(u))]).range(f||[A,0]),l.domain()[0]===l.domain()[1]&&l.domain(l.domain()[0]?[l.domain()[0]-.01*l.domain()[0],l.domain()[1]+.01*l.domain()[1]]:[-1,1]),m.domain()[0]===m.domain()[1]&&m.domain(m.domain()[0]?[m.domain()[0]+.01*m.domain()[0],m.domain()[1]-.01*m.domain()[1]]:[-1,1]);var C=d3.select(this).selectAll("g.nv-wrap.nv-ohlcBar").data([b[0].values]),D=C.enter().append("g").attr("class","nvd3 nv-wrap nv-ohlcBar"),E=D.append("defs"),F=D.append("g"),G=C.select("g");F.append("g").attr("class","nv-ticks"),C.attr("transform","translate("+g.left+","+g.top+")"),k.on("click",function(a,b){z.chartClick({data:a,index:b,pos:d3.event,id:j})}),E.append("clipPath").attr("id","nv-chart-clip-path-"+j).append("rect"),C.select("#nv-chart-clip-path-"+j+" rect").attr("width",y).attr("height",A),G.attr("clip-path",w?"url(#nv-chart-clip-path-"+j+")":"");var H=C.select(".nv-ticks").selectAll(".nv-tick").data(function(a){return a});H.exit().remove(),H.enter().append("path").attr("class",function(a,b,c){return(p(a,b)>q(a,b)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+c+"-"+b}).attr("d",function(a,b){return"m0,0l0,"+(m(p(a,b))-m(r(a,b)))+"l"+-B/2+",0l"+B/2+",0l0,"+(m(s(a,b))-m(p(a,b)))+"l0,"+(m(q(a,b))-m(s(a,b)))+"l"+B/2+",0l"+-B/2+",0z"}).attr("transform",function(a,b){return"translate("+l(n(a,b))+","+m(r(a,b))+")"}).attr("fill",function(){return x[0]}).attr("stroke",function(){return x[0]}).attr("x",0).attr("y",function(a,b){return m(Math.max(0,o(a,b)))}).attr("height",function(a,b){return Math.abs(m(o(a,b))-m(0))}),H.attr("class",function(a,b,c){return(p(a,b)>q(a,b)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+c+"-"+b}),d3.transition(H).attr("transform",function(a,b){return"translate("+l(n(a,b))+","+m(r(a,b))+")"}).attr("d",function(a,c){var d=y/b[0].values.length*.9;return"m0,0l0,"+(m(p(a,c))-m(r(a,c)))+"l"+-d/2+",0l"+d/2+",0l0,"+(m(s(a,c))-m(p(a,c)))+"l0,"+(m(q(a,c))-m(s(a,c)))+"l"+d/2+",0l"+-d/2+",0z"})}),b}var c,d,e,f,g={top:0,right:0,bottom:0,left:0},h=null,i=null,j=Math.floor(1e4*Math.random()),k=null,l=d3.scale.linear(),m=d3.scale.linear(),n=function(a){return a.x},o=function(a){return a.y},p=function(a){return a.open},q=function(a){return a.close},r=function(a){return a.high},s=function(a){return a.low},t=[],u=[],v=!1,w=!0,x=a.utils.defaultColor(),y=!1,z=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd","chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove");return b.highlightPoint=function(a,c){b.clearHighlights(),k.select(".nv-ohlcBar .nv-tick-0-"+a).classed("hover",c)},b.clearHighlights=function(){k.select(".nv-ohlcBar .nv-tick.hover").classed("hover",!1)},b.dispatch=z,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return i},set:function(a){i=a}},xScale:{get:function(){return l},set:function(a){l=a}},yScale:{get:function(){return m},set:function(a){m=a}},xDomain:{get:function(){return c},set:function(a){c=a}},yDomain:{get:function(){return d},set:function(a){d=a}},xRange:{get:function(){return e},set:function(a){e=a}},yRange:{get:function(){return f},set:function(a){f=a}},forceX:{get:function(){return t},set:function(a){t=a}},forceY:{get:function(){return u},set:function(a){u=a}},padData:{get:function(){return v},set:function(a){v=a}},clipEdge:{get:function(){return w},set:function(a){w=a}},id:{get:function(){return j},set:function(a){j=a}},interactive:{get:function(){return y},set:function(a){y=a}},x:{get:function(){return n},set:function(a){n=a}},y:{get:function(){return o},set:function(a){o=a}},open:{get:function(){return p()},set:function(a){p=a}},close:{get:function(){return q()},set:function(a){q=a}},high:{get:function(){return r},set:function(a){r=a}},low:{get:function(){return s},set:function(a){s=a}},margin:{get:function(){return g},set:function(a){g.top=void 0!=a.top?a.top:g.top,g.right=void 0!=a.right?a.right:g.right,g.bottom=void 0!=a.bottom?a.bottom:g.bottom,g.left=void 0!=a.left?a.left:g.left -}},color:{get:function(){return x},set:function(b){x=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.parallelCoordinates=function(){"use strict";function b(p){return p.each(function(b){function p(a){return F(h.map(function(b){if(isNaN(a[b])||isNaN(parseFloat(a[b]))){var c=g[b].domain(),d=g[b].range(),e=c[0]-(c[1]-c[0])/9;if(J.indexOf(b)<0){var h=d3.scale.linear().domain([e,c[1]]).range([x-12,d[1]]);g[b].brush.y(h),J.push(b)}return[f(b),g[b](e)]}return J.length>0?(D.style("display","inline"),E.style("display","inline")):(D.style("display","none"),E.style("display","none")),[f(b),g[b](a[b])]}))}function q(){var a=h.filter(function(a){return!g[a].brush.empty()}),b=a.map(function(a){return g[a].brush.extent()});k=[],a.forEach(function(a,c){k[c]={dimension:a,extent:b[c]}}),l=[],M.style("display",function(c){var d=a.every(function(a,d){return isNaN(c[a])&&b[d][0]==g[a].brush.y().domain()[0]?!0:b[d][0]<=c[a]&&c[a]<=b[d][1]});return d&&l.push(c),d?null:"none"}),o.brush({filters:k,active:l})}function r(a){m[a]=this.parentNode.__origin__=f(a),L.attr("visibility","hidden")}function s(a){m[a]=Math.min(w,Math.max(0,this.parentNode.__origin__+=d3.event.x)),M.attr("d",p),h.sort(function(a,b){return u(a)-u(b)}),f.domain(h),N.attr("transform",function(a){return"translate("+u(a)+")"})}function t(a){delete this.parentNode.__origin__,delete m[a],d3.select(this.parentNode).attr("transform","translate("+f(a)+")"),M.attr("d",p),L.attr("d",p).attr("visibility",null)}function u(a){var b=m[a];return null==b?f(a):b}var v=d3.select(this),w=a.utils.availableWidth(d,v,c),x=a.utils.availableHeight(e,v,c);a.utils.initSVG(v),l=b,f.rangePoints([0,w],1).domain(h);var y={};h.forEach(function(a){var c=d3.extent(b,function(b){return+b[a]});return y[a]=!1,void 0===c[0]&&(y[a]=!0,c[0]=0,c[1]=0),c[0]===c[1]&&(c[0]=c[0]-1,c[1]=c[1]+1),g[a]=d3.scale.linear().domain(c).range([.9*(x-12),0]),g[a].brush=d3.svg.brush().y(g[a]).on("brush",q),"name"!=a});var z=v.selectAll("g.nv-wrap.nv-parallelCoordinates").data([b]),A=z.enter().append("g").attr("class","nvd3 nv-wrap nv-parallelCoordinates"),B=A.append("g"),C=z.select("g");B.append("g").attr("class","nv-parallelCoordinates background"),B.append("g").attr("class","nv-parallelCoordinates foreground"),B.append("g").attr("class","nv-parallelCoordinates missingValuesline"),z.attr("transform","translate("+c.left+","+c.top+")");var D,E,F=d3.svg.line().interpolate("cardinal").tension(n),G=d3.svg.axis().orient("left"),H=d3.behavior.drag().on("dragstart",r).on("drag",s).on("dragend",t),I=f.range()[1]-f.range()[0],J=[],K=[0+I/2,x-12,w-I/2,x-12];D=z.select(".missingValuesline").selectAll("line").data([K]),D.enter().append("line"),D.exit().remove(),D.attr("x1",function(a){return a[0]}).attr("y1",function(a){return a[1]}).attr("x2",function(a){return a[2]}).attr("y2",function(a){return a[3]}),E=z.select(".missingValuesline").selectAll("text").data(["undefined values"]),E.append("text").data(["undefined values"]),E.enter().append("text"),E.exit().remove(),E.attr("y",x).attr("x",w-92-I/2).text(function(a){return a});var L=z.select(".background").selectAll("path").data(b);L.enter().append("path"),L.exit().remove(),L.attr("d",p);var M=z.select(".foreground").selectAll("path").data(b);M.enter().append("path"),M.exit().remove(),M.attr("d",p).attr("stroke",j),M.on("mouseover",function(a,b){d3.select(this).classed("hover",!0),o.elementMouseover({label:a.name,data:a.data,index:b,pos:[d3.mouse(this.parentNode)[0],d3.mouse(this.parentNode)[1]]})}),M.on("mouseout",function(a,b){d3.select(this).classed("hover",!1),o.elementMouseout({label:a.name,data:a.data,index:b})});var N=C.selectAll(".dimension").data(h),O=N.enter().append("g").attr("class","nv-parallelCoordinates dimension");O.append("g").attr("class","nv-parallelCoordinates nv-axis"),O.append("g").attr("class","nv-parallelCoordinates-brush"),O.append("text").attr("class","nv-parallelCoordinates nv-label"),N.attr("transform",function(a){return"translate("+f(a)+",0)"}),N.exit().remove(),N.select(".nv-label").style("cursor","move").attr("dy","-1em").attr("text-anchor","middle").text(String).on("mouseover",function(a){o.elementMouseover({dim:a,pos:[d3.mouse(this.parentNode.parentNode)[0],d3.mouse(this.parentNode.parentNode)[1]]})}).on("mouseout",function(a){o.elementMouseout({dim:a})}).call(H),N.select(".nv-axis").each(function(a,b){d3.select(this).call(G.scale(g[a]).tickFormat(d3.format(i[b])))}),N.select(".nv-parallelCoordinates-brush").each(function(a){d3.select(this).call(g[a].brush)}).selectAll("rect").attr("x",-8).attr("width",16)}),b}var c={top:30,right:0,bottom:10,left:0},d=null,e=null,f=d3.scale.ordinal(),g={},h=[],i=[],j=a.utils.defaultColor(),k=[],l=[],m=[],n=1,o=d3.dispatch("brush","elementMouseover","elementMouseout");return b.dispatch=o,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return d},set:function(a){d=a}},height:{get:function(){return e},set:function(a){e=a}},dimensionNames:{get:function(){return h},set:function(a){h=a}},dimensionFormats:{get:function(){return i},set:function(a){i=a}},lineTension:{get:function(){return n},set:function(a){n=a}},dimensions:{get:function(){return h},set:function(b){a.deprecated("dimensions","use dimensionNames instead"),h=b}},margin:{get:function(){return c},set:function(a){c.top=void 0!==a.top?a.top:c.top,c.right=void 0!==a.right?a.right:c.right,c.bottom=void 0!==a.bottom?a.bottom:c.bottom,c.left=void 0!==a.left?a.left:c.left}},color:{get:function(){return j},set:function(b){j=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.pie=function(){"use strict";function b(E){return D.reset(),E.each(function(b){function E(a,b){a.endAngle=isNaN(a.endAngle)?0:a.endAngle,a.startAngle=isNaN(a.startAngle)?0:a.startAngle,p||(a.innerRadius=0);var c=d3.interpolate(this._current,a);return this._current=c(0),function(a){return B[b](c(a))}}var F=d-c.left-c.right,G=e-c.top-c.bottom,H=Math.min(F,G)/2,I=[],J=[];if(i=d3.select(this),0===z.length)for(var K=H-H/5,L=y*H,M=0;Mc)return"";if("function"==typeof n)d=n(a,b,{key:f(a.data),value:g(a.data),percent:k(c)});else switch(n){case"key":d=f(a.data);break;case"value":d=k(g(a.data));break;case"percent":d=d3.format("%")(c)}return d})}}),D.renderEnd("pie immediate"),b}var c={top:0,right:0,bottom:0,left:0},d=500,e=500,f=function(a){return a.x},g=function(a){return a.y},h=Math.floor(1e4*Math.random()),i=null,j=a.utils.defaultColor(),k=d3.format(",.2f"),l=!0,m=!1,n="key",o=.02,p=!1,q=!1,r=!0,s=0,t=!1,u=!1,v=!1,w=!1,x=0,y=.5,z=[],A=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),B=[],C=[],D=a.utils.renderWatch(A);return b.dispatch=A,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{arcsRadius:{get:function(){return z},set:function(a){z=a}},width:{get:function(){return d},set:function(a){d=a}},height:{get:function(){return e},set:function(a){e=a}},showLabels:{get:function(){return l},set:function(a){l=a}},title:{get:function(){return q},set:function(a){q=a}},titleOffset:{get:function(){return s},set:function(a){s=a}},labelThreshold:{get:function(){return o},set:function(a){o=a}},valueFormat:{get:function(){return k},set:function(a){k=a}},x:{get:function(){return f},set:function(a){f=a}},id:{get:function(){return h},set:function(a){h=a}},endAngle:{get:function(){return w},set:function(a){w=a}},startAngle:{get:function(){return u},set:function(a){u=a}},padAngle:{get:function(){return v},set:function(a){v=a}},cornerRadius:{get:function(){return x},set:function(a){x=a}},donutRatio:{get:function(){return y},set:function(a){y=a}},labelsOutside:{get:function(){return m},set:function(a){m=a}},labelSunbeamLayout:{get:function(){return t},set:function(a){t=a}},donut:{get:function(){return p},set:function(a){p=a}},growOnHover:{get:function(){return r},set:function(a){r=a}},pieLabelsOutside:{get:function(){return m},set:function(b){m=b,a.deprecated("pieLabelsOutside","use labelsOutside instead")}},donutLabelsOutside:{get:function(){return m},set:function(b){m=b,a.deprecated("donutLabelsOutside","use labelsOutside instead")}},labelFormat:{get:function(){return k},set:function(b){k=b,a.deprecated("labelFormat","use valueFormat instead")}},margin:{get:function(){return c},set:function(a){c.top="undefined"!=typeof a.top?a.top:c.top,c.right="undefined"!=typeof a.right?a.right:c.right,c.bottom="undefined"!=typeof a.bottom?a.bottom:c.bottom,c.left="undefined"!=typeof a.left?a.left:c.left}},y:{get:function(){return g},set:function(a){g=d3.functor(a)}},color:{get:function(){return j},set:function(b){j=a.utils.getColor(b)}},labelType:{get:function(){return n},set:function(a){n=a||"key"}}}),a.utils.initOptions(b),b},a.models.pieChart=function(){"use strict";function b(e){return q.reset(),q.models(c),e.each(function(e){var k=d3.select(this);a.utils.initSVG(k);var n=a.utils.availableWidth(g,k,f),o=a.utils.availableHeight(h,k,f);if(b.update=function(){k.transition().call(b)},b.container=this,l.setter(s(e),b.update).getter(r(e)).update(),l.disabled=e.map(function(a){return!!a.disabled}),!m){var q;m={};for(q in l)m[q]=l[q]instanceof Array?l[q].slice(0):l[q]}if(!e||!e.length)return a.utils.noData(b,k),b;k.selectAll(".nv-noData").remove();var t=k.selectAll("g.nv-wrap.nv-pieChart").data([e]),u=t.enter().append("g").attr("class","nvd3 nv-wrap nv-pieChart").append("g"),v=t.select("g");if(u.append("g").attr("class","nv-pieWrap"),u.append("g").attr("class","nv-legendWrap"),i)if("top"===j)d.width(n).key(c.x()),t.select(".nv-legendWrap").datum(e).call(d),f.top!=d.height()&&(f.top=d.height(),o=a.utils.availableHeight(h,k,f)),t.select(".nv-legendWrap").attr("transform","translate(0,"+-f.top+")");else if("right"===j){var w=a.models.legend().width();w>n/2&&(w=n/2),d.height(o).key(c.x()),d.width(w),n-=d.width(),t.select(".nv-legendWrap").datum(e).call(d).attr("transform","translate("+n+",0)")}t.attr("transform","translate("+f.left+","+f.top+")"),c.width(n).height(o);var x=v.select(".nv-pieWrap").datum([e]);d3.transition(x).call(c),d.dispatch.on("stateChange",function(a){for(var c in a)l[c]=a[c];p.stateChange(l),b.update()}),p.on("changeState",function(a){"undefined"!=typeof a.disabled&&(e.forEach(function(b,c){b.disabled=a.disabled[c]}),l.disabled=a.disabled),b.update()})}),q.renderEnd("pieChart immediate"),b}var c=a.models.pie(),d=a.models.legend(),e=a.models.tooltip(),f={top:30,right:20,bottom:20,left:20},g=null,h=null,i=!0,j="top",k=a.utils.defaultColor(),l=a.utils.state(),m=null,n=null,o=250,p=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd");e.headerEnabled(!1).duration(0).valueFormatter(function(a,b){return c.valueFormat()(a,b)});var q=a.utils.renderWatch(p),r=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},s=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return c.dispatch.on("elementMouseover.tooltip",function(a){a.series={key:b.x()(a.data),value:b.y()(a.data),color:a.color},e.data(a).hidden(!1)}),c.dispatch.on("elementMouseout.tooltip",function(){e.hidden(!0)}),c.dispatch.on("elementMousemove.tooltip",function(){e.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.legend=d,b.dispatch=p,b.pie=c,b.tooltip=e,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{noData:{get:function(){return n},set:function(a){n=a}},showLegend:{get:function(){return i},set:function(a){i=a}},legendPosition:{get:function(){return j},set:function(a){j=a}},defaultState:{get:function(){return m},set:function(a){m=a}},tooltips:{get:function(){return e.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),e.enabled(!!b)}},tooltipContent:{get:function(){return e.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),e.contentGenerator(b)}},color:{get:function(){return k},set:function(a){k=a,d.color(k),c.color(k)}},duration:{get:function(){return o},set:function(a){o=a,q.reset(o)}},margin:{get:function(){return f},set:function(a){f.top=void 0!==a.top?a.top:f.top,f.right=void 0!==a.right?a.right:f.right,f.bottom=void 0!==a.bottom?a.bottom:f.bottom,f.left=void 0!==a.left?a.left:f.left}}}),a.utils.inheritOptions(b,c),a.utils.initOptions(b),b},a.models.scatter=function(){"use strict";function b(N){return P.reset(),N.each(function(b){function N(){if(O=!1,!w)return!1;if(M===!0){var a=d3.merge(b.map(function(a,b){return a.values.map(function(a,c){var d=p(a,c),e=q(a,c);return[m(d)+1e-4*Math.random(),n(e)+1e-4*Math.random(),b,c,a]}).filter(function(a,b){return x(a[4],b)})}));if(0==a.length)return!1;a.length<3&&(a.push([m.range()[0]-20,n.range()[0]-20,null,null]),a.push([m.range()[1]+20,n.range()[1]+20,null,null]),a.push([m.range()[0]-20,n.range()[0]+20,null,null]),a.push([m.range()[1]+20,n.range()[1]-20,null,null]));var c=d3.geom.polygon([[-10,-10],[-10,i+10],[h+10,i+10],[h+10,-10]]),d=d3.geom.voronoi(a).map(function(b,d){return{data:c.clip(b),series:a[d][2],point:a[d][3]}});U.select(".nv-point-paths").selectAll("path").remove();var e=U.select(".nv-point-paths").selectAll("path").data(d),f=e.enter().append("svg:path").attr("d",function(a){return a&&a.data&&0!==a.data.length?"M"+a.data.join(",")+"Z":"M 0 0"}).attr("id",function(a,b){return"nv-path-"+b}).attr("clip-path",function(a,b){return"url(#nv-clip-"+b+")"});C&&f.style("fill",d3.rgb(230,230,230)).style("fill-opacity",.4).style("stroke-opacity",1).style("stroke",d3.rgb(200,200,200)),B&&(U.select(".nv-point-clips").selectAll("clipPath").remove(),U.select(".nv-point-clips").selectAll("clipPath").data(a).enter().append("svg:clipPath").attr("id",function(a,b){return"nv-clip-"+b}).append("svg:circle").attr("cx",function(a){return a[0]}).attr("cy",function(a){return a[1]}).attr("r",D));var k=function(a,c){if(O)return 0;var d=b[a.series];if(void 0!==d){var e=d.values[a.point];e.color=j(d,a.series),e.x=p(e),e.y=q(e);var f=l.node().getBoundingClientRect(),h=window.pageYOffset||document.documentElement.scrollTop,i=window.pageXOffset||document.documentElement.scrollLeft,k={left:m(p(e,a.point))+f.left+i+g.left+10,top:n(q(e,a.point))+f.top+h+g.top+10};c({point:e,series:d,pos:k,seriesIndex:a.series,pointIndex:a.point})}};e.on("click",function(a){k(a,L.elementClick)}).on("dblclick",function(a){k(a,L.elementDblClick)}).on("mouseover",function(a){k(a,L.elementMouseover)}).on("mouseout",function(a){k(a,L.elementMouseout)})}else U.select(".nv-groups").selectAll(".nv-group").selectAll(".nv-point").on("click",function(a,c){if(O||!b[a.series])return 0;var d=b[a.series],e=d.values[c];L.elementClick({point:e,series:d,pos:[m(p(e,c))+g.left,n(q(e,c))+g.top],seriesIndex:a.series,pointIndex:c})}).on("dblclick",function(a,c){if(O||!b[a.series])return 0;var d=b[a.series],e=d.values[c];L.elementDblClick({point:e,series:d,pos:[m(p(e,c))+g.left,n(q(e,c))+g.top],seriesIndex:a.series,pointIndex:c})}).on("mouseover",function(a,c){if(O||!b[a.series])return 0;var d=b[a.series],e=d.values[c];L.elementMouseover({point:e,series:d,pos:[m(p(e,c))+g.left,n(q(e,c))+g.top],seriesIndex:a.series,pointIndex:c,color:j(a,c)})}).on("mouseout",function(a,c){if(O||!b[a.series])return 0;var d=b[a.series],e=d.values[c];L.elementMouseout({point:e,series:d,seriesIndex:a.series,pointIndex:c,color:j(a,c)})})}l=d3.select(this);var R=a.utils.availableWidth(h,l,g),S=a.utils.availableHeight(i,l,g);a.utils.initSVG(l),b.forEach(function(a,b){a.values.forEach(function(a){a.series=b})});var T=E&&F&&I?[]:d3.merge(b.map(function(a){return a.values.map(function(a,b){return{x:p(a,b),y:q(a,b),size:r(a,b)}})}));m.domain(E||d3.extent(T.map(function(a){return a.x}).concat(t))),m.range(y&&b[0]?G||[(R*z+R)/(2*b[0].values.length),R-R*(1+z)/(2*b[0].values.length)]:G||[0,R]),n.domain(F||d3.extent(T.map(function(a){return a.y}).concat(u))).range(H||[S,0]),o.domain(I||d3.extent(T.map(function(a){return a.size}).concat(v))).range(J||Q),K=m.domain()[0]===m.domain()[1]||n.domain()[0]===n.domain()[1],m.domain()[0]===m.domain()[1]&&m.domain(m.domain()[0]?[m.domain()[0]-.01*m.domain()[0],m.domain()[1]+.01*m.domain()[1]]:[-1,1]),n.domain()[0]===n.domain()[1]&&n.domain(n.domain()[0]?[n.domain()[0]-.01*n.domain()[0],n.domain()[1]+.01*n.domain()[1]]:[-1,1]),isNaN(m.domain()[0])&&m.domain([-1,1]),isNaN(n.domain()[0])&&n.domain([-1,1]),c=c||m,d=d||n,e=e||o;var U=l.selectAll("g.nv-wrap.nv-scatter").data([b]),V=U.enter().append("g").attr("class","nvd3 nv-wrap nv-scatter nv-chart-"+k),W=V.append("defs"),X=V.append("g"),Y=U.select("g");U.classed("nv-single-point",K),X.append("g").attr("class","nv-groups"),X.append("g").attr("class","nv-point-paths"),V.append("g").attr("class","nv-point-clips"),U.attr("transform","translate("+g.left+","+g.top+")"),W.append("clipPath").attr("id","nv-edge-clip-"+k).append("rect"),U.select("#nv-edge-clip-"+k+" rect").attr("width",R).attr("height",S>0?S:0),Y.attr("clip-path",A?"url(#nv-edge-clip-"+k+")":""),O=!0;var Z=U.select(".nv-groups").selectAll(".nv-group").data(function(a){return a},function(a){return a.key});Z.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),Z.exit().remove(),Z.attr("class",function(a,b){return"nv-group nv-series-"+b}).classed("hover",function(a){return a.hover}),Z.watchTransition(P,"scatter: groups").style("fill",function(a,b){return j(a,b)}).style("stroke",function(a,b){return j(a,b)}).style("stroke-opacity",1).style("fill-opacity",.5);var $=Z.selectAll("path.nv-point").data(function(a){return a.values.map(function(a,b){return[a,b]}).filter(function(a,b){return x(a[0],b)})});$.enter().append("path").style("fill",function(a){return a.color}).style("stroke",function(a){return a.color}).attr("transform",function(a){return"translate("+c(p(a[0],a[1]))+","+d(q(a[0],a[1]))+")"}).attr("d",a.utils.symbol().type(function(a){return s(a[0])}).size(function(a){return o(r(a[0],a[1]))})),$.exit().remove(),Z.exit().selectAll("path.nv-point").watchTransition(P,"scatter exit").attr("transform",function(a){return"translate("+m(p(a[0],a[1]))+","+n(q(a[0],a[1]))+")"}).remove(),$.each(function(a){d3.select(this).classed("nv-point",!0).classed("nv-point-"+a[1],!0).classed("nv-noninteractive",!w).classed("hover",!1)}),$.watchTransition(P,"scatter points").attr("transform",function(a){return"translate("+m(p(a[0],a[1]))+","+n(q(a[0],a[1]))+")"}).attr("d",a.utils.symbol().type(function(a){return s(a[0])}).size(function(a){return o(r(a[0],a[1]))})),clearTimeout(f),f=setTimeout(N,300),c=m.copy(),d=n.copy(),e=o.copy()}),P.renderEnd("scatter immediate"),b}var c,d,e,f,g={top:0,right:0,bottom:0,left:0},h=null,i=null,j=a.utils.defaultColor(),k=Math.floor(1e5*Math.random()),l=null,m=d3.scale.linear(),n=d3.scale.linear(),o=d3.scale.linear(),p=function(a){return a.x},q=function(a){return a.y},r=function(a){return a.size||1},s=function(a){return a.shape||"circle"},t=[],u=[],v=[],w=!0,x=function(a){return!a.notActive},y=!1,z=.1,A=!1,B=!0,C=!1,D=function(){return 25},E=null,F=null,G=null,H=null,I=null,J=null,K=!1,L=d3.dispatch("elementClick","elementDblClick","elementMouseover","elementMouseout","renderEnd"),M=!0,N=250,O=!1,P=a.utils.renderWatch(L,N),Q=[16,256];return b.dispatch=L,b.options=a.utils.optionsFunc.bind(b),b._calls=new function(){this.clearHighlights=function(){return a.dom.write(function(){l.selectAll(".nv-point.hover").classed("hover",!1)}),null},this.highlightPoint=function(b,c,d){a.dom.write(function(){l.select(" .nv-series-"+b+" .nv-point-"+c).classed("hover",d)})}},L.on("elementMouseover.point",function(a){w&&b._calls.highlightPoint(a.seriesIndex,a.pointIndex,!0)}),L.on("elementMouseout.point",function(a){w&&b._calls.highlightPoint(a.seriesIndex,a.pointIndex,!1)}),b._options=Object.create({},{width:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return i},set:function(a){i=a}},xScale:{get:function(){return m},set:function(a){m=a}},yScale:{get:function(){return n},set:function(a){n=a}},pointScale:{get:function(){return o},set:function(a){o=a}},xDomain:{get:function(){return E},set:function(a){E=a}},yDomain:{get:function(){return F},set:function(a){F=a}},pointDomain:{get:function(){return I},set:function(a){I=a}},xRange:{get:function(){return G},set:function(a){G=a}},yRange:{get:function(){return H},set:function(a){H=a}},pointRange:{get:function(){return J},set:function(a){J=a}},forceX:{get:function(){return t},set:function(a){t=a}},forceY:{get:function(){return u},set:function(a){u=a}},forcePoint:{get:function(){return v},set:function(a){v=a}},interactive:{get:function(){return w},set:function(a){w=a}},pointActive:{get:function(){return x},set:function(a){x=a}},padDataOuter:{get:function(){return z},set:function(a){z=a}},padData:{get:function(){return y},set:function(a){y=a}},clipEdge:{get:function(){return A},set:function(a){A=a}},clipVoronoi:{get:function(){return B},set:function(a){B=a}},clipRadius:{get:function(){return D},set:function(a){D=a}},showVoronoi:{get:function(){return C},set:function(a){C=a}},id:{get:function(){return k},set:function(a){k=a}},x:{get:function(){return p},set:function(a){p=d3.functor(a)}},y:{get:function(){return q},set:function(a){q=d3.functor(a)}},pointSize:{get:function(){return r},set:function(a){r=d3.functor(a)}},pointShape:{get:function(){return s},set:function(a){s=d3.functor(a)}},margin:{get:function(){return g},set:function(a){g.top=void 0!==a.top?a.top:g.top,g.right=void 0!==a.right?a.right:g.right,g.bottom=void 0!==a.bottom?a.bottom:g.bottom,g.left=void 0!==a.left?a.left:g.left}},duration:{get:function(){return N},set:function(a){N=a,P.reset(N)}},color:{get:function(){return j},set:function(b){j=a.utils.getColor(b)}},useVoronoi:{get:function(){return M},set:function(a){M=a,M===!1&&(B=!1)}}}),a.utils.initOptions(b),b},a.models.scatterChart=function(){"use strict";function b(z){return D.reset(),D.models(c),t&&D.models(d),u&&D.models(e),q&&D.models(g),r&&D.models(h),z.each(function(z){m=d3.select(this),a.utils.initSVG(m);var G=a.utils.availableWidth(k,m,j),H=a.utils.availableHeight(l,m,j);if(b.update=function(){0===A?m.call(b):m.transition().duration(A).call(b)},b.container=this,w.setter(F(z),b.update).getter(E(z)).update(),w.disabled=z.map(function(a){return!!a.disabled}),!x){var I;x={};for(I in w)x[I]=w[I]instanceof Array?w[I].slice(0):w[I]}if(!(z&&z.length&&z.filter(function(a){return a.values.length}).length))return a.utils.noData(b,m),D.renderEnd("scatter immediate"),b;m.selectAll(".nv-noData").remove(),o=c.xScale(),p=c.yScale();var J=m.selectAll("g.nv-wrap.nv-scatterChart").data([z]),K=J.enter().append("g").attr("class","nvd3 nv-wrap nv-scatterChart nv-chart-"+c.id()),L=K.append("g"),M=J.select("g");if(L.append("rect").attr("class","nvd3 nv-background").style("pointer-events","none"),L.append("g").attr("class","nv-x nv-axis"),L.append("g").attr("class","nv-y nv-axis"),L.append("g").attr("class","nv-scatterWrap"),L.append("g").attr("class","nv-regressionLinesWrap"),L.append("g").attr("class","nv-distWrap"),L.append("g").attr("class","nv-legendWrap"),v&&M.select(".nv-y.nv-axis").attr("transform","translate("+G+",0)"),s){var N=G;f.width(N),J.select(".nv-legendWrap").datum(z).call(f),j.top!=f.height()&&(j.top=f.height(),H=a.utils.availableHeight(l,m,j)),J.select(".nv-legendWrap").attr("transform","translate(0,"+-j.top+")")}J.attr("transform","translate("+j.left+","+j.top+")"),c.width(G).height(H).color(z.map(function(a,b){return a.color=a.color||n(a,b),a.color}).filter(function(a,b){return!z[b].disabled})),J.select(".nv-scatterWrap").datum(z.filter(function(a){return!a.disabled})).call(c),J.select(".nv-regressionLinesWrap").attr("clip-path","url(#nv-edge-clip-"+c.id()+")");var O=J.select(".nv-regressionLinesWrap").selectAll(".nv-regLines").data(function(a){return a});O.enter().append("g").attr("class","nv-regLines");var P=O.selectAll(".nv-regLine").data(function(a){return[a]});P.enter().append("line").attr("class","nv-regLine").style("stroke-opacity",0),P.filter(function(a){return a.intercept&&a.slope}).watchTransition(D,"scatterPlusLineChart: regline").attr("x1",o.range()[0]).attr("x2",o.range()[1]).attr("y1",function(a){return p(o.domain()[0]*a.slope+a.intercept)}).attr("y2",function(a){return p(o.domain()[1]*a.slope+a.intercept)}).style("stroke",function(a,b,c){return n(a,c)}).style("stroke-opacity",function(a){return a.disabled||"undefined"==typeof a.slope||"undefined"==typeof a.intercept?0:1}),t&&(d.scale(o)._ticks(a.utils.calcTicksX(G/100,z)).tickSize(-H,0),M.select(".nv-x.nv-axis").attr("transform","translate(0,"+p.range()[0]+")").call(d)),u&&(e.scale(p)._ticks(a.utils.calcTicksY(H/36,z)).tickSize(-G,0),M.select(".nv-y.nv-axis").call(e)),q&&(g.getData(c.x()).scale(o).width(G).color(z.map(function(a,b){return a.color||n(a,b)}).filter(function(a,b){return!z[b].disabled})),L.select(".nv-distWrap").append("g").attr("class","nv-distributionX"),M.select(".nv-distributionX").attr("transform","translate(0,"+p.range()[0]+")").datum(z.filter(function(a){return!a.disabled})).call(g)),r&&(h.getData(c.y()).scale(p).width(H).color(z.map(function(a,b){return a.color||n(a,b)}).filter(function(a,b){return!z[b].disabled})),L.select(".nv-distWrap").append("g").attr("class","nv-distributionY"),M.select(".nv-distributionY").attr("transform","translate("+(v?G:-h.size())+",0)").datum(z.filter(function(a){return!a.disabled})).call(h)),f.dispatch.on("stateChange",function(a){for(var c in a)w[c]=a[c];y.stateChange(w),b.update()}),y.on("changeState",function(a){"undefined"!=typeof a.disabled&&(z.forEach(function(b,c){b.disabled=a.disabled[c]}),w.disabled=a.disabled),b.update()}),c.dispatch.on("elementMouseout.tooltip",function(a){i.hidden(!0),m.select(".nv-chart-"+c.id()+" .nv-series-"+a.seriesIndex+" .nv-distx-"+a.pointIndex).attr("y1",0),m.select(".nv-chart-"+c.id()+" .nv-series-"+a.seriesIndex+" .nv-disty-"+a.pointIndex).attr("x2",h.size())}),c.dispatch.on("elementMouseover.tooltip",function(a){m.select(".nv-series-"+a.seriesIndex+" .nv-distx-"+a.pointIndex).attr("y1",a.pos.top-H-j.top),m.select(".nv-series-"+a.seriesIndex+" .nv-disty-"+a.pointIndex).attr("x2",a.pos.left+g.size()-j.left),i.position(a.pos).data(a).hidden(!1)}),B=o.copy(),C=p.copy()}),D.renderEnd("scatter with line immediate"),b}var c=a.models.scatter(),d=a.models.axis(),e=a.models.axis(),f=a.models.legend(),g=a.models.distribution(),h=a.models.distribution(),i=a.models.tooltip(),j={top:30,right:20,bottom:50,left:75},k=null,l=null,m=null,n=a.utils.defaultColor(),o=c.xScale(),p=c.yScale(),q=!1,r=!1,s=!0,t=!0,u=!0,v=!1,w=a.utils.state(),x=null,y=d3.dispatch("stateChange","changeState","renderEnd"),z=null,A=250;c.xScale(o).yScale(p),d.orient("bottom").tickPadding(10),e.orient(v?"right":"left").tickPadding(10),g.axis("x"),h.axis("y"),i.headerFormatter(function(a,b){return d.tickFormat()(a,b)}).valueFormatter(function(a,b){return e.tickFormat()(a,b)});var B,C,D=a.utils.renderWatch(y,A),E=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},F=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return b.dispatch=y,b.scatter=c,b.legend=f,b.xAxis=d,b.yAxis=e,b.distX=g,b.distY=h,b.tooltip=i,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return k},set:function(a){k=a}},height:{get:function(){return l},set:function(a){l=a}},container:{get:function(){return m},set:function(a){m=a}},showDistX:{get:function(){return q},set:function(a){q=a}},showDistY:{get:function(){return r},set:function(a){r=a}},showLegend:{get:function(){return s},set:function(a){s=a}},showXAxis:{get:function(){return t},set:function(a){t=a}},showYAxis:{get:function(){return u},set:function(a){u=a}},defaultState:{get:function(){return x},set:function(a){x=a}},noData:{get:function(){return z},set:function(a){z=a}},duration:{get:function(){return A},set:function(a){A=a}},tooltips:{get:function(){return i.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),i.enabled(!!b) -}},tooltipContent:{get:function(){return i.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),i.contentGenerator(b)}},tooltipXContent:{get:function(){return i.contentGenerator()},set:function(){a.deprecated("tooltipContent","This option is removed, put values into main tooltip.")}},tooltipYContent:{get:function(){return i.contentGenerator()},set:function(){a.deprecated("tooltipContent","This option is removed, put values into main tooltip.")}},margin:{get:function(){return j},set:function(a){j.top=void 0!==a.top?a.top:j.top,j.right=void 0!==a.right?a.right:j.right,j.bottom=void 0!==a.bottom?a.bottom:j.bottom,j.left=void 0!==a.left?a.left:j.left}},rightAlignYAxis:{get:function(){return v},set:function(a){v=a,e.orient(a?"right":"left")}},color:{get:function(){return n},set:function(b){n=a.utils.getColor(b),f.color(n),g.color(n),h.color(n)}}}),a.utils.inheritOptions(b,c),a.utils.initOptions(b),b},a.models.sparkline=function(){"use strict";function b(k){return k.each(function(b){var k=h-g.left-g.right,q=i-g.top-g.bottom;j=d3.select(this),a.utils.initSVG(j),l.domain(c||d3.extent(b,n)).range(e||[0,k]),m.domain(d||d3.extent(b,o)).range(f||[q,0]);{var r=j.selectAll("g.nv-wrap.nv-sparkline").data([b]),s=r.enter().append("g").attr("class","nvd3 nv-wrap nv-sparkline");s.append("g"),r.select("g")}r.attr("transform","translate("+g.left+","+g.top+")");var t=r.selectAll("path").data(function(a){return[a]});t.enter().append("path"),t.exit().remove(),t.style("stroke",function(a,b){return a.color||p(a,b)}).attr("d",d3.svg.line().x(function(a,b){return l(n(a,b))}).y(function(a,b){return m(o(a,b))}));var u=r.selectAll("circle.nv-point").data(function(a){function b(b){if(-1!=b){var c=a[b];return c.pointIndex=b,c}return null}var c=a.map(function(a,b){return o(a,b)}),d=b(c.lastIndexOf(m.domain()[1])),e=b(c.indexOf(m.domain()[0])),f=b(c.length-1);return[e,d,f].filter(function(a){return null!=a})});u.enter().append("circle"),u.exit().remove(),u.attr("cx",function(a){return l(n(a,a.pointIndex))}).attr("cy",function(a){return m(o(a,a.pointIndex))}).attr("r",2).attr("class",function(a){return n(a,a.pointIndex)==l.domain()[1]?"nv-point nv-currentValue":o(a,a.pointIndex)==m.domain()[0]?"nv-point nv-minValue":"nv-point nv-maxValue"})}),b}var c,d,e,f,g={top:2,right:0,bottom:2,left:0},h=400,i=32,j=null,k=!0,l=d3.scale.linear(),m=d3.scale.linear(),n=function(a){return a.x},o=function(a){return a.y},p=a.utils.getColor(["#000"]);return b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return i},set:function(a){i=a}},xDomain:{get:function(){return c},set:function(a){c=a}},yDomain:{get:function(){return d},set:function(a){d=a}},xRange:{get:function(){return e},set:function(a){e=a}},yRange:{get:function(){return f},set:function(a){f=a}},xScale:{get:function(){return l},set:function(a){l=a}},yScale:{get:function(){return m},set:function(a){m=a}},animate:{get:function(){return k},set:function(a){k=a}},x:{get:function(){return n},set:function(a){n=d3.functor(a)}},y:{get:function(){return o},set:function(a){o=d3.functor(a)}},margin:{get:function(){return g},set:function(a){g.top=void 0!==a.top?a.top:g.top,g.right=void 0!==a.right?a.right:g.right,g.bottom=void 0!==a.bottom?a.bottom:g.bottom,g.left=void 0!==a.left?a.left:g.left}},color:{get:function(){return p},set:function(b){p=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.sparklinePlus=function(){"use strict";function b(p){return p.each(function(p){function q(){if(!j){var a=z.selectAll(".nv-hoverValue").data(i),b=a.enter().append("g").attr("class","nv-hoverValue").style("stroke-opacity",0).style("fill-opacity",0);a.exit().transition().duration(250).style("stroke-opacity",0).style("fill-opacity",0).remove(),a.attr("transform",function(a){return"translate("+c(e.x()(p[a],a))+",0)"}).transition().duration(250).style("stroke-opacity",1).style("fill-opacity",1),i.length&&(b.append("line").attr("x1",0).attr("y1",-f.top).attr("x2",0).attr("y2",u),b.append("text").attr("class","nv-xValue").attr("x",-6).attr("y",-f.top).attr("text-anchor","end").attr("dy",".9em"),z.select(".nv-hoverValue .nv-xValue").text(k(e.x()(p[i[0]],i[0]))),b.append("text").attr("class","nv-yValue").attr("x",6).attr("y",-f.top).attr("text-anchor","start").attr("dy",".9em"),z.select(".nv-hoverValue .nv-yValue").text(l(e.y()(p[i[0]],i[0]))))}}function r(){function a(a,b){for(var c=Math.abs(e.x()(a[0],0)-b),d=0,f=0;fc;++c){for(b=0,d=0;bb;b++)a[b][c][1]/=d;else for(b=0;e>b;b++)a[b][c][1]=0}for(c=0;f>c;++c)g[c]=0;return g}}),u.renderEnd("stackedArea immediate"),b}var c,d,e={top:0,right:0,bottom:0,left:0},f=960,g=500,h=a.utils.defaultColor(),i=Math.floor(1e5*Math.random()),j=null,k=function(a){return a.x},l=function(a){return a.y},m="stack",n="zero",o="default",p="linear",q=!1,r=a.models.scatter(),s=250,t=d3.dispatch("areaClick","areaMouseover","areaMouseout","renderEnd","elementClick","elementMouseover","elementMouseout");r.pointSize(2.2).pointDomain([2.2,2.2]);var u=a.utils.renderWatch(t,s);return b.dispatch=t,b.scatter=r,r.dispatch.on("elementClick",function(){t.elementClick.apply(this,arguments)}),r.dispatch.on("elementMouseover",function(){t.elementMouseover.apply(this,arguments)}),r.dispatch.on("elementMouseout",function(){t.elementMouseout.apply(this,arguments)}),b.interpolate=function(a){return arguments.length?(p=a,b):p},b.duration=function(a){return arguments.length?(s=a,u.reset(s),r.duration(s),b):s},b.dispatch=t,b.scatter=r,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return f},set:function(a){f=a}},height:{get:function(){return g},set:function(a){g=a}},clipEdge:{get:function(){return q},set:function(a){q=a}},offset:{get:function(){return n},set:function(a){n=a}},order:{get:function(){return o},set:function(a){o=a}},interpolate:{get:function(){return p},set:function(a){p=a}},x:{get:function(){return k},set:function(a){k=d3.functor(a)}},y:{get:function(){return l},set:function(a){l=d3.functor(a)}},margin:{get:function(){return e},set:function(a){e.top=void 0!==a.top?a.top:e.top,e.right=void 0!==a.right?a.right:e.right,e.bottom=void 0!==a.bottom?a.bottom:e.bottom,e.left=void 0!==a.left?a.left:e.left}},color:{get:function(){return h},set:function(b){h=a.utils.getColor(b)}},style:{get:function(){return m},set:function(a){switch(m=a){case"stack":b.offset("zero"),b.order("default");break;case"stream":b.offset("wiggle"),b.order("inside-out");break;case"stream-center":b.offset("silhouette"),b.order("inside-out");break;case"expand":b.offset("expand"),b.order("default");break;case"stack_percent":b.offset(b.d3_stackedOffset_stackPercent),b.order("default")}}},duration:{get:function(){return s},set:function(a){s=a,u.reset(s),r.duration(s)}}}),a.utils.inheritOptions(b,r),a.utils.initOptions(b),b},a.models.stackedAreaChart=function(){"use strict";function b(k){return F.reset(),F.models(e),r&&F.models(f),s&&F.models(g),k.each(function(k){var x=d3.select(this),F=this;a.utils.initSVG(x);var K=a.utils.availableWidth(m,x,l),L=a.utils.availableHeight(n,x,l);if(b.update=function(){x.transition().duration(C).call(b)},b.container=this,v.setter(I(k),b.update).getter(H(k)).update(),v.disabled=k.map(function(a){return!!a.disabled}),!w){var M;w={};for(M in v)w[M]=v[M]instanceof Array?v[M].slice(0):v[M]}if(!(k&&k.length&&k.filter(function(a){return a.values.length}).length))return a.utils.noData(b,x),b;x.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale();var N=x.selectAll("g.nv-wrap.nv-stackedAreaChart").data([k]),O=N.enter().append("g").attr("class","nvd3 nv-wrap nv-stackedAreaChart").append("g"),P=N.select("g");if(O.append("rect").style("opacity",0),O.append("g").attr("class","nv-x nv-axis"),O.append("g").attr("class","nv-y nv-axis"),O.append("g").attr("class","nv-stackedWrap"),O.append("g").attr("class","nv-legendWrap"),O.append("g").attr("class","nv-controlsWrap"),O.append("g").attr("class","nv-interactive"),P.select("rect").attr("width",K).attr("height",L),q){var Q=p?K-z:K;h.width(Q),P.select(".nv-legendWrap").datum(k).call(h),l.top!=h.height()&&(l.top=h.height(),L=a.utils.availableHeight(n,x,l)),P.select(".nv-legendWrap").attr("transform","translate("+(K-Q)+","+-l.top+")")}if(p){var R=[{key:B.stacked||"Stacked",metaKey:"Stacked",disabled:"stack"!=e.style(),style:"stack"},{key:B.stream||"Stream",metaKey:"Stream",disabled:"stream"!=e.style(),style:"stream"},{key:B.expanded||"Expanded",metaKey:"Expanded",disabled:"expand"!=e.style(),style:"expand"},{key:B.stack_percent||"Stack %",metaKey:"Stack_Percent",disabled:"stack_percent"!=e.style(),style:"stack_percent"}];z=A.length/3*260,R=R.filter(function(a){return-1!==A.indexOf(a.metaKey)}),i.width(z).color(["#444","#444","#444"]),P.select(".nv-controlsWrap").datum(R).call(i),l.top!=Math.max(i.height(),h.height())&&(l.top=Math.max(i.height(),h.height()),L=a.utils.availableHeight(n,x,l)),P.select(".nv-controlsWrap").attr("transform","translate(0,"+-l.top+")")}N.attr("transform","translate("+l.left+","+l.top+")"),t&&P.select(".nv-y.nv-axis").attr("transform","translate("+K+",0)"),u&&(j.width(K).height(L).margin({left:l.left,top:l.top}).svgContainer(x).xScale(c),N.select(".nv-interactive").call(j)),e.width(K).height(L);var S=P.select(".nv-stackedWrap").datum(k);if(S.transition().call(e),r&&(f.scale(c)._ticks(a.utils.calcTicksX(K/100,k)).tickSize(-L,0),P.select(".nv-x.nv-axis").attr("transform","translate(0,"+L+")"),P.select(".nv-x.nv-axis").transition().duration(0).call(f)),s){var T;if(T="wiggle"===e.offset()?0:a.utils.calcTicksY(L/36,k),g.scale(d)._ticks(T).tickSize(-K,0),"expand"===e.style()||"stack_percent"===e.style()){var U=g.tickFormat();D&&U===J||(D=U),g.tickFormat(J)}else D&&(g.tickFormat(D),D=null);P.select(".nv-y.nv-axis").transition().duration(0).call(g)}e.dispatch.on("areaClick.toggle",function(a){k.forEach(1===k.filter(function(a){return!a.disabled}).length?function(a){a.disabled=!1}:function(b,c){b.disabled=c!=a.seriesIndex}),v.disabled=k.map(function(a){return!!a.disabled}),y.stateChange(v),b.update()}),h.dispatch.on("stateChange",function(a){for(var c in a)v[c]=a[c];y.stateChange(v),b.update()}),i.dispatch.on("legendClick",function(a){a.disabled&&(R=R.map(function(a){return a.disabled=!0,a}),a.disabled=!1,e.style(a.style),v.style=e.style(),y.stateChange(v),b.update())}),j.dispatch.on("elementMousemove",function(c){e.clearHighlights();var d,g,h,i=[];if(k.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(f,j){g=a.interactiveBisect(f.values,c.pointXValue,b.x());var k=f.values[g],l=b.y()(k,g);if(null!=l&&e.highlightPoint(j,g,!0),"undefined"!=typeof k){"undefined"==typeof d&&(d=k),"undefined"==typeof h&&(h=b.xScale()(b.x()(k,g)));var m="expand"==e.style()?k.display.y:b.y()(k,g);i.push({key:f.key,value:m,color:o(f,f.seriesIndex),stackedValue:k.display})}}),i.reverse(),i.length>2){var m=b.yScale().invert(c.mouseY),n=null;i.forEach(function(a,b){m=Math.abs(m);var c=Math.abs(a.stackedValue.y0),d=Math.abs(a.stackedValue.y);return m>=c&&d+c>=m?void(n=b):void 0}),null!=n&&(i[n].highlight=!0)}var p=f.tickFormat()(b.x()(d,g)),q=j.tooltip.valueFormatter();"expand"===e.style()||"stack_percent"===e.style()?(E||(E=q),q=d3.format(".1%")):E&&(q=E,E=null),j.tooltip.position({left:h+l.left,top:c.mouseY+l.top}).chartContainer(F.parentNode).valueFormatter(q).data({value:p,series:i})(),j.renderGuideLine(h)}),j.dispatch.on("elementMouseout",function(){e.clearHighlights()}),y.on("changeState",function(a){"undefined"!=typeof a.disabled&&k.length===a.disabled.length&&(k.forEach(function(b,c){b.disabled=a.disabled[c]}),v.disabled=a.disabled),"undefined"!=typeof a.style&&(e.style(a.style),G=a.style),b.update()})}),F.renderEnd("stacked Area chart immediate"),b}var c,d,e=a.models.stackedArea(),f=a.models.axis(),g=a.models.axis(),h=a.models.legend(),i=a.models.legend(),j=a.interactiveGuideline(),k=a.models.tooltip(),l={top:30,right:25,bottom:50,left:60},m=null,n=null,o=a.utils.defaultColor(),p=!0,q=!0,r=!0,s=!0,t=!1,u=!1,v=a.utils.state(),w=null,x=null,y=d3.dispatch("stateChange","changeState","renderEnd"),z=250,A=["Stacked","Stream","Expanded"],B={},C=250;v.style=e.style(),f.orient("bottom").tickPadding(7),g.orient(t?"right":"left"),k.headerFormatter(function(a,b){return f.tickFormat()(a,b)}).valueFormatter(function(a,b){return g.tickFormat()(a,b)}),j.tooltip.headerFormatter(function(a,b){return f.tickFormat()(a,b)}).valueFormatter(function(a,b){return g.tickFormat()(a,b)});var D=null,E=null;i.updateState(!1);var F=a.utils.renderWatch(y),G=e.style(),H=function(a){return function(){return{active:a.map(function(a){return!a.disabled}),style:e.style()}}},I=function(a){return function(b){void 0!==b.style&&(G=b.style),void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}},J=d3.format("%");return e.dispatch.on("elementMouseover.tooltip",function(a){a.point.x=e.x()(a.point),a.point.y=e.y()(a.point),k.data(a).position(a.pos).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(){k.hidden(!0)}),b.dispatch=y,b.stacked=e,b.legend=h,b.controls=i,b.xAxis=f,b.yAxis=g,b.interactiveLayer=j,b.tooltip=k,b.dispatch=y,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return m},set:function(a){m=a}},height:{get:function(){return n},set:function(a){n=a}},showLegend:{get:function(){return q},set:function(a){q=a}},showXAxis:{get:function(){return r},set:function(a){r=a}},showYAxis:{get:function(){return s},set:function(a){s=a}},defaultState:{get:function(){return w},set:function(a){w=a}},noData:{get:function(){return x},set:function(a){x=a}},showControls:{get:function(){return p},set:function(a){p=a}},controlLabels:{get:function(){return B},set:function(a){B=a}},controlOptions:{get:function(){return A},set:function(a){A=a}},tooltips:{get:function(){return k.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),k.enabled(!!b)}},tooltipContent:{get:function(){return k.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),k.contentGenerator(b)}},margin:{get:function(){return l},set:function(a){l.top=void 0!==a.top?a.top:l.top,l.right=void 0!==a.right?a.right:l.right,l.bottom=void 0!==a.bottom?a.bottom:l.bottom,l.left=void 0!==a.left?a.left:l.left}},duration:{get:function(){return C},set:function(a){C=a,F.reset(C),e.duration(C),f.duration(C),g.duration(C)}},color:{get:function(){return o},set:function(b){o=a.utils.getColor(b),h.color(o),e.color(o)}},rightAlignYAxis:{get:function(){return t},set:function(a){t=a,g.orient(t?"right":"left")}},useInteractiveGuideline:{get:function(){return u},set:function(a){u=!!a,b.interactive(!a),b.useVoronoi(!a),e.scatter.interactive(!a)}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.sunburst=function(){"use strict";function b(u){return t.reset(),u.each(function(b){function t(a){a.x0=a.x,a.dx0=a.dx}function u(a){var b=d3.interpolate(p.domain(),[a.x,a.x+a.dx]),c=d3.interpolate(q.domain(),[a.y,1]),d=d3.interpolate(q.range(),[a.y?20:0,y]);return function(a,e){return e?function(){return s(a)}:function(e){return p.domain(b(e)),q.domain(c(e)).range(d(e)),s(a)}}}l=d3.select(this);var v,w=a.utils.availableWidth(g,l,f),x=a.utils.availableHeight(h,l,f),y=Math.min(w,x)/2;a.utils.initSVG(l);var z=l.selectAll(".nv-wrap.nv-sunburst").data(b),A=z.enter().append("g").attr("class","nvd3 nv-wrap nv-sunburst nv-chart-"+k),B=A.selectAll("nv-sunburst");z.attr("transform","translate("+w/2+","+x/2+")"),l.on("click",function(a,b){o.chartClick({data:a,index:b,pos:d3.event,id:k})}),q.range([0,y]),c=c||b,e=b[0],r.value(j[i]||j.count),v=B.data(r.nodes).enter().append("path").attr("d",s).style("fill",function(a){return m((a.children?a:a.parent).name)}).style("stroke","#FFF").on("click",function(a){d!==c&&c!==a&&(d=c),c=a,v.transition().duration(n).attrTween("d",u(a))}).each(t).on("dblclick",function(a){d.parent==a&&v.transition().duration(n).attrTween("d",u(e))}).each(t).on("mouseover",function(a){d3.select(this).classed("hover",!0).style("opacity",.8),o.elementMouseover({data:a,color:d3.select(this).style("fill")})}).on("mouseout",function(a){d3.select(this).classed("hover",!1).style("opacity",1),o.elementMouseout({data:a})}).on("mousemove",function(a){o.elementMousemove({data:a})})}),t.renderEnd("sunburst immediate"),b}var c,d,e,f={top:0,right:0,bottom:0,left:0},g=null,h=null,i="count",j={count:function(){return 1},size:function(a){return a.size}},k=Math.floor(1e4*Math.random()),l=null,m=a.utils.defaultColor(),n=500,o=d3.dispatch("chartClick","elementClick","elementDblClick","elementMousemove","elementMouseover","elementMouseout","renderEnd"),p=d3.scale.linear().range([0,2*Math.PI]),q=d3.scale.sqrt(),r=d3.layout.partition().sort(null).value(function(){return 1}),s=d3.svg.arc().startAngle(function(a){return Math.max(0,Math.min(2*Math.PI,p(a.x)))}).endAngle(function(a){return Math.max(0,Math.min(2*Math.PI,p(a.x+a.dx)))}).innerRadius(function(a){return Math.max(0,q(a.y))}).outerRadius(function(a){return Math.max(0,q(a.y+a.dy))}),t=a.utils.renderWatch(o);return b.dispatch=o,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return g},set:function(a){g=a}},height:{get:function(){return h},set:function(a){h=a}},mode:{get:function(){return i},set:function(a){i=a}},id:{get:function(){return k},set:function(a){k=a}},duration:{get:function(){return n},set:function(a){n=a}},margin:{get:function(){return f},set:function(a){f.top=void 0!=a.top?a.top:f.top,f.right=void 0!=a.right?a.right:f.right,f.bottom=void 0!=a.bottom?a.bottom:f.bottom,f.left=void 0!=a.left?a.left:f.left}},color:{get:function(){return m},set:function(b){m=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.sunburstChart=function(){"use strict";function b(d){return m.reset(),m.models(c),d.each(function(d){var h=d3.select(this);a.utils.initSVG(h);var i=a.utils.availableWidth(f,h,e),j=a.utils.availableHeight(g,h,e);if(b.update=function(){0===k?h.call(b):h.transition().duration(k).call(b)},b.container=this,!d||!d.length)return a.utils.noData(b,h),b;h.selectAll(".nv-noData").remove();var l=h.selectAll("g.nv-wrap.nv-sunburstChart").data(d),m=l.enter().append("g").attr("class","nvd3 nv-wrap nv-sunburstChart").append("g"),n=l.select("g");m.append("g").attr("class","nv-sunburstWrap"),l.attr("transform","translate("+e.left+","+e.top+")"),c.width(i).height(j);var o=n.select(".nv-sunburstWrap").datum(d);d3.transition(o).call(c)}),m.renderEnd("sunburstChart immediate"),b}var c=a.models.sunburst(),d=a.models.tooltip(),e={top:30,right:20,bottom:20,left:20},f=null,g=null,h=a.utils.defaultColor(),i=(Math.round(1e5*Math.random()),null),j=null,k=250,l=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd"),m=a.utils.renderWatch(l);return d.headerEnabled(!1).duration(0).valueFormatter(function(a){return a}),c.dispatch.on("elementMouseover.tooltip",function(a){a.series={key:a.data.name,value:a.data.size,color:a.color},d.data(a).hidden(!1)}),c.dispatch.on("elementMouseout.tooltip",function(){d.hidden(!0)}),c.dispatch.on("elementMousemove.tooltip",function(){d.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=l,b.sunburst=c,b.tooltip=d,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{noData:{get:function(){return j},set:function(a){j=a}},defaultState:{get:function(){return i},set:function(a){i=a}},color:{get:function(){return h},set:function(a){h=a,c.color(h)}},duration:{get:function(){return k},set:function(a){k=a,m.reset(k),c.duration(k)}},margin:{get:function(){return e},set:function(a){e.top=void 0!==a.top?a.top:e.top,e.right=void 0!==a.right?a.right:e.right,e.bottom=void 0!==a.bottom?a.bottom:e.bottom,e.left=void 0!==a.left?a.left:e.left}}}),a.utils.inheritOptions(b,c),a.utils.initOptions(b),b},a.version="1.8.1"}(); \ No newline at end of file diff --git a/vendor/phpunit/php-code-coverage/src/Report/OpenClover.php b/vendor/phpunit/php-code-coverage/src/Report/OpenClover.php new file mode 100644 index 000000000..3c9a7c3d1 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/OpenClover.php @@ -0,0 +1,249 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Report; + +use function assert; +use function basename; +use function count; +use function is_string; +use function ksort; +use function max; +use function range; +use function str_replace; +use function time; +use DOMDocument; +use DOMElement; +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Node\File; +use SebastianBergmann\CodeCoverage\Util\Filesystem; +use SebastianBergmann\CodeCoverage\Util\Xml; +use SebastianBergmann\CodeCoverage\Version; +use SebastianBergmann\CodeCoverage\WriteOperationFailedException; + +final class OpenClover +{ + /** + * @throws WriteOperationFailedException + */ + public function process(CodeCoverage $coverage, ?string $target = null, ?string $name = null): string + { + $time = (string) time(); + + $xmlDocument = new DOMDocument('1.0', 'UTF-8'); + $xmlDocument->formatOutput = true; + + $xmlCoverage = $xmlDocument->createElement('coverage'); + $xmlCoverage->setAttribute('clover', Version::id()); + $xmlCoverage->setAttribute('generated', $time); + $xmlDocument->appendChild($xmlCoverage); + + $xmlProject = $xmlDocument->createElement('project'); + $xmlProject->setAttribute('timestamp', $time); + + if (is_string($name)) { + $xmlProject->setAttribute('name', $name); + } + + $xmlCoverage->appendChild($xmlProject); + + /** @var array $packages */ + $packages = []; + $report = $coverage->getReport(); + + foreach ($report as $item) { + if (!$item instanceof File) { + continue; + } + + $xmlFile = $xmlDocument->createElement('file'); + $xmlFile->setAttribute('name', basename($item->pathAsString())); + $xmlFile->setAttribute('path', $item->pathAsString()); + + $classes = $item->classesAndTraits(); + $coverageData = $item->lineCoverageData(); + $lines = []; + $namespace = 'global'; + + foreach ($classes as $className => $class) { + $classStatements = 0; + $coveredClassStatements = 0; + $coveredMethods = 0; + $classMethods = 0; + + // Assumption: one namespace per file + if ($class->namespace !== '') { + $namespace = $class->namespace; + } + + foreach ($class->methods as $methodName => $method) { + /** @phpstan-ignore equal.notAllowed */ + if ($method->executableLines == 0) { + continue; + } + + $classMethods++; + $classStatements += $method->executableLines; + $coveredClassStatements += $method->executedLines; + + /** @phpstan-ignore equal.notAllowed */ + if ($method->coverage == 100) { + $coveredMethods++; + } + + $methodCount = 0; + + foreach (range($method->startLine, $method->endLine) as $line) { + if (isset($coverageData[$line])) { + $methodCount = max($methodCount, count($coverageData[$line])); + } + } + + $lines[$method->startLine] = [ + 'ccn' => $method->ccn, + 'count' => $methodCount, + 'type' => 'method', + 'signature' => $method->signature, + 'visibility' => $method->visibility, + ]; + } + + $xmlClass = $xmlDocument->createElement('class'); + $xmlClass->setAttribute('name', str_replace($class->namespace . '\\', '', $className)); + + $xmlFile->appendChild($xmlClass); + + $xmlMetrics = $xmlDocument->createElement('metrics'); + $xmlMetrics->setAttribute('complexity', (string) $class->ccn); + $xmlMetrics->setAttribute('elements', (string) ($classMethods + $classStatements + $class->executableBranches)); + $xmlMetrics->setAttribute('coveredelements', (string) ($coveredMethods + $coveredClassStatements + $class->executedBranches)); + $xmlMetrics->setAttribute('conditionals', (string) $class->executableBranches); + $xmlMetrics->setAttribute('coveredconditionals', (string) $class->executedBranches); + $xmlMetrics->setAttribute('statements', (string) $classStatements); + $xmlMetrics->setAttribute('coveredstatements', (string) $coveredClassStatements); + $xmlMetrics->setAttribute('methods', (string) $classMethods); + $xmlMetrics->setAttribute('coveredmethods', (string) $coveredMethods); + $xmlClass->insertBefore($xmlMetrics, $xmlClass->firstChild); + } + + foreach ($coverageData as $line => $data) { + if ($data === null || isset($lines[$line])) { + continue; + } + + $lines[$line] = [ + 'count' => count($data), + 'type' => 'stmt', + ]; + } + + ksort($lines); + + foreach ($lines as $line => $data) { + $xmlLine = $xmlDocument->createElement('line'); + $xmlLine->setAttribute('num', (string) $line); + $xmlLine->setAttribute('type', $data['type']); + + if (isset($data['ccn'])) { + $xmlLine->setAttribute('complexity', (string) $data['ccn']); + } + + $xmlLine->setAttribute('count', (string) $data['count']); + + if (isset($data['signature'])) { + $xmlLine->setAttribute('signature', $data['signature']); + } + + if (isset($data['visibility'])) { + $xmlLine->setAttribute('visibility', $data['visibility']); + } + + $xmlFile->appendChild($xmlLine); + } + + $linesOfCode = $item->linesOfCode(); + + $xmlMetrics = $xmlDocument->createElement('metrics'); + $xmlMetrics->setAttribute('loc', (string) $linesOfCode->linesOfCode()); + $xmlMetrics->setAttribute('ncloc', (string) $linesOfCode->nonCommentLinesOfCode()); + $xmlMetrics->setAttribute('classes', (string) $item->numberOfClassesAndTraits()); + $xmlMetrics->setAttribute('complexity', (string) $item->cyclomaticComplexity()); + $xmlMetrics->setAttribute('elements', (string) ($item->numberOfMethods() + $item->numberOfExecutableLines() + $item->numberOfExecutableBranches())); + $xmlMetrics->setAttribute('coveredelements', (string) ($item->numberOfTestedMethods() + $item->numberOfExecutedLines() + $item->numberOfExecutedBranches())); + $xmlMetrics->setAttribute('conditionals', (string) $item->numberOfExecutableBranches()); + $xmlMetrics->setAttribute('coveredconditionals', (string) $item->numberOfExecutedBranches()); + $xmlMetrics->setAttribute('statements', (string) $item->numberOfExecutableLines()); + $xmlMetrics->setAttribute('coveredstatements', (string) $item->numberOfExecutedLines()); + $xmlMetrics->setAttribute('methods', (string) $item->numberOfMethods()); + $xmlMetrics->setAttribute('coveredmethods', (string) $item->numberOfTestedMethods()); + $xmlFile->insertBefore($xmlMetrics, $xmlFile->firstChild); + + if (!isset($packages[$namespace])) { + $packages[$namespace] = $xmlDocument->createElement('package'); + $packages[$namespace]->setAttribute('name', $namespace); + + $xmlPackageMetrics = $xmlDocument->createElement('metrics'); + $xmlPackageMetrics->setAttribute('complexity', '0'); + $xmlPackageMetrics->setAttribute('elements', '0'); + $xmlPackageMetrics->setAttribute('coveredelements', '0'); + $xmlPackageMetrics->setAttribute('conditionals', '0'); + $xmlPackageMetrics->setAttribute('coveredconditionals', '0'); + $xmlPackageMetrics->setAttribute('statements', '0'); + $xmlPackageMetrics->setAttribute('coveredstatements', '0'); + $xmlPackageMetrics->setAttribute('methods', '0'); + $xmlPackageMetrics->setAttribute('coveredmethods', '0'); + $packages[$namespace]->appendChild($xmlPackageMetrics); + + $xmlProject->appendChild($packages[$namespace]); + } + + $xmlPackageMetrics = $packages[$namespace]->firstChild; + + assert($xmlPackageMetrics instanceof DOMElement); + + $xmlPackageMetrics->setAttribute('complexity', (string) ((int) $xmlPackageMetrics->getAttribute('complexity') + $item->cyclomaticComplexity())); + $xmlPackageMetrics->setAttribute('elements', (string) ((int) $xmlPackageMetrics->getAttribute('elements') + $item->numberOfMethods() + $item->numberOfExecutableLines() + $item->numberOfExecutableBranches())); + $xmlPackageMetrics->setAttribute('coveredelements', (string) ((int) $xmlPackageMetrics->getAttribute('coveredelements') + $item->numberOfTestedMethods() + $item->numberOfExecutedLines() + $item->numberOfExecutedBranches())); + $xmlPackageMetrics->setAttribute('conditionals', (string) ((int) $xmlPackageMetrics->getAttribute('conditionals') + $item->numberOfExecutableBranches())); + $xmlPackageMetrics->setAttribute('coveredconditionals', (string) ((int) $xmlPackageMetrics->getAttribute('coveredconditionals') + $item->numberOfExecutedBranches())); + $xmlPackageMetrics->setAttribute('statements', (string) ((int) $xmlPackageMetrics->getAttribute('statements') + $item->numberOfExecutableLines())); + $xmlPackageMetrics->setAttribute('coveredstatements', (string) ((int) $xmlPackageMetrics->getAttribute('coveredstatements') + $item->numberOfExecutedLines())); + $xmlPackageMetrics->setAttribute('methods', (string) ((int) $xmlPackageMetrics->getAttribute('methods') + $item->numberOfMethods())); + $xmlPackageMetrics->setAttribute('coveredmethods', (string) ((int) $xmlPackageMetrics->getAttribute('coveredmethods') + $item->numberOfTestedMethods())); + + $packages[$namespace]->appendChild($xmlFile); + } + + $linesOfCode = $report->linesOfCode(); + + $xmlMetrics = $xmlDocument->createElement('metrics'); + $xmlMetrics->setAttribute('files', (string) count($report)); + $xmlMetrics->setAttribute('loc', (string) $linesOfCode->linesOfCode()); + $xmlMetrics->setAttribute('ncloc', (string) $linesOfCode->nonCommentLinesOfCode()); + $xmlMetrics->setAttribute('classes', (string) $report->numberOfClassesAndTraits()); + $xmlMetrics->setAttribute('complexity', (string) $report->cyclomaticComplexity()); + $xmlMetrics->setAttribute('elements', (string) ($report->numberOfMethods() + $report->numberOfExecutableLines() + $report->numberOfExecutableBranches())); + $xmlMetrics->setAttribute('coveredelements', (string) ($report->numberOfTestedMethods() + $report->numberOfExecutedLines() + $report->numberOfExecutedBranches())); + $xmlMetrics->setAttribute('conditionals', (string) $report->numberOfExecutableBranches()); + $xmlMetrics->setAttribute('coveredconditionals', (string) $report->numberOfExecutedBranches()); + $xmlMetrics->setAttribute('statements', (string) $report->numberOfExecutableLines()); + $xmlMetrics->setAttribute('coveredstatements', (string) $report->numberOfExecutedLines()); + $xmlMetrics->setAttribute('methods', (string) $report->numberOfMethods()); + $xmlMetrics->setAttribute('coveredmethods', (string) $report->numberOfTestedMethods()); + $xmlProject->insertBefore($xmlMetrics, $xmlProject->firstChild); + + $buffer = Xml::asString($xmlDocument); + + if ($target !== null) { + Filesystem::write($target, $buffer); + } + + return $buffer; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Report/PHP.php b/vendor/phpunit/php-code-coverage/src/Report/PHP.php index e02bd25cb..aa941dc8a 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/PHP.php +++ b/vendor/phpunit/php-code-coverage/src/Report/PHP.php @@ -12,8 +12,8 @@ namespace SebastianBergmann\CodeCoverage\Report; use const PHP_EOL; use function serialize; use SebastianBergmann\CodeCoverage\CodeCoverage; -use SebastianBergmann\CodeCoverage\Driver\WriteOperationFailedException; use SebastianBergmann\CodeCoverage\Util\Filesystem; +use SebastianBergmann\CodeCoverage\WriteOperationFailedException; final class PHP { diff --git a/vendor/phpunit/php-code-coverage/src/Report/Text.php b/vendor/phpunit/php-code-coverage/src/Report/Text.php index a307aa4b0..4c8d70986 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Text.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Text.php @@ -23,30 +23,11 @@ use SebastianBergmann\CodeCoverage\Util\Percentage; final class Text { - /** - * @var string - */ - private const COLOR_GREEN = "\x1b[30;42m"; - - /** - * @var string - */ - private const COLOR_YELLOW = "\x1b[30;43m"; - - /** - * @var string - */ - private const COLOR_RED = "\x1b[37;41m"; - - /** - * @var string - */ - private const COLOR_HEADER = "\x1b[1;37;40m"; - - /** - * @var string - */ - private const COLOR_RESET = "\x1b[0m"; + private const string COLOR_GREEN = "\x1b[30;42m"; + private const string COLOR_YELLOW = "\x1b[30;43m"; + private const string COLOR_RED = "\x1b[37;41m"; + private const string COLOR_HEADER = "\x1b[1;37;40m"; + private const string COLOR_RESET = "\x1b[0m"; private readonly Thresholds $thresholds; private readonly bool $showUncoveredFiles; private readonly bool $showOnlySummary; @@ -60,7 +41,7 @@ final class Text public function process(CodeCoverage $coverage, bool $showColors = false): string { - $hasBranchCoverage = !empty($coverage->getData(true)->functionCoverage()); + $hasBranchCoverage = $coverage->getData(true)->functionCoverage() !== []; $output = PHP_EOL . PHP_EOL; $report = $coverage->getReport(); @@ -209,26 +190,28 @@ final class Text $coveredMethods = 0; $classMethods = 0; - foreach ($class['methods'] as $method) { - if ($method['executableLines'] == 0) { + foreach ($class->methods as $method) { + /** @phpstan-ignore equal.notAllowed */ + if ($method->executableLines == 0) { continue; } $classMethods++; - $classExecutableLines += $method['executableLines']; - $classExecutedLines += $method['executedLines']; - $classExecutableBranches += $method['executableBranches']; - $classExecutedBranches += $method['executedBranches']; - $classExecutablePaths += $method['executablePaths']; - $classExecutedPaths += $method['executedPaths']; + $classExecutableLines += $method->executableLines; + $classExecutedLines += $method->executedLines; + $classExecutableBranches += $method->executableBranches; + $classExecutedBranches += $method->executedBranches; + $classExecutablePaths += $method->executablePaths; + $classExecutedPaths += $method->executedPaths; - if ($method['coverage'] == 100) { + /** @phpstan-ignore equal.notAllowed */ + if ($method->coverage == 100) { $coveredMethods++; } } $classCoverage[$className] = [ - 'namespace' => $class['namespace'], + 'namespace' => $class->namespace, 'className' => $className, 'methodsCovered' => $coveredMethods, 'methodCount' => $classMethods, @@ -251,6 +234,7 @@ final class Text $resetColor = ''; foreach ($classCoverage as $fullQualifiedPath => $classInfo) { + /** @phpstan-ignore notEqual.notAllowed */ if ($this->showUncoveredFiles || $classInfo['statementsCovered'] != 0) { if ($showColors) { $methodColor = $this->coverageColor($classInfo['methodsCovered'], $classInfo['methodCount']); diff --git a/vendor/phpunit/php-code-coverage/src/Report/Thresholds.php b/vendor/phpunit/php-code-coverage/src/Report/Thresholds.php index 941351540..d1a81a260 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Thresholds.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Thresholds.php @@ -14,10 +14,10 @@ use SebastianBergmann\CodeCoverage\InvalidArgumentException; /** * @immutable */ -final class Thresholds +final readonly class Thresholds { - private readonly int $lowUpperBound; - private readonly int $highLowerBound; + private int $lowUpperBound; + private int $highLowerBound; public static function default(): self { diff --git a/vendor/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php b/vendor/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php index adf8bfb1e..b11fc6ede 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php @@ -9,73 +9,40 @@ */ namespace SebastianBergmann\CodeCoverage\Report\Xml; -use function assert; -use function phpversion; use DateTimeImmutable; -use DOMElement; -use SebastianBergmann\CodeCoverage\CodeCoverage; use SebastianBergmann\Environment\Runtime; +use XMLWriter; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ -final class BuildInformation +final readonly class BuildInformation { - private readonly DOMElement $contextNode; + public function __construct( + XMLWriter $xmlWriter, + Runtime $runtime, + DateTimeImmutable $buildDate, + string $phpUnitVersion, + string $coverageVersion, + string $driverExtensionName, + string $driverExtensionVersion, + ) { + $xmlWriter->startElement('build'); + $xmlWriter->writeAttribute('time', $buildDate->format('D M j G:i:s T Y')); + $xmlWriter->writeAttribute('phpunit', $phpUnitVersion); + $xmlWriter->writeAttribute('coverage', $coverageVersion); - public function __construct(DOMElement $contextNode) - { - $this->contextNode = $contextNode; - } + $xmlWriter->startElement('runtime'); + $xmlWriter->writeAttribute('name', $runtime->getName()); + $xmlWriter->writeAttribute('version', $runtime->getVersion()); + $xmlWriter->writeAttribute('url', $runtime->getVendorUrl()); + $xmlWriter->endElement(); - public function setRuntimeInformation(Runtime $runtime, CodeCoverage $coverage): void - { - $runtimeNode = $this->nodeByName('runtime'); + $xmlWriter->startElement('driver'); + $xmlWriter->writeAttribute('name', $driverExtensionName); + $xmlWriter->writeAttribute('version', $driverExtensionVersion); + $xmlWriter->endElement(); - $runtimeNode->setAttribute('name', $runtime->getName()); - $runtimeNode->setAttribute('version', $runtime->getVersion()); - $runtimeNode->setAttribute('url', $runtime->getVendorUrl()); - - $driverNode = $this->nodeByName('driver'); - - if ($coverage->driverIsPcov()) { - $driverNode->setAttribute('name', 'pcov'); - $driverNode->setAttribute('version', phpversion('pcov')); - } elseif ($coverage->driverIsXdebug()) { - $driverNode->setAttribute('name', 'xdebug'); - $driverNode->setAttribute('version', phpversion('xdebug')); - } - } - - public function setBuildTime(DateTimeImmutable $date): void - { - $this->contextNode->setAttribute('time', $date->format('D M j G:i:s T Y')); - } - - public function setGeneratorVersions(string $phpUnitVersion, string $coverageVersion): void - { - $this->contextNode->setAttribute('phpunit', $phpUnitVersion); - $this->contextNode->setAttribute('coverage', $coverageVersion); - } - - private function nodeByName(string $name): DOMElement - { - $node = $this->contextNode->getElementsByTagNameNS( - 'https://schema.phpunit.de/coverage/1.0', - $name, - )->item(0); - - if (!$node) { - $node = $this->contextNode->appendChild( - $this->contextNode->ownerDocument->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - $name, - ), - ); - } - - assert($node instanceof DOMElement); - - return $node; + $xmlWriter->endElement(); } } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Xml/Coverage.php b/vendor/phpunit/php-code-coverage/src/Report/Xml/Coverage.php index bb41dfb59..3038eb143 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Xml/Coverage.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Xml/Coverage.php @@ -9,8 +9,6 @@ */ namespace SebastianBergmann\CodeCoverage\Report\Xml; -use DOMElement; -use SebastianBergmann\CodeCoverage\ReportAlreadyFinalizedException; use XMLWriter; /** @@ -18,46 +16,28 @@ use XMLWriter; */ final class Coverage { - private readonly XMLWriter $writer; - private readonly DOMElement $contextNode; - private bool $finalized = false; + private readonly XMLWriter $xmlWriter; + private readonly string $line; - public function __construct(DOMElement $context, string $line) - { - $this->contextNode = $context; - - $this->writer = new XMLWriter; - $this->writer->openMemory(); - $this->writer->startElementNS(null, $context->nodeName, 'https://schema.phpunit.de/coverage/1.0'); - $this->writer->writeAttribute('nr', $line); + public function __construct( + XMLWriter $xmlWriter, + string $line + ) { + $this->xmlWriter = $xmlWriter; + $this->line = $line; } - /** - * @throws ReportAlreadyFinalizedException - */ - public function addTest(string $test): void + public function finalize(array $tests): void { - if ($this->finalized) { - throw new ReportAlreadyFinalizedException; + $writer = $this->xmlWriter; + $writer->startElement('line'); + $writer->writeAttribute('nr', $this->line); + + foreach ($tests as $test) { + $writer->startElement('covered'); + $writer->writeAttribute('by', $test); + $writer->endElement(); } - - $this->writer->startElement('covered'); - $this->writer->writeAttribute('by', $test); - $this->writer->endElement(); - } - - public function finalize(): void - { - $this->writer->endElement(); - - $fragment = $this->contextNode->ownerDocument->createDocumentFragment(); - $fragment->appendXML($this->writer->outputMemory()); - - $this->contextNode->parentNode->replaceChild( - $fragment, - $this->contextNode, - ); - - $this->finalized = true; + $writer->endElement(); } } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Xml/Facade.php b/vendor/phpunit/php-code-coverage/src/Report/Xml/Facade.php index 7dd64e93f..05ab96a60 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Xml/Facade.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Xml/Facade.php @@ -17,33 +17,41 @@ use function is_array; use function is_dir; use function is_file; use function is_writable; +use function phpversion; use function sprintf; use function strlen; use function substr; use DateTimeImmutable; -use DOMDocument; use SebastianBergmann\CodeCoverage\CodeCoverage; -use SebastianBergmann\CodeCoverage\Driver\PathExistsButIsNotDirectoryException; -use SebastianBergmann\CodeCoverage\Driver\WriteOperationFailedException; +use SebastianBergmann\CodeCoverage\Data\ProcessedClassType; +use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; +use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; use SebastianBergmann\CodeCoverage\Node\AbstractNode; use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; use SebastianBergmann\CodeCoverage\Node\File as FileNode; +use SebastianBergmann\CodeCoverage\PathExistsButIsNotDirectoryException; use SebastianBergmann\CodeCoverage\Util\Filesystem; -use SebastianBergmann\CodeCoverage\Util\Filesystem as DirectoryUtil; -use SebastianBergmann\CodeCoverage\Util\Xml; use SebastianBergmann\CodeCoverage\Version; +use SebastianBergmann\CodeCoverage\WriteOperationFailedException; use SebastianBergmann\CodeCoverage\XmlException; use SebastianBergmann\Environment\Runtime; +use XMLWriter; +/** + * @phpstan-import-type TestType from CodeCoverage + */ final class Facade { + public const string XML_NAMESPACE = 'https://schema.phpunit.de/coverage/1.0'; private string $target; private Project $project; private readonly string $phpUnitVersion; + private readonly bool $includeSource; - public function __construct(string $version) + public function __construct(string $version, bool $includeSource = true) { $this->phpUnitVersion = $version; + $this->includeSource = $includeSource; } /** @@ -60,23 +68,46 @@ final class Facade $report = $coverage->getReport(); + $writer = new XMLWriter; + $writer->openUri($this->targetFilePath('index')); + $writer->setIndent(true); + $writer->setIndentString(' '); $this->project = new Project( + $writer, $coverage->getReport()->name(), ); $this->setBuildInformation($coverage); + + $this->project->startProject(); $this->processTests($coverage->getTests()); $this->processDirectory($report, $this->project); - - $this->saveDocument($this->project->asDom(), 'index'); + $this->project->finalize(); } private function setBuildInformation(CodeCoverage $coverage): void { - $buildNode = $this->project->buildInformation(); - $buildNode->setRuntimeInformation(new Runtime, $coverage); - $buildNode->setBuildTime(new DateTimeImmutable); - $buildNode->setGeneratorVersions($this->phpUnitVersion, Version::id()); + if ($coverage->driverIsPcov()) { + $driverExtensionName = 'pcov'; + $driverExtensionVersion = phpversion('pcov'); + } elseif ($coverage->driverIsXdebug()) { + $driverExtensionName = 'xdebug'; + $driverExtensionVersion = phpversion('xdebug'); + } else { + // @codeCoverageIgnoreStart + $driverExtensionName = 'unknown'; + $driverExtensionVersion = 'unknown'; + // @codeCoverageIgnoreEnd + } + + $this->project->buildInformation( + new Runtime, + new DateTimeImmutable, + $this->phpUnitVersion, + Version::id(), + $driverExtensionName, + $driverExtensionVersion, + ); } /** @@ -86,6 +117,7 @@ final class Facade private function initTargetDirectory(string $directory): void { if (is_file($directory)) { + // @codeCoverageIgnoreStart if (!is_dir($directory)) { throw new PathExistsButIsNotDirectoryException($directory); } @@ -93,9 +125,10 @@ final class Facade if (!is_writable($directory)) { throw new WriteOperationFailedException($directory); } + // @codeCoverageIgnoreEnd } - DirectoryUtil::createDirectory($directory); + Filesystem::createDirectory($directory); } /** @@ -109,7 +142,10 @@ final class Facade $directoryName = '/'; } - $directoryObject = $context->addDirectory($directoryName); + $writer = $this->project->getWriter(); + $writer->startElement('directory'); + $writer->writeAttribute('name', $directoryName); + $directoryObject = $context->addDirectory(); $this->setTotals($directory, $directoryObject->totals()); @@ -120,6 +156,7 @@ final class Facade foreach ($directory->files() as $node) { $this->processFile($node, $directoryObject); } + $writer->endElement(); } /** @@ -127,19 +164,27 @@ final class Facade */ private function processFile(FileNode $file, Directory $context): void { - $fileObject = $context->addFile( - $file->name(), - $file->id() . '.xml', - ); + $context->getWriter()->startElement('file'); + $context->getWriter()->writeAttribute('name', $file->name()); + $context->getWriter()->writeAttribute('href', $file->id() . '.xml'); + $context->getWriter()->writeAttribute('hash', $file->sha1()); + + $fileObject = $context->addFile(); $this->setTotals($file, $fileObject->totals()); + $context->getWriter()->endElement(); + $path = substr( $file->pathAsString(), strlen($this->project->projectSourceDirectory()), ); - $fileReport = new Report($path); + $writer = new XMLWriter; + $writer->openUri($this->targetFilePath($file->id())); + $writer->setIndent(true); + $writer->setIndentString(' '); + $fileReport = new Report($writer, $path, $file->sha1()); $this->setTotals($file, $fileReport->totals()); @@ -151,88 +196,131 @@ final class Facade $this->processFunction($function, $fileReport); } + $fileReport->getWriter()->startElement('coverage'); + foreach ($file->lineCoverageData() as $line => $tests) { if (!is_array($tests) || count($tests) === 0) { continue; } $coverage = $fileReport->lineCoverage((string) $line); - - foreach ($tests as $test) { - $coverage->addTest($test); - } - - $coverage->finalize(); + $coverage->finalize($tests); } + $fileReport->getWriter()->endElement(); - $fileReport->source()->setSourceCode( - file_get_contents($file->pathAsString()), - ); - - $this->saveDocument($fileReport->asDom(), $file->id()); - } - - private function processUnit(array $unit, Report $report): void - { - if (isset($unit['className'])) { - $unitObject = $report->classObject($unit['className']); - } else { - $unitObject = $report->traitObject($unit['traitName']); - } - - $unitObject->setLines( - $unit['startLine'], - $unit['executableLines'], - $unit['executedLines'], - ); - - $unitObject->setCrap((float) $unit['crap']); - $unitObject->setNamespace($unit['namespace']); - - foreach ($unit['methods'] as $method) { - $methodObject = $unitObject->addMethod($method['methodName']); - $methodObject->setSignature($method['signature']); - $methodObject->setLines((string) $method['startLine'], (string) $method['endLine']); - $methodObject->setCrap($method['crap']); - $methodObject->setTotals( - (string) $method['executableLines'], - (string) $method['executedLines'], - (string) $method['coverage'], + if ($this->includeSource) { + $fileReport->source()->setSourceCode( + file_get_contents($file->pathAsString()), ); } + + $fileReport->finalize(); } - private function processFunction(array $function, Report $report): void + private function processUnit(ProcessedClassType|ProcessedTraitType $unit, Report $report): void { - $functionObject = $report->functionObject($function['functionName']); + if ($unit instanceof ProcessedClassType) { + $report->getWriter()->startElement('class'); - $functionObject->setSignature($function['signature']); - $functionObject->setLines((string) $function['startLine']); - $functionObject->setCrap($function['crap']); - $functionObject->setTotals((string) $function['executableLines'], (string) $function['executedLines'], (string) $function['coverage']); + $unitObject = $report->classObject( + $unit->className, + $unit->namespace, + $unit->startLine, + $unit->executableLines, + $unit->executedLines, + (float) $unit->crap, + ); + } else { + $report->getWriter()->startElement('trait'); + + $unitObject = $report->traitObject( + $unit->traitName, + $unit->namespace, + $unit->startLine, + $unit->executableLines, + $unit->executedLines, + (float) $unit->crap, + ); + } + + foreach ($unit->methods as $method) { + $report->getWriter()->startElement('method'); + + $unitObject->addMethod( + $method->methodName, + $method->signature, + (string) $method->startLine, + (string) $method->endLine, + (string) $method->executableLines, + (string) $method->executedLines, + (string) $method->coverage, + $method->crap, + ); + + $report->getWriter()->endElement(); + } + + $report->getWriter()->endElement(); } + private function processFunction(ProcessedFunctionType $function, Report $report): void + { + $report->getWriter()->startElement('function'); + + $report->functionObject( + $function->functionName, + $function->signature, + (string) $function->startLine, + null, + (string) $function->executableLines, + (string) $function->executedLines, + (string) $function->coverage, + $function->crap, + ); + + $report->getWriter()->endElement(); + } + + /** + * @param array $tests + */ private function processTests(array $tests): void { + $this->project->getWriter()->startElement('tests'); + $testsObject = $this->project->tests(); foreach ($tests as $test => $result) { $testsObject->addTest($test, $result); } + + $this->project->getWriter()->endElement(); } private function setTotals(AbstractNode $node, Totals $totals): void { + $totals->getWriter()->startElement('totals'); + $loc = $node->linesOfCode(); $totals->setNumLines( - $loc['linesOfCode'], - $loc['commentLinesOfCode'], - $loc['nonCommentLinesOfCode'], + $loc->linesOfCode(), + $loc->commentLinesOfCode(), + $loc->nonCommentLinesOfCode(), $node->numberOfExecutableLines(), $node->numberOfExecutedLines(), ); + $totals->setNumMethods( + $node->numberOfMethods(), + $node->numberOfTestedMethods(), + ); + + $totals->setNumFunctions( + $node->numberOfFunctions(), + $node->numberOfTestedFunctions(), + ); + $totals->setNumClasses( $node->numberOfClasses(), $node->numberOfTestedClasses(), @@ -243,15 +331,7 @@ final class Facade $node->numberOfTestedTraits(), ); - $totals->setNumMethods( - $node->numberOfMethods(), - $node->numberOfTestedMethods(), - ); - - $totals->setNumFunctions( - $node->numberOfFunctions(), - $node->numberOfTestedFunctions(), - ); + $totals->getWriter()->endElement(); } private function targetDirectory(): string @@ -259,15 +339,12 @@ final class Facade return $this->target; } - /** - * @throws XmlException - */ - private function saveDocument(DOMDocument $document, string $name): void + private function targetFilePath(string $name): string { $filename = sprintf('%s/%s.xml', $this->targetDirectory(), $name); $this->initTargetDirectory(dirname($filename)); - Filesystem::write($filename, Xml::asString($document)); + return $filename; } } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Xml/File.php b/vendor/phpunit/php-code-coverage/src/Report/Xml/File.php index 69b275106..2d35582a8 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Xml/File.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Xml/File.php @@ -9,72 +9,32 @@ */ namespace SebastianBergmann\CodeCoverage\Report\Xml; -use DOMDocument; -use DOMElement; +use XMLWriter; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ class File { - private readonly DOMDocument $dom; - private readonly DOMElement $contextNode; + protected XMLWriter $xmlWriter; - public function __construct(DOMElement $context) + public function __construct(XMLWriter $xmlWriter) { - $this->dom = $context->ownerDocument; - $this->contextNode = $context; + $this->xmlWriter = $xmlWriter; + } + + public function getWriter(): XMLWriter + { + return $this->xmlWriter; } public function totals(): Totals { - $totalsContainer = $this->contextNode->firstChild; - - if (!$totalsContainer) { - $totalsContainer = $this->contextNode->appendChild( - $this->dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'totals', - ), - ); - } - - return new Totals($totalsContainer); + return new Totals($this->xmlWriter); } public function lineCoverage(string $line): Coverage { - $coverage = $this->contextNode->getElementsByTagNameNS( - 'https://schema.phpunit.de/coverage/1.0', - 'coverage', - )->item(0); - - if (!$coverage) { - $coverage = $this->contextNode->appendChild( - $this->dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'coverage', - ), - ); - } - - $lineNode = $coverage->appendChild( - $this->dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'line', - ), - ); - - return new Coverage($lineNode, $line); - } - - protected function contextNode(): DOMElement - { - return $this->contextNode; - } - - protected function dom(): DOMDocument - { - return $this->dom; + return new Coverage($this->xmlWriter, $line); } } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Xml/Method.php b/vendor/phpunit/php-code-coverage/src/Report/Xml/Method.php index b1ab9ae53..965ad5259 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Xml/Method.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Xml/Method.php @@ -9,50 +9,41 @@ */ namespace SebastianBergmann\CodeCoverage\Report\Xml; -use DOMElement; +use XMLWriter; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ -final class Method +final readonly class Method { - private readonly DOMElement $contextNode; + private XMLWriter $xmlWriter; - public function __construct(DOMElement $context, string $name) - { - $this->contextNode = $context; + public function __construct( + XMLWriter $xmlWriter, + string $name, + string $signature, + string $start, + ?string $end, + string $executable, + string $executed, + string $coverage, + string $crap + ) { + $this->xmlWriter = $xmlWriter; - $this->setName($name); - } + $this->xmlWriter->writeAttribute('name', $name); + $this->xmlWriter->writeAttribute('signature', $signature); - public function setSignature(string $signature): void - { - $this->contextNode->setAttribute('signature', $signature); - } - - public function setLines(string $start, ?string $end = null): void - { - $this->contextNode->setAttribute('start', $start); + $this->xmlWriter->writeAttribute('start', $start); if ($end !== null) { - $this->contextNode->setAttribute('end', $end); + $this->xmlWriter->writeAttribute('end', $end); } - } - public function setTotals(string $executable, string $executed, string $coverage): void - { - $this->contextNode->setAttribute('executable', $executable); - $this->contextNode->setAttribute('executed', $executed); - $this->contextNode->setAttribute('coverage', $coverage); - } + $this->xmlWriter->writeAttribute('crap', $crap); - public function setCrap(string $crap): void - { - $this->contextNode->setAttribute('crap', $crap); - } - - private function setName(string $name): void - { - $this->contextNode->setAttribute('name', $name); + $this->xmlWriter->writeAttribute('executable', $executable); + $this->xmlWriter->writeAttribute('executed', $executed); + $this->xmlWriter->writeAttribute('coverage', $coverage); } } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Xml/Node.php b/vendor/phpunit/php-code-coverage/src/Report/Xml/Node.php index b2ba54b23..36b75bcfe 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Xml/Node.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Xml/Node.php @@ -9,78 +9,37 @@ */ namespace SebastianBergmann\CodeCoverage\Report\Xml; -use DOMDocument; -use DOMElement; +use XMLWriter; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ abstract class Node { - private DOMDocument $dom; - private DOMElement $contextNode; + protected readonly XMLWriter $xmlWriter; - public function __construct(DOMElement $context) + public function __construct(XMLWriter $xmlWriter) { - $this->setContextNode($context); - } - - public function dom(): DOMDocument - { - return $this->dom; + $this->xmlWriter = $xmlWriter; } public function totals(): Totals { - $totalsContainer = $this->contextNode()->firstChild; - - if (!$totalsContainer) { - $totalsContainer = $this->contextNode()->appendChild( - $this->dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'totals', - ), - ); - } - - return new Totals($totalsContainer); + return new Totals($this->xmlWriter); } - public function addDirectory(string $name): Directory + public function addDirectory(): Directory { - $dirNode = $this->dom()->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'directory', - ); - - $dirNode->setAttribute('name', $name); - $this->contextNode()->appendChild($dirNode); - - return new Directory($dirNode); + return new Directory($this->xmlWriter); } - public function addFile(string $name, string $href): File + public function addFile(): File { - $fileNode = $this->dom()->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'file', - ); - - $fileNode->setAttribute('name', $name); - $fileNode->setAttribute('href', $href); - $this->contextNode()->appendChild($fileNode); - - return new File($fileNode); + return new File($this->xmlWriter); } - protected function setContextNode(DOMElement $context): void + public function getWriter(): XMLWriter { - $this->dom = $context->ownerDocument; - $this->contextNode = $context; - } - - protected function contextNode(): DOMElement - { - return $this->contextNode; + return $this->xmlWriter; } } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Xml/Project.php b/vendor/phpunit/php-code-coverage/src/Report/Xml/Project.php index b450beb4f..e21addb56 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Xml/Project.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Xml/Project.php @@ -9,82 +9,73 @@ */ namespace SebastianBergmann\CodeCoverage\Report\Xml; -use DOMDocument; +use DateTimeImmutable; +use SebastianBergmann\Environment\Runtime; +use XMLWriter; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ final class Project extends Node { - public function __construct(string $directory) + private readonly string $directory; + + public function __construct(XMLWriter $xmlWriter, string $directory) { - $this->init(); - $this->setProjectSourceDirectory($directory); + $this->directory = $directory; + + parent::__construct($xmlWriter); + + $this->xmlWriter->startDocument(); + + $this->xmlWriter->startElement('phpunit'); + $this->xmlWriter->writeAttribute('xmlns', Facade::XML_NAMESPACE); } public function projectSourceDirectory(): string { - return $this->contextNode()->getAttribute('source'); + return $this->directory; } - public function buildInformation(): BuildInformation - { - $buildNode = $this->dom()->getElementsByTagNameNS( - 'https://schema.phpunit.de/coverage/1.0', - 'build', - )->item(0); - - if (!$buildNode) { - $buildNode = $this->dom()->documentElement->appendChild( - $this->dom()->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'build', - ), - ); - } - - return new BuildInformation($buildNode); + public function buildInformation( + Runtime $runtime, + DateTimeImmutable $buildDate, + string $phpUnitVersion, + string $coverageVersion, + string $driverExtensionName, + string $driverExtensionVersion, + ): void { + new BuildInformation( + $this->xmlWriter, + $runtime, + $buildDate, + $phpUnitVersion, + $coverageVersion, + $driverExtensionName, + $driverExtensionVersion, + ); } public function tests(): Tests { - $testsNode = $this->contextNode()->getElementsByTagNameNS( - 'https://schema.phpunit.de/coverage/1.0', - 'tests', - )->item(0); - - if (!$testsNode) { - $testsNode = $this->contextNode()->appendChild( - $this->dom()->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'tests', - ), - ); - } - - return new Tests($testsNode); + return new Tests($this->xmlWriter); } - public function asDom(): DOMDocument + public function getWriter(): XMLWriter { - return $this->dom(); + return $this->xmlWriter; } - private function init(): void + public function startProject(): void { - $dom = new DOMDocument; - $dom->loadXML(''); - - $this->setContextNode( - $dom->getElementsByTagNameNS( - 'https://schema.phpunit.de/coverage/1.0', - 'project', - )->item(0), - ); + $this->xmlWriter->startElement('project'); + $this->xmlWriter->writeAttribute('source', $this->directory); } - private function setProjectSourceDirectory(string $name): void + public function finalize(): void { - $this->contextNode()->setAttribute('source', $name); + $this->xmlWriter->endElement(); + $this->xmlWriter->endDocument(); + $this->xmlWriter->flush(); } } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Xml/Report.php b/vendor/phpunit/php-code-coverage/src/Report/Xml/Report.php index 09d103416..46d4dc0ed 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Xml/Report.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Xml/Report.php @@ -12,88 +12,97 @@ namespace SebastianBergmann\CodeCoverage\Report\Xml; use function basename; use function dirname; use DOMDocument; +use XMLWriter; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ final class Report extends File { - public function __construct(string $name) + private readonly string $name; + private readonly string $sha1; + + public function __construct(XMLWriter $xmlWriter, string $name, string $sha1) { + /* $dom = new DOMDocument; $dom->loadXML(''); $contextNode = $dom->getElementsByTagNameNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'file', )->item(0); +*/ + parent::__construct($xmlWriter); - parent::__construct($contextNode); + $this->name = $name; + $this->sha1 = $sha1; - $this->setName($name); + $xmlWriter->startDocument(); + $xmlWriter->startElement('phpunit'); + $xmlWriter->writeAttribute('xmlns', Facade::XML_NAMESPACE); + $xmlWriter->startElement('file'); + $xmlWriter->writeAttribute('name', basename($this->name)); + $xmlWriter->writeAttribute('path', dirname($this->name)); + $xmlWriter->writeAttribute('hash', $this->sha1); } - public function asDom(): DOMDocument + public function finalize(): void { - return $this->dom(); + $this->xmlWriter->endElement(); + $this->xmlWriter->endElement(); + + $this->xmlWriter->endDocument(); + $this->xmlWriter->flush(); } - public function functionObject($name): Method - { - $node = $this->contextNode()->appendChild( - $this->dom()->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'function', - ), + public function functionObject( + string $name, + string $signature, + string $start, + ?string $end, + string $executable, + string $executed, + string $coverage, + string $crap + ): void { + new Method( + $this->xmlWriter, + $name, + $signature, + $start, + $end, + $executable, + $executed, + $coverage, + $crap, ); - - return new Method($node, $name); } - public function classObject($name): Unit - { - return $this->unitObject('class', $name); + public function classObject( + string $name, + string $namespace, + int $start, + int $executable, + int $executed, + float $crap + ): Unit { + return new Unit($this->xmlWriter, $name, $namespace, $start, $executable, $executed, $crap); } - public function traitObject($name): Unit - { - return $this->unitObject('trait', $name); + public function traitObject( + string $name, + string $namespace, + int $start, + int $executable, + int $executed, + float $crap + ): Unit { + return new Unit($this->xmlWriter, $name, $namespace, $start, $executable, $executed, $crap); } public function source(): Source { - $source = $this->contextNode()->getElementsByTagNameNS( - 'https://schema.phpunit.de/coverage/1.0', - 'source', - )->item(0); - - if (!$source) { - $source = $this->contextNode()->appendChild( - $this->dom()->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'source', - ), - ); - } - - return new Source($source); - } - - private function setName(string $name): void - { - $this->contextNode()->setAttribute('name', basename($name)); - $this->contextNode()->setAttribute('path', dirname($name)); - } - - private function unitObject(string $tagName, $name): Unit - { - $node = $this->contextNode()->appendChild( - $this->dom()->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - $tagName, - ), - ); - - return new Unit($node, $name); + return new Source($this->xmlWriter); } } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Xml/Source.php b/vendor/phpunit/php-code-coverage/src/Report/Xml/Source.php index cd1fb90c5..e82b2c382 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Xml/Source.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Xml/Source.php @@ -9,33 +9,26 @@ */ namespace SebastianBergmann\CodeCoverage\Report\Xml; -use DOMElement; use TheSeer\Tokenizer\NamespaceUri; use TheSeer\Tokenizer\Tokenizer; use TheSeer\Tokenizer\XMLSerializer; +use XMLWriter; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ -final class Source +final readonly class Source { - private readonly DOMElement $context; + private XMLWriter $xmlWriter; - public function __construct(DOMElement $context) + public function __construct(XMLWriter $xmlWriter) { - $this->context = $context; + $this->xmlWriter = $xmlWriter; } public function setSourceCode(string $source): void { - $context = $this->context; - $tokens = (new Tokenizer)->parse($source); - $srcDom = (new XMLSerializer(new NamespaceUri($context->namespaceURI)))->toDom($tokens); - - $context->parentNode->replaceChild( - $context->ownerDocument->importNode($srcDom->documentElement, true), - $context, - ); + (new XMLSerializer(new NamespaceUri(Facade::XML_NAMESPACE)))->appendToWriter($this->xmlWriter, $tokens); } } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Xml/Tests.php b/vendor/phpunit/php-code-coverage/src/Report/Xml/Tests.php index b575676e9..fcb6bb7cc 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Xml/Tests.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Xml/Tests.php @@ -9,21 +9,22 @@ */ namespace SebastianBergmann\CodeCoverage\Report\Xml; -use function assert; -use DOMElement; +use function sprintf; +use SebastianBergmann\CodeCoverage\CodeCoverage; +use XMLWriter; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage * - * @phpstan-import-type TestType from \SebastianBergmann\CodeCoverage\CodeCoverage + * @phpstan-import-type TestType from CodeCoverage */ -final class Tests +final readonly class Tests { - private readonly DOMElement $contextNode; + private readonly XMLWriter $xmlWriter; - public function __construct(DOMElement $context) + public function __construct(XMLWriter $xmlWriter) { - $this->contextNode = $context; + $this->xmlWriter = $xmlWriter; } /** @@ -31,17 +32,13 @@ final class Tests */ public function addTest(string $test, array $result): void { - $node = $this->contextNode->appendChild( - $this->contextNode->ownerDocument->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'test', - ), - ); + $this->xmlWriter->startElement('test'); - assert($node instanceof DOMElement); + $this->xmlWriter->writeAttribute('name', $test); + $this->xmlWriter->writeAttribute('size', $result['size']); + $this->xmlWriter->writeAttribute('status', $result['status']); + $this->xmlWriter->writeAttribute('time', sprintf('%F', $result['time'])); - $node->setAttribute('name', $test); - $node->setAttribute('size', $result['size']); - $node->setAttribute('status', $result['status']); + $this->xmlWriter->endElement(); } } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Xml/Totals.php b/vendor/phpunit/php-code-coverage/src/Report/Xml/Totals.php index 239f6d43d..b0c57ec30 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Xml/Totals.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Xml/Totals.php @@ -10,114 +10,86 @@ namespace SebastianBergmann\CodeCoverage\Report\Xml; use function sprintf; -use DOMElement; -use DOMNode; use SebastianBergmann\CodeCoverage\Util\Percentage; +use XMLWriter; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ -final class Totals +final readonly class Totals { - private readonly DOMNode $container; - private readonly DOMElement $linesNode; - private readonly DOMElement $methodsNode; - private readonly DOMElement $functionsNode; - private readonly DOMElement $classesNode; - private readonly DOMElement $traitsNode; + private XMLWriter $xmlWriter; - public function __construct(DOMElement $container) + public function __construct(XMLWriter $xmlWriter) { - $this->container = $container; - $dom = $container->ownerDocument; - - $this->linesNode = $dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'lines', - ); - - $this->methodsNode = $dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'methods', - ); - - $this->functionsNode = $dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'functions', - ); - - $this->classesNode = $dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'classes', - ); - - $this->traitsNode = $dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'traits', - ); - - $container->appendChild($this->linesNode); - $container->appendChild($this->methodsNode); - $container->appendChild($this->functionsNode); - $container->appendChild($this->classesNode); - $container->appendChild($this->traitsNode); - } - - public function container(): DOMNode - { - return $this->container; + $this->xmlWriter = $xmlWriter; } public function setNumLines(int $loc, int $cloc, int $ncloc, int $executable, int $executed): void { - $this->linesNode->setAttribute('total', (string) $loc); - $this->linesNode->setAttribute('comments', (string) $cloc); - $this->linesNode->setAttribute('code', (string) $ncloc); - $this->linesNode->setAttribute('executable', (string) $executable); - $this->linesNode->setAttribute('executed', (string) $executed); - $this->linesNode->setAttribute( + $this->xmlWriter->startElement('lines'); + $this->xmlWriter->writeAttribute('total', (string) $loc); + $this->xmlWriter->writeAttribute('comments', (string) $cloc); + $this->xmlWriter->writeAttribute('code', (string) $ncloc); + $this->xmlWriter->writeAttribute('executable', (string) $executable); + $this->xmlWriter->writeAttribute('executed', (string) $executed); + $this->xmlWriter->writeAttribute( 'percent', $executable === 0 ? '0' : sprintf('%01.2F', Percentage::fromFractionAndTotal($executed, $executable)->asFloat()), ); + $this->xmlWriter->endElement(); } public function setNumClasses(int $count, int $tested): void { - $this->classesNode->setAttribute('count', (string) $count); - $this->classesNode->setAttribute('tested', (string) $tested); - $this->classesNode->setAttribute( + $this->xmlWriter->startElement('classes'); + $this->xmlWriter->writeAttribute('count', (string) $count); + $this->xmlWriter->writeAttribute('tested', (string) $tested); + $this->xmlWriter->writeAttribute( 'percent', $count === 0 ? '0' : sprintf('%01.2F', Percentage::fromFractionAndTotal($tested, $count)->asFloat()), ); + $this->xmlWriter->endElement(); } public function setNumTraits(int $count, int $tested): void { - $this->traitsNode->setAttribute('count', (string) $count); - $this->traitsNode->setAttribute('tested', (string) $tested); - $this->traitsNode->setAttribute( + $this->xmlWriter->startElement('traits'); + $this->xmlWriter->writeAttribute('count', (string) $count); + $this->xmlWriter->writeAttribute('tested', (string) $tested); + $this->xmlWriter->writeAttribute( 'percent', $count === 0 ? '0' : sprintf('%01.2F', Percentage::fromFractionAndTotal($tested, $count)->asFloat()), ); + $this->xmlWriter->endElement(); } public function setNumMethods(int $count, int $tested): void { - $this->methodsNode->setAttribute('count', (string) $count); - $this->methodsNode->setAttribute('tested', (string) $tested); - $this->methodsNode->setAttribute( + $this->xmlWriter->startElement('methods'); + $this->xmlWriter->writeAttribute('count', (string) $count); + $this->xmlWriter->writeAttribute('tested', (string) $tested); + $this->xmlWriter->writeAttribute( 'percent', $count === 0 ? '0' : sprintf('%01.2F', Percentage::fromFractionAndTotal($tested, $count)->asFloat()), ); + $this->xmlWriter->endElement(); } public function setNumFunctions(int $count, int $tested): void { - $this->functionsNode->setAttribute('count', (string) $count); - $this->functionsNode->setAttribute('tested', (string) $tested); - $this->functionsNode->setAttribute( + $this->xmlWriter->startElement('functions'); + $this->xmlWriter->writeAttribute('count', (string) $count); + $this->xmlWriter->writeAttribute('tested', (string) $tested); + $this->xmlWriter->writeAttribute( 'percent', $count === 0 ? '0' : sprintf('%01.2F', Percentage::fromFractionAndTotal($tested, $count)->asFloat()), ); + $this->xmlWriter->endElement(); + } + + public function getWriter(): XMLWriter + { + return $this->xmlWriter; } } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Xml/Unit.php b/vendor/phpunit/php-code-coverage/src/Report/Xml/Unit.php index 461ea066a..bfc5029c4 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Xml/Unit.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Xml/Unit.php @@ -9,70 +9,57 @@ */ namespace SebastianBergmann\CodeCoverage\Report\Xml; -use function assert; -use DOMElement; +use XMLWriter; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ -final class Unit +final readonly class Unit { - private readonly DOMElement $contextNode; + private XMLWriter $xmlWriter; - public function __construct(DOMElement $context, string $name) - { - $this->contextNode = $context; + public function __construct( + XMLWriter $xmlWriter, + string $name, + string $namespace, + int $start, + int $executable, + int $executed, + float $crap + ) { + $this->xmlWriter = $xmlWriter; - $this->setName($name); + $this->xmlWriter->writeAttribute('name', $name); + $this->xmlWriter->writeAttribute('start', (string) $start); + $this->xmlWriter->writeAttribute('executable', (string) $executable); + $this->xmlWriter->writeAttribute('executed', (string) $executed); + $this->xmlWriter->writeAttribute('crap', (string) $crap); + + $this->xmlWriter->startElement('namespace'); + $this->xmlWriter->writeAttribute('name', $namespace); + $this->xmlWriter->endElement(); } - public function setLines(int $start, int $executable, int $executed): void - { - $this->contextNode->setAttribute('start', (string) $start); - $this->contextNode->setAttribute('executable', (string) $executable); - $this->contextNode->setAttribute('executed', (string) $executed); - } - - public function setCrap(float $crap): void - { - $this->contextNode->setAttribute('crap', (string) $crap); - } - - public function setNamespace(string $namespace): void - { - $node = $this->contextNode->getElementsByTagNameNS( - 'https://schema.phpunit.de/coverage/1.0', - 'namespace', - )->item(0); - - if (!$node) { - $node = $this->contextNode->appendChild( - $this->contextNode->ownerDocument->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'namespace', - ), - ); - } - - assert($node instanceof DOMElement); - - $node->setAttribute('name', $namespace); - } - - public function addMethod(string $name): Method - { - $node = $this->contextNode->appendChild( - $this->contextNode->ownerDocument->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', - 'method', - ), + public function addMethod( + string $name, + string $signature, + string $start, + ?string $end, + string $executable, + string $executed, + string $coverage, + string $crap + ): void { + new Method( + $this->xmlWriter, + $name, + $signature, + $start, + $end, + $executable, + $executed, + $coverage, + $crap, ); - - return new Method($node, $name); - } - - private function setName(string $name): void - { - $this->contextNode->setAttribute('name', $name); } } diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php index 47cc756c6..dcd0c61ec 100644 --- a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php @@ -9,24 +9,36 @@ */ namespace SebastianBergmann\CodeCoverage\StaticAnalysis; +use function file_get_contents; use SebastianBergmann\CodeCoverage\Filter; -final class CacheWarmer +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final readonly class CacheWarmer { - public function warmCache(string $cacheDirectory, bool $useAnnotationsForIgnoringCode, bool $ignoreDeprecatedCode, Filter $filter): void + /** + * @return array{cacheHits: non-negative-int, cacheMisses: non-negative-int} + */ + public function warmCache(string $cacheDirectory, bool $useAnnotationsForIgnoringCode, bool $ignoreDeprecatedCode, Filter $filter): array { - $analyser = new CachingFileAnalyser( + $analyser = new CachingSourceAnalyser( $cacheDirectory, - new ParsingFileAnalyser( - $useAnnotationsForIgnoringCode, - $ignoreDeprecatedCode, - ), - $useAnnotationsForIgnoringCode, - $ignoreDeprecatedCode, + new ParsingSourceAnalyser, ); foreach ($filter->files() as $file) { - $analyser->process($file); + $analyser->analyse( + $file, + file_get_contents($file), + $useAnnotationsForIgnoringCode, + $ignoreDeprecatedCode, + ); } + + return [ + 'cacheHits' => $analyser->cacheHits(), + 'cacheMisses' => $analyser->cacheMisses(), + ]; } } diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php deleted file mode 100644 index cbcb3fbd1..000000000 --- a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php +++ /dev/null @@ -1,184 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeCoverage\StaticAnalysis; - -use const DIRECTORY_SEPARATOR; -use function file_get_contents; -use function file_put_contents; -use function implode; -use function is_file; -use function md5; -use function serialize; -use function unserialize; -use SebastianBergmann\CodeCoverage\Util\Filesystem; -use SebastianBergmann\CodeCoverage\Version; - -/** - * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage - * - * @phpstan-import-type CodeUnitFunctionType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor - * @phpstan-import-type CodeUnitMethodType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor - * @phpstan-import-type CodeUnitClassType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor - * @phpstan-import-type CodeUnitTraitType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor - * @phpstan-import-type LinesOfCodeType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser - * @phpstan-import-type LinesType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser - */ -final class CachingFileAnalyser implements FileAnalyser -{ - private readonly string $directory; - private readonly FileAnalyser $analyser; - private readonly bool $useAnnotationsForIgnoringCode; - private readonly bool $ignoreDeprecatedCode; - private array $cache = []; - - public function __construct(string $directory, FileAnalyser $analyser, bool $useAnnotationsForIgnoringCode, bool $ignoreDeprecatedCode) - { - Filesystem::createDirectory($directory); - - $this->analyser = $analyser; - $this->directory = $directory; - $this->useAnnotationsForIgnoringCode = $useAnnotationsForIgnoringCode; - $this->ignoreDeprecatedCode = $ignoreDeprecatedCode; - } - - /** - * @return array - */ - public function classesIn(string $filename): array - { - if (!isset($this->cache[$filename])) { - $this->process($filename); - } - - return $this->cache[$filename]['classesIn']; - } - - /** - * @return array - */ - public function traitsIn(string $filename): array - { - if (!isset($this->cache[$filename])) { - $this->process($filename); - } - - return $this->cache[$filename]['traitsIn']; - } - - /** - * @return array - */ - public function functionsIn(string $filename): array - { - if (!isset($this->cache[$filename])) { - $this->process($filename); - } - - return $this->cache[$filename]['functionsIn']; - } - - /** - * @return LinesOfCodeType - */ - public function linesOfCodeFor(string $filename): array - { - if (!isset($this->cache[$filename])) { - $this->process($filename); - } - - return $this->cache[$filename]['linesOfCodeFor']; - } - - /** - * @return LinesType - */ - public function executableLinesIn(string $filename): array - { - if (!isset($this->cache[$filename])) { - $this->process($filename); - } - - return $this->cache[$filename]['executableLinesIn']; - } - - /** - * @return LinesType - */ - public function ignoredLinesFor(string $filename): array - { - if (!isset($this->cache[$filename])) { - $this->process($filename); - } - - return $this->cache[$filename]['ignoredLinesFor']; - } - - public function process(string $filename): void - { - $cache = $this->read($filename); - - if ($cache !== false) { - $this->cache[$filename] = $cache; - - return; - } - - $this->cache[$filename] = [ - 'classesIn' => $this->analyser->classesIn($filename), - 'traitsIn' => $this->analyser->traitsIn($filename), - 'functionsIn' => $this->analyser->functionsIn($filename), - 'linesOfCodeFor' => $this->analyser->linesOfCodeFor($filename), - 'ignoredLinesFor' => $this->analyser->ignoredLinesFor($filename), - 'executableLinesIn' => $this->analyser->executableLinesIn($filename), - ]; - - $this->write($filename, $this->cache[$filename]); - } - - private function read(string $filename): array|false - { - $cacheFile = $this->cacheFile($filename); - - if (!is_file($cacheFile)) { - return false; - } - - return unserialize( - file_get_contents($cacheFile), - ['allowed_classes' => false], - ); - } - - private function write(string $filename, array $data): void - { - file_put_contents( - $this->cacheFile($filename), - serialize($data), - ); - } - - private function cacheFile(string $filename): string - { - $cacheKey = md5( - implode( - "\0", - [ - $filename, - file_get_contents($filename), - Version::id(), - $this->useAnnotationsForIgnoringCode, - $this->ignoreDeprecatedCode, - ], - ), - ); - - return $this->directory . DIRECTORY_SEPARATOR . $cacheKey; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingSourceAnalyser.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingSourceAnalyser.php new file mode 100644 index 000000000..6a7b8001b --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingSourceAnalyser.php @@ -0,0 +1,154 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\StaticAnalysis; + +use const DIRECTORY_SEPARATOR; +use function file_get_contents; +use function file_put_contents; +use function hash; +use function implode; +use function is_file; +use function serialize; +use function unserialize; +use SebastianBergmann\CodeCoverage\Util\Filesystem; +use SebastianBergmann\CodeCoverage\Version; + +/** + * @internal This interface is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final class CachingSourceAnalyser implements SourceAnalyser +{ + /** + * @var non-empty-string + */ + private readonly string $directory; + private readonly SourceAnalyser $sourceAnalyser; + + /** + * @var non-negative-int + */ + private int $cacheHits = 0; + + /** + * @var non-negative-int + */ + private int $cacheMisses = 0; + + public function __construct(string $directory, SourceAnalyser $sourceAnalyser) + { + Filesystem::createDirectory($directory); + + $this->directory = $directory; + $this->sourceAnalyser = $sourceAnalyser; + } + + /** + * @param non-empty-string $sourceCodeFile + */ + public function analyse(string $sourceCodeFile, string $sourceCode, bool $useAnnotationsForIgnoringCode, bool $ignoreDeprecatedCode): AnalysisResult + { + $cacheFile = $this->cacheFile( + $sourceCode, + $useAnnotationsForIgnoringCode, + $ignoreDeprecatedCode, + ); + + $cachedAnalysisResult = $this->read($cacheFile); + + if ($cachedAnalysisResult !== false) { + $this->cacheHits++; + + return $cachedAnalysisResult; + } + + $this->cacheMisses++; + + $analysisResult = $this->sourceAnalyser->analyse( + $sourceCodeFile, + $sourceCode, + $useAnnotationsForIgnoringCode, + $ignoreDeprecatedCode, + ); + + $this->write($cacheFile, $analysisResult); + + return $analysisResult; + } + + /** + * @return non-negative-int + */ + public function cacheHits(): int + { + return $this->cacheHits; + } + + /** + * @return non-negative-int + */ + public function cacheMisses(): int + { + return $this->cacheMisses; + } + + /** + * @param non-empty-string $cacheFile + */ + private function read(string $cacheFile): AnalysisResult|false + { + if (!is_file($cacheFile)) { + return false; + } + + return unserialize( + file_get_contents($cacheFile), + [ + 'allowed_classes' => [ + AnalysisResult::class, + Class_::class, + Function_::class, + Interface_::class, + LinesOfCode::class, + Method::class, + Trait_::class, + ], + ], + ); + } + + /** + * @param non-empty-string $cacheFile + */ + private function write(string $cacheFile, AnalysisResult $result): void + { + file_put_contents( + $cacheFile, + serialize($result), + ); + } + + private function cacheFile(string $source, bool $useAnnotationsForIgnoringCode, bool $ignoreDeprecatedCode): string + { + $cacheKey = hash( + 'sha256', + implode( + "\0", + [ + $source, + Version::id(), + $useAnnotationsForIgnoringCode, + $ignoreDeprecatedCode, + ], + ), + ); + + return $this->directory . DIRECTORY_SEPARATOR . $cacheKey; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CodeUnitFindingVisitor.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CodeUnitFindingVisitor.php deleted file mode 100644 index 3ebec6a91..000000000 --- a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CodeUnitFindingVisitor.php +++ /dev/null @@ -1,360 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeCoverage\StaticAnalysis; - -use function assert; -use function implode; -use function rtrim; -use function trim; -use PhpParser\Node; -use PhpParser\Node\ComplexType; -use PhpParser\Node\Identifier; -use PhpParser\Node\IntersectionType; -use PhpParser\Node\Name; -use PhpParser\Node\NullableType; -use PhpParser\Node\Stmt\Class_; -use PhpParser\Node\Stmt\ClassMethod; -use PhpParser\Node\Stmt\Enum_; -use PhpParser\Node\Stmt\Function_; -use PhpParser\Node\Stmt\Interface_; -use PhpParser\Node\Stmt\Trait_; -use PhpParser\Node\UnionType; -use PhpParser\NodeTraverser; -use PhpParser\NodeVisitorAbstract; -use SebastianBergmann\Complexity\CyclomaticComplexityCalculatingVisitor; - -/** - * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage - * - * @phpstan-type CodeUnitFunctionType = array{ - * name: string, - * namespacedName: string, - * namespace: string, - * signature: string, - * startLine: int, - * endLine: int, - * ccn: int - * } - * @phpstan-type CodeUnitMethodType = array{ - * methodName: string, - * signature: string, - * visibility: string, - * startLine: int, - * endLine: int, - * ccn: int - * } - * @phpstan-type CodeUnitClassType = array{ - * name: string, - * namespacedName: string, - * namespace: string, - * startLine: int, - * endLine: int, - * methods: array - * } - * @phpstan-type CodeUnitTraitType = array{ - * name: string, - * namespacedName: string, - * namespace: string, - * startLine: int, - * endLine: int, - * methods: array - * } - */ -final class CodeUnitFindingVisitor extends NodeVisitorAbstract -{ - /** - * @var array - */ - private array $classes = []; - - /** - * @var array - */ - private array $traits = []; - - /** - * @var array - */ - private array $functions = []; - - public function enterNode(Node $node): void - { - if ($node instanceof Class_) { - if ($node->isAnonymous()) { - return; - } - - $this->processClass($node); - } - - if ($node instanceof Trait_) { - $this->processTrait($node); - } - - if (!$node instanceof ClassMethod && !$node instanceof Function_) { - return; - } - - if ($node instanceof ClassMethod) { - $parentNode = $node->getAttribute('parent'); - - if ($parentNode instanceof Class_ && $parentNode->isAnonymous()) { - return; - } - - $this->processMethod($node); - - return; - } - - $this->processFunction($node); - } - - /** - * @return array - */ - public function classes(): array - { - return $this->classes; - } - - /** - * @return array - */ - public function traits(): array - { - return $this->traits; - } - - /** - * @return array - */ - public function functions(): array - { - return $this->functions; - } - - private function cyclomaticComplexity(ClassMethod|Function_ $node): int - { - $nodes = $node->getStmts(); - - if ($nodes === null) { - return 0; - } - - $traverser = new NodeTraverser; - - $cyclomaticComplexityCalculatingVisitor = new CyclomaticComplexityCalculatingVisitor; - - $traverser->addVisitor($cyclomaticComplexityCalculatingVisitor); - - /* @noinspection UnusedFunctionResultInspection */ - $traverser->traverse($nodes); - - return $cyclomaticComplexityCalculatingVisitor->cyclomaticComplexity(); - } - - private function signature(ClassMethod|Function_ $node): string - { - $signature = ($node->returnsByRef() ? '&' : '') . $node->name->toString() . '('; - $parameters = []; - - foreach ($node->getParams() as $parameter) { - assert(isset($parameter->var->name)); - - $parameterAsString = ''; - - if ($parameter->type !== null) { - $parameterAsString = $this->type($parameter->type) . ' '; - } - - $parameterAsString .= '$' . $parameter->var->name; - - /* @todo Handle default values */ - - $parameters[] = $parameterAsString; - } - - $signature .= implode(', ', $parameters) . ')'; - - $returnType = $node->getReturnType(); - - if ($returnType !== null) { - $signature .= ': ' . $this->type($returnType); - } - - return $signature; - } - - private function type(ComplexType|Identifier|Name $type): string - { - if ($type instanceof NullableType) { - return '?' . $type->type; - } - - if ($type instanceof UnionType) { - return $this->unionTypeAsString($type); - } - - if ($type instanceof IntersectionType) { - return $this->intersectionTypeAsString($type); - } - - return $type->toString(); - } - - private function visibility(ClassMethod $node): string - { - if ($node->isPrivate()) { - return 'private'; - } - - if ($node->isProtected()) { - return 'protected'; - } - - return 'public'; - } - - private function processClass(Class_ $node): void - { - $name = $node->name->toString(); - $namespacedName = $node->namespacedName->toString(); - - $this->classes[$namespacedName] = [ - 'name' => $name, - 'namespacedName' => $namespacedName, - 'namespace' => $this->namespace($namespacedName, $name), - 'startLine' => $node->getStartLine(), - 'endLine' => $node->getEndLine(), - 'methods' => [], - ]; - } - - private function processTrait(Trait_ $node): void - { - $name = $node->name->toString(); - $namespacedName = $node->namespacedName->toString(); - - $this->traits[$namespacedName] = [ - 'name' => $name, - 'namespacedName' => $namespacedName, - 'namespace' => $this->namespace($namespacedName, $name), - 'startLine' => $node->getStartLine(), - 'endLine' => $node->getEndLine(), - 'methods' => [], - ]; - } - - private function processMethod(ClassMethod $node): void - { - $parentNode = $node->getAttribute('parent'); - - if ($parentNode instanceof Interface_) { - return; - } - - assert($parentNode instanceof Class_ || $parentNode instanceof Trait_ || $parentNode instanceof Enum_); - assert(isset($parentNode->name)); - assert(isset($parentNode->namespacedName)); - assert($parentNode->namespacedName instanceof Name); - - $parentName = $parentNode->name->toString(); - $parentNamespacedName = $parentNode->namespacedName->toString(); - - if ($parentNode instanceof Class_) { - $storage = &$this->classes; - } else { - $storage = &$this->traits; - } - - if (!isset($storage[$parentNamespacedName])) { - $storage[$parentNamespacedName] = [ - 'name' => $parentName, - 'namespacedName' => $parentNamespacedName, - 'namespace' => $this->namespace($parentNamespacedName, $parentName), - 'startLine' => $parentNode->getStartLine(), - 'endLine' => $parentNode->getEndLine(), - 'methods' => [], - ]; - } - - $storage[$parentNamespacedName]['methods'][$node->name->toString()] = [ - 'methodName' => $node->name->toString(), - 'signature' => $this->signature($node), - 'visibility' => $this->visibility($node), - 'startLine' => $node->getStartLine(), - 'endLine' => $node->getEndLine(), - 'ccn' => $this->cyclomaticComplexity($node), - ]; - } - - private function processFunction(Function_ $node): void - { - assert(isset($node->name)); - assert(isset($node->namespacedName)); - assert($node->namespacedName instanceof Name); - - $name = $node->name->toString(); - $namespacedName = $node->namespacedName->toString(); - - $this->functions[$namespacedName] = [ - 'name' => $name, - 'namespacedName' => $namespacedName, - 'namespace' => $this->namespace($namespacedName, $name), - 'signature' => $this->signature($node), - 'startLine' => $node->getStartLine(), - 'endLine' => $node->getEndLine(), - 'ccn' => $this->cyclomaticComplexity($node), - ]; - } - - private function namespace(string $namespacedName, string $name): string - { - return trim(rtrim($namespacedName, $name), '\\'); - } - - private function unionTypeAsString(UnionType $node): string - { - $types = []; - - foreach ($node->types as $type) { - if ($type instanceof IntersectionType) { - $types[] = '(' . $this->intersectionTypeAsString($type) . ')'; - - continue; - } - - $types[] = $this->typeAsString($type); - } - - return implode('|', $types); - } - - private function intersectionTypeAsString(IntersectionType $node): string - { - $types = []; - - foreach ($node->types as $type) { - $types[] = $this->typeAsString($type); - } - - return implode('&', $types); - } - - private function typeAsString(Identifier|Name $node): string - { - if ($node instanceof Name) { - return $node->toCodeString(); - } - - return $node->toString(); - } -} diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/FileAnalyser.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/FileAnalyser.php index 7f2e6187f..3b1c5a42b 100644 --- a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/FileAnalyser.php +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/FileAnalyser.php @@ -9,50 +9,45 @@ */ namespace SebastianBergmann\CodeCoverage\StaticAnalysis; +use function file_get_contents; + /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage - * - * @phpstan-import-type CodeUnitFunctionType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor - * @phpstan-import-type CodeUnitMethodType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor - * @phpstan-import-type CodeUnitClassType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor - * @phpstan-import-type CodeUnitTraitType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor - * - * @phpstan-type LinesOfCodeType = array{ - * linesOfCode: int, - * commentLinesOfCode: int, - * nonCommentLinesOfCode: int - * } - * @phpstan-type LinesType = array */ -interface FileAnalyser +final class FileAnalyser { - /** - * @return array - */ - public function classesIn(string $filename): array; + private readonly SourceAnalyser $sourceAnalyser; + private readonly bool $useAnnotationsForIgnoringCode; + private readonly bool $ignoreDeprecatedCode; /** - * @return array + * @var array */ - public function traitsIn(string $filename): array; + private array $cache = []; + + public function __construct(SourceAnalyser $sourceAnalyser, bool $useAnnotationsForIgnoringCode, bool $ignoreDeprecatedCode) + { + $this->sourceAnalyser = $sourceAnalyser; + $this->useAnnotationsForIgnoringCode = $useAnnotationsForIgnoringCode; + $this->ignoreDeprecatedCode = $ignoreDeprecatedCode; + } /** - * @return array + * @param non-empty-string $sourceCodeFile */ - public function functionsIn(string $filename): array; + public function analyse(string $sourceCodeFile): AnalysisResult + { + if (isset($this->cache[$sourceCodeFile])) { + return $this->cache[$sourceCodeFile]; + } - /** - * @return LinesOfCodeType - */ - public function linesOfCodeFor(string $filename): array; + $this->cache[$sourceCodeFile] = $this->sourceAnalyser->analyse( + $sourceCodeFile, + file_get_contents($sourceCodeFile), + $this->useAnnotationsForIgnoringCode, + $this->ignoreDeprecatedCode, + ); - /** - * @return LinesType - */ - public function executableLinesIn(string $filename): array; - - /** - * @return LinesType - */ - public function ignoredLinesFor(string $filename): array; + return $this->cache[$sourceCodeFile]; + } } diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/ParsingFileAnalyser.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/ParsingFileAnalyser.php deleted file mode 100644 index eae1bdcf3..000000000 --- a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/ParsingFileAnalyser.php +++ /dev/null @@ -1,267 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeCoverage\StaticAnalysis; - -use const T_COMMENT; -use const T_DOC_COMMENT; -use function array_merge; -use function array_unique; -use function assert; -use function file_get_contents; -use function is_array; -use function max; -use function range; -use function sort; -use function sprintf; -use function substr_count; -use function token_get_all; -use function trim; -use PhpParser\Error; -use PhpParser\NodeTraverser; -use PhpParser\NodeVisitor\NameResolver; -use PhpParser\NodeVisitor\ParentConnectingVisitor; -use PhpParser\ParserFactory; -use SebastianBergmann\CodeCoverage\ParserException; -use SebastianBergmann\LinesOfCode\LineCountingVisitor; - -/** - * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage - * - * @phpstan-import-type CodeUnitFunctionType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor - * @phpstan-import-type CodeUnitMethodType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor - * @phpstan-import-type CodeUnitClassType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor - * @phpstan-import-type CodeUnitTraitType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor - * @phpstan-import-type LinesOfCodeType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser - * @phpstan-import-type LinesType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser - */ -final class ParsingFileAnalyser implements FileAnalyser -{ - /** - * @var array> - */ - private array $classes = []; - - /** - * @var array> - */ - private array $traits = []; - - /** - * @var array> - */ - private array $functions = []; - - /** - * @var array - */ - private array $linesOfCode = []; - - /** - * @var array - */ - private array $ignoredLines = []; - - /** - * @var array - */ - private array $executableLines = []; - private readonly bool $useAnnotationsForIgnoringCode; - private readonly bool $ignoreDeprecatedCode; - - public function __construct(bool $useAnnotationsForIgnoringCode, bool $ignoreDeprecatedCode) - { - $this->useAnnotationsForIgnoringCode = $useAnnotationsForIgnoringCode; - $this->ignoreDeprecatedCode = $ignoreDeprecatedCode; - } - - /** - * @return array - */ - public function classesIn(string $filename): array - { - $this->analyse($filename); - - return $this->classes[$filename]; - } - - /** - * @return array - */ - public function traitsIn(string $filename): array - { - $this->analyse($filename); - - return $this->traits[$filename]; - } - - /** - * @return array - */ - public function functionsIn(string $filename): array - { - $this->analyse($filename); - - return $this->functions[$filename]; - } - - /** - * @return LinesOfCodeType - */ - public function linesOfCodeFor(string $filename): array - { - $this->analyse($filename); - - return $this->linesOfCode[$filename]; - } - - /** - * @return LinesType - */ - public function executableLinesIn(string $filename): array - { - $this->analyse($filename); - - return $this->executableLines[$filename]; - } - - /** - * @return LinesType - */ - public function ignoredLinesFor(string $filename): array - { - $this->analyse($filename); - - return $this->ignoredLines[$filename]; - } - - /** - * @throws ParserException - */ - private function analyse(string $filename): void - { - if (isset($this->classes[$filename])) { - return; - } - - $source = file_get_contents($filename); - $linesOfCode = max(substr_count($source, "\n") + 1, substr_count($source, "\r") + 1); - - if ($linesOfCode === 0 && !empty($source)) { - $linesOfCode = 1; - } - - assert($linesOfCode > 0); - - $parser = (new ParserFactory)->createForHostVersion(); - - try { - $nodes = $parser->parse($source); - - assert($nodes !== null); - - $traverser = new NodeTraverser; - $codeUnitFindingVisitor = new CodeUnitFindingVisitor; - $lineCountingVisitor = new LineCountingVisitor($linesOfCode); - $ignoredLinesFindingVisitor = new IgnoredLinesFindingVisitor($this->useAnnotationsForIgnoringCode, $this->ignoreDeprecatedCode); - $executableLinesFindingVisitor = new ExecutableLinesFindingVisitor($source); - - $traverser->addVisitor(new NameResolver); - $traverser->addVisitor(new ParentConnectingVisitor); - $traverser->addVisitor($codeUnitFindingVisitor); - $traverser->addVisitor($lineCountingVisitor); - $traverser->addVisitor($ignoredLinesFindingVisitor); - $traverser->addVisitor($executableLinesFindingVisitor); - - /* @noinspection UnusedFunctionResultInspection */ - $traverser->traverse($nodes); - // @codeCoverageIgnoreStart - } catch (Error $error) { - throw new ParserException( - sprintf( - 'Cannot parse %s: %s', - $filename, - $error->getMessage(), - ), - $error->getCode(), - $error, - ); - } - // @codeCoverageIgnoreEnd - - $this->classes[$filename] = $codeUnitFindingVisitor->classes(); - $this->traits[$filename] = $codeUnitFindingVisitor->traits(); - $this->functions[$filename] = $codeUnitFindingVisitor->functions(); - $this->executableLines[$filename] = $executableLinesFindingVisitor->executableLinesGroupedByBranch(); - $this->ignoredLines[$filename] = []; - - $this->findLinesIgnoredByLineBasedAnnotations($filename, $source, $this->useAnnotationsForIgnoringCode); - - $this->ignoredLines[$filename] = array_unique( - array_merge( - $this->ignoredLines[$filename], - $ignoredLinesFindingVisitor->ignoredLines(), - ), - ); - - sort($this->ignoredLines[$filename]); - - $result = $lineCountingVisitor->result(); - - $this->linesOfCode[$filename] = [ - 'linesOfCode' => $result->linesOfCode(), - 'commentLinesOfCode' => $result->commentLinesOfCode(), - 'nonCommentLinesOfCode' => $result->nonCommentLinesOfCode(), - ]; - } - - private function findLinesIgnoredByLineBasedAnnotations(string $filename, string $source, bool $useAnnotationsForIgnoringCode): void - { - if (!$useAnnotationsForIgnoringCode) { - return; - } - - $start = false; - - foreach (token_get_all($source) as $token) { - if (!is_array($token) || - !(T_COMMENT === $token[0] || T_DOC_COMMENT === $token[0])) { - continue; - } - - $comment = trim($token[1]); - - if ($comment === '// @codeCoverageIgnore' || - $comment === '//@codeCoverageIgnore') { - $this->ignoredLines[$filename][] = $token[2]; - - continue; - } - - if ($comment === '// @codeCoverageIgnoreStart' || - $comment === '//@codeCoverageIgnoreStart') { - $start = $token[2]; - - continue; - } - - if ($comment === '// @codeCoverageIgnoreEnd' || - $comment === '//@codeCoverageIgnoreEnd') { - if (false === $start) { - $start = $token[2]; - } - - $this->ignoredLines[$filename] = array_merge( - $this->ignoredLines[$filename], - range($start, $token[2]), - ); - } - } - } -} diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/ParsingSourceAnalyser.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/ParsingSourceAnalyser.php new file mode 100644 index 000000000..7f46eeca6 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/ParsingSourceAnalyser.php @@ -0,0 +1,163 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\StaticAnalysis; + +use const T_COMMENT; +use const T_DOC_COMMENT; +use function array_merge; +use function array_unique; +use function assert; +use function is_array; +use function max; +use function range; +use function sort; +use function sprintf; +use function substr_count; +use function token_get_all; +use function trim; +use PhpParser\Error; +use PhpParser\NodeTraverser; +use PhpParser\NodeVisitor\NameResolver; +use PhpParser\ParserFactory; +use SebastianBergmann\CodeCoverage\ParserException; +use SebastianBergmann\LinesOfCode\LineCountingVisitor; + +/** + * @internal This interface is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final readonly class ParsingSourceAnalyser implements SourceAnalyser +{ + /** + * @param non-empty-string $sourceCodeFile + */ + public function analyse(string $sourceCodeFile, string $sourceCode, bool $useAnnotationsForIgnoringCode, bool $ignoreDeprecatedCode): AnalysisResult + { + $linesOfCode = max(substr_count($sourceCode, "\n") + 1, substr_count($sourceCode, "\r") + 1); + + if ($linesOfCode === 0 && $sourceCode !== '') { + $linesOfCode = 1; + } + + assert($linesOfCode > 0); + + $parser = (new ParserFactory)->createForHostVersion(); + + try { + $nodes = $parser->parse($sourceCode); + + assert($nodes !== null); + + $traverser = new NodeTraverser; + $codeUnitFindingVisitor = new CodeUnitFindingVisitor($sourceCodeFile); + $lineCountingVisitor = new LineCountingVisitor($linesOfCode); + $ignoredLinesFindingVisitor = new IgnoredLinesFindingVisitor($useAnnotationsForIgnoringCode, $ignoreDeprecatedCode); + $executableLinesFindingVisitor = new ExecutableLinesFindingVisitor($sourceCode); + + $traverser->addVisitor(new NameResolver); + $traverser->addVisitor(new AttributeParentConnectingVisitor); + $traverser->addVisitor($codeUnitFindingVisitor); + $traverser->addVisitor($lineCountingVisitor); + $traverser->addVisitor($ignoredLinesFindingVisitor); + $traverser->addVisitor($executableLinesFindingVisitor); + + /* @noinspection UnusedFunctionResultInspection */ + $traverser->traverse($nodes); + // @codeCoverageIgnoreStart + } catch (Error $error) { + throw new ParserException( + sprintf( + 'Cannot parse %s: %s', + $sourceCodeFile, + $error->getMessage(), + ), + $error->getCode(), + $error, + ); + } + // @codeCoverageIgnoreEnd + + $ignoredLines = array_unique( + array_merge( + $this->findLinesIgnoredByLineBasedAnnotations( + $sourceCodeFile, + $sourceCode, + $useAnnotationsForIgnoringCode, + ), + $ignoredLinesFindingVisitor->ignoredLines(), + ), + ); + + sort($ignoredLines); + + return new AnalysisResult( + $codeUnitFindingVisitor->interfaces(), + $codeUnitFindingVisitor->classes(), + $codeUnitFindingVisitor->traits(), + $codeUnitFindingVisitor->functions(), + new LinesOfCode( + $lineCountingVisitor->result()->linesOfCode(), + $lineCountingVisitor->result()->commentLinesOfCode(), + $lineCountingVisitor->result()->nonCommentLinesOfCode(), + ), + $executableLinesFindingVisitor->executableLinesGroupedByBranch(), + $ignoredLines, + ); + } + + /** + * @return array + */ + private function findLinesIgnoredByLineBasedAnnotations(string $filename, string $source, bool $useAnnotationsForIgnoringCode): array + { + if (!$useAnnotationsForIgnoringCode) { + return []; + } + + $result = []; + $start = false; + + foreach (token_get_all($source) as $token) { + if (!is_array($token) || + !(T_COMMENT === $token[0] || T_DOC_COMMENT === $token[0])) { + continue; + } + + $comment = trim($token[1]); + + if ($comment === '// @codeCoverageIgnore' || + $comment === '//@codeCoverageIgnore') { + $result[] = $token[2]; + + continue; + } + + if ($comment === '// @codeCoverageIgnoreStart' || + $comment === '//@codeCoverageIgnoreStart') { + $start = $token[2]; + + continue; + } + + if ($comment === '// @codeCoverageIgnoreEnd' || + $comment === '//@codeCoverageIgnoreEnd') { + if (false === $start) { + $start = $token[2]; + } + + $result = array_merge( + $result, + range($start, $token[2]), + ); + } + } + + return $result; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/SourceAnalyser.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/SourceAnalyser.php new file mode 100644 index 000000000..bc18996ff --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/SourceAnalyser.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\StaticAnalysis; + +/** + * @internal This interface is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +interface SourceAnalyser +{ + /** + * @param non-empty-string $sourceCodeFile + */ + public function analyse(string $sourceCodeFile, string $sourceCode, bool $useAnnotationsForIgnoringCode, bool $ignoreDeprecatedCode): AnalysisResult; +} diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/AnalysisResult.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/AnalysisResult.php new file mode 100644 index 000000000..88fff2c46 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/AnalysisResult.php @@ -0,0 +1,121 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\StaticAnalysis; + +/** + * @phpstan-type LinesType array + * + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final readonly class AnalysisResult +{ + /** + * @var array + */ + private array $interfaces; + + /** + * @var array + */ + private array $classes; + + /** + * @var array + */ + private array $traits; + + /** + * @var array + */ + private array $functions; + private LinesOfCode $linesOfCode; + + /** + * @var LinesType + */ + private array $executableLines; + + /** + * @var LinesType + */ + private array $ignoredLines; + + /** + * @param array $interfaces + * @param array $classes + * @param array $traits + * @param array $functions + * @param LinesType $executableLines + * @param LinesType $ignoredLines + */ + public function __construct(array $interfaces, array $classes, array $traits, array $functions, LinesOfCode $linesOfCode, array $executableLines, array $ignoredLines) + { + $this->interfaces = $interfaces; + $this->classes = $classes; + $this->traits = $traits; + $this->functions = $functions; + $this->linesOfCode = $linesOfCode; + $this->executableLines = $executableLines; + $this->ignoredLines = $ignoredLines; + } + + /** + * @return array + */ + public function interfaces(): array + { + return $this->interfaces; + } + + /** + * @return array + */ + public function classes(): array + { + return $this->classes; + } + + /** + * @return array + */ + public function traits(): array + { + return $this->traits; + } + + /** + * @return array + */ + public function functions(): array + { + return $this->functions; + } + + public function linesOfCode(): LinesOfCode + { + return $this->linesOfCode; + } + + /** + * @return LinesType + */ + public function executableLines(): array + { + return $this->executableLines; + } + + /** + * @return LinesType + */ + public function ignoredLines(): array + { + return $this->ignoredLines; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Class_.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Class_.php new file mode 100644 index 000000000..ee87b246e --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Class_.php @@ -0,0 +1,174 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\StaticAnalysis; + +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final readonly class Class_ +{ + /** + * @var non-empty-string + */ + private string $name; + + /** + * @var non-empty-string + */ + private string $namespacedName; + private string $namespace; + + /** + * @var non-empty-string + */ + private string $file; + + /** + * @var non-negative-int + */ + private int $startLine; + + /** + * @var non-negative-int + */ + private int $endLine; + + /** + * @var ?non-empty-string + */ + private ?string $parentClass; + + /** + * @var list + */ + private array $interfaces; + + /** + * @var list + */ + private array $traits; + + /** + * @var array + */ + private array $methods; + + /** + * @param non-empty-string $name + * @param non-empty-string $namespacedName + * @param non-empty-string $file + * @param non-negative-int $startLine + * @param non-negative-int $endLine + * @param ?non-empty-string $parentClass + * @param list $interfaces + * @param list $traits + * @param array $methods + */ + public function __construct(string $name, string $namespacedName, string $namespace, string $file, int $startLine, int $endLine, ?string $parentClass, array $interfaces, array $traits, array $methods) + { + $this->name = $name; + $this->namespacedName = $namespacedName; + $this->namespace = $namespace; + $this->file = $file; + $this->startLine = $startLine; + $this->endLine = $endLine; + $this->parentClass = $parentClass; + $this->interfaces = $interfaces; + $this->traits = $traits; + $this->methods = $methods; + } + + /** + * @return non-empty-string + */ + public function name(): string + { + return $this->name; + } + + /** + * @return non-empty-string + */ + public function namespacedName(): string + { + return $this->namespacedName; + } + + public function isNamespaced(): bool + { + return $this->namespace !== ''; + } + + public function namespace(): string + { + return $this->namespace; + } + + /** + * @return non-empty-string + */ + public function file(): string + { + return $this->file; + } + + /** + * @return non-negative-int + */ + public function startLine(): int + { + return $this->startLine; + } + + /** + * @return non-negative-int + */ + public function endLine(): int + { + return $this->endLine; + } + + public function hasParent(): bool + { + return $this->parentClass !== null; + } + + /** + * @return ?non-empty-string + */ + public function parentClass(): ?string + { + return $this->parentClass; + } + + /** + * @return list + */ + public function interfaces(): array + { + return $this->interfaces; + } + + /** + * @return list + */ + public function traits(): array + { + return $this->traits; + } + + /** + * @return array + */ + public function methods(): array + { + return $this->methods; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Function_.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Function_.php new file mode 100644 index 000000000..7069dec99 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Function_.php @@ -0,0 +1,124 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\StaticAnalysis; + +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final readonly class Function_ +{ + /** + * @var non-empty-string + */ + private string $name; + + /** + * @var non-empty-string + */ + private string $namespacedName; + private string $namespace; + + /** + * @var non-negative-int + */ + private int $startLine; + + /** + * @var non-negative-int + */ + private int $endLine; + + /** + * @var non-empty-string + */ + private string $signature; + + /** + * @var positive-int + */ + private int $cyclomaticComplexity; + + /** + * @param non-empty-string $name + * @param non-empty-string $namespacedName + * @param non-negative-int $startLine + * @param non-negative-int $endLine + * @param non-empty-string $signature + * @param positive-int $cyclomaticComplexity + */ + public function __construct(string $name, string $namespacedName, string $namespace, int $startLine, int $endLine, string $signature, int $cyclomaticComplexity) + { + $this->name = $name; + $this->namespacedName = $namespacedName; + $this->namespace = $namespace; + $this->startLine = $startLine; + $this->endLine = $endLine; + $this->signature = $signature; + $this->cyclomaticComplexity = $cyclomaticComplexity; + } + + /** + * @return non-empty-string + */ + public function name(): string + { + return $this->name; + } + + /** + * @return non-empty-string + */ + public function namespacedName(): string + { + return $this->namespacedName; + } + + public function isNamespaced(): bool + { + return $this->namespace !== ''; + } + + public function namespace(): string + { + return $this->namespace; + } + + /** + * @return non-negative-int + */ + public function startLine(): int + { + return $this->startLine; + } + + /** + * @return non-negative-int + */ + public function endLine(): int + { + return $this->endLine; + } + + /** + * @return non-empty-string + */ + public function signature(): string + { + return $this->signature; + } + + /** + * @return positive-int + */ + public function cyclomaticComplexity(): int + { + return $this->cyclomaticComplexity; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Interface_.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Interface_.php new file mode 100644 index 000000000..0b2579280 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Interface_.php @@ -0,0 +1,109 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\StaticAnalysis; + +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final readonly class Interface_ +{ + /** + * @var non-empty-string + */ + private string $name; + + /** + * @var non-empty-string + */ + private string $namespacedName; + private string $namespace; + + /** + * @var non-negative-int + */ + private int $startLine; + + /** + * @var non-negative-int + */ + private int $endLine; + + /** + * @var list + */ + private array $parentInterfaces; + + /** + * @param non-empty-string $name + * @param non-empty-string $namespacedName + * @param non-negative-int $startLine + * @param non-negative-int $endLine + * @param list $parentInterfaces + */ + public function __construct(string $name, string $namespacedName, string $namespace, int $startLine, int $endLine, array $parentInterfaces) + { + $this->name = $name; + $this->namespacedName = $namespacedName; + $this->namespace = $namespace; + $this->startLine = $startLine; + $this->endLine = $endLine; + $this->parentInterfaces = $parentInterfaces; + } + + /** + * @return non-empty-string + */ + public function name(): string + { + return $this->name; + } + + /** + * @return non-empty-string + */ + public function namespacedName(): string + { + return $this->namespacedName; + } + + public function isNamespaced(): bool + { + return $this->namespace !== ''; + } + + public function namespace(): string + { + return $this->namespace; + } + + /** + * @return non-negative-int + */ + public function startLine(): int + { + return $this->startLine; + } + + /** + * @return non-negative-int + */ + public function endLine(): int + { + return $this->endLine; + } + + /** + * @return list + */ + public function parentInterfaces(): array + { + return $this->parentInterfaces; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/LinesOfCode.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/LinesOfCode.php new file mode 100644 index 000000000..f8720e1a7 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/LinesOfCode.php @@ -0,0 +1,67 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\StaticAnalysis; + +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final readonly class LinesOfCode +{ + /** + * @var non-negative-int + */ + private int $linesOfCode; + + /** + * @var non-negative-int + */ + private int $commentLinesOfCode; + + /** + * @var non-negative-int + */ + private int $nonCommentLinesOfCode; + + /** + * @param non-negative-int $linesOfCode + * @param non-negative-int $commentLinesOfCode + * @param non-negative-int $nonCommentLinesOfCode + */ + public function __construct(int $linesOfCode, int $commentLinesOfCode, int $nonCommentLinesOfCode) + { + $this->linesOfCode = $linesOfCode; + $this->commentLinesOfCode = $commentLinesOfCode; + $this->nonCommentLinesOfCode = $nonCommentLinesOfCode; + } + + /** + * @return non-negative-int + */ + public function linesOfCode(): int + { + return $this->linesOfCode; + } + + /** + * @return non-negative-int + */ + public function commentLinesOfCode(): int + { + return $this->commentLinesOfCode; + } + + /** + * @return non-negative-int + */ + public function nonCommentLinesOfCode(): int + { + return $this->nonCommentLinesOfCode; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Method.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Method.php new file mode 100644 index 000000000..12e3438eb --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Method.php @@ -0,0 +1,104 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\StaticAnalysis; + +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final readonly class Method +{ + /** + * @var non-empty-string + */ + private string $name; + + /** + * @var non-negative-int + */ + private int $startLine; + + /** + * @var non-negative-int + */ + private int $endLine; + private Visibility $visibility; + + /** + * @var non-empty-string + */ + private string $signature; + + /** + * @var positive-int + */ + private int $cyclomaticComplexity; + + /** + * @param non-empty-string $name + * @param non-negative-int $startLine + * @param non-negative-int $endLine + * @param non-empty-string $signature + * @param positive-int $cyclomaticComplexity + */ + public function __construct(string $name, int $startLine, int $endLine, string $signature, Visibility $visibility, int $cyclomaticComplexity) + { + $this->name = $name; + $this->startLine = $startLine; + $this->endLine = $endLine; + $this->signature = $signature; + $this->visibility = $visibility; + $this->cyclomaticComplexity = $cyclomaticComplexity; + } + + /** + * @return non-empty-string + */ + public function name(): string + { + return $this->name; + } + + /** + * @return non-negative-int + */ + public function startLine(): int + { + return $this->startLine; + } + + /** + * @return non-negative-int + */ + public function endLine(): int + { + return $this->endLine; + } + + /** + * @return non-empty-string + */ + public function signature(): string + { + return $this->signature; + } + + public function visibility(): Visibility + { + return $this->visibility; + } + + /** + * @return positive-int + */ + public function cyclomaticComplexity(): int + { + return $this->cyclomaticComplexity; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Trait_.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Trait_.php new file mode 100644 index 000000000..7bf1084cd --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Trait_.php @@ -0,0 +1,139 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\StaticAnalysis; + +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final readonly class Trait_ +{ + /** + * @var non-empty-string + */ + private string $name; + + /** + * @var non-empty-string + */ + private string $namespacedName; + private string $namespace; + + /** + * @var non-empty-string + */ + private string $file; + + /** + * @var non-negative-int + */ + private int $startLine; + + /** + * @var non-negative-int + */ + private int $endLine; + + /** + * @var list + */ + private array $traits; + + /** + * @var array + */ + private array $methods; + + /** + * @param non-empty-string $name + * @param non-empty-string $namespacedName + * @param non-empty-string $file + * @param non-negative-int $startLine + * @param non-negative-int $endLine + * @param list $traits + * @param array $methods + */ + public function __construct(string $name, string $namespacedName, string $namespace, string $file, int $startLine, int $endLine, array $traits, array $methods) + { + $this->name = $name; + $this->namespacedName = $namespacedName; + $this->namespace = $namespace; + $this->file = $file; + $this->startLine = $startLine; + $this->endLine = $endLine; + $this->traits = $traits; + $this->methods = $methods; + } + + /** + * @return non-empty-string + */ + public function name(): string + { + return $this->name; + } + + /** + * @return non-empty-string + */ + public function namespacedName(): string + { + return $this->namespacedName; + } + + public function isNamespaced(): bool + { + return $this->namespace !== ''; + } + + public function namespace(): string + { + return $this->namespace; + } + + /** + * @return non-empty-string + */ + public function file(): string + { + return $this->file; + } + + /** + * @return non-negative-int + */ + public function startLine(): int + { + return $this->startLine; + } + + /** + * @return non-negative-int + */ + public function endLine(): int + { + return $this->endLine; + } + + /** + * @return list + */ + public function traits(): array + { + return $this->traits; + } + + /** + * @return array + */ + public function methods(): array + { + return $this->methods; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Visibility.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Visibility.php new file mode 100644 index 000000000..c92797751 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Value/Visibility.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\StaticAnalysis; + +/** + * @internal This enumeration is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +enum Visibility: string +{ + case Public = 'public'; + case Protected = 'protected'; + case Private = 'private'; +} diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/AttributeParentConnectingVisitor.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/AttributeParentConnectingVisitor.php new file mode 100644 index 000000000..2e2141405 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/AttributeParentConnectingVisitor.php @@ -0,0 +1,63 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\StaticAnalysis; + +use function array_pop; +use function count; +use PhpParser\Node; +use PhpParser\NodeVisitor; + +/** + * Visitor that connects a child node to its parent node optimized for Attribute nodes. + * + * On the child node, the parent node can be accessed through + * $node->getAttribute('parent'). + * + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final class AttributeParentConnectingVisitor implements NodeVisitor +{ + /** + * @var Node[] + */ + private array $stack = []; + + public function beforeTraverse(array $nodes): null + { + $this->stack = []; + + return null; + } + + public function enterNode(Node $node): null + { + if ($this->stack !== [] && + ($node instanceof Node\Attribute || $node instanceof Node\AttributeGroup)) { + $node->setAttribute('parent', $this->stack[count($this->stack) - 1]); + } + + $this->stack[] = $node; + + return null; + } + + public function leaveNode(Node $node): null + { + array_pop($this->stack); + + return null; + } + + public function afterTraverse(array $nodes): null + { + return null; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/CodeUnitFindingVisitor.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/CodeUnitFindingVisitor.php new file mode 100644 index 000000000..f6007d6ec --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/CodeUnitFindingVisitor.php @@ -0,0 +1,435 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\StaticAnalysis; + +use function assert; +use function implode; +use function rtrim; +use function trim; +use PhpParser\Node; +use PhpParser\Node\ComplexType; +use PhpParser\Node\Identifier; +use PhpParser\Node\IntersectionType; +use PhpParser\Node\Name; +use PhpParser\Node\NullableType; +use PhpParser\Node\Stmt\Class_; +use PhpParser\Node\Stmt\ClassMethod; +use PhpParser\Node\Stmt\Enum_; +use PhpParser\Node\Stmt\Function_; +use PhpParser\Node\Stmt\Interface_; +use PhpParser\Node\Stmt\Trait_; +use PhpParser\Node\UnionType; +use PhpParser\NodeTraverser; +use PhpParser\NodeVisitorAbstract; +use SebastianBergmann\Complexity\CyclomaticComplexityCalculatingVisitor; + +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final class CodeUnitFindingVisitor extends NodeVisitorAbstract +{ + /** + * @var non-empty-string + */ + private string $file; + + /** + * @var array + */ + private array $interfaces = []; + + /** + * @var array + */ + private array $classes = []; + + /** + * @var array + */ + private array $traits = []; + + /** + * @var array + */ + private array $functions = []; + + /** + * @param non-empty-string $file + */ + public function __construct(string $file) + { + $this->file = $file; + } + + public function enterNode(Node $node): null + { + if ($node instanceof Interface_) { + $this->processInterface($node); + } + + if ($node instanceof Class_) { + if ($node->isAnonymous()) { + return null; + } + + $this->processClass($node); + } + + if ($node instanceof Enum_) { + $this->processClass($node); + } + + if ($node instanceof Trait_) { + $this->processTrait($node); + } + + if (!$node instanceof Function_) { + return null; + } + + $this->processFunction($node); + + return null; + } + + public function leaveNode(Node $node): null + { + if ($node instanceof Class_ && $node->isAnonymous()) { + return null; + } + + if (!$node instanceof Class_ && !$node instanceof Enum_ && !$node instanceof Trait_) { + return null; + } + + $traits = []; + + foreach ($node->getTraitUses() as $traitUse) { + foreach ($traitUse->traits as $trait) { + $traits[] = $trait->toString(); + } + } + + if ($traits === []) { + return null; + } + + $this->postProcessClassOrTrait($node, $traits); + + return null; + } + + /** + * @return array + */ + public function interfaces(): array + { + return $this->interfaces; + } + + /** + * @return array + */ + public function classes(): array + { + return $this->classes; + } + + /** + * @return array + */ + public function traits(): array + { + return $this->traits; + } + + /** + * @return array + */ + public function functions(): array + { + return $this->functions; + } + + private function cyclomaticComplexity(ClassMethod|Function_ $node): int + { + $nodes = $node->getStmts(); + + if ($nodes === null) { + return 0; + } + + $traverser = new NodeTraverser; + + $cyclomaticComplexityCalculatingVisitor = new CyclomaticComplexityCalculatingVisitor; + + $traverser->addVisitor($cyclomaticComplexityCalculatingVisitor); + + /* @noinspection UnusedFunctionResultInspection */ + $traverser->traverse($nodes); + + return $cyclomaticComplexityCalculatingVisitor->cyclomaticComplexity(); + } + + private function signature(ClassMethod|Function_ $node): string + { + $signature = ($node->returnsByRef() ? '&' : '') . $node->name->toString() . '('; + $parameters = []; + + foreach ($node->getParams() as $parameter) { + assert(isset($parameter->var->name)); + + $parameterAsString = ''; + + if ($parameter->type !== null) { + $parameterAsString = $this->type($parameter->type) . ' '; + } + + $parameterAsString .= '$' . $parameter->var->name; + + /* @todo Handle default values */ + + $parameters[] = $parameterAsString; + } + + $signature .= implode(', ', $parameters) . ')'; + + $returnType = $node->getReturnType(); + + if ($returnType !== null) { + $signature .= ': ' . $this->type($returnType); + } + + return $signature; + } + + private function type(ComplexType|Identifier|Name $type): string + { + if ($type instanceof NullableType) { + return '?' . $type->type; + } + + if ($type instanceof UnionType) { + return $this->unionTypeAsString($type); + } + + if ($type instanceof IntersectionType) { + return $this->intersectionTypeAsString($type); + } + + return $type->toString(); + } + + private function visibility(ClassMethod $node): Visibility + { + if ($node->isPrivate()) { + return Visibility::Private; + } + + if ($node->isProtected()) { + return Visibility::Protected; + } + + return Visibility::Public; + } + + private function processInterface(Interface_ $node): void + { + $name = $node->name->toString(); + $namespacedName = $node->namespacedName->toString(); + $parentInterfaces = []; + + foreach ($node->extends as $parentInterface) { + $parentInterfaces[] = $parentInterface->toString(); + } + + $this->interfaces[$namespacedName] = new \SebastianBergmann\CodeCoverage\StaticAnalysis\Interface_( + $name, + $namespacedName, + $this->namespace($namespacedName, $name), + $node->getStartLine(), + $node->getEndLine(), + $parentInterfaces, + ); + } + + private function processClass(Class_|Enum_ $node): void + { + $name = $node->name->toString(); + $namespacedName = $node->namespacedName->toString(); + $parentClass = null; + $interfaces = []; + + if (!$node instanceof Enum_) { + if ($node->extends instanceof Name) { + $parentClass = $node->extends->toString(); + } + + foreach ($node->implements as $interface) { + $interfaces[] = $interface->toString(); + } + } + + $this->classes[$namespacedName] = new \SebastianBergmann\CodeCoverage\StaticAnalysis\Class_( + $name, + $namespacedName, + $this->namespace($namespacedName, $name), + $this->file, + $node->getStartLine(), + $node->getEndLine(), + $parentClass, + $interfaces, + [], + $this->processMethods($node->getMethods()), + ); + } + + private function processTrait(Trait_ $node): void + { + $name = $node->name->toString(); + $namespacedName = $node->namespacedName->toString(); + + $this->traits[$namespacedName] = new \SebastianBergmann\CodeCoverage\StaticAnalysis\Trait_( + $name, + $namespacedName, + $this->namespace($namespacedName, $name), + $this->file, + $node->getStartLine(), + $node->getEndLine(), + [], + $this->processMethods($node->getMethods()), + ); + } + + /** + * @param list $nodes + * + * @return array + */ + private function processMethods(array $nodes): array + { + $methods = []; + + foreach ($nodes as $node) { + $methods[$node->name->toString()] = new Method( + $node->name->toString(), + $node->getStartLine(), + $node->getEndLine(), + $this->signature($node), + $this->visibility($node), + $this->cyclomaticComplexity($node), + ); + } + + return $methods; + } + + private function processFunction(Function_ $node): void + { + assert(isset($node->name)); + assert(isset($node->namespacedName)); + assert($node->namespacedName instanceof Name); + + $name = $node->name->toString(); + $namespacedName = $node->namespacedName->toString(); + + $this->functions[$namespacedName] = new \SebastianBergmann\CodeCoverage\StaticAnalysis\Function_( + $name, + $namespacedName, + $this->namespace($namespacedName, $name), + $node->getStartLine(), + $node->getEndLine(), + $this->signature($node), + $this->cyclomaticComplexity($node), + ); + } + + private function namespace(string $namespacedName, string $name): string + { + return trim(rtrim($namespacedName, $name), '\\'); + } + + private function unionTypeAsString(UnionType $node): string + { + $types = []; + + foreach ($node->types as $type) { + if ($type instanceof IntersectionType) { + $types[] = '(' . $this->intersectionTypeAsString($type) . ')'; + + continue; + } + + $types[] = $this->typeAsString($type); + } + + return implode('|', $types); + } + + private function intersectionTypeAsString(IntersectionType $node): string + { + $types = []; + + foreach ($node->types as $type) { + $types[] = $this->typeAsString($type); + } + + return implode('&', $types); + } + + private function typeAsString(Identifier|Name $node): string + { + if ($node instanceof Name) { + return $node->toCodeString(); + } + + return $node->toString(); + } + + /** + * @param list $traits + */ + private function postProcessClassOrTrait(Class_|Enum_|Trait_ $node, array $traits): void + { + $name = $node->namespacedName->toString(); + + if ($node instanceof Class_ || $node instanceof Enum_) { + assert(isset($this->classes[$name])); + + $this->classes[$name] = new \SebastianBergmann\CodeCoverage\StaticAnalysis\Class_( + $this->classes[$name]->name(), + $this->classes[$name]->namespacedName(), + $this->classes[$name]->namespace(), + $this->classes[$name]->file(), + $this->classes[$name]->startLine(), + $this->classes[$name]->endLine(), + $this->classes[$name]->parentClass(), + $this->classes[$name]->interfaces(), + $traits, + $this->classes[$name]->methods(), + ); + + return; + } + + assert(isset($this->traits[$name])); + + $this->traits[$name] = new \SebastianBergmann\CodeCoverage\StaticAnalysis\Trait_( + $this->traits[$name]->name(), + $this->traits[$name]->namespacedName(), + $this->traits[$name]->namespace(), + $this->traits[$name]->file(), + $this->traits[$name]->startLine(), + $this->traits[$name]->endLine(), + $traits, + $this->traits[$name]->methods(), + ); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/ExecutableLinesFindingVisitor.php similarity index 91% rename from vendor/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php rename to vendor/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/ExecutableLinesFindingVisitor.php index e1327d8af..8453a6f27 100644 --- a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/ExecutableLinesFindingVisitor.php @@ -27,7 +27,7 @@ use PhpParser\NodeVisitorAbstract; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage * - * @phpstan-import-type LinesType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser + * @phpstan-import-type LinesType from AnalysisResult */ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract { @@ -54,7 +54,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract $this->source = $source; } - public function enterNode(Node $node): void + public function enterNode(Node $node): null { foreach ($node->getComments() as $comment) { $commentLine = $comment->getStartLine(); @@ -80,15 +80,17 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract } } - return; + return null; } - if ($node instanceof Node\Stmt\Interface_) { + if ($node instanceof Node\Stmt\Interface_ || + $node instanceof Node\Attribute + ) { foreach (range($node->getStartLine(), $node->getEndLine()) as $line) { $this->unsets[$line] = true; } - return; + return null; } if ($node instanceof Node\Stmt\Declare_ || @@ -113,7 +115,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract $node instanceof Node\Name || $node instanceof Node\Param || $node instanceof Node\Scalar) { - return; + return null; } if ($node instanceof Node\Expr\Match_) { @@ -125,13 +127,13 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract ); } - return; + return null; } if ($node instanceof Node\Stmt\Expression && $node->expr instanceof Node\Expr\Throw_) { $this->setLineBranch($node->expr->expr->getEndLine(), $node->expr->expr->getEndLine(), ++$this->nextBranch); - return; + return null; } if ($node instanceof Node\Stmt\Enum_ || @@ -140,6 +142,10 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract $node instanceof Node\Stmt\ClassMethod || $node instanceof Node\Expr\Closure || $node instanceof Node\Stmt\Trait_) { + if ($node instanceof Node\Stmt\ClassMethod && $node->isAbstract()) { + return null; + } + if ($node instanceof Node\Stmt\Function_ || $node instanceof Node\Stmt\ClassMethod) { $unsets = []; @@ -176,7 +182,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract } if ($isConcreteClassLike) { - return; + return null; } $hasEmptyBody = [] === $node->stmts || @@ -188,15 +194,15 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract if ($hasEmptyBody) { if ($node->getEndLine() === $node->getStartLine() && isset($this->executableLinesGroupedByBranch[$node->getStartLine()])) { - return; + return null; } $this->setLineBranch($node->getEndLine(), $node->getEndLine(), ++$this->nextBranch); - return; + return null; } - return; + return null; } if ($node instanceof Node\Expr\ArrowFunction) { @@ -208,12 +214,12 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract $endLine = $node->expr->getEndLine(); if ($endLine < $startLine) { - return; + return null; } $this->setLineBranch($startLine, $endLine, ++$this->nextBranch); - return; + return null; } if ($node instanceof Node\Expr\Ternary) { @@ -226,7 +232,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract $this->setLineBranch($node->else->getStartLine(), $node->else->getEndLine(), ++$this->nextBranch); } - return; + return null; } if ($node instanceof Node\Expr\BinaryOp\Coalesce) { @@ -234,14 +240,14 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract $this->setLineBranch($node->getEndLine(), $node->getEndLine(), ++$this->nextBranch); } - return; + return null; } if ($node instanceof Node\Stmt\If_ || $node instanceof Node\Stmt\ElseIf_ || $node instanceof Node\Stmt\Case_) { if (null === $node->cond) { - return; + return null; } $this->setLineBranch( @@ -250,7 +256,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract ++$this->nextBranch, ); - return; + return null; } if ($node instanceof Node\Stmt\For_) { @@ -292,7 +298,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract } if (null === $startLine || null === $endLine) { - return; + return null; } $this->setLineBranch( @@ -301,7 +307,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract ++$this->nextBranch, ); - return; + return null; } if ($node instanceof Node\Stmt\Foreach_) { @@ -311,7 +317,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract ++$this->nextBranch, ); - return; + return null; } if ($node instanceof Node\Stmt\While_ || @@ -322,7 +328,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract ++$this->nextBranch, ); - return; + return null; } if ($node instanceof Node\Stmt\Catch_) { @@ -337,7 +343,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract ++$this->nextBranch, ); - return; + return null; } if ($node instanceof Node\Expr\CallLike) { @@ -349,17 +355,19 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract $this->setLineBranch($node->getStartLine(), $node->getEndLine(), $branch); - return; + return null; } if (isset($this->executableLinesGroupedByBranch[$node->getStartLine()])) { - return; + return null; } $this->setLineBranch($node->getStartLine(), $node->getEndLine(), ++$this->nextBranch); + + return null; } - public function afterTraverse(array $nodes): void + public function afterTraverse(array $nodes): null { $lines = explode("\n", $this->source); @@ -379,6 +387,8 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract $this->executableLinesGroupedByBranch, $this->unsets, ); + + return null; } /** diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/IgnoredLinesFindingVisitor.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/IgnoredLinesFindingVisitor.php similarity index 94% rename from vendor/phpunit/php-code-coverage/src/StaticAnalysis/IgnoredLinesFindingVisitor.php rename to vendor/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/IgnoredLinesFindingVisitor.php index 40f12cc03..fefe646c8 100644 --- a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/IgnoredLinesFindingVisitor.php +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/Visitor/IgnoredLinesFindingVisitor.php @@ -39,7 +39,7 @@ final class IgnoredLinesFindingVisitor extends NodeVisitorAbstract $this->ignoreDeprecated = $ignoreDeprecated; } - public function enterNode(Node $node): void + public function enterNode(Node $node): null { if (!$node instanceof Class_ && !$node instanceof Trait_ && @@ -48,11 +48,11 @@ final class IgnoredLinesFindingVisitor extends NodeVisitorAbstract !$node instanceof ClassMethod && !$node instanceof Function_ && !$node instanceof Attribute) { - return; + return null; } if ($node instanceof Class_ && $node->isAnonymous()) { - return; + return null; } if ($node instanceof Class_ || @@ -68,11 +68,11 @@ final class IgnoredLinesFindingVisitor extends NodeVisitorAbstract } if (!$this->useAnnotationsForIgnoringCode) { - return; + return null; } if ($node instanceof Interface_) { - return; + return null; } if ($node instanceof Attribute && @@ -84,10 +84,12 @@ final class IgnoredLinesFindingVisitor extends NodeVisitorAbstract $this->ignoredLines[] = $line; } - return; + return null; } $this->processDocComment($node); + + return null; } /** diff --git a/vendor/phpunit/php-code-coverage/src/Target/Class_.php b/vendor/phpunit/php-code-coverage/src/Target/Class_.php new file mode 100644 index 000000000..9e6697802 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Target/Class_.php @@ -0,0 +1,68 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final class Class_ extends Target +{ + /** + * @var class-string + */ + private string $className; + + /** + * @param class-string $className + */ + protected function __construct(string $className) + { + $this->className = $className; + } + + public function isClass(): true + { + return true; + } + + /** + * @return class-string + */ + public function className(): string + { + return $this->className; + } + + /** + * @return non-empty-string + */ + public function key(): string + { + return 'classes'; + } + + /** + * @return non-empty-string + */ + public function target(): string + { + return $this->className; + } + + /** + * @return non-empty-string + */ + public function description(): string + { + return 'Class ' . $this->target(); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Target/ClassesThatExtendClass.php b/vendor/phpunit/php-code-coverage/src/Target/ClassesThatExtendClass.php new file mode 100644 index 000000000..94fdb56d8 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Target/ClassesThatExtendClass.php @@ -0,0 +1,68 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final class ClassesThatExtendClass extends Target +{ + /** + * @var class-string + */ + private string $className; + + /** + * @param class-string $className + */ + protected function __construct(string $className) + { + $this->className = $className; + } + + public function isClassesThatExtendClass(): true + { + return true; + } + + /** + * @return class-string + */ + public function className(): string + { + return $this->className; + } + + /** + * @return non-empty-string + */ + public function key(): string + { + return 'classesThatExtendClass'; + } + + /** + * @return non-empty-string + */ + public function target(): string + { + return $this->className; + } + + /** + * @return non-empty-string + */ + public function description(): string + { + return 'Classes that extend class ' . $this->target(); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Target/ClassesThatImplementInterface.php b/vendor/phpunit/php-code-coverage/src/Target/ClassesThatImplementInterface.php new file mode 100644 index 000000000..6bbe18efe --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Target/ClassesThatImplementInterface.php @@ -0,0 +1,68 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final class ClassesThatImplementInterface extends Target +{ + /** + * @var class-string + */ + private string $interfaceName; + + /** + * @param class-string $interfaceName + */ + protected function __construct(string $interfaceName) + { + $this->interfaceName = $interfaceName; + } + + public function isClassesThatImplementInterface(): true + { + return true; + } + + /** + * @return class-string + */ + public function interfaceName(): string + { + return $this->interfaceName; + } + + /** + * @return non-empty-string + */ + public function key(): string + { + return 'classesThatImplementInterface'; + } + + /** + * @return non-empty-string + */ + public function target(): string + { + return $this->interfaceName; + } + + /** + * @return non-empty-string + */ + public function description(): string + { + return 'Classes that implement interface ' . $this->target(); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Target/Function_.php b/vendor/phpunit/php-code-coverage/src/Target/Function_.php new file mode 100644 index 000000000..1d7cdddc0 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Target/Function_.php @@ -0,0 +1,68 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final class Function_ extends Target +{ + /** + * @var non-empty-string + */ + private string $functionName; + + /** + * @param non-empty-string $functionName + */ + protected function __construct(string $functionName) + { + $this->functionName = $functionName; + } + + public function isFunction(): true + { + return true; + } + + /** + * @return non-empty-string + */ + public function functionName(): string + { + return $this->functionName; + } + + /** + * @return non-empty-string + */ + public function key(): string + { + return 'functions'; + } + + /** + * @return non-empty-string + */ + public function target(): string + { + return $this->functionName; + } + + /** + * @return non-empty-string + */ + public function description(): string + { + return 'Function ' . $this->target(); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Target/MapBuilder.php b/vendor/phpunit/php-code-coverage/src/Target/MapBuilder.php new file mode 100644 index 000000000..8e8d93fbb --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Target/MapBuilder.php @@ -0,0 +1,274 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +use function array_keys; +use function array_merge; +use function array_slice; +use function array_unique; +use function count; +use function explode; +use function implode; +use function range; +use SebastianBergmann\CodeCoverage\Filter; +use SebastianBergmann\CodeCoverage\StaticAnalysis\Class_; +use SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser; +use SebastianBergmann\CodeCoverage\StaticAnalysis\Trait_; + +/** + * @phpstan-import-type TargetMap from Mapper + * @phpstan-import-type TargetMapPart from Mapper + * + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage + * + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final readonly class MapBuilder +{ + /** + * @return TargetMap + */ + public function build(Filter $filter, FileAnalyser $analyser): array + { + /** + * @var array $classDetails + */ + $classDetails = []; + + $namespaces = []; + $classes = []; + $classesThatExtendClass = []; + $classesThatImplementInterface = []; + $traits = []; + $methods = []; + $functions = []; + $reverseLookup = []; + + foreach ($filter->files() as $file) { + foreach ($analyser->analyse($file)->traits() as $trait) { + if ($trait->isNamespaced()) { + $this->processNamespace($namespaces, $trait->namespace(), $file, $trait->startLine(), $trait->endLine()); + } + + $this->process($traits, $trait->namespacedName(), $file, $trait->startLine(), $trait->endLine()); + $this->processMethods($trait, $file, $methods, $reverseLookup); + } + } + + foreach ($filter->files() as $file) { + foreach ($analyser->analyse($file)->traits() as $trait) { + foreach ($trait->traits() as $traitName) { + if (!isset($traits[$traitName])) { + continue; + } + + $this->mergeLines($trait->namespacedName(), $traits[$traitName], $traits); + } + } + } + + foreach ($filter->files() as $file) { + $analysisResult = $analyser->analyse($file); + + foreach ($analysisResult->interfaces() as $interface) { + $classesThatImplementInterface[$interface->namespacedName()] = []; + } + + foreach ($analysisResult->classes() as $class) { + if ($class->isNamespaced()) { + $this->processNamespace($namespaces, $class->namespace(), $file, $class->startLine(), $class->endLine()); + } + + $this->process($classes, $class->namespacedName(), $file, $class->startLine(), $class->endLine()); + + foreach ($class->traits() as $traitName) { + if (!isset($traits[$traitName])) { + continue; + } + + $this->mergeLines($class->namespacedName(), $traits[$traitName], $classes); + } + + $this->processMethods($class, $file, $methods, $reverseLookup); + + $classesThatExtendClass[$class->namespacedName()] = []; + $classDetails[$class->namespacedName()] = $class; + } + + foreach ($analysisResult->functions() as $function) { + if ($function->isNamespaced()) { + $this->processNamespace($namespaces, $function->namespace(), $file, $function->startLine(), $function->endLine()); + } + + $this->process($functions, $function->namespacedName(), $file, $function->startLine(), $function->endLine()); + + foreach (range($function->startLine(), $function->endLine()) as $line) { + $reverseLookup[$file . ':' . $line] = $function->namespacedName(); + } + } + } + + foreach ($namespaces as $namespace => $files) { + foreach (array_keys($files) as $file) { + $namespaces[$namespace][$file] = array_unique($namespaces[$namespace][$file]); + } + } + + foreach ($classDetails as $class) { + foreach ($class->interfaces() as $interfaceName) { + if (!isset($classesThatImplementInterface[$interfaceName])) { + continue; + } + + $this->process($classesThatImplementInterface, $interfaceName, $class->file(), $class->startLine(), $class->endLine()); + } + + foreach ($this->parentClasses($classDetails, $class) as $parentClass) { + $this->mergeLines($class->namespacedName(), $classes[$parentClass->namespacedName()], $classes); + + if (isset($classesThatExtendClass[$parentClass->namespacedName()])) { + $this->process($classesThatExtendClass, $parentClass->namespacedName(), $class->file(), $class->startLine(), $class->endLine()); + } + } + } + + foreach (array_keys($classesThatImplementInterface) as $className) { + if ($classesThatImplementInterface[$className] !== []) { + continue; + } + + unset($classesThatImplementInterface[$className]); + } + + foreach (array_keys($classesThatExtendClass) as $className) { + if ($classesThatExtendClass[$className] !== []) { + continue; + } + + unset($classesThatExtendClass[$className]); + } + + return [ + 'namespaces' => $namespaces, + 'traits' => $traits, + 'classes' => $classes, + 'classesThatExtendClass' => $classesThatExtendClass, + 'classesThatImplementInterface' => $classesThatImplementInterface, + 'methods' => $methods, + 'functions' => $functions, + 'reverseLookup' => $reverseLookup, + ]; + } + + private function mergeLines(string $targetClass, array $sourceData, array &$data): void + { + /** + * In large inheritance trees we might handle a lot of data. + * This loop needs to prevent unnecessary work whenever possible. + */ + foreach ($sourceData as $file => $lines) { + if (!isset($data[$targetClass][$file])) { + $data[$targetClass][$file] = $lines; + + continue; + } + + if ($data[$targetClass][$file] === $lines) { + continue; + } + + $data[$targetClass][$file] = array_unique( + array_merge( + $data[$targetClass][$file], + $lines, + ), + ); + } + } + + private function processMethods(Class_|Trait_ $classOrTrait, string $file, array &$methods, array &$reverseLookup): void + { + foreach ($classOrTrait->methods() as $method) { + $methodName = $classOrTrait->namespacedName() . '::' . $method->name(); + + $this->process($methods, $methodName, $file, $method->startLine(), $method->endLine()); + + foreach (range($method->startLine(), $method->endLine()) as $line) { + $reverseLookup[$file . ':' . $line] = $methodName; + } + } + } + + /** + * @param TargetMapPart $data + * @param non-empty-string $namespace + * @param non-empty-string $file + * @param positive-int $startLine + * @param positive-int $endLine + * + * @param-out TargetMapPart $data + */ + private function processNamespace(array &$data, string $namespace, string $file, int $startLine, int $endLine): void + { + $parts = explode('\\', $namespace); + + foreach (range(1, count($parts)) as $i) { + $this->process($data, implode('\\', array_slice($parts, 0, $i)), $file, $startLine, $endLine); + } + } + + /** + * @param TargetMapPart $data + * @param non-empty-string $unit + * @param non-empty-string $file + * @param positive-int $startLine + * @param positive-int $endLine + * + * @param-out TargetMapPart $data + */ + private function process(array &$data, string $unit, string $file, int $startLine, int $endLine): void + { + if (!isset($data[$unit])) { + $data[$unit] = []; + } + + if (!isset($data[$unit][$file])) { + $data[$unit][$file] = []; + } + + $data[$unit][$file] = array_merge( + $data[$unit][$file], + range($startLine, $endLine), + ); + } + + /** + * @param array $classDetails + * + * @return array + */ + private function parentClasses(array $classDetails, Class_ $class): array + { + if (!$class->hasParent()) { + return []; + } + + if (!isset($classDetails[$class->parentClass()])) { + return []; + } + + return array_merge( + [$classDetails[$class->parentClass()]], + $this->parentClasses($classDetails, $classDetails[$class->parentClass()]), + ); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Target/Mapper.php b/vendor/phpunit/php-code-coverage/src/Target/Mapper.php new file mode 100644 index 000000000..50c243bec --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Target/Mapper.php @@ -0,0 +1,101 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +use function array_keys; +use function array_merge; +use function array_unique; +use function strcasecmp; + +/** + * @phpstan-type TargetMap array{namespaces: TargetMapPart, traits: TargetMapPart, classes: TargetMapPart, classesThatExtendClass: TargetMapPart, classesThatImplementInterface: TargetMapPart, methods: TargetMapPart, functions: TargetMapPart, reverseLookup: ReverseLookup} + * @phpstan-type TargetMapPart array>> + * @phpstan-type ReverseLookup array + * + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage + * + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final readonly class Mapper +{ + /** + * @var TargetMap + */ + private array $map; + + /** + * @param TargetMap $map + */ + public function __construct(array $map) + { + $this->map = $map; + } + + /** + * @return array> + */ + public function mapTargets(TargetCollection $targets): array + { + $result = []; + + foreach ($targets as $target) { + foreach ($this->mapTarget($target) as $file => $lines) { + if (!isset($result[$file])) { + $result[$file] = $lines; + + continue; + } + + $result[$file] = array_unique(array_merge($result[$file], $lines)); + } + } + + return $result; + } + + /** + * @throws InvalidCodeCoverageTargetException + * + * @return array> + */ + public function mapTarget(Target $target): array + { + if (isset($this->map[$target->key()][$target->target()])) { + return $this->map[$target->key()][$target->target()]; + } + + foreach (array_keys($this->map[$target->key()]) as $key) { + if (strcasecmp($key, $target->target()) === 0) { + return $this->map[$target->key()][$key]; + } + } + + throw new InvalidCodeCoverageTargetException($target); + } + + /** + * @param non-empty-string $file + * @param positive-int $line + * + * @return non-empty-string + */ + public function lookup(string $file, int $line): string + { + $key = $file . ':' . $line; + + if (isset($this->map['reverseLookup'][$key])) { + return $this->map['reverseLookup'][$key]; + } + + return $key; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Target/Method.php b/vendor/phpunit/php-code-coverage/src/Target/Method.php new file mode 100644 index 000000000..0b46ba90f --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Target/Method.php @@ -0,0 +1,83 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final class Method extends Target +{ + /** + * @var class-string + */ + private string $className; + + /** + * @var non-empty-string + */ + private string $methodName; + + /** + * @param class-string $className + * @param non-empty-string $methodName + */ + protected function __construct(string $className, string $methodName) + { + $this->className = $className; + $this->methodName = $methodName; + } + + public function isMethod(): true + { + return true; + } + + /** + * @return class-string + */ + public function className(): string + { + return $this->className; + } + + /** + * @return non-empty-string + */ + public function methodName(): string + { + return $this->methodName; + } + + /** + * @return non-empty-string + */ + public function key(): string + { + return 'methods'; + } + + /** + * @return non-empty-string + */ + public function target(): string + { + return $this->className . '::' . $this->methodName; + } + + /** + * @return non-empty-string + */ + public function description(): string + { + return 'Method ' . $this->target(); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Target/Namespace_.php b/vendor/phpunit/php-code-coverage/src/Target/Namespace_.php new file mode 100644 index 000000000..651927d9f --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Target/Namespace_.php @@ -0,0 +1,68 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final class Namespace_ extends Target +{ + /** + * @var non-empty-string + */ + private string $namespace; + + /** + * @param non-empty-string $namespace + */ + protected function __construct(string $namespace) + { + $this->namespace = $namespace; + } + + public function isNamespace(): true + { + return true; + } + + /** + * @return non-empty-string + */ + public function namespace(): string + { + return $this->namespace; + } + + /** + * @return non-empty-string + */ + public function key(): string + { + return 'namespaces'; + } + + /** + * @return non-empty-string + */ + public function target(): string + { + return $this->namespace; + } + + /** + * @return non-empty-string + */ + public function description(): string + { + return 'Namespace ' . $this->target(); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Target/Target.php b/vendor/phpunit/php-code-coverage/src/Target/Target.php new file mode 100644 index 000000000..7432c81a9 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Target/Target.php @@ -0,0 +1,125 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +abstract class Target +{ + /** + * @param non-empty-string $namespace + */ + public static function forNamespace(string $namespace): Namespace_ + { + return new Namespace_($namespace); + } + + /** + * @param class-string $className + */ + public static function forClass(string $className): Class_ + { + return new Class_($className); + } + + /** + * @param class-string $className + * @param non-empty-string $methodName + */ + public static function forMethod(string $className, string $methodName): Method + { + return new Method($className, $methodName); + } + + /** + * @param class-string $interfaceName + */ + public static function forClassesThatImplementInterface(string $interfaceName): ClassesThatImplementInterface + { + return new ClassesThatImplementInterface($interfaceName); + } + + /** + * @param class-string $className + */ + public static function forClassesThatExtendClass(string $className): ClassesThatExtendClass + { + return new ClassesThatExtendClass($className); + } + + /** + * @param non-empty-string $functionName + */ + public static function forFunction(string $functionName): Function_ + { + return new Function_($functionName); + } + + /** + * @param trait-string $traitName + */ + public static function forTrait(string $traitName): Trait_ + { + return new Trait_($traitName); + } + + public function isNamespace(): bool + { + return false; + } + + public function isClass(): bool + { + return false; + } + + public function isMethod(): bool + { + return false; + } + + public function isClassesThatImplementInterface(): bool + { + return false; + } + + public function isClassesThatExtendClass(): bool + { + return false; + } + + public function isFunction(): bool + { + return false; + } + + public function isTrait(): bool + { + return false; + } + + /** + * @return non-empty-string + */ + abstract public function key(): string; + + /** + * @return non-empty-string + */ + abstract public function target(): string; + + /** + * @return non-empty-string + */ + abstract public function description(): string; +} diff --git a/vendor/phpunit/php-code-coverage/src/Target/TargetCollection.php b/vendor/phpunit/php-code-coverage/src/Target/TargetCollection.php new file mode 100644 index 000000000..ef6e32ac8 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Target/TargetCollection.php @@ -0,0 +1,70 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +use function count; +use Countable; +use IteratorAggregate; + +/** + * @template-implements IteratorAggregate + * + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final readonly class TargetCollection implements Countable, IteratorAggregate +{ + /** + * @var list + */ + private array $targets; + + /** + * @param list $targets + */ + public static function fromArray(array $targets): self + { + return new self(...$targets); + } + + private function __construct(Target ...$targets) + { + $this->targets = $targets; + } + + /** + * @return list + */ + public function asArray(): array + { + return $this->targets; + } + + public function count(): int + { + return count($this->targets); + } + + public function isEmpty(): bool + { + return $this->count() === 0; + } + + public function isNotEmpty(): bool + { + return $this->count() > 0; + } + + public function getIterator(): TargetCollectionIterator + { + return new TargetCollectionIterator($this); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Target/TargetCollectionIterator.php b/vendor/phpunit/php-code-coverage/src/Target/TargetCollectionIterator.php new file mode 100644 index 000000000..9a5ca06d9 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Target/TargetCollectionIterator.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +use function count; +use Iterator; + +/** + * @template-implements Iterator + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final class TargetCollectionIterator implements Iterator +{ + /** + * @var list + */ + private readonly array $targets; + private int $position = 0; + + public function __construct(TargetCollection $metadata) + { + $this->targets = $metadata->asArray(); + } + + public function rewind(): void + { + $this->position = 0; + } + + public function valid(): bool + { + return $this->position < count($this->targets); + } + + public function key(): int + { + return $this->position; + } + + public function current(): Target + { + return $this->targets[$this->position]; + } + + public function next(): void + { + $this->position++; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Target/TargetCollectionValidator.php b/vendor/phpunit/php-code-coverage/src/Target/TargetCollectionValidator.php new file mode 100644 index 000000000..370341438 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Target/TargetCollectionValidator.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +use function implode; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage + * + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final readonly class TargetCollectionValidator +{ + public function validate(Mapper $mapper, TargetCollection $targets): ValidationResult + { + $errors = []; + + foreach ($targets as $target) { + try { + $mapper->mapTarget($target); + } catch (InvalidCodeCoverageTargetException $e) { + $errors[] = $e->getMessage(); + } + } + + if ($errors === []) { + return ValidationResult::success(); + } + + return ValidationResult::failure(implode("\n", $errors)); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Target/Trait_.php b/vendor/phpunit/php-code-coverage/src/Target/Trait_.php new file mode 100644 index 000000000..a698a18ae --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Target/Trait_.php @@ -0,0 +1,68 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final class Trait_ extends Target +{ + /** + * @var trait-string + */ + private string $traitName; + + /** + * @param trait-string $traitName + */ + protected function __construct(string $traitName) + { + $this->traitName = $traitName; + } + + public function isTrait(): true + { + return true; + } + + /** + * @return trait-string + */ + public function traitName(): string + { + return $this->traitName; + } + + /** + * @return non-empty-string + */ + public function key(): string + { + return 'traits'; + } + + /** + * @return non-empty-string + */ + public function target(): string + { + return $this->traitName; + } + + /** + * @return non-empty-string + */ + public function description(): string + { + return 'Trait ' . $this->target(); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Target/ValidationFailure.php b/vendor/phpunit/php-code-coverage/src/Target/ValidationFailure.php new file mode 100644 index 000000000..e43791f5a --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Target/ValidationFailure.php @@ -0,0 +1,46 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final readonly class ValidationFailure extends ValidationResult +{ + /** + * @var non-empty-string + */ + private string $message; + + /** + * @param non-empty-string $message + * + * @noinspection PhpMissingParentConstructorInspection + */ + protected function __construct(string $message) + { + $this->message = $message; + } + + public function isFailure(): true + { + return true; + } + + /** + * @return non-empty-string + */ + public function message(): string + { + return $this->message; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Target/ValidationResult.php b/vendor/phpunit/php-code-coverage/src/Target/ValidationResult.php new file mode 100644 index 000000000..8abf5112c --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Target/ValidationResult.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +abstract readonly class ValidationResult +{ + public static function success(): ValidationSuccess + { + return new ValidationSuccess; + } + + /** + * @param non-empty-string $message + */ + public static function failure(string $message): ValidationFailure + { + return new ValidationFailure($message); + } + + /** + * @phpstan-assert-if-true ValidationSuccess $this + */ + public function isSuccess(): bool + { + return false; + } + + /** + * @phpstan-assert-if-true ValidationFailure $this + */ + public function isFailure(): bool + { + return false; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Target/ValidationSuccess.php b/vendor/phpunit/php-code-coverage/src/Target/ValidationSuccess.php new file mode 100644 index 000000000..1dffd0d2d --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Target/ValidationSuccess.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Test\Target; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final readonly class ValidationSuccess extends ValidationResult +{ + public function isSuccess(): true + { + return true; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Util/Filesystem.php b/vendor/phpunit/php-code-coverage/src/Util/Filesystem.php index 1c4aa3802..f73388ae2 100644 --- a/vendor/phpunit/php-code-coverage/src/Util/Filesystem.php +++ b/vendor/phpunit/php-code-coverage/src/Util/Filesystem.php @@ -15,7 +15,7 @@ use function is_dir; use function mkdir; use function sprintf; use function str_contains; -use SebastianBergmann\CodeCoverage\Driver\WriteOperationFailedException; +use SebastianBergmann\CodeCoverage\WriteOperationFailedException; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage diff --git a/vendor/phpunit/php-code-coverage/src/Util/Percentage.php b/vendor/phpunit/php-code-coverage/src/Util/Percentage.php index a69f2366e..1de640f80 100644 --- a/vendor/phpunit/php-code-coverage/src/Util/Percentage.php +++ b/vendor/phpunit/php-code-coverage/src/Util/Percentage.php @@ -14,10 +14,10 @@ use function sprintf; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ -final class Percentage +final readonly class Percentage { - private readonly float $fraction; - private readonly float $total; + private float $fraction; + private float $total; public static function fromFractionAndTotal(float $fraction, float $total): self { diff --git a/vendor/phpunit/php-code-coverage/src/Version.php b/vendor/phpunit/php-code-coverage/src/Version.php index e657c53aa..9c5d57912 100644 --- a/vendor/phpunit/php-code-coverage/src/Version.php +++ b/vendor/phpunit/php-code-coverage/src/Version.php @@ -19,7 +19,7 @@ final class Version public static function id(): string { if (self::$version === '') { - self::$version = (new VersionId('11.0.12', dirname(__DIR__)))->asString(); + self::$version = (new VersionId('12.5.7', dirname(__DIR__)))->asString(); } return self::$version; diff --git a/vendor/phpunit/php-file-iterator/ChangeLog.md b/vendor/phpunit/php-file-iterator/ChangeLog.md index cdf90b4ae..8a9a21207 100644 --- a/vendor/phpunit/php-file-iterator/ChangeLog.md +++ b/vendor/phpunit/php-file-iterator/ChangeLog.md @@ -2,6 +2,18 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +## [6.0.1] - 2026-02-02 + +### Fixed + +* [#84](https://github.com/sebastianbergmann/php-file-iterator/issues/84): `Factory` drops directories during wildcard resolution + +## [6.0.0] - 2025-02-07 + +### Removed + +* This component is no longer supported on PHP 8.2 + ## [5.1.1] - 2026-02-02 ### Fixed @@ -174,6 +186,8 @@ No changes * [#23](https://github.com/sebastianbergmann/php-file-iterator/pull/23): Added support for wildcards (glob) in exclude +[6.0.1]: https://github.com/sebastianbergmann/php-file-iterator/compare/6.0.0...6.0.1 +[6.0.0]: https://github.com/sebastianbergmann/php-file-iterator/compare/5.1...6.0.0 [5.1.1]: https://github.com/sebastianbergmann/php-file-iterator/compare/5.1.0...5.1.1 [5.1.0]: https://github.com/sebastianbergmann/php-file-iterator/compare/5.0.1...5.1.0 [5.0.1]: https://github.com/sebastianbergmann/php-file-iterator/compare/5.0.0...5.0.1 diff --git a/vendor/phpunit/php-file-iterator/LICENSE b/vendor/phpunit/php-file-iterator/LICENSE index 017eb48b1..0dffde94d 100644 --- a/vendor/phpunit/php-file-iterator/LICENSE +++ b/vendor/phpunit/php-file-iterator/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2009-2025, Sebastian Bergmann +Copyright (c) 2009-2026, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/phpunit/php-file-iterator/composer.json b/vendor/phpunit/php-file-iterator/composer.json index 8653c2287..528f298ba 100644 --- a/vendor/phpunit/php-file-iterator/composer.json +++ b/vendor/phpunit/php-file-iterator/composer.json @@ -21,17 +21,17 @@ }, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true }, "prefer-stable": true, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.0" }, "autoload": { "classmap": [ @@ -40,7 +40,7 @@ }, "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.0-dev" } } } diff --git a/vendor/phpunit/php-file-iterator/src/Iterator.php b/vendor/phpunit/php-file-iterator/src/Iterator.php index a1c940813..19e8dd389 100644 --- a/vendor/phpunit/php-file-iterator/src/Iterator.php +++ b/vendor/phpunit/php-file-iterator/src/Iterator.php @@ -24,8 +24,8 @@ use SplFileInfo; */ final class Iterator extends FilterIterator { - public const PREFIX = 0; - public const SUFFIX = 1; + public const int PREFIX = 0; + public const int SUFFIX = 1; private false|string $basePath; /** @@ -72,7 +72,7 @@ final class Iterator extends FilterIterator private function acceptPath(string $path): bool { // Filter files in hidden directories by checking path that is relative to the base path. - if (preg_match('=/\.[^/]*/=', str_replace((string) $this->basePath, '', $path))) { + if (preg_match('=/\.[^/]*/=', str_replace((string) $this->basePath, '', $path)) === 1) { return false; } @@ -94,7 +94,7 @@ final class Iterator extends FilterIterator */ private function acceptSubString(string $filename, array $subStrings, int $type): bool { - if (empty($subStrings)) { + if ($subStrings === []) { return true; } diff --git a/vendor/phpunit/php-invoker/ChangeLog.md b/vendor/phpunit/php-invoker/ChangeLog.md index 36daa30f9..9af1807a6 100644 --- a/vendor/phpunit/php-invoker/ChangeLog.md +++ b/vendor/phpunit/php-invoker/ChangeLog.md @@ -2,6 +2,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. +## [6.0.0] - 2025-02-07 + +### Removed + +* This component is no longer supported on PHP 8.2 + ## [5.0.1] - 2024-07-03 ### Changed @@ -59,6 +65,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * This component is no longer supported on PHP 7.1 and PHP 7.2 +[6.0.0]: https://github.com/sebastianbergmann/php-invoker/compare/5.0...6.0.0 [5.0.1]: https://github.com/sebastianbergmann/php-invoker/compare/5.0.1...5.0.1 [5.0.0]: https://github.com/sebastianbergmann/php-invoker/compare/4.0...5.0.0 [4.0.0]: https://github.com/sebastianbergmann/php-invoker/compare/3.1.1...4.0.0 diff --git a/vendor/phpunit/php-invoker/LICENSE b/vendor/phpunit/php-invoker/LICENSE index ecc634d59..9d94d32e4 100644 --- a/vendor/phpunit/php-invoker/LICENSE +++ b/vendor/phpunit/php-invoker/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2011-2024, Sebastian Bergmann +Copyright (c) 2011-2025, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/phpunit/php-invoker/README.md b/vendor/phpunit/php-invoker/README.md index f85a87dda..aedc33974 100644 --- a/vendor/phpunit/php-invoker/README.md +++ b/vendor/phpunit/php-invoker/README.md @@ -1,6 +1,6 @@ # phpunit/php-invoker -[![Latest Stable Version](https://poser.pugx.org/phpunit/php-invoker/v/stable.png)](https://packagist.org/packages/phpunit/php-invoker) +[![Latest Stable Version](https://poser.pugx.org/phpunit/php-invoker/v)](https://packagist.org/packages/phpunit/php-invoker) [![CI Status](https://github.com/sebastianbergmann/php-invoker/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/php-invoker/actions) [![codecov](https://codecov.io/gh/sebastianbergmann/php-invoker/branch/main/graph/badge.svg)](https://codecov.io/gh/sebastianbergmann/php-invoker) diff --git a/vendor/phpunit/php-invoker/composer.json b/vendor/phpunit/php-invoker/composer.json index cbe9e8eaa..b5bd9b85f 100644 --- a/vendor/phpunit/php-invoker/composer.json +++ b/vendor/phpunit/php-invoker/composer.json @@ -21,17 +21,17 @@ "prefer-stable": true, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "autoload": { "classmap": [ @@ -48,7 +48,7 @@ }, "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } } } diff --git a/vendor/phpunit/php-invoker/src/exceptions/ProcessControlExtensionNotLoadedException.php b/vendor/phpunit/php-invoker/src/exceptions/ProcessControlExtensionNotLoadedException.php index c86498216..7f410d3c5 100644 --- a/vendor/phpunit/php-invoker/src/exceptions/ProcessControlExtensionNotLoadedException.php +++ b/vendor/phpunit/php-invoker/src/exceptions/ProcessControlExtensionNotLoadedException.php @@ -9,6 +9,7 @@ */ namespace SebastianBergmann\Invoker; +use const PHP_EOL; use function extension_loaded; use function function_exists; use function implode; diff --git a/vendor/phpunit/php-text-template/ChangeLog.md b/vendor/phpunit/php-text-template/ChangeLog.md index bf2e0496c..ff91aa434 100644 --- a/vendor/phpunit/php-text-template/ChangeLog.md +++ b/vendor/phpunit/php-text-template/ChangeLog.md @@ -2,6 +2,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [5.0.0] - 2025-02-07 + +### Removed + +* This component is no longer supported on PHP 8.2 + ## [4.0.1] - 2024-07-03 ### Changed @@ -61,6 +67,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * Removed support for PHP 5.3, PHP 5.4, PHP 5.5, PHP 5.6, PHP 7.0, PHP 7.1, and PHP 7.2 +[5.0.0]: https://github.com/sebastianbergmann/php-text-template/compare/4.0...5.0.0 [4.0.1]: https://github.com/sebastianbergmann/php-text-template/compare/4.0.0...4.0.1 [4.0.0]: https://github.com/sebastianbergmann/php-text-template/compare/3.0...4.0.0 [3.0.1]: https://github.com/sebastianbergmann/php-text-template/compare/3.0.0...3.0.1 diff --git a/vendor/phpunit/php-text-template/LICENSE b/vendor/phpunit/php-text-template/LICENSE index 89f053091..017eb48b1 100644 --- a/vendor/phpunit/php-text-template/LICENSE +++ b/vendor/phpunit/php-text-template/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2009-2024, Sebastian Bergmann +Copyright (c) 2009-2025, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/phpunit/php-text-template/README.md b/vendor/phpunit/php-text-template/README.md index 630159374..009d54663 100644 --- a/vendor/phpunit/php-text-template/README.md +++ b/vendor/phpunit/php-text-template/README.md @@ -1,4 +1,4 @@ -[![Latest Stable Version](https://poser.pugx.org/phpunit/php-text-template/v/stable.png)](https://packagist.org/packages/phpunit/php-text-template) +[![Latest Stable Version](https://poser.pugx.org/phpunit/php-text-template/v)](https://packagist.org/packages/phpunit/php-text-template) [![CI Status](https://github.com/sebastianbergmann/php-text-template/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/php-text-template/actions) [![codecov](https://codecov.io/gh/sebastianbergmann/php-text-template/branch/main/graph/badge.svg)](https://codecov.io/gh/sebastianbergmann/php-text-template) diff --git a/vendor/phpunit/php-text-template/composer.json b/vendor/phpunit/php-text-template/composer.json index 0f47249fd..f7a5ae77a 100644 --- a/vendor/phpunit/php-text-template/composer.json +++ b/vendor/phpunit/php-text-template/composer.json @@ -20,17 +20,17 @@ }, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true }, "prefer-stable": true, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "autoload": { "classmap": [ @@ -39,7 +39,7 @@ }, "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } } } diff --git a/vendor/phpunit/php-timer/ChangeLog.md b/vendor/phpunit/php-timer/ChangeLog.md index 534887560..e103064ef 100644 --- a/vendor/phpunit/php-timer/ChangeLog.md +++ b/vendor/phpunit/php-timer/ChangeLog.md @@ -2,6 +2,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [8.0.0] - 2025-02-07 + +### Removed + +* This component is no longer supported on PHP 8.1 + ## [7.0.1] - 2024-07-03 ### Changed @@ -139,6 +145,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * This component is no longer supported on PHP 5.3, PHP 5.4, PHP 5.5, PHP 5.6, and PHP 7.0 +[8.0.0]: https://github.com/sebastianbergmann/php-timer/compare/7.0...8.0.0 [7.0.1]: https://github.com/sebastianbergmann/php-timer/compare/7.0.0...7.0.1 [7.0.0]: https://github.com/sebastianbergmann/php-timer/compare/6.0...7.0.0 [6.0.0]: https://github.com/sebastianbergmann/php-timer/compare/5.0.3...6.0.0 diff --git a/vendor/phpunit/php-timer/LICENSE b/vendor/phpunit/php-timer/LICENSE index 60a032d27..fd52ce618 100644 --- a/vendor/phpunit/php-timer/LICENSE +++ b/vendor/phpunit/php-timer/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2010-2024, Sebastian Bergmann +Copyright (c) 2010-2025, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/phpunit/php-timer/README.md b/vendor/phpunit/php-timer/README.md index ae0d5a3f3..bc9157c32 100644 --- a/vendor/phpunit/php-timer/README.md +++ b/vendor/phpunit/php-timer/README.md @@ -1,6 +1,6 @@ # phpunit/php-timer -[![Latest Stable Version](https://poser.pugx.org/phpunit/php-timer/v/stable.png)](https://packagist.org/packages/phpunit/php-timer) +[![Latest Stable Version](https://poser.pugx.org/phpunit/php-timer/v)](https://packagist.org/packages/phpunit/php-timer) [![CI Status](https://github.com/sebastianbergmann/php-timer/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/php-timer/actions) [![codecov](https://codecov.io/gh/sebastianbergmann/php-timer/branch/main/graph/badge.svg)](https://codecov.io/gh/sebastianbergmann/php-timer) diff --git a/vendor/phpunit/php-timer/composer.json b/vendor/phpunit/php-timer/composer.json index f4991e432..89c398425 100644 --- a/vendor/phpunit/php-timer/composer.json +++ b/vendor/phpunit/php-timer/composer.json @@ -20,14 +20,14 @@ }, "prefer-stable": true, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true @@ -39,7 +39,7 @@ }, "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "8.0-dev" } } } diff --git a/vendor/phpunit/php-timer/src/ResourceUsageFormatter.php b/vendor/phpunit/php-timer/src/ResourceUsageFormatter.php index e26ea6232..f797bc033 100644 --- a/vendor/phpunit/php-timer/src/ResourceUsageFormatter.php +++ b/vendor/phpunit/php-timer/src/ResourceUsageFormatter.php @@ -19,7 +19,7 @@ final class ResourceUsageFormatter /** * @var array */ - private const SIZES = [ + private const array SIZES = [ 'GB' => 1073741824, 'MB' => 1048576, 'KB' => 1024, diff --git a/vendor/phpunit/phpunit/ChangeLog-11.5.md b/vendor/phpunit/phpunit/ChangeLog-11.5.md deleted file mode 100644 index d0ddc63d0..000000000 --- a/vendor/phpunit/phpunit/ChangeLog-11.5.md +++ /dev/null @@ -1,519 +0,0 @@ -# Changes in PHPUnit 11.5 - -All notable changes of the PHPUnit 11.5 release series are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. - -## [11.5.56] - 2026-07-06 - -### Changed - -* [#6797](https://github.com/sebastianbergmann/phpunit/issues/6797): Adapt code generated for test double of interface with constructor for PHP 8.6 - -## [11.5.55] - 2026-02-18 - -### Fixed - -* [#6521](https://github.com/sebastianbergmann/phpunit/issues/6521): Performance regression in PHPUnit 11.5.54, PHPUnit 12.5.13, and PHPUnit 13.0.4 - -## [11.5.54] - 2026-02-18 - -### Fixed - -* [#6489](https://github.com/sebastianbergmann/phpunit/pull/6489): Classification of self/direct/indirect deprecation triggers is not aligned with Symfony's bridge for PHPUnit - -## [11.5.53] - 2026-02-10 - -### Fixed - -* [#6503](https://github.com/sebastianbergmann/phpunit/issues/6503): Temporary file used by `SourceMapper` may be deleted prematurely when multiple PHPUnit processes run in parallel - -## [11.5.52] - 2026-02-08 - -### Fixed - -* [#6495](https://github.com/sebastianbergmann/phpunit/pull/6495): Source map for issue trigger identification is regenerated in process isolation child processes - -## [11.5.51] - 2026-02-05 - -### Added - -* [#6488](https://github.com/sebastianbergmann/phpunit/issues/6488): Allow disabling issue trigger identification for improved performance - -### Fixed - -* [#6486](https://github.com/sebastianbergmann/phpunit/issues/6486): Incorrect file name reported for errors for test methods declared in traits -* [#6490](https://github.com/sebastianbergmann/phpunit/pull/6490): Incorrect test count when tests are skipped in before-class method - -## [11.5.50] - 2026-01-27 - -### Changed - -* To prevent Poisoned Pipeline Execution (PPE) attacks using prepared `.coverage` files in pull requests, a PHPT test will no longer be run if the temporary file for writing code coverage information already exists before the test runs - -## [11.5.49] - 2026-01-24 - -### Fixed - -* [#6362](https://github.com/sebastianbergmann/phpunit/issues/6362): Manually instantiated test doubles are broken since PHPUnit 11.2 -* [#6470](https://github.com/sebastianbergmann/phpunit/issues/6470): Infinite recursion in `Count::getCountOf()` for unusal implementations of `Iterator` or `IteratorAggregate` - -## [11.5.48] - 2026-01-16 - -### Changed - -* Reverted a change that caused a [build failure](https://github.com/php/php-src/actions/runs/21052584327/job/60542023395#step:14:3729) for the [PHP project's nightly community job](https://phpunit.expert/articles/how-php-and-its-ecosystem-test-each-other.html?ref=github) - -## [11.5.47] - 2026-01-15 - -### Changed - -* `PHPUnit\Framework\MockObject` exceptions are now subtypes of `PHPUnit\Exception` - -### Fixed - -* [#6470](https://github.com/sebastianbergmann/phpunit/issues/6470): Mocking a class with a property hook setter accepting more types than the property results in a fatal error - -## [11.5.46] - 2025-12-06 - -* No changes; `phpunit.phar` rebuilt with PHP 8.4 to work around PHP-Scoper issue [#1139](https://github.com/humbug/php-scoper/issues/1139) - -## [11.5.45] - 2025-12-01 - -### Changed - -* Updated list of deprecated PHP configuration settings for PHP 8.6 - -### Fixed - -* [#6408](https://github.com/sebastianbergmann/phpunit/issues/6408): Exception in a data provider method leads to internal PHPUnit error -* [#6426](https://github.com/sebastianbergmann/phpunit/pull/6426): Fix migration of configuration without schema location - -## [11.5.44] - 2025-11-13 - -### Fixed - -* [#6402](https://github.com/sebastianbergmann/phpunit/pull/6402): Avoid reading from `STDOUT` when `rewind()` fails - -## [11.5.43] - 2025-10-30 - -### Changed - -* Skipped tests alone no longer lead to a yellow background for the test result summary -* Updated list of deprecated PHP configuration settings for PHP 8.4 and PHP 8.5 - -### Fixed - -* [#6391](https://github.com/sebastianbergmann/phpunit/issues/6391): Errors during backup of global variables and static properties are not reported - -## [11.5.42] - 2025-09-28 - -### Fixed - -* [#6368](https://github.com/sebastianbergmann/phpunit/issues/6368): `failOnPhpunitWarning="false"` has no effect - -## [11.5.41] - 2025-09-24 - -* No changes; `phpunit.phar` rebuilt with updated dependencies - -## [11.5.40] - 2025-09-23 - -* No changes; `phpunit.phar` rebuilt with updated dependencies - -## [11.5.39] - 2025-09-14 - -### Changed - -* [#6366](https://github.com/sebastianbergmann/phpunit/issues/6366): Exclude `__sleep()` and `__wakeup()` from test double code generation on PHP >= 8.5 - -## [11.5.38] - 2025-09-11 - -### Changed - -* [#6353](https://github.com/sebastianbergmann/phpunit/pull/6353): Disable performance optimization for tests requiring Xdebug - -## [11.5.37] - 2025-09-11 - -### Changed - -* Do not use `__sleep()` method (which will be deprecated in PHP 8.5) - -## [11.5.36] - 2025-09-03 - -### Fixed - -* [#6340](https://github.com/sebastianbergmann/phpunit/issues/6340): Implicitly enabled display of deprecation details is not disabled when it should be - -## [11.5.35] - 2025-08-28 - -### Changed - -* `#[IgnorePhpunitDeprecations]` is now considered for test runner deprecations (where applicable) - -## [11.5.34] - 2025-08-20 - -### Changed - -* Do not configure `report_memleaks` setting (which will be deprecated in PHP 8.5) for PHPT processes - -## [11.5.33] - 2025-08-16 - -### Changed - -* [#6321](https://github.com/sebastianbergmann/phpunit/issues/6321): Allow `error_reporting=E_ALL` for `--check-php-configuration` - -### Fixed - -* [#5863](https://github.com/sebastianbergmann/phpunit/issues/5863): TestDox printer does not show previous exception -* [#6102](https://github.com/sebastianbergmann/phpunit/issues/6102): `expectUserDeprecationMessage*()` fails when test is run in separate process - -## [11.5.32] - 2025-08-12 - -### Changed - -* [#6308](https://github.com/sebastianbergmann/phpunit/pull/6308): Improve output of `--check-php-configuration` -* The version number for the test result cache file has been incremented to reflect that its structure for PHPUnit 11.5 is not compatible with its structure for PHPUnit 8.5 and PHPUnit 9.6 - -### Fixed - -* [#6281](https://github.com/sebastianbergmann/phpunit/issues/6281): Exceptions raised in after-test method are not reported for skipped tests - -## [11.5.31] - 2025-08-11 - -### Fixed - -* [#6304](https://github.com/sebastianbergmann/phpunit/issues/6304): PHPUnit 11.5.29 hangs when a test runner deprecation is triggered and process isolation is used (this reverts "`#[IgnorePhpunitDeprecations]` is now considered for test runner deprecations" from PHPUnit 11.5.29) - -## [11.5.30] - 2025-08-10 - -### Changed - -* [#6300](https://github.com/sebastianbergmann/phpunit/issues/6300): Emit warning when the name of a data provider method begins with `test` -* Do not use `SplObjectStorage` methods that will be deprecated in PHP 8.5 - -## [11.5.29] - 2025-08-09 - -### Added - -* [#6297](https://github.com/sebastianbergmann/phpunit/issues/6297): `--check-php-configuration` CLI option for checking whether PHP is configured for testing - -### Changed - -* `#[IgnorePhpunitDeprecations]` is now considered for test runner deprecations (where applicable) - -### Fixed - -* [#6160](https://github.com/sebastianbergmann/phpunit/issues/6160): Baseline file in a subdirectory contains absolute paths -* Errors due to invalid data provided using `#[TestWith]` or `#[TestWithJson]` attributes are now properly reported -* The `DataProviderMethodFinished` event is now also emitted when the provided data set has an invalid key - -## [11.5.28] - 2025-07-31 - -### Fixed - -* [#6097](https://github.com/sebastianbergmann/phpunit/issues/6097): The `file` attribute of `` node of XML test list can be wrong - -## [11.5.27] - 2025-07-11 - -### Fixed - -* [#6254](https://github.com/sebastianbergmann/phpunit/issues/6254): `defects,random`configuration is supported by implementation, but it is not allowed by the XML configuration file schema -* [#6259](https://github.com/sebastianbergmann/phpunit/issues/6259): Order of tests which use data from data providers is not affected by test sorting -* [#6266](https://github.com/sebastianbergmann/phpunit/issues/6266): Superfluous whitespace in TestDox output when test method name has a number after the `test` prefix - -## [11.5.26] - 2025-07-04 - -### Fixed - -* [#6104](https://github.com/sebastianbergmann/phpunit/issues/6104): Test with dependencies and data provider fails -* [#6163](https://github.com/sebastianbergmann/phpunit/issues/6163): `@no-named-arguments` leads to static analysis errors for variadic arguments - -## [11.5.25] - 2025-06-27 - -### Fixed - -* [#6249](https://github.com/sebastianbergmann/phpunit/issues/6249): No meaningful error when `` element is missing required `name` attribute - -## [11.5.24] - 2025-06-20 - -### Added - -* [#6236](https://github.com/sebastianbergmann/phpunit/issues/6236): `failOnPhpunitWarning` attribute on the `` element of the XML configuration file and `--fail-on-phpunit-warning` CLI option for controlling whether PHPUnit should fail on PHPUnit warnings (default: `true`) -* [#6239](https://github.com/sebastianbergmann/phpunit/issues/6239): `--do-not-fail-on-deprecation`, `--do-not-fail-on-phpunit-warning`, `--do-not-fail-on-phpunit-deprecation`, `--do-not-fail-on-empty-test-suite`, `--do-not-fail-on-incomplete`, `--do-not-fail-on-notice`, `--do-not-fail-on-risky`, `--do-not-fail-on-skipped`, and `--do-not-fail-on-warning` CLI options -* `--do-not-report-useless-tests` CLI option as a replacement for `--dont-report-useless-tests` - -### Deprecated - -* `--dont-report-useless-tests` CLI option (use `--do-not-report-useless-tests` instead) - -### Fixed - -* [#6243](https://github.com/sebastianbergmann/phpunit/issues/6243): Constraints cannot be implemented without using internal class `ExpectationFailedException` - -## [11.5.23] - 2025-06-13 - -### Fixed - -* [#6222](https://github.com/sebastianbergmann/phpunit/issues/6222): Data Provider seems to mess up Test Dependencies -* `shortenArraysForExportThreshold` XML configuration setting has no effect on all arrays exported for event-related value objects - -## [11.5.22] - 2025-06-06 - -### Changed - -* Do not treat warnings differently than other issues in summary section of default output - -## [11.5.21] - 2025-05-21 - -### Changed - -* [#6210](https://github.com/sebastianbergmann/phpunit/pull/6210): Set default Clover coverage project name -* [#6217](https://github.com/sebastianbergmann/phpunit/pull/6217): Improve the error message when `createStubForIntersectionOfInterfaces()` is called with a class - -## [11.5.20] - 2025-05-11 - -### Fixed - -* [#6192](https://github.com/sebastianbergmann/phpunit/issues/6192): Reverted change made in PHPUnit 11.5.19 due to regression -* [#6199](https://github.com/sebastianbergmann/phpunit/issues/6199): `assertEmpty()` and `assertNotEmpty()` use overly restrictive `phpstan-assert empty` directives - -## [11.5.19] - 2025-05-02 - -### Added - -* `displayDetailsOnAllIssues` attribute on the `` element of the XML configuration file and `--display-all-issues` CLI option for controlling whether PHPUnit should display details on all issues that are triggered (default: `false`) -* `failOnAllIssues` attribute on the `` element of the XML configuration file and `--fail-on-all-issues` CLI option for controlling whether PHPUnit should fail on all issues that are triggered (default: `false`) - -### Changed - -* [#5956](https://github.com/sebastianbergmann/phpunit/issues/5956): Improved handling of deprecated `E_STRICT` constant - -### Fixed - -* [#6192](https://github.com/sebastianbergmann/phpunit/issues/6192): Positive `%a` and `%A` matches are not ignored from diff when `EXPECTF` fails - -## [11.5.18] - 2025-04-22 - -### Changed - -* When gathering the telemetry information that each event has, the real size of memory allocated from the operating system is no longer used as this is grown by PHP's memory manager in chunks that are so large that small(er) increases in peak memory usage cannot be seen -* The peak memory usage returned by `memory_get_peak_usage()` is now reset immediately before the `Test\Prepared` event is emitted using `memory_reset_peak_usage()` so that (memory usage at `Test\Finished` - memory usage at `Test\Prepared`) is a better approximation of the memory usage of the test -* The string representation of `Telemetry\Info` now uses peak memory usage instead of memory usage (this affects `--log-events-verbose-text`) - -### Fixed - -* A "Before Test Method Errored" event is no longer emitted when a test is skipped in a "before test" method - -## [11.5.17] - 2025-04-08 - -### Fixed - -* [#6104](https://github.com/sebastianbergmann/phpunit/issues/6104): Reverted change introduced in PHPUnit 11.5.16 - -## [11.5.16] - 2025-04-08 - -### Fixed - -* [#6104](https://github.com/sebastianbergmann/phpunit/issues/6104): Test with dependencies and data provider fails -* [#6174](https://github.com/sebastianbergmann/phpunit/issues/6174): `willReturnMap()` fails with nullable parameters when their default is `null` and no argument is passed for them - -## [11.5.15] - 2025-03-23 - -### Changed - -* [#6150](https://github.com/sebastianbergmann/phpunit/issues/6150): Reverted change introduced in PHPUnit 11.5.13 - -## [11.5.14] - 2025-03-19 - -### Changed - -* Updated dependencies for PHAR distribution - -## [11.5.13] - 2025-03-18 - -### Changed - -* [#6150](https://github.com/sebastianbergmann/phpunit/issues/6150): Trigger warning when code coverage analysis is performed and no cache directory is configured - -## [11.5.12] - 2025-03-07 - -### Fixed - -* [#5976](https://github.com/sebastianbergmann/phpunit/issues/5976): TestDox result printer does not display details about errors triggered in before-first-test and after-last-test methods - -## [11.5.11] - 2025-03-05 - -### Fixed - -* [#6142](https://github.com/sebastianbergmann/phpunit/issues/6142): `$expected` and `$actual` are mixed up in failure description when `assertJsonFileEqualsJsonFile()` fails - -## [11.5.10] - 2025-02-25 - -### Fixed - -* [#6138](https://github.com/sebastianbergmann/phpunit/issues/6138): Test with failed expectation on value passed to mocked method is incorrectly considered risky - -## [11.5.9] - 2025-02-21 - -### Fixed - -* [#6134](https://github.com/sebastianbergmann/phpunit/issues/6134): Missing event when child process ends unexpectedly - -## [11.5.8] - 2025-02-18 - -### Fixed - -* A `Test\PreparationFailed` event is now emitted in addition to a `Test\Errored` event when an unexpected exception is triggered in a before-test method -* A `Test\Passed` event is no longer emitted in addition to a `Test\Failed` or `Test\Errored` event when an assertion failure or an unexpected exception is triggered in an after-test method -* A `TestSuite\Finished` event is now emitted when a before-first-test method errors - -## [11.5.7] - 2025-02-06 - -### Changed - -* [#5951](https://github.com/sebastianbergmann/phpunit/issues/5951): The `includeUncoveredFiles` configuration option is no longer deprecated -* [#6117](https://github.com/sebastianbergmann/phpunit/issues/6117): Include source location information for issues triggered during test in `--debug` output -* [#6119](https://github.com/sebastianbergmann/phpunit/issues/6119): Improve message for errors that occur while parsing attributes -* [#6120](https://github.com/sebastianbergmann/phpunit/issues/6120): Allow negative priorities for hook methods - -## [11.5.6] - 2025-01-31 - -### Changed - -* [#6112](https://github.com/sebastianbergmann/phpunit/pull/6112): Improve performance of `SourceMapper` - -### Fixed - -* [#6115](https://github.com/sebastianbergmann/phpunit/issues/6115): Backed enumerations with values not of type `string` cannot be used in customized TestDox output - -## [11.5.5] - 2025-01-29 - -### Changed - -* Do not skip execution of test that depends on a test that is larger than itself - -## [11.5.4] - 2025-01-28 - -### Changed - -* [#5958](https://github.com/sebastianbergmann/phpunit/issues/5958): Support for `#[CoversTrait]` and `#[UsesTrait]` attributes is no longer deprecated -* [#5960](https://github.com/sebastianbergmann/phpunit/issues/5960): Support for targeting trait methods with the `#[CoversMethod]` and `#[UsesMethod]` attributes is no longer deprecated - -### Fixed - -* [#6103](https://github.com/sebastianbergmann/phpunit/issues/6103): Output from test run in separate process is printed twice -* [#6109](https://github.com/sebastianbergmann/phpunit/issues/6109): Skipping a test in a before-class method crashes JUnit XML logger -* [#6111](https://github.com/sebastianbergmann/phpunit/issues/6111): Deprecations cause `SourceMapper` to scan all `` files - -## [11.5.3] - 2025-01-13 - -### Added - -* `Test\AfterLastTestMethodErrored`, `Test\AfterTestMethodErrored`, `Test\BeforeTestMethodErrored`, `Test\PostConditionErrored`, and `Test\PreConditionErrored` events - -### Fixed - -* [#6093](https://github.com/sebastianbergmann/phpunit/issues/6093): Test Double Code Generator does not work when PHPUnit is used from PHAR on PHP 8.4 -* [#6094](https://github.com/sebastianbergmann/phpunit/issues/6094): Errors in after-last-test methods are not reported -* [#6095](https://github.com/sebastianbergmann/phpunit/issues/6095): Expectation is not counted correctly when a doubled method is called more often than is expected -* [#6096](https://github.com/sebastianbergmann/phpunit/issues/6096): `--list-tests-xml` is broken when a group with a numeric name is defined -* [#6098](https://github.com/sebastianbergmann/phpunit/issues/6098): No `system-out` element in JUnit XML logfile -* [#6100](https://github.com/sebastianbergmann/phpunit/issues/6100): Suppressed deprecations incorrectly stop test execution when execution should be stopped on deprecation - -## [11.5.2] - 2024-12-21 - -### Fixed - -* [#6082](https://github.com/sebastianbergmann/phpunit/issues/6082): `assertArrayHasKey()`, `assertArrayNotHasKey()`, `arrayHasKey()`, and `ArrayHasKey::__construct()` do not support all possible key types -* [#6087](https://github.com/sebastianbergmann/phpunit/issues/6087): `--migrate-configuration` does not remove `beStrictAboutTodoAnnotatedTests` attribute from XML configuration file - -## [11.5.1] - 2024-12-11 - -### Added - -* [#6081](https://github.com/sebastianbergmann/phpunit/pull/6081): `DefaultResultCache::mergeWith()` for merging result cache instances - -### Fixed - -* [#6066](https://github.com/sebastianbergmann/phpunit/pull/6066): TeamCity logger does not handle error/skipped events in before-class methods correctly - -## [11.5.0] - 2024-12-06 - -### Added - -* [#5948](https://github.com/sebastianbergmann/phpunit/pull/5948): Support for Property Hooks in Test Doubles -* [#5954](https://github.com/sebastianbergmann/phpunit/issues/5954): Provide a way to stop execution at a particular deprecation -* Method `assertContainsNotOnlyInstancesOf()` in the `PHPUnit\Framework\Assert` class as the inverse of the `assertContainsOnlyInstancesOf()` method -* Methods `assertContainsOnlyArray()`, `assertContainsOnlyBool()`, `assertContainsOnlyCallable()`, `assertContainsOnlyFloat()`, `assertContainsOnlyInt()`, `assertContainsOnlyIterable()`, `assertContainsOnlyNull()`, `assertContainsOnlyNumeric()`, `assertContainsOnlyObject()`, `assertContainsOnlyResource()`, `assertContainsOnlyClosedResource()`, `assertContainsOnlyScalar()`, and `assertContainsOnlyString()` in the `PHPUnit\Framework\Assert` class as specialized alternatives for the generic `assertContainsOnly()` method -* Methods `assertContainsNotOnlyArray()`, `assertContainsNotOnlyBool()`, `assertContainsNotOnlyCallable()`, `assertContainsNotOnlyFloat()`, `assertContainsNotOnlyInt()`, `assertContainsNotOnlyIterable()`, `assertContainsNotOnlyNull()`, `assertContainsNotOnlyNumeric()`, `assertContainsNotOnlyObject()`, `assertContainsNotOnlyResource()`, `assertContainsNotOnlyClosedResource()`, `assertContainsNotOnlyScalar()`, and `assertContainsNotOnlyString()` in the `PHPUnit\Framework\Assert` class as specialized alternatives for the generic `assertNotContainsOnly()` method -* Methods `containsOnlyArray()`, `containsOnlyBool()`, `containsOnlyCallable()`, `containsOnlyFloat()`, `containsOnlyInt()`, `containsOnlyIterable()`, `containsOnlyNull()`, `containsOnlyNumeric()`, `containsOnlyObject()`, `containsOnlyResource()`, `containsOnlyClosedResource()`, `containsOnlyScalar()`, and `containsOnlyString()` in the `PHPUnit\Framework\Assert` class as specialized alternatives for the generic `containsOnly()` method -* Methods `isArray()`, `isBool()`, `isCallable()`, `isFloat()`, `isInt()`, `isIterable()`, `isNumeric()`, `isObject()`, `isResource()`, `isClosedResource()`, `isScalar()`, `isString()` in the `PHPUnit\Framework\Assert` class as specialized alternatives for the generic `isType()` method -* `TestRunner\ChildProcessStarted` and `TestRunner\ChildProcessFinished` events - -### Changed - -* [#5998](https://github.com/sebastianbergmann/phpunit/pull/5998): Do not run `SKIPIF` section of PHPT test in separate process when it is free of side effects -* [#5999](https://github.com/sebastianbergmann/phpunit/pull/5999): Do not run `CLEAN` section of PHPT test in separate process when it is free of side effects that modify the parent process - -### Deprecated - -* [#6052](https://github.com/sebastianbergmann/phpunit/issues/6052): `isType()` (use `isArray()`, `isBool()`, `isCallable()`, `isFloat()`, `isInt()`, `isIterable()`, `isNull()`, `isNumeric()`, `isObject()`, `isResource()`, `isClosedResource()`, `isScalar()`, or `isString()` instead) -* [#6055](https://github.com/sebastianbergmann/phpunit/issues/6055): `assertContainsOnly()` (use `assertContainsOnlyArray()`, `assertContainsOnlyBool()`, `assertContainsOnlyCallable()`, `assertContainsOnlyFloat()`, `assertContainsOnlyInt()`, `assertContainsOnlyIterable()`, `assertContainsOnlyNumeric()`, `assertContainsOnlyObject()`, `assertContainsOnlyResource()`, `assertContainsOnlyClosedResource()`, `assertContainsOnlyScalar()`, or `assertContainsOnlyString()` instead) -* [#6055](https://github.com/sebastianbergmann/phpunit/issues/6055): `assertNotContainsOnly()` (use `assertContainsNotOnlyArray()`, `assertContainsNotOnlyBool()`, `assertContainsNotOnlyCallable()`, `assertContainsNotOnlyFloat()`, `assertContainsNotOnlyInt()`, `assertContainsNotOnlyIterable()`, `assertContainsNotOnlyNumeric()`, `assertContainsNotOnlyObject()`, `assertContainsNotOnlyResource()`, `assertContainsNotOnlyClosedResource()`, `assertContainsNotOnlyScalar()`, or `assertContainsNotOnlyString()` instead) -* [#6059](https://github.com/sebastianbergmann/phpunit/issues/6059): `containsOnly()` (use `containsOnlyArray()`, `containsOnlyBool()`, `containsOnlyCallable()`, `containsOnlyFloat()`, `containsOnlyInt()`, `containsOnlyIterable()`, `containsOnlyNumeric()`, `containsOnlyObject()`, `containsOnlyResource()`, `containsOnlyClosedResource()`, `containsOnlyScalar()`, or `containsOnlyString()` instead) - -[11.5.56]: https://github.com/sebastianbergmann/phpunit/compare/11.5.55...11.5.56 -[11.5.55]: https://github.com/sebastianbergmann/phpunit/compare/11.5.54...11.5.55 -[11.5.54]: https://github.com/sebastianbergmann/phpunit/compare/11.5.53...11.5.54 -[11.5.53]: https://github.com/sebastianbergmann/phpunit/compare/11.5.52...11.5.53 -[11.5.52]: https://github.com/sebastianbergmann/phpunit/compare/11.5.51...11.5.52 -[11.5.51]: https://github.com/sebastianbergmann/phpunit/compare/11.5.50...11.5.51 -[11.5.50]: https://github.com/sebastianbergmann/phpunit/compare/11.5.49...11.5.50 -[11.5.49]: https://github.com/sebastianbergmann/phpunit/compare/11.5.48...11.5.49 -[11.5.48]: https://github.com/sebastianbergmann/phpunit/compare/11.5.47...11.5.48 -[11.5.47]: https://github.com/sebastianbergmann/phpunit/compare/11.5.46...11.5.47 -[11.5.46]: https://github.com/sebastianbergmann/phpunit/compare/11.5.45...11.5.46 -[11.5.45]: https://github.com/sebastianbergmann/phpunit/compare/11.5.44...11.5.45 -[11.5.44]: https://github.com/sebastianbergmann/phpunit/compare/11.5.43...11.5.44 -[11.5.43]: https://github.com/sebastianbergmann/phpunit/compare/11.5.42...11.5.43 -[11.5.42]: https://github.com/sebastianbergmann/phpunit/compare/11.5.41...11.5.42 -[11.5.41]: https://github.com/sebastianbergmann/phpunit/compare/11.5.40...11.5.41 -[11.5.40]: https://github.com/sebastianbergmann/phpunit/compare/11.5.39...11.5.40 -[11.5.39]: https://github.com/sebastianbergmann/phpunit/compare/11.5.38...11.5.39 -[11.5.38]: https://github.com/sebastianbergmann/phpunit/compare/11.5.37...11.5.38 -[11.5.37]: https://github.com/sebastianbergmann/phpunit/compare/11.5.36...11.5.37 -[11.5.36]: https://github.com/sebastianbergmann/phpunit/compare/11.5.35...11.5.36 -[11.5.35]: https://github.com/sebastianbergmann/phpunit/compare/11.5.34...11.5.35 -[11.5.34]: https://github.com/sebastianbergmann/phpunit/compare/11.5.33...11.5.34 -[11.5.33]: https://github.com/sebastianbergmann/phpunit/compare/11.5.32...11.5.33 -[11.5.32]: https://github.com/sebastianbergmann/phpunit/compare/11.5.31...11.5.32 -[11.5.31]: https://github.com/sebastianbergmann/phpunit/compare/11.5.30...11.5.31 -[11.5.30]: https://github.com/sebastianbergmann/phpunit/compare/11.5.29...11.5.30 -[11.5.29]: https://github.com/sebastianbergmann/phpunit/compare/11.5.28...11.5.29 -[11.5.28]: https://github.com/sebastianbergmann/phpunit/compare/11.5.27...11.5.28 -[11.5.27]: https://github.com/sebastianbergmann/phpunit/compare/11.5.26...11.5.27 -[11.5.26]: https://github.com/sebastianbergmann/phpunit/compare/11.5.25...11.5.26 -[11.5.25]: https://github.com/sebastianbergmann/phpunit/compare/11.5.24...11.5.25 -[11.5.24]: https://github.com/sebastianbergmann/phpunit/compare/11.5.23...11.5.24 -[11.5.23]: https://github.com/sebastianbergmann/phpunit/compare/11.5.22...11.5.23 -[11.5.22]: https://github.com/sebastianbergmann/phpunit/compare/11.5.21...11.5.22 -[11.5.21]: https://github.com/sebastianbergmann/phpunit/compare/11.5.20...11.5.21 -[11.5.20]: https://github.com/sebastianbergmann/phpunit/compare/11.5.19...11.5.20 -[11.5.19]: https://github.com/sebastianbergmann/phpunit/compare/11.5.18...11.5.19 -[11.5.18]: https://github.com/sebastianbergmann/phpunit/compare/11.5.17...11.5.18 -[11.5.17]: https://github.com/sebastianbergmann/phpunit/compare/11.5.16...11.5.17 -[11.5.16]: https://github.com/sebastianbergmann/phpunit/compare/11.5.15...11.5.16 -[11.5.15]: https://github.com/sebastianbergmann/phpunit/compare/11.5.14...11.5.15 -[11.5.14]: https://github.com/sebastianbergmann/phpunit/compare/11.5.13...11.5.14 -[11.5.13]: https://github.com/sebastianbergmann/phpunit/compare/11.5.12...11.5.13 -[11.5.12]: https://github.com/sebastianbergmann/phpunit/compare/11.5.11...11.5.12 -[11.5.11]: https://github.com/sebastianbergmann/phpunit/compare/11.5.10...11.5.11 -[11.5.10]: https://github.com/sebastianbergmann/phpunit/compare/11.5.9...11.5.10 -[11.5.9]: https://github.com/sebastianbergmann/phpunit/compare/11.5.8...11.5.9 -[11.5.8]: https://github.com/sebastianbergmann/phpunit/compare/11.5.7...11.5.8 -[11.5.7]: https://github.com/sebastianbergmann/phpunit/compare/11.5.6...11.5.7 -[11.5.6]: https://github.com/sebastianbergmann/phpunit/compare/11.5.5...11.5.6 -[11.5.5]: https://github.com/sebastianbergmann/phpunit/compare/11.5.4...11.5.5 -[11.5.4]: https://github.com/sebastianbergmann/phpunit/compare/11.5.3...11.5.4 -[11.5.3]: https://github.com/sebastianbergmann/phpunit/compare/11.5.2...11.5.3 -[11.5.2]: https://github.com/sebastianbergmann/phpunit/compare/11.5.1...11.5.2 -[11.5.1]: https://github.com/sebastianbergmann/phpunit/compare/11.5.0...11.5.1 -[11.5.0]: https://github.com/sebastianbergmann/phpunit/compare/11.4.4...11.5.0 diff --git a/vendor/phpunit/phpunit/ChangeLog-12.5.md b/vendor/phpunit/phpunit/ChangeLog-12.5.md new file mode 100644 index 000000000..ea49c9207 --- /dev/null +++ b/vendor/phpunit/phpunit/ChangeLog-12.5.md @@ -0,0 +1,306 @@ +# Changes in PHPUnit 12.5 + +All notable changes of the PHPUnit 12.5 release series are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. + +## [12.5.31] - 2026-07-06 + +### Changed + +* [#6797](https://github.com/sebastianbergmann/phpunit/issues/6797): Adapt code generated for test double of interface with constructor for PHP 8.6 + +## [12.5.30] - 2026-06-15 + +### Fixed + +* [#6743](https://github.com/sebastianbergmann/phpunit/issues/6743): Improve error message for invalid version constraint in attribute +* Class, method, and data-set names in TestDox HTML report are not escaped + +## [12.5.29] - 2026-06-04 + +### Fixed + +* [#6683](https://github.com/sebastianbergmann/phpunit/issues/6683): `assertNotEquals()` failure message says "is equal to" instead of "is not equal to" when comparing arrays or objects +* [#6700](https://github.com/sebastianbergmann/phpunit/issues/6700): `expectOutputString()` and `expectOutputRegex()` silently replace themselves and each other + +## [12.5.28] - 2026-05-27 + +### Fixed + +* [#6681](https://github.com/sebastianbergmann/phpunit/pull/6681): XML assertions such as `assertXmlStringEqualsXmlString()` regressed into treating comments as significant + +## [12.5.27] - 2026-05-25 + +### Fixed + +* [#6673](https://github.com/sebastianbergmann/phpunit/issues/6673): Empty PHP settings from the parent process override per-test `-d` settings forwarded to child processes (breaks PCOV coverage) + +## [12.5.26] - 2026-05-21 + +### Fixed + +* PHP setting values containing `=` need to be quoted before forwarding via `-d` + +## [12.5.25] - 2026-05-13 + +### Changed + +* A `Test` or `Tests` prefix is no longer stripped from class names when they are processed for TestDox output + +### Fixed + +* [#6605](https://github.com/sebastianbergmann/phpunit/issues/6605): Data set names and provider values containing Unicode bidirectional control characters distort terminal output +* [#6610](https://github.com/sebastianbergmann/phpunit/issues/6610): Per-testsuite bootstrap script not loaded in process isolation +* TestDox output collapsed separate test classes into a single group when their prettified class names matched + +## [12.5.24] - 2026-05-01 + +### Added + +* [#6596](https://github.com/sebastianbergmann/phpunit/issues/6596): Backport `TestCase::invokeTestMethod()` method for customizing test method invocation from PHPUnit 13 + +### Fixed + +* [#6595](https://github.com/sebastianbergmann/phpunit/issues/6595): Crash when before-class or after-class method fails with assertion failure +* [#6599](https://github.com/sebastianbergmann/phpunit/issues/6599): TeamCity logger does not wrap failures in before-test methods with `testStarted` and `testFinished` +* [#6601](https://github.com/sebastianbergmann/phpunit/issues/6601): Anonymous classes are not rejected with a clear error when creating a test double +* `MockBuilder::setMockClassName()` and `TestStubBuilder::setStubClassName()` now reject values that are not valid unqualified PHP class identifiers, throwing the new `InvalidClassNameException` +* The regular expression used by `Generator::ensureValidMethods()` to validate method names passed to `MockBuilder::onlyMethods()` and `addMethods()` was not anchored, so any string containing a valid identifier substring (including strings with parentheses, braces, comments, or newlines) was accepted + +## [12.5.23] - 2026-04-18 + +### Changed + +* Pass `LIBXML_NONET` when parsing/validating XML configuration files to make explicit that no network I/O is performed +* Verify the result file written by an isolated child process with a random nonce before deserializing it + +## [12.5.22] - 2026-04-17 + +### Fixed + +* [#6590](https://github.com/sebastianbergmann/phpunit/issues/6590): Silent failure when configuration file is invalid +* [#6592](https://github.com/sebastianbergmann/phpunit/pull/6592): INI metacharacters `;` and `"` are not preserved when forwarding settings to child processes + +## [12.5.21] - 2026-04-16 + +### Fixed + +* [#5860](https://github.com/sebastianbergmann/phpunit/issues/5860): PHP CLI `-d` settings are not forwarded to child processes for process isolation +* [#6451](https://github.com/sebastianbergmann/phpunit/issues/6451): Incomplete version in `RequiresPhp` (e.g. `<=8.5`) is compared against full PHP version, causing unexpected skips + +## [12.5.20] - 2026-04-15 + +### Fixed + +* [#5993](https://github.com/sebastianbergmann/phpunit/issues/5993): `DefaultJobRunner` deadlocks on child processes that write large amounts of stderr output +* [#6465](https://github.com/sebastianbergmann/phpunit/issues/6465): SAPI-populated `$_SERVER` entries leak from parent into child process +* [#6587](https://github.com/sebastianbergmann/phpunit/issues/6587): `failOnEmptyTestSuite="false"` in `phpunit.xml` is ignored when `--group`/`--filter`/`--testsuite` matches no tests +* [#6588](https://github.com/sebastianbergmann/phpunit/issues/6588): Order of issue baseline entries is not canonicalized + +## [12.5.19] - 2026-04-13 + +### Fixed + +* Regression in XML configuration migration introduced in PHPUnit 12.5.8 + +## [12.5.18] - 2026-04-13 + +### Fixed + +* [#4571](https://github.com/sebastianbergmann/phpunit/issues/4571): No warning when `--random-order-seed` is used when test execution order is not random +* [#4975](https://github.com/sebastianbergmann/phpunit/issues/4975): `--filter` does not work when filter string starts with `#` +* [#5354](https://github.com/sebastianbergmann/phpunit/issues/5354): JUnit XML logger does not handle `TestSuiteSkipped` event +* [#6276](https://github.com/sebastianbergmann/phpunit/issues/6276): Exit with non-zero exit code when explicit test selection (`--filter`, `--group`, `--testsuite`) yields no tests +* [#6583](https://github.com/sebastianbergmann/phpunit/issues/6583): Failing output expectation skips `tearDown()` and handler restoration, causing subsequent tests to be marked as risky + +## [12.5.17] - 2026-04-08 + +### Changed + +* [#4793](https://github.com/sebastianbergmann/phpunit/issues/4793): Exit with non-zero exit code when `exit` was called from some test + +### Fixed + +* [#5881](https://github.com/sebastianbergmann/phpunit/issues/5881): `colors="true"` in XML configuration file does not unconditionally enable colored output +* [#6019](https://github.com/sebastianbergmann/phpunit/issues/6019): `--migrate-configuration` does not update schema location when XML content already validates against current schema +* [#6372](https://github.com/sebastianbergmann/phpunit/issues/6372): Assertion failure inside `willReturnCallback()` is silently swallowed when code under test catches exceptions +* [#6464](https://github.com/sebastianbergmann/phpunit/issues/6464): Process isolation template unconditionally calls `set_include_path()` +* [#6571](https://github.com/sebastianbergmann/phpunit/issues/6571): Static analysis errors for `TestDoubleBuilder` method chaining + +## [12.5.16] - 2026-04-03 + +### Added + +* [#6547](https://github.com/sebastianbergmann/phpunit/pull/6547): Support for `%r...%r` in `EXPECTF` section + +### Fixed + +* [#6025](https://github.com/sebastianbergmann/phpunit/issues/6025): `FILE_EXTERNAL` breaks `__DIR__` +* [#6351](https://github.com/sebastianbergmann/phpunit/issues/6351): No warning when the same test runner extension is configured more than once +* [#6433](https://github.com/sebastianbergmann/phpunit/issues/6433): Logic in `TestSuiteLoader` is brittle and causes "Class FooTest not found" even for valid tests in valid filenames +* [#6463](https://github.com/sebastianbergmann/phpunit/issues/6463): Process Isolation fails on non-serializable globals and quietly ignore closures + +## [12.5.15] - 2026-03-31 + +### Changed + +* [#4440](https://github.com/sebastianbergmann/phpunit/issues/4440): Improve error when configured code coverage file list is empty +* [#6549](https://github.com/sebastianbergmann/phpunit/pull/6549): Allow to stub both hooks of non-virtual properties + +### Fixed + +* [#6529](https://github.com/sebastianbergmann/phpunit/pull/6529): Git "detached HEAD state" in Open Test Reporting (OTR) XML logger not handled properly +* [#6545](https://github.com/sebastianbergmann/phpunit/issues/6545): Stubbing a class with set property hook leaves property uninitialized by default +* The `RegularExpression` and `StringMatchesFormatDescription` did not handle `preg_match()` errors such as `Compilation failed: regular expression is too large` + +## [12.5.14] - 2026-02-18 + +### Fixed + +* [#6521](https://github.com/sebastianbergmann/phpunit/issues/6521): Performance regression in PHPUnit 11.5.54, PHPUnit 12.5.13, and PHPUnit 13.0.4 + +## [12.5.13] - 2026-02-18 + +### Fixed + +* [#6489](https://github.com/sebastianbergmann/phpunit/pull/6489): Classification of self/direct/indirect deprecation triggers is not aligned with Symfony's bridge for PHPUnit + +## [12.5.12] - 2026-02-16 + +### Fixed + +* [#6511](https://github.com/sebastianbergmann/phpunit/issues/6511): TestDox variables out of order with named arguments +* [#6514](https://github.com/sebastianbergmann/phpunit/issues/6514): `` can silently fail + +## [12.5.11] - 2026-02-10 + +### Deprecated + +* [#6510](https://github.com/sebastianbergmann/phpunit/issues/6510): Deprecate using `with*()` on test stubs + +### Fixed + +* [#6503](https://github.com/sebastianbergmann/phpunit/issues/6503): Temporary file used by `SourceMapper` may be deleted prematurely when multiple PHPUnit processes run in parallel +* [#6509](https://github.com/sebastianbergmann/phpunit/issues/6509): "No expectations were configured for the mock object ..." notice is emitted when `with()` is used without `expects()` + +## [12.5.10] - 2026-02-08 + +### Fixed + +* [#6495](https://github.com/sebastianbergmann/phpunit/pull/6495): Source map for issue trigger identification is regenerated in process isolation child processes + +## [12.5.9] - 2026-02-05 + +### Added + +* [#6488](https://github.com/sebastianbergmann/phpunit/issues/6488): Allow disabling issue trigger identification for improved performance + +### Fixed + +* [#6486](https://github.com/sebastianbergmann/phpunit/issues/6486): Incorrect file name reported for errors for test methods declared in traits +* [#6490](https://github.com/sebastianbergmann/phpunit/pull/6490): Incorrect test count when tests are skipped in before-class method + +## [12.5.8] - 2026-01-27 + +### Changed + +* To prevent Poisoned Pipeline Execution (PPE) attacks using prepared `.coverage` files in pull requests, a PHPT test will no longer be run if the temporary file for writing code coverage information already exists before the test runs + +## [12.5.7] - 2026-01-24 + +### Fixed + +* [#6362](https://github.com/sebastianbergmann/phpunit/issues/6362): Manually instantiated test doubles are broken since PHPUnit 11.2 +* [#6470](https://github.com/sebastianbergmann/phpunit/issues/6470): Infinite recursion in `Count::getCountOf()` for unusal implementations of `Iterator` or `IteratorAggregate` + +## [12.5.6] - 2026-01-16 + +### Changed + +* Reverted a change that caused a [build failure](https://github.com/php/php-src/actions/runs/21052584327/job/60542023395#step:14:3729) for the [PHP project's nightly community job](https://phpunit.expert/articles/how-php-and-its-ecosystem-test-each-other.html?ref=github) + +## [12.5.5] - 2026-01-15 + +### Changed + +* `PHPUnit\Framework\MockObject` exceptions are now subtypes of `PHPUnit\Exception` + +### Deprecated + +* [#6461](https://github.com/sebastianbergmann/phpunit/issues/6461): `any()` matcher (soft deprecation) + +### Fixed + +* [#6470](https://github.com/sebastianbergmann/phpunit/issues/6470): Mocking a class with a property hook setter accepting more types than the property results in a fatal error + +## [12.5.4] - 2025-12-15 + +### Changed + +* The `#[AllowMockObjectsWithoutExpectations]` attribute can now be used on the method level + +### Fixed + +* [#6446](https://github.com/sebastianbergmann/phpunit/issues/6446): Test runner crashes with `Timer::start() has to be called before Timer::stop()` + +## [12.5.3] - 2025-12-11 + +### Changed + +* The message emitted when a test method creates a mock object but does not configure any expectations for it has been improved + +## [12.5.2] - 2025-12-08 + +### Added + +* Attribute `#[AllowMockObjectsWithoutExpectations]` for excluding tests from the check that emits the notice for test methods that create a mock object but do not configure an expectation for it + +## [12.5.1] - 2025-12-06 + +### Added + +* `TestCase::getStubBuilder()` (analogous to `TestCase::getMockBuilder()`) for creating (partial) test stubs using a fluent API + +## [12.5.0] - 2025-12-05 + +### Added + +* [#6376](https://github.com/sebastianbergmann/phpunit/issues/6376): `--all` CLI option to ignore test selection configured in XML configuration file +* [#6422](https://github.com/sebastianbergmann/phpunit/issues/6422): Make `` element in XML code coverage report optional + +### Changed + +* [#6380](https://github.com/sebastianbergmann/phpunit/pull/6380): Allow `Throwable` in `expectExceptionObject()` +* A PHPUnit notice is now emitted for test methods that create a mock object but do not configure an expectation for it + +[12.5.31]: https://github.com/sebastianbergmann/phpunit/compare/12.5.30...12.5.31 +[12.5.30]: https://github.com/sebastianbergmann/phpunit/compare/12.5.29...12.5.30 +[12.5.29]: https://github.com/sebastianbergmann/phpunit/compare/12.5.28...12.5.29 +[12.5.28]: https://github.com/sebastianbergmann/phpunit/compare/12.5.27...12.5.28 +[12.5.27]: https://github.com/sebastianbergmann/phpunit/compare/12.5.26...12.5.27 +[12.5.26]: https://github.com/sebastianbergmann/phpunit/compare/12.5.25...12.5.26 +[12.5.25]: https://github.com/sebastianbergmann/phpunit/compare/12.5.24...12.5.25 +[12.5.24]: https://github.com/sebastianbergmann/phpunit/compare/12.5.23...12.5.24 +[12.5.23]: https://github.com/sebastianbergmann/phpunit/compare/12.5.22...12.5.23 +[12.5.22]: https://github.com/sebastianbergmann/phpunit/compare/12.5.21...12.5.22 +[12.5.21]: https://github.com/sebastianbergmann/phpunit/compare/12.5.20...12.5.21 +[12.5.20]: https://github.com/sebastianbergmann/phpunit/compare/12.5.19...12.5.20 +[12.5.19]: https://github.com/sebastianbergmann/phpunit/compare/12.5.18...12.5.19 +[12.5.18]: https://github.com/sebastianbergmann/phpunit/compare/12.5.17...12.5.18 +[12.5.17]: https://github.com/sebastianbergmann/phpunit/compare/12.5.16...12.5.17 +[12.5.16]: https://github.com/sebastianbergmann/phpunit/compare/12.5.15...12.5.16 +[12.5.15]: https://github.com/sebastianbergmann/phpunit/compare/12.5.14...12.5.15 +[12.5.14]: https://github.com/sebastianbergmann/phpunit/compare/12.5.13...12.5.14 +[12.5.13]: https://github.com/sebastianbergmann/phpunit/compare/12.5.12...12.5.13 +[12.5.12]: https://github.com/sebastianbergmann/phpunit/compare/12.5.11...12.5.12 +[12.5.11]: https://github.com/sebastianbergmann/phpunit/compare/12.5.10...12.5.11 +[12.5.10]: https://github.com/sebastianbergmann/phpunit/compare/12.5.9...12.5.10 +[12.5.9]: https://github.com/sebastianbergmann/phpunit/compare/12.5.8...12.5.9 +[12.5.8]: https://github.com/sebastianbergmann/phpunit/compare/12.5.7...12.5.8 +[12.5.7]: https://github.com/sebastianbergmann/phpunit/compare/12.5.6...12.5.7 +[12.5.6]: https://github.com/sebastianbergmann/phpunit/compare/12.5.5...12.5.6 +[12.5.5]: https://github.com/sebastianbergmann/phpunit/compare/12.5.4...12.5.5 +[12.5.4]: https://github.com/sebastianbergmann/phpunit/compare/12.5.3...12.5.4 +[12.5.3]: https://github.com/sebastianbergmann/phpunit/compare/12.5.2...12.5.3 +[12.5.2]: https://github.com/sebastianbergmann/phpunit/compare/12.5.1...12.5.2 +[12.5.1]: https://github.com/sebastianbergmann/phpunit/compare/12.5.0...12.5.1 +[12.5.0]: https://github.com/sebastianbergmann/phpunit/compare/12.4.5...12.5.0 diff --git a/vendor/phpunit/phpunit/DEPRECATIONS.md b/vendor/phpunit/phpunit/DEPRECATIONS.md index 6154e0f12..73159fdd9 100644 --- a/vendor/phpunit/phpunit/DEPRECATIONS.md +++ b/vendor/phpunit/phpunit/DEPRECATIONS.md @@ -1,64 +1,5 @@ # Deprecations -## Hard Deprecations - -This functionality is currently [hard-deprecated](https://phpunit.de/backward-compatibility.html#hard-deprecation): - -### Writing Tests - -#### Assertions, Constraints, and Expectations - -| Issue | Description | Since | Replacement | -|-------------------------------------------------------------------|----------------------------------------------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [#5472](https://github.com/sebastianbergmann/phpunit/issues/5472) | `Assert::assertStringNotMatchesFormat()` | 10.4.0 | | -| [#5472](https://github.com/sebastianbergmann/phpunit/issues/5472) | `Assert::assertStringNotMatchesFormatFile()` | 10.4.0 | | - -#### Test Double API - -| Issue | Description | Since | Replacement | -|-------------------------------------------------------------------|--------------------------------------------------------------------------------|--------|-----------------------------------------------------------------------------------------| -| [#5240](https://github.com/sebastianbergmann/phpunit/issues/5240) | `TestCase::createTestProxy()` | 10.1.0 | | -| [#5241](https://github.com/sebastianbergmann/phpunit/issues/5241) | `TestCase::getMockForAbstractClass()` | 10.1.0 | | -| [#5242](https://github.com/sebastianbergmann/phpunit/issues/5242) | `TestCase::getMockFromWsdl()` | 10.1.0 | | -| [#5243](https://github.com/sebastianbergmann/phpunit/issues/5243) | `TestCase::getMockForTrait()` | 10.1.0 | | -| [#5244](https://github.com/sebastianbergmann/phpunit/issues/5244) | `TestCase::getObjectForTrait()` | 10.1.0 | | -| [#5305](https://github.com/sebastianbergmann/phpunit/issues/5305) | `MockBuilder::getMockForAbstractClass()` | 10.1.0 | | -| [#5306](https://github.com/sebastianbergmann/phpunit/issues/5306) | `MockBuilder::getMockForTrait()` | 10.1.0 | | -| [#5307](https://github.com/sebastianbergmann/phpunit/issues/5307) | `MockBuilder::disableProxyingToOriginalMethods()` | 10.1.0 | | -| [#5307](https://github.com/sebastianbergmann/phpunit/issues/5307) | `MockBuilder::enableProxyingToOriginalMethods()` | 10.1.0 | | -| [#5307](https://github.com/sebastianbergmann/phpunit/issues/5307) | `MockBuilder::setProxyTarget()` | 10.1.0 | | -| [#5308](https://github.com/sebastianbergmann/phpunit/issues/5308) | `MockBuilder::allowMockingUnknownTypes()` | 10.1.0 | | -| [#5308](https://github.com/sebastianbergmann/phpunit/issues/5308) | `MockBuilder::disallowMockingUnknownTypes()` | 10.1.0 | | -| [#5309](https://github.com/sebastianbergmann/phpunit/issues/5309) | `MockBuilder::disableAutoload()` | 10.1.0 | | -| [#5309](https://github.com/sebastianbergmann/phpunit/issues/5309) | `MockBuilder::enableAutoload()` | 10.1.0 | | -| [#5315](https://github.com/sebastianbergmann/phpunit/issues/5315) | `MockBuilder::disableArgumentCloning()` | 10.1.0 | | -| [#5315](https://github.com/sebastianbergmann/phpunit/issues/5315) | `MockBuilder::enableArgumentCloning()` | 10.1.0 | | -| [#5320](https://github.com/sebastianbergmann/phpunit/issues/5320) | `MockBuilder::addMethods()` | 10.1.0 | | -| [#5415](https://github.com/sebastianbergmann/phpunit/issues/5415) | Support for doubling interfaces (or classes) that have a method named `method` | 11.0.0 | | -| [#5423](https://github.com/sebastianbergmann/phpunit/issues/5423) | `TestCase::onConsecutiveCalls()` | 10.3.0 | Use `$double->willReturn()` instead of `$double->will($this->onConsecutiveCalls())` | -| [#5423](https://github.com/sebastianbergmann/phpunit/issues/5423) | `TestCase::returnArgument()` | 10.3.0 | Use `$double->willReturnArgument()` instead of `$double->will($this->returnArgument())` | -| [#5423](https://github.com/sebastianbergmann/phpunit/issues/5423) | `TestCase::returnCallback()` | 10.3.0 | Use `$double->willReturnCallback()` instead of `$double->will($this->returnCallback())` | -| [#5423](https://github.com/sebastianbergmann/phpunit/issues/5423) | `TestCase::returnSelf()` | 10.3.0 | Use `$double->willReturnSelf()` instead of `$double->will($this->returnSelf())` | -| [#5423](https://github.com/sebastianbergmann/phpunit/issues/5423) | `TestCase::returnValue()` | 10.3.0 | Use `$double->willReturn()` instead of `$double->will($this->returnValue())` | -| [#5423](https://github.com/sebastianbergmann/phpunit/issues/5423) | `TestCase::returnValueMap()` | 10.3.0 | Use `$double->willReturnMap()` instead of `$double->will($this->returnValueMap())` | -| [#5535](https://github.com/sebastianbergmann/phpunit/issues/5525) | Configuring expectations using `expects()` on test stubs | 11.0.0 | Create a mock object when you need to configure expectations on a test double | - -### Running Tests - -| Issue | Description | Since | Replacement | -|-------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------|--------|----------------------------------------------------------------------------------------------------| -| [#5689](https://github.com/sebastianbergmann/phpunit/issues/5689) | `restrictDeprecations` attribute on the `` element of the XML configuration file | 11.1.0 | Use `ignoreSelfDeprecations`, `ignoreDirectDeprecations`, and `ignoreIndirectDeprecations` instead | -| [#5709](https://github.com/sebastianbergmann/phpunit/issues/5709) | Support for using comma-separated values with the `--group`, `--exclude-group`, `--covers`, `--uses`, and `--test-suffix` CLI options | 11.1.0 | Use `--group foo --group bar` instead of `--group foo,bar`, for example | - -#### Miscellaneous - -| Issue | Description | Since | Replacement | -|-------------------------------------------------------------------|-------------------------------------------------------------|--------|-----------------------------------------------------------------------------------------| -| [#4505](https://github.com/sebastianbergmann/phpunit/issues/4505) | Metadata in doc-comments | 10.3.0 | Metadata in attributes | -| [#5214](https://github.com/sebastianbergmann/phpunit/issues/5214) | `TestCase::iniSet()` | 10.3.0 | | -| [#5216](https://github.com/sebastianbergmann/phpunit/issues/5216) | `TestCase::setLocale()` | 10.3.0 | | -| [#5800](https://github.com/sebastianbergmann/phpunit/issues/5800) | Targeting traits with `#[CoversClass]` and `#[UsesClass]` | 11.2.0 | `#[CoversClass]` and `#[UsesClass]` also target the traits used by the targeted classes | - ## Soft Deprecations This functionality is currently [soft-deprecated](https://phpunit.de/backward-compatibility.html#soft-deprecation): @@ -67,9 +8,55 @@ This functionality is currently [soft-deprecated](https://phpunit.de/backward-co #### Assertions, Constraints, and Expectations -| Issue | Description | Since | Replacement | -|-------------------------------------------------------------------|-----------------------------------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [#6052](https://github.com/sebastianbergmann/phpunit/issues/6052) | `Assert::isType()` | 11.5.0 | Use `isArray()`, `isBool()`, `isCallable()`, `isFloat()`, `isInt()`, `isIterable()`, `isNull()`, `isNumeric()`, `isObject()`, `isResource()`, `isClosedResource()`, `isScalar()`, or `isString()` instead | -| [#6055](https://github.com/sebastianbergmann/phpunit/issues/6055) | `Assert::assertContainsOnly()` | 11.5.0 | Use `assertContainsOnlyArray()`, `assertContainsOnlyBool()`, `assertContainsOnlyCallable()`, `assertContainsOnlyFloat()`, `assertContainsOnlyInt()`, `assertContainsOnlyIterable()`, `assertContainsOnlyNumeric()`, `assertContainsOnlyObject()`, `assertContainsOnlyResource()`, `assertContainsOnlyClosedResource()`, `assertContainsOnlyScalar()`, or `assertContainsOnlyString()` instead | -| [#6055](https://github.com/sebastianbergmann/phpunit/issues/6055) | `Assert::assertNotContainsOnly()` | 11.5.0 | Use `assertContainsNotOnlyArray()`, `assertContainsNotOnlyBool()`, `assertContainsNotOnlyCallable()`, `assertContainsNotOnlyFloat()`, `assertContainsNotOnlyInt()`, `assertContainsNotOnlyIterable()`, `assertContainsNotOnlyNumeric()`, `assertContainsNotOnlyObject()`, `assertContainsNotOnlyResource()`, `assertContainsNotOnlyClosedResource()`, `assertContainsNotOnlyScalar()`, or `assertContainsNotOnlyString()` instead | -| [#6059](https://github.com/sebastianbergmann/phpunit/issues/6059) | `Assert::containsOnly()` | 11.5.0 | Use `containsOnlyArray()`, `containsOnlyBool()`, `containsOnlyCallable()`, `containsOnlyFloat()`, `containsOnlyInt()`, `containsOnlyIterable()`, `containsOnlyNumeric()`, `containsOnlyObject()`, `containsOnlyResource()`, `containsOnlyClosedResource()`, `containsOnlyScalar()`, or `containsOnlyString()` instead | +| Issue | Description | Since | Replacement | +|-------------------------------------------------------------------|-----------------------------------|--------|--------------------------------------------------------------------------| +| [#6461](https://github.com/sebastianbergmann/phpunit/issues/6461) | `TestCase::any()` | 12.5.5 | Use a test stub instead or configure a real invocation count expectation | + +### Extending PHPUnit + +| Issue | Description | Since | Replacement | +|-------------------------------------------------------------------|---------------------------------------------|--------|-------------------------------------------------| +| [#6140](https://github.com/sebastianbergmann/phpunit/issues/6140) | `AfterTestMethodCalled::testClassName()` | 12.1.0 | `AfterTestMethodCalled::test()->className()` | +| [#6140](https://github.com/sebastianbergmann/phpunit/issues/6140) | `AfterTestMethodErrored::testClassName()` | 12.1.0 | `AfterTestMethodErrored::test()->className()` | +| [#6140](https://github.com/sebastianbergmann/phpunit/issues/6140) | `AfterTestMethodFinished::testClassName()` | 12.1.0 | `AfterTestMethodFinished::test()->className()` | +| [#6140](https://github.com/sebastianbergmann/phpunit/issues/6140) | `BeforeTestMethodCalled::testClassName()` | 12.1.0 | `BeforeTestMethodCalled::test()->className()` | +| [#6140](https://github.com/sebastianbergmann/phpunit/issues/6140) | `BeforeTestMethodErrored::testClassName()` | 12.1.0 | `BeforeTestMethodErrored::test()->className()` | +| [#6140](https://github.com/sebastianbergmann/phpunit/issues/6140) | `BeforeTestMethodFinished::testClassName()` | 12.1.0 | `BeforeTestMethodFinished::test()->className()` | +| [#6140](https://github.com/sebastianbergmann/phpunit/issues/6140) | `PreConditionCalled::testClassName()` | 12.1.0 | `PreConditionCalled::test()->className()` | +| [#6140](https://github.com/sebastianbergmann/phpunit/issues/6140) | `PreConditionErrored::testClassName()` | 12.1.0 | `PreConditionErrored::test()->className()` | +| [#6140](https://github.com/sebastianbergmann/phpunit/issues/6140) | `PreConditionFinished::testClassName()` | 12.1.0 | `PreConditionFinished::test()->className()` | +| [#6140](https://github.com/sebastianbergmann/phpunit/issues/6140) | `PostConditionCalled::testClassName()` | 12.1.0 | `PostConditionCalled::test()->className()` | +| [#6140](https://github.com/sebastianbergmann/phpunit/issues/6140) | `PostConditionErrored::testClassName()` | 12.1.0 | `PostConditionErrored::test()->className()` | +| [#6140](https://github.com/sebastianbergmann/phpunit/issues/6140) | `PostConditionFinished::testClassName()` | 12.1.0 | `PostConditionFinished::test()->className()` | +| [#6229](https://github.com/sebastianbergmann/phpunit/issues/6229) | `Configuration::includeTestSuite()` | 12.3.0 | `Configuration::includeTestSuites()` | +| [#6229](https://github.com/sebastianbergmann/phpunit/issues/6229) | `Configuration::excludeTestSuite()` | 12.3.0 | `Configuration::excludeTestSuites()` | + +## Hard Deprecations + +This functionality is currently [hard-deprecated](https://phpunit.de/backward-compatibility.html#hard-deprecation): + +### Writing Tests + +#### Assertions, Constraints, and Expectations + +| Issue | Description | Since | Replacement | +|-------------------------------------------------------------------|-----------------------------------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [#6052](https://github.com/sebastianbergmann/phpunit/issues/6052) | `Assert::isType()` | 11.5.0 | Use `isArray()`, `isBool()`, `isCallable()`, `isFloat()`, `isInt()`, `isIterable()`, `isNull()`, `isNumeric()`, `isObject()`, `isResource()`, `isClosedResource()`, `isScalar()`, or `isString()` instead | +| [#6055](https://github.com/sebastianbergmann/phpunit/issues/6055) | `Assert::assertContainsOnly()` | 11.5.0 | Use `assertContainsOnlyArray()`, `assertContainsOnlyBool()`, `assertContainsOnlyCallable()`, `assertContainsOnlyFloat()`, `assertContainsOnlyInt()`, `assertContainsOnlyIterable()`, `assertContainsOnlyNumeric()`, `assertContainsOnlyObject()`, `assertContainsOnlyResource()`, `assertContainsOnlyClosedResource()`, `assertContainsOnlyScalar()`, or `assertContainsOnlyString()` instead | +| [#6055](https://github.com/sebastianbergmann/phpunit/issues/6055) | `Assert::assertNotContainsOnly()` | 11.5.0 | Use `assertContainsNotOnlyArray()`, `assertContainsNotOnlyBool()`, `assertContainsNotOnlyCallable()`, `assertContainsNotOnlyFloat()`, `assertContainsNotOnlyInt()`, `assertContainsNotOnlyIterable()`, `assertContainsNotOnlyNumeric()`, `assertContainsNotOnlyObject()`, `assertContainsNotOnlyResource()`, `assertContainsNotOnlyClosedResource()`, `assertContainsNotOnlyScalar()`, or `assertContainsNotOnlyString()` instead | +| [#6059](https://github.com/sebastianbergmann/phpunit/issues/6059) | `Assert::containsOnly()` | 11.5.0 | Use `containsOnlyArray()`, `containsOnlyBool()`, `containsOnlyCallable()`, `containsOnlyFloat()`, `containsOnlyInt()`, `containsOnlyIterable()`, `containsOnlyNumeric()`, `containsOnlyObject()`, `containsOnlyResource()`, `containsOnlyClosedResource()`, `containsOnlyScalar()`, or `containsOnlyString()` instead | +| [#6510](https://github.com/sebastianbergmann/phpunit/issues/6510) | Using `with*()` on test stubs | 12.5.11 | Using `with*()` on a test stub has no effect, use a mock object instead | + +### Attributes + +| Issue | Description | Since | Replacement | +|-------------------------------------------------------------------|---------------------------------------------------------------------------------------------|--------|----------------------------------------------| +| [#6246](https://github.com/sebastianbergmann/phpunit/issues/6246) | Using `#[CoversNothing]` on a test method | 12.3.0 | | +| [#6284](https://github.com/sebastianbergmann/phpunit/issues/6284) | Using `#[RunClassInSeparateProcess]` on a test class | 12.4.0 | Use `#[RunTestsInSeparateProcesses]` instead | +| [#6355](https://github.com/sebastianbergmann/phpunit/issues/6355) | Support for version constraint string argument without explicit version comparison operator | 12.4.0 | | + +### Running Tests + +| Issue | Description | Since | Replacement | +|-------------------------------------------------------------------|------------------------------------------|--------|--------------------------------------------------------| +| [#6240](https://github.com/sebastianbergmann/phpunit/issues/6240) | `--dont-report-useless-tests` CLI option | 12.2.3 | Use `--do-not-report-useless-tests` CLI option instead | diff --git a/vendor/phpunit/phpunit/README.md b/vendor/phpunit/phpunit/README.md index 1ca144aeb..0d8098171 100644 --- a/vendor/phpunit/phpunit/README.md +++ b/vendor/phpunit/phpunit/README.md @@ -1,14 +1,20 @@ +[![PHPUnit](.github/img/phpunit.svg)](https://phpunit.de/?ref=github) + +[![CI Status](https://github.com/sebastianbergmann/phpunit/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/phpunit/actions) +[![codecov](https://codecov.io/gh/sebastianbergmann/phpunit/branch/main/graph/badge.svg?token=0yzBUK8Wri)](https://codecov.io/gh/sebastianbergmann/phpunit) +[![Latest Stable Version](https://poser.pugx.org/phpunit/phpunit/v)](https://packagist.org/packages/phpunit/phpunit) +[![Total Downloads](https://poser.pugx.org/phpunit/phpunit/downloads)](https://packagist.org/packages/phpunit/phpunit/stats) +[![Monthly Downloads](https://poser.pugx.org/phpunit/phpunit/d/monthly)](https://packagist.org/packages/phpunit/phpunit/stats) +[![Daily Downloads](https://poser.pugx.org/phpunit/phpunit/d/daily)](https://packagist.org/packages/phpunit/phpunit/stats) + # PHPUnit -[![Latest Stable Version](https://poser.pugx.org/phpunit/phpunit/v)](https://packagist.org/packages/phpunit/phpunit) -[![CI Status](https://github.com/sebastianbergmann/phpunit/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/phpunit/actions) -[![codecov](https://codecov.io/gh/sebastianbergmann/phpunit/branch/main/graph/badge.svg)](https://codecov.io/gh/sebastianbergmann/phpunit) - -PHPUnit is a programmer-oriented testing framework for PHP. It is an instance of the xUnit architecture for unit testing frameworks. +PHPUnit is a programmer-oriented testing framework for PHP. +It is an instance of the xUnit architecture for unit testing frameworks. ## Installation -We distribute a [PHP Archive (PHAR)](https://php.net/phar) that has all required (as well as some optional) dependencies of PHPUnit bundled in a single file: +We distribute a [PHP Archive (PHAR)](https://php.net/phar) that has all required dependencies of PHPUnit bundled in a single file: ```bash $ wget https://phar.phpunit.de/phpunit-X.Y.phar @@ -18,17 +24,85 @@ $ php phpunit-X.Y.phar --version Please replace `X.Y` with the version of PHPUnit you are interested in. -Alternatively, you may use [Composer](https://getcomposer.org/) to download and install PHPUnit as well as its dependencies. Please refer to the [documentation](https://phpunit.de/documentation.html) for details on how to install PHPUnit. +Alternatively, you may use [Composer](https://getcomposer.org/) to download and install PHPUnit as well as its dependencies. +Please refer to the [documentation](https://phpunit.de/documentation.html?ref=github) for details on how to install PHPUnit. ## Contribute Please refer to [CONTRIBUTING.md](https://github.com/sebastianbergmann/phpunit/blob/main/.github/CONTRIBUTING.md) for information on how to contribute to PHPUnit and its related projects. -## List of Contributors +A big "Thank you!" to everyone who has contributed to PHPUnit! +You can find a detailed list of contributors on every PHPUnit related package on GitHub. -Thanks to everyone who has contributed to PHPUnit! You can find a detailed list of contributors on every PHPUnit related package on GitHub. This list shows only the major components: +Here is a list of all components that are primarily developed and maintained by [Sebastian Bergmann](https://sebastian-bergmann.de/open-source.html?ref=github): -* [PHPUnit](https://github.com/sebastianbergmann/phpunit/graphs/contributors) -* [php-code-coverage](https://github.com/sebastianbergmann/php-code-coverage/graphs/contributors) +* [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) +* [phpunit/php-code-coverage](https://github.com/sebastianbergmann/php-code-coverage) +* [phpunit/php-file-iterator](https://github.com/sebastianbergmann/php-file-iterator) +* [phpunit/php-invoker](https://github.com/sebastianbergmann/php-invoker) +* [phpunit/php-text-template](https://github.com/sebastianbergmann/php-text-template) +* [phpunit/php-timer](https://github.com/sebastianbergmann/php-timer) +* [sebastian/cli-parser](https://github.com/sebastianbergmann/cli-parser) +* [sebastian/comparator](https://github.com/sebastianbergmann/comparator) +* [sebastian/complexity](https://github.com/sebastianbergmann/complexity) +* [sebastian/diff](https://github.com/sebastianbergmann/diff) +* [sebastian/environment](https://github.com/sebastianbergmann/environment) +* [sebastian/exporter](https://github.com/sebastianbergmann/exporter) +* [sebastian/global-state](https://github.com/sebastianbergmann/global-state) +* [sebastian/lines-of-code](https://github.com/sebastianbergmann/lines-of-code) +* [sebastian/object-enumerator](https://github.com/sebastianbergmann/object-enumerator) +* [sebastian/object-reflector](https://github.com/sebastianbergmann/object-reflector) +* [sebastian/recursion-context](https://github.com/sebastianbergmann/recursion-context) +* [sebastian/type](https://github.com/sebastianbergmann/type) +* [sebastian/version](https://github.com/sebastianbergmann/version) -A very special thanks to everyone who has contributed to the [documentation](https://github.com/sebastianbergmann/phpunit-documentation-english/graphs/contributors). +A very special thanks to everyone who has contributed to the [PHPUnit Manual](https://github.com/sebastianbergmann/phpunit-documentation-english). + +In addition to the components listed above, PHPUnit depends on the components listed below: + +* [myclabs/deep-copy](https://github.com/myclabs/DeepCopy) +* [nikic/php-parser](https://github.com/nikic/php-parser) +* [phar-io/manifest](https://github.com/phar-io/manifest) +* [phar-io/version](https://github.com/phar-io/version) +* [staabm/side-effects-detector](https://github.com/staabm/side-effects-detector) +* [theseer/tokenizer](https://github.com/theseer/tokenizer) + +These tools are used to develop PHPUnit: + +* [Composer](https://getcomposer.org/) +* [Phive](https://phar.io/) +* [PHP Autoload Builder](https://github.com/theseer/Autoload/) +* [PHP-CS-Fixer](https://cs.symfony.com/) +* [PHP-Scoper](https://github.com/humbug/php-scoper) +* [PHPStan](https://phpstan.org/) + +## Sponsors + +It has taken [Sebastian Bergmann](https://sebastian-bergmann.de/open-source.html?ref=github) thousands of hours to develop, test, and support PHPUnit. +[**You can sponsor his Open Source work through GitHub Sponsors**](https://github.com/sponsors/sebastianbergmann), for example. + +These businesses support Sebastian Bergmann's work on PHPUnit: + + + + + + + + + + + + + + + + + +
Bubble Shooterin2it vofLambdaTest
Testmo GmbHTideways GmbHTYPO3 GmbH
VEMA Versicherungsmakler Genossenschaft eG
+ +Would you like to see your logo here as well as on the [PHPUnit website](https://phpunit.de/sponsors.html?ref=github)? +Contact Sebastian Bergmann at [sponsoring@phpunit.de](mailto:sponsoring@phpunit.de) to learn more about how you can support his work on PHPUnit. + +Whether you are a CEO, CFO, CTO, or a developer: your company surely depends on Open Source software. +[It is time to pay your share](https://opensourcepledge.com/) and support maintainers like [Sebastian Bergmann](https://phpunit.de/sponsoring.html). diff --git a/vendor/phpunit/phpunit/composer.json b/vendor/phpunit/phpunit/composer.json index de8ce2ca5..94212c89d 100644 --- a/vendor/phpunit/phpunit/composer.json +++ b/vendor/phpunit/phpunit/composer.json @@ -28,7 +28,7 @@ }, "prefer-stable": true, "require": { - "php": ">=8.2", + "php": ">=8.3", "ext-dom": "*", "ext-filter": "*", "ext-json": "*", @@ -38,27 +38,26 @@ "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", - "phpunit/php-code-coverage": "^11.0.12", - "phpunit/php-file-iterator": "^5.1.1", - "phpunit/php-invoker": "^5.0.1", - "phpunit/php-text-template": "^4.0.1", - "phpunit/php-timer": "^7.0.1", - "sebastian/cli-parser": "^3.0.2", - "sebastian/code-unit": "^3.0.3", - "sebastian/comparator": "^6.3.3", - "sebastian/diff": "^6.0.2", - "sebastian/environment": "^7.2.1", - "sebastian/exporter": "^6.3.2", - "sebastian/global-state": "^7.0.2", - "sebastian/object-enumerator": "^6.0.1", - "sebastian/recursion-context": "^6.0.3", - "sebastian/type": "^5.1.3", - "sebastian/version": "^5.0.2", + "phpunit/php-code-coverage": "^12.5.7", + "phpunit/php-file-iterator": "^6.0.1", + "phpunit/php-invoker": "^6.0.0", + "phpunit/php-text-template": "^5.0.0", + "phpunit/php-timer": "^8.0.0", + "sebastian/cli-parser": "^4.2.1", + "sebastian/comparator": "^7.1.8", + "sebastian/diff": "^7.0.0", + "sebastian/environment": "^8.1.2", + "sebastian/exporter": "^7.0.3", + "sebastian/global-state": "^8.0.3", + "sebastian/object-enumerator": "^7.0.0", + "sebastian/recursion-context": "^7.0.1", + "sebastian/type": "^6.0.4", + "sebastian/version": "^6.0.0", "staabm/side-effects-detector": "^1.0.5" }, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "policy": { "malware": { @@ -75,9 +74,6 @@ "optimize-autoloader": true, "sort-packages": true }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files" - }, "bin": [ "phpunit" ], @@ -96,8 +92,8 @@ "files": [ "tests/_files/deprecation-trigger/trigger_deprecation.php", "tests/unit/Event/AbstractEventTestCase.php", + "tests/unit/TextUI/AbstractSourceFilterTestCase.php", "tests/unit/Framework/MockObject/TestDoubleTestCase.php", - "tests/unit/Metadata/Parser/AnnotationParserTestCase.php", "tests/unit/Metadata/Parser/AttributeParserTestCase.php", "tests/unit/Framework/Assert/assertContainsOnlyArrayTest.php", "tests/unit/Framework/Assert/assertContainsOnlyBoolTest.php", @@ -126,7 +122,7 @@ "tests/unit/Framework/Assert/assertNullTest.php", "tests/unit/Framework/Assert/assertSameSizeTest.php", "tests/unit/Framework/Assert/assertSameTest.php", - "tests/_files/CoverageNamespacedFunctionTest.php", + "tests/unit/TextUI/Output/Default/ResultPrinterTest.php", "tests/_files/CoveredFunction.php", "tests/_files/Generator.php", "tests/_files/NamespaceCoveredFunction.php", @@ -135,7 +131,7 @@ }, "extra": { "branch-alias": { - "dev-main": "11.5-dev" + "dev-main": "12.5-dev" } } } diff --git a/vendor/phpunit/phpunit/composer.lock b/vendor/phpunit/phpunit/composer.lock index 148aa7b65..5737bf804 100644 --- a/vendor/phpunit/phpunit/composer.lock +++ b/vendor/phpunit/phpunit/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c9c54df4ab2b1a8fce3d96b2ddc47379", + "content-hash": "1d173104be36453d1a873d4a6f283b73", "packages": [ { "name": "myclabs/deep-copy", @@ -243,16 +243,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "11.0.12", + "version": "12.5.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56" + "reference": "186dab580576598076de6818596d12b61801880e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2c1ed04922802c15e1de5d7447b4856de949cf56", - "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/186dab580576598076de6818596d12b61801880e", + "reference": "186dab580576598076de6818596d12b61801880e", "shasum": "" }, "require": { @@ -260,18 +260,16 @@ "ext-libxml": "*", "ext-xmlwriter": "*", "nikic/php-parser": "^5.7.0", - "php": ">=8.2", - "phpunit/php-file-iterator": "^5.1.0", - "phpunit/php-text-template": "^4.0.1", - "sebastian/code-unit-reverse-lookup": "^4.0.1", - "sebastian/complexity": "^4.0.1", - "sebastian/environment": "^7.2.1", - "sebastian/lines-of-code": "^3.0.1", - "sebastian/version": "^5.0.2", - "theseer/tokenizer": "^1.3.1" + "php": ">=8.3", + "phpunit/php-text-template": "^5.0", + "sebastian/complexity": "^5.0", + "sebastian/environment": "^8.1.2", + "sebastian/lines-of-code": "^4.0.1", + "sebastian/version": "^6.0", + "theseer/tokenizer": "^2.0.1" }, "require-dev": { - "phpunit/phpunit": "^11.5.46" + "phpunit/phpunit": "^12.5.28" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -280,7 +278,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "11.0.x-dev" + "dev-main": "12.5.x-dev" } }, "autoload": { @@ -309,7 +307,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.12" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.7" }, "funding": [ { @@ -329,32 +327,32 @@ "type": "tidelift" } ], - "time": "2025-12-24T07:01:01+00:00" + "time": "2026-06-01T13:24:19+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "5.1.1", + "version": "6.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903" + "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/2f3a64888c814fc235386b7387dd5b5ed92ad903", - "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5", + "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -382,7 +380,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.1" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.1" }, "funding": [ { @@ -402,28 +400,28 @@ "type": "tidelift" } ], - "time": "2026-02-02T13:52:54+00:00" + "time": "2026-02-02T14:04:18+00:00" }, { "name": "phpunit/php-invoker", - "version": "5.0.1", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" + "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", - "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/12b54e689b07a25a9b41e57736dfab6ec9ae5406", + "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "suggest": { "ext-pcntl": "*" @@ -431,7 +429,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -458,7 +456,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" + "source": "https://github.com/sebastianbergmann/php-invoker/tree/6.0.0" }, "funding": [ { @@ -466,32 +464,32 @@ "type": "github" } ], - "time": "2024-07-03T05:07:44+00:00" + "time": "2025-02-07T04:58:58+00:00" }, { "name": "phpunit/php-text-template", - "version": "4.0.1", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" + "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", - "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53", + "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -518,7 +516,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" + "source": "https://github.com/sebastianbergmann/php-text-template/tree/5.0.0" }, "funding": [ { @@ -526,32 +524,32 @@ "type": "github" } ], - "time": "2024-07-03T05:08:43+00:00" + "time": "2025-02-07T04:59:16+00:00" }, { "name": "phpunit/php-timer", - "version": "7.0.1", + "version": "8.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" + "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", - "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", + "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -578,7 +576,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", "security": "https://github.com/sebastianbergmann/php-timer/security/policy", - "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" + "source": "https://github.com/sebastianbergmann/php-timer/tree/8.0.0" }, "funding": [ { @@ -586,32 +584,32 @@ "type": "github" } ], - "time": "2024-07-03T05:09:35+00:00" + "time": "2025-02-07T04:59:38+00:00" }, { "name": "sebastian/cli-parser", - "version": "3.0.2", + "version": "4.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" + "reference": "7d05781b13f7dec9043a629a21d086ed74582a15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", - "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/7d05781b13f7dec9043a629a21d086ed74582a15", + "reference": "7d05781b13f7dec9043a629a21d086ed74582a15", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.5.25" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.2-dev" } }, "autoload": { @@ -635,152 +633,51 @@ "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" - } - ], - "time": "2024-07-03T04:41:36+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", - "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ + }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "security": "https://github.com/sebastianbergmann/code-unit/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" - }, - "funding": [ + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2025-03-19T07:56:08+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "4.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "183a9b2632194febd219bb9246eee421dad8d45e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", - "reference": "183a9b2632194febd219bb9246eee421dad8d45e", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "url": "https://tidelift.com/funding/github/packagist/sebastian/cli-parser", + "type": "tidelift" } ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:45:54+00:00" + "time": "2026-05-17T05:29:34+00:00" }, { "name": "sebastian/comparator", - "version": "6.3.3", + "version": "7.1.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9" + "reference": "7c65c1e79836812819705b473a90c12399542485" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", - "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/7c65c1e79836812819705b473a90c12399542485", + "reference": "7c65c1e79836812819705b473a90c12399542485", "shasum": "" }, "require": { "ext-dom": "*", "ext-mbstring": "*", - "php": ">=8.2", - "sebastian/diff": "^6.0", - "sebastian/exporter": "^6.0" + "php": ">=8.3", + "sebastian/diff": "^7.0", + "sebastian/exporter": "^7.0.3" }, "require-dev": { - "phpunit/phpunit": "^11.4" + "phpunit/phpunit": "^12.5.25" }, "suggest": { "ext-bcmath": "For comparing BcMath\\Number objects" @@ -788,7 +685,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "6.3-dev" + "dev-main": "7.1-dev" } }, "autoload": { @@ -828,7 +725,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.3" + "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.8" }, "funding": [ { @@ -848,33 +745,33 @@ "type": "tidelift" } ], - "time": "2026-01-24T09:26:40+00:00" + "time": "2026-05-21T04:45:25+00:00" }, { "name": "sebastian/complexity", - "version": "4.0.1", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" + "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", - "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/bad4316aba5303d0221f43f8cee37eb58d384bbb", + "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb", "shasum": "" }, "require": { "nikic/php-parser": "^5.0", - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -898,7 +795,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" + "source": "https://github.com/sebastianbergmann/complexity/tree/5.0.0" }, "funding": [ { @@ -906,33 +803,33 @@ "type": "github" } ], - "time": "2024-07-03T04:49:50+00:00" + "time": "2025-02-07T04:55:25+00:00" }, { "name": "sebastian/diff", - "version": "6.0.2", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" + "reference": "7ab1ea946c012266ca32390913653d844ecd085f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f", + "reference": "7ab1ea946c012266ca32390913653d844ecd085f", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0", - "symfony/process": "^4.2 || ^5" + "phpunit/phpunit": "^12.0", + "symfony/process": "^7.2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -965,7 +862,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" + "source": "https://github.com/sebastianbergmann/diff/tree/7.0.0" }, "funding": [ { @@ -973,27 +870,27 @@ "type": "github" } ], - "time": "2024-07-03T04:53:05+00:00" + "time": "2025-02-07T04:55:46+00:00" }, { "name": "sebastian/environment", - "version": "7.2.1", + "version": "8.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4" + "reference": "9d32c685773823b1983e256ae4ecd48a10d6e439" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4", - "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/9d32c685773823b1983e256ae4ecd48a10d6e439", + "reference": "9d32c685773823b1983e256ae4ecd48a10d6e439", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.5.26" }, "suggest": { "ext-posix": "*" @@ -1001,7 +898,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "7.2-dev" + "dev-main": "8.1-dev" } }, "autoload": { @@ -1029,7 +926,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1" + "source": "https://github.com/sebastianbergmann/environment/tree/8.1.2" }, "funding": [ { @@ -1049,34 +946,34 @@ "type": "tidelift" } ], - "time": "2025-05-21T11:55:47+00:00" + "time": "2026-05-25T13:40:20+00:00" }, { "name": "sebastian/exporter", - "version": "6.3.2", + "version": "7.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "70a298763b40b213ec087c51c739efcaa90bcd74" + "reference": "c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74", - "reference": "70a298763b40b213ec087c51c739efcaa90bcd74", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23", + "reference": "c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": ">=8.2", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/recursion-context": "^7.0.1" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.5.25" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.3-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -1119,7 +1016,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2" + "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.3" }, "funding": [ { @@ -1139,35 +1036,35 @@ "type": "tidelift" } ], - "time": "2025-09-24T06:12:51+00:00" + "time": "2026-05-20T04:37:17+00:00" }, { "name": "sebastian/global-state", - "version": "7.0.2", + "version": "8.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "3be331570a721f9a4b5917f4209773de17f747d7" + "reference": "b164d3274d6537ab462591c5755f76a8f5b1aae9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", - "reference": "3be331570a721f9a4b5917f4209773de17f747d7", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b164d3274d6537ab462591c5755f76a8f5b1aae9", + "reference": "b164d3274d6537ab462591c5755f76a8f5b1aae9", "shasum": "" }, "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0.1" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.5.28" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -1193,41 +1090,53 @@ "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.3" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", + "type": "tidelift" } ], - "time": "2024-07-03T04:57:36+00:00" + "time": "2026-06-01T15:10:33+00:00" }, { "name": "sebastian/lines-of-code", - "version": "3.0.1", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" + "reference": "d543b8ef219dcd8da262cbb958639a96bedba10e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", - "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d543b8ef219dcd8da262cbb958639a96bedba10e", + "reference": "d543b8ef219dcd8da262cbb958639a96bedba10e", "shasum": "" }, "require": { - "nikic/php-parser": "^5.0", - "php": ">=8.2" + "nikic/php-parser": "^5.7.0", + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.5.25" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -1251,42 +1160,54 @@ "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/4.0.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/lines-of-code", + "type": "tidelift" } ], - "time": "2024-07-03T04:58:38+00:00" + "time": "2026-05-19T16:22:07+00:00" }, { "name": "sebastian/object-enumerator", - "version": "6.0.1", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "f5b498e631a74204185071eb41f33f38d64608aa" + "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", - "reference": "f5b498e631a74204185071eb41f33f38d64608aa", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1effe8e9b8e068e9ae228e542d5d11b5d16db894", + "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894", "shasum": "" }, "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -1309,7 +1230,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/7.0.0" }, "funding": [ { @@ -1317,32 +1238,32 @@ "type": "github" } ], - "time": "2024-07-03T05:00:13+00:00" + "time": "2025-02-07T04:57:48+00:00" }, { "name": "sebastian/object-reflector", - "version": "4.0.1", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" + "reference": "4bfa827c969c98be1e527abd576533293c634f6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", - "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/4bfa827c969c98be1e527abd576533293c634f6a", + "reference": "4bfa827c969c98be1e527abd576533293c634f6a", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -1365,7 +1286,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" + "source": "https://github.com/sebastianbergmann/object-reflector/tree/5.0.0" }, "funding": [ { @@ -1373,32 +1294,32 @@ "type": "github" } ], - "time": "2024-07-03T05:01:32+00:00" + "time": "2025-02-07T04:58:17+00:00" }, { "name": "sebastian/recursion-context", - "version": "6.0.3", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc" + "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc", - "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", + "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -1429,7 +1350,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/7.0.1" }, "funding": [ { @@ -1449,32 +1370,32 @@ "type": "tidelift" } ], - "time": "2025-08-13T04:42:22+00:00" + "time": "2025-08-13T04:44:59+00:00" }, { "name": "sebastian/type", - "version": "5.1.3", + "version": "6.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449" + "reference": "82ff822c2edc46724be9f7411d3163021f602773" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449", - "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/82ff822c2edc46724be9f7411d3163021f602773", + "reference": "82ff822c2edc46724be9f7411d3163021f602773", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.5.25" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -1498,7 +1419,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/type/issues", "security": "https://github.com/sebastianbergmann/type/security/policy", - "source": "https://github.com/sebastianbergmann/type/tree/5.1.3" + "source": "https://github.com/sebastianbergmann/type/tree/6.0.4" }, "funding": [ { @@ -1518,29 +1439,29 @@ "type": "tidelift" } ], - "time": "2025-08-09T06:55:48+00:00" + "time": "2026-05-20T06:45:45+00:00" }, { "name": "sebastian/version", - "version": "5.0.2", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" + "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", - "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c", + "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -1564,7 +1485,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/version/issues", "security": "https://github.com/sebastianbergmann/version/security/policy", - "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" + "source": "https://github.com/sebastianbergmann/version/tree/6.0.0" }, "funding": [ { @@ -1572,7 +1493,7 @@ "type": "github" } ], - "time": "2024-10-09T05:16:32+00:00" + "time": "2025-02-07T05:00:38+00:00" }, { "name": "staabm/side-effects-detector", @@ -1628,23 +1549,23 @@ }, { "name": "theseer/tokenizer", - "version": "1.3.1", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" + "reference": "7989e43bf381af0eac72e4f0ca5bcbfa81658be4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", - "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/7989e43bf381af0eac72e4f0ca5bcbfa81658be4", + "reference": "7989e43bf381af0eac72e4f0ca5bcbfa81658be4", "shasum": "" }, "require": { "ext-dom": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" + "php": "^8.1" }, "type": "library", "autoload": { @@ -1666,7 +1587,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.3.1" + "source": "https://github.com/theseer/tokenizer/tree/2.0.1" }, "funding": [ { @@ -1674,7 +1595,7 @@ "type": "github" } ], - "time": "2025-11-17T20:03:58+00:00" + "time": "2025-12-08T11:19:18+00:00" } ], "packages-dev": [], @@ -1684,7 +1605,7 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": ">=8.2", + "php": ">=8.3", "ext-dom": "*", "ext-filter": "*", "ext-json": "*", @@ -1694,7 +1615,7 @@ }, "platform-dev": {}, "platform-overrides": { - "php": "8.2.0" + "php": "8.3.0" }, "plugin-api-version": "2.9.0" } diff --git a/vendor/phpunit/phpunit/phpunit b/vendor/phpunit/phpunit/phpunit index b4b6fa51e..b9d5db589 100755 --- a/vendor/phpunit/phpunit/phpunit +++ b/vendor/phpunit/phpunit/phpunit @@ -24,11 +24,11 @@ if (!version_compare(PHP_VERSION, PHP_VERSION, '=')) { die(1); } -if (version_compare('8.2.0', PHP_VERSION, '>')) { +if (version_compare('8.3.0', PHP_VERSION, '>')) { fwrite( STDERR, sprintf( - 'This version of PHPUnit requires PHP >= 8.2.' . PHP_EOL . + 'This version of PHPUnit requires PHP >= 8.3.' . PHP_EOL . 'You are using PHP %s (%s).' . PHP_EOL, PHP_VERSION, PHP_BINARY diff --git a/vendor/phpunit/phpunit/phpunit.xsd b/vendor/phpunit/phpunit/phpunit.xsd index e452d8fe6..08d881e6a 100644 --- a/vendor/phpunit/phpunit/phpunit.xsd +++ b/vendor/phpunit/phpunit/phpunit.xsd @@ -2,7 +2,7 @@ - This Schema file defines the rules by which the XML configuration file of PHPUnit 11.5 may be structured. + This Schema file defines the rules by which the XML configuration file of PHPUnit 12.5 may be structured. @@ -183,6 +183,7 @@ + @@ -221,10 +222,11 @@ + - + @@ -253,6 +255,7 @@ + @@ -290,14 +293,16 @@ + - + + @@ -309,6 +314,10 @@ + + + + @@ -329,6 +338,10 @@ + + + + diff --git a/vendor/phpunit/phpunit/schema/11.5.xsd b/vendor/phpunit/phpunit/schema/11.5.xsd new file mode 100644 index 000000000..e452d8fe6 --- /dev/null +++ b/vendor/phpunit/phpunit/schema/11.5.xsd @@ -0,0 +1,340 @@ + + + + + This Schema file defines the rules by which the XML configuration file of PHPUnit 11.5 may be structured. + + + + + + Root Element + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The main type specifying the document structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/phpunit/schema/12.0.xsd b/vendor/phpunit/phpunit/schema/12.0.xsd new file mode 100644 index 000000000..c993640f9 --- /dev/null +++ b/vendor/phpunit/phpunit/schema/12.0.xsd @@ -0,0 +1,335 @@ + + + + + This Schema file defines the rules by which the XML configuration file of PHPUnit 12.0 may be structured. + + + + + + Root Element + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The main type specifying the document structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/phpunit/schema/12.1.xsd b/vendor/phpunit/phpunit/schema/12.1.xsd new file mode 100644 index 000000000..51f225d45 --- /dev/null +++ b/vendor/phpunit/phpunit/schema/12.1.xsd @@ -0,0 +1,339 @@ + + + + + This Schema file defines the rules by which the XML configuration file of PHPUnit 12.1 may be structured. + + + + + + Root Element + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The main type specifying the document structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/phpunit/schema/12.2.xsd b/vendor/phpunit/phpunit/schema/12.2.xsd new file mode 100644 index 000000000..9303b6433 --- /dev/null +++ b/vendor/phpunit/phpunit/schema/12.2.xsd @@ -0,0 +1,347 @@ + + + + + This Schema file defines the rules by which the XML configuration file of PHPUnit 12.2 may be structured. + + + + + + Root Element + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The main type specifying the document structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/phpunit/schema/12.3.xsd b/vendor/phpunit/phpunit/schema/12.3.xsd new file mode 100644 index 000000000..73e7c2144 --- /dev/null +++ b/vendor/phpunit/phpunit/schema/12.3.xsd @@ -0,0 +1,348 @@ + + + + + This Schema file defines the rules by which the XML configuration file of PHPUnit 12.3 may be structured. + + + + + + Root Element + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The main type specifying the document structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/phpunit/schema/12.4.xsd b/vendor/phpunit/phpunit/schema/12.4.xsd new file mode 100644 index 000000000..8a7ce6224 --- /dev/null +++ b/vendor/phpunit/phpunit/schema/12.4.xsd @@ -0,0 +1,348 @@ + + + + + This Schema file defines the rules by which the XML configuration file of PHPUnit 12.4 may be structured. + + + + + + Root Element + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The main type specifying the document structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/phpunit/src/Event/Emitter/DispatchingEmitter.php b/vendor/phpunit/phpunit/src/Event/Emitter/DispatchingEmitter.php index f7b1f3a2b..915222b72 100644 --- a/vendor/phpunit/phpunit/src/Event/Emitter/DispatchingEmitter.php +++ b/vendor/phpunit/phpunit/src/Event/Emitter/DispatchingEmitter.php @@ -11,6 +11,7 @@ namespace PHPUnit\Event; use function assert; use function memory_reset_peak_usage; +use function preg_match; use PHPUnit\Event\Code\ClassMethod; use PHPUnit\Event\Code\ComparisonFailure; use PHPUnit\Event\Code\IssueTrigger\IssueTrigger; @@ -27,8 +28,11 @@ use PHPUnit\Event\TestSuite\Skipped as TestSuiteSkipped; use PHPUnit\Event\TestSuite\Sorted as TestSuiteSorted; use PHPUnit\Event\TestSuite\Started as TestSuiteStarted; use PHPUnit\Event\TestSuite\TestSuite; +use PHPUnit\Framework\TestCase; +use PHPUnit\Metadata\IgnorePhpunitWarnings; +use PHPUnit\Metadata\Parser\Registry; use PHPUnit\TextUI\Configuration\Configuration; -use PHPUnit\Util\Exporter; +use SebastianBergmann\Comparator\Comparator; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit @@ -93,6 +97,8 @@ final class DispatchingEmitter implements Emitter } /** + * @param non-empty-string $filename + * * @throws InvalidArgumentException * @throws UnknownEventTypeException */ @@ -107,6 +113,10 @@ final class DispatchingEmitter implements Emitter } /** + * @param non-empty-string $filename + * @param non-empty-string $name + * @param non-empty-string $version + * * @throws InvalidArgumentException * @throws UnknownEventTypeException */ @@ -263,14 +273,21 @@ final class DispatchingEmitter implements Emitter ); } - public function testRunnerStartedChildProcess(): void + public function childProcessStarted(): void { $this->dispatcher->dispatch( new TestRunner\ChildProcessStarted($this->telemetryInfo()), ); } - public function testRunnerFinishedChildProcess(string $stdout, string $stderr): void + public function childProcessErrored(): void + { + $this->dispatcher->dispatch( + new TestRunner\ChildProcessErrored($this->telemetryInfo()), + ); + } + + public function childProcessFinished(string $stdout, string $stderr): void { $this->dispatcher->dispatch( new TestRunner\ChildProcessFinished( @@ -328,18 +345,34 @@ final class DispatchingEmitter implements Emitter * @throws InvalidArgumentException * @throws UnknownEventTypeException */ - public function testPreparationFailed(Code\Test $test): void + public function testPreparationErrored(Code\Test $test, Throwable $throwable): void { $this->dispatcher->dispatch( - new Test\PreparationFailed( + new Test\PreparationErrored( $this->telemetryInfo(), $test, + $throwable, ), ); } /** - * @param class-string $testClassName + * @throws InvalidArgumentException + * @throws UnknownEventTypeException + */ + public function testPreparationFailed(Code\Test $test, Throwable $throwable): void + { + $this->dispatcher->dispatch( + new Test\PreparationFailed( + $this->telemetryInfo(), + $test, + $throwable, + ), + ); + } + + /** + * @param class-string $testClassName * * @throws InvalidArgumentException * @throws UnknownEventTypeException @@ -356,7 +389,7 @@ final class DispatchingEmitter implements Emitter } /** - * @param class-string $testClassName + * @param class-string $testClassName * * @throws InvalidArgumentException * @throws UnknownEventTypeException @@ -374,7 +407,25 @@ final class DispatchingEmitter implements Emitter } /** - * @param class-string $testClassName + * @param class-string $testClassName + * + * @throws InvalidArgumentException + * @throws UnknownEventTypeException + */ + public function beforeFirstTestMethodFailed(string $testClassName, ClassMethod $calledMethod, Throwable $throwable): void + { + $this->dispatcher->dispatch( + new Test\BeforeFirstTestMethodFailed( + $this->telemetryInfo(), + $testClassName, + $calledMethod, + $throwable, + ), + ); + } + + /** + * @param class-string $testClassName * * @throws InvalidArgumentException * @throws UnknownEventTypeException @@ -391,34 +442,30 @@ final class DispatchingEmitter implements Emitter } /** - * @param class-string $testClassName - * * @throws InvalidArgumentException * @throws UnknownEventTypeException */ - public function beforeTestMethodCalled(string $testClassName, ClassMethod $calledMethod): void + public function beforeTestMethodCalled(TestMethod $test, ClassMethod $calledMethod): void { $this->dispatcher->dispatch( new Test\BeforeTestMethodCalled( $this->telemetryInfo(), - $testClassName, + $test, $calledMethod, ), ); } /** - * @param class-string $testClassName - * * @throws InvalidArgumentException * @throws UnknownEventTypeException */ - public function beforeTestMethodErrored(string $testClassName, ClassMethod $calledMethod, Throwable $throwable): void + public function beforeTestMethodErrored(TestMethod $test, ClassMethod $calledMethod, Throwable $throwable): void { $this->dispatcher->dispatch( new Test\BeforeTestMethodErrored( $this->telemetryInfo(), - $testClassName, + $test, $calledMethod, $throwable, ), @@ -426,51 +473,61 @@ final class DispatchingEmitter implements Emitter } /** - * @param class-string $testClassName - * * @throws InvalidArgumentException * @throws UnknownEventTypeException */ - public function beforeTestMethodFinished(string $testClassName, ClassMethod ...$calledMethods): void + public function beforeTestMethodFailed(TestMethod $test, ClassMethod $calledMethod, Throwable $throwable): void + { + $this->dispatcher->dispatch( + new Test\BeforeTestMethodFailed( + $this->telemetryInfo(), + $test, + $calledMethod, + $throwable, + ), + ); + } + + /** + * @throws InvalidArgumentException + * @throws UnknownEventTypeException + */ + public function beforeTestMethodFinished(TestMethod $test, ClassMethod ...$calledMethods): void { $this->dispatcher->dispatch( new Test\BeforeTestMethodFinished( $this->telemetryInfo(), - $testClassName, + $test, ...$calledMethods, ), ); } /** - * @param class-string $testClassName - * * @throws InvalidArgumentException * @throws UnknownEventTypeException */ - public function preConditionCalled(string $testClassName, ClassMethod $calledMethod): void + public function preConditionCalled(TestMethod $test, ClassMethod $calledMethod): void { $this->dispatcher->dispatch( new Test\PreConditionCalled( $this->telemetryInfo(), - $testClassName, + $test, $calledMethod, ), ); } /** - * @param class-string $testClassName - * * @throws InvalidArgumentException * @throws UnknownEventTypeException */ - public function preConditionErrored(string $testClassName, ClassMethod $calledMethod, Throwable $throwable): void + public function preConditionErrored(TestMethod $test, ClassMethod $calledMethod, Throwable $throwable): void { $this->dispatcher->dispatch( new Test\PreConditionErrored( $this->telemetryInfo(), - $testClassName, + $test, $calledMethod, $throwable, ), @@ -478,17 +535,31 @@ final class DispatchingEmitter implements Emitter } /** - * @param class-string $testClassName - * * @throws InvalidArgumentException * @throws UnknownEventTypeException */ - public function preConditionFinished(string $testClassName, ClassMethod ...$calledMethods): void + public function preConditionFailed(TestMethod $test, ClassMethod $calledMethod, Throwable $throwable): void + { + $this->dispatcher->dispatch( + new Test\PreConditionFailed( + $this->telemetryInfo(), + $test, + $calledMethod, + $throwable, + ), + ); + } + + /** + * @throws InvalidArgumentException + * @throws UnknownEventTypeException + */ + public function preConditionFinished(TestMethod $test, ClassMethod ...$calledMethods): void { $this->dispatcher->dispatch( new Test\PreConditionFinished( $this->telemetryInfo(), - $testClassName, + $test, ...$calledMethods, ), ); @@ -511,7 +582,7 @@ final class DispatchingEmitter implements Emitter } /** - * @param class-string $className + * @param class-string $className * * @throws InvalidArgumentException * @throws UnknownEventTypeException @@ -526,6 +597,17 @@ final class DispatchingEmitter implements Emitter ); } + public function testUsedCustomMethodInvocation(TestMethod $test, ClassMethod $customTestMethodInvocation): void + { + $this->dispatcher->dispatch( + new Test\CustomTestMethodInvocationUsed( + $this->telemetryInfo(), + $test, + $customTestMethodInvocation, + ), + ); + } + /** * @param class-string $className * @@ -558,62 +640,6 @@ final class DispatchingEmitter implements Emitter ); } - /** - * @param trait-string $traitName - * - * @throws InvalidArgumentException - * @throws UnknownEventTypeException - */ - public function testCreatedMockObjectForTrait(string $traitName): void - { - $this->dispatcher->dispatch( - new Test\MockObjectForTraitCreated( - $this->telemetryInfo(), - $traitName, - ), - ); - } - - /** - * @param class-string $className - * - * @throws InvalidArgumentException - * @throws UnknownEventTypeException - */ - public function testCreatedMockObjectForAbstractClass(string $className): void - { - $this->dispatcher->dispatch( - new Test\MockObjectForAbstractClassCreated( - $this->telemetryInfo(), - $className, - ), - ); - } - - /** - * @param class-string $originalClassName - * @param class-string $mockClassName - * @param list $methods - * @param list $options - * - * @throws InvalidArgumentException - * @throws UnknownEventTypeException - */ - public function testCreatedMockObjectFromWsdl(string $wsdlFile, string $originalClassName, string $mockClassName, array $methods, bool $callOriginalConstructor, array $options): void - { - $this->dispatcher->dispatch( - new Test\MockObjectFromWsdlCreated( - $this->telemetryInfo(), - $wsdlFile, - $originalClassName, - $mockClassName, - $methods, - $callOriginalConstructor, - $options, - ), - ); - } - /** * @param class-string $className * @@ -631,24 +657,6 @@ final class DispatchingEmitter implements Emitter ); } - /** - * @param class-string $className - * @param list $constructorArguments - * - * @throws InvalidArgumentException - * @throws UnknownEventTypeException - */ - public function testCreatedTestProxy(string $className, array $constructorArguments): void - { - $this->dispatcher->dispatch( - new Test\TestProxyCreated( - $this->telemetryInfo(), - $className, - Exporter::shortenedRecursiveExport($constructorArguments), - ), - ); - } - /** * @param class-string $className * @@ -801,6 +809,24 @@ final class DispatchingEmitter implements Emitter ); } + /** + * @param non-empty-string $message + * + * @throws InvalidArgumentException + * @throws NoTestCaseObjectOnCallStackException + * @throws UnknownEventTypeException + */ + public function testTriggeredPhpunitNotice(Code\Test $test, string $message): void + { + $this->dispatcher->dispatch( + new Test\PhpunitNoticeTriggered( + $this->telemetryInfo(), + $test, + $message, + ), + ); + } + /** * @param non-empty-string $message * @param non-empty-string $file @@ -992,11 +1018,30 @@ final class DispatchingEmitter implements Emitter */ public function testTriggeredPhpunitWarning(Code\Test $test, string $message): void { + $ignoredByTest = false; + + if ($test->isTestMethod()) { + assert($test instanceof TestMethod); + + $metadata = Registry::parser()->forMethod($test->className(), $test->methodName())->isIgnorePhpunitWarnings()->asArray(); + + if (isset($metadata[0])) { + assert($metadata[0] instanceof IgnorePhpunitWarnings); + + $messagePattern = $metadata[0]->messagePattern(); + + if ($messagePattern === null || (bool) preg_match('{' . $messagePattern . '}', $message)) { + $ignoredByTest = true; + } + } + } + $this->dispatcher->dispatch( new Test\PhpunitWarningTriggered( $this->telemetryInfo(), $test, $message, + $ignoredByTest, ), ); } @@ -1018,6 +1063,25 @@ final class DispatchingEmitter implements Emitter } /** + * @param non-empty-string $additionalInformation + * + * @throws InvalidArgumentException + * @throws UnknownEventTypeException + */ + public function testProvidedAdditionalInformation(TestMethod $test, string $additionalInformation): void + { + $this->dispatcher->dispatch( + new Test\AdditionalInformationProvided( + $this->telemetryInfo(), + $test, + $additionalInformation, + ), + ); + } + + /** + * @param non-negative-int $numberOfAssertionsPerformed + * * @throws InvalidArgumentException * @throws UnknownEventTypeException */ @@ -1033,34 +1097,30 @@ final class DispatchingEmitter implements Emitter } /** - * @param class-string $testClassName - * * @throws InvalidArgumentException * @throws UnknownEventTypeException */ - public function postConditionCalled(string $testClassName, ClassMethod $calledMethod): void + public function postConditionCalled(TestMethod $test, ClassMethod $calledMethod): void { $this->dispatcher->dispatch( new Test\PostConditionCalled( $this->telemetryInfo(), - $testClassName, + $test, $calledMethod, ), ); } /** - * @param class-string $testClassName - * * @throws InvalidArgumentException * @throws UnknownEventTypeException */ - public function postConditionErrored(string $testClassName, ClassMethod $calledMethod, Throwable $throwable): void + public function postConditionErrored(TestMethod $test, ClassMethod $calledMethod, Throwable $throwable): void { $this->dispatcher->dispatch( new Test\PostConditionErrored( $this->telemetryInfo(), - $testClassName, + $test, $calledMethod, $throwable, ), @@ -1068,51 +1128,61 @@ final class DispatchingEmitter implements Emitter } /** - * @param class-string $testClassName - * * @throws InvalidArgumentException * @throws UnknownEventTypeException */ - public function postConditionFinished(string $testClassName, ClassMethod ...$calledMethods): void + public function postConditionFailed(TestMethod $test, ClassMethod $calledMethod, Throwable $throwable): void + { + $this->dispatcher->dispatch( + new Test\PostConditionFailed( + $this->telemetryInfo(), + $test, + $calledMethod, + $throwable, + ), + ); + } + + /** + * @throws InvalidArgumentException + * @throws UnknownEventTypeException + */ + public function postConditionFinished(TestMethod $test, ClassMethod ...$calledMethods): void { $this->dispatcher->dispatch( new Test\PostConditionFinished( $this->telemetryInfo(), - $testClassName, + $test, ...$calledMethods, ), ); } /** - * @param class-string $testClassName - * * @throws InvalidArgumentException * @throws UnknownEventTypeException */ - public function afterTestMethodCalled(string $testClassName, ClassMethod $calledMethod): void + public function afterTestMethodCalled(TestMethod $test, ClassMethod $calledMethod): void { $this->dispatcher->dispatch( new Test\AfterTestMethodCalled( $this->telemetryInfo(), - $testClassName, + $test, $calledMethod, ), ); } /** - * @param class-string $testClassName - * * @throws InvalidArgumentException * @throws UnknownEventTypeException */ - public function afterTestMethodErrored(string $testClassName, ClassMethod $calledMethod, Throwable $throwable): void + public function afterTestMethodErrored(TestMethod $test, ClassMethod $calledMethod, Throwable $throwable): void { $this->dispatcher->dispatch( new Test\AfterTestMethodErrored( $this->telemetryInfo(), - $testClassName, + $test, $calledMethod, $throwable, ), @@ -1120,24 +1190,38 @@ final class DispatchingEmitter implements Emitter } /** - * @param class-string $testClassName - * * @throws InvalidArgumentException * @throws UnknownEventTypeException */ - public function afterTestMethodFinished(string $testClassName, ClassMethod ...$calledMethods): void + public function afterTestMethodFailed(TestMethod $test, ClassMethod $calledMethod, Throwable $throwable): void + { + $this->dispatcher->dispatch( + new Test\AfterTestMethodFailed( + $this->telemetryInfo(), + $test, + $calledMethod, + $throwable, + ), + ); + } + + /** + * @throws InvalidArgumentException + * @throws UnknownEventTypeException + */ + public function afterTestMethodFinished(TestMethod $test, ClassMethod ...$calledMethods): void { $this->dispatcher->dispatch( new Test\AfterTestMethodFinished( $this->telemetryInfo(), - $testClassName, + $test, ...$calledMethods, ), ); } /** - * @param class-string $testClassName + * @param class-string $testClassName * * @throws InvalidArgumentException * @throws UnknownEventTypeException @@ -1154,7 +1238,7 @@ final class DispatchingEmitter implements Emitter } /** - * @param class-string $testClassName + * @param class-string $testClassName * * @throws InvalidArgumentException * @throws UnknownEventTypeException @@ -1172,7 +1256,25 @@ final class DispatchingEmitter implements Emitter } /** - * @param class-string $testClassName + * @param class-string $testClassName + * + * @throws InvalidArgumentException + * @throws UnknownEventTypeException + */ + public function afterLastTestMethodFailed(string $testClassName, ClassMethod $calledMethod, Throwable $throwable): void + { + $this->dispatcher->dispatch( + new Test\AfterLastTestMethodFailed( + $this->telemetryInfo(), + $testClassName, + $calledMethod, + $throwable, + ), + ); + } + + /** + * @param class-string $testClassName * * @throws InvalidArgumentException * @throws UnknownEventTypeException @@ -1206,6 +1308,39 @@ final class DispatchingEmitter implements Emitter * @throws InvalidArgumentException * @throws UnknownEventTypeException */ + public function testRunnerStartedStaticAnalysisForCodeCoverage(): void + { + $this->dispatcher->dispatch( + new TestRunner\StaticAnalysisForCodeCoverageStarted( + $this->telemetryInfo(), + ), + ); + } + + /** + * @param non-negative-int $cacheHits + * @param non-negative-int $cacheMisses + * + * @throws InvalidArgumentException + * @throws UnknownEventTypeException + */ + public function testRunnerFinishedStaticAnalysisForCodeCoverage(int $cacheHits, int $cacheMisses): void + { + $this->dispatcher->dispatch( + new TestRunner\StaticAnalysisForCodeCoverageFinished( + $this->telemetryInfo(), + $cacheHits, + $cacheMisses, + ), + ); + } + + /** + * @param non-empty-string $message + * + * @throws InvalidArgumentException + * @throws UnknownEventTypeException + */ public function testRunnerTriggeredPhpunitDeprecation(string $message): void { try { @@ -1224,6 +1359,24 @@ final class DispatchingEmitter implements Emitter } /** + * @param non-empty-string $message + * + * @throws InvalidArgumentException + * @throws UnknownEventTypeException + */ + public function testRunnerTriggeredPhpunitNotice(string $message): void + { + $this->dispatcher->dispatch( + new TestRunner\NoticeTriggered( + $this->telemetryInfo(), + $message, + ), + ); + } + + /** + * @param non-empty-string $message + * * @throws InvalidArgumentException * @throws UnknownEventTypeException */ diff --git a/vendor/phpunit/phpunit/src/Event/Emitter/Emitter.php b/vendor/phpunit/phpunit/src/Event/Emitter/Emitter.php index b6d899d47..c5689984a 100644 --- a/vendor/phpunit/phpunit/src/Event/Emitter/Emitter.php +++ b/vendor/phpunit/phpunit/src/Event/Emitter/Emitter.php @@ -12,9 +12,12 @@ namespace PHPUnit\Event; use PHPUnit\Event\Code\ClassMethod; use PHPUnit\Event\Code\ComparisonFailure; use PHPUnit\Event\Code\IssueTrigger\IssueTrigger; +use PHPUnit\Event\Code\TestMethod; use PHPUnit\Event\Code\Throwable; use PHPUnit\Event\TestSuite\TestSuite; +use PHPUnit\Framework\TestCase; use PHPUnit\TextUI\Configuration\Configuration; +use SebastianBergmann\Comparator\Comparator; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit @@ -29,8 +32,16 @@ interface Emitter public function testRunnerConfigured(Configuration $configuration): void; + /** + * @param non-empty-string $filename + */ public function testRunnerBootstrapFinished(string $filename): void; + /** + * @param non-empty-string $filename + * @param non-empty-string $name + * @param non-empty-string $version + */ public function testRunnerLoadedExtensionFromPhar(string $filename, string $name, string $version): void; /** @@ -57,66 +68,64 @@ interface Emitter public function testRunnerTriggeredGarbageCollection(): void; + /** + * @param non-empty-string $message + */ public function testSuiteSkipped(TestSuite $testSuite, string $message): void; public function testSuiteStarted(TestSuite $testSuite): void; public function testPreparationStarted(Code\Test $test): void; - public function testPreparationFailed(Code\Test $test): void; + public function testPreparationErrored(Code\Test $test, Throwable $throwable): void; + + public function testPreparationFailed(Code\Test $test, Throwable $throwable): void; /** - * @param class-string $testClassName + * @param class-string $testClassName */ public function beforeFirstTestMethodCalled(string $testClassName, ClassMethod $calledMethod): void; /** - * @param class-string $testClassName + * @param class-string $testClassName */ public function beforeFirstTestMethodErrored(string $testClassName, ClassMethod $calledMethod, Throwable $throwable): void; /** - * @param class-string $testClassName + * @param class-string $testClassName + */ + public function beforeFirstTestMethodFailed(string $testClassName, ClassMethod $calledMethod, Throwable $throwable): void; + + /** + * @param class-string $testClassName */ public function beforeFirstTestMethodFinished(string $testClassName, ClassMethod ...$calledMethods): void; - /** - * @param class-string $testClassName - */ - public function beforeTestMethodCalled(string $testClassName, ClassMethod $calledMethod): void; + public function beforeTestMethodCalled(TestMethod $test, ClassMethod $calledMethod): void; - /** - * @param class-string $testClassName - */ - public function beforeTestMethodErrored(string $testClassName, ClassMethod $calledMethod, Throwable $throwable): void; + public function beforeTestMethodErrored(TestMethod $test, ClassMethod $calledMethod, Throwable $throwable): void; - /** - * @param class-string $testClassName - */ - public function beforeTestMethodFinished(string $testClassName, ClassMethod ...$calledMethods): void; + public function beforeTestMethodFailed(TestMethod $test, ClassMethod $calledMethod, Throwable $throwable): void; - /** - * @param class-string $testClassName - */ - public function preConditionCalled(string $testClassName, ClassMethod $calledMethod): void; + public function beforeTestMethodFinished(TestMethod $test, ClassMethod ...$calledMethods): void; - /** - * @param class-string $testClassName - */ - public function preConditionErrored(string $testClassName, ClassMethod $calledMethod, Throwable $throwable): void; + public function preConditionCalled(TestMethod $test, ClassMethod $calledMethod): void; - /** - * @param class-string $testClassName - */ - public function preConditionFinished(string $testClassName, ClassMethod ...$calledMethods): void; + public function preConditionErrored(TestMethod $test, ClassMethod $calledMethod, Throwable $throwable): void; + + public function preConditionFailed(TestMethod $test, ClassMethod $calledMethod, Throwable $throwable): void; + + public function preConditionFinished(TestMethod $test, ClassMethod ...$calledMethods): void; public function testPrepared(Code\Test $test): void; /** - * @param class-string $className + * @param class-string $className */ public function testRegisteredComparator(string $className): void; + public function testUsedCustomMethodInvocation(TestMethod $test, ClassMethod $customTestMethodInvocation): void; + /** * @param class-string $className */ @@ -127,35 +136,11 @@ interface Emitter */ public function testCreatedMockObjectForIntersectionOfInterfaces(array $interfaces): void; - /** - * @param trait-string $traitName - */ - public function testCreatedMockObjectForTrait(string $traitName): void; - - /** - * @param class-string $className - */ - public function testCreatedMockObjectForAbstractClass(string $className): void; - - /** - * @param class-string $originalClassName - * @param class-string $mockClassName - * @param list $methods - * @param list $options - */ - public function testCreatedMockObjectFromWsdl(string $wsdlFile, string $originalClassName, string $mockClassName, array $methods, bool $callOriginalConstructor, array $options): void; - /** * @param class-string $className */ public function testCreatedPartialMockObject(string $className, string ...$methodNames): void; - /** - * @param class-string $className - * @param list $constructorArguments - */ - public function testCreatedTestProxy(string $className, array $constructorArguments): void; - /** * @param class-string $className */ @@ -189,6 +174,11 @@ interface Emitter */ public function testTriggeredPhpunitDeprecation(?Code\Test $test, string $message): void; + /** + * @param non-empty-string $message + */ + public function testTriggeredPhpunitNotice(Code\Test $test, string $message): void; + /** * @param non-empty-string $message * @param non-empty-string $file @@ -254,61 +244,81 @@ interface Emitter */ public function testPrintedUnexpectedOutput(string $output): void; + /** + * @param non-empty-string $additionalInformation + */ + public function testProvidedAdditionalInformation(TestMethod $test, string $additionalInformation): void; + + /** + * @param non-negative-int $numberOfAssertionsPerformed + */ public function testFinished(Code\Test $test, int $numberOfAssertionsPerformed): void; - /** - * @param class-string $testClassName - */ - public function postConditionCalled(string $testClassName, ClassMethod $calledMethod): void; + public function postConditionCalled(TestMethod $test, ClassMethod $calledMethod): void; + + public function postConditionErrored(TestMethod $test, ClassMethod $calledMethod, Throwable $throwable): void; + + public function postConditionFailed(TestMethod $test, ClassMethod $calledMethod, Throwable $throwable): void; + + public function postConditionFinished(TestMethod $test, ClassMethod ...$calledMethods): void; + + public function afterTestMethodCalled(TestMethod $test, ClassMethod $calledMethod): void; + + public function afterTestMethodErrored(TestMethod $test, ClassMethod $calledMethod, Throwable $throwable): void; + + public function afterTestMethodFailed(TestMethod $test, ClassMethod $calledMethod, Throwable $throwable): void; + + public function afterTestMethodFinished(TestMethod $test, ClassMethod ...$calledMethods): void; /** - * @param class-string $testClassName - */ - public function postConditionErrored(string $testClassName, ClassMethod $calledMethod, Throwable $throwable): void; - - /** - * @param class-string $testClassName - */ - public function postConditionFinished(string $testClassName, ClassMethod ...$calledMethods): void; - - /** - * @param class-string $testClassName - */ - public function afterTestMethodCalled(string $testClassName, ClassMethod $calledMethod): void; - - /** - * @param class-string $testClassName - */ - public function afterTestMethodErrored(string $testClassName, ClassMethod $calledMethod, Throwable $throwable): void; - - /** - * @param class-string $testClassName - */ - public function afterTestMethodFinished(string $testClassName, ClassMethod ...$calledMethods): void; - - /** - * @param class-string $testClassName + * @param class-string $testClassName */ public function afterLastTestMethodCalled(string $testClassName, ClassMethod $calledMethod): void; /** - * @param class-string $testClassName + * @param class-string $testClassName */ public function afterLastTestMethodErrored(string $testClassName, ClassMethod $calledMethod, Throwable $throwable): void; /** - * @param class-string $testClassName + * @param class-string $testClassName + */ + public function afterLastTestMethodFailed(string $testClassName, ClassMethod $calledMethod, Throwable $throwable): void; + + /** + * @param class-string $testClassName */ public function afterLastTestMethodFinished(string $testClassName, ClassMethod ...$calledMethods): void; public function testSuiteFinished(TestSuite $testSuite): void; - public function testRunnerStartedChildProcess(): void; + public function childProcessStarted(): void; - public function testRunnerFinishedChildProcess(string $stdout, string $stderr): void; + public function childProcessErrored(): void; + public function childProcessFinished(string $stdout, string $stderr): void; + + public function testRunnerStartedStaticAnalysisForCodeCoverage(): void; + + /** + * @param non-negative-int $cacheHits + * @param non-negative-int $cacheMisses + */ + public function testRunnerFinishedStaticAnalysisForCodeCoverage(int $cacheHits, int $cacheMisses): void; + + /** + * @param non-empty-string $message + */ public function testRunnerTriggeredPhpunitDeprecation(string $message): void; + /** + * @param non-empty-string $message + */ + public function testRunnerTriggeredPhpunitNotice(string $message): void; + + /** + * @param non-empty-string $message + */ public function testRunnerTriggeredPhpunitWarning(string $message): void; public function testRunnerEnabledGarbageCollection(): void; diff --git a/vendor/phpunit/phpunit/src/Event/Events/Application/Finished.php b/vendor/phpunit/phpunit/src/Event/Events/Application/Finished.php index 987845691..e1d3914ff 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Application/Finished.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Application/Finished.php @@ -23,6 +23,9 @@ final readonly class Finished implements Event private Telemetry\Info $telemetryInfo; private int $shellExitCode; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, int $shellExitCode) { $this->telemetryInfo = $telemetryInfo; @@ -39,6 +42,9 @@ final readonly class Finished implements Event return $this->shellExitCode; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Application/Started.php b/vendor/phpunit/phpunit/src/Event/Events/Application/Started.php index 068eb34f6..1b0e141c8 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Application/Started.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Application/Started.php @@ -24,6 +24,9 @@ final readonly class Started implements Event private Telemetry\Info $telemetryInfo; private Runtime $runtime; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, Runtime $runtime) { $this->telemetryInfo = $telemetryInfo; @@ -40,6 +43,9 @@ final readonly class Started implements Event return $this->runtime; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Event.php b/vendor/phpunit/phpunit/src/Event/Events/Event.php index 8aa014b0a..443ca7294 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Event.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Event.php @@ -16,5 +16,8 @@ interface Event { public function telemetryInfo(): Telemetry\Info; + /** + * @return non-empty-string + */ public function asString(): string; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/EventCollectionIterator.php b/vendor/phpunit/phpunit/src/Event/Events/EventCollectionIterator.php index e411c1252..1467d7c67 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/EventCollectionIterator.php +++ b/vendor/phpunit/phpunit/src/Event/Events/EventCollectionIterator.php @@ -29,6 +29,9 @@ final class EventCollectionIterator implements Iterator */ private int $position = 0; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(EventCollection $events) { $this->events = $events->asArray(); diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/AdditionalInformationProvided.php b/vendor/phpunit/phpunit/src/Event/Events/Test/AdditionalInformationProvided.php new file mode 100644 index 000000000..d00df3a86 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/AdditionalInformationProvided.php @@ -0,0 +1,74 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\Test; + +use const PHP_EOL; +use function sprintf; +use PHPUnit\Event\Code\TestMethod; +use PHPUnit\Event\Event; +use PHPUnit\Event\Telemetry; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class AdditionalInformationProvided implements Event +{ + private Telemetry\Info $telemetryInfo; + private TestMethod $test; + + /** + * @var non-empty-string + */ + private string $additionalInformation; + + /** + * @param non-empty-string $additionalInformation + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ + public function __construct(Telemetry\Info $telemetryInfo, TestMethod $test, string $additionalInformation) + { + $this->telemetryInfo = $telemetryInfo; + $this->test = $test; + $this->additionalInformation = $additionalInformation; + } + + public function telemetryInfo(): Telemetry\Info + { + return $this->telemetryInfo; + } + + public function test(): TestMethod + { + return $this->test; + } + + /** + * @return non-empty-string + */ + public function additionalInformation(): string + { + return $this->additionalInformation; + } + + /** + * @return non-empty-string + */ + public function asString(): string + { + return sprintf( + 'Test Provided Additional Information%s%s', + PHP_EOL, + $this->additionalInformation, + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForAbstractClassCreatedSubscriber.php b/vendor/phpunit/phpunit/src/Event/Events/Test/AdditionalInformationProvidedSubscriber.php similarity index 74% rename from vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForAbstractClassCreatedSubscriber.php rename to vendor/phpunit/phpunit/src/Event/Events/Test/AdditionalInformationProvidedSubscriber.php index c335d1917..7d175c594 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForAbstractClassCreatedSubscriber.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/AdditionalInformationProvidedSubscriber.php @@ -14,7 +14,7 @@ use PHPUnit\Event\Subscriber; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ -interface MockObjectForAbstractClassCreatedSubscriber extends Subscriber +interface AdditionalInformationProvidedSubscriber extends Subscriber { - public function notify(MockObjectForAbstractClassCreated $event): void; + public function notify(AdditionalInformationProvided $event): void; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/ComparatorRegistered.php b/vendor/phpunit/phpunit/src/Event/Events/Test/ComparatorRegistered.php index ffa2ab43a..c7bc8ef59 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/ComparatorRegistered.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/ComparatorRegistered.php @@ -12,6 +12,7 @@ namespace PHPUnit\Event\Test; use function sprintf; use PHPUnit\Event\Event; use PHPUnit\Event\Telemetry; +use SebastianBergmann\Comparator\Comparator; /** * @immutable @@ -23,12 +24,14 @@ final readonly class ComparatorRegistered implements Event private Telemetry\Info $telemetryInfo; /** - * @var class-string + * @var class-string */ private string $className; /** - * @param class-string $className + * @param class-string $className + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, string $className) { @@ -42,13 +45,16 @@ final readonly class ComparatorRegistered implements Event } /** - * @return class-string + * @return class-string */ public function className(): string { return $this->className; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/CustomTestMethodInvocationUsed.php b/vendor/phpunit/phpunit/src/Event/Events/Test/CustomTestMethodInvocationUsed.php new file mode 100644 index 000000000..78f6e8ab5 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/CustomTestMethodInvocationUsed.php @@ -0,0 +1,64 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\Test; + +use function sprintf; +use PHPUnit\Event\Code; +use PHPUnit\Event\Event; +use PHPUnit\Event\Telemetry; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class CustomTestMethodInvocationUsed implements Event +{ + private Telemetry\Info $telemetryInfo; + private Code\TestMethod $test; + private Code\ClassMethod $customTestMethodInvocation; + + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod $customTestMethodInvocation) + { + $this->telemetryInfo = $telemetryInfo; + $this->test = $test; + $this->customTestMethodInvocation = $customTestMethodInvocation; + } + + public function telemetryInfo(): Telemetry\Info + { + return $this->telemetryInfo; + } + + public function test(): Code\TestMethod + { + return $this->test; + } + + public function customTestMethodInvocation(): Code\ClassMethod + { + return $this->customTestMethodInvocation; + } + + /** + * @return non-empty-string + */ + public function asString(): string + { + return sprintf( + 'Custom Test Method Invocation Used (%s::%s)', + $this->customTestMethodInvocation->className(), + $this->customTestMethodInvocation->methodName(), + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/CustomTestMethodInvocationUsedSubscriber.php b/vendor/phpunit/phpunit/src/Event/Events/Test/CustomTestMethodInvocationUsedSubscriber.php new file mode 100644 index 000000000..17c3e8da9 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/CustomTestMethodInvocationUsedSubscriber.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\Test; + +use PHPUnit\Event\Subscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +interface CustomTestMethodInvocationUsedSubscriber extends Subscriber +{ + public function notify(CustomTestMethodInvocationUsed $event): void; +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodCalled.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodCalled.php index 51f1ef0ae..d6e867ce7 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodCalled.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodCalled.php @@ -13,6 +13,7 @@ use function sprintf; use PHPUnit\Event\Code; use PHPUnit\Event\Event; use PHPUnit\Event\Telemetry; +use PHPUnit\Framework\TestCase; /** * @immutable @@ -24,13 +25,15 @@ final readonly class AfterLastTestMethodCalled implements Event private Telemetry\Info $telemetryInfo; /** - * @var class-string + * @var class-string */ private string $testClassName; private Code\ClassMethod $calledMethod; /** - * @param class-string $testClassName + * @param class-string $testClassName + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod $calledMethod) { @@ -45,7 +48,7 @@ final readonly class AfterLastTestMethodCalled implements Event } /** - * @return class-string + * @return class-string */ public function testClassName(): string { @@ -57,6 +60,9 @@ final readonly class AfterLastTestMethodCalled implements Event return $this->calledMethod; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodErrored.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodErrored.php index 71b0352b9..44c544974 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodErrored.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodErrored.php @@ -15,6 +15,7 @@ use PHPUnit\Event\Code; use PHPUnit\Event\Code\Throwable; use PHPUnit\Event\Event; use PHPUnit\Event\Telemetry; +use PHPUnit\Framework\TestCase; /** * @immutable @@ -26,14 +27,16 @@ final readonly class AfterLastTestMethodErrored implements Event private Telemetry\Info $telemetryInfo; /** - * @var class-string + * @var class-string */ private string $testClassName; private Code\ClassMethod $calledMethod; private Throwable $throwable; /** - * @param class-string $testClassName + * @param class-string $testClassName + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod $calledMethod, Throwable $throwable) { @@ -49,7 +52,7 @@ final readonly class AfterLastTestMethodErrored implements Event } /** - * @return class-string + * @return class-string */ public function testClassName(): string { @@ -66,11 +69,14 @@ final readonly class AfterLastTestMethodErrored implements Event return $this->throwable; } + /** + * @return non-empty-string + */ public function asString(): string { $message = $this->throwable->message(); - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFailed.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFailed.php new file mode 100644 index 000000000..8dd29f44e --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFailed.php @@ -0,0 +1,90 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\Test; + +use const PHP_EOL; +use function sprintf; +use PHPUnit\Event\Code; +use PHPUnit\Event\Code\Throwable; +use PHPUnit\Event\Event; +use PHPUnit\Event\Telemetry; +use PHPUnit\Framework\TestCase; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class AfterLastTestMethodFailed implements Event +{ + private Telemetry\Info $telemetryInfo; + + /** + * @var class-string + */ + private string $testClassName; + private Code\ClassMethod $calledMethod; + private Throwable $throwable; + + /** + * @param class-string $testClassName + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ + public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod $calledMethod, Throwable $throwable) + { + $this->telemetryInfo = $telemetryInfo; + $this->testClassName = $testClassName; + $this->calledMethod = $calledMethod; + $this->throwable = $throwable; + } + + public function telemetryInfo(): Telemetry\Info + { + return $this->telemetryInfo; + } + + /** + * @return class-string + */ + public function testClassName(): string + { + return $this->testClassName; + } + + public function calledMethod(): Code\ClassMethod + { + return $this->calledMethod; + } + + public function throwable(): Throwable + { + return $this->throwable; + } + + /** + * @return non-empty-string + */ + public function asString(): string + { + $message = $this->throwable->message(); + + if ($message !== '') { + $message = PHP_EOL . $message; + } + + return sprintf( + 'After Last Test Method Failed (%s::%s)%s', + $this->calledMethod->className(), + $this->calledMethod->methodName(), + $message, + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForTraitCreatedSubscriber.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFailedSubscriber.php similarity index 77% rename from vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForTraitCreatedSubscriber.php rename to vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFailedSubscriber.php index a7e7dd07c..3b011bd99 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForTraitCreatedSubscriber.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFailedSubscriber.php @@ -14,7 +14,7 @@ use PHPUnit\Event\Subscriber; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ -interface MockObjectForTraitCreatedSubscriber extends Subscriber +interface AfterLastTestMethodFailedSubscriber extends Subscriber { - public function notify(MockObjectForTraitCreated $event): void; + public function notify(AfterLastTestMethodFailed $event): void; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFinished.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFinished.php index 19eed08ea..e93d70eed 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFinished.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterLastTestMethodFinished.php @@ -14,6 +14,7 @@ use function sprintf; use PHPUnit\Event\Code; use PHPUnit\Event\Event; use PHPUnit\Event\Telemetry; +use PHPUnit\Framework\TestCase; /** * @immutable @@ -25,7 +26,7 @@ final readonly class AfterLastTestMethodFinished implements Event private Telemetry\Info $telemetryInfo; /** - * @var class-string + * @var class-string */ private string $testClassName; @@ -35,7 +36,9 @@ final readonly class AfterLastTestMethodFinished implements Event private array $calledMethods; /** - * @param class-string $testClassName + * @param class-string $testClassName + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod ...$calledMethods) { @@ -50,7 +53,7 @@ final readonly class AfterLastTestMethodFinished implements Event } /** - * @return class-string + * @return class-string */ public function testClassName(): string { @@ -65,6 +68,9 @@ final readonly class AfterLastTestMethodFinished implements Event return $this->calledMethods; } + /** + * @return non-empty-string + */ public function asString(): string { $buffer = 'After Last Test Method Finished:'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodCalled.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodCalled.php index 72905d1a7..5153975b2 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodCalled.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodCalled.php @@ -22,20 +22,16 @@ use PHPUnit\Event\Telemetry; final readonly class AfterTestMethodCalled implements Event { private Telemetry\Info $telemetryInfo; - - /** - * @var class-string - */ - private string $testClassName; + private Code\TestMethod $test; private Code\ClassMethod $calledMethod; /** - * @param class-string $testClassName + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ - public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod $calledMethod) + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod $calledMethod) { $this->telemetryInfo = $telemetryInfo; - $this->testClassName = $testClassName; + $this->test = $test; $this->calledMethod = $calledMethod; } @@ -44,12 +40,19 @@ final readonly class AfterTestMethodCalled implements Event return $this->telemetryInfo; } + public function test(): Code\TestMethod + { + return $this->test; + } + /** * @return class-string + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6140 */ public function testClassName(): string { - return $this->testClassName; + return $this->test->className(); } public function calledMethod(): Code\ClassMethod @@ -57,6 +60,9 @@ final readonly class AfterTestMethodCalled implements Event return $this->calledMethod; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodErrored.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodErrored.php index 18c4ff44f..f77fad0a9 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodErrored.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodErrored.php @@ -24,21 +24,17 @@ use PHPUnit\Event\Telemetry; final readonly class AfterTestMethodErrored implements Event { private Telemetry\Info $telemetryInfo; - - /** - * @var class-string - */ - private string $testClassName; + private Code\TestMethod $test; private Code\ClassMethod $calledMethod; private Throwable $throwable; /** - * @param class-string $testClassName + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ - public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod $calledMethod, Throwable $throwable) + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod $calledMethod, Throwable $throwable) { $this->telemetryInfo = $telemetryInfo; - $this->testClassName = $testClassName; + $this->test = $test; $this->calledMethod = $calledMethod; $this->throwable = $throwable; } @@ -48,12 +44,19 @@ final readonly class AfterTestMethodErrored implements Event return $this->telemetryInfo; } + public function test(): Code\TestMethod + { + return $this->test; + } + /** * @return class-string + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6140 */ public function testClassName(): string { - return $this->testClassName; + return $this->test->className(); } public function calledMethod(): Code\ClassMethod @@ -66,11 +69,14 @@ final readonly class AfterTestMethodErrored implements Event return $this->throwable; } + /** + * @return non-empty-string + */ public function asString(): string { $message = $this->throwable->message(); - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFailed.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFailed.php new file mode 100644 index 000000000..c1b6fa88a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFailed.php @@ -0,0 +1,80 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\Test; + +use const PHP_EOL; +use function sprintf; +use PHPUnit\Event\Code; +use PHPUnit\Event\Code\Throwable; +use PHPUnit\Event\Event; +use PHPUnit\Event\Telemetry; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class AfterTestMethodFailed implements Event +{ + private Telemetry\Info $telemetryInfo; + private Code\TestMethod $test; + private Code\ClassMethod $calledMethod; + private Throwable $throwable; + + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod $calledMethod, Throwable $throwable) + { + $this->telemetryInfo = $telemetryInfo; + $this->test = $test; + $this->calledMethod = $calledMethod; + $this->throwable = $throwable; + } + + public function telemetryInfo(): Telemetry\Info + { + return $this->telemetryInfo; + } + + public function test(): Code\TestMethod + { + return $this->test; + } + + public function calledMethod(): Code\ClassMethod + { + return $this->calledMethod; + } + + public function throwable(): Throwable + { + return $this->throwable; + } + + /** + * @return non-empty-string + */ + public function asString(): string + { + $message = $this->throwable->message(); + + if ($message !== '') { + $message = PHP_EOL . $message; + } + + return sprintf( + 'After Test Method Failed (%s::%s)%s', + $this->calledMethod->className(), + $this->calledMethod->methodName(), + $message, + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFailedSubscriber.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFailedSubscriber.php new file mode 100644 index 000000000..16134322a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFailedSubscriber.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\Test; + +use PHPUnit\Event\Subscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +interface AfterTestMethodFailedSubscriber extends Subscriber +{ + public function notify(AfterTestMethodFailed $event): void; +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFinished.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFinished.php index 20aa4fe9d..dbeb63f5d 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFinished.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/AfterTestMethodFinished.php @@ -23,11 +23,7 @@ use PHPUnit\Event\Telemetry; final readonly class AfterTestMethodFinished implements Event { private Telemetry\Info $telemetryInfo; - - /** - * @var class-string - */ - private string $testClassName; + private Code\TestMethod $test; /** * @var list @@ -35,12 +31,12 @@ final readonly class AfterTestMethodFinished implements Event private array $calledMethods; /** - * @param class-string $testClassName + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ - public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod ...$calledMethods) + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod ...$calledMethods) { $this->telemetryInfo = $telemetryInfo; - $this->testClassName = $testClassName; + $this->test = $test; $this->calledMethods = $calledMethods; } @@ -49,12 +45,19 @@ final readonly class AfterTestMethodFinished implements Event return $this->telemetryInfo; } + public function test(): Code\TestMethod + { + return $this->test; + } + /** * @return class-string + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6140 */ public function testClassName(): string { - return $this->testClassName; + return $this->test->className(); } /** @@ -65,6 +68,9 @@ final readonly class AfterTestMethodFinished implements Event return $this->calledMethods; } + /** + * @return non-empty-string + */ public function asString(): string { $buffer = 'After Test Method Finished:'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodCalled.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodCalled.php index d45361bbe..7fb12e1d0 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodCalled.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodCalled.php @@ -13,6 +13,7 @@ use function sprintf; use PHPUnit\Event\Code; use PHPUnit\Event\Event; use PHPUnit\Event\Telemetry; +use PHPUnit\Framework\TestCase; /** * @immutable @@ -24,13 +25,15 @@ final readonly class BeforeFirstTestMethodCalled implements Event private Telemetry\Info $telemetryInfo; /** - * @var class-string + * @var class-string */ private string $testClassName; private Code\ClassMethod $calledMethod; /** - * @param class-string $testClassName + * @param class-string $testClassName + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod $calledMethod) { @@ -45,7 +48,7 @@ final readonly class BeforeFirstTestMethodCalled implements Event } /** - * @return class-string + * @return class-string */ public function testClassName(): string { @@ -57,6 +60,9 @@ final readonly class BeforeFirstTestMethodCalled implements Event return $this->calledMethod; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodErrored.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodErrored.php index 32e4e8a4c..985395aec 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodErrored.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodErrored.php @@ -15,6 +15,7 @@ use PHPUnit\Event\Code; use PHPUnit\Event\Code\Throwable; use PHPUnit\Event\Event; use PHPUnit\Event\Telemetry; +use PHPUnit\Framework\TestCase; /** * @immutable @@ -26,14 +27,16 @@ final readonly class BeforeFirstTestMethodErrored implements Event private Telemetry\Info $telemetryInfo; /** - * @var class-string + * @var class-string */ private string $testClassName; private Code\ClassMethod $calledMethod; private Throwable $throwable; /** - * @param class-string $testClassName + * @param class-string $testClassName + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod $calledMethod, Throwable $throwable) { @@ -49,7 +52,7 @@ final readonly class BeforeFirstTestMethodErrored implements Event } /** - * @return class-string + * @return class-string */ public function testClassName(): string { @@ -66,11 +69,14 @@ final readonly class BeforeFirstTestMethodErrored implements Event return $this->throwable; } + /** + * @return non-empty-string + */ public function asString(): string { $message = $this->throwable->message(); - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFailed.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFailed.php new file mode 100644 index 000000000..6487bb817 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFailed.php @@ -0,0 +1,90 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\Test; + +use const PHP_EOL; +use function sprintf; +use PHPUnit\Event\Code; +use PHPUnit\Event\Code\Throwable; +use PHPUnit\Event\Event; +use PHPUnit\Event\Telemetry; +use PHPUnit\Framework\TestCase; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class BeforeFirstTestMethodFailed implements Event +{ + private Telemetry\Info $telemetryInfo; + + /** + * @var class-string + */ + private string $testClassName; + private Code\ClassMethod $calledMethod; + private Throwable $throwable; + + /** + * @param class-string $testClassName + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ + public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod $calledMethod, Throwable $throwable) + { + $this->telemetryInfo = $telemetryInfo; + $this->testClassName = $testClassName; + $this->calledMethod = $calledMethod; + $this->throwable = $throwable; + } + + public function telemetryInfo(): Telemetry\Info + { + return $this->telemetryInfo; + } + + /** + * @return class-string + */ + public function testClassName(): string + { + return $this->testClassName; + } + + public function calledMethod(): Code\ClassMethod + { + return $this->calledMethod; + } + + public function throwable(): Throwable + { + return $this->throwable; + } + + /** + * @return non-empty-string + */ + public function asString(): string + { + $message = $this->throwable->message(); + + if ($message !== '') { + $message = PHP_EOL . $message; + } + + return sprintf( + 'Before First Test Method Failed (%s::%s)%s', + $this->calledMethod->className(), + $this->calledMethod->methodName(), + $message, + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFailedSubscriber.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFailedSubscriber.php new file mode 100644 index 000000000..4e0b7eff7 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFailedSubscriber.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\Test; + +use PHPUnit\Event\Subscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +interface BeforeFirstTestMethodFailedSubscriber extends Subscriber +{ + public function notify(BeforeFirstTestMethodFailed $event): void; +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFinished.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFinished.php index ae1a1d178..93d1229d8 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFinished.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeFirstTestMethodFinished.php @@ -14,6 +14,7 @@ use function sprintf; use PHPUnit\Event\Code; use PHPUnit\Event\Event; use PHPUnit\Event\Telemetry; +use PHPUnit\Framework\TestCase; /** * @immutable @@ -25,7 +26,7 @@ final readonly class BeforeFirstTestMethodFinished implements Event private Telemetry\Info$telemetryInfo; /** - * @var class-string + * @var class-string */ private string $testClassName; @@ -35,7 +36,9 @@ final readonly class BeforeFirstTestMethodFinished implements Event private array $calledMethods; /** - * @param class-string $testClassName + * @param class-string $testClassName + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod ...$calledMethods) { @@ -50,7 +53,7 @@ final readonly class BeforeFirstTestMethodFinished implements Event } /** - * @return class-string + * @return class-string */ public function testClassName(): string { @@ -65,6 +68,9 @@ final readonly class BeforeFirstTestMethodFinished implements Event return $this->calledMethods; } + /** + * @return non-empty-string + */ public function asString(): string { $buffer = 'Before First Test Method Finished:'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodCalled.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodCalled.php index 2ef50b32e..9bd92ae30 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodCalled.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodCalled.php @@ -22,20 +22,16 @@ use PHPUnit\Event\Telemetry; final readonly class BeforeTestMethodCalled implements Event { private Telemetry\Info $telemetryInfo; - - /** - * @var class-string - */ - private string $testClassName; + private Code\TestMethod $test; private Code\ClassMethod $calledMethod; /** - * @param class-string $testClassName + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ - public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod $calledMethod) + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod $calledMethod) { $this->telemetryInfo = $telemetryInfo; - $this->testClassName = $testClassName; + $this->test = $test; $this->calledMethod = $calledMethod; } @@ -44,12 +40,19 @@ final readonly class BeforeTestMethodCalled implements Event return $this->telemetryInfo; } + public function test(): Code\TestMethod + { + return $this->test; + } + /** * @return class-string + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6140 */ public function testClassName(): string { - return $this->testClassName; + return $this->test->className(); } public function calledMethod(): Code\ClassMethod @@ -57,6 +60,9 @@ final readonly class BeforeTestMethodCalled implements Event return $this->calledMethod; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodErrored.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodErrored.php index 40004ff0c..781590701 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodErrored.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodErrored.php @@ -24,21 +24,17 @@ use PHPUnit\Event\Telemetry; final readonly class BeforeTestMethodErrored implements Event { private Telemetry\Info $telemetryInfo; - - /** - * @var class-string - */ - private string $testClassName; + private Code\TestMethod $test; private Code\ClassMethod $calledMethod; private Throwable $throwable; /** - * @param class-string $testClassName + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ - public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod $calledMethod, Throwable $throwable) + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod $calledMethod, Throwable $throwable) { $this->telemetryInfo = $telemetryInfo; - $this->testClassName = $testClassName; + $this->test = $test; $this->calledMethod = $calledMethod; $this->throwable = $throwable; } @@ -48,12 +44,19 @@ final readonly class BeforeTestMethodErrored implements Event return $this->telemetryInfo; } + public function test(): Code\TestMethod + { + return $this->test; + } + /** * @return class-string + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6140 */ public function testClassName(): string { - return $this->testClassName; + return $this->test->className(); } public function calledMethod(): Code\ClassMethod @@ -66,11 +69,14 @@ final readonly class BeforeTestMethodErrored implements Event return $this->throwable; } + /** + * @return non-empty-string + */ public function asString(): string { $message = $this->throwable->message(); - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFailed.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFailed.php new file mode 100644 index 000000000..d2bc3ed06 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFailed.php @@ -0,0 +1,80 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\Test; + +use const PHP_EOL; +use function sprintf; +use PHPUnit\Event\Code; +use PHPUnit\Event\Code\Throwable; +use PHPUnit\Event\Event; +use PHPUnit\Event\Telemetry; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class BeforeTestMethodFailed implements Event +{ + private Telemetry\Info $telemetryInfo; + private Code\TestMethod $test; + private Code\ClassMethod $calledMethod; + private Throwable $throwable; + + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod $calledMethod, Throwable $throwable) + { + $this->telemetryInfo = $telemetryInfo; + $this->test = $test; + $this->calledMethod = $calledMethod; + $this->throwable = $throwable; + } + + public function telemetryInfo(): Telemetry\Info + { + return $this->telemetryInfo; + } + + public function test(): Code\TestMethod + { + return $this->test; + } + + public function calledMethod(): Code\ClassMethod + { + return $this->calledMethod; + } + + public function throwable(): Throwable + { + return $this->throwable; + } + + /** + * @return non-empty-string + */ + public function asString(): string + { + $message = $this->throwable->message(); + + if ($message !== '') { + $message = PHP_EOL . $message; + } + + return sprintf( + 'Before Test Method Failed (%s::%s)%s', + $this->calledMethod->className(), + $this->calledMethod->methodName(), + $message, + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectFromWsdlCreatedSubscriber.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFailedSubscriber.php similarity index 76% rename from vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectFromWsdlCreatedSubscriber.php rename to vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFailedSubscriber.php index fb0524b21..0f9f071ce 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectFromWsdlCreatedSubscriber.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFailedSubscriber.php @@ -14,7 +14,7 @@ use PHPUnit\Event\Subscriber; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ -interface MockObjectFromWsdlCreatedSubscriber extends Subscriber +interface BeforeTestMethodFailedSubscriber extends Subscriber { - public function notify(MockObjectFromWsdlCreated $event): void; + public function notify(BeforeTestMethodFailed $event): void; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFinished.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFinished.php index 82b89f1a6..7f714613e 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFinished.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/BeforeTestMethodFinished.php @@ -23,11 +23,7 @@ use PHPUnit\Event\Telemetry; final readonly class BeforeTestMethodFinished implements Event { private Telemetry\Info $telemetryInfo; - - /** - * @var class-string - */ - private string $testClassName; + private Code\TestMethod $test; /** * @var list @@ -35,12 +31,12 @@ final readonly class BeforeTestMethodFinished implements Event private array $calledMethods; /** - * @param class-string $testClassName + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ - public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod ...$calledMethods) + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod ...$calledMethods) { $this->telemetryInfo = $telemetryInfo; - $this->testClassName = $testClassName; + $this->test = $test; $this->calledMethods = $calledMethods; } @@ -49,12 +45,19 @@ final readonly class BeforeTestMethodFinished implements Event return $this->telemetryInfo; } + public function test(): Code\TestMethod + { + return $this->test; + } + /** * @return class-string + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6140 */ public function testClassName(): string { - return $this->testClassName; + return $this->test->className(); } /** @@ -65,6 +68,9 @@ final readonly class BeforeTestMethodFinished implements Event return $this->calledMethods; } + /** + * @return non-empty-string + */ public function asString(): string { $buffer = 'Before Test Method Finished:'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionCalled.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionCalled.php index a12659491..71e6dbf78 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionCalled.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionCalled.php @@ -22,20 +22,16 @@ use PHPUnit\Event\Telemetry; final readonly class PostConditionCalled implements Event { private Telemetry\Info $telemetryInfo; - - /** - * @var class-string - */ - private string $testClassName; + private Code\TestMethod $test; private Code\ClassMethod $calledMethod; /** - * @param class-string $testClassName + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ - public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod $calledMethod) + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod $calledMethod) { $this->telemetryInfo = $telemetryInfo; - $this->testClassName = $testClassName; + $this->test = $test; $this->calledMethod = $calledMethod; } @@ -44,12 +40,19 @@ final readonly class PostConditionCalled implements Event return $this->telemetryInfo; } + public function test(): Code\TestMethod + { + return $this->test; + } + /** * @return class-string + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6140 */ public function testClassName(): string { - return $this->testClassName; + return $this->test->className(); } public function calledMethod(): Code\ClassMethod @@ -57,6 +60,9 @@ final readonly class PostConditionCalled implements Event return $this->calledMethod; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionErrored.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionErrored.php index 9b01709ce..a5de8d508 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionErrored.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionErrored.php @@ -24,21 +24,17 @@ use PHPUnit\Event\Telemetry; final readonly class PostConditionErrored implements Event { private Telemetry\Info $telemetryInfo; - - /** - * @var class-string - */ - private string $testClassName; + private Code\TestMethod $test; private Code\ClassMethod $calledMethod; private Throwable $throwable; /** - * @param class-string $testClassName + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ - public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod $calledMethod, Throwable $throwable) + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod $calledMethod, Throwable $throwable) { $this->telemetryInfo = $telemetryInfo; - $this->testClassName = $testClassName; + $this->test = $test; $this->calledMethod = $calledMethod; $this->throwable = $throwable; } @@ -48,12 +44,19 @@ final readonly class PostConditionErrored implements Event return $this->telemetryInfo; } + public function test(): Code\TestMethod + { + return $this->test; + } + /** * @return class-string + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6140 */ public function testClassName(): string { - return $this->testClassName; + return $this->test->className(); } public function calledMethod(): Code\ClassMethod @@ -66,11 +69,14 @@ final readonly class PostConditionErrored implements Event return $this->throwable; } + /** + * @return non-empty-string + */ public function asString(): string { $message = $this->throwable->message(); - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFailed.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFailed.php new file mode 100644 index 000000000..aa9a773fd --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFailed.php @@ -0,0 +1,80 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\Test; + +use const PHP_EOL; +use function sprintf; +use PHPUnit\Event\Code; +use PHPUnit\Event\Code\Throwable; +use PHPUnit\Event\Event; +use PHPUnit\Event\Telemetry; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class PostConditionFailed implements Event +{ + private Telemetry\Info $telemetryInfo; + private Code\TestMethod $test; + private Code\ClassMethod $calledMethod; + private Throwable $throwable; + + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod $calledMethod, Throwable $throwable) + { + $this->telemetryInfo = $telemetryInfo; + $this->test = $test; + $this->calledMethod = $calledMethod; + $this->throwable = $throwable; + } + + public function telemetryInfo(): Telemetry\Info + { + return $this->telemetryInfo; + } + + public function test(): Code\TestMethod + { + return $this->test; + } + + public function calledMethod(): Code\ClassMethod + { + return $this->calledMethod; + } + + public function throwable(): Throwable + { + return $this->throwable; + } + + /** + * @return non-empty-string + */ + public function asString(): string + { + $message = $this->throwable->message(); + + if ($message !== '') { + $message = PHP_EOL . $message; + } + + return sprintf( + 'Post Condition Method Failed (%s::%s)%s', + $this->calledMethod->className(), + $this->calledMethod->methodName(), + $message, + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFailedSubscriber.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFailedSubscriber.php new file mode 100644 index 000000000..e6ff7557a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFailedSubscriber.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\Test; + +use PHPUnit\Event\Subscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +interface PostConditionFailedSubscriber extends Subscriber +{ + public function notify(PostConditionFailed $event): void; +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFinished.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFinished.php index 335995115..e6288a5be 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFinished.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PostConditionFinished.php @@ -23,11 +23,7 @@ use PHPUnit\Event\Telemetry; final readonly class PostConditionFinished implements Event { private Telemetry\Info $telemetryInfo; - - /** - * @var class-string - */ - private string $testClassName; + private Code\TestMethod $test; /** * @var list @@ -35,12 +31,12 @@ final readonly class PostConditionFinished implements Event private array $calledMethods; /** - * @param class-string $testClassName + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ - public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod ...$calledMethods) + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod ...$calledMethods) { $this->telemetryInfo = $telemetryInfo; - $this->testClassName = $testClassName; + $this->test = $test; $this->calledMethods = $calledMethods; } @@ -49,12 +45,19 @@ final readonly class PostConditionFinished implements Event return $this->telemetryInfo; } + public function test(): Code\TestMethod + { + return $this->test; + } + /** * @return class-string + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6140 */ public function testClassName(): string { - return $this->testClassName; + return $this->test->className(); } /** @@ -65,6 +68,9 @@ final readonly class PostConditionFinished implements Event return $this->calledMethods; } + /** + * @return non-empty-string + */ public function asString(): string { $buffer = 'Post Condition Method Finished:'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionCalled.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionCalled.php index 1beba5666..32c96eaba 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionCalled.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionCalled.php @@ -22,20 +22,16 @@ use PHPUnit\Event\Telemetry; final readonly class PreConditionCalled implements Event { private Telemetry\Info$telemetryInfo; - - /** - * @var class-string - */ - private string $testClassName; + private Code\TestMethod $test; private Code\ClassMethod $calledMethod; /** - * @param class-string $testClassName + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ - public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod $calledMethod) + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod $calledMethod) { $this->telemetryInfo = $telemetryInfo; - $this->testClassName = $testClassName; + $this->test = $test; $this->calledMethod = $calledMethod; } @@ -44,12 +40,19 @@ final readonly class PreConditionCalled implements Event return $this->telemetryInfo; } + public function test(): Code\TestMethod + { + return $this->test; + } + /** * @return class-string + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6140 */ public function testClassName(): string { - return $this->testClassName; + return $this->test->className(); } public function calledMethod(): Code\ClassMethod @@ -57,6 +60,9 @@ final readonly class PreConditionCalled implements Event return $this->calledMethod; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionErrored.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionErrored.php index c5bebe81c..45171d9e0 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionErrored.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionErrored.php @@ -24,21 +24,17 @@ use PHPUnit\Event\Telemetry; final readonly class PreConditionErrored implements Event { private Telemetry\Info $telemetryInfo; - - /** - * @var class-string - */ - private string $testClassName; + private Code\TestMethod $test; private Code\ClassMethod $calledMethod; private Throwable $throwable; /** - * @param class-string $testClassName + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ - public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod $calledMethod, Throwable $throwable) + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod $calledMethod, Throwable $throwable) { $this->telemetryInfo = $telemetryInfo; - $this->testClassName = $testClassName; + $this->test = $test; $this->calledMethod = $calledMethod; $this->throwable = $throwable; } @@ -48,12 +44,19 @@ final readonly class PreConditionErrored implements Event return $this->telemetryInfo; } + public function test(): Code\TestMethod + { + return $this->test; + } + /** * @return class-string + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6140 */ public function testClassName(): string { - return $this->testClassName; + return $this->test->className(); } public function calledMethod(): Code\ClassMethod @@ -66,11 +69,14 @@ final readonly class PreConditionErrored implements Event return $this->throwable; } + /** + * @return non-empty-string + */ public function asString(): string { $message = $this->throwable->message(); - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFailed.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFailed.php new file mode 100644 index 000000000..0d513db70 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFailed.php @@ -0,0 +1,80 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\Test; + +use const PHP_EOL; +use function sprintf; +use PHPUnit\Event\Code; +use PHPUnit\Event\Code\Throwable; +use PHPUnit\Event\Event; +use PHPUnit\Event\Telemetry; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class PreConditionFailed implements Event +{ + private Telemetry\Info $telemetryInfo; + private Code\TestMethod $test; + private Code\ClassMethod $calledMethod; + private Throwable $throwable; + + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod $calledMethod, Throwable $throwable) + { + $this->telemetryInfo = $telemetryInfo; + $this->test = $test; + $this->calledMethod = $calledMethod; + $this->throwable = $throwable; + } + + public function telemetryInfo(): Telemetry\Info + { + return $this->telemetryInfo; + } + + public function test(): Code\TestMethod + { + return $this->test; + } + + public function calledMethod(): Code\ClassMethod + { + return $this->calledMethod; + } + + public function throwable(): Throwable + { + return $this->throwable; + } + + /** + * @return non-empty-string + */ + public function asString(): string + { + $message = $this->throwable->message(); + + if ($message !== '') { + $message = PHP_EOL . $message; + } + + return sprintf( + 'Pre Condition Method Failed (%s::%s)%s', + $this->calledMethod->className(), + $this->calledMethod->methodName(), + $message, + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestProxyCreatedSubscriber.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFailedSubscriber.php similarity index 78% rename from vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestProxyCreatedSubscriber.php rename to vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFailedSubscriber.php index 8af83844a..26ce7cdce 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestProxyCreatedSubscriber.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFailedSubscriber.php @@ -14,7 +14,7 @@ use PHPUnit\Event\Subscriber; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ -interface TestProxyCreatedSubscriber extends Subscriber +interface PreConditionFailedSubscriber extends Subscriber { - public function notify(TestProxyCreated $event): void; + public function notify(PreConditionFailed $event): void; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFinished.php b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFinished.php index ec45130e2..69951e19e 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFinished.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/HookMethod/PreConditionFinished.php @@ -23,11 +23,7 @@ use PHPUnit\Event\Telemetry; final readonly class PreConditionFinished implements Event { private Telemetry\Info $telemetryInfo; - - /** - * @var class-string - */ - private string $testClassName; + private Code\TestMethod $test; /** * @var list @@ -35,12 +31,12 @@ final readonly class PreConditionFinished implements Event private array $calledMethods; /** - * @param class-string $testClassName + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ - public function __construct(Telemetry\Info $telemetryInfo, string $testClassName, Code\ClassMethod ...$calledMethods) + public function __construct(Telemetry\Info $telemetryInfo, Code\TestMethod $test, Code\ClassMethod ...$calledMethods) { $this->telemetryInfo = $telemetryInfo; - $this->testClassName = $testClassName; + $this->test = $test; $this->calledMethods = $calledMethods; } @@ -49,12 +45,19 @@ final readonly class PreConditionFinished implements Event return $this->telemetryInfo; } + public function test(): Code\TestMethod + { + return $this->test; + } + /** * @return class-string + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6140 */ public function testClassName(): string { - return $this->testClassName; + return $this->test->className(); } /** @@ -65,6 +68,9 @@ final readonly class PreConditionFinished implements Event return $this->calledMethods; } + /** + * @return non-empty-string + */ public function asString(): string { $buffer = 'Pre Condition Method Finished:'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/ConsideredRisky.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/ConsideredRisky.php index 14eea279b..4d9b99a00 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/ConsideredRisky.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/ConsideredRisky.php @@ -32,6 +32,8 @@ final readonly class ConsideredRisky implements Event /** * @param non-empty-string $message + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, Code\Test $test, string $message) { @@ -58,6 +60,9 @@ final readonly class ConsideredRisky implements Event return $this->message; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/DeprecationTriggered.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/DeprecationTriggered.php index 38b58eeb3..a74125033 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/DeprecationTriggered.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/DeprecationTriggered.php @@ -56,6 +56,8 @@ final readonly class DeprecationTriggered implements Event * @param non-empty-string $file * @param positive-int $line * @param non-empty-string $stackTrace + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, Test $test, string $message, string $file, int $line, bool $suppressed, bool $ignoredByBaseline, bool $ignoredByTest, IssueTrigger $trigger, string $stackTrace) { @@ -133,11 +135,14 @@ final readonly class DeprecationTriggered implements Event return $this->stackTrace; } + /** + * @return non-empty-string + */ public function asString(): string { $message = $this->message; - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/ErrorTriggered.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/ErrorTriggered.php index 390a6601f..eb54be8a2 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/ErrorTriggered.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/ErrorTriggered.php @@ -46,6 +46,8 @@ final readonly class ErrorTriggered implements Event * @param non-empty-string $message * @param non-empty-string $file * @param positive-int $line + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, Test $test, string $message, string $file, int $line, bool $suppressed) { @@ -96,11 +98,14 @@ final readonly class ErrorTriggered implements Event return $this->suppressed; } + /** + * @return non-empty-string + */ public function asString(): string { $message = $this->message; - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/NoticeTriggered.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/NoticeTriggered.php index 96e563a90..fb4fbdcfb 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/NoticeTriggered.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/NoticeTriggered.php @@ -47,6 +47,8 @@ final readonly class NoticeTriggered implements Event * @param non-empty-string $message * @param non-empty-string $file * @param positive-int $line + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, Test $test, string $message, string $file, int $line, bool $suppressed, bool $ignoredByBaseline) { @@ -103,11 +105,14 @@ final readonly class NoticeTriggered implements Event return $this->ignoredByBaseline; } + /** + * @return non-empty-string + */ public function asString(): string { $message = $this->message; - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpDeprecationTriggered.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpDeprecationTriggered.php index 9694b15b2..fe936d2da 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpDeprecationTriggered.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpDeprecationTriggered.php @@ -50,6 +50,8 @@ final readonly class PhpDeprecationTriggered implements Event * @param non-empty-string $message * @param non-empty-string $file * @param positive-int $line + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, Test $test, string $message, string $file, int $line, bool $suppressed, bool $ignoredByBaseline, bool $ignoredByTest, IssueTrigger $trigger) { @@ -118,11 +120,14 @@ final readonly class PhpDeprecationTriggered implements Event return $this->trigger; } + /** + * @return non-empty-string + */ public function asString(): string { $message = $this->message; - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpNoticeTriggered.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpNoticeTriggered.php index 73f004623..932dde679 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpNoticeTriggered.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpNoticeTriggered.php @@ -47,6 +47,8 @@ final readonly class PhpNoticeTriggered implements Event * @param non-empty-string $message * @param non-empty-string $file * @param positive-int $line + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, Test $test, string $message, string $file, int $line, bool $suppressed, bool $ignoredByBaseline) { @@ -103,11 +105,14 @@ final readonly class PhpNoticeTriggered implements Event return $this->ignoredByBaseline; } + /** + * @return non-empty-string + */ public function asString(): string { $message = $this->message; - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpWarningTriggered.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpWarningTriggered.php index 16aba8467..4d2ed4884 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpWarningTriggered.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpWarningTriggered.php @@ -47,6 +47,8 @@ final readonly class PhpWarningTriggered implements Event * @param non-empty-string $message * @param non-empty-string $file * @param positive-int $line + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, Test $test, string $message, string $file, int $line, bool $suppressed, bool $ignoredByBaseline) { @@ -103,11 +105,14 @@ final readonly class PhpWarningTriggered implements Event return $this->ignoredByBaseline; } + /** + * @return non-empty-string + */ public function asString(): string { $message = $this->message; - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitDeprecationTriggered.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitDeprecationTriggered.php index 0a1fc310e..ebe100bcb 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitDeprecationTriggered.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitDeprecationTriggered.php @@ -32,6 +32,8 @@ final readonly class PhpunitDeprecationTriggered implements Event /** * @param non-empty-string $message + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, Test $test, string $message) { @@ -58,11 +60,14 @@ final readonly class PhpunitDeprecationTriggered implements Event return $this->message; } + /** + * @return non-empty-string + */ public function asString(): string { $message = $this->message; - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitErrorTriggered.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitErrorTriggered.php index a54649cb7..e3fdab79f 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitErrorTriggered.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitErrorTriggered.php @@ -33,6 +33,8 @@ final readonly class PhpunitErrorTriggered implements Event /** * @param non-empty-string $message + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, Test $test, string $message) { @@ -59,11 +61,14 @@ final readonly class PhpunitErrorTriggered implements Event return $this->message; } + /** + * @return non-empty-string + */ public function asString(): string { $message = trim($this->message); - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitNoticeTriggered.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitNoticeTriggered.php new file mode 100644 index 000000000..16bae74bd --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitNoticeTriggered.php @@ -0,0 +1,81 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\Test; + +use const PHP_EOL; +use function sprintf; +use function trim; +use PHPUnit\Event\Code\Test; +use PHPUnit\Event\Event; +use PHPUnit\Event\Telemetry; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class PhpunitNoticeTriggered implements Event +{ + private Telemetry\Info $telemetryInfo; + private Test $test; + + /** + * @var non-empty-string + */ + private string $message; + + /** + * @param non-empty-string $message + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ + public function __construct(Telemetry\Info $telemetryInfo, Test $test, string $message) + { + $this->telemetryInfo = $telemetryInfo; + $this->test = $test; + $this->message = $message; + } + + public function telemetryInfo(): Telemetry\Info + { + return $this->telemetryInfo; + } + + public function test(): Test + { + return $this->test; + } + + /** + * @return non-empty-string + */ + public function message(): string + { + return $this->message; + } + + /** + * @return non-empty-string + */ + public function asString(): string + { + $message = trim($this->message); + + if ($message !== '') { + $message = PHP_EOL . $message; + } + + return sprintf( + 'Test Triggered PHPUnit Notice (%s)%s', + $this->test->id(), + $message, + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitNoticeTriggeredSubscriber.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitNoticeTriggeredSubscriber.php new file mode 100644 index 000000000..0935c6dd3 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitNoticeTriggeredSubscriber.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\Test; + +use PHPUnit\Event\Subscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +interface PhpunitNoticeTriggeredSubscriber extends Subscriber +{ + public function notify(PhpunitNoticeTriggered $event): void; +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitWarningTriggered.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitWarningTriggered.php index 3b53478e9..0089ae53f 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitWarningTriggered.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/PhpunitWarningTriggered.php @@ -10,6 +10,7 @@ namespace PHPUnit\Event\Test; use const PHP_EOL; +use function implode; use function sprintf; use PHPUnit\Event\Code\Test; use PHPUnit\Event\Event; @@ -29,15 +30,19 @@ final readonly class PhpunitWarningTriggered implements Event * @var non-empty-string */ private string $message; + private bool $ignoredByTest; /** * @param non-empty-string $message + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ - public function __construct(Telemetry\Info $telemetryInfo, Test $test, string $message) + public function __construct(Telemetry\Info $telemetryInfo, Test $test, string $message, bool $ignoredByTest) { $this->telemetryInfo = $telemetryInfo; $this->test = $test; $this->message = $message; + $this->ignoredByTest = $ignoredByTest; } public function telemetryInfo(): Telemetry\Info @@ -58,17 +63,31 @@ final readonly class PhpunitWarningTriggered implements Event return $this->message; } + public function ignoredByTest(): bool + { + return $this->ignoredByTest; + } + + /** + * @return non-empty-string + */ public function asString(): string { $message = $this->message; - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } + $details = [$this->test->id()]; + + if ($this->ignoredByTest) { + $details[] = 'ignored by test'; + } + return sprintf( 'Test Triggered PHPUnit Warning (%s)%s', - $this->test->id(), + implode(', ', $details), $message, ); } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/WarningTriggered.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/WarningTriggered.php index ae4c0afff..6de126dad 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/WarningTriggered.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Issue/WarningTriggered.php @@ -47,6 +47,8 @@ final readonly class WarningTriggered implements Event * @param non-empty-string $message * @param non-empty-string $file * @param positive-int $line + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, Test $test, string $message, string $file, int $line, bool $suppressed, bool $ignoredByBaseline) { @@ -103,11 +105,14 @@ final readonly class WarningTriggered implements Event return $this->ignoredByBaseline; } + /** + * @return non-empty-string + */ public function asString(): string { $message = $this->message; - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/DataProviderMethodCalled.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/DataProviderMethodCalled.php index 93a05c990..6d647048a 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/DataProviderMethodCalled.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/DataProviderMethodCalled.php @@ -25,6 +25,9 @@ final readonly class DataProviderMethodCalled implements Event private ClassMethod $testMethod; private ClassMethod $dataProviderMethod; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Info $telemetryInfo, ClassMethod $testMethod, ClassMethod $dataProviderMethod) { $this->telemetryInfo = $telemetryInfo; @@ -47,6 +50,9 @@ final readonly class DataProviderMethodCalled implements Event return $this->dataProviderMethod; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/DataProviderMethodFinished.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/DataProviderMethodFinished.php index afac98953..4bed3a4f2 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/DataProviderMethodFinished.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/DataProviderMethodFinished.php @@ -30,6 +30,9 @@ final readonly class DataProviderMethodFinished implements Event */ private array $calledMethods; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, ClassMethod $testMethod, ClassMethod ...$calledMethods) { $this->telemetryInfo = $telemetryInfo; @@ -55,6 +58,9 @@ final readonly class DataProviderMethodFinished implements Event return $this->calledMethods; } + /** + * @return non-empty-string + */ public function asString(): string { $buffer = sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/Finished.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/Finished.php index 3a9eeb535..b02559883 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/Finished.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/Finished.php @@ -23,8 +23,17 @@ final readonly class Finished implements Event { private Telemetry\Info $telemetryInfo; private Code\Test $test; + + /** + * @var non-negative-int + */ private int $numberOfAssertionsPerformed; + /** + * @param non-negative-int $numberOfAssertionsPerformed + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, Code\Test $test, int $numberOfAssertionsPerformed) { $this->telemetryInfo = $telemetryInfo; @@ -42,11 +51,17 @@ final readonly class Finished implements Event return $this->test; } + /** + * @return non-negative-int + */ public function numberOfAssertionsPerformed(): int { return $this->numberOfAssertionsPerformed; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationErrored.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationErrored.php new file mode 100644 index 000000000..c5955c45f --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationErrored.php @@ -0,0 +1,72 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\Test; + +use const PHP_EOL; +use function sprintf; +use PHPUnit\Event\Code; +use PHPUnit\Event\Code\Throwable; +use PHPUnit\Event\Event; +use PHPUnit\Event\Telemetry; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class PreparationErrored implements Event +{ + private Telemetry\Info $telemetryInfo; + private Code\Test $test; + private Throwable $throwable; + + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ + public function __construct(Telemetry\Info $telemetryInfo, Code\Test $test, Throwable $throwable) + { + $this->telemetryInfo = $telemetryInfo; + $this->test = $test; + $this->throwable = $throwable; + } + + public function telemetryInfo(): Telemetry\Info + { + return $this->telemetryInfo; + } + + public function test(): Code\Test + { + return $this->test; + } + + public function throwable(): Throwable + { + return $this->throwable; + } + + /** + * @return non-empty-string + */ + public function asString(): string + { + $message = $this->throwable->message(); + + if ($message !== '') { + $message = PHP_EOL . $message; + } + + return sprintf( + 'Test Preparation Errored (%s)%s', + $this->test->id(), + $message, + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationErroredSubscriber.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationErroredSubscriber.php new file mode 100644 index 000000000..2cb43d2e8 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationErroredSubscriber.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\Test; + +use PHPUnit\Event\Subscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +interface PreparationErroredSubscriber extends Subscriber +{ + public function notify(PreparationErrored $event): void; +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationFailed.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationFailed.php index 7db4b9d22..84b14cc85 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationFailed.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationFailed.php @@ -9,8 +9,10 @@ */ namespace PHPUnit\Event\Test; +use const PHP_EOL; use function sprintf; use PHPUnit\Event\Code; +use PHPUnit\Event\Code\Throwable; use PHPUnit\Event\Event; use PHPUnit\Event\Telemetry; @@ -23,11 +25,16 @@ final readonly class PreparationFailed implements Event { private Telemetry\Info $telemetryInfo; private Code\Test $test; + private Throwable $throwable; - public function __construct(Telemetry\Info $telemetryInfo, Code\Test $test) + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ + public function __construct(Telemetry\Info $telemetryInfo, Code\Test $test, Throwable $throwable) { $this->telemetryInfo = $telemetryInfo; $this->test = $test; + $this->throwable = $throwable; } public function telemetryInfo(): Telemetry\Info @@ -40,11 +47,26 @@ final readonly class PreparationFailed implements Event return $this->test; } + public function throwable(): Throwable + { + return $this->throwable; + } + + /** + * @return non-empty-string + */ public function asString(): string { + $message = $this->throwable->message(); + + if ($message !== '') { + $message = PHP_EOL . $message; + } + return sprintf( - 'Test Preparation Failed (%s)', + 'Test Preparation Failed (%s)%s', $this->test->id(), + $message, ); } } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationStarted.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationStarted.php index c0a8a81b1..533795bdb 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationStarted.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/PreparationStarted.php @@ -24,6 +24,9 @@ final readonly class PreparationStarted implements Event private Telemetry\Info $telemetryInfo; private Code\Test $test; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, Code\Test $test) { $this->telemetryInfo = $telemetryInfo; @@ -40,6 +43,9 @@ final readonly class PreparationStarted implements Event return $this->test; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/Prepared.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/Prepared.php index 465bf8860..ec7edbe41 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/Prepared.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Lifecycle/Prepared.php @@ -24,6 +24,9 @@ final readonly class Prepared implements Event private Telemetry\Info $telemetryInfo; private Code\Test $test; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, Code\Test $test) { $this->telemetryInfo = $telemetryInfo; @@ -40,6 +43,9 @@ final readonly class Prepared implements Event return $this->test; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/Errored.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/Errored.php index f96add204..6be67eb92 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/Errored.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/Errored.php @@ -28,6 +28,9 @@ final readonly class Errored implements Event private Code\Test $test; private Throwable $throwable; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, Code\Test $test, Throwable $throwable) { $this->telemetryInfo = $telemetryInfo; @@ -50,11 +53,14 @@ final readonly class Errored implements Event return $this->throwable; } + /** + * @return non-empty-string + */ public function asString(): string { $message = trim($this->throwable->message()); - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/Failed.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/Failed.php index 36d984065..a32a99218 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/Failed.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/Failed.php @@ -30,6 +30,9 @@ final readonly class Failed implements Event private Throwable $throwable; private ?ComparisonFailure $comparisonFailure; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, Code\Test $test, Throwable $throwable, ?ComparisonFailure $comparisonFailure) { $this->telemetryInfo = $telemetryInfo; @@ -73,11 +76,14 @@ final readonly class Failed implements Event return $this->comparisonFailure; } + /** + * @return non-empty-string + */ public function asString(): string { $message = trim($this->throwable->message()); - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/MarkedIncomplete.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/MarkedIncomplete.php index d9ac0cc93..787aa4726 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/MarkedIncomplete.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/MarkedIncomplete.php @@ -28,6 +28,9 @@ final readonly class MarkedIncomplete implements Event private Code\Test $test; private Throwable $throwable; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, Code\Test $test, Throwable $throwable) { $this->telemetryInfo = $telemetryInfo; @@ -50,11 +53,14 @@ final readonly class MarkedIncomplete implements Event return $this->throwable; } + /** + * @return non-empty-string + */ public function asString(): string { $message = trim($this->throwable->message()); - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/Passed.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/Passed.php index 55ef0423e..e1ab4e04f 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/Passed.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/Passed.php @@ -24,6 +24,9 @@ final readonly class Passed implements Event private Telemetry\Info $telemetryInfo; private Code\Test $test; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, Code\Test $test) { $this->telemetryInfo = $telemetryInfo; @@ -40,6 +43,9 @@ final readonly class Passed implements Event return $this->test; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/Skipped.php b/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/Skipped.php index b8cdfd002..b8d3ee521 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/Skipped.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/Outcome/Skipped.php @@ -26,6 +26,9 @@ final readonly class Skipped implements Event private Code\Test $test; private string $message; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, Code\Test $test, string $message) { $this->telemetryInfo = $telemetryInfo; @@ -48,11 +51,14 @@ final readonly class Skipped implements Event return $this->message; } + /** + * @return non-empty-string + */ public function asString(): string { $message = $this->message; - if (!empty($message)) { + if ($message !== '') { $message = PHP_EOL . $message; } diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/PrintedUnexpectedOutput.php b/vendor/phpunit/phpunit/src/Event/Events/Test/PrintedUnexpectedOutput.php index 39649ced8..b7b2bb489 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/PrintedUnexpectedOutput.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/PrintedUnexpectedOutput.php @@ -30,6 +30,8 @@ final readonly class PrintedUnexpectedOutput implements Event /** * @param non-empty-string $output + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, string $output) { @@ -50,6 +52,9 @@ final readonly class PrintedUnexpectedOutput implements Event return $this->output; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectCreated.php b/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectCreated.php index f91c43e07..2b37692e8 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectCreated.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectCreated.php @@ -29,6 +29,8 @@ final readonly class MockObjectCreated implements Event /** * @param class-string $className + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, string $className) { @@ -49,6 +51,9 @@ final readonly class MockObjectCreated implements Event return $this->className; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForIntersectionOfInterfacesCreated.php b/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForIntersectionOfInterfacesCreated.php index 922f4588e..530923139 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForIntersectionOfInterfacesCreated.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForIntersectionOfInterfacesCreated.php @@ -30,6 +30,8 @@ final readonly class MockObjectForIntersectionOfInterfacesCreated implements Eve /** * @param list $interfaces + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, array $interfaces) { @@ -50,6 +52,9 @@ final readonly class MockObjectForIntersectionOfInterfacesCreated implements Eve return $this->interfaces; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectFromWsdlCreated.php b/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectFromWsdlCreated.php deleted file mode 100644 index 25f5ab8ef..000000000 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectFromWsdlCreated.php +++ /dev/null @@ -1,118 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Event\Test; - -use function sprintf; -use PHPUnit\Event\Event; -use PHPUnit\Event\Telemetry; - -/** - * @immutable - * - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - */ -final readonly class MockObjectFromWsdlCreated implements Event -{ - private Telemetry\Info $telemetryInfo; - private string $wsdlFile; - - /** - * @var class-string - */ - private string $originalClassName; - - /** - * @var class-string - */ - private string $mockClassName; - - /** - * @var list - */ - private array $methods; - private bool $callOriginalConstructor; - - /** - * @var list - */ - private array $options; - - /** - * @param class-string $originalClassName - * @param class-string $mockClassName - * @param list $methods - * @param list $options - */ - public function __construct(Telemetry\Info $telemetryInfo, string $wsdlFile, string $originalClassName, string $mockClassName, array $methods, bool $callOriginalConstructor, array $options) - { - $this->telemetryInfo = $telemetryInfo; - $this->wsdlFile = $wsdlFile; - $this->originalClassName = $originalClassName; - $this->mockClassName = $mockClassName; - $this->methods = $methods; - $this->callOriginalConstructor = $callOriginalConstructor; - $this->options = $options; - } - - public function telemetryInfo(): Telemetry\Info - { - return $this->telemetryInfo; - } - - public function wsdlFile(): string - { - return $this->wsdlFile; - } - - /** - * @return class-string - */ - public function originalClassName(): string - { - return $this->originalClassName; - } - - /** - * @return class-string - */ - public function mockClassName(): string - { - return $this->mockClassName; - } - - /** - * @return list - */ - public function methods(): array - { - return $this->methods; - } - - public function callOriginalConstructor(): bool - { - return $this->callOriginalConstructor; - } - - /** - * @return list - */ - public function options(): array - { - return $this->options; - } - - public function asString(): string - { - return sprintf( - 'Mock Object Created (%s)', - $this->wsdlFile, - ); - } -} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/PartialMockObjectCreated.php b/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/PartialMockObjectCreated.php index 218467bca..f1ae6f228 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/PartialMockObjectCreated.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/PartialMockObjectCreated.php @@ -34,6 +34,8 @@ final readonly class PartialMockObjectCreated implements Event /** * @param class-string $className + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, string $className, string ...$methodNames) { @@ -63,6 +65,9 @@ final readonly class PartialMockObjectCreated implements Event return $this->methodNames; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestProxyCreated.php b/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestProxyCreated.php deleted file mode 100644 index 83db771a7..000000000 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestProxyCreated.php +++ /dev/null @@ -1,66 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Event\Test; - -use function sprintf; -use PHPUnit\Event\Event; -use PHPUnit\Event\Telemetry; - -/** - * @immutable - * - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - */ -final readonly class TestProxyCreated implements Event -{ - private Telemetry\Info $telemetryInfo; - - /** - * @var class-string - */ - private string $className; - private string $constructorArguments; - - /** - * @param class-string $className - */ - public function __construct(Telemetry\Info $telemetryInfo, string $className, string $constructorArguments) - { - $this->telemetryInfo = $telemetryInfo; - $this->className = $className; - $this->constructorArguments = $constructorArguments; - } - - public function telemetryInfo(): Telemetry\Info - { - return $this->telemetryInfo; - } - - /** - * @return class-string - */ - public function className(): string - { - return $this->className; - } - - public function constructorArguments(): string - { - return $this->constructorArguments; - } - - public function asString(): string - { - return sprintf( - 'Test Proxy Created (%s)', - $this->className, - ); - } -} diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubCreated.php b/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubCreated.php index 4f0cb8606..e2251a4e5 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubCreated.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubCreated.php @@ -29,6 +29,8 @@ final readonly class TestStubCreated implements Event /** * @param class-string $className + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, string $className) { @@ -49,6 +51,9 @@ final readonly class TestStubCreated implements Event return $this->className; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubForIntersectionOfInterfacesCreated.php b/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubForIntersectionOfInterfacesCreated.php index b60a99423..82c66cdad 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubForIntersectionOfInterfacesCreated.php +++ b/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubForIntersectionOfInterfacesCreated.php @@ -30,6 +30,8 @@ final readonly class TestStubForIntersectionOfInterfacesCreated implements Event /** * @param list $interfaces + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, array $interfaces) { @@ -50,6 +52,9 @@ final readonly class TestStubForIntersectionOfInterfacesCreated implements Event return $this->interfaces; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/BootstrapFinished.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/BootstrapFinished.php index 8c3c1e097..28b73eba5 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/BootstrapFinished.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/BootstrapFinished.php @@ -21,8 +21,17 @@ use PHPUnit\Event\Telemetry; final readonly class BootstrapFinished implements Event { private Telemetry\Info $telemetryInfo; + + /** + * @var non-empty-string + */ private string $filename; + /** + * @param non-empty-string $filename + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, string $filename) { $this->telemetryInfo = $telemetryInfo; @@ -34,11 +43,17 @@ final readonly class BootstrapFinished implements Event return $this->telemetryInfo; } + /** + * @return non-empty-string + */ public function filename(): string { return $this->filename; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForTraitCreated.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessErrored.php similarity index 56% rename from vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForTraitCreated.php rename to vendor/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessErrored.php index fc5b545fe..839b54701 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForTraitCreated.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessErrored.php @@ -7,9 +7,8 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace PHPUnit\Event\Test; +namespace PHPUnit\Event\TestRunner; -use function sprintf; use PHPUnit\Event\Event; use PHPUnit\Event\Telemetry; @@ -18,22 +17,16 @@ use PHPUnit\Event\Telemetry; * * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ -final readonly class MockObjectForTraitCreated implements Event +final readonly class ChildProcessErrored implements Event { private Telemetry\Info $telemetryInfo; /** - * @var trait-string + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ - private string $traitName; - - /** - * @param trait-string $traitName - */ - public function __construct(Telemetry\Info $telemetryInfo, string $traitName) + public function __construct(Telemetry\Info $telemetryInfo) { $this->telemetryInfo = $telemetryInfo; - $this->traitName = $traitName; } public function telemetryInfo(): Telemetry\Info @@ -42,18 +35,10 @@ final readonly class MockObjectForTraitCreated implements Event } /** - * @return trait-string + * @return non-empty-string */ - public function traitName(): string - { - return $this->traitName; - } - public function asString(): string { - return sprintf( - 'Mock Object Created (%s)', - $this->traitName, - ); + return 'Child Process Errored'; } } diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessErroredSubscriber.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessErroredSubscriber.php new file mode 100644 index 000000000..6ced57982 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessErroredSubscriber.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\TestRunner; + +use PHPUnit\Event\Subscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +interface ChildProcessErroredSubscriber extends Subscriber +{ + public function notify(ChildProcessErrored $event): void; +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessFinished.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessFinished.php index 959829d27..0a82416d1 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessFinished.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessFinished.php @@ -23,6 +23,9 @@ final readonly class ChildProcessFinished implements Event private string $stdout; private string $stderr; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, string $stdout, string $stderr) { $this->telemetryInfo = $telemetryInfo; @@ -45,6 +48,9 @@ final readonly class ChildProcessFinished implements Event return $this->stderr; } + /** + * @return non-empty-string + */ public function asString(): string { return 'Child Process Finished'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessStarted.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessStarted.php index b819e1548..65995c592 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessStarted.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ChildProcessStarted.php @@ -21,6 +21,9 @@ final readonly class ChildProcessStarted implements Event { private Telemetry\Info $telemetryInfo; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo) { $this->telemetryInfo = $telemetryInfo; @@ -31,6 +34,9 @@ final readonly class ChildProcessStarted implements Event return $this->telemetryInfo; } + /** + * @return non-empty-string + */ public function asString(): string { return 'Child Process Started'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/Configured.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/Configured.php index 4bbbc24be..b8a028966 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/Configured.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/Configured.php @@ -21,6 +21,9 @@ final readonly class Configured implements Event private Telemetry\Info $telemetryInfo; private Configuration $configuration; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, Configuration $configuration) { $this->telemetryInfo = $telemetryInfo; @@ -37,6 +40,9 @@ final readonly class Configured implements Event return $this->configuration; } + /** + * @return non-empty-string + */ public function asString(): string { return 'Test Runner Configured'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/DeprecationTriggered.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/DeprecationTriggered.php index 6c94c7bbc..668af5afe 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/DeprecationTriggered.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/DeprecationTriggered.php @@ -21,8 +21,17 @@ use PHPUnit\Event\Telemetry; final readonly class DeprecationTriggered implements Event { private Telemetry\Info $telemetryInfo; + + /** + * @var non-empty-string + */ private string $message; + /** + * @param non-empty-string $message + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, string $message) { $this->telemetryInfo = $telemetryInfo; @@ -34,11 +43,17 @@ final readonly class DeprecationTriggered implements Event return $this->telemetryInfo; } + /** + * @return non-empty-string + */ public function message(): string { return $this->message; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/EventFacadeSealed.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/EventFacadeSealed.php index 89d89bc6e..ba0e56321 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/EventFacadeSealed.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/EventFacadeSealed.php @@ -21,6 +21,9 @@ final readonly class EventFacadeSealed implements Event { private Telemetry\Info $telemetryInfo; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo) { $this->telemetryInfo = $telemetryInfo; @@ -31,6 +34,9 @@ final readonly class EventFacadeSealed implements Event return $this->telemetryInfo; } + /** + * @return non-empty-string + */ public function asString(): string { return 'Event Facade Sealed'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExecutionAborted.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExecutionAborted.php index 048fac373..06d8a953e 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExecutionAborted.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExecutionAborted.php @@ -21,6 +21,9 @@ final readonly class ExecutionAborted implements Event { private Telemetry\Info $telemetryInfo; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo) { $this->telemetryInfo = $telemetryInfo; @@ -31,6 +34,9 @@ final readonly class ExecutionAborted implements Event return $this->telemetryInfo; } + /** + * @return non-empty-string + */ public function asString(): string { return 'Test Runner Execution Aborted'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExecutionFinished.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExecutionFinished.php index fadc005e9..e7eeff9b0 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExecutionFinished.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExecutionFinished.php @@ -21,6 +21,9 @@ final readonly class ExecutionFinished implements Event { private Telemetry\Info $telemetryInfo; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo) { $this->telemetryInfo = $telemetryInfo; @@ -31,6 +34,9 @@ final readonly class ExecutionFinished implements Event return $this->telemetryInfo; } + /** + * @return non-empty-string + */ public function asString(): string { return 'Test Runner Execution Finished'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExecutionStarted.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExecutionStarted.php index 00ae63a0b..5f6c5ecf0 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExecutionStarted.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExecutionStarted.php @@ -24,6 +24,9 @@ final readonly class ExecutionStarted implements Event private Telemetry\Info $telemetryInfo; private TestSuite $testSuite; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, TestSuite $testSuite) { $this->telemetryInfo = $telemetryInfo; @@ -40,6 +43,9 @@ final readonly class ExecutionStarted implements Event return $this->testSuite; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExtensionBootstrapped.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExtensionBootstrapped.php index d6ccfeed0..0df45542c 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExtensionBootstrapped.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExtensionBootstrapped.php @@ -35,6 +35,8 @@ final readonly class ExtensionBootstrapped implements Event /** * @param class-string $className * @param array $parameters + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(Telemetry\Info $telemetryInfo, string $className, array $parameters) { @@ -64,6 +66,9 @@ final readonly class ExtensionBootstrapped implements Event return $this->parameters; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExtensionLoadedFromPhar.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExtensionLoadedFromPhar.php index 8cf8b64b8..6ba0e9f2d 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExtensionLoadedFromPhar.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/ExtensionLoadedFromPhar.php @@ -21,10 +21,29 @@ use PHPUnit\Event\Telemetry; final readonly class ExtensionLoadedFromPhar implements Event { private Telemetry\Info $telemetryInfo; + + /** + * @var non-empty-string + */ private string $filename; + + /** + * @var non-empty-string + */ private string $name; + + /** + * @var non-empty-string + */ private string $version; + /** + * @param non-empty-string $filename + * @param non-empty-string $name + * @param non-empty-string $version + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, string $filename, string $name, string $version) { $this->telemetryInfo = $telemetryInfo; @@ -38,21 +57,33 @@ final readonly class ExtensionLoadedFromPhar implements Event return $this->telemetryInfo; } + /** + * @return non-empty-string + */ public function filename(): string { return $this->filename; } + /** + * @return non-empty-string + */ public function name(): string { return $this->name; } + /** + * @return non-empty-string + */ public function version(): string { return $this->version; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/Finished.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/Finished.php index ff982ce64..643ebe4e4 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/Finished.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/Finished.php @@ -21,6 +21,9 @@ final readonly class Finished implements Event { private Telemetry\Info $telemetryInfo; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo) { $this->telemetryInfo = $telemetryInfo; @@ -31,6 +34,9 @@ final readonly class Finished implements Event return $this->telemetryInfo; } + /** + * @return non-empty-string + */ public function asString(): string { return 'Test Runner Finished'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionDisabled.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionDisabled.php index 37992abe0..aff843880 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionDisabled.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionDisabled.php @@ -21,6 +21,9 @@ final readonly class GarbageCollectionDisabled implements Event { private Telemetry\Info $telemetryInfo; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo) { $this->telemetryInfo = $telemetryInfo; @@ -31,6 +34,9 @@ final readonly class GarbageCollectionDisabled implements Event return $this->telemetryInfo; } + /** + * @return non-empty-string + */ public function asString(): string { return 'Test Runner Disabled Garbage Collection'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionEnabled.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionEnabled.php index ae5476caa..a41171b88 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionEnabled.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionEnabled.php @@ -21,6 +21,9 @@ final readonly class GarbageCollectionEnabled implements Event { private Telemetry\Info $telemetryInfo; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo) { $this->telemetryInfo = $telemetryInfo; @@ -31,6 +34,9 @@ final readonly class GarbageCollectionEnabled implements Event return $this->telemetryInfo; } + /** + * @return non-empty-string + */ public function asString(): string { return 'Test Runner Enabled Garbage Collection'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionTriggered.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionTriggered.php index 1c7b43dfa..0d479dd74 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionTriggered.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/GarbageCollectionTriggered.php @@ -21,6 +21,9 @@ final readonly class GarbageCollectionTriggered implements Event { private Telemetry\Info $telemetryInfo; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo) { $this->telemetryInfo = $telemetryInfo; @@ -31,6 +34,9 @@ final readonly class GarbageCollectionTriggered implements Event return $this->telemetryInfo; } + /** + * @return non-empty-string + */ public function asString(): string { return 'Test Runner Triggered Garbage Collection'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForAbstractClassCreated.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/NoticeTriggered.php similarity index 65% rename from vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForAbstractClassCreated.php rename to vendor/phpunit/phpunit/src/Event/Events/TestRunner/NoticeTriggered.php index 6dcc79a73..1fd25ad46 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForAbstractClassCreated.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/NoticeTriggered.php @@ -7,7 +7,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace PHPUnit\Event\Test; +namespace PHPUnit\Event\TestRunner; use function sprintf; use PHPUnit\Event\Event; @@ -18,22 +18,18 @@ use PHPUnit\Event\Telemetry; * * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ -final readonly class MockObjectForAbstractClassCreated implements Event +final readonly class NoticeTriggered implements Event { private Telemetry\Info $telemetryInfo; + private string $message; /** - * @var class-string + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ - private string $className; - - /** - * @param class-string $className - */ - public function __construct(Telemetry\Info $telemetryInfo, string $className) + public function __construct(Telemetry\Info $telemetryInfo, string $message) { $this->telemetryInfo = $telemetryInfo; - $this->className = $className; + $this->message = $message; } public function telemetryInfo(): Telemetry\Info @@ -41,19 +37,19 @@ final readonly class MockObjectForAbstractClassCreated implements Event return $this->telemetryInfo; } - /** - * @return class-string - */ - public function className(): string + public function message(): string { - return $this->className; + return $this->message; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( - 'Mock Object Created (%s)', - $this->className, + 'Test Runner Triggered Notice (%s)', + $this->message, ); } } diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/NoticeTriggeredSubscriber.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/NoticeTriggeredSubscriber.php new file mode 100644 index 000000000..be76b2c63 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/NoticeTriggeredSubscriber.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\TestRunner; + +use PHPUnit\Event\Subscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +interface NoticeTriggeredSubscriber extends Subscriber +{ + public function notify(NoticeTriggered $event): void; +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/Started.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/Started.php index c38f275a1..3d93f3003 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/Started.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/Started.php @@ -21,6 +21,9 @@ final readonly class Started implements Event { private Telemetry\Info $telemetryInfo; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo) { $this->telemetryInfo = $telemetryInfo; @@ -31,6 +34,9 @@ final readonly class Started implements Event return $this->telemetryInfo; } + /** + * @return non-empty-string + */ public function asString(): string { return 'Test Runner Started'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageFinished.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageFinished.php new file mode 100644 index 000000000..8acbab488 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageFinished.php @@ -0,0 +1,80 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\TestRunner; + +use function sprintf; +use PHPUnit\Event\Event; +use PHPUnit\Event\Telemetry; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class StaticAnalysisForCodeCoverageFinished implements Event +{ + private Telemetry\Info $telemetryInfo; + + /** + * @var non-negative-int + */ + private int $cacheHits; + + /** + * @var non-negative-int + */ + private int $cacheMisses; + + /** + * @param non-negative-int $cacheHits + * @param non-negative-int $cacheMisses + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ + public function __construct(Telemetry\Info $telemetryInfo, int $cacheHits, int $cacheMisses) + { + $this->telemetryInfo = $telemetryInfo; + $this->cacheHits = $cacheHits; + $this->cacheMisses = $cacheMisses; + } + + public function telemetryInfo(): Telemetry\Info + { + return $this->telemetryInfo; + } + + /** + * @return non-negative-int + */ + public function cacheHits(): int + { + return $this->cacheHits; + } + + /** + * @return non-negative-int + */ + public function cacheMisses(): int + { + return $this->cacheMisses; + } + + /** + * @return non-empty-string + */ + public function asString(): string + { + return sprintf( + 'Static Analysis for Code Coverage Finished (%d cache hits, %d cache misses)', + $this->cacheHits, + $this->cacheMisses, + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageFinishedSubscriber.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageFinishedSubscriber.php new file mode 100644 index 000000000..eaf4f3485 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageFinishedSubscriber.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\TestRunner; + +use PHPUnit\Event\Subscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +interface StaticAnalysisForCodeCoverageFinishedSubscriber extends Subscriber +{ + public function notify(StaticAnalysisForCodeCoverageFinished $event): void; +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageStarted.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageStarted.php new file mode 100644 index 000000000..cfdf18c5e --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageStarted.php @@ -0,0 +1,44 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\TestRunner; + +use PHPUnit\Event\Event; +use PHPUnit\Event\Telemetry; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class StaticAnalysisForCodeCoverageStarted implements Event +{ + private Telemetry\Info $telemetryInfo; + + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ + public function __construct(Telemetry\Info $telemetryInfo) + { + $this->telemetryInfo = $telemetryInfo; + } + + public function telemetryInfo(): Telemetry\Info + { + return $this->telemetryInfo; + } + + /** + * @return non-empty-string + */ + public function asString(): string + { + return 'Static Analysis for Code Coverage Started'; + } +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageStartedSubscriber.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageStartedSubscriber.php new file mode 100644 index 000000000..642bf712c --- /dev/null +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/StaticAnalysisForCodeCoverageStartedSubscriber.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Event\TestRunner; + +use PHPUnit\Event\Subscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +interface StaticAnalysisForCodeCoverageStartedSubscriber extends Subscriber +{ + public function notify(StaticAnalysisForCodeCoverageStarted $event): void; +} diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/WarningTriggered.php b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/WarningTriggered.php index d175a5801..2b99c8790 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestRunner/WarningTriggered.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestRunner/WarningTriggered.php @@ -21,8 +21,17 @@ use PHPUnit\Event\Telemetry; final readonly class WarningTriggered implements Event { private Telemetry\Info $telemetryInfo; + + /** + * @var non-empty-string + */ private string $message; + /** + * @param non-empty-string $message + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, string $message) { $this->telemetryInfo = $telemetryInfo; @@ -34,11 +43,17 @@ final readonly class WarningTriggered implements Event return $this->telemetryInfo; } + /** + * @return non-empty-string + */ public function message(): string { return $this->message; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Filtered.php b/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Filtered.php index 24ee5ee0b..2576f111b 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Filtered.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Filtered.php @@ -23,6 +23,9 @@ final readonly class Filtered implements Event private Telemetry\Info $telemetryInfo; private TestSuite $testSuite; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, TestSuite $testSuite) { $this->telemetryInfo = $telemetryInfo; @@ -39,6 +42,9 @@ final readonly class Filtered implements Event return $this->testSuite; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Finished.php b/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Finished.php index beaf30b2d..378768de0 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Finished.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Finished.php @@ -23,6 +23,9 @@ final readonly class Finished implements Event private Telemetry\Info $telemetryInfo; private TestSuite $testSuite; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, TestSuite $testSuite) { $this->telemetryInfo = $telemetryInfo; @@ -39,6 +42,9 @@ final readonly class Finished implements Event return $this->testSuite; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Loaded.php b/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Loaded.php index be7c47d8d..7f69d3378 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Loaded.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Loaded.php @@ -23,6 +23,9 @@ final readonly class Loaded implements Event private Telemetry\Info $telemetryInfo; private TestSuite $testSuite; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, TestSuite $testSuite) { $this->telemetryInfo = $telemetryInfo; @@ -39,6 +42,9 @@ final readonly class Loaded implements Event return $this->testSuite; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Skipped.php b/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Skipped.php index 3c0ff2646..614f4dd16 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Skipped.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Skipped.php @@ -24,6 +24,9 @@ final readonly class Skipped implements Event private TestSuite $testSuite; private string $message; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, TestSuite $testSuite, string $message) { $this->telemetryInfo = $telemetryInfo; @@ -46,6 +49,9 @@ final readonly class Skipped implements Event return $this->message; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Sorted.php b/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Sorted.php index 971ab249c..a6830bb36 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Sorted.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Sorted.php @@ -24,6 +24,9 @@ final readonly class Sorted implements Event private int $executionOrderDefects; private bool $resolveDependencies; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, int $executionOrder, int $executionOrderDefects, bool $resolveDependencies) { $this->telemetryInfo = $telemetryInfo; @@ -52,6 +55,9 @@ final readonly class Sorted implements Event return $this->resolveDependencies; } + /** + * @return non-empty-string + */ public function asString(): string { return 'Test Suite Sorted'; diff --git a/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Started.php b/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Started.php index 5b364b194..c558d7679 100644 --- a/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Started.php +++ b/vendor/phpunit/phpunit/src/Event/Events/TestSuite/Started.php @@ -23,6 +23,9 @@ final readonly class Started implements Event private Telemetry\Info $telemetryInfo; private TestSuite $testSuite; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Telemetry\Info $telemetryInfo, TestSuite $testSuite) { $this->telemetryInfo = $telemetryInfo; @@ -39,6 +42,9 @@ final readonly class Started implements Event return $this->testSuite; } + /** + * @return non-empty-string + */ public function asString(): string { return sprintf( diff --git a/vendor/phpunit/phpunit/src/Event/Facade.php b/vendor/phpunit/phpunit/src/Event/Facade.php index 12e9b072d..946292cb2 100644 --- a/vendor/phpunit/phpunit/src/Event/Facade.php +++ b/vendor/phpunit/phpunit/src/Event/Facade.php @@ -9,13 +9,10 @@ */ namespace PHPUnit\Event; -use const PHP_VERSION; use function assert; use function interface_exists; -use function version_compare; use PHPUnit\Event\Telemetry\HRTime; -use PHPUnit\Event\Telemetry\Php81GarbageCollectorStatusProvider; -use PHPUnit\Event\Telemetry\Php83GarbageCollectorStatusProvider; +use PHPUnit\Event\Telemetry\SystemGarbageCollectorStatusProvider; use PHPUnit\Runner\DeprecationCollector\Facade as DeprecationCollector; /** @@ -104,7 +101,7 @@ final class Facade new Telemetry\System( new Telemetry\SystemStopWatchWithOffset($offset), new Telemetry\SystemMemoryMeter, - $this->garbageCollectorStatusProvider(), + new SystemGarbageCollectorStatusProvider, ), ); @@ -144,7 +141,7 @@ final class Facade return new Telemetry\System( new Telemetry\SystemStopWatch, new Telemetry\SystemMemoryMeter, - $this->garbageCollectorStatusProvider(), + new SystemGarbageCollectorStatusProvider, ); } @@ -183,17 +180,23 @@ final class Facade Test\MarkedIncomplete::class, Test\AfterLastTestMethodCalled::class, Test\AfterLastTestMethodErrored::class, + Test\AfterLastTestMethodFailed::class, Test\AfterLastTestMethodFinished::class, Test\AfterTestMethodCalled::class, Test\AfterTestMethodErrored::class, + Test\AfterTestMethodFailed::class, Test\AfterTestMethodFinished::class, Test\BeforeFirstTestMethodCalled::class, Test\BeforeFirstTestMethodErrored::class, + Test\BeforeFirstTestMethodFailed::class, Test\BeforeFirstTestMethodFinished::class, Test\BeforeTestMethodCalled::class, Test\BeforeTestMethodErrored::class, + Test\BeforeTestMethodFailed::class, Test\BeforeTestMethodFinished::class, + Test\AdditionalInformationProvided::class, Test\ComparatorRegistered::class, + Test\CustomTestMethodInvocationUsed::class, Test\ConsideredRisky::class, Test\DeprecationTriggered::class, Test\Errored::class, @@ -205,29 +208,29 @@ final class Facade Test\PhpDeprecationTriggered::class, Test\PhpNoticeTriggered::class, Test\PhpunitDeprecationTriggered::class, + Test\PhpunitNoticeTriggered::class, Test\PhpunitErrorTriggered::class, Test\PhpunitWarningTriggered::class, Test\PhpWarningTriggered::class, Test\PostConditionCalled::class, Test\PostConditionErrored::class, + Test\PostConditionFailed::class, Test\PostConditionFinished::class, Test\PreConditionCalled::class, Test\PreConditionErrored::class, + Test\PreConditionFailed::class, Test\PreConditionFinished::class, Test\PreparationStarted::class, Test\Prepared::class, + Test\PreparationErrored::class, Test\PreparationFailed::class, Test\PrintedUnexpectedOutput::class, Test\Skipped::class, Test\WarningTriggered::class, Test\MockObjectCreated::class, - Test\MockObjectForAbstractClassCreated::class, Test\MockObjectForIntersectionOfInterfacesCreated::class, - Test\MockObjectForTraitCreated::class, - Test\MockObjectFromWsdlCreated::class, Test\PartialMockObjectCreated::class, - Test\TestProxyCreated::class, Test\TestStubCreated::class, Test\TestStubForIntersectionOfInterfacesCreated::class, @@ -242,12 +245,16 @@ final class Facade TestRunner\Finished::class, TestRunner\Started::class, TestRunner\DeprecationTriggered::class, + TestRunner\NoticeTriggered::class, TestRunner\WarningTriggered::class, TestRunner\GarbageCollectionDisabled::class, TestRunner\GarbageCollectionTriggered::class, TestRunner\GarbageCollectionEnabled::class, - TestRunner\ChildProcessFinished::class, TestRunner\ChildProcessStarted::class, + TestRunner\ChildProcessErrored::class, + TestRunner\ChildProcessFinished::class, + TestRunner\StaticAnalysisForCodeCoverageFinished::class, + TestRunner\StaticAnalysisForCodeCoverageStarted::class, TestSuite\Filtered::class, TestSuite\Finished::class, @@ -265,15 +272,4 @@ final class Facade $typeMap->addMapping($subscriberInterface, $eventClass); } } - - private function garbageCollectorStatusProvider(): Telemetry\GarbageCollectorStatusProvider - { - if (version_compare(PHP_VERSION, '8.3.0', '>=')) { - return new Php83GarbageCollectorStatusProvider; - } - - // @codeCoverageIgnoreStart - return new Php81GarbageCollectorStatusProvider; - // @codeCoverageIgnoreEnd - } } diff --git a/vendor/phpunit/phpunit/src/Event/Value/ClassMethod.php b/vendor/phpunit/phpunit/src/Event/Value/ClassMethod.php index 2a94033a5..866061bac 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/ClassMethod.php +++ b/vendor/phpunit/phpunit/src/Event/Value/ClassMethod.php @@ -29,6 +29,8 @@ final readonly class ClassMethod /** * @param class-string $className * @param non-empty-string $methodName + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(string $className, string $methodName) { diff --git a/vendor/phpunit/phpunit/src/Event/Value/ComparisonFailure.php b/vendor/phpunit/phpunit/src/Event/Value/ComparisonFailure.php index c31f93e65..607e10f44 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/ComparisonFailure.php +++ b/vendor/phpunit/phpunit/src/Event/Value/ComparisonFailure.php @@ -20,6 +20,9 @@ final readonly class ComparisonFailure private string $actual; private string $diff; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(string $expected, string $actual, string $diff) { $this->expected = $expected; diff --git a/vendor/phpunit/phpunit/src/Event/Value/ComparisonFailureBuilder.php b/vendor/phpunit/phpunit/src/Event/Value/ComparisonFailureBuilder.php index 68f5c4a0b..53fe0d09a 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/ComparisonFailureBuilder.php +++ b/vendor/phpunit/phpunit/src/Event/Value/ComparisonFailureBuilder.php @@ -28,19 +28,19 @@ final readonly class ComparisonFailureBuilder return null; } - if (!$t->getComparisonFailure()) { + if ($t->getComparisonFailure() === null) { return null; } $expectedAsString = $t->getComparisonFailure()->getExpectedAsString(); - if (empty($expectedAsString)) { + if ($expectedAsString === '') { $expectedAsString = self::mapScalarValueToString($t->getComparisonFailure()->getExpected()); } $actualAsString = $t->getComparisonFailure()->getActualAsString(); - if (empty($actualAsString)) { + if ($actualAsString === '') { $actualAsString = self::mapScalarValueToString($t->getComparisonFailure()->getActual()); } diff --git a/vendor/phpunit/phpunit/src/Event/Value/Runtime/OperatingSystem.php b/vendor/phpunit/phpunit/src/Event/Value/Runtime/OperatingSystem.php index 508d809f1..e37107183 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Runtime/OperatingSystem.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Runtime/OperatingSystem.php @@ -22,6 +22,9 @@ final readonly class OperatingSystem private string $operatingSystem; private string $operatingSystemFamily; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct() { $this->operatingSystem = PHP_OS; diff --git a/vendor/phpunit/phpunit/src/Event/Value/Runtime/PHP.php b/vendor/phpunit/phpunit/src/Event/Value/Runtime/PHP.php index 46004f98c..5a8639bfe 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Runtime/PHP.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Runtime/PHP.php @@ -40,6 +40,9 @@ final readonly class PHP */ private array $extensions; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct() { $this->version = PHP_VERSION; diff --git a/vendor/phpunit/phpunit/src/Event/Value/Runtime/PHPUnit.php b/vendor/phpunit/phpunit/src/Event/Value/Runtime/PHPUnit.php index 7f85133d2..000bca30d 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Runtime/PHPUnit.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Runtime/PHPUnit.php @@ -21,6 +21,9 @@ final readonly class PHPUnit private string $versionId; private string $releaseSeries; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct() { $this->versionId = Version::id(); diff --git a/vendor/phpunit/phpunit/src/Event/Value/Runtime/Runtime.php b/vendor/phpunit/phpunit/src/Event/Value/Runtime/Runtime.php index 552ec9887..c7a256300 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Runtime/Runtime.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Runtime/Runtime.php @@ -22,6 +22,9 @@ final readonly class Runtime private PHP $php; private PHPUnit $phpunit; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct() { $this->operatingSystem = new OperatingSystem; diff --git a/vendor/phpunit/phpunit/src/Event/Value/Telemetry/GarbageCollectorStatus.php b/vendor/phpunit/phpunit/src/Event/Value/Telemetry/GarbageCollectorStatus.php index 23260de46..6b3e354c3 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Telemetry/GarbageCollectorStatus.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Telemetry/GarbageCollectorStatus.php @@ -9,8 +9,6 @@ */ namespace PHPUnit\Event\Telemetry; -use PHPUnit\Event\RuntimeException; - /** * @immutable * @@ -22,16 +20,19 @@ final readonly class GarbageCollectorStatus private int $collected; private int $threshold; private int $roots; - private ?float $applicationTime; - private ?float $collectorTime; - private ?float $destructorTime; - private ?float $freeTime; - private ?bool $running; - private ?bool $protected; - private ?bool $full; - private ?int $bufferSize; + private float $applicationTime; + private float $collectorTime; + private float $destructorTime; + private float $freeTime; + private bool $running; + private bool $protected; + private bool $full; + private int $bufferSize; - public function __construct(int $runs, int $collected, int $threshold, int $roots, ?float $applicationTime, ?float $collectorTime, ?float $destructorTime, ?float $freeTime, ?bool $running, ?bool $protected, ?bool $full, ?int $bufferSize) + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ + public function __construct(int $runs, int $collected, int $threshold, int $roots, float $applicationTime, float $collectorTime, float $destructorTime, float $freeTime, bool $running, bool $protected, bool $full, int $bufferSize) { $this->runs = $runs; $this->collected = $collected; @@ -67,114 +68,43 @@ final readonly class GarbageCollectorStatus return $this->roots; } - /** - * @phpstan-assert-if-true !null $this->applicationTime - * @phpstan-assert-if-true !null $this->collectorTime - * @phpstan-assert-if-true !null $this->destructorTime - * @phpstan-assert-if-true !null $this->freeTime - * @phpstan-assert-if-true !null $this->running - * @phpstan-assert-if-true !null $this->protected - * @phpstan-assert-if-true !null $this->full - * @phpstan-assert-if-true !null $this->bufferSize - */ - public function hasExtendedInformation(): bool - { - return $this->running !== null; - } - - /** - * @throws RuntimeException on PHP < 8.3 - */ public function applicationTime(): float { - if ($this->applicationTime === null) { - throw new RuntimeException('Information not available'); - } - return $this->applicationTime; } - /** - * @throws RuntimeException on PHP < 8.3 - */ public function collectorTime(): float { - if ($this->collectorTime === null) { - throw new RuntimeException('Information not available'); - } - return $this->collectorTime; } - /** - * @throws RuntimeException on PHP < 8.3 - */ public function destructorTime(): float { - if ($this->destructorTime === null) { - throw new RuntimeException('Information not available'); - } - return $this->destructorTime; } - /** - * @throws RuntimeException on PHP < 8.3 - */ public function freeTime(): float { - if ($this->freeTime === null) { - throw new RuntimeException('Information not available'); - } - return $this->freeTime; } - /** - * @throws RuntimeException on PHP < 8.3 - */ public function isRunning(): bool { - if ($this->running === null) { - throw new RuntimeException('Information not available'); - } - return $this->running; } - /** - * @throws RuntimeException on PHP < 8.3 - */ public function isProtected(): bool { - if ($this->protected === null) { - throw new RuntimeException('Information not available'); - } - return $this->protected; } - /** - * @throws RuntimeException on PHP < 8.3 - */ public function isFull(): bool { - if ($this->full === null) { - throw new RuntimeException('Information not available'); - } - return $this->full; } - /** - * @throws RuntimeException on PHP < 8.3 - */ public function bufferSize(): int { - if ($this->bufferSize === null) { - throw new RuntimeException('Information not available'); - } - return $this->bufferSize; } } diff --git a/vendor/phpunit/phpunit/src/Event/Value/Telemetry/Info.php b/vendor/phpunit/phpunit/src/Event/Value/Telemetry/Info.php index a0d0a99f1..62468e714 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Telemetry/Info.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Telemetry/Info.php @@ -24,6 +24,9 @@ final readonly class Info private Duration $durationSincePrevious; private MemoryUsage $memorySincePrevious; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(Snapshot $current, Duration $durationSinceStart, MemoryUsage $memorySinceStart, Duration $durationSincePrevious, MemoryUsage $memorySincePrevious) { $this->current = $current; diff --git a/vendor/phpunit/phpunit/src/Event/Value/Telemetry/Php83GarbageCollectorStatusProvider.php b/vendor/phpunit/phpunit/src/Event/Value/Telemetry/Php83GarbageCollectorStatusProvider.php deleted file mode 100644 index 5e02c83eb..000000000 --- a/vendor/phpunit/phpunit/src/Event/Value/Telemetry/Php83GarbageCollectorStatusProvider.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Event\Telemetry; - -use function gc_status; - -/** - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - * - * @internal This class is not covered by the backward compatibility promise for PHPUnit - */ -final readonly class Php83GarbageCollectorStatusProvider implements GarbageCollectorStatusProvider -{ - public function status(): GarbageCollectorStatus - { - $status = gc_status(); - - return new GarbageCollectorStatus( - $status['runs'], - $status['collected'], - $status['threshold'], - $status['roots'], - /** @phpstan-ignore offsetAccess.notFound */ - $status['application_time'], - /** @phpstan-ignore offsetAccess.notFound */ - $status['collector_time'], - /** @phpstan-ignore offsetAccess.notFound */ - $status['destructor_time'], - /** @phpstan-ignore offsetAccess.notFound */ - $status['free_time'], - /** @phpstan-ignore offsetAccess.notFound */ - $status['running'], - /** @phpstan-ignore offsetAccess.notFound */ - $status['protected'], - /** @phpstan-ignore offsetAccess.notFound */ - $status['full'], - /** @phpstan-ignore offsetAccess.notFound */ - $status['buffer_size'], - ); - } -} diff --git a/vendor/phpunit/phpunit/src/Event/Value/Telemetry/Snapshot.php b/vendor/phpunit/phpunit/src/Event/Value/Telemetry/Snapshot.php index 0f00f5d80..c69f4d66a 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Telemetry/Snapshot.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Telemetry/Snapshot.php @@ -21,6 +21,9 @@ final readonly class Snapshot private MemoryUsage $peakMemoryUsage; private GarbageCollectorStatus $garbageCollectorStatus; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(HRTime $time, MemoryUsage $memoryUsage, MemoryUsage $peakMemoryUsage, GarbageCollectorStatus $garbageCollectorStatus) { $this->time = $time; diff --git a/vendor/phpunit/phpunit/src/Event/Value/Telemetry/System.php b/vendor/phpunit/phpunit/src/Event/Value/Telemetry/System.php index 0a178363e..6d94d3338 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Telemetry/System.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Telemetry/System.php @@ -20,6 +20,9 @@ final readonly class System private MemoryMeter $memoryMeter; private GarbageCollectorStatusProvider $garbageCollectorStatusProvider; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(StopWatch $stopWatch, MemoryMeter $memoryMeter, GarbageCollectorStatusProvider $garbageCollectorStatusProvider) { $this->stopWatch = $stopWatch; diff --git a/vendor/phpunit/phpunit/src/Event/Value/Telemetry/Php81GarbageCollectorStatusProvider.php b/vendor/phpunit/phpunit/src/Event/Value/Telemetry/SystemGarbageCollectorStatusProvider.php similarity index 67% rename from vendor/phpunit/phpunit/src/Event/Value/Telemetry/Php81GarbageCollectorStatusProvider.php rename to vendor/phpunit/phpunit/src/Event/Value/Telemetry/SystemGarbageCollectorStatusProvider.php index f909c1163..3f33d690d 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Telemetry/Php81GarbageCollectorStatusProvider.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Telemetry/SystemGarbageCollectorStatusProvider.php @@ -15,10 +15,8 @@ use function gc_status; * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit * * @internal This class is not covered by the backward compatibility promise for PHPUnit - * - * @codeCoverageIgnore */ -final readonly class Php81GarbageCollectorStatusProvider implements GarbageCollectorStatusProvider +final readonly class SystemGarbageCollectorStatusProvider implements GarbageCollectorStatusProvider { public function status(): GarbageCollectorStatus { @@ -29,14 +27,14 @@ final readonly class Php81GarbageCollectorStatusProvider implements GarbageColle $status['collected'], $status['threshold'], $status['roots'], - null, - null, - null, - null, - null, - null, - null, - null, + $status['application_time'], + $status['collector_time'], + $status['destructor_time'], + $status['free_time'], + $status['running'], + $status['protected'], + $status['full'], + $status['buffer_size'], ); } } diff --git a/vendor/phpunit/phpunit/src/Event/Value/Telemetry/SystemStopWatchWithOffset.php b/vendor/phpunit/phpunit/src/Event/Value/Telemetry/SystemStopWatchWithOffset.php index d27fd98c1..1a586079e 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Telemetry/SystemStopWatchWithOffset.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Telemetry/SystemStopWatchWithOffset.php @@ -23,6 +23,9 @@ final class SystemStopWatchWithOffset implements StopWatch { private ?HRTime $offset; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(HRTime $offset) { $this->offset = $offset; diff --git a/vendor/phpunit/phpunit/src/Event/Value/Test/Test.php b/vendor/phpunit/phpunit/src/Event/Value/Test/Test.php index 43ed73eb7..943c056a1 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Test/Test.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Test/Test.php @@ -23,6 +23,8 @@ abstract readonly class Test /** * @param non-empty-string $file + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(string $file) { diff --git a/vendor/phpunit/phpunit/src/Event/Value/Test/TestCollectionIterator.php b/vendor/phpunit/phpunit/src/Event/Value/Test/TestCollectionIterator.php index 18fbcacf2..b141070b7 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Test/TestCollectionIterator.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Test/TestCollectionIterator.php @@ -29,6 +29,9 @@ final class TestCollectionIterator implements Iterator */ private int $position = 0; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(TestCollection $tests) { $this->tests = $tests->asArray(); diff --git a/vendor/phpunit/phpunit/src/Event/Value/Test/TestData/TestDataCollectionIterator.php b/vendor/phpunit/phpunit/src/Event/Value/Test/TestData/TestDataCollectionIterator.php index 6774f492f..2c84c3f6c 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Test/TestData/TestDataCollectionIterator.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Test/TestData/TestDataCollectionIterator.php @@ -29,6 +29,9 @@ final class TestDataCollectionIterator implements Iterator */ private int $position = 0; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(TestDataCollection $data) { $this->data = $data->asArray(); diff --git a/vendor/phpunit/phpunit/src/Event/Value/Test/TestDox.php b/vendor/phpunit/phpunit/src/Event/Value/Test/TestDox.php index 53604dbfc..aacf20dc7 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Test/TestDox.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Test/TestDox.php @@ -20,6 +20,9 @@ final readonly class TestDox private string $prettifiedMethodName; private string $prettifiedAndColorizedMethodName; + /** + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ public function __construct(string $prettifiedClassName, string $prettifiedMethodName, string $prettifiedAndColorizedMethodName) { $this->prettifiedClassName = $prettifiedClassName; diff --git a/vendor/phpunit/phpunit/src/Event/Value/Test/TestMethod.php b/vendor/phpunit/phpunit/src/Event/Value/Test/TestMethod.php index 4c9726454..3cc259083 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Test/TestMethod.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Test/TestMethod.php @@ -44,6 +44,8 @@ final readonly class TestMethod extends Test * @param non-empty-string $methodName * @param non-empty-string $file * @param non-negative-int $line + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(string $className, string $methodName, string $file, int $line, TestDox $testDox, MetadataCollection $metadata, TestDataCollection $testData) { diff --git a/vendor/phpunit/phpunit/src/Event/Value/Test/TestMethodBuilder.php b/vendor/phpunit/phpunit/src/Event/Value/Test/TestMethodBuilder.php index 48d7c499a..dc1a32ef8 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Test/TestMethodBuilder.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Test/TestMethodBuilder.php @@ -9,7 +9,6 @@ */ namespace PHPUnit\Event\Code; -use function assert; use function is_numeric; use PHPUnit\Event\TestData\DataFromDataProvider; use PHPUnit\Event\TestData\DataFromTestDependency; @@ -27,20 +26,23 @@ use PHPUnit\Util\Test as TestUtil; */ final readonly class TestMethodBuilder { - public static function fromTestCase(TestCase $testCase): TestMethod + public static function fromTestCase(TestCase $testCase, bool $useTestCaseForTestDox = true): TestMethod { $methodName = $testCase->name(); + $location = Reflection::sourceLocationFor($testCase::class, $methodName); - assert(!empty($methodName)); - - $location = Reflection::sourceLocationFor($testCase::class, $methodName); + if ($useTestCaseForTestDox) { + $testDox = TestDoxBuilder::fromTestCase($testCase); + } else { + $testDox = TestDoxBuilder::fromClassNameAndMethodName($testCase::class, $testCase->name()); + } return new TestMethod( $testCase::class, $methodName, $location['file'], $location['line'], - TestDoxBuilder::fromTestCase($testCase), + $testDox, MetadataRegistry::parser()->forClassAndMethod($testCase::class, $methodName), self::dataFor($testCase), ); diff --git a/vendor/phpunit/phpunit/src/Event/Value/TestSuite/TestSuite.php b/vendor/phpunit/phpunit/src/Event/Value/TestSuite/TestSuite.php index 783de57bd..73672ae00 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/TestSuite/TestSuite.php +++ b/vendor/phpunit/phpunit/src/Event/Value/TestSuite/TestSuite.php @@ -27,6 +27,8 @@ abstract readonly class TestSuite /** * @param non-empty-string $name + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(string $name, int $size, TestCollection $tests) { diff --git a/vendor/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteBuilder.php b/vendor/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteBuilder.php index a1a5bed3b..3192636ba 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteBuilder.php +++ b/vendor/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteBuilder.php @@ -11,6 +11,7 @@ namespace PHPUnit\Event\TestSuite; use function assert; use function class_exists; +use function count; use function explode; use function method_exists; use PHPUnit\Event\Code\Test; @@ -19,7 +20,7 @@ use PHPUnit\Event\RuntimeException; use PHPUnit\Framework\DataProviderTestSuite; use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestSuite as FrameworkTestSuite; -use PHPUnit\Runner\PhptTestCase; +use PHPUnit\Runner\Phpt\TestCase as PhptTestCase; use ReflectionClass; use ReflectionMethod; @@ -40,6 +41,7 @@ final readonly class TestSuiteBuilder self::process($testSuite, $tests); if ($testSuite instanceof DataProviderTestSuite) { + assert(count(explode('::', $testSuite->name())) === 2); [$className, $methodName] = explode('::', $testSuite->name()); assert(class_exists($className)); diff --git a/vendor/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteForTestClass.php b/vendor/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteForTestClass.php index 34ad9d5ea..77ba7ed74 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteForTestClass.php +++ b/vendor/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteForTestClass.php @@ -27,6 +27,8 @@ final readonly class TestSuiteForTestClass extends TestSuite /** * @param class-string $name + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(string $name, int $size, TestCollection $tests, string $file, int $line) { diff --git a/vendor/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteForTestMethodWithDataProvider.php b/vendor/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteForTestMethodWithDataProvider.php index 67a94391d..d1510f401 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteForTestMethodWithDataProvider.php +++ b/vendor/phpunit/phpunit/src/Event/Value/TestSuite/TestSuiteForTestMethodWithDataProvider.php @@ -34,6 +34,8 @@ final readonly class TestSuiteForTestMethodWithDataProvider extends TestSuite * @param non-empty-string $name * @param class-string $className * @param non-empty-string $methodName + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(string $name, int $size, TestCollection $tests, string $className, string $methodName, string $file, int $line) { diff --git a/vendor/phpunit/phpunit/src/Event/Value/Throwable.php b/vendor/phpunit/phpunit/src/Event/Value/Throwable.php index 7d55c0b4c..e1c419156 100644 --- a/vendor/phpunit/phpunit/src/Event/Value/Throwable.php +++ b/vendor/phpunit/phpunit/src/Event/Value/Throwable.php @@ -30,6 +30,8 @@ final readonly class Throwable /** * @param class-string $className + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit */ public function __construct(string $className, string $message, string $description, string $stackTrace, ?self $previous) { @@ -47,7 +49,7 @@ final readonly class Throwable { $buffer = $this->description(); - if (!empty($this->stackTrace())) { + if ($this->stackTrace() !== '') { $buffer .= PHP_EOL . $this->stackTrace(); } diff --git a/vendor/phpunit/phpunit/src/Framework/Assert.php b/vendor/phpunit/phpunit/src/Framework/Assert.php index db0aaefa4..785afdb79 100644 --- a/vendor/phpunit/phpunit/src/Framework/Assert.php +++ b/vendor/phpunit/phpunit/src/Framework/Assert.php @@ -16,10 +16,11 @@ use function count; use function file_get_contents; use function interface_exists; use function is_bool; +use function sprintf; use ArrayAccess; use Countable; use Generator; -use PHPUnit\Event; +use PHPUnit\Event\Facade as EventFacade; use PHPUnit\Framework\Constraint\ArrayHasKey; use PHPUnit\Framework\Constraint\Callback; use PHPUnit\Framework\Constraint\Constraint; @@ -273,7 +274,7 @@ abstract class Assert * @throws Exception * @throws ExpectationFailedException * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6055 + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6056 */ final public static function assertContainsOnly(string $type, iterable $haystack, ?bool $isNativeType = null, string $message = ''): void { @@ -281,14 +282,54 @@ abstract class Assert $isNativeType = self::isNativeType($type); } - self::assertThat( - $haystack, - new TraversableContainsOnly( - $type, - $isNativeType, - ), - $message, - ); + if ($isNativeType) { + $replacement = match ($type) { + 'array' => 'assertContainsOnlyArray', + 'bool' => 'assertContainsOnlyBool', + 'boolean' => 'assertContainsOnlyBool', + 'callable' => 'assertContainsOnlyCallable', + 'double' => 'assertContainsOnlyFloat', + 'float' => 'assertContainsOnlyFloat', + 'int' => 'assertContainsOnlyInt', + 'integer' => 'assertContainsOnlyInt', + 'iterable' => 'assertContainsOnlyIterable', + 'null' => 'assertContainsOnlyNull', + 'numeric' => 'assertContainsOnlyNumeric', + 'object' => 'assertContainsOnlyObject', + 'real' => 'assertContainsOnlyFloat', + 'resource' => 'assertContainsOnlyResource', + 'resource (closed)' => 'assertContainsOnlyClosedResource', + 'scalar' => 'assertContainsOnlyScalar', + 'string' => 'assertContainsOnlyString', + }; + + EventFacade::emitter()->testTriggeredPhpunitDeprecation( + null, + sprintf( + 'assertContainsOnly() is deprecated and will be removed in PHPUnit 13. ' . + 'Please use %s($haystack) instead of assertContainsOnly(\'%s\', $haystack).', + $replacement, + $type, + ), + ); + + $constraint = TraversableContainsOnly::forNativeType(self::mapNativeType($type)); + } else { + EventFacade::emitter()->testTriggeredPhpunitDeprecation( + null, + sprintf( + 'assertContainsOnly() is deprecated and will be removed in PHPUnit 13. ' . + 'Please use assertContainsOnlyInstancesOf(\'%s\', $haystack) instead of assertContainsOnly(\'%s\', $haystack).', + $type, + $type, + ), + ); + + /** @phpstan-ignore argument.type */ + $constraint = TraversableContainsOnly::forClassOrInterface($type); + } + + self::assertThat($haystack, $constraint, $message); } /** @@ -304,8 +345,8 @@ abstract class Assert { self::assertThat( $haystack, - new TraversableContainsOnly( - NativeType::Array->value, + TraversableContainsOnly::forNativeType( + NativeType::Array, ), $message, ); @@ -324,8 +365,8 @@ abstract class Assert { self::assertThat( $haystack, - new TraversableContainsOnly( - NativeType::Bool->value, + TraversableContainsOnly::forNativeType( + NativeType::Bool, ), $message, ); @@ -344,8 +385,8 @@ abstract class Assert { self::assertThat( $haystack, - new TraversableContainsOnly( - NativeType::Callable->value, + TraversableContainsOnly::forNativeType( + NativeType::Callable, ), $message, ); @@ -364,8 +405,8 @@ abstract class Assert { self::assertThat( $haystack, - new TraversableContainsOnly( - NativeType::Float->value, + TraversableContainsOnly::forNativeType( + NativeType::Float, ), $message, ); @@ -384,8 +425,8 @@ abstract class Assert { self::assertThat( $haystack, - new TraversableContainsOnly( - NativeType::Int->value, + TraversableContainsOnly::forNativeType( + NativeType::Int, ), $message, ); @@ -404,8 +445,8 @@ abstract class Assert { self::assertThat( $haystack, - new TraversableContainsOnly( - NativeType::Iterable->value, + TraversableContainsOnly::forNativeType( + NativeType::Iterable, ), $message, ); @@ -424,8 +465,8 @@ abstract class Assert { self::assertThat( $haystack, - new TraversableContainsOnly( - NativeType::Null->value, + TraversableContainsOnly::forNativeType( + NativeType::Null, ), $message, ); @@ -444,8 +485,8 @@ abstract class Assert { self::assertThat( $haystack, - new TraversableContainsOnly( - NativeType::Numeric->value, + TraversableContainsOnly::forNativeType( + NativeType::Numeric, ), $message, ); @@ -464,8 +505,8 @@ abstract class Assert { self::assertThat( $haystack, - new TraversableContainsOnly( - NativeType::Object->value, + TraversableContainsOnly::forNativeType( + NativeType::Object, ), $message, ); @@ -484,8 +525,8 @@ abstract class Assert { self::assertThat( $haystack, - new TraversableContainsOnly( - NativeType::Resource->value, + TraversableContainsOnly::forNativeType( + NativeType::Resource, ), $message, ); @@ -504,8 +545,8 @@ abstract class Assert { self::assertThat( $haystack, - new TraversableContainsOnly( - NativeType::ClosedResource->value, + TraversableContainsOnly::forNativeType( + NativeType::ClosedResource, ), $message, ); @@ -524,8 +565,8 @@ abstract class Assert { self::assertThat( $haystack, - new TraversableContainsOnly( - NativeType::Scalar->value, + TraversableContainsOnly::forNativeType( + NativeType::Scalar, ), $message, ); @@ -544,8 +585,8 @@ abstract class Assert { self::assertThat( $haystack, - new TraversableContainsOnly( - NativeType::String->value, + TraversableContainsOnly::forNativeType( + NativeType::String, ), $message, ); @@ -568,10 +609,7 @@ abstract class Assert { self::assertThat( $haystack, - new TraversableContainsOnly( - $className, - false, - ), + TraversableContainsOnly::forClassOrInterface($className), $message, ); } @@ -585,7 +623,7 @@ abstract class Assert * @throws Exception * @throws ExpectationFailedException * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6055 + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6056 */ final public static function assertNotContainsOnly(string $type, iterable $haystack, ?bool $isNativeType = null, string $message = ''): void { @@ -593,14 +631,56 @@ abstract class Assert $isNativeType = self::isNativeType($type); } + if ($isNativeType) { + $replacement = match ($type) { + 'array' => 'assertContainsNotOnlyArray', + 'bool' => 'assertContainsNotOnlyBool', + 'boolean' => 'assertContainsNotOnlyBool', + 'callable' => 'assertContainsNotOnlyCallable', + 'double' => 'assertContainsNotOnlyFloat', + 'float' => 'assertContainsNotOnlyFloat', + 'int' => 'assertContainsNotOnlyInt', + 'integer' => 'assertContainsNotOnlyInt', + 'iterable' => 'assertContainsNotOnlyIterable', + 'null' => 'assertContainsNotOnlyNull', + 'numeric' => 'assertContainsNotOnlyNumeric', + 'object' => 'assertContainsNotOnlyObject', + 'real' => 'assertContainsNotOnlyFloat', + 'resource' => 'assertContainsNotOnlyResource', + 'resource (closed)' => 'assertContainsNotOnlyClosedResource', + 'scalar' => 'assertContainsNotOnlyScalar', + 'string' => 'assertContainsNotOnlyString', + }; + + EventFacade::emitter()->testTriggeredPhpunitDeprecation( + null, + sprintf( + 'assertNotContainsOnly() is deprecated and will be removed in PHPUnit 13. ' . + 'Please use %s($haystack) instead of assertNotContainsOnly(\'%s\', $haystack).', + $replacement, + $type, + ), + ); + + $constraint = TraversableContainsOnly::forNativeType(self::mapNativeType($type)); + } else { + EventFacade::emitter()->testTriggeredPhpunitDeprecation( + null, + sprintf( + 'assertNotContainsOnly() is deprecated and will be removed in PHPUnit 13. ' . + 'Please use assertContainsNotOnlyInstancesOf(\'%s\', $haystack) instead of assertNotContainsOnly(\'%s\', $haystack).', + $type, + $type, + ), + ); + + /** @phpstan-ignore argument.type */ + $constraint = TraversableContainsOnly::forClassOrInterface($type); + } + self::assertThat( $haystack, - new LogicalNot( - new TraversableContainsOnly( - $type, - $isNativeType, - ), - ), + new LogicalNot($constraint), $message, ); } @@ -617,8 +697,8 @@ abstract class Assert self::assertThat( $haystack, new LogicalNot( - new TraversableContainsOnly( - NativeType::Array->value, + TraversableContainsOnly::forNativeType( + NativeType::Array, ), ), $message, @@ -637,8 +717,8 @@ abstract class Assert self::assertThat( $haystack, new LogicalNot( - new TraversableContainsOnly( - NativeType::Bool->value, + TraversableContainsOnly::forNativeType( + NativeType::Bool, ), ), $message, @@ -657,8 +737,8 @@ abstract class Assert self::assertThat( $haystack, new LogicalNot( - new TraversableContainsOnly( - NativeType::Callable->value, + TraversableContainsOnly::forNativeType( + NativeType::Callable, ), ), $message, @@ -677,8 +757,8 @@ abstract class Assert self::assertThat( $haystack, new LogicalNot( - new TraversableContainsOnly( - NativeType::Float->value, + TraversableContainsOnly::forNativeType( + NativeType::Float, ), ), $message, @@ -697,8 +777,8 @@ abstract class Assert self::assertThat( $haystack, new LogicalNot( - new TraversableContainsOnly( - NativeType::Int->value, + TraversableContainsOnly::forNativeType( + NativeType::Int, ), ), $message, @@ -717,8 +797,8 @@ abstract class Assert self::assertThat( $haystack, new LogicalNot( - new TraversableContainsOnly( - NativeType::Iterable->value, + TraversableContainsOnly::forNativeType( + NativeType::Iterable, ), ), $message, @@ -737,8 +817,8 @@ abstract class Assert self::assertThat( $haystack, new LogicalNot( - new TraversableContainsOnly( - NativeType::Null->value, + TraversableContainsOnly::forNativeType( + NativeType::Null, ), ), $message, @@ -757,8 +837,8 @@ abstract class Assert self::assertThat( $haystack, new LogicalNot( - new TraversableContainsOnly( - NativeType::Numeric->value, + TraversableContainsOnly::forNativeType( + NativeType::Numeric, ), ), $message, @@ -777,8 +857,8 @@ abstract class Assert self::assertThat( $haystack, new LogicalNot( - new TraversableContainsOnly( - NativeType::Object->value, + TraversableContainsOnly::forNativeType( + NativeType::Object, ), ), $message, @@ -797,8 +877,8 @@ abstract class Assert self::assertThat( $haystack, new LogicalNot( - new TraversableContainsOnly( - NativeType::Resource->value, + TraversableContainsOnly::forNativeType( + NativeType::Resource, ), ), $message, @@ -817,8 +897,8 @@ abstract class Assert self::assertThat( $haystack, new LogicalNot( - new TraversableContainsOnly( - NativeType::ClosedResource->value, + TraversableContainsOnly::forNativeType( + NativeType::ClosedResource, ), ), $message, @@ -837,8 +917,8 @@ abstract class Assert self::assertThat( $haystack, new LogicalNot( - new TraversableContainsOnly( - NativeType::Scalar->value, + TraversableContainsOnly::forNativeType( + NativeType::Scalar, ), ), $message, @@ -857,8 +937,8 @@ abstract class Assert self::assertThat( $haystack, new LogicalNot( - new TraversableContainsOnly( - NativeType::String->value, + TraversableContainsOnly::forNativeType( + NativeType::String, ), ), $message, @@ -879,10 +959,7 @@ abstract class Assert self::assertThat( $haystack, new LogicalNot( - new TraversableContainsOnly( - $className, - false, - ), + TraversableContainsOnly::forClassOrInterface($className), ), $message, ); @@ -1771,7 +1848,7 @@ abstract class Assert { self::assertThat( $actual, - new IsType(IsType::TYPE_ARRAY), + new IsType(NativeType::Array), $message, ); } @@ -1788,7 +1865,7 @@ abstract class Assert { self::assertThat( $actual, - new IsType(IsType::TYPE_BOOL), + new IsType(NativeType::Bool), $message, ); } @@ -1805,7 +1882,7 @@ abstract class Assert { self::assertThat( $actual, - new IsType(IsType::TYPE_FLOAT), + new IsType(NativeType::Float), $message, ); } @@ -1822,7 +1899,7 @@ abstract class Assert { self::assertThat( $actual, - new IsType(IsType::TYPE_INT), + new IsType(NativeType::Int), $message, ); } @@ -1839,7 +1916,7 @@ abstract class Assert { self::assertThat( $actual, - new IsType(IsType::TYPE_NUMERIC), + new IsType(NativeType::Numeric), $message, ); } @@ -1856,7 +1933,7 @@ abstract class Assert { self::assertThat( $actual, - new IsType(IsType::TYPE_OBJECT), + new IsType(NativeType::Object), $message, ); } @@ -1873,7 +1950,7 @@ abstract class Assert { self::assertThat( $actual, - new IsType(IsType::TYPE_RESOURCE), + new IsType(NativeType::Resource), $message, ); } @@ -1890,7 +1967,7 @@ abstract class Assert { self::assertThat( $actual, - new IsType(IsType::TYPE_CLOSED_RESOURCE), + new IsType(NativeType::ClosedResource), $message, ); } @@ -1907,7 +1984,7 @@ abstract class Assert { self::assertThat( $actual, - new IsType(IsType::TYPE_STRING), + new IsType(NativeType::String), $message, ); } @@ -1924,7 +2001,7 @@ abstract class Assert { self::assertThat( $actual, - new IsType(IsType::TYPE_SCALAR), + new IsType(NativeType::Scalar), $message, ); } @@ -1941,7 +2018,7 @@ abstract class Assert { self::assertThat( $actual, - new IsType(IsType::TYPE_CALLABLE), + new IsType(NativeType::Callable), $message, ); } @@ -1958,7 +2035,7 @@ abstract class Assert { self::assertThat( $actual, - new IsType(IsType::TYPE_ITERABLE), + new IsType(NativeType::Iterable), $message, ); } @@ -1975,7 +2052,7 @@ abstract class Assert { self::assertThat( $actual, - new LogicalNot(new IsType(IsType::TYPE_ARRAY)), + new LogicalNot(new IsType(NativeType::Array)), $message, ); } @@ -1992,7 +2069,7 @@ abstract class Assert { self::assertThat( $actual, - new LogicalNot(new IsType(IsType::TYPE_BOOL)), + new LogicalNot(new IsType(NativeType::Bool)), $message, ); } @@ -2009,7 +2086,7 @@ abstract class Assert { self::assertThat( $actual, - new LogicalNot(new IsType(IsType::TYPE_FLOAT)), + new LogicalNot(new IsType(NativeType::Float)), $message, ); } @@ -2026,7 +2103,7 @@ abstract class Assert { self::assertThat( $actual, - new LogicalNot(new IsType(IsType::TYPE_INT)), + new LogicalNot(new IsType(NativeType::Int)), $message, ); } @@ -2043,7 +2120,7 @@ abstract class Assert { self::assertThat( $actual, - new LogicalNot(new IsType(IsType::TYPE_NUMERIC)), + new LogicalNot(new IsType(NativeType::Numeric)), $message, ); } @@ -2060,7 +2137,7 @@ abstract class Assert { self::assertThat( $actual, - new LogicalNot(new IsType(IsType::TYPE_OBJECT)), + new LogicalNot(new IsType(NativeType::Object)), $message, ); } @@ -2077,7 +2154,7 @@ abstract class Assert { self::assertThat( $actual, - new LogicalNot(new IsType(IsType::TYPE_RESOURCE)), + new LogicalNot(new IsType(NativeType::Resource)), $message, ); } @@ -2094,7 +2171,7 @@ abstract class Assert { self::assertThat( $actual, - new LogicalNot(new IsType(IsType::TYPE_CLOSED_RESOURCE)), + new LogicalNot(new IsType(NativeType::ClosedResource)), $message, ); } @@ -2111,7 +2188,7 @@ abstract class Assert { self::assertThat( $actual, - new LogicalNot(new IsType(IsType::TYPE_STRING)), + new LogicalNot(new IsType(NativeType::String)), $message, ); } @@ -2128,7 +2205,7 @@ abstract class Assert { self::assertThat( $actual, - new LogicalNot(new IsType(IsType::TYPE_SCALAR)), + new LogicalNot(new IsType(NativeType::Scalar)), $message, ); } @@ -2145,7 +2222,7 @@ abstract class Assert { self::assertThat( $actual, - new LogicalNot(new IsType(IsType::TYPE_CALLABLE)), + new LogicalNot(new IsType(NativeType::Callable)), $message, ); } @@ -2162,7 +2239,7 @@ abstract class Assert { self::assertThat( $actual, - new LogicalNot(new IsType(IsType::TYPE_ITERABLE)), + new LogicalNot(new IsType(NativeType::Iterable)), $message, ); } @@ -2316,29 +2393,6 @@ abstract class Assert self::assertThat($string, new StringMatchesFormatDescription($format), $message); } - /** - * Asserts that a string does not match a given format string. - * - * @throws ExpectationFailedException - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5472 - */ - final public static function assertStringNotMatchesFormat(string $format, string $string, string $message = ''): void - { - Event\Facade::emitter()->testTriggeredPhpunitDeprecation( - null, - 'assertStringNotMatchesFormat() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - self::assertThat( - $string, - new LogicalNot( - new StringMatchesFormatDescription($format), - ), - $message, - ); - } - /** * Asserts that a string matches a given format file. * @@ -2361,37 +2415,6 @@ abstract class Assert ); } - /** - * Asserts that a string does not match a given format string. - * - * @throws ExpectationFailedException - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5472 - */ - final public static function assertStringNotMatchesFormatFile(string $formatFile, string $string, string $message = ''): void - { - Event\Facade::emitter()->testTriggeredPhpunitDeprecation( - null, - 'assertStringNotMatchesFormatFile() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - self::assertFileExists($formatFile, $message); - - $formatDescription = file_get_contents($formatFile); - - self::assertIsString($formatDescription); - - self::assertThat( - $string, - new LogicalNot( - new StringMatchesFormatDescription( - $formatDescription, - ), - ), - $message, - ); - } - /** * Asserts that a string starts with a given prefix. * @@ -2497,7 +2520,7 @@ abstract class Assert } /** - * Asserts that two XML files are equal. + * Asserts that two XML files are equal, ignoring comments. * * @throws Exception * @throws ExpectationFailedException @@ -2505,78 +2528,78 @@ abstract class Assert */ final public static function assertXmlFileEqualsXmlFile(string $expectedFile, string $actualFile, string $message = ''): void { - $expected = (new XmlLoader)->loadFile($expectedFile); - $actual = (new XmlLoader)->loadFile($actualFile); + $expected = (new XmlLoader)->loadFile($expectedFile, true); + $actual = (new XmlLoader)->loadFile($actualFile, true); self::assertEquals($expected, $actual, $message); } /** - * Asserts that two XML files are not equal. + * Asserts that two XML files are not equal, ignoring comments. * * @throws \PHPUnit\Util\Exception * @throws ExpectationFailedException */ final public static function assertXmlFileNotEqualsXmlFile(string $expectedFile, string $actualFile, string $message = ''): void { - $expected = (new XmlLoader)->loadFile($expectedFile); - $actual = (new XmlLoader)->loadFile($actualFile); + $expected = (new XmlLoader)->loadFile($expectedFile, true); + $actual = (new XmlLoader)->loadFile($actualFile, true); self::assertNotEquals($expected, $actual, $message); } /** - * Asserts that two XML documents are equal. + * Asserts that two XML documents are equal, ignoring comments. * * @throws ExpectationFailedException * @throws XmlException */ final public static function assertXmlStringEqualsXmlFile(string $expectedFile, string $actualXml, string $message = ''): void { - $expected = (new XmlLoader)->loadFile($expectedFile); - $actual = (new XmlLoader)->load($actualXml); + $expected = (new XmlLoader)->loadFile($expectedFile, true); + $actual = (new XmlLoader)->load($actualXml, true); self::assertEquals($expected, $actual, $message); } /** - * Asserts that two XML documents are not equal. + * Asserts that two XML documents are not equal, ignoring comments. * * @throws ExpectationFailedException * @throws XmlException */ final public static function assertXmlStringNotEqualsXmlFile(string $expectedFile, string $actualXml, string $message = ''): void { - $expected = (new XmlLoader)->loadFile($expectedFile); - $actual = (new XmlLoader)->load($actualXml); + $expected = (new XmlLoader)->loadFile($expectedFile, true); + $actual = (new XmlLoader)->load($actualXml, true); self::assertNotEquals($expected, $actual, $message); } /** - * Asserts that two XML documents are equal. + * Asserts that two XML documents are equal, ignoring comments. * * @throws ExpectationFailedException * @throws XmlException */ final public static function assertXmlStringEqualsXmlString(string $expectedXml, string $actualXml, string $message = ''): void { - $expected = (new XmlLoader)->load($expectedXml); - $actual = (new XmlLoader)->load($actualXml); + $expected = (new XmlLoader)->load($expectedXml, true); + $actual = (new XmlLoader)->load($actualXml, true); self::assertEquals($expected, $actual, $message); } /** - * Asserts that two XML documents are not equal. + * Asserts that two XML documents are not equal, ignoring comments. * * @throws ExpectationFailedException * @throws XmlException */ final public static function assertXmlStringNotEqualsXmlString(string $expectedXml, string $actualXml, string $message = ''): void { - $expected = (new XmlLoader)->load($expectedXml); - $actual = (new XmlLoader)->load($actualXml); + $expected = (new XmlLoader)->load($expectedXml, true); + $actual = (new XmlLoader)->load($actualXml, true); self::assertNotEquals($expected, $actual, $message); } @@ -2815,76 +2838,76 @@ abstract class Assert * * @throws Exception * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6055 + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6060 */ final public static function containsOnly(string $type): TraversableContainsOnly { - return new TraversableContainsOnly($type); + return TraversableContainsOnly::forNativeType(self::mapNativeType($type)); } final public static function containsOnlyArray(): TraversableContainsOnly { - return new TraversableContainsOnly(NativeType::Array->value); + return TraversableContainsOnly::forNativeType(NativeType::Array); } final public static function containsOnlyBool(): TraversableContainsOnly { - return new TraversableContainsOnly(NativeType::Bool->value); + return TraversableContainsOnly::forNativeType(NativeType::Bool); } final public static function containsOnlyCallable(): TraversableContainsOnly { - return new TraversableContainsOnly(NativeType::Callable->value); + return TraversableContainsOnly::forNativeType(NativeType::Callable); } final public static function containsOnlyFloat(): TraversableContainsOnly { - return new TraversableContainsOnly(NativeType::Float->value); + return TraversableContainsOnly::forNativeType(NativeType::Float); } final public static function containsOnlyInt(): TraversableContainsOnly { - return new TraversableContainsOnly(NativeType::Int->value); + return TraversableContainsOnly::forNativeType(NativeType::Int); } final public static function containsOnlyIterable(): TraversableContainsOnly { - return new TraversableContainsOnly(NativeType::Iterable->value); + return TraversableContainsOnly::forNativeType(NativeType::Iterable); } final public static function containsOnlyNull(): TraversableContainsOnly { - return new TraversableContainsOnly(NativeType::Null->value); + return TraversableContainsOnly::forNativeType(NativeType::Null); } final public static function containsOnlyNumeric(): TraversableContainsOnly { - return new TraversableContainsOnly(NativeType::Numeric->value); + return TraversableContainsOnly::forNativeType(NativeType::Numeric); } final public static function containsOnlyObject(): TraversableContainsOnly { - return new TraversableContainsOnly(NativeType::Object->value); + return TraversableContainsOnly::forNativeType(NativeType::Object); } final public static function containsOnlyResource(): TraversableContainsOnly { - return new TraversableContainsOnly(NativeType::Resource->value); + return TraversableContainsOnly::forNativeType(NativeType::Resource); } final public static function containsOnlyClosedResource(): TraversableContainsOnly { - return new TraversableContainsOnly(NativeType::ClosedResource->value); + return TraversableContainsOnly::forNativeType(NativeType::ClosedResource); } final public static function containsOnlyScalar(): TraversableContainsOnly { - return new TraversableContainsOnly(NativeType::Scalar->value); + return TraversableContainsOnly::forNativeType(NativeType::Scalar); } final public static function containsOnlyString(): TraversableContainsOnly { - return new TraversableContainsOnly(NativeType::String->value); + return TraversableContainsOnly::forNativeType(NativeType::String); } /** @@ -2894,7 +2917,7 @@ abstract class Assert */ final public static function containsOnlyInstancesOf(string $className): TraversableContainsOnly { - return new TraversableContainsOnly($className, false); + return TraversableContainsOnly::forClassOrInterface($className); } final public static function arrayHasKey(mixed $key): ArrayHasKey @@ -2980,74 +3003,106 @@ abstract class Assert final public static function isArray(): IsType { - return new IsType(NativeType::Array->value); + return new IsType(NativeType::Array); } final public static function isBool(): IsType { - return new IsType(NativeType::Bool->value); + return new IsType(NativeType::Bool); } final public static function isCallable(): IsType { - return new IsType(NativeType::Callable->value); + return new IsType(NativeType::Callable); } final public static function isFloat(): IsType { - return new IsType(NativeType::Float->value); + return new IsType(NativeType::Float); } final public static function isInt(): IsType { - return new IsType(NativeType::Int->value); + return new IsType(NativeType::Int); } final public static function isIterable(): IsType { - return new IsType(NativeType::Iterable->value); + return new IsType(NativeType::Iterable); } final public static function isNumeric(): IsType { - return new IsType(NativeType::Numeric->value); + return new IsType(NativeType::Numeric); } final public static function isObject(): IsType { - return new IsType(NativeType::Object->value); + return new IsType(NativeType::Object); } final public static function isResource(): IsType { - return new IsType(NativeType::Resource->value); + return new IsType(NativeType::Resource); } final public static function isClosedResource(): IsType { - return new IsType(NativeType::ClosedResource->value); + return new IsType(NativeType::ClosedResource); } final public static function isScalar(): IsType { - return new IsType(NativeType::Scalar->value); + return new IsType(NativeType::Scalar); } final public static function isString(): IsType { - return new IsType(NativeType::String->value); + return new IsType(NativeType::String); } /** * @param 'array'|'bool'|'boolean'|'callable'|'double'|'float'|'int'|'integer'|'iterable'|'null'|'numeric'|'object'|'real'|'resource (closed)'|'resource'|'scalar'|'string' $type * - * @throws Exception + * @throws UnknownNativeTypeException * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6052 + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6053 */ final public static function isType(string $type): IsType { - return new IsType($type); + $constraint = new IsType(self::mapNativeType($type)); + + $replacement = match ($type) { + 'array' => 'isArray', + 'bool' => 'isBool', + 'boolean' => 'isBool', + 'callable' => 'isCallable', + 'double' => 'isFloat', + 'float' => 'isFloat', + 'int' => 'isInt', + 'integer' => 'isInt', + 'iterable' => 'isIterable', + 'null' => 'isNull', + 'numeric' => 'isNumeric', + 'object' => 'isObject', + 'real' => 'isFloat', + 'resource' => 'isResource', + 'resource (closed)' => 'isClosedResource', + 'scalar' => 'isScalar', + 'string' => 'isString', + }; + + EventFacade::emitter()->testTriggeredPhpunitDeprecation( + null, + sprintf( + 'isType(\'%s\') is deprecated and will be removed in PHPUnit 13. ' . + 'Please use the %s() method instead.', + $type, + $replacement, + ), + ); + + return $constraint; } final public static function lessThan(mixed $value): LessThan @@ -3163,9 +3218,53 @@ abstract class Assert private static function isNativeType(string $type): bool { + return $type === 'array' || + $type === 'bool' || + $type === 'boolean' || + $type === 'callable' || + $type === 'double' || + $type === 'float' || + $type === 'int' || + $type === 'integer' || + $type === 'iterable' || + $type === 'null' || + $type === 'numeric' || + $type === 'object' || + $type === 'real' || + $type === 'resource' || + $type === 'resource (closed)' || + $type === 'scalar' || + $type === 'string'; + } + + /** + * @throws UnknownNativeTypeException + */ + private static function mapNativeType(string $type): NativeType + { + if (!self::isNativeType($type)) { + throw new UnknownNativeTypeException($type); + } + + /** @phpstan-ignore match.unhandled */ return match ($type) { - 'numeric', 'integer', 'int', 'iterable', 'float', 'string', 'boolean', 'bool', 'null', 'array', 'object', 'resource', 'scalar' => true, - default => false, + 'array' => NativeType::Array, + 'bool' => NativeType::Bool, + 'boolean' => NativeType::Bool, + 'callable' => NativeType::Callable, + 'double' => NativeType::Float, + 'float' => NativeType::Float, + 'int' => NativeType::Int, + 'integer' => NativeType::Int, + 'iterable' => NativeType::Iterable, + 'null' => NativeType::Null, + 'numeric' => NativeType::Numeric, + 'object' => NativeType::Object, + 'real' => NativeType::Float, + 'resource' => NativeType::Resource, + 'resource (closed)' => NativeType::ClosedResource, + 'scalar' => NativeType::Scalar, + 'string' => NativeType::String, }; } } diff --git a/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php b/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php index 3c8320007..bfe64fdf7 100644 --- a/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php +++ b/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php @@ -59,13 +59,7 @@ use PHPUnit\Framework\MockObject\Rule\InvokedAtLeastCount as InvokedAtLeastCount use PHPUnit\Framework\MockObject\Rule\InvokedAtLeastOnce as InvokedAtLeastOnceMatcher; use PHPUnit\Framework\MockObject\Rule\InvokedAtMostCount as InvokedAtMostCountMatcher; use PHPUnit\Framework\MockObject\Rule\InvokedCount as InvokedCountMatcher; -use PHPUnit\Framework\MockObject\Stub\ConsecutiveCalls as ConsecutiveCallsStub; use PHPUnit\Framework\MockObject\Stub\Exception as ExceptionStub; -use PHPUnit\Framework\MockObject\Stub\ReturnArgument as ReturnArgumentStub; -use PHPUnit\Framework\MockObject\Stub\ReturnCallback as ReturnCallbackStub; -use PHPUnit\Framework\MockObject\Stub\ReturnSelf as ReturnSelfStub; -use PHPUnit\Framework\MockObject\Stub\ReturnStub; -use PHPUnit\Framework\MockObject\Stub\ReturnValueMap as ReturnValueMapStub; use PHPUnit\Util\Xml\XmlException; use Throwable; @@ -287,7 +281,7 @@ if (!function_exists('PHPUnit\Framework\assertContainsOnly')) { * @throws Exception * @throws ExpectationFailedException * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6055 + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6056 * * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit * @@ -593,7 +587,7 @@ if (!function_exists('PHPUnit\Framework\assertNotContainsOnly')) { * @throws Exception * @throws ExpectationFailedException * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6055 + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6056 * * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit * @@ -2520,24 +2514,6 @@ if (!function_exists('PHPUnit\Framework\assertStringMatchesFormat')) { } } -if (!function_exists('PHPUnit\Framework\assertStringNotMatchesFormat')) { - /** - * Asserts that a string does not match a given format string. - * - * @throws ExpectationFailedException - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5472 - * - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - * - * @see Assert::assertStringNotMatchesFormat - */ - function assertStringNotMatchesFormat(string $format, string $string, string $message = ''): void - { - Assert::assertStringNotMatchesFormat(...func_get_args()); - } -} - if (!function_exists('PHPUnit\Framework\assertStringMatchesFormatFile')) { /** * Asserts that a string matches a given format file. @@ -2554,24 +2530,6 @@ if (!function_exists('PHPUnit\Framework\assertStringMatchesFormatFile')) { } } -if (!function_exists('PHPUnit\Framework\assertStringNotMatchesFormatFile')) { - /** - * Asserts that a string does not match a given format string. - * - * @throws ExpectationFailedException - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5472 - * - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - * - * @see Assert::assertStringNotMatchesFormatFile - */ - function assertStringNotMatchesFormatFile(string $formatFile, string $string, string $message = ''): void - { - Assert::assertStringNotMatchesFormatFile(...func_get_args()); - } -} - if (!function_exists('PHPUnit\Framework\assertStringStartsWith')) { /** * Asserts that a string starts with a given prefix. @@ -2706,7 +2664,7 @@ if (!function_exists('PHPUnit\Framework\assertStringEndsNotWith')) { if (!function_exists('PHPUnit\Framework\assertXmlFileEqualsXmlFile')) { /** - * Asserts that two XML files are equal. + * Asserts that two XML files are equal, ignoring comments. * * @throws Exception * @throws ExpectationFailedException @@ -2724,7 +2682,7 @@ if (!function_exists('PHPUnit\Framework\assertXmlFileEqualsXmlFile')) { if (!function_exists('PHPUnit\Framework\assertXmlFileNotEqualsXmlFile')) { /** - * Asserts that two XML files are not equal. + * Asserts that two XML files are not equal, ignoring comments. * * @throws \PHPUnit\Util\Exception * @throws ExpectationFailedException @@ -2741,7 +2699,7 @@ if (!function_exists('PHPUnit\Framework\assertXmlFileNotEqualsXmlFile')) { if (!function_exists('PHPUnit\Framework\assertXmlStringEqualsXmlFile')) { /** - * Asserts that two XML documents are equal. + * Asserts that two XML documents are equal, ignoring comments. * * @throws ExpectationFailedException * @throws XmlException @@ -2758,7 +2716,7 @@ if (!function_exists('PHPUnit\Framework\assertXmlStringEqualsXmlFile')) { if (!function_exists('PHPUnit\Framework\assertXmlStringNotEqualsXmlFile')) { /** - * Asserts that two XML documents are not equal. + * Asserts that two XML documents are not equal, ignoring comments. * * @throws ExpectationFailedException * @throws XmlException @@ -2775,7 +2733,7 @@ if (!function_exists('PHPUnit\Framework\assertXmlStringNotEqualsXmlFile')) { if (!function_exists('PHPUnit\Framework\assertXmlStringEqualsXmlString')) { /** - * Asserts that two XML documents are equal. + * Asserts that two XML documents are equal, ignoring comments. * * @throws ExpectationFailedException * @throws XmlException @@ -2792,7 +2750,7 @@ if (!function_exists('PHPUnit\Framework\assertXmlStringEqualsXmlString')) { if (!function_exists('PHPUnit\Framework\assertXmlStringNotEqualsXmlString')) { /** - * Asserts that two XML documents are not equal. + * Asserts that two XML documents are not equal, ignoring comments. * * @throws ExpectationFailedException * @throws XmlException @@ -3422,6 +3380,8 @@ if (!function_exists('PHPUnit\Framework\any')) { /** * Returns a matcher that matches when the method is executed * zero or more times. + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6461 */ function any(): AnyInvokedCountMatcher { @@ -3494,61 +3454,9 @@ if (!function_exists('PHPUnit\Framework\atMost')) { } } -if (!function_exists('PHPUnit\Framework\returnValue')) { - function returnValue(mixed $value): ReturnStub - { - return new ReturnStub($value); - } -} - -if (!function_exists('PHPUnit\Framework\returnValueMap')) { - /** - * @param array $valueMap - */ - function returnValueMap(array $valueMap): ReturnValueMapStub - { - return new ReturnValueMapStub($valueMap); - } -} - -if (!function_exists('PHPUnit\Framework\returnArgument')) { - function returnArgument(int $argumentIndex): ReturnArgumentStub - { - return new ReturnArgumentStub($argumentIndex); - } -} - -if (!function_exists('PHPUnit\Framework\returnCallback')) { - function returnCallback(callable $callback): ReturnCallbackStub - { - return new ReturnCallbackStub($callback); - } -} - -if (!function_exists('PHPUnit\Framework\returnSelf')) { - /** - * Returns the current object. - * - * This method is useful when mocking a fluent interface. - */ - function returnSelf(): ReturnSelfStub - { - return new ReturnSelfStub; - } -} - if (!function_exists('PHPUnit\Framework\throwException')) { function throwException(Throwable $exception): ExceptionStub { return new ExceptionStub($exception); } } - -if (!function_exists('PHPUnit\Framework\onConsecutiveCalls')) { - function onConsecutiveCalls(): ConsecutiveCallsStub - { - $arguments = func_get_args(); - - return new ConsecutiveCallsStub($arguments); - } -} diff --git a/vendor/phpunit/phpunit/src/Framework/Exception/InvalidCoversTargetException.php b/vendor/phpunit/phpunit/src/Framework/Attributes/AllowMockObjectsWithoutExpectations.php similarity index 66% rename from vendor/phpunit/phpunit/src/Framework/Exception/InvalidCoversTargetException.php rename to vendor/phpunit/phpunit/src/Framework/Attributes/AllowMockObjectsWithoutExpectations.php index c6300d9e2..4b8e3849a 100644 --- a/vendor/phpunit/phpunit/src/Framework/Exception/InvalidCoversTargetException.php +++ b/vendor/phpunit/phpunit/src/Framework/Attributes/AllowMockObjectsWithoutExpectations.php @@ -7,13 +7,16 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace PHPUnit\Framework; +namespace PHPUnit\Framework\Attributes; + +use Attribute; /** - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * @immutable * - * @internal This class is not covered by the backward compatibility promise for PHPUnit + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ -final class InvalidCoversTargetException extends CodeCoverageException +#[Attribute(Attribute::TARGET_CLASS | Attribute::TARGET_METHOD)] +final readonly class AllowMockObjectsWithoutExpectations { } diff --git a/vendor/phpunit/phpunit/src/Framework/Attributes/CoversClassesThatExtendClass.php b/vendor/phpunit/phpunit/src/Framework/Attributes/CoversClassesThatExtendClass.php new file mode 100644 index 000000000..486fc5b0a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Attributes/CoversClassesThatExtendClass.php @@ -0,0 +1,42 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Attributes; + +use Attribute; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +#[Attribute(Attribute::TARGET_CLASS | Attribute::IS_REPEATABLE)] +final readonly class CoversClassesThatExtendClass +{ + /** + * @var class-string + */ + private string $className; + + /** + * @param class-string $className + */ + public function __construct(string $className) + { + $this->className = $className; + } + + /** + * @return class-string + */ + public function className(): string + { + return $this->className; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Attributes/CoversClassesThatImplementInterface.php b/vendor/phpunit/phpunit/src/Framework/Attributes/CoversClassesThatImplementInterface.php new file mode 100644 index 000000000..69bcd8460 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Attributes/CoversClassesThatImplementInterface.php @@ -0,0 +1,42 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Attributes; + +use Attribute; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +#[Attribute(Attribute::TARGET_CLASS | Attribute::IS_REPEATABLE)] +final readonly class CoversClassesThatImplementInterface +{ + /** + * @var class-string + */ + private string $interfaceName; + + /** + * @param class-string $interfaceName + */ + public function __construct(string $interfaceName) + { + $this->interfaceName = $interfaceName; + } + + /** + * @return class-string + */ + public function interfaceName(): string + { + return $this->interfaceName; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Attributes/CoversNamespace.php b/vendor/phpunit/phpunit/src/Framework/Attributes/CoversNamespace.php new file mode 100644 index 000000000..50d82b994 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Attributes/CoversNamespace.php @@ -0,0 +1,42 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Attributes; + +use Attribute; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +#[Attribute(Attribute::TARGET_CLASS | Attribute::IS_REPEATABLE)] +final readonly class CoversNamespace +{ + /** + * @var non-empty-string + */ + private string $namespace; + + /** + * @param non-empty-string $namespace + */ + public function __construct(string $namespace) + { + $this->namespace = $namespace; + } + + /** + * @return non-empty-string + */ + public function namespace(): string + { + return $this->namespace; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Attributes/DataProvider.php b/vendor/phpunit/phpunit/src/Framework/Attributes/DataProvider.php index 0e95c5020..fc4a822f6 100644 --- a/vendor/phpunit/phpunit/src/Framework/Attributes/DataProvider.php +++ b/vendor/phpunit/phpunit/src/Framework/Attributes/DataProvider.php @@ -23,13 +23,15 @@ final readonly class DataProvider * @var non-empty-string */ private string $methodName; + private bool $validateArgumentCount; /** * @param non-empty-string $methodName */ - public function __construct(string $methodName) + public function __construct(string $methodName, bool $validateArgumentCount = true) { - $this->methodName = $methodName; + $this->methodName = $methodName; + $this->validateArgumentCount = $validateArgumentCount; } /** @@ -39,4 +41,9 @@ final readonly class DataProvider { return $this->methodName; } + + public function validateArgumentCount(): bool + { + return $this->validateArgumentCount; + } } diff --git a/vendor/phpunit/phpunit/src/Framework/Attributes/DataProviderExternal.php b/vendor/phpunit/phpunit/src/Framework/Attributes/DataProviderExternal.php index 9d05cef27..e1f11ab13 100644 --- a/vendor/phpunit/phpunit/src/Framework/Attributes/DataProviderExternal.php +++ b/vendor/phpunit/phpunit/src/Framework/Attributes/DataProviderExternal.php @@ -28,15 +28,17 @@ final readonly class DataProviderExternal * @var non-empty-string */ private string $methodName; + private bool $validateArgumentCount; /** * @param class-string $className * @param non-empty-string $methodName */ - public function __construct(string $className, string $methodName) + public function __construct(string $className, string $methodName, bool $validateArgumentCount = true) { - $this->className = $className; - $this->methodName = $methodName; + $this->className = $className; + $this->methodName = $methodName; + $this->validateArgumentCount = $validateArgumentCount; } /** @@ -54,4 +56,9 @@ final readonly class DataProviderExternal { return $this->methodName; } + + public function validateArgumentCount(): bool + { + return $this->validateArgumentCount; + } } diff --git a/vendor/phpunit/phpunit/src/Framework/Attributes/IgnoreDeprecations.php b/vendor/phpunit/phpunit/src/Framework/Attributes/IgnoreDeprecations.php index 6cde66b09..d137edd78 100644 --- a/vendor/phpunit/phpunit/src/Framework/Attributes/IgnoreDeprecations.php +++ b/vendor/phpunit/phpunit/src/Framework/Attributes/IgnoreDeprecations.php @@ -19,4 +19,22 @@ use Attribute; #[Attribute(Attribute::TARGET_CLASS | Attribute::TARGET_METHOD)] final readonly class IgnoreDeprecations { + /** @var null|non-empty-string */ + private ?string $messagePattern; + + /** + * @param null|non-empty-string $messagePattern + */ + public function __construct(null|string $messagePattern = null) + { + $this->messagePattern = $messagePattern; + } + + /** + * @return null|non-empty-string + */ + public function messagePattern(): ?string + { + return $this->messagePattern; + } } diff --git a/vendor/phpunit/phpunit/src/Framework/Attributes/IgnorePhpunitWarnings.php b/vendor/phpunit/phpunit/src/Framework/Attributes/IgnorePhpunitWarnings.php new file mode 100644 index 000000000..af1d22bda --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Attributes/IgnorePhpunitWarnings.php @@ -0,0 +1,40 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Attributes; + +use Attribute; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +#[Attribute(Attribute::TARGET_METHOD)] +final readonly class IgnorePhpunitWarnings +{ + /** @var null|non-empty-string */ + private ?string $messagePattern; + + /** + * @param null|non-empty-string $messagePattern + */ + public function __construct(null|string $messagePattern = null) + { + $this->messagePattern = $messagePattern; + } + + /** + * @return null|non-empty-string + */ + public function messagePattern(): ?string + { + return $this->messagePattern; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Attributes/RequiresEnvironmentVariable.php b/vendor/phpunit/phpunit/src/Framework/Attributes/RequiresEnvironmentVariable.php new file mode 100644 index 000000000..7e460b99a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Attributes/RequiresEnvironmentVariable.php @@ -0,0 +1,40 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Attributes; + +use Attribute; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +#[Attribute(Attribute::TARGET_CLASS | Attribute::TARGET_METHOD | Attribute::IS_REPEATABLE)] +final readonly class RequiresEnvironmentVariable +{ + private string $environmentVariableName; + private null|string $value; + + public function __construct(string $environmentVariableName, null|string $value = null) + { + $this->environmentVariableName = $environmentVariableName; + $this->value = $value; + } + + public function environmentVariableName(): string + { + return $this->environmentVariableName; + } + + public function value(): null|string + { + return $this->value; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Attributes/RunClassInSeparateProcess.php b/vendor/phpunit/phpunit/src/Framework/Attributes/RunClassInSeparateProcess.php index 749ea3d9b..56bed4ba9 100644 --- a/vendor/phpunit/phpunit/src/Framework/Attributes/RunClassInSeparateProcess.php +++ b/vendor/phpunit/phpunit/src/Framework/Attributes/RunClassInSeparateProcess.php @@ -15,6 +15,8 @@ use Attribute; * @immutable * * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6284 */ #[Attribute(Attribute::TARGET_CLASS)] final readonly class RunClassInSeparateProcess diff --git a/vendor/phpunit/phpunit/src/Framework/Attributes/TestDoxFormatter.php b/vendor/phpunit/phpunit/src/Framework/Attributes/TestDoxFormatter.php new file mode 100644 index 000000000..0456d843f --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Attributes/TestDoxFormatter.php @@ -0,0 +1,42 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Attributes; + +use Attribute; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +#[Attribute(Attribute::TARGET_METHOD)] +final readonly class TestDoxFormatter +{ + /** + * @var non-empty-string + */ + private string $methodName; + + /** + * @param non-empty-string $methodName + */ + public function __construct(string $methodName) + { + $this->methodName = $methodName; + } + + /** + * @return non-empty-string + */ + public function methodName(): string + { + return $this->methodName; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Attributes/TestDoxFormatterExternal.php b/vendor/phpunit/phpunit/src/Framework/Attributes/TestDoxFormatterExternal.php new file mode 100644 index 000000000..de5cf701e --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Attributes/TestDoxFormatterExternal.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Attributes; + +use Attribute; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +#[Attribute(Attribute::TARGET_METHOD)] +final readonly class TestDoxFormatterExternal +{ + /** + * @var class-string + */ + private string $className; + + /** + * @var non-empty-string + */ + private string $methodName; + + /** + * @param class-string $className + * @param non-empty-string $methodName + */ + public function __construct(string $className, string $methodName) + { + $this->className = $className; + $this->methodName = $methodName; + } + + /** + * @return class-string + */ + public function className(): string + { + return $this->className; + } + + /** + * @return non-empty-string + */ + public function methodName(): string + { + return $this->methodName; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Attributes/UsesClassesThatExtendClass.php b/vendor/phpunit/phpunit/src/Framework/Attributes/UsesClassesThatExtendClass.php new file mode 100644 index 000000000..d1aa73faa --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Attributes/UsesClassesThatExtendClass.php @@ -0,0 +1,42 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Attributes; + +use Attribute; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +#[Attribute(Attribute::TARGET_CLASS | Attribute::IS_REPEATABLE)] +final readonly class UsesClassesThatExtendClass +{ + /** + * @var class-string + */ + private string $className; + + /** + * @param class-string $className + */ + public function __construct(string $className) + { + $this->className = $className; + } + + /** + * @return class-string + */ + public function className(): string + { + return $this->className; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Attributes/UsesClassesThatImplementInterface.php b/vendor/phpunit/phpunit/src/Framework/Attributes/UsesClassesThatImplementInterface.php new file mode 100644 index 000000000..0f2241c86 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Attributes/UsesClassesThatImplementInterface.php @@ -0,0 +1,42 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Attributes; + +use Attribute; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +#[Attribute(Attribute::TARGET_CLASS | Attribute::IS_REPEATABLE)] +final readonly class UsesClassesThatImplementInterface +{ + /** + * @var class-string + */ + private string $interfaceName; + + /** + * @param class-string $interfaceName + */ + public function __construct(string $interfaceName) + { + $this->interfaceName = $interfaceName; + } + + /** + * @return class-string + */ + public function interfaceName(): string + { + return $this->interfaceName; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Attributes/UsesNamespace.php b/vendor/phpunit/phpunit/src/Framework/Attributes/UsesNamespace.php new file mode 100644 index 000000000..ad929cdb1 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Attributes/UsesNamespace.php @@ -0,0 +1,42 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Attributes; + +use Attribute; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +#[Attribute(Attribute::TARGET_CLASS | Attribute::IS_REPEATABLE)] +final readonly class UsesNamespace +{ + /** + * @var non-empty-string + */ + private string $namespace; + + /** + * @param non-empty-string $namespace + */ + public function __construct(string $namespace) + { + $this->namespace = $namespace; + } + + /** + * @return non-empty-string + */ + public function namespace(): string + { + return $this->namespace; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Attributes/WithEnvironmentVariable.php b/vendor/phpunit/phpunit/src/Framework/Attributes/WithEnvironmentVariable.php new file mode 100644 index 000000000..6d8e2d305 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Attributes/WithEnvironmentVariable.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Attributes; + +use Attribute; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +#[Attribute(Attribute::TARGET_CLASS | Attribute::TARGET_METHOD | Attribute::IS_REPEATABLE)] +final readonly class WithEnvironmentVariable +{ + /** + * @var non-empty-string + */ + private string $environmentVariableName; + private null|string $value; + + /** + * @param non-empty-string $environmentVariableName + */ + public function __construct(string $environmentVariableName, null|string $value = null) + { + $this->environmentVariableName = $environmentVariableName; + $this->value = $value; + } + + /** + * @return non-empty-string + */ + public function environmentVariableName(): string + { + return $this->environmentVariableName; + } + + public function value(): null|string + { + return $this->value; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Cardinality/IsEmpty.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Cardinality/IsEmpty.php index eee9705e3..31942d9f0 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Cardinality/IsEmpty.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Cardinality/IsEmpty.php @@ -43,6 +43,7 @@ final class IsEmpty extends Constraint return count($other) === 0; } + /** @phpstan-ignore empty.notAllowed */ return empty($other); } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php index 5442b522e..ec19fdaf2 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php @@ -19,6 +19,7 @@ use function strpos; use function strtolower; use function substr; use Countable; +use PHPUnit\Framework\Assert; use PHPUnit\Framework\ExpectationFailedException; use PHPUnit\Framework\SelfDescribing; use PHPUnit\Util\Exporter; @@ -30,6 +31,20 @@ use SebastianBergmann\Comparator\ComparisonFailure; */ abstract class Constraint implements Countable, SelfDescribing { + /** + * @template A + * + * @param A $actual + * + * @return A + */ + final public function __invoke(mixed $actual): mixed + { + Assert::assertThat($actual, $this); + + return $actual; + } + /** * Evaluates the constraint for parameter $other. * @@ -94,11 +109,11 @@ abstract class Constraint implements Countable, SelfDescribing $additionalFailureDescription = $this->additionalFailureDescription($other); - if ($additionalFailureDescription) { + if ($additionalFailureDescription !== '') { $failureDescription .= "\n" . $additionalFailureDescription; } - if (!empty($description)) { + if ($description !== '') { $failureDescription = $description . "\n" . $failureDescription; } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php b/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php index dc3be3b4c..3fd6736a4 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php @@ -59,7 +59,7 @@ final class JsonMatches extends Constraint return false; } - return $recodedOther == $recodedValue; + return $recodedOther === $recodedValue; } /** diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php index a5081294e..2c78ea427 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php @@ -9,6 +9,8 @@ */ namespace PHPUnit\Framework\Constraint; +use function assert; +use function count; use function is_object; use PHPUnit\Framework\ActualValueIsNotAnObjectException; use PHPUnit\Framework\ComparisonMethodDoesNotAcceptParameterTypeException; @@ -100,6 +102,7 @@ final class ObjectEquals extends Constraint ); } + assert(count($method->getParameters()) > 0); $parameter = $method->getParameters()[0]; if (!$parameter->hasType()) { @@ -132,6 +135,7 @@ final class ObjectEquals extends Constraint ); } + /** @phpstan-ignore method.dynamicName */ return $other->{$this->method}($this->expected); } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/BinaryOperator.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/BinaryOperator.php index b7742bae9..feb6d0408 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/BinaryOperator.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/BinaryOperator.php @@ -25,7 +25,7 @@ abstract class BinaryOperator extends Operator protected function __construct(mixed ...$constraints) { $this->constraints = array_map( - fn ($constraint): Constraint => $this->checkConstraint($constraint), + fn (mixed $constraint): Constraint => $this->checkConstraint($constraint), $constraints, ); } @@ -99,7 +99,7 @@ abstract class BinaryOperator extends Operator */ protected function reduce(): Constraint { - if ($this->arity() === 1 && $this->constraints[0] instanceof Operator) { + if (count($this->constraints) === 1 && $this->constraints[0] instanceof Operator) { return $this->constraints[0]->reduce(); } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalNot.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalNot.php index 837e3a50a..dd45ed913 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalNot.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalNot.php @@ -9,11 +9,11 @@ */ namespace PHPUnit\Framework\Constraint; +use const PREG_SPLIT_DELIM_CAPTURE; use function array_map; -use function count; -use function preg_match; use function preg_quote; use function preg_replace; +use function preg_split; use PHPUnit\Framework\ExpectationFailedException; /** @@ -49,35 +49,35 @@ final class LogicalNot extends UnaryOperator 'not ', ]; - preg_match('/(\'[\w\W]*\')([\w\W]*)("[\w\W]*")/i', $string, $matches); - - if (count($matches) === 0) { - preg_match('/(\'[\w\W]*\')([\w\W]*)(\'[\w\W]*\')/i', $string, $matches); - } - $positives = array_map( static fn (string $s) => '/\\b' . preg_quote($s, '/') . '/', $positives, ); - if (count($matches) > 0) { - $nonInput = $matches[2]; + // Split the description into quoted segments (single- or double-quoted) + // and the text around them, then negate only the surrounding text. This + // prevents words such as "is" or "contains" that appear inside exported + // string values, array keys, or object property names from being + // rewritten, while still negating the constraint's own wording (which + // always lives outside of any quotes). + $segments = preg_split( + '/(\'[^\']*\'|"[^"]*")/', + $string, + -1, + PREG_SPLIT_DELIM_CAPTURE, + ); - $negatedString = preg_replace( - '/' . preg_quote($nonInput, '/') . '/', - preg_replace( - $positives, - $negatives, - $nonInput, - ), - $string, - ); - } else { - $negatedString = preg_replace( - $positives, - $negatives, - $string, - ); + $negatedString = ''; + + foreach ($segments as $index => $segment) { + // Odd indices hold the captured quoted segments and are kept as-is. + if ($index % 2 === 1) { + $negatedString .= $segment; + + continue; + } + + $negatedString .= preg_replace($positives, $negatives, $segment); } return $negatedString; diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php index e8ffc34d1..3b40a1261 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php @@ -59,7 +59,7 @@ final class LogicalXor extends BinaryOperator return array_reduce( $constraints, - static fn (bool $matches, Constraint $constraint): bool => $matches xor $constraint->evaluate($other, '', true), + static fn (?bool $matches, Constraint $constraint): bool => $matches xor $constraint->evaluate($other, '', true), $initial->evaluate($other, '', true), ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/String/IsJson.php b/vendor/phpunit/phpunit/src/Framework/Constraint/String/IsJson.php index 79b2c7046..582b58e8b 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/String/IsJson.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/String/IsJson.php @@ -45,7 +45,7 @@ final class IsJson extends Constraint json_decode($other); - if (json_last_error()) { + if (json_last_error() !== JSON_ERROR_NONE) { return false; } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php b/vendor/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php index 03b0e4ea1..c6e749a64 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php @@ -9,8 +9,10 @@ */ namespace PHPUnit\Framework\Constraint; +use function preg_last_error_msg; use function preg_match; use function sprintf; +use PHPUnit\Framework\Exception as FrameworkException; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit @@ -38,9 +40,22 @@ final class RegularExpression extends Constraint /** * Evaluates the constraint for parameter $other. Returns true if the * constraint is met, false otherwise. + * + * @throws FrameworkException */ protected function matches(mixed $other): bool { - return preg_match($this->pattern, $other) > 0; + $matches = @preg_match($this->pattern, $other); + + if ($matches === false) { + throw new FrameworkException( + sprintf( + 'Regular expression cannot be matched: %s', + preg_last_error_msg(), + ), + ); + } + + return $matches > 0; } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/String/StringMatchesFormatDescription.php b/vendor/phpunit/phpunit/src/Framework/Constraint/String/StringMatchesFormatDescription.php index 4df81715f..f678cb4a7 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/String/StringMatchesFormatDescription.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/String/StringMatchesFormatDescription.php @@ -13,10 +13,16 @@ use const DIRECTORY_SEPARATOR; use const PHP_EOL; use function explode; use function implode; +use function preg_last_error_msg; use function preg_match; use function preg_quote; use function preg_replace; +use function sprintf; +use function strlen; +use function strpos; use function strtr; +use function substr; +use PHPUnit\Framework\Exception as FrameworkException; use SebastianBergmann\Diff\Differ; use SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder; @@ -40,18 +46,29 @@ final class StringMatchesFormatDescription extends Constraint /** * Evaluates the constraint for parameter $other. Returns true if the * constraint is met, false otherwise. + * + * @throws FrameworkException */ protected function matches(mixed $other): bool { $other = $this->convertNewlines($other); - $matches = preg_match( + $matches = @preg_match( $this->regularExpressionForFormatDescription( $this->convertNewlines($this->formatDescription), ), $other, ); + if ($matches === false) { + throw new FrameworkException( + sprintf( + 'Format description cannot be matched: %s', + preg_last_error_msg(), + ), + ); + } + return $matches > 0; } @@ -101,8 +118,34 @@ final class StringMatchesFormatDescription extends Constraint private function regularExpressionForFormatDescription(string $string): string { + $quoted = ''; + $startOffset = 0; + $length = strlen($string); + + while ($startOffset < $length) { + $start = strpos($string, '%r', $startOffset); + + if ($start !== false) { + $end = strpos($string, '%r', $start + 2); + + if ($end === false) { + $end = $start = $length; + } + } else { + $start = $end = $length; + } + + $quoted .= preg_quote(substr($string, $startOffset, $start - $startOffset), '/'); + + if ($end > $start) { + $quoted .= '(' . substr($string, $start + 2, $end - $start - 2) . ')'; + } + + $startOffset = $end + 2; + } + $string = strtr( - preg_quote($string, '/'), + $quoted, [ '%%' => '%', '%e' => preg_quote(DIRECTORY_SEPARATOR, '/'), diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsEqual.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsEqual.php index 0877bc2f7..f89835163 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsEqual.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsEqual.php @@ -27,7 +27,7 @@ final class TraversableContainsEqual extends TraversableContains } foreach ($other as $element) { - /* @noinspection TypeUnsafeComparisonInspection */ + /** @phpstan-ignore equal.notAllowed */ if ($this->value() == $element) { return true; } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsOnly.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsOnly.php index da752e910..50da87f29 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsOnly.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsOnly.php @@ -9,8 +9,8 @@ */ namespace PHPUnit\Framework\Constraint; -use PHPUnit\Framework\Exception; use PHPUnit\Framework\ExpectationFailedException; +use PHPUnit\Framework\NativeType; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit @@ -20,20 +20,23 @@ final class TraversableContainsOnly extends Constraint private readonly Constraint $constraint; private readonly string $type; - /** - * @param 'array'|'bool'|'boolean'|'callable'|'double'|'float'|'int'|'integer'|'iterable'|'null'|'numeric'|'object'|'real'|'resource (closed)'|'resource'|'scalar'|'string'|class-string $type - * - * @throws Exception - */ - public function __construct(string $type, bool $isNativeType = true) + public static function forNativeType(NativeType $type): self { - if ($isNativeType) { - $this->constraint = new IsType($type); - } else { - $this->constraint = new IsInstanceOf($type); - } + return new self(new IsType($type), $type->value); + } - $this->type = $type; + /** + * @param class-string $type + */ + public static function forClassOrInterface(string $type): self + { + return new self(new IsInstanceOf($type), $type); + } + + private function __construct(IsInstanceOf|IsType $constraint, string $type) + { + $this->constraint = $constraint; + $this->type = $type; } /** diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Type/IsType.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Type/IsType.php index 4f1c7090a..c2bff8eda 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Type/IsType.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Type/IsType.php @@ -21,117 +21,17 @@ use function is_object; use function is_scalar; use function is_string; use function sprintf; -use PHPUnit\Framework\UnknownTypeException; +use PHPUnit\Framework\NativeType; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ final class IsType extends Constraint { - /** - * @var string - */ - public const TYPE_ARRAY = 'array'; + private readonly NativeType $type; - /** - * @var string - */ - public const TYPE_BOOL = 'bool'; - - /** - * @var string - */ - public const TYPE_FLOAT = 'float'; - - /** - * @var string - */ - public const TYPE_INT = 'int'; - - /** - * @var string - */ - public const TYPE_NULL = 'null'; - - /** - * @var string - */ - public const TYPE_NUMERIC = 'numeric'; - - /** - * @var string - */ - public const TYPE_OBJECT = 'object'; - - /** - * @var string - */ - public const TYPE_RESOURCE = 'resource'; - - /** - * @var string - */ - public const TYPE_CLOSED_RESOURCE = 'resource (closed)'; - - /** - * @var string - */ - public const TYPE_STRING = 'string'; - - /** - * @var string - */ - public const TYPE_SCALAR = 'scalar'; - - /** - * @var string - */ - public const TYPE_CALLABLE = 'callable'; - - /** - * @var string - */ - public const TYPE_ITERABLE = 'iterable'; - - /** - * @var array - */ - private const KNOWN_TYPES = [ - 'array' => true, - 'boolean' => true, - 'bool' => true, - 'double' => true, - 'float' => true, - 'integer' => true, - 'int' => true, - 'null' => true, - 'numeric' => true, - 'object' => true, - 'real' => true, - 'resource' => true, - 'resource (closed)' => true, - 'string' => true, - 'scalar' => true, - 'callable' => true, - 'iterable' => true, - ]; - - /** - * @var 'array'|'bool'|'boolean'|'callable'|'double'|'float'|'int'|'integer'|'iterable'|'null'|'numeric'|'object'|'real'|'resource (closed)'|'resource'|'scalar'|'string' - */ - private readonly string $type; - - /** - * @param 'array'|'bool'|'boolean'|'callable'|'double'|'float'|'int'|'integer'|'iterable'|'null'|'numeric'|'object'|'real'|'resource (closed)'|'resource'|'scalar'|'string' $type - * - * @throws UnknownTypeException - */ - public function __construct(string $type) + public function __construct(NativeType $type) { - if (!isset(self::KNOWN_TYPES[$type])) { - throw new UnknownTypeException($type); - } - $this->type = $type; } @@ -142,7 +42,7 @@ final class IsType extends Constraint { return sprintf( 'is of type %s', - $this->type, + $this->type->value, ); } @@ -153,49 +53,45 @@ final class IsType extends Constraint protected function matches(mixed $other): bool { switch ($this->type) { - case 'numeric': + case NativeType::Numeric: return is_numeric($other); - case 'integer': - case 'int': + case NativeType::Int: return is_int($other); - case 'double': - case 'float': - case 'real': + case NativeType::Float: return is_float($other); - case 'string': + case NativeType::String: return is_string($other); - case 'boolean': - case 'bool': + case NativeType::Bool: return is_bool($other); - case 'null': + case NativeType::Null: return null === $other; - case 'array': + case NativeType::Array: return is_array($other); - case 'object': + case NativeType::Object: return is_object($other); - case 'resource': + case NativeType::Resource: $type = gettype($other); return $type === 'resource' || $type === 'resource (closed)'; - case 'resource (closed)': + case NativeType::ClosedResource: return gettype($other) === 'resource (closed)'; - case 'scalar': + case NativeType::Scalar: return is_scalar($other); - case 'callable': + case NativeType::Callable: return is_callable($other); - case 'iterable': + case NativeType::Iterable: return is_iterable($other); default: diff --git a/vendor/phpunit/phpunit/src/Framework/DataProviderTestSuite.php b/vendor/phpunit/phpunit/src/Framework/DataProviderTestSuite.php index c984859e9..262530b7a 100644 --- a/vendor/phpunit/phpunit/src/Framework/DataProviderTestSuite.php +++ b/vendor/phpunit/phpunit/src/Framework/DataProviderTestSuite.php @@ -11,6 +11,7 @@ namespace PHPUnit\Framework; use function assert; use function class_exists; +use function count; use function explode; use PHPUnit\Framework\TestSize\TestSize; use PHPUnit\Metadata\Api\Groups; @@ -75,6 +76,7 @@ final class DataProviderTestSuite extends TestSuite */ public function size(): TestSize { + assert(count(explode('::', $this->name())) === 2); [$className, $methodName] = explode('::', $this->name()); assert(class_exists($className)); diff --git a/vendor/phpunit/phpunit/src/Framework/Exception/CodeCoverageException.php b/vendor/phpunit/phpunit/src/Framework/Exception/ErrorLogNotWritableException.php similarity index 72% rename from vendor/phpunit/phpunit/src/Framework/Exception/CodeCoverageException.php rename to vendor/phpunit/phpunit/src/Framework/Exception/ErrorLogNotWritableException.php index 41169ff1b..602a3e49d 100644 --- a/vendor/phpunit/phpunit/src/Framework/Exception/CodeCoverageException.php +++ b/vendor/phpunit/phpunit/src/Framework/Exception/ErrorLogNotWritableException.php @@ -14,6 +14,10 @@ namespace PHPUnit\Framework; * * @internal This class is not covered by the backward compatibility promise for PHPUnit */ -class CodeCoverageException extends Exception +final class ErrorLogNotWritableException extends Exception { + public function __construct() + { + parent::__construct('Could not create writable file for error_log()'); + } } diff --git a/vendor/phpunit/phpunit/src/Framework/Exception/Exception.php b/vendor/phpunit/phpunit/src/Framework/Exception/Exception.php index c6abeea2f..c03ef8d52 100644 --- a/vendor/phpunit/phpunit/src/Framework/Exception/Exception.php +++ b/vendor/phpunit/phpunit/src/Framework/Exception/Exception.php @@ -43,7 +43,7 @@ use Throwable; class Exception extends RuntimeException implements \PHPUnit\Exception { /** - * @var list, object?: object}> + * @var list */ protected array $serializableTrace; @@ -78,7 +78,7 @@ class Exception extends RuntimeException implements \PHPUnit\Exception /** * Returns the serializable trace (without 'args'). * - * @return list, object?: object}> + * @return list */ public function getSerializableTrace(): array { diff --git a/vendor/phpunit/phpunit/src/Framework/Exception/InvalidDataProviderException.php b/vendor/phpunit/phpunit/src/Framework/Exception/InvalidDataProviderException.php index a29f4bde3..b7aa4ae88 100644 --- a/vendor/phpunit/phpunit/src/Framework/Exception/InvalidDataProviderException.php +++ b/vendor/phpunit/phpunit/src/Framework/Exception/InvalidDataProviderException.php @@ -9,6 +9,8 @@ */ namespace PHPUnit\Framework; +use Throwable; + /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit * @@ -16,4 +18,22 @@ namespace PHPUnit\Framework; */ final class InvalidDataProviderException extends Exception { + private ?string $providerLabel = null; + + public static function forException(Throwable $e, string $providerLabel): self + { + $exception = new self( + $e->getMessage(), + $e->getCode(), + $e, + ); + $exception->providerLabel = $providerLabel; + + return $exception; + } + + public function getProviderLabel(): ?string + { + return $this->providerLabel; + } } diff --git a/vendor/phpunit/phpunit/src/Framework/Exception/PHPTAssertionFailedError.php b/vendor/phpunit/phpunit/src/Framework/Exception/PHPTAssertionFailedError.php index ba2eec18f..862291ccb 100644 --- a/vendor/phpunit/phpunit/src/Framework/Exception/PHPTAssertionFailedError.php +++ b/vendor/phpunit/phpunit/src/Framework/Exception/PHPTAssertionFailedError.php @@ -22,13 +22,13 @@ final class PhptAssertionFailedError extends AssertionFailedError private readonly int $syntheticLine; /** - * @var list'|'::'|string, args?: list, object?: object}> + * @var list */ private readonly array $syntheticTrace; private readonly string $diff; /** - * @param list'|'::'|string, args?: list, object?: object}> $trace + * @param list $trace */ public function __construct(string $message, int $code, string $file, int $line, array $trace, string $diff) { @@ -51,7 +51,7 @@ final class PhptAssertionFailedError extends AssertionFailedError } /** - * @return list'|'::'|string, args?: list, object?: object}> + * @return list */ public function syntheticTrace(): array { diff --git a/vendor/phpunit/phpunit/src/Framework/Exception/UnknownTypeException.php b/vendor/phpunit/phpunit/src/Framework/Exception/UnknownNativeTypeException.php similarity index 76% rename from vendor/phpunit/phpunit/src/Framework/Exception/UnknownTypeException.php rename to vendor/phpunit/phpunit/src/Framework/Exception/UnknownNativeTypeException.php index b58b695c7..09da46093 100644 --- a/vendor/phpunit/phpunit/src/Framework/Exception/UnknownTypeException.php +++ b/vendor/phpunit/phpunit/src/Framework/Exception/UnknownNativeTypeException.php @@ -16,14 +16,14 @@ use function sprintf; * * @internal This class is not covered by the backward compatibility promise for PHPUnit */ -final class UnknownTypeException extends InvalidArgumentException +final class UnknownNativeTypeException extends InvalidArgumentException { - public function __construct(string $name) + public function __construct(string $type) { parent::__construct( sprintf( - 'Type "%s" is not known', - $name, + 'Native type "%s" is not known', + $type, ), ); } diff --git a/vendor/phpunit/phpunit/src/Framework/ExecutionOrderDependency.php b/vendor/phpunit/phpunit/src/Framework/ExecutionOrderDependency.php index 3a3740c6d..896d2560a 100644 --- a/vendor/phpunit/phpunit/src/Framework/ExecutionOrderDependency.php +++ b/vendor/phpunit/phpunit/src/Framework/ExecutionOrderDependency.php @@ -12,6 +12,8 @@ namespace PHPUnit\Framework; use function array_filter; use function array_map; use function array_values; +use function assert; +use function count; use function explode; use function in_array; use function str_contains; @@ -85,7 +87,7 @@ final class ExecutionOrderDependency implements Stringable public static function mergeUnique(array $existing, array $additional): array { $existingTargets = array_map( - static fn ($dependency) => $dependency->getTarget(), + static fn (ExecutionOrderDependency $dependency) => $dependency->getTarget(), $existing, ); @@ -121,7 +123,7 @@ final class ExecutionOrderDependency implements Stringable $diff = []; $rightTargets = array_map( - static fn ($dependency) => $dependency->getTarget(), + static fn (ExecutionOrderDependency $dependency) => $dependency->getTarget(), $right, ); @@ -146,10 +148,11 @@ final class ExecutionOrderDependency implements Stringable } if (str_contains($classOrCallableName, '::')) { + assert(count(explode('::', $classOrCallableName)) === 2); [$this->className, $this->methodName] = explode('::', $classOrCallableName); } else { $this->className = $classOrCallableName; - $this->methodName = !empty($methodName) ? $methodName : 'class'; + $this->methodName = $methodName !== null && $methodName !== '' ? $methodName : 'class'; } } @@ -158,6 +161,9 @@ final class ExecutionOrderDependency implements Stringable return $this->getTarget(); } + /** + * @phpstan-assert-if-true non-empty-string $this->getTarget() + */ public function isValid(): bool { // Invalid dependencies can be declared and are skipped by the runner diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/MockClass.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledClass.php similarity index 97% rename from vendor/phpunit/phpunit/src/Framework/MockObject/Generator/MockClass.php rename to vendor/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledClass.php index 486979eb5..3d88c72e3 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/MockClass.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledClass.php @@ -17,7 +17,7 @@ use PHPUnit\Framework\MockObject\ConfigurableMethod; * * @internal This class is not covered by the backward compatibility promise for PHPUnit */ -final readonly class MockClass implements MockType +final readonly class DoubledClass { private string $classCode; diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/MockMethod.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledMethod.php similarity index 89% rename from vendor/phpunit/phpunit/src/Framework/MockObject/Generator/MockMethod.php rename to vendor/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledMethod.php index 26d77207a..b4527d09a 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/MockMethod.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledMethod.php @@ -9,6 +9,8 @@ */ namespace PHPUnit\Framework\MockObject\Generator; +use function array_key_exists; +use function assert; use function count; use function explode; use function implode; @@ -16,7 +18,6 @@ use function is_object; use function is_string; use function preg_match; use function preg_replace; -use function sprintf; use function str_contains; use function strlen; use function strpos; @@ -36,7 +37,7 @@ use SebastianBergmann\Type\UnknownType; * * @internal This class is not covered by the backward compatibility promise for PHPUnit */ -final class MockMethod +final class DoubledMethod { use TemplateLoader; @@ -49,13 +50,11 @@ final class MockMethod * @var non-empty-string */ private readonly string $methodName; - private readonly bool $cloneArguments; private readonly string $modifier; private readonly string $argumentsForDeclaration; private readonly string $argumentsForCall; private readonly Type $returnType; private readonly string $reference; - private readonly bool $callOriginalMethod; private readonly bool $static; private readonly ?string $deprecation; @@ -73,7 +72,7 @@ final class MockMethod * @throws ReflectionException * @throws RuntimeException */ - public static function fromReflection(ReflectionMethod $method, bool $callOriginalMethod, bool $cloneArguments): self + public static function fromReflection(ReflectionMethod $method): self { if ($method->isPrivate()) { $modifier = 'private'; @@ -96,7 +95,8 @@ final class MockMethod $docComment = $method->getDocComment(); if (is_string($docComment) && - preg_match('#\*[ \t]*+@deprecated[ \t]*+(.*?)\r?+\n[ \t]*+\*(?:[ \t]*+@|/$)#s', $docComment, $deprecation)) { + preg_match('#\*[ \t]*+@deprecated[ \t]*+(.*?)\r?+\n[ \t]*+\*(?:[ \t]*+@|/$)#s', $docComment, $deprecation) > 0 + ) { $deprecation = trim(preg_replace('#[ \t]*\r?\n[ \t]*+\*[ \t]*+#', ' ', $deprecation[1])); } else { $deprecation = null; @@ -105,7 +105,6 @@ final class MockMethod return new self( $method->getDeclaringClass()->getName(), $method->getName(), - $cloneArguments, $modifier, self::methodParametersForDeclaration($method), self::methodParametersForCall($method), @@ -113,7 +112,6 @@ final class MockMethod count($method->getParameters()), (new ReflectionMapper)->fromReturnType($method), $reference, - $callOriginalMethod, $method->isStatic(), $deprecation, ); @@ -123,12 +121,11 @@ final class MockMethod * @param class-string $className * @param non-empty-string $methodName */ - public static function fromName(string $className, string $methodName, bool $cloneArguments): self + public static function fromName(string $className, string $methodName): self { return new self( $className, $methodName, - $cloneArguments, 'public', '', '', @@ -137,7 +134,6 @@ final class MockMethod new UnknownType, '', false, - false, null, ); } @@ -148,11 +144,10 @@ final class MockMethod * @param array $defaultParameterValues * @param non-negative-int $numberOfParameters */ - private function __construct(string $className, string $methodName, bool $cloneArguments, string $modifier, string $argumentsForDeclaration, string $argumentsForCall, array $defaultParameterValues, int $numberOfParameters, Type $returnType, string $reference, bool $callOriginalMethod, bool $static, ?string $deprecation) + private function __construct(string $className, string $methodName, string $modifier, string $argumentsForDeclaration, string $argumentsForCall, array $defaultParameterValues, int $numberOfParameters, Type $returnType, string $reference, bool $static, ?string $deprecation) { $this->className = $className; $this->methodName = $methodName; - $this->cloneArguments = $cloneArguments; $this->modifier = $modifier; $this->argumentsForDeclaration = $argumentsForDeclaration; $this->argumentsForCall = $argumentsForCall; @@ -160,7 +155,6 @@ final class MockMethod $this->numberOfParameters = $numberOfParameters; $this->returnType = $returnType; $this->reference = $reference; - $this->callOriginalMethod = $callOriginalMethod; $this->static = $static; $this->deprecation = $deprecation; } @@ -181,10 +175,7 @@ final class MockMethod if ($this->static) { $templateFile = 'doubled_static_method.tpl'; } else { - $templateFile = sprintf( - '%s_method.tpl', - $this->callOriginalMethod ? 'proxied' : 'doubled', - ); + $templateFile = 'doubled_method.tpl'; } $deprecation = $this->deprecation; @@ -217,23 +208,29 @@ EOT; if (str_contains($this->argumentsForCall, '...')) { $argumentsCount = null; - } elseif (!empty($this->argumentsForCall)) { + } elseif ($this->argumentsForCall !== '') { $argumentsCount = substr_count($this->argumentsForCall, ',') + 1; } + $returnDeclaration = ''; + $returnTypeAsString = $this->returnType->asString(); + + if ($returnTypeAsString !== '') { + $returnDeclaration = ': ' . $returnTypeAsString; + } + $template->setVar( [ 'arguments_decl' => $this->argumentsForDeclaration, 'arguments_call' => $this->argumentsForCall, - 'return_declaration' => !empty($this->returnType->asString()) ? (': ' . $this->returnType->asString()) : '', + 'return_declaration' => $returnDeclaration, 'return_type' => $this->returnType->asString(), 'arguments_count' => (string) $argumentsCount, 'class_name' => $this->className, 'method_name' => $this->methodName, 'modifier' => $this->modifier, 'reference' => $this->reference, - 'clone_arguments' => $this->cloneArguments ? 'true' : 'false', - 'deprecation' => $deprecation ?? '', + 'deprecation' => $deprecation, 'return_result' => $returnResult, ], ); @@ -296,6 +293,8 @@ EOT; $reference = ''; $typeDeclaration = ''; + assert(array_key_exists($i, $types)); + if (!$types[$i]->type()->isUnknown()) { $typeDeclaration = $types[$i]->type()->asString() . ' '; } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/MockMethodSet.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledMethodSet.php similarity index 86% rename from vendor/phpunit/phpunit/src/Framework/MockObject/Generator/MockMethodSet.php rename to vendor/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledMethodSet.php index 2c4b25f19..6a2d29f4f 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/MockMethodSet.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledMethodSet.php @@ -18,14 +18,14 @@ use function strtolower; * * @internal This class is not covered by the backward compatibility promise for PHPUnit */ -final class MockMethodSet +final class DoubledMethodSet { /** - * @var array + * @var array */ private array $methods = []; - public function addMethods(MockMethod ...$methods): void + public function addMethods(DoubledMethod ...$methods): void { foreach ($methods as $method) { $this->methods[strtolower($method->methodName())] = $method; @@ -33,7 +33,7 @@ final class MockMethodSet } /** - * @return list + * @return list */ public function asArray(): array { diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/CannotUseAddMethodsException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/CannotUseAddMethodsException.php deleted file mode 100644 index 9fc507887..000000000 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/CannotUseAddMethodsException.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Framework\MockObject\Generator; - -use function sprintf; - -/** - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - * - * @internal This class is not covered by the backward compatibility promise for PHPUnit - */ -final class CannotUseAddMethodsException extends \PHPUnit\Framework\Exception implements Exception -{ - public function __construct(string $type, string $methodName) - { - parent::__construct( - sprintf( - 'Trying to configure method "%s" with addMethods(), but it exists in class "%s". Use onlyMethods() for methods that exist in the class', - $methodName, - $type, - ), - ); - } -} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownClassException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsAnonymousException.php similarity index 80% rename from vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownClassException.php rename to vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsAnonymousException.php index c51274591..ace971427 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownClassException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsAnonymousException.php @@ -16,13 +16,13 @@ use function sprintf; * * @internal This class is not covered by the backward compatibility promise for PHPUnit */ -final class UnknownClassException extends \PHPUnit\Framework\Exception implements Exception +final class ClassIsAnonymousException extends \PHPUnit\Framework\Exception implements Exception { public function __construct(string $className) { parent::__construct( sprintf( - 'Class "%s" does not exist', + 'Class "%s" is an anonymous class and cannot be doubled', $className, ), ); diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownTraitException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/InvalidClassNameException.php similarity index 68% rename from vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownTraitException.php rename to vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/InvalidClassNameException.php index a536b1565..80b79bfe2 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownTraitException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/InvalidClassNameException.php @@ -15,17 +15,15 @@ use function sprintf; * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit * * @internal This class is not covered by the backward compatibility promise for PHPUnit - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5243 */ -final class UnknownTraitException extends \PHPUnit\Framework\Exception implements Exception +final class InvalidClassNameException extends \PHPUnit\Framework\Exception implements Exception { - public function __construct(string $traitName) + public function __construct(string $className) { parent::__construct( sprintf( - 'Trait "%s" does not exist', - $traitName, + 'Cannot use "%s" as the name of a test double class because it is not a valid PHP class name', + $className, ), ); } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/MethodNamedMethodException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/MethodNamedMethodException.php new file mode 100644 index 000000000..78586fe10 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/MethodNamedMethodException.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Generator; + +/** + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final class MethodNamedMethodException extends \PHPUnit\Framework\Exception implements Exception +{ + public function __construct() + { + parent::__construct('Doubling interfaces (or classes) that have a method named "method" is not supported.'); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Generator.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Generator.php index 2ad465cea..1ca7360f9 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Generator.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Generator.php @@ -10,11 +10,7 @@ namespace PHPUnit\Framework\MockObject\Generator; use const PHP_EOL; -use const PHP_MAJOR_VERSION; -use const PHP_MINOR_VERSION; use const PHP_VERSION; -use const PREG_OFFSET_CAPTURE; -use const WSDL_CACHE_NONE; use function array_merge; use function array_pop; use function array_unique; @@ -22,44 +18,28 @@ use function assert; use function class_exists; use function count; use function explode; -use function extension_loaded; use function implode; use function in_array; use function interface_exists; use function is_array; -use function is_object; use function md5; use function mt_rand; use function preg_match; -use function preg_match_all; -use function range; use function serialize; use function sort; use function sprintf; -use function str_contains; -use function str_replace; -use function strlen; -use function strpos; use function substr; use function trait_exists; use function version_compare; use Exception; use Iterator; use IteratorAggregate; -use PHPUnit\Event\Code\NoTestCaseObjectOnCallStackException; -use PHPUnit\Event\Code\TestMethodBuilder; -use PHPUnit\Event\Facade as EventFacade; -use PHPUnit\Framework\InvalidArgumentException; use PHPUnit\Framework\MockObject\ConfigurableMethod; use PHPUnit\Framework\MockObject\DoubledCloneMethod; -use PHPUnit\Framework\MockObject\ErrorCloneMethod; -use PHPUnit\Framework\MockObject\GeneratedAsMockObject; -use PHPUnit\Framework\MockObject\GeneratedAsTestStub; use PHPUnit\Framework\MockObject\Method; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\MockObject\MockObjectApi; use PHPUnit\Framework\MockObject\MockObjectInternal; -use PHPUnit\Framework\MockObject\MutableStubApi; use PHPUnit\Framework\MockObject\ProxiedCloneMethod; use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\MockObject\StubApi; @@ -71,8 +51,6 @@ use ReflectionMethod; use ReflectionObject; use SebastianBergmann\Type\ReflectionMapper; use SebastianBergmann\Type\Type; -use SoapClient; -use SoapFault; use Throwable; use Traversable; @@ -86,67 +64,57 @@ final class Generator use TemplateLoader; /** - * @var array + * @var null|non-empty-array */ - private static $excludedMethodNames = []; + private static ?array $excludedMethodNames = null; /** - * @var array + * @var array */ private static array $cache = []; /** * Returns a test double for the specified class. * + * @param class-string $type * @param ?list $methods - * @param list $arguments + * @param array $arguments * + * @throws ClassIsAnonymousException * @throws ClassIsEnumerationException * @throws ClassIsFinalException * @throws DuplicateMethodException + * @throws InvalidClassNameException * @throws InvalidMethodNameException * @throws NameAlreadyInUseException - * @throws OriginalConstructorInvocationRequiredException * @throws ReflectionException * @throws RuntimeException * @throws UnknownTypeException */ - public function testDouble(string $type, bool $mockObject, bool $markAsMockObject, ?array $methods = [], array $arguments = [], string $mockClassName = '', bool $callOriginalConstructor = true, bool $callOriginalClone = true, bool $callAutoload = true, bool $cloneArguments = true, bool $callOriginalMethods = false, ?object $proxyTarget = null, bool $allowMockingUnknownTypes = true, bool $returnValueGeneration = true): MockObject|Stub + public function testDouble(string $type, bool $mockObject, ?array $methods = [], array $arguments = [], string $mockClassName = '', bool $callOriginalConstructor = true, bool $callOriginalClone = true, bool $returnValueGeneration = true): MockObject|Stub { if ($type === Traversable::class) { $type = Iterator::class; } - if (!$allowMockingUnknownTypes) { - $this->ensureKnownType($type, $callAutoload); - } - + $this->ensureKnownType($type); $this->ensureValidMethods($methods); + $this->ensureValidNameForTestDoubleClass($mockClassName); $this->ensureNameForTestDoubleClassIsAvailable($mockClassName); - if (!$callOriginalConstructor && $callOriginalMethods) { - throw new OriginalConstructorInvocationRequiredException; - } - $mock = $this->generate( $type, $mockObject, - $markAsMockObject, $methods, $mockClassName, $callOriginalClone, - $callAutoload, - $cloneArguments, - $callOriginalMethods, ); $object = $this->instantiate( $mock, - $type, + $mockObject, $callOriginalConstructor, $arguments, - $callOriginalMethods, - $proxyTarget, $returnValueGeneration, ); @@ -167,14 +135,14 @@ final class Generator * @throws RuntimeException * @throws UnknownInterfaceException */ - public function testDoubleForInterfaceIntersection(array $interfaces, bool $mockObject, bool $callAutoload = true, bool $returnValueGeneration = true): MockObject|Stub + public function testDoubleForInterfaceIntersection(array $interfaces, bool $mockObject, bool $returnValueGeneration = true): MockObject|Stub { if (count($interfaces) < 2) { throw new RuntimeException('At least two interfaces must be specified'); } foreach ($interfaces as $interface) { - if (!interface_exists($interface, $callAutoload)) { + if (!interface_exists($interface)) { throw new UnknownInterfaceException($interface); } } @@ -219,176 +187,20 @@ final class Generator eval($template->render()); + assert(interface_exists($intersectionName)); + return $this->testDouble( $intersectionName, $mockObject, - $mockObject, returnValueGeneration: $returnValueGeneration, ); } /** - * Returns a mock object for the specified abstract class with all abstract - * methods of the class mocked. - * - * Concrete methods to mock can be specified with the $mockedMethods parameter. - * - * @param list $arguments - * @param ?list $mockedMethods - * - * @throws ClassIsEnumerationException - * @throws ClassIsFinalException - * @throws DuplicateMethodException - * @throws InvalidArgumentException - * @throws InvalidMethodNameException - * @throws NameAlreadyInUseException - * @throws OriginalConstructorInvocationRequiredException - * @throws ReflectionException - * @throws RuntimeException - * @throws UnknownClassException - * @throws UnknownTypeException - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5241 - */ - public function mockObjectForAbstractClass(string $originalClassName, array $arguments = [], string $mockClassName = '', bool $callOriginalConstructor = true, bool $callOriginalClone = true, bool $callAutoload = true, ?array $mockedMethods = null, bool $cloneArguments = true): MockObject - { - if (class_exists($originalClassName, $callAutoload) || - interface_exists($originalClassName, $callAutoload)) { - $reflector = $this->reflectClass($originalClassName); - $methods = $mockedMethods; - - foreach ($reflector->getMethods() as $method) { - if ($method->isAbstract() && !in_array($method->getName(), $methods ?? [], true)) { - $methods[] = $method->getName(); - } - } - - if (empty($methods)) { - $methods = null; - } - - $mockObject = $this->testDouble( - $originalClassName, - true, - true, - $methods, - $arguments, - $mockClassName, - $callOriginalConstructor, - $callOriginalClone, - $callAutoload, - $cloneArguments, - ); - - assert($mockObject instanceof $originalClassName); - assert($mockObject instanceof MockObject); - - return $mockObject; - } - - throw new UnknownClassException($originalClassName); - } - - /** - * Returns a mock object for the specified trait with all abstract methods - * of the trait mocked. Concrete methods to mock can be specified with the - * `$mockedMethods` parameter. - * - * @param trait-string $traitName - * @param list $arguments - * @param ?list $mockedMethods - * - * @throws ClassIsEnumerationException - * @throws ClassIsFinalException - * @throws DuplicateMethodException - * @throws InvalidArgumentException - * @throws InvalidMethodNameException - * @throws NameAlreadyInUseException - * @throws OriginalConstructorInvocationRequiredException - * @throws ReflectionException - * @throws RuntimeException - * @throws UnknownClassException - * @throws UnknownTraitException - * @throws UnknownTypeException - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5243 - */ - public function mockObjectForTrait(string $traitName, array $arguments = [], string $mockClassName = '', bool $callOriginalConstructor = true, bool $callOriginalClone = true, bool $callAutoload = true, ?array $mockedMethods = null, bool $cloneArguments = true): MockObject - { - if (!trait_exists($traitName, $callAutoload)) { - throw new UnknownTraitException($traitName); - } - - $className = $this->generateClassName( - $traitName, - '', - 'Trait_', - ); - - $classTemplate = $this->loadTemplate('trait_class.tpl'); - - $classTemplate->setVar( - [ - 'prologue' => 'abstract ', - 'class_name' => $className['className'], - 'trait_name' => $traitName, - ], - ); - - $mockTrait = new MockTrait($classTemplate->render(), $className['className']); - $mockTrait->generate(); - - return $this->mockObjectForAbstractClass($className['className'], $arguments, $mockClassName, $callOriginalConstructor, $callOriginalClone, $callAutoload, $mockedMethods, $cloneArguments); - } - - /** - * Returns an object for the specified trait. - * - * @param trait-string $traitName - * @param list $arguments - * - * @throws ReflectionException - * @throws RuntimeException - * @throws UnknownTraitException - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5244 - */ - public function objectForTrait(string $traitName, string $traitClassName = '', bool $callAutoload = true, bool $callOriginalConstructor = false, array $arguments = []): object - { - if (!trait_exists($traitName, $callAutoload)) { - throw new UnknownTraitException($traitName); - } - - $className = $this->generateClassName( - $traitName, - $traitClassName, - 'Trait_', - ); - - $classTemplate = $this->loadTemplate('trait_class.tpl'); - - $classTemplate->setVar( - [ - 'prologue' => '', - 'class_name' => $className['className'], - 'trait_name' => $traitName, - ], - ); - - return $this->instantiate( - new MockTrait( - $classTemplate->render(), - $className['className'], - ), - '', - $callOriginalConstructor, - $arguments, - ); - } - - /** + * @param class-string $type * @param ?list $methods * + * @throws ClassIsAnonymousException * @throws ClassIsEnumerationException * @throws ClassIsFinalException * @throws ReflectionException @@ -398,43 +210,32 @@ final class Generator * * @see https://github.com/sebastianbergmann/phpunit/issues/5476 */ - public function generate(string $type, bool $mockObject, bool $markAsMockObject, ?array $methods = null, string $mockClassName = '', bool $callOriginalClone = true, bool $callAutoload = true, bool $cloneArguments = true, bool $callOriginalMethods = false): MockClass + public function generate(string $type, bool $mockObject, ?array $methods = null, string $mockClassName = '', bool $callOriginalClone = true): DoubledClass { if ($mockClassName !== '') { return $this->generateCodeForTestDoubleClass( $type, $mockObject, - $markAsMockObject, $methods, $mockClassName, $callOriginalClone, - $callAutoload, - $cloneArguments, - $callOriginalMethods, ); } $key = md5( $type . ($mockObject ? 'MockObject' : 'TestStub') . - ($markAsMockObject ? 'MockObject' : 'TestStub') . serialize($methods) . - serialize($callOriginalClone) . - serialize($cloneArguments) . - serialize($callOriginalMethods), + serialize($callOriginalClone), ); if (!isset(self::$cache[$key])) { self::$cache[$key] = $this->generateCodeForTestDoubleClass( $type, $mockObject, - $markAsMockObject, $methods, $mockClassName, $callOriginalClone, - $callAutoload, - $cloneArguments, - $callOriginalMethods, ); } @@ -442,120 +243,20 @@ final class Generator } /** - * @param non-empty-string $wsdlFile - * @param class-string $className - * @param list $methods - * @param array $options + * @param class-string $className * - * @throws RuntimeException - * @throws SoapExtensionNotAvailableException - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5242 - */ - public function generateClassFromWsdl(string $wsdlFile, string $className, array $methods = [], array $options = []): string - { - if (!extension_loaded('soap')) { - throw new SoapExtensionNotAvailableException; - } - - $options['cache_wsdl'] = WSDL_CACHE_NONE; - - try { - $client = new SoapClient($wsdlFile, $options); - $_methods = array_unique($client->__getFunctions() ?? []); - - unset($client); - } catch (SoapFault $e) { - throw new RuntimeException( - $e->getMessage(), - $e->getCode(), - $e, - ); - } - - sort($_methods); - - $methodTemplate = $this->loadTemplate('wsdl_method.tpl'); - $methodsBuffer = ''; - - foreach ($_methods as $method) { - preg_match_all('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*\(/', $method, $matches, PREG_OFFSET_CAPTURE); - - $lastFunction = array_pop($matches[0]); - $nameStart = $lastFunction[1]; - $nameEnd = $nameStart + strlen($lastFunction[0]) - 1; - $name = str_replace('(', '', $lastFunction[0]); - - if (empty($methods) || in_array($name, $methods, true)) { - $arguments = explode( - ',', - str_replace(')', '', substr($method, $nameEnd + 1)), - ); - - foreach (range(0, count($arguments) - 1) as $i) { - $parameterStart = strpos($arguments[$i], '$'); - - if (!$parameterStart) { - continue; - } - - $arguments[$i] = substr($arguments[$i], $parameterStart); - } - - $methodTemplate->setVar( - [ - 'method_name' => $name, - 'arguments' => implode(', ', $arguments), - ], - ); - - $methodsBuffer .= $methodTemplate->render(); - } - } - - $optionsBuffer = '['; - - foreach ($options as $key => $value) { - $optionsBuffer .= $key . ' => ' . $value; - } - - $optionsBuffer .= ']'; - - $classTemplate = $this->loadTemplate('wsdl_class.tpl'); - $namespace = ''; - - if (str_contains($className, '\\')) { - $parts = explode('\\', $className); - $className = array_pop($parts); - $namespace = 'namespace ' . implode('\\', $parts) . ';' . "\n\n"; - } - - $classTemplate->setVar( - [ - 'namespace' => $namespace, - 'class_name' => $className, - 'wsdl' => $wsdlFile, - 'options' => $optionsBuffer, - 'methods' => $methodsBuffer, - ], - ); - - return $classTemplate->render(); - } - - /** * @throws ReflectionException * - * @return list + * @return list */ - public function mockClassMethods(string $className, bool $callOriginalMethods, bool $cloneArguments): array + private function mockClassMethods(string $className): array { $class = $this->reflectClass($className); $methods = []; foreach ($class->getMethods() as $method) { if (($method->isPublic() || $method->isAbstract()) && $this->canMethodBeDoubled($method)) { - $methods[] = MockMethod::fromReflection($method, $callOriginalMethods, $cloneArguments); + $methods[] = DoubledMethod::fromReflection($method); } } @@ -591,7 +292,7 @@ final class Generator * @throws ReflectionException * @throws RuntimeException */ - private function instantiate(MockType $mockClass, string $type = '', bool $callOriginalConstructor = false, array $arguments = [], bool $callOriginalMethods = false, ?object $proxyTarget = null, bool $returnValueGeneration = true): object + private function instantiate(DoubledClass $mockClass, bool $mockObject, bool $callOriginalConstructor = false, array $arguments = [], bool $returnValueGeneration = true): object { $className = $mockClass->generate(); @@ -609,19 +310,13 @@ final class Generator $reflector = new ReflectionObject($object); - if ($object instanceof StubInternal && $mockClass instanceof MockClass) { - /** - * @noinspection PhpUnhandledExceptionInspection - */ - $reflector->getProperty('__phpunit_state')->setValue( - $object, - new TestDoubleState($mockClass->configurableMethods(), $returnValueGeneration), - ); - - if ($callOriginalMethods) { - $this->instantiateProxyTarget($proxyTarget, $object, $type, $arguments); - } - } + /** + * @noinspection PhpUnhandledExceptionInspection + */ + $reflector->getProperty('__phpunit_state')->setValue( + $object, + new TestDoubleState($mockClass->configurableMethods(), $returnValueGeneration, $mockObject), + ); if ($callOriginalConstructor && $reflector->getConstructor() !== null) { try { @@ -641,14 +336,17 @@ final class Generator } /** + * @param class-string $type * @param ?list $explicitMethods * + * @throws ClassIsAnonymousException * @throws ClassIsEnumerationException * @throws ClassIsFinalException + * @throws MethodNamedMethodException * @throws ReflectionException * @throws RuntimeException */ - private function generateCodeForTestDoubleClass(string $type, bool $mockObject, bool $markAsMockObject, ?array $explicitMethods, string $mockClassName, bool $callOriginalClone, bool $callAutoload, bool $cloneArguments, bool $callOriginalMethods): MockClass + private function generateCodeForTestDoubleClass(string $type, bool $mockObject, ?array $explicitMethods, string $mockClassName, bool $callOriginalClone): DoubledClass { $classTemplate = $this->loadTemplate('test_double_class.tpl'); $additionalInterfaces = []; @@ -657,8 +355,7 @@ final class Generator $isClass = false; $isReadonly = false; $isInterface = false; - $class = null; - $mockMethods = new MockMethodSet; + $mockMethods = new DoubledMethodSet; $testDoubleClassPrefix = $mockObject ? 'MockObject_' : 'TestStub_'; $_mockClassName = $this->generateClassName( @@ -667,104 +364,94 @@ final class Generator $testDoubleClassPrefix, ); - if (class_exists($_mockClassName['fullClassName'], $callAutoload)) { + if (class_exists($_mockClassName['fullClassName'])) { $isClass = true; - } elseif (interface_exists($_mockClassName['fullClassName'], $callAutoload)) { + } elseif (interface_exists($_mockClassName['fullClassName'])) { $isInterface = true; } - if (!$isClass && !$isInterface) { - $prologue = 'class ' . $_mockClassName['originalClassName'] . "\n{\n}\n\n"; + $class = $this->reflectClass($_mockClassName['fullClassName']); - if (!empty($_mockClassName['namespaceName'])) { - $prologue = 'namespace ' . $_mockClassName['namespaceName'] . - " {\n\n" . $prologue . "}\n\n" . - "namespace {\n\n"; + if ($class->isAnonymous()) { + throw new ClassIsAnonymousException($_mockClassName['fullClassName']); + } - $epilogue = "\n\n}"; - } + if ($class->isEnum()) { + throw new ClassIsEnumerationException($_mockClassName['fullClassName']); + } - $doubledCloneMethod = true; - } else { - $class = $this->reflectClass($_mockClassName['fullClassName']); + if ($class->isFinal()) { + throw new ClassIsFinalException($_mockClassName['fullClassName']); + } - if ($class->isEnum()) { - throw new ClassIsEnumerationException($_mockClassName['fullClassName']); - } + if ($class->isReadOnly()) { + $isReadonly = true; + } - if ($class->isFinal()) { - throw new ClassIsFinalException($_mockClassName['fullClassName']); - } + // @see https://github.com/sebastianbergmann/phpunit/issues/2995 + if ($isInterface && $class->implementsInterface(Throwable::class)) { + $actualClassName = Exception::class; + $additionalInterfaces[] = $class->getName(); + $isInterface = false; + $class = $this->reflectClass($actualClassName); - if ($class->isReadOnly()) { - $isReadonly = true; - } + foreach ($this->userDefinedInterfaceMethods($_mockClassName['fullClassName']) as $method) { + $methodName = $method->getName(); - // @see https://github.com/sebastianbergmann/phpunit/issues/2995 - if ($isInterface && $class->implementsInterface(Throwable::class)) { - $actualClassName = Exception::class; - $additionalInterfaces[] = $class->getName(); - $isInterface = false; - $class = $this->reflectClass($actualClassName); + if ($class->hasMethod($methodName)) { + $classMethod = $class->getMethod($methodName); - foreach ($this->userDefinedInterfaceMethods($_mockClassName['fullClassName']) as $method) { - $methodName = $method->getName(); - - if ($class->hasMethod($methodName)) { - $classMethod = $class->getMethod($methodName); - - if (!$this->canMethodBeDoubled($classMethod)) { - continue; - } + if (!$this->canMethodBeDoubled($classMethod)) { + continue; } - - $mockMethods->addMethods( - MockMethod::fromReflection($method, $callOriginalMethods, $cloneArguments), - ); } - $_mockClassName = $this->generateClassName( - $actualClassName, - $_mockClassName['className'], - $testDoubleClassPrefix, - ); - } - - // @see https://github.com/sebastianbergmann/phpunit-mock-objects/issues/103 - if ($isInterface && $class->implementsInterface(Traversable::class) && - !$class->implementsInterface(Iterator::class) && - !$class->implementsInterface(IteratorAggregate::class)) { - $additionalInterfaces[] = Iterator::class; - $mockMethods->addMethods( - ...$this->mockClassMethods(Iterator::class, $callOriginalMethods, $cloneArguments), + DoubledMethod::fromReflection($method), ); } - if ($class->hasMethod('__clone')) { - $cloneMethod = $class->getMethod('__clone'); + $_mockClassName = $this->generateClassName( + $actualClassName, + $_mockClassName['className'], + $testDoubleClassPrefix, + ); + } - if (!$cloneMethod->isFinal()) { - if ($callOriginalClone && !$isInterface) { - $proxiedCloneMethod = true; - } else { - $doubledCloneMethod = true; - } + // @see https://github.com/sebastianbergmann/phpunit-mock-objects/issues/103 + if ($isInterface && $class->implementsInterface(Traversable::class) && + !$class->implementsInterface(Iterator::class) && + !$class->implementsInterface(IteratorAggregate::class)) { + $additionalInterfaces[] = Iterator::class; + + $mockMethods->addMethods( + ...$this->mockClassMethods(Iterator::class), + ); + } + + if ($class->hasMethod('__clone')) { + $cloneMethod = $class->getMethod('__clone'); + + if (!$cloneMethod->isFinal()) { + if ($callOriginalClone && !$isInterface) { + $proxiedCloneMethod = true; + } else { + $doubledCloneMethod = true; } - } else { - $doubledCloneMethod = true; } + } else { + $doubledCloneMethod = true; } if ($isClass && $explicitMethods === []) { $mockMethods->addMethods( - ...$this->mockClassMethods($_mockClassName['fullClassName'], $callOriginalMethods, $cloneArguments), + ...$this->mockClassMethods($_mockClassName['fullClassName']), ); } if ($isInterface && ($explicitMethods === [] || $explicitMethods === null)) { $mockMethods->addMethods( - ...$this->interfaceMethods($_mockClassName['fullClassName'], $cloneArguments), + ...$this->interfaceMethods($_mockClassName['fullClassName']), ); } @@ -775,15 +462,14 @@ final class Generator if ($this->canMethodBeDoubled($method)) { $mockMethods->addMethods( - MockMethod::fromReflection($method, $callOriginalMethods, $cloneArguments), + DoubledMethod::fromReflection($method), ); } } else { $mockMethods->addMethods( - MockMethod::fromName( + DoubledMethod::fromName( $_mockClassName['fullClassName'], $methodName, - $cloneArguments, ), ); } @@ -800,61 +486,22 @@ final class Generator } /** @var trait-string[] $traits */ - $traits = []; - - /** @phpstan-ignore identical.alwaysTrue */ - $isPhp82 = PHP_MAJOR_VERSION === 8 && PHP_MINOR_VERSION === 2; - - if (!$isReadonly && $isPhp82) { - // @codeCoverageIgnoreStart - $traits[] = MutableStubApi::class; - // @codeCoverageIgnoreEnd - } else { - $traits[] = StubApi::class; - } + $traits = [StubApi::class]; if ($mockObject) { $traits[] = MockObjectApi::class; } - if ($markAsMockObject) { - $traits[] = GeneratedAsMockObject::class; - } else { - $traits[] = GeneratedAsTestStub::class; + if ($mockMethods->hasMethod('method') || $class->hasMethod('method')) { + throw new MethodNamedMethodException; } - if ($mockMethods->hasMethod('method') || (isset($class) && $class->hasMethod('method'))) { - $message = sprintf( - '%s %s has a method named "method". Doubling %s that have a method named "method" is deprecated. Support for this will be removed in PHPUnit 12.', - ($isInterface) ? 'Interface' : 'Class', - isset($class) ? $class->getName() : $type, - ($isInterface) ? 'interfaces' : 'classes', - ); + $traits[] = Method::class; - try { - EventFacade::emitter()->testTriggeredPhpunitDeprecation( - TestMethodBuilder::fromCallStack(), - $message, - ); - } catch (NoTestCaseObjectOnCallStackException) { - EventFacade::emitter()->testRunnerTriggeredPhpunitDeprecation($message); - } - } - - if (!$mockMethods->hasMethod('method') && (!isset($class) || !$class->hasMethod('method'))) { - $traits[] = Method::class; - } - - if ($isPhp82 && $isReadonly) { - // @codeCoverageIgnoreStart - $traits[] = ErrorCloneMethod::class; - // @codeCoverageIgnoreEnd - } else { - if ($doubledCloneMethod) { - $traits[] = DoubledCloneMethod::class; - } elseif ($proxiedCloneMethod) { - $traits[] = ProxiedCloneMethod::class; - } + if ($doubledCloneMethod) { + $traits[] = DoubledCloneMethod::class; + } elseif ($proxiedCloneMethod) { + $traits[] = ProxiedCloneMethod::class; } $useStatements = ''; @@ -870,8 +517,6 @@ final class Generator $classTemplate->setVar( [ - 'prologue' => $prologue ?? '', - 'epilogue' => $epilogue ?? '', 'class_declaration' => $this->generateTestDoubleClassDeclaration( $mockObject, $_mockClassName, @@ -889,7 +534,7 @@ final class Generator ], ); - return new MockClass( + return new DoubledClass( $classTemplate->render(), $_mockClassName['className'], $configurableMethods, @@ -897,7 +542,9 @@ final class Generator } /** - * @return array{className: non-empty-string, originalClassName: non-empty-string, fullClassName: non-empty-string, namespaceName: string} + * @param class-string $type + * + * @return array{className: class-string, originalClassName: class-string, fullClassName: class-string, namespaceName: string} */ private function generateClassName(string $type, string $className, string $prefix): array { @@ -961,7 +608,7 @@ final class Generator if (!in_array($mockClassName['originalClassName'], $additionalInterfaces, true)) { $buffer .= ', '; - if (!empty($mockClassName['namespaceName'])) { + if ($mockClassName['namespaceName'] !== '') { $buffer .= $mockClassName['namespaceName'] . '\\'; } @@ -971,7 +618,7 @@ final class Generator $buffer .= sprintf( '%s extends %s%s implements %s', $mockClassName['className'], - !empty($mockClassName['namespaceName']) ? $mockClassName['namespaceName'] . '\\' : '', + $mockClassName['namespaceName'] !== '' ? $mockClassName['namespaceName'] . '\\' : '', $mockClassName['originalClassName'], $interfaces, ); @@ -1003,7 +650,7 @@ final class Generator private function isMethodNameExcluded(string $name): bool { - if (self::$excludedMethodNames === []) { + if (self::$excludedMethodNames === null) { self::$excludedMethodNames = [ '__CLASS__' => true, '__DIR__' => true, @@ -1029,9 +676,9 @@ final class Generator /** * @throws UnknownTypeException */ - private function ensureKnownType(string $type, bool $callAutoload): void + private function ensureKnownType(string $type): void { - if (!class_exists($type, $callAutoload) && !interface_exists($type, $callAutoload)) { + if (!class_exists($type) && !interface_exists($type)) { throw new UnknownTypeException($type); } } @@ -1049,7 +696,7 @@ final class Generator } foreach ($methods as $method) { - if (!preg_match('~[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*~', (string) $method)) { + if (!preg_match('~\A[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*\z~', (string) $method)) { throw new InvalidMethodNameException((string) $method); } } @@ -1059,6 +706,20 @@ final class Generator } } + /** + * @throws InvalidClassNameException + */ + private function ensureValidNameForTestDoubleClass(string $className): void + { + if ($className === '') { + return; + } + + if (!preg_match('~\A[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*\z~', $className)) { + throw new InvalidClassNameException($className); + } + } + /** * @throws NameAlreadyInUseException * @throws ReflectionException @@ -1077,44 +738,15 @@ final class Generator } /** - * @param class-string $type - * @param array $arguments + * @template T of object * - * @throws ReflectionException - */ - private function instantiateProxyTarget(?object $proxyTarget, object $object, string $type, array $arguments): void - { - if (!is_object($proxyTarget)) { - assert(class_exists($type)); - - if (count($arguments) === 0) { - $proxyTarget = new $type; - } else { - $class = new ReflectionClass($type); - - try { - $proxyTarget = $class->newInstanceArgs($arguments); - // @codeCoverageIgnoreStart - } catch (\ReflectionException $e) { - throw new ReflectionException( - $e->getMessage(), - $e->getCode(), - $e, - ); - } - // @codeCoverageIgnoreEnd - } - } - - $object->__phpunit_state()->setProxyTarget($proxyTarget); - } - - /** - * @param class-string $className + * @param class-string $className * * @throws ReflectionException * - * @phpstan-ignore missingType.generics, throws.unusedType + * @return ReflectionClass + * + * @phpstan-ignore throws.unusedType */ private function reflectClass(string $className): ReflectionClass { @@ -1161,15 +793,15 @@ final class Generator * * @throws ReflectionException * - * @return list + * @return list */ - private function interfaceMethods(string $interfaceName, bool $cloneArguments): array + private function interfaceMethods(string $interfaceName): array { $class = $this->reflectClass($interfaceName); $methods = []; foreach ($class->getMethods() as $method) { - $methods[] = MockMethod::fromReflection($method, false, $cloneArguments); + $methods[] = DoubledMethod::fromReflection($method); } return $methods; @@ -1180,7 +812,7 @@ final class Generator * * @return list */ - private function configurableMethods(MockMethodSet $methods, array $propertiesWithHooks): array + private function configurableMethods(DoubledMethodSet $methods, array $propertiesWithHooks): array { $configurable = []; @@ -1194,7 +826,7 @@ final class Generator } foreach ($propertiesWithHooks as $property) { - if ($property->hasGetHook()) { + if ($property->shouldGenerateGetHook()) { $configurable[] = new ConfigurableMethod( sprintf( '$%s::get', @@ -1206,7 +838,7 @@ final class Generator ); } - if ($property->hasSetHook()) { + if ($property->shouldGenerateSetHook()) { $configurable[] = new ConfigurableMethod( sprintf( '$%s::set', @@ -1279,6 +911,7 @@ final class Generator $mapper->fromPropertyType($property), $hasGetHook, $hasSetHook, + $property->isVirtual(), $setHookMethodParameterType, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/HookedProperty.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/HookedProperty.php index 62dcda425..cd45a8d0e 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/HookedProperty.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/HookedProperty.php @@ -25,17 +25,19 @@ final readonly class HookedProperty private Type $type; private bool $getHook; private bool $setHook; + private bool $virtual; private ?Type $setterType; /** * @param non-empty-string $name */ - public function __construct(string $name, Type $type, bool $getHook, bool $setHook, ?Type $setterType) + public function __construct(string $name, Type $type, bool $getHook, bool $setHook, bool $virtual, ?Type $setterType) { $this->name = $name; $this->type = $type; $this->getHook = $getHook; $this->setHook = $setHook; + $this->virtual = $virtual; $this->setterType = $setterType; } @@ -59,7 +61,17 @@ final readonly class HookedProperty return $this->setHook; } - public function setterType(): Type + public function shouldGenerateGetHook(): bool + { + return $this->getHook || !$this->virtual && $this->setHook; + } + + public function shouldGenerateSetHook(): bool + { + return $this->setHook || !$this->virtual && $this->getHook; + } + + public function setterType(): ?Type { return $this->setterType; } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/HookedPropertyGenerator.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/HookedPropertyGenerator.php index a14238128..1e5602000 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/HookedPropertyGenerator.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/HookedPropertyGenerator.php @@ -21,8 +21,6 @@ final class HookedPropertyGenerator /** * @param class-string $className * @param list $properties - * - * @return non-empty-string */ public function generate(string $className, array $properties): string { @@ -38,14 +36,14 @@ EOT, $property->name(), ); - if ($property->hasGetHook()) { + if ($property->shouldGenerateGetHook()) { $code .= sprintf( <<<'EOT' get { return $this->__phpunit_getInvocationHandler()->invoke( new \PHPUnit\Framework\MockObject\Invocation( - '%s', '$%s::get', [], '%s', $this, false + '%s', '$%s::get', [], '%s', $this ) ); } @@ -57,20 +55,20 @@ EOT, ); } - if ($property->hasSetHook()) { + if ($property->shouldGenerateSetHook()) { $code .= sprintf( <<<'EOT' set (%s $value) { $this->__phpunit_getInvocationHandler()->invoke( new \PHPUnit\Framework\MockObject\Invocation( - '%s', '$%s::set', [$value], 'void', $this, false + '%s', '$%s::set', [$value], 'void', $this ) ); } EOT, - $property->setterType()->asString(), + ($property->setterType() ?? $property->type())->asString(), $className, $property->name(), ); diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/MockTrait.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/MockTrait.php deleted file mode 100644 index c3d744b5a..000000000 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/MockTrait.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Framework\MockObject\Generator; - -use function class_exists; - -/** - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - * - * @internal This class is not covered by the backward compatibility promise for PHPUnit - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5243 - */ -final readonly class MockTrait implements MockType -{ - private string $classCode; - - /** - * @var class-string - */ - private string $mockName; - - /** - * @param class-string $mockName - */ - public function __construct(string $classCode, string $mockName) - { - $this->classCode = $classCode; - $this->mockName = $mockName; - } - - /** - * @return class-string - */ - public function generate(): string - { - if (!class_exists($this->mockName, false)) { - eval($this->classCode); - } - - return $this->mockName; - } -} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/doubled_method.tpl b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/doubled_method.tpl index 1b1b663fe..bb6fb761d 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/doubled_method.tpl +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/doubled_method.tpl @@ -29,7 +29,7 @@ $__phpunit_result = $this->__phpunit_getInvocationHandler()->invoke( new \PHPUnit\Framework\MockObject\Invocation( - '{class_name}', '{method_name}', $__phpunit_arguments, '{return_type}', $this, {clone_arguments} + '{class_name}', '{method_name}', $__phpunit_arguments, '{return_type}', $this ) );{return_result} } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/proxied_method.tpl b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/proxied_method.tpl deleted file mode 100644 index c971b9ba1..000000000 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/proxied_method.tpl +++ /dev/null @@ -1,37 +0,0 @@ - - {modifier} function {reference}{method_name}({arguments_decl}){return_declaration} - { - $__phpunit_definedVariables = get_defined_vars(); - $__phpunit_namedVariadicParameters = []; - - foreach ($__phpunit_definedVariables as $__phpunit_definedVariableName => $__phpunit_definedVariableValue) { - if ((new ReflectionParameter([__CLASS__, __FUNCTION__], $__phpunit_definedVariableName))->isVariadic()) { - foreach ($__phpunit_definedVariableValue as $__phpunit_key => $__phpunit_namedValue) { - if (is_string($__phpunit_key)) { - $__phpunit_namedVariadicParameters[$__phpunit_key] = $__phpunit_namedValue; - } - } - } - } - - $__phpunit_arguments = [{arguments_call}]; - $__phpunit_count = func_num_args(); - - if ($__phpunit_count > {arguments_count}) { - $__phpunit_arguments_tmp = func_get_args(); - - for ($__phpunit_i = {arguments_count}; $__phpunit_i < $__phpunit_count; $__phpunit_i++) { - $__phpunit_arguments[] = $__phpunit_arguments_tmp[$__phpunit_i]; - } - } - - $__phpunit_arguments = array_merge($__phpunit_arguments, $__phpunit_namedVariadicParameters); - - $this->__phpunit_getInvocationHandler()->invoke( - new \PHPUnit\Framework\MockObject\Invocation( - '{class_name}', '{method_name}', $__phpunit_arguments, '{return_type}', $this, {clone_arguments}, true - ) - ); - - $__phpunit_result = call_user_func_array([$this->__phpunit_state()->proxyTarget(), "{method_name}"], $__phpunit_arguments);{return_result} - } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/test_double_class.tpl b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/test_double_class.tpl index 3a42895a1..5d015e3f9 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/test_double_class.tpl +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/test_double_class.tpl @@ -1,5 +1,5 @@ declare(strict_types=1); -{prologue}{class_declaration} +{class_declaration} { -{use_statements}{property_hooks}{methods}}{epilogue} +{use_statements}{property_hooks}{methods}} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/trait_class.tpl b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/trait_class.tpl deleted file mode 100644 index a8fe470fd..000000000 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/trait_class.tpl +++ /dev/null @@ -1,6 +0,0 @@ -declare(strict_types=1); - -{prologue}class {class_name} -{ - use {trait_name}; -} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/wsdl_class.tpl b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/wsdl_class.tpl deleted file mode 100644 index b3100b414..000000000 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/wsdl_class.tpl +++ /dev/null @@ -1,9 +0,0 @@ -declare(strict_types=1); - -{namespace}class {class_name} extends \SoapClient -{ - public function __construct($wsdl, array $options) - { - parent::__construct('{wsdl}', $options); - } -{methods}} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/wsdl_method.tpl b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/wsdl_method.tpl deleted file mode 100644 index bb16e763e..000000000 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/templates/wsdl_method.tpl +++ /dev/null @@ -1,4 +0,0 @@ - - public function {method_name}({arguments}) - { - } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php b/vendor/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php index e51ae8c62..5f9e59ce3 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php @@ -9,87 +9,55 @@ */ namespace PHPUnit\Framework\MockObject; -use const DEBUG_BACKTRACE_IGNORE_ARGS; -use function array_merge; use function assert; -use function debug_backtrace; -use function trait_exists; -use PHPUnit\Event\Facade as EventFacade; -use PHPUnit\Framework\Exception; use PHPUnit\Framework\InvalidArgumentException; -use PHPUnit\Framework\MockObject\Generator\CannotUseAddMethodsException; +use PHPUnit\Framework\MockObject\Generator\ClassIsAnonymousException; use PHPUnit\Framework\MockObject\Generator\ClassIsEnumerationException; use PHPUnit\Framework\MockObject\Generator\ClassIsFinalException; use PHPUnit\Framework\MockObject\Generator\DuplicateMethodException; -use PHPUnit\Framework\MockObject\Generator\Generator; +use PHPUnit\Framework\MockObject\Generator\InvalidClassNameException; use PHPUnit\Framework\MockObject\Generator\InvalidMethodNameException; use PHPUnit\Framework\MockObject\Generator\NameAlreadyInUseException; -use PHPUnit\Framework\MockObject\Generator\OriginalConstructorInvocationRequiredException; use PHPUnit\Framework\MockObject\Generator\ReflectionException; use PHPUnit\Framework\MockObject\Generator\RuntimeException; use PHPUnit\Framework\MockObject\Generator\UnknownTypeException; use PHPUnit\Framework\TestCase; -use ReflectionClass; /** * @template MockedType * * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ -final class MockBuilder +final class MockBuilder extends TestDoubleBuilder { private readonly TestCase $testCase; - /** - * @var class-string|trait-string - */ - private readonly string $type; - - /** - * @var list - */ - private array $methods = []; - private bool $emptyMethodsArray = false; - /** * @var ?class-string */ private ?string $mockClassName = null; - /** - * @var array - */ - private array $constructorArgs = []; - private bool $originalConstructor = true; - private bool $originalClone = true; - private bool $autoload = true; - private bool $cloneArguments = false; - private bool $callOriginalMethods = false; - private ?object $proxyTarget = null; - private bool $allowMockingUnknownTypes = true; - private bool $returnValueGeneration = true; - private readonly Generator $generator; - /** * @param class-string|trait-string $type */ public function __construct(TestCase $testCase, string $type) { - $this->testCase = $testCase; - $this->type = $type; - $this->generator = new Generator; + parent::__construct($type); + + $this->testCase = $testCase; } /** * Creates a mock object using a fluent interface. * + * @throws ClassIsAnonymousException * @throws ClassIsEnumerationException * @throws ClassIsFinalException * @throws DuplicateMethodException * @throws InvalidArgumentException + * @throws InvalidClassNameException * @throws InvalidMethodNameException * @throws NameAlreadyInUseException - * @throws OriginalConstructorInvocationRequiredException * @throws ReflectionException * @throws RuntimeException * @throws UnknownTypeException @@ -98,213 +66,16 @@ final class MockBuilder */ public function getMock(): MockObject { - $object = $this->generator->testDouble( - $this->type, - true, - true, - !$this->emptyMethodsArray ? $this->methods : null, - $this->constructorArgs, - $this->mockClassName ?? '', - $this->originalConstructor, - $this->originalClone, - $this->autoload, - $this->cloneArguments, - $this->callOriginalMethods, - $this->proxyTarget, - $this->allowMockingUnknownTypes, - $this->returnValueGeneration, - ); + $object = $this->getTestDouble($this->mockClassName, true); assert($object instanceof $this->type); assert($object instanceof MockObject); - $this->testCase->registerMockObject($object); + $this->testCase->registerMockObject($this->type, $object); return $object; } - /** - * Creates a mock object for an abstract class using a fluent interface. - * - * @throws Exception - * @throws ReflectionException - * @throws RuntimeException - * - * @return MockedType&MockObject - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5305 - */ - public function getMockForAbstractClass(): MockObject - { - EventFacade::emitter()->testTriggeredPhpunitDeprecation( - $this->testCase->valueObjectForEvents(), - 'MockBuilder::getMockForAbstractClass() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - $object = $this->generator->mockObjectForAbstractClass( - $this->type, - $this->constructorArgs, - $this->mockClassName ?? '', - $this->originalConstructor, - $this->originalClone, - $this->autoload, - $this->methods, - $this->cloneArguments, - ); - - assert($object instanceof MockObject); - - $this->testCase->registerMockObject($object); - - return $object; - } - - /** - * Creates a mock object for a trait using a fluent interface. - * - * @throws Exception - * @throws ReflectionException - * @throws RuntimeException - * - * @return MockedType&MockObject - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5306 - */ - public function getMockForTrait(): MockObject - { - EventFacade::emitter()->testTriggeredPhpunitDeprecation( - $this->testCase->valueObjectForEvents(), - 'MockBuilder::getMockForTrait() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - assert(trait_exists($this->type)); - - $object = $this->generator->mockObjectForTrait( - $this->type, - $this->constructorArgs, - $this->mockClassName ?? '', - $this->originalConstructor, - $this->originalClone, - $this->autoload, - $this->methods, - $this->cloneArguments, - ); - - assert($object instanceof MockObject); - - $this->testCase->registerMockObject($object); - - return $object; - } - - /** - * Specifies the subset of methods to mock, requiring each to exist in the class. - * - * @param list $methods - * - * @throws CannotUseOnlyMethodsException - * @throws ReflectionException - * - * @return $this - */ - public function onlyMethods(array $methods): self - { - if (empty($methods)) { - $this->emptyMethodsArray = true; - - return $this; - } - - try { - $reflector = new ReflectionClass($this->type); - - // @codeCoverageIgnoreStart - /** @phpstan-ignore catch.neverThrown */ - } catch (\ReflectionException $e) { - throw new ReflectionException( - $e->getMessage(), - $e->getCode(), - $e, - ); - // @codeCoverageIgnoreEnd - } - - foreach ($methods as $method) { - if (!$reflector->hasMethod($method)) { - throw new CannotUseOnlyMethodsException($this->type, $method); - } - } - - $this->methods = array_merge($this->methods, $methods); - - return $this; - } - - /** - * Specifies methods that don't exist in the class which you want to mock. - * - * @param list $methods - * - * @throws CannotUseAddMethodsException - * @throws ReflectionException - * @throws RuntimeException - * - * @return $this - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5320 - */ - public function addMethods(array $methods): self - { - EventFacade::emitter()->testTriggeredPhpunitDeprecation( - $this->testCase->valueObjectForEvents(), - 'MockBuilder::addMethods() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - if (empty($methods)) { - $this->emptyMethodsArray = true; - - return $this; - } - - try { - $reflector = new ReflectionClass($this->type); - - // @codeCoverageIgnoreStart - /** @phpstan-ignore catch.neverThrown */ - } catch (\ReflectionException $e) { - throw new ReflectionException( - $e->getMessage(), - $e->getCode(), - $e, - ); - // @codeCoverageIgnoreEnd - } - - foreach ($methods as $method) { - if ($reflector->hasMethod($method)) { - throw new CannotUseAddMethodsException($this->type, $method); - } - } - - $this->methods = array_merge($this->methods, $methods); - - return $this; - } - - /** - * Specifies the arguments for the constructor. - * - * @param array $arguments - * - * @return $this - */ - public function setConstructorArgs(array $arguments): self - { - $this->constructorArgs = $arguments; - - return $this; - } - /** * Specifies the name for the mock class. * @@ -318,259 +89,4 @@ final class MockBuilder return $this; } - - /** - * Disables the invocation of the original constructor. - * - * @return $this - */ - public function disableOriginalConstructor(): self - { - $this->originalConstructor = false; - - return $this; - } - - /** - * Enables the invocation of the original constructor. - * - * @return $this - */ - public function enableOriginalConstructor(): self - { - $this->originalConstructor = true; - - return $this; - } - - /** - * Disables the invocation of the original clone constructor. - * - * @return $this - */ - public function disableOriginalClone(): self - { - $this->originalClone = false; - - return $this; - } - - /** - * Enables the invocation of the original clone constructor. - * - * @return $this - */ - public function enableOriginalClone(): self - { - $this->originalClone = true; - - return $this; - } - - /** - * Disables the use of class autoloading while creating the mock object. - * - * @return $this - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5309 - * - * @codeCoverageIgnore - */ - public function disableAutoload(): self - { - EventFacade::emitter()->testTriggeredPhpunitDeprecation( - $this->testCase->valueObjectForEvents(), - 'MockBuilder::disableAutoload() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - $this->autoload = false; - - return $this; - } - - /** - * Enables the use of class autoloading while creating the mock object. - * - * @return $this - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5309 - */ - public function enableAutoload(): self - { - EventFacade::emitter()->testTriggeredPhpunitDeprecation( - $this->testCase->valueObjectForEvents(), - 'MockBuilder::enableAutoload() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - $this->autoload = true; - - return $this; - } - - /** - * Disables the cloning of arguments passed to mocked methods. - * - * @return $this - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5315 - */ - public function disableArgumentCloning(): self - { - if (!$this->calledFromTestCase()) { - EventFacade::emitter()->testTriggeredPhpunitDeprecation( - $this->testCase->valueObjectForEvents(), - 'MockBuilder::disableArgumentCloning() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - } - - $this->cloneArguments = false; - - return $this; - } - - /** - * Enables the cloning of arguments passed to mocked methods. - * - * @return $this - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5315 - */ - public function enableArgumentCloning(): self - { - EventFacade::emitter()->testTriggeredPhpunitDeprecation( - $this->testCase->valueObjectForEvents(), - 'MockBuilder::enableArgumentCloning() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - $this->cloneArguments = true; - - return $this; - } - - /** - * Enables the invocation of the original methods. - * - * @return $this - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5307 - * - * @codeCoverageIgnore - */ - public function enableProxyingToOriginalMethods(): self - { - if (!$this->calledFromTestCase()) { - EventFacade::emitter()->testTriggeredPhpunitDeprecation( - $this->testCase->valueObjectForEvents(), - 'MockBuilder::enableProxyingToOriginalMethods() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - } - - $this->callOriginalMethods = true; - - return $this; - } - - /** - * Disables the invocation of the original methods. - * - * @return $this - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5307 - */ - public function disableProxyingToOriginalMethods(): self - { - EventFacade::emitter()->testTriggeredPhpunitDeprecation( - $this->testCase->valueObjectForEvents(), - 'MockBuilder::disableProxyingToOriginalMethods() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - $this->callOriginalMethods = false; - $this->proxyTarget = null; - - return $this; - } - - /** - * Sets the proxy target. - * - * @return $this - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5307 - * - * @codeCoverageIgnore - */ - public function setProxyTarget(object $object): self - { - EventFacade::emitter()->testTriggeredPhpunitDeprecation( - $this->testCase->valueObjectForEvents(), - 'MockBuilder::setProxyTarget() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - $this->proxyTarget = $object; - - return $this; - } - - /** - * @return $this - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5308 - */ - public function allowMockingUnknownTypes(): self - { - EventFacade::emitter()->testTriggeredPhpunitDeprecation( - $this->testCase->valueObjectForEvents(), - 'MockBuilder::allowMockingUnknownTypes() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - $this->allowMockingUnknownTypes = true; - - return $this; - } - - /** - * @return $this - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5308 - */ - public function disallowMockingUnknownTypes(): self - { - if (!$this->calledFromTestCase()) { - EventFacade::emitter()->testTriggeredPhpunitDeprecation( - $this->testCase->valueObjectForEvents(), - 'MockBuilder::disallowMockingUnknownTypes() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - } - - $this->allowMockingUnknownTypes = false; - - return $this; - } - - /** - * @return $this - */ - public function enableAutoReturnValueGeneration(): self - { - $this->returnValueGeneration = true; - - return $this; - } - - /** - * @return $this - */ - public function disableAutoReturnValueGeneration(): self - { - $this->returnValueGeneration = false; - - return $this; - } - - private function calledFromTestCase(): bool - { - $caller = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, limit: 3)[2]; - - return isset($caller['class']) && $caller['class'] === TestCase::class; - } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/ErrorCloneMethod.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/ErrorCloneMethod.php deleted file mode 100644 index 0aaf13256..000000000 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/ErrorCloneMethod.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Framework\MockObject; - -/** - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - * - * @internal This trait is not covered by the backward compatibility promise for PHPUnit - * - * @codeCoverageIgnore - */ -trait ErrorCloneMethod -{ - public function __clone(): void - { - throw new CannotCloneTestDoubleForReadonlyClassException; - } -} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/GeneratedAsTestStub.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/GeneratedAsTestStub.php deleted file mode 100644 index 09b9227b7..000000000 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/GeneratedAsTestStub.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Framework\MockObject; - -/** - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - * - * @internal This trait is not covered by the backward compatibility promise for PHPUnit - */ -trait GeneratedAsTestStub -{ - public function __phpunit_wasGeneratedAsMockObject(): false - { - return false; - } -} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/Method.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/Method.php index bed26d96c..c9b4e42e5 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/Method.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/Method.php @@ -9,10 +9,9 @@ */ namespace PHPUnit\Framework\MockObject; -use function call_user_func_array; -use function func_get_args; -use PHPUnit\Framework\MockObject\Builder\InvocationMocker; +use PHPUnit\Framework\Constraint\Constraint; use PHPUnit\Framework\MockObject\Rule\AnyInvokedCount; +use PHPUnit\Framework\MockObject\Runtime\PropertyHook; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit @@ -23,13 +22,11 @@ trait Method { abstract public function __phpunit_getInvocationHandler(): InvocationHandler; - public function method(): InvocationMocker + public function method(Constraint|PropertyHook|string $constraint): InvocationStubber { - $expects = $this->__phpunit_getInvocationHandler()->expects(new AnyInvokedCount); - - return call_user_func_array( - [$expects, 'method'], - func_get_args(), - ); + return $this + ->__phpunit_getInvocationHandler() + ->expects(new AnyInvokedCount) + ->method($constraint); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/MockObjectApi.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/MockObjectApi.php index 449b74693..14388bc1c 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/MockObjectApi.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/MockObjectApi.php @@ -9,11 +9,6 @@ */ namespace PHPUnit\Framework\MockObject; -use function assert; -use PHPUnit\Event\Code\NoTestCaseObjectOnCallStackException; -use PHPUnit\Event\Code\TestMethodBuilder; -use PHPUnit\Event\Facade as EventFacade; -use PHPUnit\Framework\MockObject\Builder\InvocationMocker as InvocationMockerBuilder; use PHPUnit\Framework\MockObject\Rule\InvocationOrder; /** @@ -23,9 +18,14 @@ use PHPUnit\Framework\MockObject\Rule\InvocationOrder; */ trait MockObjectApi { - public function __phpunit_hasMatchers(): bool + public function __phpunit_hasInvocationCountRule(): bool { - return $this->__phpunit_getInvocationHandler()->hasMatchers(); + return $this->__phpunit_getInvocationHandler()->hasInvocationCountRule(); + } + + public function __phpunit_hasParametersRule(): bool + { + return $this->__phpunit_getInvocationHandler()->hasParametersRule(); } public function __phpunit_verify(bool $unsetInvocationMocker = true): void @@ -43,31 +43,8 @@ trait MockObjectApi abstract public function __phpunit_unsetInvocationMocker(): void; - public function expects(InvocationOrder $matcher): InvocationMockerBuilder + public function expects(InvocationOrder $matcher): InvocationStubber { - assert($this instanceof StubInternal); - - if (!$this->__phpunit_wasGeneratedAsMockObject()) { - $message = 'Expectations configured on test doubles that are created as test stubs are no longer verified since PHPUnit 10. Test doubles that are created as test stubs will no longer have the expects() method in PHPUnit 12. Update your test code to use createMock() instead of createStub(), for example.'; - - try { - $test = TestMethodBuilder::fromCallStack(); - - if (!$this->__phpunit_state()->wasDeprecationAlreadyEmittedFor($test->id())) { - EventFacade::emitter()->testTriggeredPhpunitDeprecation( - $test, - $message, - ); - - $this->__phpunit_state()->deprecationWasEmittedFor($test->id()); - } - // @codeCoverageIgnoreStart - } catch (NoTestCaseObjectOnCallStackException) { - EventFacade::emitter()->testRunnerTriggeredPhpunitDeprecation($message); - // @codeCoverageIgnoreEnd - } - } - return $this->__phpunit_getInvocationHandler()->expects($matcher); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/MutableStubApi.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/MutableStubApi.php deleted file mode 100644 index 3d3cc8ee0..000000000 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/MutableStubApi.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Framework\MockObject; - -/** - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - * - * @internal This trait is not covered by the backward compatibility promise for PHPUnit - * - * @codeCoverageIgnore - */ -trait MutableStubApi -{ - private TestDoubleState $__phpunit_state; - - public function __phpunit_state(): TestDoubleState - { - return $this->__phpunit_state; - } - - /** @noinspection MagicMethodsValidityInspection */ - public function __phpunit_getInvocationHandler(): InvocationHandler - { - return $this->__phpunit_state()->invocationHandler(); - } - - /** @noinspection MagicMethodsValidityInspection */ - public function __phpunit_unsetInvocationMocker(): void - { - $this->__phpunit_state()->unsetInvocationHandler(); - } -} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/TestDoubleState.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/TestDoubleState.php index b4547b2ec..b49f15373 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/TestDoubleState.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/TestDoubleState.php @@ -9,8 +9,6 @@ */ namespace PHPUnit\Framework\MockObject; -use function assert; - /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit * @@ -18,26 +16,22 @@ use function assert; */ final class TestDoubleState { - /** - * @var array - */ - private static array $deprecationEmittedForTest = []; - /** * @var list */ private readonly array $configurableMethods; private readonly bool $generateReturnValues; private ?InvocationHandler $invocationHandler = null; - private ?object $proxyTarget = null; + private readonly bool $isMockObject; /** * @param list $configurableMethods */ - public function __construct(array $configurableMethods, bool $generateReturnValues) + public function __construct(array $configurableMethods, bool $generateReturnValues, bool $isMockObject = false) { $this->configurableMethods = $configurableMethods; $this->generateReturnValues = $generateReturnValues; + $this->isMockObject = $isMockObject; } public function invocationHandler(): InvocationHandler @@ -49,6 +43,7 @@ final class TestDoubleState $this->invocationHandler = new InvocationHandler( $this->configurableMethods, $this->generateReturnValues, + $this->isMockObject, ); return $this->invocationHandler; @@ -68,34 +63,6 @@ final class TestDoubleState $this->invocationHandler = null; } - public function setProxyTarget(object $proxyTarget): void - { - $this->proxyTarget = $proxyTarget; - } - - public function proxyTarget(): object - { - assert($this->proxyTarget !== null); - - return $this->proxyTarget; - } - - /** - * @param non-empty-string $testId - */ - public function deprecationWasEmittedFor(string $testId): void - { - self::$deprecationEmittedForTest[$testId] = true; - } - - /** - * @param non-empty-string $testId - */ - public function wasDeprecationAlreadyEmittedFor(string $testId): bool - { - return isset(self::$deprecationEmittedForTest[$testId]); - } - /** * @return list */ diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/Identity.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/Identity.php deleted file mode 100644 index fafbdd784..000000000 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/Identity.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Framework\MockObject\Builder; - -/** - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - * - * @internal This interface is not covered by the backward compatibility promise for PHPUnit - */ -interface Identity -{ - /** - * Sets the identification of the expectation to $id. - * - * @note The identifier is unique per mock object. - */ - public function id(string $id): self; -} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/InvocationStubber.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/InvocationStubber.php deleted file mode 100644 index 774fef25d..000000000 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/InvocationStubber.php +++ /dev/null @@ -1,63 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Framework\MockObject\Builder; - -use PHPUnit\Framework\MockObject\Stub\Stub; -use Throwable; - -/** - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - */ -interface InvocationStubber -{ - public function will(Stub $stub): Identity; - - /** - * @return $this - */ - public function willReturn(mixed $value, mixed ...$nextValues): self; - - /** - * @return $this - */ - public function willReturnReference(mixed &$reference): self; - - /** - * @param array> $valueMap - * - * @return $this - */ - public function willReturnMap(array $valueMap): self; - - /** - * @return $this - */ - public function willReturnArgument(int $argumentIndex): self; - - /** - * @return $this - */ - public function willReturnCallback(callable $callback): self; - - /** - * @return $this - */ - public function willReturnSelf(): self; - - /** - * @return $this - */ - public function willReturnOnConsecutiveCalls(mixed ...$values): self; - - /** - * @return $this - */ - public function willThrowException(Throwable $exception): self; -} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/MethodNameMatch.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/MethodNameMatch.php deleted file mode 100644 index 75c1f63b3..000000000 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/MethodNameMatch.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Framework\MockObject\Builder; - -use PHPUnit\Framework\Constraint\Constraint; - -/** - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - * - * @internal This interface is not covered by the backward compatibility promise for PHPUnit - */ -interface MethodNameMatch extends ParametersMatch -{ - /** - * Adds a new method name match and returns the parameter match object for - * further matching possibilities. - */ - public function method(Constraint|string $constraint): self; -} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/ParametersMatch.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/ParametersMatch.php deleted file mode 100644 index 8d6cbd2a0..000000000 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/ParametersMatch.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Framework\MockObject\Builder; - -/** - * @internal This interface is not covered by the backward compatibility promise for PHPUnit - */ -interface ParametersMatch extends Stub -{ - /** - * Defines the expectation which must occur before the current is valid. - */ - public function after(string $id): Stub; - - /** - * Sets the parameters to match for, each parameter to this function will - * be part of match. To perform specific matches or constraints create a - * new PHPUnit\Framework\Constraint\Constraint and use it for the parameter. - * If the parameter value is not a constraint it will use the - * PHPUnit\Framework\Constraint\IsEqual for the value. - * - * Some examples: - * - * // match first parameter with value 2 - * $b->with(2); - * // match first parameter with value 'smock' and second identical to 42 - * $b->with('smock', new PHPUnit\Framework\Constraint\IsEqual(42)); - * - */ - public function with(mixed ...$arguments): self; - - /** - * Sets a rule which allows any kind of parameters. - * - * Some examples: - * - * // match any number of parameters - * $b->withAnyParameters(); - * - * - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - */ - public function withAnyParameters(): self; -} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/Stub.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/Stub.php deleted file mode 100644 index c4aaf1f98..000000000 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/Stub.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Framework\MockObject\Builder; - -use PHPUnit\Framework\MockObject\Stub\Stub as BaseStub; - -/** - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - * - * @internal This interface is not covered by the backward compatibility promise for PHPUnit - */ -interface Stub extends Identity -{ - /** - * Stubs the matching method with the stub object $stub. Any invocations of - * the matched method will now be handled by the stub instead. - */ - public function will(BaseStub $stub): Identity; -} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/InvocationStubber.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/InvocationStubber.php new file mode 100644 index 000000000..337c82fb3 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/InvocationStubber.php @@ -0,0 +1,122 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +use PHPUnit\Framework\Constraint\Constraint; +use PHPUnit\Framework\MockObject\Runtime\PropertyHook; +use PHPUnit\Framework\MockObject\Stub\Stub; +use Throwable; + +interface InvocationStubber +{ + /** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @param Constraint|non-empty-string|PropertyHook $constraint + * + * @return $this + */ + public function method(Constraint|PropertyHook|string $constraint): self; + + /** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @param non-empty-string $id + * + * @return $this + */ + public function id(string $id): self; + + /** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @param non-empty-string $id + * + * @return $this + */ + public function after(string $id): self; + + /** + * @return $this + */ + public function with(mixed ...$arguments): self; + + /** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @return $this + */ + public function withAnyParameters(): self; + + /** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @return $this + */ + public function will(Stub $stub): self; + + /** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @return $this + */ + public function willReturn(mixed $value, mixed ...$nextValues): self; + + /** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @return $this + */ + public function willReturnReference(mixed &$reference): self; + + /** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @param array> $valueMap + * + * @return $this + */ + public function willReturnMap(array $valueMap): self; + + /** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @return $this + */ + public function willReturnArgument(int $argumentIndex): self; + + /** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @return $this + */ + public function willReturnCallback(callable $callback): self; + + /** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @return $this + */ + public function willReturnSelf(): self; + + /** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @return $this + */ + public function willReturnOnConsecutiveCalls(mixed ...$values): self; + + /** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @return $this + */ + public function willThrowException(Throwable $exception): self; +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/MockObject.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/MockObject.php index 4096d73f9..0ddc46dc4 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/MockObject.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/MockObject.php @@ -9,15 +9,12 @@ */ namespace PHPUnit\Framework\MockObject; -use PHPUnit\Framework\MockObject\Builder\InvocationMocker; use PHPUnit\Framework\MockObject\Rule\InvocationOrder; /** - * @method InvocationMocker method($constraint) - * * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ interface MockObject extends Stub { - public function expects(InvocationOrder $invocationRule): InvocationMocker; + public function expects(InvocationOrder $invocationRule): InvocationStubber; } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/MockObjectInternal.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/MockObjectInternal.php index 167d2466d..50c0cd38e 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/MockObjectInternal.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/MockObjectInternal.php @@ -16,7 +16,9 @@ namespace PHPUnit\Framework\MockObject; */ interface MockObjectInternal extends MockObject, StubInternal { - public function __phpunit_hasMatchers(): bool; + public function __phpunit_hasInvocationCountRule(): bool; + + public function __phpunit_hasParametersRule(): bool; public function __phpunit_verify(bool $unsetInvocationMocker = true): void; } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/Stub.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/Stub.php index 96f84d231..6321c98bb 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/Stub.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/Stub.php @@ -9,13 +9,13 @@ */ namespace PHPUnit\Framework\MockObject; -use PHPUnit\Framework\MockObject\Builder\InvocationStubber; +use PHPUnit\Framework\Constraint\Constraint; +use PHPUnit\Framework\MockObject\Runtime\PropertyHook; /** - * @method InvocationStubber method($constraint) - * * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ interface Stub { + public function method(Constraint|PropertyHook|string $constraint): InvocationStubber; } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/StubInternal.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/StubInternal.php index ff29a5de3..6e428ea5e 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/StubInternal.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/StubInternal.php @@ -21,6 +21,4 @@ interface StubInternal extends Stub public function __phpunit_getInvocationHandler(): InvocationHandler; public function __phpunit_unsetInvocationMocker(): void; - - public function __phpunit_wasGeneratedAsMockObject(): bool; } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Invocation.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Invocation.php index faf34b4b3..d9e3c3f66 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Invocation.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Invocation.php @@ -11,13 +11,11 @@ namespace PHPUnit\Framework\MockObject; use function array_map; use function implode; -use function is_object; use function sprintf; use function str_starts_with; use function strtolower; use function substr; use PHPUnit\Framework\SelfDescribing; -use PHPUnit\Util\Cloner; use PHPUnit\Util\Exporter; /** @@ -43,7 +41,6 @@ final readonly class Invocation implements SelfDescribing private array $parameters; private string $returnType; private bool $isReturnTypeNullable; - private bool $proxiedCall; private MockObjectInternal|StubInternal $object; /** @@ -51,12 +48,12 @@ final readonly class Invocation implements SelfDescribing * @param non-empty-string $methodName * @param array $parameters */ - public function __construct(string $className, string $methodName, array $parameters, string $returnType, MockObjectInternal|StubInternal $object, bool $cloneObjects = false, bool $proxiedCall = false) + public function __construct(string $className, string $methodName, array $parameters, string $returnType, MockObjectInternal|StubInternal $object) { - $this->className = $className; - $this->methodName = $methodName; - $this->object = $object; - $this->proxiedCall = $proxiedCall; + $this->className = $className; + $this->methodName = $methodName; + $this->parameters = $parameters; + $this->object = $object; if (strtolower($methodName) === '__tostring') { $returnType = 'string'; @@ -70,20 +67,6 @@ final readonly class Invocation implements SelfDescribing } $this->returnType = $returnType; - - if (!$cloneObjects) { - $this->parameters = $parameters; - - return; - } - - foreach ($parameters as $key => $value) { - if (is_object($value)) { - $parameters[$key] = Cloner::clone($value); - } - } - - $this->parameters = $parameters; } /** @@ -122,7 +105,7 @@ final readonly class Invocation implements SelfDescribing ); } - if ($this->isReturnTypeNullable || $this->proxiedCall) { + if ($this->isReturnTypeNullable) { return null; } @@ -147,7 +130,7 @@ final readonly class Invocation implements SelfDescribing $this->parameters, ), ), - $this->returnType ? sprintf(': %s', $this->returnType) : '', + $this->returnType !== '' ? sprintf(': %s', $this->returnType) : '', ); } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/InvocationHandler.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/InvocationHandler.php index a8b6f744d..c7af57380 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/InvocationHandler.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/InvocationHandler.php @@ -11,7 +11,7 @@ namespace PHPUnit\Framework\MockObject; use function strtolower; use Exception; -use PHPUnit\Framework\MockObject\Builder\InvocationMocker; +use PHPUnit\Framework\AssertionFailedError; use PHPUnit\Framework\MockObject\Rule\InvocationOrder; use Throwable; @@ -28,7 +28,7 @@ final class InvocationHandler private array $matchers = []; /** - * @var array + * @var array */ private array $matcherMap = []; @@ -37,20 +37,39 @@ final class InvocationHandler */ private readonly array $configurableMethods; private readonly bool $returnValueGeneration; + private readonly bool $isMockObject; + private ?AssertionFailedError $assertionFailure = null; /** * @param list $configurableMethods */ - public function __construct(array $configurableMethods, bool $returnValueGeneration) + public function __construct(array $configurableMethods, bool $returnValueGeneration, bool $isMockObject = false) { $this->configurableMethods = $configurableMethods; $this->returnValueGeneration = $returnValueGeneration; + $this->isMockObject = $isMockObject; } - public function hasMatchers(): bool + public function isMockObject(): bool + { + return $this->isMockObject; + } + + public function hasInvocationCountRule(): bool { foreach ($this->matchers as $matcher) { - if ($matcher->hasMatchers()) { + if ($matcher->hasInvocationCountRule()) { + return true; + } + } + + return false; + } + + public function hasParametersRule(): bool + { + foreach ($this->matchers as $matcher) { + if ($matcher->hasParametersRule()) { return true; } } @@ -60,6 +79,8 @@ final class InvocationHandler /** * Looks up the match builder with identification $id and returns it. + * + * @param non-empty-string $id */ public function lookupMatcher(string $id): ?Matcher { @@ -70,6 +91,8 @@ final class InvocationHandler * Registers a matcher with the identification $id. The matcher can later be * looked up using lookupMatcher() to figure out if it has been invoked. * + * @param non-empty-string $id + * * @throws MatcherAlreadyRegisteredException */ public function registerMatcher(string $id, Matcher $matcher): void @@ -81,12 +104,12 @@ final class InvocationHandler $this->matcherMap[$id] = $matcher; } - public function expects(InvocationOrder $rule): InvocationMocker + public function expects(InvocationOrder $rule): InvocationStubber { $matcher = new Matcher($rule); $this->addMatcher($matcher); - return new InvocationMocker( + return new InvocationStubberImplementation( $this, $matcher, ...$this->configurableMethods, @@ -115,6 +138,10 @@ final class InvocationHandler } } catch (Exception $e) { $exception = $e; + + if ($this->assertionFailure === null && $e instanceof AssertionFailedError) { + $this->assertionFailure = $e; + } } } @@ -145,6 +172,10 @@ final class InvocationHandler foreach ($this->matchers as $matcher) { $matcher->verify(); } + + if ($this->assertionFailure !== null) { + throw $this->assertionFailure; + } } private function addMatcher(Matcher $matcher): void diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/InvocationMocker.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/InvocationStubberImplementation.php similarity index 81% rename from vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/InvocationMocker.php rename to vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/InvocationStubberImplementation.php index 9aa5fc854..7df153c5c 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/InvocationMocker.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/InvocationStubberImplementation.php @@ -7,8 +7,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace PHPUnit\Framework\MockObject\Builder; +namespace PHPUnit\Framework\MockObject; +use const PHP_EOL; use function array_flip; use function array_key_exists; use function array_map; @@ -19,18 +20,9 @@ use function count; use function is_string; use function range; use function strtolower; +use PHPUnit\Event\Facade as EventFacade; use PHPUnit\Framework\Constraint\Constraint; use PHPUnit\Framework\InvalidArgumentException; -use PHPUnit\Framework\MockObject\ConfigurableMethod; -use PHPUnit\Framework\MockObject\IncompatibleReturnValueException; -use PHPUnit\Framework\MockObject\InvocationHandler; -use PHPUnit\Framework\MockObject\Matcher; -use PHPUnit\Framework\MockObject\MatcherAlreadyRegisteredException; -use PHPUnit\Framework\MockObject\MethodCannotBeConfiguredException; -use PHPUnit\Framework\MockObject\MethodNameAlreadyConfiguredException; -use PHPUnit\Framework\MockObject\MethodNameNotConfiguredException; -use PHPUnit\Framework\MockObject\MethodParametersAlreadyConfiguredException; -use PHPUnit\Framework\MockObject\Rule; use PHPUnit\Framework\MockObject\Runtime\PropertyHook; use PHPUnit\Framework\MockObject\Stub\ConsecutiveCalls; use PHPUnit\Framework\MockObject\Stub\Exception; @@ -45,8 +37,10 @@ use Throwable; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit */ -final class InvocationMocker implements InvocationStubber, MethodNameMatch +final class InvocationStubberImplementation implements InvocationStubber { private readonly InvocationHandler $invocationHandler; private readonly Matcher $matcher; @@ -69,11 +63,50 @@ final class InvocationMocker implements InvocationStubber, MethodNameMatch } /** + * @param Constraint|non-empty-string|PropertyHook $constraint + * + * @throws InvalidArgumentException + * @throws MethodCannotBeConfiguredException + * @throws MethodNameAlreadyConfiguredException + * + * @return $this + */ + public function method(Constraint|PropertyHook|string $constraint): InvocationStubber + { + if ($this->matcher->hasMethodNameRule()) { + throw new MethodNameAlreadyConfiguredException; + } + + if ($constraint instanceof PropertyHook) { + $constraint = $constraint->asString(); + } + + if (is_string($constraint)) { + $this->configurableMethodNames ??= array_flip( + array_map( + static fn (ConfigurableMethod $configurable) => strtolower($configurable->name()), + $this->configurableMethods, + ), + ); + + if (!array_key_exists(strtolower($constraint), $this->configurableMethodNames)) { + throw new MethodCannotBeConfiguredException($constraint); + } + } + + $this->matcher->setMethodNameRule(new Rule\MethodName($constraint)); + + return $this; + } + + /** + * @param non-empty-string $id + * * @throws MatcherAlreadyRegisteredException * * @return $this */ - public function id(string $id): self + public function id(string $id): InvocationStubber { $this->invocationHandler->registerMatcher($id, $this->matcher); @@ -81,9 +114,54 @@ final class InvocationMocker implements InvocationStubber, MethodNameMatch } /** + * @param non-empty-string $id + * * @return $this */ - public function will(Stub $stub): Identity + public function after(string $id): InvocationStubber + { + $this->matcher->setAfterMatchBuilderId($id); + + return $this; + } + + /** + * @throws \PHPUnit\Framework\Exception + * @throws MethodNameNotConfiguredException + * @throws MethodParametersAlreadyConfiguredException + * + * @return $this + */ + public function with(mixed ...$arguments): InvocationStubber + { + $this->ensureParametersCanBeConfigured(); + $this->emitDeprecationForWithMethods(); + + $this->matcher->setParametersRule(new Rule\Parameters($arguments)); + + return $this; + } + + /** + * @throws MethodNameNotConfiguredException + * @throws MethodParametersAlreadyConfiguredException + * + * @return $this + */ + public function withAnyParameters(): InvocationStubber + { + $this->ensureParametersCanBeConfigured(); + $this->emitDeprecationForWithMethods(); + + $this->matcher->setParametersRule(new Rule\AnyParameters); + + return $this; + } + + /** + * @return $this + */ + public function will(Stub $stub): InvocationStubber { $this->matcher->setStub($stub); @@ -93,7 +171,7 @@ final class InvocationMocker implements InvocationStubber, MethodNameMatch /** * @throws IncompatibleReturnValueException */ - public function willReturn(mixed $value, mixed ...$nextValues): self + public function willReturn(mixed $value, mixed ...$nextValues): InvocationStubber { if (count($nextValues) === 0) { $this->ensureTypeOfReturnValues([$value]); @@ -112,14 +190,14 @@ final class InvocationMocker implements InvocationStubber, MethodNameMatch return $this->will($stub); } - public function willReturnReference(mixed &$reference): self + public function willReturnReference(mixed &$reference): InvocationStubber { $stub = new ReturnReference($reference); return $this->will($stub); } - public function willReturnMap(array $valueMap): self + public function willReturnMap(array $valueMap): InvocationStubber { $method = $this->configuredMethod(); @@ -127,7 +205,7 @@ final class InvocationMocker implements InvocationStubber, MethodNameMatch $numberOfParameters = $method->numberOfParameters(); $defaultValues = $method->defaultParameterValues(); - $hasDefaultValues = !empty($defaultValues); + $hasDefaultValues = $defaultValues !== []; $_valueMap = []; @@ -164,117 +242,41 @@ final class InvocationMocker implements InvocationStubber, MethodNameMatch return $this->will($stub); } - public function willReturnArgument(int $argumentIndex): self + public function willReturnArgument(int $argumentIndex): InvocationStubber { $stub = new ReturnArgument($argumentIndex); return $this->will($stub); } - public function willReturnCallback(callable $callback): self + public function willReturnCallback(callable $callback): InvocationStubber { $stub = new ReturnCallback($callback); return $this->will($stub); } - public function willReturnSelf(): self + public function willReturnSelf(): InvocationStubber { $stub = new ReturnSelf; return $this->will($stub); } - public function willReturnOnConsecutiveCalls(mixed ...$values): self + public function willReturnOnConsecutiveCalls(mixed ...$values): InvocationStubber { $stub = new ConsecutiveCalls($values); return $this->will($stub); } - public function willThrowException(Throwable $exception): self + public function willThrowException(Throwable $exception): InvocationStubber { $stub = new Exception($exception); return $this->will($stub); } - /** - * @return $this - */ - public function after(string $id): self - { - $this->matcher->setAfterMatchBuilderId($id); - - return $this; - } - - /** - * @throws \PHPUnit\Framework\Exception - * @throws MethodNameNotConfiguredException - * @throws MethodParametersAlreadyConfiguredException - * - * @return $this - */ - public function with(mixed ...$arguments): self - { - $this->ensureParametersCanBeConfigured(); - - $this->matcher->setParametersRule(new Rule\Parameters($arguments)); - - return $this; - } - - /** - * @throws MethodNameNotConfiguredException - * @throws MethodParametersAlreadyConfiguredException - * - * @return $this - */ - public function withAnyParameters(): self - { - $this->ensureParametersCanBeConfigured(); - - $this->matcher->setParametersRule(new Rule\AnyParameters); - - return $this; - } - - /** - * @throws InvalidArgumentException - * @throws MethodCannotBeConfiguredException - * @throws MethodNameAlreadyConfiguredException - * - * @return $this - */ - public function method(Constraint|PropertyHook|string $constraint): self - { - if ($this->matcher->hasMethodNameRule()) { - throw new MethodNameAlreadyConfiguredException; - } - - if ($constraint instanceof PropertyHook) { - $constraint = $constraint->asString(); - } - - if (is_string($constraint)) { - $this->configurableMethodNames ??= array_flip( - array_map( - static fn (ConfigurableMethod $configurable) => strtolower($configurable->name()), - $this->configurableMethods, - ), - ); - - if (!array_key_exists(strtolower($constraint), $this->configurableMethodNames)) { - throw new MethodCannotBeConfiguredException($constraint); - } - } - - $this->matcher->setMethodNameRule(new Rule\MethodName($constraint)); - - return $this; - } - /** * @throws MethodNameNotConfiguredException * @throws MethodParametersAlreadyConfiguredException @@ -329,4 +331,17 @@ final class InvocationMocker implements InvocationStubber, MethodNameMatch } } } + + private function emitDeprecationForWithMethods(): void + { + if ($this->invocationHandler->isMockObject()) { + return; + } + + EventFacade::emitter()->testTriggeredPhpunitDeprecation( + null, + 'Using with*() on a test stub has no effect and is deprecated.' . PHP_EOL . + 'With PHPUnit 13, it will not be possible to use with() on a test stub.', + ); + } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Matcher.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Matcher.php index 128a5856b..69c28ea58 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Matcher.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Matcher.php @@ -29,6 +29,10 @@ use PHPUnit\Util\ThrowableToStringMapper; final class Matcher { private readonly InvocationOrder $invocationRule; + + /** + * @var ?non-empty-string + */ private ?string $afterMatchBuilderId = null; private ?MethodName $methodNameRule = null; private ?ParametersRule $parametersRule = null; @@ -39,7 +43,7 @@ final class Matcher $this->invocationRule = $rule; } - public function hasMatchers(): bool + public function hasInvocationCountRule(): bool { return !$this->invocationRule instanceof AnyInvokedCount; } @@ -74,6 +78,9 @@ final class Matcher $this->stub = $stub; } + /** + * @param non-empty-string $id + */ public function setAfterMatchBuilderId(string $id): void { $this->afterMatchBuilderId = $id; @@ -97,7 +104,7 @@ final class Matcher ->__phpunit_getInvocationHandler() ->lookupMatcher($this->afterMatchBuilderId); - if (!$matcher) { + if ($matcher === null) { throw new MatchBuilderNotFoundException($this->afterMatchBuilderId); } } @@ -118,7 +125,7 @@ final class Matcher ); } - if ($this->stub) { + if ($this->stub !== null) { return $this->stub->invoke($invocation); } @@ -138,7 +145,7 @@ final class Matcher ->__phpunit_getInvocationHandler() ->lookupMatcher($this->afterMatchBuilderId); - if (!$matcher) { + if ($matcher === null) { throw new MatchBuilderNotFoundException($this->afterMatchBuilderId); } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/ReturnValueGenerator.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/ReturnValueGenerator.php index fbddc07d3..e429bc984 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/ReturnValueGenerator.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/ReturnValueGenerator.php @@ -9,7 +9,6 @@ */ namespace PHPUnit\Framework\MockObject; -use function array_keys; use function array_map; use function explode; use function in_array; @@ -47,9 +46,9 @@ final class ReturnValueGenerator $types = explode('|', $returnType); $union = true; - foreach (array_keys($types) as $key) { - if (str_starts_with($types[$key], '(') && str_ends_with($types[$key], ')')) { - $types[$key] = substr($types[$key], 1, -1); + foreach ($types as $key => $type) { + if (str_starts_with($type, '(') && str_ends_with($type, ')')) { + $types[$key] = substr($type, 1, -1); } } } elseif (str_contains($returnType, '&')) { @@ -218,7 +217,7 @@ final class ReturnValueGenerator private function testDoubleFor(string $type, string $className, string $methodName): Stub { try { - return (new Generator)->testDouble($type, false, false, [], [], '', false); + return (new Generator)->testDouble($type, false, [], [], '', false); // @codeCoverageIgnoreStart } catch (Throwable $t) { throw new RuntimeException( diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Stub/ConsecutiveCalls.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Stub/ConsecutiveCalls.php index 33fc81f37..b518f1cf4 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Stub/ConsecutiveCalls.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Stub/ConsecutiveCalls.php @@ -41,7 +41,7 @@ final class ConsecutiveCalls implements Stub */ public function invoke(Invocation $invocation): mixed { - if (empty($this->stack)) { + if ($this->stack === []) { throw new NoMoreReturnValuesConfiguredException( $invocation, $this->numberOfConfiguredReturnValues, diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/TestDoubleBuilder.php b/vendor/phpunit/phpunit/src/Framework/MockObject/TestDoubleBuilder.php new file mode 100644 index 000000000..d4e44145a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/TestDoubleBuilder.php @@ -0,0 +1,187 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +use function array_merge; +use PHPUnit\Framework\MockObject\Generator\Generator; +use PHPUnit\Framework\MockObject\Generator\ReflectionException; +use ReflectionClass; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +abstract class TestDoubleBuilder +{ + /** + * @var class-string|trait-string + */ + protected readonly string $type; + + /** + * @var list + */ + protected array $methods = []; + protected bool $emptyMethodsArray = false; + + /** + * @var array + */ + protected array $constructorArgs = []; + protected bool $originalConstructor = true; + protected bool $originalClone = true; + protected bool $returnValueGeneration = true; + + /** + * @param class-string|trait-string $type + */ + public function __construct(string $type) + { + $this->type = $type; + } + + /** + * Specifies the subset of methods to mock, requiring each to exist in the class. + * + * @param list $methods + * + * @throws CannotUseOnlyMethodsException + * @throws ReflectionException + * + * @return $this + */ + public function onlyMethods(array $methods): static + { + if ($methods === []) { + $this->emptyMethodsArray = true; + + return $this; + } + + try { + $reflector = new ReflectionClass($this->type); + + // @codeCoverageIgnoreStart + /** @phpstan-ignore catch.neverThrown */ + } catch (\ReflectionException $e) { + throw new ReflectionException( + $e->getMessage(), + $e->getCode(), + $e, + ); + // @codeCoverageIgnoreEnd + } + + foreach ($methods as $method) { + if (!$reflector->hasMethod($method)) { + throw new CannotUseOnlyMethodsException($this->type, $method); + } + } + + $this->methods = array_merge($this->methods, $methods); + + return $this; + } + + /** + * Specifies the arguments for the constructor. + * + * @param array $arguments + * + * @return $this + */ + public function setConstructorArgs(array $arguments): static + { + $this->constructorArgs = $arguments; + + return $this; + } + + /** + * Disables the invocation of the original constructor. + * + * @return $this + */ + public function disableOriginalConstructor(): static + { + $this->originalConstructor = false; + + return $this; + } + + /** + * Enables the invocation of the original constructor. + * + * @return $this + */ + public function enableOriginalConstructor(): static + { + $this->originalConstructor = true; + + return $this; + } + + /** + * Disables the invocation of the original clone constructor. + * + * @return $this + */ + public function disableOriginalClone(): static + { + $this->originalClone = false; + + return $this; + } + + /** + * Enables the invocation of the original clone constructor. + * + * @return $this + */ + public function enableOriginalClone(): static + { + $this->originalClone = true; + + return $this; + } + + /** + * @return $this + */ + public function enableAutoReturnValueGeneration(): static + { + $this->returnValueGeneration = true; + + return $this; + } + + /** + * @return $this + */ + public function disableAutoReturnValueGeneration(): static + { + $this->returnValueGeneration = false; + + return $this; + } + + protected function getTestDouble(?string $testDoubleClassName, bool $mockObject): MockObject|Stub + { + return (new Generator)->testDouble( + $this->type, + $mockObject, + !$this->emptyMethodsArray ? $this->methods : null, + $this->constructorArgs, + $testDoubleClassName ?? '', + $this->originalConstructor, + $this->originalClone, + $this->returnValueGeneration, + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/TestStubBuilder.php b/vendor/phpunit/phpunit/src/Framework/MockObject/TestStubBuilder.php new file mode 100644 index 000000000..acfe85fca --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/TestStubBuilder.php @@ -0,0 +1,76 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +use function assert; +use PHPUnit\Framework\MockObject\Generator\ClassIsAnonymousException; +use PHPUnit\Framework\MockObject\Generator\ClassIsEnumerationException; +use PHPUnit\Framework\MockObject\Generator\ClassIsFinalException; +use PHPUnit\Framework\MockObject\Generator\DuplicateMethodException; +use PHPUnit\Framework\MockObject\Generator\InvalidClassNameException; +use PHPUnit\Framework\MockObject\Generator\InvalidMethodNameException; +use PHPUnit\Framework\MockObject\Generator\NameAlreadyInUseException; +use PHPUnit\Framework\MockObject\Generator\ReflectionException; +use PHPUnit\Framework\MockObject\Generator\RuntimeException; +use PHPUnit\Framework\MockObject\Generator\UnknownTypeException; + +/** + * @template StubbedType + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final class TestStubBuilder extends TestDoubleBuilder +{ + /** + * @var ?class-string + */ + private ?string $stubClassName = null; + + /** + * Creates a test stub using a fluent interface. + * + * @throws ClassIsAnonymousException + * @throws ClassIsEnumerationException + * @throws ClassIsFinalException + * @throws DuplicateMethodException + * @throws InvalidClassNameException + * @throws InvalidMethodNameException + * @throws NameAlreadyInUseException + * @throws ReflectionException + * @throws RuntimeException + * @throws UnknownTypeException + * + * @return Stub&StubbedType + */ + public function getStub(): Stub + { + $object = $this->getTestDouble($this->stubClassName, false); + + assert($object instanceof $this->type); + assert($object instanceof Stub); + assert(!$object instanceof MockObject); + + return $object; + } + + /** + * Specifies the name for the mock class. + * + * @param class-string $name + * + * @return $this + */ + public function setStubClassName(string $name): self + { + $this->stubClassName = $name; + + return $this; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/TestBuilder.php b/vendor/phpunit/phpunit/src/Framework/TestBuilder.php index d4c52b40b..b6c789d43 100644 --- a/vendor/phpunit/phpunit/src/Framework/TestBuilder.php +++ b/vendor/phpunit/phpunit/src/Framework/TestBuilder.php @@ -11,8 +11,11 @@ namespace PHPUnit\Framework; use function array_merge; use function assert; +use function sprintf; +use PHPUnit\Event\Facade as EventFacade; use PHPUnit\Metadata\Api\DataProvider; use PHPUnit\Metadata\Api\Groups; +use PHPUnit\Metadata\Api\ProvidedData; use PHPUnit\Metadata\Api\Requirements; use PHPUnit\Metadata\BackupGlobals; use PHPUnit\Metadata\BackupStaticProperties; @@ -20,6 +23,7 @@ use PHPUnit\Metadata\ExcludeGlobalVariableFromBackup; use PHPUnit\Metadata\ExcludeStaticPropertyFromBackup; use PHPUnit\Metadata\Parser\Registry as MetadataRegistry; use PHPUnit\Metadata\PreserveGlobalState; +use PHPUnit\Runner\ErrorHandler; use PHPUnit\TextUI\Configuration\Registry as ConfigurationRegistry; use ReflectionClass; @@ -44,7 +48,13 @@ final readonly class TestBuilder $data = null; if ($this->requirementsSatisfied($className, $methodName)) { - $data = (new DataProvider)->providedData($className, $methodName); + try { + ErrorHandler::instance()->enterTestCaseContext($className, $methodName); + + $data = (new DataProvider)->providedData($className, $methodName); + } finally { + ErrorHandler::instance()->leaveTestCaseContext(); + } } if ($data !== null) { @@ -76,7 +86,7 @@ final readonly class TestBuilder /** * @param non-empty-string $methodName * @param class-string $className - * @param array> $data + * @param array $data * @param array{backupGlobals: ?true, backupGlobalsExcludeList: list, backupStaticProperties: ?true, backupStaticPropertiesExcludeList: array>} $backupSettings * @param list $groups */ @@ -94,7 +104,7 @@ final readonly class TestBuilder foreach ($data as $_dataName => $_data) { $_test = new $className($methodName); - $_test->setData($_dataName, $_data); + $_test->setData($_dataName, $_data->value()); $this->configureTestCase( $_test, @@ -273,7 +283,18 @@ final readonly class TestBuilder */ private function shouldAllTestMethodsOfTestClassBeRunInSingleSeparateProcess(string $className): bool { - return MetadataRegistry::parser()->forClass($className)->isRunClassInSeparateProcess()->isNotEmpty(); + $result = MetadataRegistry::parser()->forClass($className)->isRunClassInSeparateProcess()->isNotEmpty(); + + if ($result) { + EventFacade::emitter()->testRunnerTriggeredPhpunitDeprecation( + sprintf( + 'Class %s uses the #[RunClassInSeparateProcess]. This attribute is deprecated and will be removed in PHPUnit 13', + $className, + ), + ); + } + + return $result; } /** diff --git a/vendor/phpunit/phpunit/src/Framework/TestCase.php b/vendor/phpunit/phpunit/src/Framework/TestCase.php index 5ce085610..05f5e204c 100644 --- a/vendor/phpunit/phpunit/src/Framework/TestCase.php +++ b/vendor/phpunit/phpunit/src/Framework/TestCase.php @@ -9,21 +9,12 @@ */ namespace PHPUnit\Framework; -use const LC_ALL; -use const LC_COLLATE; -use const LC_CTYPE; -use const LC_MONETARY; -use const LC_NUMERIC; -use const LC_TIME; -use const PATHINFO_FILENAME; use const PHP_EOL; -use const PHP_URL_PATH; use function array_keys; use function array_merge; use function array_reverse; use function array_values; use function assert; -use function basename; use function chdir; use function class_exists; use function clearstatcache; @@ -31,15 +22,18 @@ use function count; use function defined; use function error_clear_last; use function explode; +use function fclose; use function getcwd; use function implode; use function in_array; +use function ini_get; use function ini_set; use function is_array; use function is_callable; use function is_int; use function is_object; use function is_string; +use function is_writable; use function libxml_clear_errors; use function method_exists; use function ob_end_clean; @@ -47,17 +41,19 @@ use function ob_get_clean; use function ob_get_contents; use function ob_get_level; use function ob_start; -use function parse_url; -use function pathinfo; use function preg_match; use function preg_replace; +use function putenv; use function restore_error_handler; use function restore_exception_handler; use function set_error_handler; use function set_exception_handler; -use function setlocale; use function sprintf; use function str_contains; +use function str_starts_with; +use function stream_get_contents; +use function stream_get_meta_data; +use function tmpfile; use function trim; use AssertionError; use DeepCopy\DeepCopy; @@ -79,27 +75,27 @@ use PHPUnit\Framework\MockObject\Rule\InvokedAtMostCount as InvokedAtMostCountMa use PHPUnit\Framework\MockObject\Rule\InvokedCount; use PHPUnit\Framework\MockObject\Rule\InvokedCount as InvokedCountMatcher; use PHPUnit\Framework\MockObject\Stub; -use PHPUnit\Framework\MockObject\Stub\ConsecutiveCalls as ConsecutiveCallsStub; use PHPUnit\Framework\MockObject\Stub\Exception as ExceptionStub; -use PHPUnit\Framework\MockObject\Stub\ReturnArgument as ReturnArgumentStub; -use PHPUnit\Framework\MockObject\Stub\ReturnCallback as ReturnCallbackStub; -use PHPUnit\Framework\MockObject\Stub\ReturnSelf as ReturnSelfStub; -use PHPUnit\Framework\MockObject\Stub\ReturnStub; -use PHPUnit\Framework\MockObject\Stub\ReturnValueMap as ReturnValueMapStub; +use PHPUnit\Framework\MockObject\TestStubBuilder; use PHPUnit\Framework\TestSize\TestSize; use PHPUnit\Framework\TestStatus\TestStatus; use PHPUnit\Metadata\Api\Groups; use PHPUnit\Metadata\Api\HookMethods; use PHPUnit\Metadata\Api\Requirements; use PHPUnit\Metadata\Parser\Registry as MetadataRegistry; +use PHPUnit\Metadata\WithEnvironmentVariable; +use PHPUnit\Runner\BackedUpEnvironmentVariable; use PHPUnit\Runner\DeprecationCollector\Facade as DeprecationCollector; use PHPUnit\Runner\HookMethodCollection; +use PHPUnit\Runner\ShutdownHandler; use PHPUnit\TestRunner\TestResult\PassedTests; use PHPUnit\TextUI\Configuration\Registry as ConfigurationRegistry; use PHPUnit\Util\Exporter; +use PHPUnit\Util\Sanitizer; use PHPUnit\Util\Test as TestUtil; use ReflectionClass; use ReflectionException; +use ReflectionMethod; use ReflectionObject; use SebastianBergmann\CodeCoverage\UnintentionallyCoveredCodeException; use SebastianBergmann\Comparator\Comparator; @@ -118,8 +114,7 @@ use Throwable; */ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, Test { - private const LOCALE_CATEGORIES = [LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME]; - private ?bool $backupGlobals = null; + private ?bool $backupGlobals = null; /** * @var list @@ -151,6 +146,11 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T private ?string $expectedExceptionMessageRegExp = null; private null|int|string $expectedExceptionCode = null; + /** + * @var list + */ + private array $backupEnvironmentVariables = []; + /** * @var list */ @@ -183,17 +183,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T private array $dependencyInput = []; /** - * @var array - */ - private array $iniSettings = []; - - /** - * @var array - */ - private array $locale = []; - - /** - * @var list + * @var list */ private array $mockObjects = []; private TestStatus $status; @@ -210,6 +200,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T private int $outputBufferingLevel; private bool $outputRetrievedForAssertion = false; private bool $doesNotPerformAssertions = false; + private bool $expectErrorLog = false; /** * @var list @@ -233,14 +224,18 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T */ private array $expectedUserDeprecationMessageRegularExpression = []; + /** + * @var false|resource + */ + private mixed $errorLogCapture = false; + private false|string $previousErrorLogTarget = false; + /** * @param non-empty-string $name * * @internal This method is not covered by the backward compatibility promise for PHPUnit - * - * @final */ - public function __construct(string $name) + final public function __construct(string $name) { $this->methodName = $name; $this->status = TestStatus::unknown(); @@ -347,7 +342,6 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T * @throws \PHPUnit\Util\Exception * @throws \SebastianBergmann\CodeCoverage\InvalidArgumentException * @throws \SebastianBergmann\Template\InvalidArgumentException - * @throws CodeCoverageException * @throws Exception * @throws NoPreviousThrowableException * @throws ProcessIsolationException @@ -362,7 +356,12 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T } if (!$this->shouldRunInSeparateProcess() || $this->requirementsNotSatisfied()) { - (new TestRunner)->run($this); + try { + ShutdownHandler::setMessage(sprintf('Fatal error: Premature end of PHP process when running %s.', $this->toString())); + (new TestRunner)->run($this); + } finally { + ShutdownHandler::resetMessage(); + } return; } @@ -426,6 +425,8 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T /** * @internal This method is not covered by the backward compatibility promise for PHPUnit + * + * @phpstan-assert-if-true non-empty-string $this->output() */ final public function hasUnexpectedOutput(): bool { @@ -486,6 +487,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $this->snapshotGlobalState(); $this->snapshotGlobalErrorExceptionHandlers(); + $this->handleEnvironmentVariables(); $this->startOutputBuffering(); $hookMethods = (new HookMethods)->hookMethods(static::class); @@ -545,6 +547,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $emitter->testPreparationFailed( $this->valueObjectForEvents(), + Event\Code\ThrowableBuilder::from($e), ); } @@ -571,9 +574,17 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $this->status = TestStatus::error($e->getMessage()); if (!$this->wasPrepared) { - $emitter->testPreparationFailed( - $this->valueObjectForEvents(), - ); + if ($e instanceof AssertionFailedError) { + $emitter->testPreparationFailed( + $this->valueObjectForEvents(), + Event\Code\ThrowableBuilder::from($e), + ); + } else { + $emitter->testPreparationErrored( + $this->valueObjectForEvents(), + Event\Code\ThrowableBuilder::from($e), + ); + } } $emitter->testErrored( @@ -590,7 +601,10 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $this->stopOutputBuffering()) { $outputBufferingStopped = true; - $this->performAssertionsOnOutput(); + try { + $this->performAssertionsOnOutput(); + } catch (ExpectationFailedException $e) { + } } try { @@ -655,15 +669,14 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T clearstatcache(); - if ($currentWorkingDirectory !== getcwd()) { + if ($currentWorkingDirectory !== false && $currentWorkingDirectory !== getcwd()) { chdir($currentWorkingDirectory); } + $this->restoreEnvironmentVariables(); $this->restoreGlobalErrorExceptionHandlers(); $this->restoreGlobalState(); $this->unregisterCustomComparators(); - $this->cleanupIniSettings(); - $this->cleanupLocaleSettings(); libxml_clear_errors(); $this->testValueObjectForEvents = null; @@ -710,7 +723,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T */ final public function hasDependencyInput(): bool { - return !empty($this->dependencyInput); + return $this->dependencyInput !== []; } /** @@ -804,13 +817,20 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T } /** + * @template RealInstanceType of object + * + * @param class-string $type + * * @internal This method is not covered by the backward compatibility promise for PHPUnit */ - final public function registerMockObject(MockObject $mockObject): void + final public function registerMockObject(string $type, MockObject $mockObject): void { assert($mockObject instanceof MockObjectInternal); - $this->mockObjects[] = $mockObject; + $this->mockObjects[] = [ + 'type' => $type, + 'mockObject' => $mockObject, + ]; } /** @@ -840,7 +860,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T */ final public function usesDataProvider(): bool { - return !empty($this->data); + return $this->data !== []; } /** @@ -856,17 +876,18 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T */ final public function dataSetAsString(): string { - $buffer = ''; - - if (!empty($this->data)) { + if ($this->data !== []) { if (is_int($this->dataName)) { - $buffer .= sprintf(' with data set #%d', $this->dataName); - } else { - $buffer .= sprintf(' with data set "%s"', $this->dataName); + return sprintf(' with data set #%s', $this->dataName); } + + return sprintf( + ' with data set "%s"', + Sanitizer::sanitizeBidirectionalControlCharacters($this->dataName), + ); } - return $buffer; + return ''; } /** @@ -874,12 +895,13 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T */ final public function dataSetAsStringWithData(): string { - if (empty($this->data)) { + if ($this->data === []) { return ''; } - return $this->dataSetAsString() . sprintf( - ' (%s)', + return sprintf( + '%s with data (%s)', + $this->dataSetAsFilterString(), Exporter::shortenedRecursiveExport($this->data), ); } @@ -968,6 +990,8 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T /** * Returns a matcher that matches when the method is executed * zero or more times. + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/6461 */ final protected function any(): AnyInvokedCountMatcher { @@ -1027,110 +1051,11 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T return new InvokedAtMostCountMatcher($allowedInvocations); } - /** - * @deprecated Use $double->willReturn() instead of $double->will($this->returnValue()) - * @see https://github.com/sebastianbergmann/phpunit/issues/5423 - * - * @codeCoverageIgnore - */ - final protected function returnValue(mixed $value): ReturnStub - { - Event\Facade::emitter()->testTriggeredPhpunitDeprecation( - $this->valueObjectForEvents(), - 'returnValue() is deprecated and will be removed in PHPUnit 12. Use $double->willReturn() instead of $double->will($this->returnValue())', - ); - - return new ReturnStub($value); - } - - /** - * @param array $valueMap - * - * @deprecated Use $double->willReturnMap() instead of $double->will($this->returnValueMap()) - * @see https://github.com/sebastianbergmann/phpunit/issues/5423 - * - * @codeCoverageIgnore - */ - final protected function returnValueMap(array $valueMap): ReturnValueMapStub - { - Event\Facade::emitter()->testTriggeredPhpunitDeprecation( - $this->valueObjectForEvents(), - 'returnValueMap() is deprecated and will be removed in PHPUnit 12. Use $double->willReturnMap() instead of $double->will($this->returnValueMap())', - ); - - return new ReturnValueMapStub($valueMap); - } - - /** - * @deprecated Use $double->willReturnArgument() instead of $double->will($this->returnArgument()) - * @see https://github.com/sebastianbergmann/phpunit/issues/5423 - * - * @codeCoverageIgnore - */ - final protected function returnArgument(int $argumentIndex): ReturnArgumentStub - { - Event\Facade::emitter()->testTriggeredPhpunitDeprecation( - $this->valueObjectForEvents(), - 'returnArgument() is deprecated and will be removed in PHPUnit 12. Use $double->willReturnArgument() instead of $double->will($this->returnArgument())', - ); - - return new ReturnArgumentStub($argumentIndex); - } - - /** - * @deprecated Use $double->willReturnCallback() instead of $double->will($this->returnCallback()) - * @see https://github.com/sebastianbergmann/phpunit/issues/5423 - * - * @codeCoverageIgnore - */ - final protected function returnCallback(callable $callback): ReturnCallbackStub - { - Event\Facade::emitter()->testTriggeredPhpunitDeprecation( - $this->valueObjectForEvents(), - 'returnCallback() is deprecated and will be removed in PHPUnit 12. Use $double->willReturnCallback() instead of $double->will($this->returnCallback())', - ); - - return new ReturnCallbackStub($callback); - } - - /** - * @deprecated Use $double->willReturnSelf() instead of $double->will($this->returnSelf()) - * @see https://github.com/sebastianbergmann/phpunit/issues/5423 - * - * @codeCoverageIgnore - */ - final protected function returnSelf(): ReturnSelfStub - { - Event\Facade::emitter()->testTriggeredPhpunitDeprecation( - $this->valueObjectForEvents(), - 'returnSelf() is deprecated and will be removed in PHPUnit 12. Use $double->willReturnSelf() instead of $double->will($this->returnSelf())', - ); - - return new ReturnSelfStub; - } - final protected function throwException(Throwable $exception): ExceptionStub { return new ExceptionStub($exception); } - /** - * @deprecated Use $double->willReturn() instead of $double->will($this->onConsecutiveCalls()) - * @see https://github.com/sebastianbergmann/phpunit/issues/5423 - * @see https://github.com/sebastianbergmann/phpunit/issues/5425 - * - * @codeCoverageIgnore - */ - final protected function onConsecutiveCalls(mixed ...$arguments): ConsecutiveCallsStub - { - Event\Facade::emitter()->testTriggeredPhpunitDeprecation( - $this->valueObjectForEvents(), - 'onConsecutiveCalls() is deprecated and will be removed in PHPUnit 12. Use $double->willReturn() instead of $double->will($this->onConsecutiveCalls())', - ); - - return new ConsecutiveCallsStub($arguments); - } - final protected function getActualOutputForAssertion(): string { $this->outputRetrievedForAssertion = true; @@ -1140,14 +1065,23 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T final protected function expectOutputRegex(string $expectedRegex): void { + $this->warnAboutMultipleOutputExpectations(); + $this->outputExpectedRegex = $expectedRegex; } final protected function expectOutputString(string $expectedString): void { + $this->warnAboutMultipleOutputExpectations(); + $this->outputExpectedString = $expectedString; } + final protected function expectErrorLog(): void + { + $this->expectErrorLog = true; + } + /** * @param class-string $exception */ @@ -1176,7 +1110,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T * Information for expected exception class, expected exception message, and * expected exception code are retrieved from a given Exception object. */ - final protected function expectExceptionObject(\Exception $exception): void + final protected function expectExceptionObject(Throwable $exception): void { $this->expectException($exception::class); $this->expectExceptionMessage($exception->getMessage()); @@ -1235,89 +1169,12 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $this->failureTypes[$classOrInterface] = true; } - /** - * This method is a wrapper for the ini_set() function that automatically - * resets the modified php.ini setting to its original value after the - * test is run. - * - * @throws Exception - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5214 - * - * @codeCoverageIgnore - */ - final protected function iniSet(string $varName, string $newValue): void - { - Event\Facade::emitter()->testTriggeredPhpunitDeprecation( - $this->valueObjectForEvents(), - 'iniSet() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - $currentValue = ini_set($varName, $newValue); - - if ($currentValue !== false) { - $this->iniSettings[$varName] = $currentValue; - } else { - throw new Exception( - sprintf( - 'INI setting "%s" could not be set to "%s".', - $varName, - $newValue, - ), - ); - } - } - - /** - * This method is a wrapper for the setlocale() function that automatically - * resets the locale to its original value after the test is run. - * - * @throws Exception - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5216 - * - * @codeCoverageIgnore - */ - final protected function setLocale(mixed ...$arguments): void - { - Event\Facade::emitter()->testTriggeredPhpunitDeprecation( - $this->valueObjectForEvents(), - 'setLocale() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - if (count($arguments) < 2) { - throw new Exception; - } - - [$category, $locale] = $arguments; - - if (!in_array($category, self::LOCALE_CATEGORIES, true)) { - throw new Exception; - } - - if (!is_array($locale) && !is_string($locale)) { - throw new Exception; - } - - $this->locale[$category] = setlocale($category, '0'); - - $result = setlocale(...$arguments); - - if ($result === false) { - throw new Exception( - 'The locale functionality is not implemented on your platform, ' . - 'the specified locale does not exist or the category name is ' . - 'invalid.', - ); - } - } - /** * Creates a mock object for the specified interface or class. * * @template RealInstanceType of object * - * @param class-string $originalClassName + * @param class-string $type * * @throws InvalidArgumentException * @throws MockObjectException @@ -1325,25 +1182,22 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T * * @return MockObject&RealInstanceType */ - final protected function createMock(string $originalClassName): MockObject + final protected function createMock(string $type): MockObject { $mock = (new MockGenerator)->testDouble( - $originalClassName, - true, + $type, true, callOriginalConstructor: false, callOriginalClone: false, - cloneArguments: false, - allowMockingUnknownTypes: false, returnValueGeneration: self::generateReturnValuesForTestDoubles(), ); - assert($mock instanceof $originalClassName); + assert($mock instanceof $type); assert($mock instanceof MockObject); - $this->registerMockObject($mock); + $this->registerMockObject($type, $mock); - Event\Facade::emitter()->testCreatedMockObject($originalClassName); + Event\Facade::emitter()->testCreatedMockObject($type); return $mock; } @@ -1363,7 +1217,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T assert($mock instanceof MockObject); - $this->registerMockObject($mock); + $this->registerMockObject(implode('|', $interfaces), $mock); Event\Facade::emitter()->testCreatedMockObjectForIntersectionOfInterfaces($interfaces); @@ -1375,7 +1229,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T * * @template RealInstanceType of object * - * @param class-string $originalClassName + * @param class-string $type * @param array $configuration * * @throws InvalidArgumentException @@ -1384,9 +1238,9 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T * * @return MockObject&RealInstanceType */ - final protected function createConfiguredMock(string $originalClassName, array $configuration): MockObject + final protected function createConfiguredMock(string $type, array $configuration): MockObject { - $o = $this->createMock($originalClassName); + $o = $this->createMock($type); foreach ($configuration as $method => $return) { $o->method($method)->willReturn($return); @@ -1398,7 +1252,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T /** * Creates a partial mock object for the specified interface or class. * - * @param class-string $originalClassName + * @param class-string $type * @param list $methods * * @template RealInstanceType of object @@ -1408,13 +1262,11 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T * * @return MockObject&RealInstanceType */ - final protected function createPartialMock(string $originalClassName, array $methods): MockObject + final protected function createPartialMock(string $type, array $methods): MockObject { - $mockBuilder = $this->getMockBuilder($originalClassName) + $mockBuilder = $this->getMockBuilder($type) ->disableOriginalConstructor() ->disableOriginalClone() - ->disableArgumentCloning() - ->disallowMockingUnknownTypes() ->onlyMethods($methods); if (!self::generateReturnValuesForTestDoubles()) { @@ -1424,7 +1276,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $partialMock = $mockBuilder->getMock(); Event\Facade::emitter()->testCreatedPartialMockObject( - $originalClassName, + $type, ...$methods, ); @@ -1432,209 +1284,13 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T } /** - * Creates a test proxy for the specified class. - * - * @template RealInstanceType of object - * - * @param class-string $originalClassName - * @param array $constructorArguments - * - * @throws InvalidArgumentException - * @throws MockObjectException - * - * @return MockObject&RealInstanceType - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5240 + * @param non-empty-string $additionalInformation */ - final protected function createTestProxy(string $originalClassName, array $constructorArguments = []): MockObject + final protected function provideAdditionalInformation(string $additionalInformation): void { - Event\Facade::emitter()->testTriggeredPhpunitDeprecation( + Event\Facade::emitter()->testProvidedAdditionalInformation( $this->valueObjectForEvents(), - 'createTestProxy() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - $testProxy = $this->getMockBuilder($originalClassName) - ->setConstructorArgs($constructorArguments) - ->enableProxyingToOriginalMethods() - ->getMock(); - - Event\Facade::emitter()->testCreatedTestProxy( - $originalClassName, - $constructorArguments, - ); - - return $testProxy; - } - - /** - * Creates a mock object for the specified abstract class with all abstract - * methods of the class mocked. Concrete methods are not mocked by default. - * To mock concrete methods, use the 7th parameter ($mockedMethods). - * - * @template RealInstanceType of object - * - * @param class-string $originalClassName - * @param array $arguments - * @param list $mockedMethods - * - * @throws InvalidArgumentException - * @throws MockObjectException - * - * @return MockObject&RealInstanceType - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5241 - */ - final protected function getMockForAbstractClass(string $originalClassName, array $arguments = [], string $mockClassName = '', bool $callOriginalConstructor = true, bool $callOriginalClone = true, bool $callAutoload = true, array $mockedMethods = [], bool $cloneArguments = false): MockObject - { - Event\Facade::emitter()->testTriggeredPhpunitDeprecation( - $this->valueObjectForEvents(), - 'getMockForAbstractClass() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - $mockObject = (new MockGenerator)->mockObjectForAbstractClass( - $originalClassName, - $arguments, - $mockClassName, - $callOriginalConstructor, - $callOriginalClone, - $callAutoload, - $mockedMethods, - $cloneArguments, - ); - - $this->registerMockObject($mockObject); - - Event\Facade::emitter()->testCreatedMockObjectForAbstractClass($originalClassName); - - assert($mockObject instanceof $originalClassName); - assert($mockObject instanceof MockObject); - - return $mockObject; - } - - /** - * Creates a mock object based on the given WSDL file. - * - * @param list $methods - * @param list $options - * - * @throws MockObjectException - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5242 - */ - final protected function getMockFromWsdl(string $wsdlFile, string $originalClassName = '', string $mockClassName = '', array $methods = [], bool $callOriginalConstructor = true, array $options = []): MockObject - { - Event\Facade::emitter()->testTriggeredPhpunitDeprecation( - $this->valueObjectForEvents(), - 'getMockFromWsdl() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - if ($originalClassName === '') { - $fileName = pathinfo(basename(parse_url($wsdlFile, PHP_URL_PATH)), PATHINFO_FILENAME); - $originalClassName = preg_replace('/\W/', '', $fileName); - } - - if (!class_exists($originalClassName)) { - eval( - (new MockGenerator)->generateClassFromWsdl( - $wsdlFile, - $originalClassName, - $methods, - $options, - ) - ); - } - - $mockObject = (new MockGenerator)->testDouble( - $originalClassName, - true, - true, - $methods, - ['', $options], - $mockClassName, - $callOriginalConstructor, - false, - false, - ); - - Event\Facade::emitter()->testCreatedMockObjectFromWsdl( - $wsdlFile, - $originalClassName, - $mockClassName, - $methods, - $callOriginalConstructor, - $options, - ); - - assert($mockObject instanceof MockObject); - - $this->registerMockObject($mockObject); - - return $mockObject; - } - - /** - * Creates a mock object for the specified trait with all abstract methods - * of the trait mocked. Concrete methods to mock can be specified with the - * `$mockedMethods` parameter. - * - * @param trait-string $traitName - * @param array $arguments - * @param list $mockedMethods - * - * @throws InvalidArgumentException - * @throws MockObjectException - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5243 - */ - final protected function getMockForTrait(string $traitName, array $arguments = [], string $mockClassName = '', bool $callOriginalConstructor = true, bool $callOriginalClone = true, bool $callAutoload = true, array $mockedMethods = [], bool $cloneArguments = false): MockObject - { - Event\Facade::emitter()->testTriggeredPhpunitDeprecation( - $this->valueObjectForEvents(), - 'getMockForTrait() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - $mockObject = (new MockGenerator)->mockObjectForTrait( - $traitName, - $arguments, - $mockClassName, - $callOriginalConstructor, - $callOriginalClone, - $callAutoload, - $mockedMethods, - $cloneArguments, - ); - - $this->registerMockObject($mockObject); - - Event\Facade::emitter()->testCreatedMockObjectForTrait($traitName); - - return $mockObject; - } - - /** - * Creates an object that uses the specified trait. - * - * @param trait-string $traitName - * @param array $arguments - * - * @throws MockObjectException - * - * @deprecated https://github.com/sebastianbergmann/phpunit/issues/5244 - */ - final protected function getObjectForTrait(string $traitName, array $arguments = [], string $traitClassName = '', bool $callOriginalConstructor = true, bool $callOriginalClone = true, bool $callAutoload = true): object - { - Event\Facade::emitter()->testTriggeredPhpunitDeprecation( - $this->valueObjectForEvents(), - 'getObjectForTrait() is deprecated and will be removed in PHPUnit 12 without replacement.', - ); - - return (new MockGenerator)->objectForTrait( - $traitName, - $traitClassName, - $callAutoload, - $callOriginalConstructor, - $arguments, + $additionalInformation, ); } @@ -1653,6 +1309,36 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T throw $t; } + /** + * @param array $testArguments + */ + protected function invokeTestMethod(string $methodName, array $testArguments): mixed + { + /** @phpstan-ignore method.dynamicName */ + return $this->{$methodName}(...$testArguments); + } + + /** + * Returns the data set as a string compatible with the --filter CLI option. + * + * @internal This method is not covered by the backward compatibility promise for PHPUnit + */ + private function dataSetAsFilterString(): string + { + if ($this->data !== []) { + if (is_int($this->dataName)) { + return sprintf('#%d', $this->dataName); + } + + return sprintf( + '@%s', + Sanitizer::sanitizeBidirectionalControlCharacters($this->dataName), + ); + } + + return ''; + } + /** * @throws AssertionFailedError * @throws Exception @@ -1663,9 +1349,15 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T { $testArguments = array_merge($this->data, array_values($this->dependencyInput)); + $this->startErrorLogCapture(); + try { - $testResult = $this->{$this->methodName}(...$testArguments); + $testResult = $this->invokeTestMethod($this->methodName, $testArguments); + + $this->verifyErrorLogExpectation(); } catch (Throwable $exception) { + $this->handleErrorLogError(); + if (!$this->shouldExceptionExpectationsBeVerified($exception)) { throw $exception; } @@ -1673,13 +1365,22 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $this->verifyExceptionExpectations($exception); return null; + } finally { + $this->stopErrorLogCapture(); } + $this->emitEventForCustomTestMethodInvocation(); $this->expectedExceptionWasNotRaised(); return $testResult; } + private function stripDateFromErrorLog(string $log): string + { + // https://github.com/php/php-src/blob/c696087e323263e941774ebbf902ac249774ec9f/main/main.c#L905 + return preg_replace('/\[\d+-\w+-\d+ \d+:\d+:\d+ [^\r\n[\]]+?\] /', '', $log); + } + /** * @throws ExpectationFailedException */ @@ -1727,13 +1428,32 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T */ private function verifyMockObjects(): void { + $allowsMockObjectsWithoutExpectations = $this->allowsMockObjectsWithoutExpectations(); + $isPhpunitTestSuite = str_starts_with($this::class, 'PHPUnit\\'); + foreach ($this->mockObjects as $mockObject) { - if ($mockObject->__phpunit_hasMatchers()) { - $this->numberOfAssertionsPerformed++; + if (!$mockObject['mockObject']->__phpunit_hasInvocationCountRule()) { + if (!$mockObject['mockObject']->__phpunit_hasParametersRule() && + !$allowsMockObjectsWithoutExpectations && + !$isPhpunitTestSuite) { + Event\Facade::emitter()->testTriggeredPhpunitNotice( + $this->testValueObjectForEvents, + sprintf( + 'No expectations were configured for the mock object for %s. ' . + 'Consider refactoring your test code to use a test stub instead. ' . + 'The #[AllowMockObjectsWithoutExpectations] attribute can be used to opt out of this check.', + $mockObject['type'], + ), + ); + } + + continue; } - $mockObject->__phpunit_verify( - $this->shouldInvocationMockerBeReset($mockObject), + $this->numberOfAssertionsPerformed++; + + $mockObject['mockObject']->__phpunit_verify( + $this->shouldInvocationMockerBeReset($mockObject['mockObject']), ); } } @@ -1743,7 +1463,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T */ private function checkRequirements(): void { - if (!$this->methodName || !method_exists($this, $this->methodName)) { + if ($this->methodName === '' || !method_exists($this, $this->methodName)) { return; } @@ -1752,7 +1472,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $this->methodName, ); - if (!empty($missingRequirements)) { + if ($missingRequirements !== []) { $this->markTestSkipped(implode(PHP_EOL, $missingRequirements)); } } @@ -2107,6 +1827,13 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $excludeList->addClassNamePrefix('SebastianBergmann\Invoker'); $excludeList->addClassNamePrefix('SebastianBergmann\Template'); $excludeList->addClassNamePrefix('SebastianBergmann\Timer'); + + foreach (array_keys($GLOBALS) as $key) { + if (str_starts_with($key, '__phpunit_')) { + $excludeList->addGlobalVariable($key); + } + } + $excludeList->addStaticProperty(ComparatorFactory::class, 'instance'); foreach ($this->backupStaticPropertiesExcludeList as $class => $properties) { @@ -2132,6 +1859,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T } catch (Throwable $t) { Event\Facade::emitter()->testPreparationFailed( $this->valueObjectForEvents(), + Event\Code\ThrowableBuilder::from($t), ); Event\Facade::emitter()->testErrored( @@ -2176,7 +1904,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T */ private function compareGlobalStateSnapshotPart(array $before, array $after, string $header): void { - if ($before == $after) { + if ($before === $after) { return; } @@ -2194,6 +1922,40 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T ); } + private function handleEnvironmentVariables(): void + { + $withEnvironmentVariables = MetadataRegistry::parser()->forClassAndMethod(static::class, $this->methodName)->isWithEnvironmentVariable(); + + $environmentVariables = []; + + foreach ($withEnvironmentVariables as $metadata) { + assert($metadata instanceof WithEnvironmentVariable); + + $environmentVariables[$metadata->environmentVariableName()] = $metadata->value(); + } + + foreach ($environmentVariables as $environmentVariableName => $environmentVariableValue) { + $this->backupEnvironmentVariables = [...$this->backupEnvironmentVariables, ...BackedUpEnvironmentVariable::create($environmentVariableName)]; + + if ($environmentVariableValue === null) { + unset($_ENV[$environmentVariableName]); + putenv($environmentVariableName); + } else { + $_ENV[$environmentVariableName] = $environmentVariableValue; + putenv("{$environmentVariableName}={$environmentVariableValue}"); + } + } + } + + private function restoreEnvironmentVariables(): void + { + foreach ($this->backupEnvironmentVariables as $backupEnvironmentVariable) { + $backupEnvironmentVariable->restore(); + } + + $this->backupEnvironmentVariables = []; + } + private function shouldInvocationMockerBeReset(MockObject $mock): bool { $enumerator = new Enumerator; @@ -2220,24 +1982,6 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $this->customComparators = []; } - private function cleanupIniSettings(): void - { - foreach ($this->iniSettings as $varName => $oldValue) { - ini_set($varName, $oldValue); - } - - $this->iniSettings = []; - } - - private function cleanupLocaleSettings(): void - { - foreach ($this->locale as $category => $locale) { - setlocale($category, $locale); - } - - $this->locale = []; - } - /** * @throws Exception */ @@ -2356,7 +2100,9 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $emitter, 'beforeFirstTestMethodCalled', 'beforeFirstTestMethodErrored', + 'beforeFirstTestMethodFailed', 'beforeFirstTestMethodFinished', + false, ); } @@ -2372,6 +2118,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $emitter, 'beforeTestMethodCalled', 'beforeTestMethodErrored', + 'beforeTestMethodFailed', 'beforeTestMethodFinished', ); } @@ -2388,6 +2135,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $emitter, 'preConditionCalled', 'preConditionErrored', + 'preConditionFailed', 'preConditionFinished', ); } @@ -2404,6 +2152,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $emitter, 'postConditionCalled', 'postConditionErrored', + 'postConditionFailed', 'postConditionFinished', ); } @@ -2420,6 +2169,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $emitter, 'afterTestMethodCalled', 'afterTestMethodErrored', + 'afterTestMethodFailed', 'afterTestMethodFinished', ); } @@ -2438,19 +2188,28 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $emitter, 'afterLastTestMethodCalled', 'afterLastTestMethodErrored', + 'afterLastTestMethodFailed', 'afterLastTestMethodFinished', + false, ); } /** * @param 'afterLastTestMethodCalled'|'afterTestMethodCalled'|'beforeFirstTestMethodCalled'|'beforeTestMethodCalled'|'postConditionCalled'|'preConditionCalled' $calledMethod * @param 'afterLastTestMethodErrored'|'afterTestMethodErrored'|'beforeFirstTestMethodErrored'|'beforeTestMethodErrored'|'postConditionErrored'|'preConditionErrored' $erroredMethod - * @param 'afterLastTestMethodFinished'|'afterTestMethodFinished'|'beforeFirstTestMethodFinished'|'beforeTestMethodFinished'|'postConditionFinished'|'preConditionFinished' $finishedMethod * + * @param 'afterLastTestMethodFailed'|'afterTestMethodFailed'|'beforeFirstTestMethodFailed'|'beforeTestMethodFailed'|'postConditionFailed'|'preConditionFailed' $failedMethod + * @param 'afterLastTestMethodFinished'|'afterTestMethodFinished'|'beforeFirstTestMethodFinished'|'beforeTestMethodFinished'|'postConditionFinished'|'preConditionFinished' $finishedMethod * * @throws Throwable */ - private function invokeHookMethods(HookMethodCollection $hookMethods, Event\Emitter $emitter, string $calledMethod, string $erroredMethod, string $finishedMethod): void + private function invokeHookMethods(HookMethodCollection $hookMethods, Event\Emitter $emitter, string $calledMethod, string $erroredMethod, string $failedMethod, string $finishedMethod, bool $forTestCase = true): void { + if ($forTestCase) { + $test = $this->valueObjectForEvents(); + } else { + $test = static::class; + } + $methodsInvoked = []; foreach ($hookMethods->methodNamesSortedByPriority() as $methodName) { @@ -2464,20 +2223,29 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T ); try { + /** @phpstan-ignore method.dynamicName */ $this->{$methodName}(); } catch (Throwable $t) { } + /** @phpstan-ignore method.dynamicName */ $emitter->{$calledMethod}( - static::class, + $test, $methodInvoked ); $methodsInvoked[] = $methodInvoked; if (isset($t) && !$t instanceof SkippedTest) { - $emitter->{$erroredMethod}( - static::class, + if ($t instanceof AssertionFailedError) { + $method = $failedMethod; + } else { + $method = $erroredMethod; + } + + /** @phpstan-ignore method.dynamicName */ + $emitter->{$method}( + $test, $methodInvoked, Event\Code\ThrowableBuilder::from($t), ); @@ -2486,9 +2254,10 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T } } - if (!empty($methodsInvoked)) { + if ($methodsInvoked !== []) { + /** @phpstan-ignore method.dynamicName */ $emitter->{$finishedMethod}( - static::class, + $test, ...$methodsInvoked ); } @@ -2636,12 +2405,148 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T } } + private function startErrorLogCapture(): void + { + if (ini_get('display_errors') === '0') { + ShutdownHandler::setMessage( + 'Fatal error: Premature end of PHPUnit\'s PHP process. Use display_errors=On to see the error message.', + ); + } + + $errorLogCapture = tmpfile(); + + if ($errorLogCapture === false) { + return; + } + + $capturePath = stream_get_meta_data($errorLogCapture)['uri']; + + if (!@is_writable($capturePath)) { + return; + } + + $this->errorLogCapture = $errorLogCapture; + $this->previousErrorLogTarget = ini_set('error_log', $capturePath); + } + + /** + * @throws ErrorLogNotWritableException + */ + private function verifyErrorLogExpectation(): void + { + if ($this->errorLogCapture === false) { + if ($this->expectErrorLog) { + throw new ErrorLogNotWritableException; + } + + return; + } + + $errorLogOutput = stream_get_contents($this->errorLogCapture); + + if ($this->expectErrorLog) { + $this->assertNotEmpty($errorLogOutput, 'error_log() was not called'); + + return; + } + + if ($errorLogOutput === false) { + return; + } + + print $this->stripDateFromErrorLog($errorLogOutput); + } + + private function handleErrorLogError(): void + { + if ($this->errorLogCapture === false) { + return; + } + + if ($this->expectErrorLog) { + return; + } + + $errorLogOutput = stream_get_contents($this->errorLogCapture); + + if ($errorLogOutput !== false) { + print $this->stripDateFromErrorLog($errorLogOutput); + } + } + + private function stopErrorLogCapture(): void + { + if ($this->errorLogCapture === false) { + return; + } + + ShutdownHandler::resetMessage(); + + fclose($this->errorLogCapture); + + $this->errorLogCapture = false; + + if ($this->previousErrorLogTarget === false) { + return; + } + + ini_set('error_log', $this->previousErrorLogTarget); + + $this->previousErrorLogTarget = false; + } + + private function allowsMockObjectsWithoutExpectations(): bool + { + return MetadataRegistry::parser()->forClassAndMethod(static::class, $this->methodName)->isAllowMockObjectsWithoutExpectations()->isNotEmpty(); + } + + private function emitEventForCustomTestMethodInvocation(): void + { + $reflector = new ReflectionMethod($this, 'invokeTestMethod'); + + if (self::class === $reflector->getDeclaringClass()->getName()) { + return; + } + + Event\Facade::emitter()->testUsedCustomMethodInvocation( + $this->valueObjectForEvents(), + new Event\Code\ClassMethod( + $reflector->getDeclaringClass()->getName(), + 'invokeTestMethod', + ), + ); + } + + private function warnAboutMultipleOutputExpectations(): void + { + if ($this->hasExpectationOnOutput()) { + Event\Facade::emitter()->testTriggeredPhpunitWarning( + $this->valueObjectForEvents(), + 'Only one expectation on output can be configured: expectOutputString() and expectOutputRegex() cannot be combined and must not be called more than once', + ); + } + } + + /** + * Returns a builder object to create test stubs using a fluent interface. + * + * @template RealInstanceType of object + * + * @param class-string $className + * + * @return TestStubBuilder + */ + final protected static function getStubBuilder(string $className): TestStubBuilder + { + return new TestStubBuilder($className); + } + /** * Creates a test stub for the specified interface or class. * * @template RealInstanceType of object * - * @param class-string $originalClassName + * @param class-string $type * * @throws InvalidArgumentException * @throws MockObjectException @@ -2649,22 +2554,19 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T * * @return RealInstanceType&Stub */ - final protected static function createStub(string $originalClassName): Stub + final protected static function createStub(string $type): Stub { $stub = (new MockGenerator)->testDouble( - $originalClassName, - true, + $type, false, callOriginalConstructor: false, callOriginalClone: false, - cloneArguments: false, - allowMockingUnknownTypes: false, returnValueGeneration: self::generateReturnValuesForTestDoubles(), ); - Event\Facade::emitter()->testCreatedStub($originalClassName); + Event\Facade::emitter()->testCreatedStub($type); - assert($stub instanceof $originalClassName); + assert($stub instanceof $type); assert($stub instanceof Stub); return $stub; @@ -2693,7 +2595,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T * * @template RealInstanceType of object * - * @param class-string $originalClassName + * @param class-string $type * @param array $configuration * * @throws InvalidArgumentException @@ -2702,9 +2604,9 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T * * @return RealInstanceType&Stub */ - final protected static function createConfiguredStub(string $originalClassName, array $configuration): Stub + final protected static function createConfiguredStub(string $type, array $configuration): Stub { - $o = self::createStub($originalClassName); + $o = self::createStub($type); foreach ($configuration as $method => $return) { $o->method($method)->willReturn($return); diff --git a/vendor/phpunit/phpunit/src/Framework/TestRunner/ChildProcessResultProcessor.php b/vendor/phpunit/phpunit/src/Framework/TestRunner/ChildProcessResultProcessor.php index 466ff33bc..43b454409 100644 --- a/vendor/phpunit/phpunit/src/Framework/TestRunner/ChildProcessResultProcessor.php +++ b/vendor/phpunit/phpunit/src/Framework/TestRunner/ChildProcessResultProcessor.php @@ -10,6 +10,9 @@ namespace PHPUnit\Framework; use function assert; +use function hash_equals; +use function strlen; +use function substr; use function trim; use function unserialize; use PHPUnit\Event\Code\TestMethodBuilder; @@ -37,9 +40,12 @@ final readonly class ChildProcessResultProcessor $this->codeCoverage = $codeCoverage; } - public function process(Test $test, string $serializedProcessResult, string $stderr): void + /** + * @param ?non-empty-string $processResultNonce + */ + public function process(Test $test, string $serializedProcessResult, string $stderr, ?string $processResultNonce = null): void { - if (!empty($stderr)) { + if ($stderr !== '') { $exception = new Exception(trim($stderr)); assert($test instanceof TestCase); @@ -52,9 +58,40 @@ final readonly class ChildProcessResultProcessor return; } + if ($processResultNonce !== null && $serializedProcessResult !== '') { + $nonceLength = strlen($processResultNonce); + + if (strlen($serializedProcessResult) < $nonceLength || + !hash_equals($processResultNonce, substr($serializedProcessResult, 0, $nonceLength))) { + $this->emitter->childProcessErrored(); + + $exception = new AssertionFailedError( + 'Test was run in child process and the result file was tampered with or written by an unexpected process', + ); + + assert($test instanceof TestCase); + + $this->emitter->testErrored( + TestMethodBuilder::fromTestCase($test), + ThrowableBuilder::from($exception), + ); + + $this->emitter->testFinished( + TestMethodBuilder::fromTestCase($test), + 0, + ); + + return; + } + + $serializedProcessResult = substr($serializedProcessResult, $nonceLength); + } + $childResult = @unserialize($serializedProcessResult); if ($childResult === false) { + $this->emitter->childProcessErrored(); + $exception = new AssertionFailedError('Test was run in child process and ended unexpectedly'); assert($test instanceof TestCase); @@ -72,25 +109,25 @@ final readonly class ChildProcessResultProcessor return; } - $this->eventFacade->forward($childResult['events']); - $this->passedTests->import($childResult['passedTests']); + $this->eventFacade->forward($childResult->events); + $this->passedTests->import($childResult->passedTests); assert($test instanceof TestCase); - $test->setResult($childResult['testResult']); - $test->addToAssertionCount($childResult['numAssertions']); + $test->setResult($childResult->testResult); + $test->addToAssertionCount($childResult->numAssertions); if (!$this->codeCoverage->isActive()) { return; } // @codeCoverageIgnoreStart - if (!$childResult['codeCoverage'] instanceof \SebastianBergmann\CodeCoverage\CodeCoverage) { + if (!$childResult->codeCoverage instanceof \SebastianBergmann\CodeCoverage\CodeCoverage) { return; } CodeCoverage::instance()->codeCoverage()->merge( - $childResult['codeCoverage'], + $childResult->codeCoverage, ); // @codeCoverageIgnoreEnd } diff --git a/vendor/phpunit/phpunit/src/Framework/TestRunner/SeparateProcessTestRunner.php b/vendor/phpunit/phpunit/src/Framework/TestRunner/SeparateProcessTestRunner.php index efbefa8ed..57b535e9d 100644 --- a/vendor/phpunit/phpunit/src/Framework/TestRunner/SeparateProcessTestRunner.php +++ b/vendor/phpunit/phpunit/src/Framework/TestRunner/SeparateProcessTestRunner.php @@ -10,14 +10,18 @@ namespace PHPUnit\Framework; use function assert; +use function bin2hex; use function defined; use function get_include_path; use function hrtime; +use function random_bytes; use function serialize; +use function sprintf; use function sys_get_temp_dir; use function tempnam; use function unlink; use function var_export; +use PHPUnit\Event\Facade as EventFacade; use PHPUnit\Event\NoPreviousThrowableException; use PHPUnit\Runner\CodeCoverage; use PHPUnit\TextUI\Configuration\Registry as ConfigurationRegistry; @@ -71,10 +75,22 @@ final class SeparateProcessTestRunner } if ($preserveGlobalState) { - $constants = GlobalState::getConstantsAsString(); - $globals = GlobalState::getGlobalsAsString(); - $includedFiles = GlobalState::getIncludedFilesAsString(); - $iniSettings = GlobalState::getIniSettingsAsString(); + $constants = GlobalState::getConstantsAsString(); + $globalStateResult = GlobalState::exportGlobals(); + $globals = $globalStateResult->globalsString(); + $includedFiles = GlobalState::getIncludedFilesAsString(); + $iniSettings = GlobalState::getIniSettingsAsString(); + + foreach ($globalStateResult->skippedGlobals() as $skipped) { + EventFacade::emitter()->testTriggeredPhpunitWarning( + $test->valueObjectForEvents(), + sprintf( + 'Global variable %s was not preserved because it %s', + $skipped['name'], + $skipped['reason'], + ), + ); + } } $coverage = CodeCoverage::instance()->isActive() ? 'true' : 'false'; @@ -104,6 +120,7 @@ final class SeparateProcessTestRunner $offset = hrtime(); $serializedConfiguration = $this->saveConfigurationForChildProcess(); $processResultFile = $this->pathForCachedSourceMap(); + $processResultNonce = bin2hex(random_bytes(16)); $sourceMapFile = $this->sourceMapFileForChildProcess(); $file = $class->getFileName(); @@ -130,6 +147,7 @@ final class SeparateProcessTestRunner 'offsetNanoseconds' => (string) $offset[1], 'serializedConfiguration' => $serializedConfiguration, 'processResultFile' => $processResultFile, + 'processResultNonce' => $processResultNonce, 'sourceMapFile' => $sourceMapFile, ]; @@ -143,7 +161,7 @@ final class SeparateProcessTestRunner assert($code !== ''); - JobRunnerRegistry::runTestJob(new Job($code, requiresXdebug: $requiresXdebug), $processResultFile, $test); + JobRunnerRegistry::runTestJob(new Job($code, requiresXdebug: $requiresXdebug), $processResultFile, $test, $processResultNonce); @unlink($serializedConfiguration); } diff --git a/vendor/phpunit/phpunit/src/Framework/TestRunner/TestRunner.php b/vendor/phpunit/phpunit/src/Framework/TestRunner/TestRunner.php index 7bf826992..e6cf03f6b 100644 --- a/vendor/phpunit/phpunit/src/Framework/TestRunner/TestRunner.php +++ b/vendor/phpunit/phpunit/src/Framework/TestRunner/TestRunner.php @@ -10,6 +10,9 @@ namespace PHPUnit\Framework; use const PHP_EOL; +use function array_diff_assoc; +use function array_intersect; +use function array_unique; use function assert; use function extension_loaded; use function sprintf; @@ -23,8 +26,9 @@ use PHPUnit\Runner\ErrorHandler; use PHPUnit\Runner\Exception; use PHPUnit\TextUI\Configuration\Configuration; use PHPUnit\TextUI\Configuration\Registry as ConfigurationRegistry; -use SebastianBergmann\CodeCoverage\Exception as OriginalCodeCoverageException; +use SebastianBergmann\CodeCoverage\Exception as CodeCoverageException; use SebastianBergmann\CodeCoverage\InvalidArgumentException; +use SebastianBergmann\CodeCoverage\Test\Target\TargetCollection; use SebastianBergmann\CodeCoverage\UnintentionallyCoveredCodeException; use SebastianBergmann\Invoker\Invoker; use SebastianBergmann\Invoker\TimeoutException; @@ -46,7 +50,6 @@ final class TestRunner } /** - * @throws CodeCoverageException * @throws Exception * @throws InvalidArgumentException * @throws UnintentionallyCoveredCodeException @@ -57,11 +60,20 @@ final class TestRunner $codeCoverageMetadataApi = new CodeCoverageMetadataApi; - $shouldCodeCoverageBeCollected = $codeCoverageMetadataApi->shouldCodeCoverageBeCollectedFor( + $coversTargets = $codeCoverageMetadataApi->coversTargets( $test::class, $test->name(), ); + $usesTargets = $codeCoverageMetadataApi->usesTargets( + $test::class, + $test->name(), + ); + + $shouldCodeCoverageBeCollected = $codeCoverageMetadataApi->shouldCodeCoverageBeCollectedFor($test); + + $this->performSanityChecks($test, $coversTargets, $usesTargets, $shouldCodeCoverageBeCollected); + $error = false; $failure = false; $incomplete = false; @@ -69,7 +81,7 @@ final class TestRunner $skipped = false; if ($this->shouldErrorHandlerBeUsed($test)) { - ErrorHandler::instance()->enable(); + ErrorHandler::instance()->enable($test); } $collectCodeCoverage = CodeCoverage::instance()->isActive() && @@ -135,36 +147,18 @@ final class TestRunner } if ($collectCodeCoverage) { - $append = !$risky && !$incomplete && !$skipped; - $linesToBeCovered = []; - $linesToBeUsed = []; + $append = !$risky && !$incomplete && !$skipped; - if ($append) { - try { - $linesToBeCovered = $codeCoverageMetadataApi->linesToBeCovered( - $test::class, - $test->name(), - ); - - $linesToBeUsed = $codeCoverageMetadataApi->linesToBeUsed( - $test::class, - $test->name(), - ); - } catch (InvalidCoversTargetException $cce) { - Facade::emitter()->testTriggeredPhpunitWarning( - $test->valueObjectForEvents(), - $cce->getMessage(), - ); - - $append = false; - } + if (!$append) { + $coversTargets = false; + $usesTargets = null; } try { CodeCoverage::instance()->stop( $append, - $linesToBeCovered, - $linesToBeUsed, + $coversTargets, + $usesTargets, ); } catch (UnintentionallyCoveredCodeException $cce) { Facade::emitter()->testConsideredRisky( @@ -173,7 +167,7 @@ final class TestRunner PHP_EOL . $cce->getMessage(), ); - } catch (OriginalCodeCoverageException $cce) { + } catch (CodeCoverageException $cce) { $error = true; $e = $e ?? $cce; @@ -235,7 +229,11 @@ final class TestRunner private function hasCoverageMetadata(string $className, string $methodName): bool { foreach (MetadataRegistry::parser()->forClassAndMethod($className, $methodName) as $metadata) { - if ($metadata->isCovers()) { + if ($metadata->isCoversNamespace()) { + return true; + } + + if ($metadata->isCoversTrait()) { return true; } @@ -243,7 +241,11 @@ final class TestRunner return true; } - if ($metadata->isCoversTrait()) { + if ($metadata->isCoversClassesThatExtendClass()) { + return true; + } + + if ($metadata->isCoversClassesThatImplementInterface()) { return true; } @@ -280,7 +282,7 @@ final class TestRunner return false; } - if (!(($this->configuration->defaultTimeLimit() || $test->size()->isKnown()))) { + if (!(($this->configuration->defaultTimeLimit() > 0 || $test->size()->isKnown()))) { return false; } @@ -333,4 +335,61 @@ final class TestRunner return true; } + + private function performSanityChecks(TestCase $test, TargetCollection $coversTargets, TargetCollection $usesTargets, bool $shouldCodeCoverageBeCollected): void + { + if (!$shouldCodeCoverageBeCollected) { + if ($coversTargets->isNotEmpty() || $usesTargets->isNotEmpty()) { + Facade::emitter()->testTriggeredPhpunitWarning( + $test->valueObjectForEvents(), + '#[Covers*] and #[Uses*] attributes do not have an effect when the #[CoversNothing] attribute is used', + ); + } + } + + $coversAsString = []; + $usesAsString = []; + + foreach ($coversTargets as $coversTarget) { + $coversAsString[] = $coversTarget->description(); + } + + foreach ($usesTargets as $usesTarget) { + $usesAsString[] = $usesTarget->description(); + } + + $coversDuplicates = array_unique(array_diff_assoc($coversAsString, array_unique($coversAsString))); + $usesDuplicates = array_unique(array_diff_assoc($usesAsString, array_unique($usesAsString))); + $coversAndUses = array_intersect($coversAsString, $usesAsString); + + foreach ($coversDuplicates as $target) { + Facade::emitter()->testTriggeredPhpunitWarning( + $test->valueObjectForEvents(), + sprintf( + '%s is targeted multiple times by the same "Covers" attribute', + $target, + ), + ); + } + + foreach ($usesDuplicates as $target) { + Facade::emitter()->testTriggeredPhpunitWarning( + $test->valueObjectForEvents(), + sprintf( + '%s is targeted multiple times by the same "Uses" attribute', + $target, + ), + ); + } + + foreach ($coversAndUses as $target) { + Facade::emitter()->testTriggeredPhpunitWarning( + $test->valueObjectForEvents(), + sprintf( + '%s is targeted by both "Covers" and "Uses" attributes', + $target, + ), + ); + } + } } diff --git a/vendor/phpunit/phpunit/src/Framework/TestRunner/templates/class.tpl b/vendor/phpunit/phpunit/src/Framework/TestRunner/templates/class.tpl index 6640df716..83263c333 100644 --- a/vendor/phpunit/phpunit/src/Framework/TestRunner/templates/class.tpl +++ b/vendor/phpunit/phpunit/src/Framework/TestRunner/templates/class.tpl @@ -17,19 +17,21 @@ if (!defined('STDOUT')) { {iniSettings} ini_set('display_errors', 'stderr'); -set_include_path('{include_path}'); +if (get_include_path() !== '{include_path}') { + set_include_path('{include_path}'); +} -$composerAutoload = {composerAutoload}; -$phar = {phar}; +$__phpunit_composerAutoload = {composerAutoload}; +$__phpunit_phar = {phar}; ob_start(); -if ($composerAutoload) { - require_once $composerAutoload; +if ($__phpunit_composerAutoload) { + require_once $__phpunit_composerAutoload; - define('PHPUNIT_COMPOSER_INSTALL', $composerAutoload); -} else if ($phar) { - require $phar; + define('PHPUNIT_COMPOSER_INSTALL', $__phpunit_composerAutoload); +} else if ($__phpunit_phar) { + require $__phpunit_phar; } function __phpunit_run_isolated_test() @@ -102,8 +104,8 @@ function __phpunit_run_isolated_test() file_put_contents( '{processResultFile}', - serialize( - [ + '{processResultNonce}' . serialize( + (object)[ 'testResult' => $test->result(), 'codeCoverage' => {collectCodeCoverageInformation} ? CodeCoverage::instance()->codeCoverage() : null, 'numAssertions' => $test->numberOfAssertionsPerformed(), @@ -140,4 +142,19 @@ if ('{bootstrap}' !== '') { require_once '{bootstrap}'; } +$__phpunit_includeTestSuites = ConfigurationRegistry::get()->includeTestSuites(); +$__phpunit_excludeTestSuites = ConfigurationRegistry::get()->excludeTestSuites(); + +foreach (ConfigurationRegistry::get()->bootstrapForTestSuite() as $__phpunit_testSuiteName => $__phpunit_bootstrapForTestSuite) { + if ($__phpunit_includeTestSuites !== [] && !in_array($__phpunit_testSuiteName, $__phpunit_includeTestSuites, true)) { + continue; + } + + if ($__phpunit_excludeTestSuites !== [] && in_array($__phpunit_testSuiteName, $__phpunit_excludeTestSuites, true)) { + continue; + } + + require_once $__phpunit_bootstrapForTestSuite; +} + __phpunit_run_isolated_test(); diff --git a/vendor/phpunit/phpunit/src/Framework/TestRunner/templates/method.tpl b/vendor/phpunit/phpunit/src/Framework/TestRunner/templates/method.tpl index 3cff9cea1..426dabffc 100644 --- a/vendor/phpunit/phpunit/src/Framework/TestRunner/templates/method.tpl +++ b/vendor/phpunit/phpunit/src/Framework/TestRunner/templates/method.tpl @@ -17,19 +17,21 @@ if (!defined('STDOUT')) { {iniSettings} ini_set('display_errors', 'stderr'); -set_include_path('{include_path}'); +if (get_include_path() !== '{include_path}') { + set_include_path('{include_path}'); +} -$composerAutoload = {composerAutoload}; -$phar = {phar}; +$__phpunit_composerAutoload = {composerAutoload}; +$__phpunit_phar = {phar}; ob_start(); -if ($composerAutoload) { - require_once $composerAutoload; +if ($__phpunit_composerAutoload) { + require_once $__phpunit_composerAutoload; - define('PHPUNIT_COMPOSER_INSTALL', $composerAutoload); -} else if ($phar) { - require $phar; + define('PHPUNIT_COMPOSER_INSTALL', $__phpunit_composerAutoload); +} else if ($__phpunit_phar) { + require $__phpunit_phar; } function __phpunit_run_isolated_test() @@ -102,8 +104,8 @@ function __phpunit_run_isolated_test() file_put_contents( '{processResultFile}', - serialize( - [ + '{processResultNonce}' . serialize( + (object)[ 'testResult' => $test->result(), 'codeCoverage' => {collectCodeCoverageInformation} ? CodeCoverage::instance()->codeCoverage() : null, 'numAssertions' => $test->numberOfAssertionsPerformed(), @@ -140,4 +142,19 @@ if ('{bootstrap}' !== '') { require_once '{bootstrap}'; } +$__phpunit_includeTestSuites = ConfigurationRegistry::get()->includeTestSuites(); +$__phpunit_excludeTestSuites = ConfigurationRegistry::get()->excludeTestSuites(); + +foreach (ConfigurationRegistry::get()->bootstrapForTestSuite() as $__phpunit_testSuiteName => $__phpunit_bootstrapForTestSuite) { + if ($__phpunit_includeTestSuites !== [] && !in_array($__phpunit_testSuiteName, $__phpunit_includeTestSuites, true)) { + continue; + } + + if ($__phpunit_excludeTestSuites !== [] && in_array($__phpunit_testSuiteName, $__phpunit_excludeTestSuites, true)) { + continue; + } + + require_once $__phpunit_bootstrapForTestSuite; +} + __phpunit_run_isolated_test(); diff --git a/vendor/phpunit/phpunit/src/Framework/TestSuite.php b/vendor/phpunit/phpunit/src/Framework/TestSuite.php index 0ba2a6735..782001679 100644 --- a/vendor/phpunit/phpunit/src/Framework/TestSuite.php +++ b/vendor/phpunit/phpunit/src/Framework/TestSuite.php @@ -37,7 +37,7 @@ use PHPUnit\Metadata\Api\Requirements; use PHPUnit\Metadata\MetadataCollection; use PHPUnit\Runner\Exception as RunnerException; use PHPUnit\Runner\Filter\Factory; -use PHPUnit\Runner\PhptTestCase; +use PHPUnit\Runner\Phpt\TestCase as PhptTestCase; use PHPUnit\Runner\TestSuiteLoader; use PHPUnit\TestRunner\TestResult\Facade as TestResultFacade; use PHPUnit\Util\Filter; @@ -106,6 +106,18 @@ class TestSuite implements IteratorAggregate, Reorderable, Test continue; } + if ((new HookMethods)->isHookMethod($method)) { + Event\Facade::emitter()->testRunnerTriggeredPhpunitWarning( + sprintf( + 'Method %s::%s() cannot be used both as a hook method and as a test method', + $class->getName(), + $method->getName(), + ), + ); + + continue; + } + $testSuite->addTestMethod($class, $method, $groups); } @@ -146,12 +158,6 @@ class TestSuite implements IteratorAggregate, Reorderable, Test assert($test instanceof TestCase || $test instanceof PhptTestCase); - $class = new ReflectionClass($test); - - if ($class->isAbstract()) { - return; - } - $this->tests[] = $test; $this->clearCaches(); @@ -317,7 +323,6 @@ class TestSuite implements IteratorAggregate, Reorderable, Test } /** - * @throws CodeCoverageException * @throws Event\RuntimeException * @throws Exception * @throws InvalidArgumentException @@ -442,8 +447,10 @@ class TestSuite implements IteratorAggregate, Reorderable, Test } foreach ($this->tests as $test) { - if (!($test instanceof Reorderable)) { + if (!$test instanceof Reorderable) { + // @codeCoverageIgnoreStart continue; + // @codeCoverageIgnoreEnd } $this->providedTests = ExecutionOrderDependency::mergeUnique($this->providedTests, $test->provides()); @@ -462,8 +469,10 @@ class TestSuite implements IteratorAggregate, Reorderable, Test $this->requiredTests = []; foreach ($this->tests as $test) { - if (!($test instanceof Reorderable)) { + if (!$test instanceof Reorderable) { + // @codeCoverageIgnoreStart continue; + // @codeCoverageIgnoreEnd } $this->requiredTests = ExecutionOrderDependency::mergeUnique( @@ -502,11 +511,26 @@ class TestSuite implements IteratorAggregate, Reorderable, Test $className = $class->getName(); $methodName = $method->getName(); - assert(!empty($methodName)); - try { $test = (new TestBuilder)->build($class, $methodName, $groups); } catch (InvalidDataProviderException $e) { + if ($e->getProviderLabel() === null) { + $message = sprintf( + "The data provider specified for %s::%s is invalid\n%s", + $className, + $methodName, + $this->exceptionToString($e), + ); + } else { + $message = sprintf( + "The data provider %s specified for %s::%s is invalid\n%s", + $e->getProviderLabel(), + $className, + $methodName, + $this->exceptionToString($e), + ); + } + Event\Facade::emitter()->testTriggeredPhpunitError( new TestMethod( $className, @@ -520,12 +544,7 @@ class TestSuite implements IteratorAggregate, Reorderable, Test MetadataCollection::fromArray([]), Event\TestData\TestDataCollection::fromArray([]), ), - sprintf( - "The data provider specified for %s::%s is invalid\n%s", - $className, - $methodName, - $this->throwableToString($e), - ), + $message, ); return; @@ -577,27 +596,18 @@ class TestSuite implements IteratorAggregate, Reorderable, Test /** * @throws Exception */ - private function throwableToString(Throwable $t): string + private function exceptionToString(InvalidDataProviderException $e): string { - $message = $t->getMessage(); + $message = $e->getMessage(); - if (empty(trim($message))) { + if (trim($message) === '') { $message = ''; } - if ($t instanceof InvalidDataProviderException) { - return sprintf( - "%s\n%s", - $message, - Filter::stackTraceFromThrowableAsString($t), - ); - } - return sprintf( - "%s: %s\n%s", - $t::class, + "%s\n%s", $message, - Filter::stackTraceFromThrowableAsString($t), + Filter::stackTraceFromThrowableAsString($e), ); } @@ -658,17 +668,25 @@ class TestSuite implements IteratorAggregate, Reorderable, Test } if (isset($t)) { - $emitter->beforeFirstTestMethodErrored( - $this->name, - $calledMethod, - Event\Code\ThrowableBuilder::from($t), - ); + if ($t instanceof AssertionFailedError) { + $emitter->beforeFirstTestMethodFailed( + $this->name, + $calledMethod, + Event\Code\ThrowableBuilder::from($t), + ); + } else { + $emitter->beforeFirstTestMethodErrored( + $this->name, + $calledMethod, + Event\Code\ThrowableBuilder::from($t), + ); + } $result = false; } } - if (!empty($calledMethods)) { + if ($calledMethods !== []) { $emitter->beforeFirstTestMethodFinished( $this->name, ...$calledMethods, @@ -714,15 +732,23 @@ class TestSuite implements IteratorAggregate, Reorderable, Test $calledMethods[] = $calledMethod; if (isset($t)) { - $emitter->afterLastTestMethodErrored( - $this->name, - $calledMethod, - Event\Code\ThrowableBuilder::from($t), - ); + if ($t instanceof AssertionFailedError) { + $emitter->afterLastTestMethodFailed( + $this->name, + $calledMethod, + Event\Code\ThrowableBuilder::from($t), + ); + } else { + $emitter->afterLastTestMethodErrored( + $this->name, + $calledMethod, + Event\Code\ThrowableBuilder::from($t), + ); + } } } - if (!empty($calledMethods)) { + if ($calledMethods !== []) { $emitter->afterLastTestMethodFinished( $this->name, ...$calledMethods, diff --git a/vendor/phpunit/phpunit/src/Logging/EventLogger.php b/vendor/phpunit/phpunit/src/Logging/EventLogger.php index e7f029af9..738f30377 100644 --- a/vendor/phpunit/phpunit/src/Logging/EventLogger.php +++ b/vendor/phpunit/phpunit/src/Logging/EventLogger.php @@ -41,15 +41,19 @@ final readonly class EventLogger implements Tracer { $telemetryInfo = $this->telemetryInfo($event); $indentation = PHP_EOL . str_repeat(' ', strlen($telemetryInfo)); - $lines = preg_split('/\r\n|\r|\n/', $event->asString()); - - $flags = FILE_APPEND; + $flags = FILE_APPEND; if (!(PHP_OS_FAMILY === 'Windows' || PHP_OS_FAMILY === 'Darwin') || $this->path !== 'php://stdout') { $flags |= LOCK_EX; } + $lines = preg_split('/\r\n|\r|\n/', $event->asString()); + + if ($lines === false) { + $lines = []; + } + file_put_contents( $this->path, $telemetryInfo . implode($indentation, $lines) . PHP_EOL, diff --git a/vendor/phpunit/phpunit/src/Logging/JUnit/JunitXmlLogger.php b/vendor/phpunit/phpunit/src/Logging/JUnit/JunitXmlLogger.php index af58730e2..3a5ecc248 100644 --- a/vendor/phpunit/phpunit/src/Logging/JUnit/JunitXmlLogger.php +++ b/vendor/phpunit/phpunit/src/Logging/JUnit/JunitXmlLogger.php @@ -20,7 +20,6 @@ use DOMDocument; use DOMElement; use PHPUnit\Event\Code\Test; use PHPUnit\Event\Code\TestMethod; -use PHPUnit\Event\EventFacadeIsSealedException; use PHPUnit\Event\Facade; use PHPUnit\Event\InvalidArgumentException; use PHPUnit\Event\Telemetry\HRTime; @@ -33,8 +32,8 @@ use PHPUnit\Event\Test\PreparationStarted; use PHPUnit\Event\Test\Prepared; use PHPUnit\Event\Test\PrintedUnexpectedOutput; use PHPUnit\Event\Test\Skipped; +use PHPUnit\Event\TestSuite\Skipped as TestSuiteSkipped; use PHPUnit\Event\TestSuite\Started; -use PHPUnit\Event\UnknownSubscriberTypeException; use PHPUnit\TextUI\Output\Printer; use PHPUnit\Util\Xml; @@ -90,10 +89,6 @@ final class JunitXmlLogger private bool $preparationFailed = false; private ?string $unexpectedOutput = null; - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ public function __construct(Printer $printer, Facade $facade) { $this->printer = $printer; @@ -104,8 +99,13 @@ final class JunitXmlLogger public function flush(): void { - $this->printer->print($this->document->saveXML()); + $xml = $this->document->saveXML(); + if ($xml === false) { + $xml = ''; + } + + $this->printer->print($xml); $this->printer->flush(); } @@ -134,6 +134,17 @@ final class JunitXmlLogger $this->testSuiteTimes[$this->testSuiteLevel] = 0.0; } + public function testSuiteSkipped(TestSuiteSkipped $event): void + { + assert(isset($this->testSuiteSkipped[$this->testSuiteLevel])); + assert(isset($this->testSuiteTests[$this->testSuiteLevel])); + + $this->testSuiteSkipped[$this->testSuiteLevel] += $event->testSuite()->count(); + $this->testSuiteTests[$this->testSuiteLevel] += $event->testSuite()->count(); + + $this->testSuiteFinished(); + } + public function testSuiteFinished(): void { $this->testSuites[$this->testSuiteLevel]->setAttribute( @@ -188,6 +199,11 @@ final class JunitXmlLogger $this->preparationFailed = false; } + public function testPreparationErrored(): void + { + $this->preparationFailed = true; + } + public function testPreparationFailed(): void { $this->preparationFailed = true; @@ -296,16 +312,14 @@ final class JunitXmlLogger $this->unexpectedOutput = null; } - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ private function registerSubscribers(Facade $facade): void { $facade->registerSubscribers( new TestSuiteStartedSubscriber($this), + new TestSuiteSkippedSubscriber($this), new TestSuiteFinishedSubscriber($this), new TestPreparationStartedSubscriber($this), + new TestPreparationErroredSubscriber($this), new TestPreparationFailedSubscriber($this), new TestPreparedSubscriber($this), new TestPrintedUnexpectedOutputSubscriber($this), diff --git a/vendor/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestPreparationErroredSubscriber.php b/vendor/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestPreparationErroredSubscriber.php new file mode 100644 index 000000000..c6fb388f8 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestPreparationErroredSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\JUnit; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\PreparationErrored; +use PHPUnit\Event\Test\PreparationErroredSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestPreparationErroredSubscriber extends Subscriber implements PreparationErroredSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(PreparationErrored $event): void + { + $this->logger()->testPreparationErrored(); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/SoapExtensionNotAvailableException.php b/vendor/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestSuiteSkippedSubscriber.php similarity index 60% rename from vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/SoapExtensionNotAvailableException.php rename to vendor/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestSuiteSkippedSubscriber.php index f6f513b8f..93c67dea0 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/SoapExtensionNotAvailableException.php +++ b/vendor/phpunit/phpunit/src/Logging/JUnit/Subscriber/TestSuiteSkippedSubscriber.php @@ -7,19 +7,20 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace PHPUnit\Framework\MockObject\Generator; +namespace PHPUnit\Logging\JUnit; + +use PHPUnit\Event\TestSuite\Skipped; +use PHPUnit\Event\TestSuite\SkippedSubscriber; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit * * @internal This class is not covered by the backward compatibility promise for PHPUnit */ -final class SoapExtensionNotAvailableException extends \PHPUnit\Framework\Exception implements Exception +final readonly class TestSuiteSkippedSubscriber extends Subscriber implements SkippedSubscriber { - public function __construct() + public function notify(Skipped $event): void { - parent::__construct( - 'The SOAP extension is required to generate a test double from WSDL', - ); + $this->logger()->testSuiteSkipped($event); } } diff --git a/vendor/sebastian/code-unit/src/exceptions/ReflectionException.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Exception/CannotOpenUriForWritingException.php similarity index 59% rename from vendor/sebastian/code-unit/src/exceptions/ReflectionException.php rename to vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Exception/CannotOpenUriForWritingException.php index 232012783..a8ad7eba5 100644 --- a/vendor/sebastian/code-unit/src/exceptions/ReflectionException.php +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Exception/CannotOpenUriForWritingException.php @@ -1,16 +1,16 @@ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace SebastianBergmann\CodeUnit; +namespace PHPUnit\Logging\OpenTestReporting; use RuntimeException; -final class ReflectionException extends RuntimeException implements Exception +final class CannotOpenUriForWritingException extends RuntimeException implements Exception { } diff --git a/vendor/sebastian/code-unit/src/exceptions/Exception.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Exception/Exception.php similarity index 62% rename from vendor/sebastian/code-unit/src/exceptions/Exception.php rename to vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Exception/Exception.php index 74d0eeef8..30766ae9f 100644 --- a/vendor/sebastian/code-unit/src/exceptions/Exception.php +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Exception/Exception.php @@ -1,16 +1,14 @@ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace SebastianBergmann\CodeUnit; +namespace PHPUnit\Logging\OpenTestReporting; -use Throwable; - -interface Exception extends Throwable +interface Exception extends \PHPUnit\Exception { } diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/InfrastructureInformationProvider.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/InfrastructureInformationProvider.php new file mode 100644 index 000000000..3ab7425f0 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/InfrastructureInformationProvider.php @@ -0,0 +1,186 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use const DIRECTORY_SEPARATOR; +use const PHP_OS_FAMILY; +use function assert; +use function explode; +use function fclose; +use function function_exists; +use function getenv; +use function gethostname; +use function is_resource; +use function php_uname; +use function posix_geteuid; +use function posix_getpwuid; +use function preg_split; +use function proc_close; +use function proc_open; +use function str_contains; +use function str_replace; +use function str_starts_with; +use function stream_get_contents; +use function trim; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class InfrastructureInformationProvider +{ + /** + * @return non-empty-string + */ + public function operatingSystem(): string + { + return php_uname(); + } + + /** + * @return non-empty-string + */ + public function hostName(): string + { + $candidate = gethostname(); + + if ($candidate === false) { + return 'unknown'; + } + + $candidate = trim($candidate); + + if ($candidate === '') { + return 'unknown'; + } + + return $candidate; + } + + /** + * @return non-empty-string + */ + public function userName(): string + { + if (function_exists('posix_getpwuid') && function_exists('posix_geteuid')) { + $candidate = trim(posix_getpwuid(posix_geteuid())['name']); + } elseif (PHP_OS_FAMILY === 'Windows') { + $candidate = trim((string) getenv('USERNAME')); + } + + if (!isset($candidate) || $candidate === '') { + return 'unknown'; + } + + return $candidate; + } + + /** + * @return array{originUrl: non-empty-string, branch: non-empty-string, commit: non-empty-string, clean: bool, status: string}|false + */ + public function gitInformation(): array|false + { + $buffer = $this->executeGitCommand('remote show -n'); + + if ($buffer === false) { + return false; + } + + if (!str_contains($buffer, 'origin')) { + return false; + } + + $buffer = $this->executeGitCommand('remote show -n origin'); + + if ($buffer === false) { + return false; + } + + $lines = preg_split("/\r\n|\n|\r/", $buffer); + + if (!isset($lines[1]) || !str_starts_with($lines[1], ' Fetch URL: ')) { + return false; + } + + $originUrl = trim(str_replace(' Fetch URL: ', '', $lines[1])); + + if (str_contains($originUrl, '@')) { + $originUrl = explode('@', $originUrl)[1]; + } + + $branch = $this->executeGitCommand('rev-parse --abbrev-ref HEAD'); + + if ($branch === false) { + return false; + } + + $commit = $this->executeGitCommand('rev-parse HEAD'); + + if ($commit === false) { + return false; + } + + $status = $this->executeGitCommand('status --porcelain'); + + if ($status === false) { + return false; + } + + return [ + 'originUrl' => $originUrl, + 'branch' => $branch, + 'commit' => $commit, + 'clean' => $status === '', + 'status' => $status, + ]; + } + + /** + * @return false|non-empty-string + */ + private function executeGitCommand(string $command): false|string + { + $command = 'git ' . $command; + + if (DIRECTORY_SEPARATOR === '/') { + $command = 'LC_ALL=en_US.UTF-8 ' . $command; + } + + $process = @proc_open( + $command, + [ + 1 => ['pipe', 'w'], + 2 => ['pipe', 'w'], + ], + $pipes, + ); + + if (!is_resource($process)) { + return false; + } + + assert(isset($pipes[1]) && is_resource($pipes[1])); + assert(isset($pipes[2]) && is_resource($pipes[2])); + + $result = trim((string) stream_get_contents($pipes[1])); + + fclose($pipes[1]); + fclose($pipes[2]); + + $returnCode = proc_close($process); + + if ($returnCode !== 0) { + return false; + } + + return $result; + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/OtrXmlLogger.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/OtrXmlLogger.php new file mode 100644 index 000000000..fe45f7409 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/OtrXmlLogger.php @@ -0,0 +1,472 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use const PHP_VERSION; +use const ZEND_THREAD_SAFE; +use function array_pop; +use function assert; +use function count; +use function error_get_last; +use function str_replace; +use DateTimeImmutable; +use DateTimeZone; +use PHPUnit\Event\Code\Test; +use PHPUnit\Event\Code\TestMethod; +use PHPUnit\Event\Code\Throwable; +use PHPUnit\Event\Facade; +use PHPUnit\Event\Test\AfterLastTestMethodErrored; +use PHPUnit\Event\Test\AfterLastTestMethodFailed; +use PHPUnit\Event\Test\BeforeFirstTestMethodErrored; +use PHPUnit\Event\Test\BeforeFirstTestMethodFailed; +use PHPUnit\Event\Test\Errored; +use PHPUnit\Event\Test\Failed; +use PHPUnit\Event\Test\MarkedIncomplete; +use PHPUnit\Event\Test\PreparationErrored; +use PHPUnit\Event\Test\PreparationFailed; +use PHPUnit\Event\Test\Prepared as TestStarted; +use PHPUnit\Event\Test\Skipped; +use PHPUnit\Event\TestSuite\Skipped as TestSuiteSkipped; +use PHPUnit\Event\TestSuite\Started as TestSuiteStarted; +use PHPUnit\Event\TestSuite\TestSuiteForTestClass; +use XMLWriter; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final class OtrXmlLogger +{ + private readonly XMLWriter $writer; + + /** + * @var non-negative-int + */ + private int $idSequence = 0; + + /** + * @var ?positive-int + */ + private ?int $parentId = null; + + /** + * @var list + */ + private array $parentIdStack = []; + + /** + * @var ?positive-int + */ + private ?int $testId = null; + private ?Throwable $parentErrored = null; + private ?Throwable $parentFailed = null; + private bool $alreadyFinished = false; + private bool $includeGitInformation; + + /** + * @param non-empty-string $uri + * + * @throws CannotOpenUriForWritingException + */ + public function __construct(Facade $facade, string $uri, bool $includeGitInformation) + { + $this->writer = new XMLWriter; + + if (@$this->writer->openUri($uri) === false) { + throw new CannotOpenUriForWritingException( + str_replace('XMLWriter::openUri(): ', '', error_get_last()['message']), + ); + } + + $this->writer->setIndent(true); + + $this->registerSubscribers($facade); + + $this->includeGitInformation = $includeGitInformation; + } + + public function testRunnerStarted(): void + { + $infrastructure = new InfrastructureInformationProvider; + $gitInformation = false; + + if ($this->includeGitInformation) { + $gitInformation = $infrastructure->gitInformation(); + } + + $this->writer->startDocument(); + + $this->writer->startElement('e:events'); + $this->writer->writeAttribute('xmlns', 'https://schemas.opentest4j.org/reporting/core/0.2.0'); + $this->writer->writeAttribute('xmlns:e', 'https://schemas.opentest4j.org/reporting/events/0.2.0'); + + if ($gitInformation !== false) { + $this->writer->writeAttribute('xmlns:git', 'https://schemas.opentest4j.org/reporting/git/0.2.0'); + } + + $this->writer->writeAttribute('xmlns:php', 'https://schema.phpunit.de/otr/php/0.0.1'); + $this->writer->writeAttribute('xmlns:phpunit', 'https://schema.phpunit.de/otr/phpunit/0.0.1'); + + $this->writer->startElement('infrastructure'); + $this->writer->writeElement('hostName', $infrastructure->hostName()); + $this->writer->writeElement('userName', $infrastructure->userName()); + $this->writer->writeElement('operatingSystem', $infrastructure->operatingSystem()); + + $this->writer->writeElement('php:phpVersion', PHP_VERSION); + $this->writer->writeElement('php:threadModel', ZEND_THREAD_SAFE ? 'ZTS' : 'NTS'); + + if ($gitInformation !== false) { + $this->writer->startElement('git:repository'); + $this->writer->writeAttribute('originUrl', $gitInformation['originUrl']); + $this->writer->endElement(); + + $this->writer->writeElement('git:branch', $gitInformation['branch']); + $this->writer->writeElement('git:commit', $gitInformation['commit']); + + $this->writer->startElement('git:status'); + $this->writer->writeAttribute('clean', $gitInformation['clean'] === true ? 'true' : 'false'); + $this->writer->writeCdata($gitInformation['status']); + $this->writer->endElement(); + } + + $this->writer->endElement(); + + $this->writer->flush(); + } + + public function testRunnerFinished(): void + { + $this->writer->endDocument(); + + $this->writer->flush(); + } + + public function testSuiteStarted(TestSuiteStarted $event): void + { + $id = $this->nextId(); + + $this->writer->startElement('e:started'); + $this->writer->writeAttribute('id', (string) $id); + + if ($this->parentId !== null) { + $this->writer->writeAttribute('parentId', (string) $this->parentId); + } + + $testSuite = $event->testSuite(); + + $this->writer->writeAttribute('name', $testSuite->name()); + $this->writer->writeAttribute('time', $this->timestamp()); + + if ($testSuite->isForTestClass()) { + assert($testSuite instanceof TestSuiteForTestClass); + + $this->writer->startElement('sources'); + + $this->writer->startElement('fileSource'); + $this->writer->writeAttribute('path', $testSuite->file()); + $this->writer->startElement('filePosition'); + $this->writer->writeAttribute('line', (string) $testSuite->line()); + $this->writer->endElement(); + $this->writer->endElement(); + + $this->writer->startElement('phpunit:classSource'); + $this->writer->writeAttribute('className', $testSuite->className()); + $this->writer->endElement(); + + $this->writer->endElement(); + } + + $this->writer->endElement(); + + $this->writer->flush(); + + $this->parentId = $id; + $this->parentIdStack[] = $id; + } + + public function testSuiteSkipped(TestSuiteSkipped $event): void + { + $this->writer->startElement('e:finished'); + $this->writer->writeAttribute('id', (string) $this->parentId); + $this->writer->writeAttribute('time', $this->timestamp()); + + $this->writer->startElement('result'); + $this->writer->writeAttribute('status', 'SKIPPED'); + $this->writer->writeElement('reason', $event->message()); + $this->writer->endElement(); + + $this->writer->endElement(); + + $this->writer->flush(); + + $this->reduceTestSuiteLevel(); + } + + public function testSuiteFinished(): void + { + $this->writer->startElement('e:finished'); + $this->writer->writeAttribute('id', (string) $this->parentId); + $this->writer->writeAttribute('time', $this->timestamp()); + + if ($this->parentErrored !== null) { + $this->writer->startElement('result'); + $this->writer->writeAttribute('status', 'ERRORED'); + $this->writer->writeElement('reason', $this->parentErrored->message()); + $this->writeThrowable($this->parentErrored, false); + $this->writer->endElement(); + } elseif ($this->parentFailed !== null) { + $this->writer->startElement('result'); + $this->writer->writeAttribute('status', 'FAILED'); + $this->writer->writeElement('reason', $this->parentFailed->message()); + $this->writeThrowable($this->parentFailed, true); + $this->writer->endElement(); + } + + $this->writer->endElement(); + + $this->writer->flush(); + + $this->parentErrored = null; + $this->parentFailed = null; + + $this->reduceTestSuiteLevel(); + } + + public function testPrepared(PreparationErrored|PreparationFailed|TestStarted $event): void + { + $this->testId = $this->nextId(); + + $this->writeTestStarted( + $event->test(), + $this->testId, + $this->parentId, + ); + } + + public function testFinished(): void + { + if (!$this->alreadyFinished) { + $this->writer->startElement('e:finished'); + $this->writer->writeAttribute('id', (string) $this->testId); + $this->writer->writeAttribute('time', $this->timestamp()); + $this->writer->startElement('result'); + $this->writer->writeAttribute('status', Status::Successful->value); + $this->writer->endElement(); + $this->writer->endElement(); + } + + $this->alreadyFinished = false; + $this->testId = null; + } + + public function testFailed(Failed $event): void + { + $this->writer->startElement('e:finished'); + $this->writer->writeAttribute('id', (string) $this->testId); + $this->writer->writeAttribute('time', $this->timestamp()); + $this->writer->startElement('result'); + $this->writer->writeAttribute('status', Status::Failed->value); + + $this->writer->writeElement('reason', $event->throwable()->message()); + $this->writeThrowable($event->throwable(), true); + + $this->writer->endElement(); + $this->writer->endElement(); + + $this->writer->flush(); + + $this->alreadyFinished = true; + } + + public function testErrored(Errored $event): void + { + $this->writer->startElement('e:finished'); + $this->writer->writeAttribute('id', (string) $this->testId); + $this->writer->writeAttribute('time', $this->timestamp()); + $this->writer->startElement('result'); + $this->writer->writeAttribute('status', Status::Errored->value); + + $this->writer->writeElement('reason', $event->throwable()->message()); + $this->writeThrowable($event->throwable(), false); + + $this->writer->endElement(); + $this->writer->endElement(); + + $this->writer->flush(); + + $this->alreadyFinished = true; + } + + public function testSkipped(Skipped $event): void + { + if ($this->testId === null) { + $this->testId = $this->nextId(); + + $this->writeTestStarted( + $event->test(), + $this->testId, + $this->parentId, + ); + } + + $this->writer->startElement('e:finished'); + $this->writer->writeAttribute('id', (string) $this->testId); + $this->writer->writeAttribute('time', $this->timestamp()); + $this->writer->startElement('result'); + $this->writer->writeAttribute('status', Status::Skipped->value); + + $this->writer->writeElement('reason', $event->message()); + + $this->writer->endElement(); + $this->writer->endElement(); + + $this->writer->flush(); + + $this->alreadyFinished = true; + } + + public function markTestIncomplete(MarkedIncomplete $event): void + { + $this->writer->startElement('e:finished'); + $this->writer->writeAttribute('id', (string) $this->testId); + $this->writer->writeAttribute('time', $this->timestamp()); + $this->writer->startElement('result'); + $this->writer->writeAttribute('status', Status::Aborted->value); + + $this->writer->writeElement('reason', $event->throwable()->message()); + $this->writeThrowable($event->throwable(), false); + + $this->writer->endElement(); + $this->writer->endElement(); + + $this->writer->flush(); + + $this->alreadyFinished = true; + } + + public function parentErrored(AfterLastTestMethodErrored|BeforeFirstTestMethodErrored $event): void + { + $this->parentErrored = $event->throwable(); + } + + public function parentFailed(AfterLastTestMethodFailed|BeforeFirstTestMethodFailed $event): void + { + $this->parentFailed = $event->throwable(); + } + + private function registerSubscribers(Facade $facade): void + { + $facade->registerSubscribers( + new TestRunnerStartedSubscriber($this), + new TestSuiteStartedSubscriber($this), + new TestSuiteSkippedSubscriber($this), + new BeforeFirstTestMethodErroredSubscriber($this), + new BeforeFirstTestMethodFailedSubscriber($this), + new AfterLastTestMethodErroredSubscriber($this), + new AfterLastTestMethodFailedSubscriber($this), + new TestPreparationErroredSubscriber($this), + new TestPreparationFailedSubscriber($this), + new TestPreparedSubscriber($this), + new TestAbortedSubscriber($this), + new TestErroredSubscriber($this), + new TestFailedSubscriber($this), + new TestSkippedSubscriber($this), + new TestFinishedSubscriber($this), + new TestSuiteFinishedSubscriber($this), + new TestRunnerFinishedSubscriber($this), + ); + } + + /** + * @param positive-int $id + * @param ?positive-int $parentId + */ + private function writeTestStarted(Test $test, int $id, ?int $parentId): void + { + $this->writer->startElement('e:started'); + $this->writer->writeAttribute('id', (string) $id); + + if ($parentId !== null) { + $this->writer->writeAttribute('parentId', (string) $parentId); + } + + $this->writer->writeAttribute('name', $test->name()); + $this->writer->writeAttribute('time', $this->timestamp()); + + $this->writer->startElement('sources'); + + $this->writer->startElement('fileSource'); + $this->writer->writeAttribute('path', $test->file()); + + if ($test->isTestMethod()) { + assert($test instanceof TestMethod); + + $this->writer->startElement('filePosition'); + $this->writer->writeAttribute('line', (string) $test->line()); + $this->writer->endElement(); + } + + $this->writer->endElement(); + + if ($test->isTestMethod()) { + assert($test instanceof TestMethod); + + $this->writer->startElement('phpunit:methodSource'); + $this->writer->writeAttribute('className', $test->className()); + $this->writer->writeAttribute('methodName', $test->methodName()); + $this->writer->endElement(); + } + + $this->writer->endElement(); + + $this->writer->endElement(); + + $this->writer->flush(); + } + + private function writeThrowable(Throwable $throwable, bool $assertionError): void + { + $this->writer->startElement('phpunit:throwable'); + $this->writer->writeAttribute('type', $throwable->className()); + $this->writer->writeAttribute('assertionError', $assertionError ? 'true' : 'false'); + $this->writer->writeCdata($throwable->asString()); + $this->writer->endElement(); + } + + /** + * @return non-empty-string + */ + private function timestamp(): string + { + return (new DateTimeImmutable('now', new DateTimeZone('UTC')))->format('Y-m-d\TH:i:s.u\Z'); + } + + /** + * @return positive-int + */ + private function nextId(): int + { + return ++$this->idSequence; + } + + private function reduceTestSuiteLevel(): void + { + array_pop($this->parentIdStack); + + if ($this->parentIdStack !== []) { + $this->parentId = $this->parentIdStack[count($this->parentIdStack) - 1]; + + return; + } + + $this->parentId = null; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/MockType.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Status.php similarity index 53% rename from vendor/phpunit/phpunit/src/Framework/MockObject/Generator/MockType.php rename to vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Status.php index 0626de399..4ff399b2c 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/MockType.php +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Status.php @@ -7,17 +7,18 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace PHPUnit\Framework\MockObject\Generator; +namespace PHPUnit\Logging\OpenTestReporting; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit * - * @internal This interface is not covered by the backward compatibility promise for PHPUnit + * @internal This enumeration is not covered by the backward compatibility promise for PHPUnit */ -interface MockType +enum Status: string { - /** - * @return class-string - */ - public function generate(): string; + case Aborted = 'ABORTED'; + case Errored = 'ERRORED'; + case Failed = 'FAILED'; + case Skipped = 'SKIPPED'; + case Successful = 'SUCCESSFUL'; } diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/AfterLastTestMethodErroredSubscriber.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/AfterLastTestMethodErroredSubscriber.php new file mode 100644 index 000000000..5b31f11cf --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/AfterLastTestMethodErroredSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\AfterLastTestMethodErrored; +use PHPUnit\Event\Test\AfterLastTestMethodErroredSubscriber as AfterLastTestMethodErroredSubscriberInterface; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class AfterLastTestMethodErroredSubscriber extends Subscriber implements AfterLastTestMethodErroredSubscriberInterface +{ + /** + * @throws InvalidArgumentException + */ + public function notify(AfterLastTestMethodErrored $event): void + { + $this->logger()->parentErrored($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/AfterLastTestMethodFailedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/AfterLastTestMethodFailedSubscriber.php new file mode 100644 index 000000000..340d26d73 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/AfterLastTestMethodFailedSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\AfterLastTestMethodFailed; +use PHPUnit\Event\Test\AfterLastTestMethodFailedSubscriber as AfterLastTestMethodFailedSubscriberInterface; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class AfterLastTestMethodFailedSubscriber extends Subscriber implements AfterLastTestMethodFailedSubscriberInterface +{ + /** + * @throws InvalidArgumentException + */ + public function notify(AfterLastTestMethodFailed $event): void + { + $this->logger()->parentFailed($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/BeforeFirstTestMethodErroredSubscriber.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/BeforeFirstTestMethodErroredSubscriber.php new file mode 100644 index 000000000..3fb8c1efc --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/BeforeFirstTestMethodErroredSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\BeforeFirstTestMethodErrored; +use PHPUnit\Event\Test\BeforeFirstTestMethodErroredSubscriber as BeforeFirstTestMethodErroredSubscriberInterface; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class BeforeFirstTestMethodErroredSubscriber extends Subscriber implements BeforeFirstTestMethodErroredSubscriberInterface +{ + /** + * @throws InvalidArgumentException + */ + public function notify(BeforeFirstTestMethodErrored $event): void + { + $this->logger()->parentErrored($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/BeforeFirstTestMethodFailedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/BeforeFirstTestMethodFailedSubscriber.php new file mode 100644 index 000000000..fad858cfe --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/BeforeFirstTestMethodFailedSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\BeforeFirstTestMethodFailed; +use PHPUnit\Event\Test\BeforeFirstTestMethodFailedSubscriber as BeforeFirstTestMethodFailedSubscriberInterface; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class BeforeFirstTestMethodFailedSubscriber extends Subscriber implements BeforeFirstTestMethodFailedSubscriberInterface +{ + /** + * @throws InvalidArgumentException + */ + public function notify(BeforeFirstTestMethodFailed $event): void + { + $this->logger()->parentFailed($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/OriginalConstructorInvocationRequiredException.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/Subscriber.php similarity index 60% rename from vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/OriginalConstructorInvocationRequiredException.php rename to vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/Subscriber.php index b284d94d8..84b71de67 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/OriginalConstructorInvocationRequiredException.php +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/Subscriber.php @@ -7,17 +7,24 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace PHPUnit\Framework\MockObject\Generator; +namespace PHPUnit\Logging\OpenTestReporting; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit * * @internal This class is not covered by the backward compatibility promise for PHPUnit */ -final class OriginalConstructorInvocationRequiredException extends \PHPUnit\Framework\Exception implements Exception +abstract readonly class Subscriber { - public function __construct() + private OtrXmlLogger $logger; + + public function __construct(OtrXmlLogger $logger) { - parent::__construct('Proxying to original methods requires invoking the original constructor'); + $this->logger = $logger; + } + + protected function logger(): OtrXmlLogger + { + return $this->logger; } } diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestAbortedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestAbortedSubscriber.php new file mode 100644 index 000000000..31376214a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestAbortedSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\MarkedIncomplete; +use PHPUnit\Event\Test\MarkedIncompleteSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestAbortedSubscriber extends Subscriber implements MarkedIncompleteSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(MarkedIncomplete $event): void + { + $this->logger()->markTestIncomplete($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Util/Cloner.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestErroredSubscriber.php similarity index 54% rename from vendor/phpunit/phpunit/src/Util/Cloner.php rename to vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestErroredSubscriber.php index ca8a6b436..1a8a40be9 100644 --- a/vendor/phpunit/phpunit/src/Util/Cloner.php +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestErroredSubscriber.php @@ -7,32 +7,24 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace PHPUnit\Util; +namespace PHPUnit\Logging\OpenTestReporting; -use Throwable; +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\Errored; +use PHPUnit\Event\Test\ErroredSubscriber; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit * * @internal This class is not covered by the backward compatibility promise for PHPUnit */ -final readonly class Cloner +final readonly class TestErroredSubscriber extends Subscriber implements ErroredSubscriber { /** - * @template OriginalType of object - * - * @param OriginalType $original - * - * @return OriginalType + * @throws InvalidArgumentException */ - public static function clone(object $original): object + public function notify(Errored $event): void { - try { - return clone $original; - - /** @phpstan-ignore catch.neverThrown */ - } catch (Throwable) { - return $original; - } + $this->logger()->testErrored($event); } } diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestFailedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestFailedSubscriber.php new file mode 100644 index 000000000..0b0caf971 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestFailedSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\Failed; +use PHPUnit\Event\Test\FailedSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestFailedSubscriber extends Subscriber implements FailedSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(Failed $event): void + { + $this->logger()->testFailed($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestFinishedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestFinishedSubscriber.php new file mode 100644 index 000000000..d05de8b5a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestFinishedSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\Finished; +use PHPUnit\Event\Test\FinishedSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestFinishedSubscriber extends Subscriber implements FinishedSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(Finished $event): void + { + $this->logger()->testFinished(); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparationErroredSubscriber.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparationErroredSubscriber.php new file mode 100644 index 000000000..6fb725628 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparationErroredSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\PreparationErrored; +use PHPUnit\Event\Test\PreparationErroredSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestPreparationErroredSubscriber extends Subscriber implements PreparationErroredSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(PreparationErrored $event): void + { + $this->logger()->testPrepared($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparationFailedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparationFailedSubscriber.php new file mode 100644 index 000000000..f0167508a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparationFailedSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\PreparationFailed; +use PHPUnit\Event\Test\PreparationFailedSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestPreparationFailedSubscriber extends Subscriber implements PreparationFailedSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(PreparationFailed $event): void + { + $this->logger()->testPrepared($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparedSubscriber.php new file mode 100644 index 000000000..9138f142b --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestPreparedSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\Prepared; +use PHPUnit\Event\Test\PreparedSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestPreparedSubscriber extends Subscriber implements PreparedSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(Prepared $event): void + { + $this->logger()->testPrepared($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestRunnerFinishedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestRunnerFinishedSubscriber.php new file mode 100644 index 000000000..d690ba567 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestRunnerFinishedSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\TestRunner\ExecutionFinished; +use PHPUnit\Event\TestRunner\ExecutionFinishedSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestRunnerFinishedSubscriber extends Subscriber implements ExecutionFinishedSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(ExecutionFinished $event): void + { + $this->logger()->testRunnerFinished(); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestRunnerStartedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestRunnerStartedSubscriber.php new file mode 100644 index 000000000..6aba01c96 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestRunnerStartedSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use PHPUnit\Event\Application\Started; +use PHPUnit\Event\Application\StartedSubscriber; +use PHPUnit\Event\InvalidArgumentException; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestRunnerStartedSubscriber extends Subscriber implements StartedSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(Started $event): void + { + $this->logger()->testRunnerStarted(); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSkippedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSkippedSubscriber.php new file mode 100644 index 000000000..32e67ca8c --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSkippedSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\Skipped; +use PHPUnit\Event\Test\SkippedSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestSkippedSubscriber extends Subscriber implements SkippedSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(Skipped $event): void + { + $this->logger()->testSkipped($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteFinishedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteFinishedSubscriber.php new file mode 100644 index 000000000..16ebf626c --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteFinishedSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\TestSuite\Finished; +use PHPUnit\Event\TestSuite\FinishedSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestSuiteFinishedSubscriber extends Subscriber implements FinishedSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(Finished $event): void + { + $this->logger()->testSuiteFinished(); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteSkippedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteSkippedSubscriber.php new file mode 100644 index 000000000..58691b613 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteSkippedSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\TestSuite\Skipped; +use PHPUnit\Event\TestSuite\SkippedSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestSuiteSkippedSubscriber extends Subscriber implements SkippedSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(Skipped $event): void + { + $this->logger()->testSuiteSkipped($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteStartedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteStartedSubscriber.php new file mode 100644 index 000000000..786780125 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/Subscriber/TestSuiteStartedSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\OpenTestReporting; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\TestSuite\Started; +use PHPUnit\Event\TestSuite\StartedSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestSuiteStartedSubscriber extends Subscriber implements StartedSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(Started $event): void + { + $this->logger()->testSuiteStarted($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/core-0.2.0.xsd b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/core-0.2.0.xsd new file mode 100644 index 000000000..170e20cae --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/core-0.2.0.xsd @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The media type of the file content, e.g. 'text/plain' or 'application/json', + see https://www.iana.org/assignments/media-types/media-types.xhtml. + For text files, the charset should be specified in the 'charset' attribute, + e.g. 'text/plain; charset=utf-8'. + + + + + + + + + + + + + + Typically 'stdout' or 'stderr' but may also be used for attaching other log output + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/events-0.2.0.xsd b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/events-0.2.0.xsd new file mode 100644 index 000000000..e5c37ccc3 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/events-0.2.0.xsd @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/git-0.2.0.xsd b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/git-0.2.0.xsd new file mode 100644 index 000000000..1a1dd6d6a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/git-0.2.0.xsd @@ -0,0 +1,69 @@ + + + + + + + + + the URL of the 'origin' remote of the Git repository + + + + + + + + + + + + + + + + + + + + the branch the HEAD commit is pointing to, if any + + + + + + + + + + + + the commit hash + + + + + + + + + + + + the output of `git status --porcelain`, potentially empty + + + + + whether the working directory clean contains no changes or untracked files + + + + + + + + + diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/otr.xsd b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/otr.xsd new file mode 100644 index 000000000..982dac4de --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/otr.xsd @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/php.xsd b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/php.xsd new file mode 100644 index 000000000..f880345d1 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/php.xsd @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/phpunit.xsd b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/phpunit.xsd new file mode 100644 index 000000000..0a0c00eda --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/OpenTestReporting/schema/phpunit.xsd @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationErroredSubscriber.php b/vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationErroredSubscriber.php new file mode 100644 index 000000000..0dac588b0 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationErroredSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\TeamCity; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\PreparationErrored; +use PHPUnit\Event\Test\PreparationErroredSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestPreparationErroredSubscriber extends Subscriber implements PreparationErroredSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(PreparationErrored $event): void + { + $this->logger()->testPreparationErrored(); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationFailedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationFailedSubscriber.php new file mode 100644 index 000000000..a42c67cc4 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationFailedSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\TeamCity; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\PreparationFailed; +use PHPUnit\Event\Test\PreparationFailedSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestPreparationFailedSubscriber extends Subscriber implements PreparationFailedSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(PreparationFailed $event): void + { + $this->logger()->testPreparationFailed(); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationStartedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationStartedSubscriber.php new file mode 100644 index 000000000..658545d60 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparationStartedSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\TeamCity; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\PreparationStarted; +use PHPUnit\Event\Test\PreparationStartedSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestPreparationStartedSubscriber extends Subscriber implements PreparationStartedSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(PreparationStarted $event): void + { + $this->logger()->testPreparationStarted($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparedSubscriber.php index 85476a059..ce42b320a 100644 --- a/vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparedSubscriber.php +++ b/vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestPreparedSubscriber.php @@ -21,6 +21,6 @@ final readonly class TestPreparedSubscriber extends Subscriber implements Prepar { public function notify(Prepared $event): void { - $this->logger()->testPrepared($event); + $this->logger()->testPrepared(); } } diff --git a/vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestSuiteBeforeFirstTestMethodFailedSubscriber.php b/vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestSuiteBeforeFirstTestMethodFailedSubscriber.php new file mode 100644 index 000000000..b0c3e2a27 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Logging/TeamCity/Subscriber/TestSuiteBeforeFirstTestMethodFailedSubscriber.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Logging\TeamCity; + +use PHPUnit\Event\InvalidArgumentException; +use PHPUnit\Event\Test\BeforeFirstTestMethodFailed; +use PHPUnit\Event\Test\BeforeFirstTestMethodFailedSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestSuiteBeforeFirstTestMethodFailedSubscriber extends Subscriber implements BeforeFirstTestMethodFailedSubscriber +{ + /** + * @throws InvalidArgumentException + */ + public function notify(BeforeFirstTestMethodFailed $event): void + { + $this->logger()->beforeFirstTestMethodFailed($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Logging/TeamCity/TeamCityLogger.php b/vendor/phpunit/phpunit/src/Logging/TeamCity/TeamCityLogger.php index 1e9f09be1..45e2434ef 100644 --- a/vendor/phpunit/phpunit/src/Logging/TeamCity/TeamCityLogger.php +++ b/vendor/phpunit/phpunit/src/Logging/TeamCity/TeamCityLogger.php @@ -20,24 +20,23 @@ use function stripos; use PHPUnit\Event\Code\TestMethod; use PHPUnit\Event\Code\Throwable; use PHPUnit\Event\Event; -use PHPUnit\Event\EventFacadeIsSealedException; use PHPUnit\Event\Facade; use PHPUnit\Event\InvalidArgumentException; use PHPUnit\Event\Telemetry\HRTime; use PHPUnit\Event\Test\BeforeFirstTestMethodErrored; +use PHPUnit\Event\Test\BeforeFirstTestMethodFailed; use PHPUnit\Event\Test\ConsideredRisky; use PHPUnit\Event\Test\Errored; use PHPUnit\Event\Test\Failed; use PHPUnit\Event\Test\Finished; use PHPUnit\Event\Test\MarkedIncomplete; -use PHPUnit\Event\Test\Prepared; +use PHPUnit\Event\Test\PreparationStarted; use PHPUnit\Event\Test\Skipped; use PHPUnit\Event\TestSuite\Finished as TestSuiteFinished; use PHPUnit\Event\TestSuite\Skipped as TestSuiteSkipped; use PHPUnit\Event\TestSuite\Started as TestSuiteStarted; use PHPUnit\Event\TestSuite\TestSuiteForTestClass; use PHPUnit\Event\TestSuite\TestSuiteForTestMethodWithDataProvider; -use PHPUnit\Event\UnknownSubscriberTypeException; use PHPUnit\Framework\Exception as FrameworkException; use PHPUnit\TextUI\Output\Printer; @@ -52,11 +51,10 @@ final class TeamCityLogger private bool $isSummaryTestCountPrinted = false; private ?HRTime $time = null; private ?int $flowId = null; + private bool $testStartedEmitted = false; + private bool $prepared = false; + private bool $preparationFailed = false; - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ public function __construct(Printer $printer, Facade $facade) { $this->printer = $printer; @@ -118,7 +116,7 @@ final class TeamCityLogger $this->writeMessage('testSuiteFinished', $parameters); } - public function testPrepared(Prepared $event): void + public function testPreparationStarted(PreparationStarted $event): void { $test = $event->test(); @@ -139,7 +137,25 @@ final class TeamCityLogger $this->writeMessage('testStarted', $parameters); - $this->time = $event->telemetryInfo()->time(); + $this->time = $event->telemetryInfo()->time(); + $this->testStartedEmitted = true; + $this->prepared = false; + $this->preparationFailed = false; + } + + public function testPreparationErrored(): void + { + $this->preparationFailed = true; + } + + public function testPreparationFailed(): void + { + $this->preparationFailed = true; + } + + public function testPrepared(): void + { + $this->prepared = true; } /** @@ -162,6 +178,8 @@ final class TeamCityLogger 'duration' => $this->duration($event), ], ); + + $this->writeTestFinishedIfPreparationDidNotComplete($event); } /** @@ -181,6 +199,8 @@ final class TeamCityLogger $parameters['duration'] = $this->duration($event); $this->writeMessage('testIgnored', $parameters); + + $this->writeTestFinishedIfPreparationDidNotComplete($event); } /** @@ -208,19 +228,23 @@ final class TeamCityLogger */ public function beforeFirstTestMethodErrored(BeforeFirstTestMethodErrored $event): void { - if ($this->time === null) { - $this->time = $event->telemetryInfo()->time(); - } + $this->writeBeforeFirstTestMethodHookFailure( + $event, + $event->testClassName(), + $event->throwable(), + ); + } - $parameters = [ - 'name' => $event->testClassName(), - 'message' => $this->message($event->throwable()), - 'details' => $this->details($event->throwable()), - 'duration' => $this->duration($event), - ]; - - $this->writeMessage('testFailed', $parameters); - $this->writeMessage('testSuiteFinished', $parameters); + /** + * @throws InvalidArgumentException + */ + public function beforeFirstTestMethodFailed(BeforeFirstTestMethodFailed $event): void + { + $this->writeBeforeFirstTestMethodHookFailure( + $event, + $event->testClassName(), + $event->throwable(), + ); } /** @@ -241,6 +265,8 @@ final class TeamCityLogger 'duration' => $this->duration($event), ], ); + + $this->writeTestFinishedIfPreparationDidNotComplete($event); } /** @@ -268,6 +294,8 @@ final class TeamCityLogger } $this->writeMessage('testFailed', $parameters); + + $this->writeTestFinishedIfPreparationDidNotComplete($event); } /** @@ -297,6 +325,10 @@ final class TeamCityLogger */ public function testFinished(Finished $event): void { + if (!$this->testStartedEmitted) { + return; + } + $this->writeMessage( 'testFinished', [ @@ -305,7 +337,10 @@ final class TeamCityLogger ], ); - $this->time = null; + $this->time = null; + $this->testStartedEmitted = false; + $this->prepared = false; + $this->preparationFailed = false; } public function flush(): void @@ -313,15 +348,14 @@ final class TeamCityLogger $this->printer->flush(); } - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ private function registerSubscribers(Facade $facade): void { $facade->registerSubscribers( new TestSuiteStartedSubscriber($this), new TestSuiteFinishedSubscriber($this), + new TestPreparationStartedSubscriber($this), + new TestPreparationErroredSubscriber($this), + new TestPreparationFailedSubscriber($this), new TestPreparedSubscriber($this), new TestFinishedSubscriber($this), new TestErroredSubscriber($this), @@ -332,9 +366,80 @@ final class TeamCityLogger new TestConsideredRiskySubscriber($this), new TestRunnerExecutionFinishedSubscriber($this), new TestSuiteBeforeFirstTestMethodErroredSubscriber($this), + new TestSuiteBeforeFirstTestMethodFailedSubscriber($this), ); } + /** + * @throws InvalidArgumentException + */ + private function writeBeforeFirstTestMethodHookFailure(Event $event, string $name, Throwable $throwable): void + { + if ($this->time === null) { + $this->time = $event->telemetryInfo()->time(); + } + + $this->writeMessage( + 'testStarted', + [ + 'name' => $name, + ], + ); + + $parameters = [ + 'name' => $name, + 'message' => $this->message($throwable), + 'details' => $this->details($throwable), + 'duration' => $this->duration($event), + ]; + + $this->writeMessage('testFailed', $parameters); + + $this->writeMessage( + 'testFinished', + [ + 'name' => $name, + 'duration' => $this->duration($event), + ], + ); + + $this->writeMessage( + 'testSuiteFinished', + [ + 'name' => $name, + ], + ); + + $this->time = null; + } + + /** + * @throws InvalidArgumentException + */ + private function writeTestFinishedIfPreparationDidNotComplete(Errored|Failed|MarkedIncomplete|Skipped $event): void + { + if (!$this->testStartedEmitted) { + return; + } + + if ($this->prepared && !$this->preparationFailed) { + return; + } + + $this->writeMessage( + 'testFinished', + [ + 'name' => $event->test()->name(), + 'duration' => $this->duration($event), + ], + ); + + $this->time = null; + $this->testStartedEmitted = false; + $this->prepared = false; + $this->preparationFailed = false; + } + private function setFlowId(): void { if (stripos(ini_get('disable_functions'), 'getmypid') === false) { @@ -402,7 +507,7 @@ final class TeamCityLogger $buffer = $throwable->className(); - if (!empty($throwable->message())) { + if ($throwable->message() !== '') { $buffer .= ': ' . $throwable->message(); } diff --git a/vendor/phpunit/phpunit/src/Logging/TestDox/HtmlRenderer.php b/vendor/phpunit/phpunit/src/Logging/TestDox/HtmlRenderer.php index ccf9f9b0d..f3d2dfbab 100644 --- a/vendor/phpunit/phpunit/src/Logging/TestDox/HtmlRenderer.php +++ b/vendor/phpunit/phpunit/src/Logging/TestDox/HtmlRenderer.php @@ -9,6 +9,9 @@ */ namespace PHPUnit\Logging\TestDox; +use const ENT_QUOTES; +use const ENT_SUBSTITUTE; +use function htmlspecialchars; use function sprintf; /** @@ -18,10 +21,7 @@ use function sprintf; */ final readonly class HtmlRenderer { - /** - * @var string - */ - private const PAGE_HEADER = <<<'EOT' + private const string PAGE_HEADER = <<<'EOT' @@ -76,51 +76,42 @@ final readonly class HtmlRenderer EOT; - - /** - * @var string - */ - private const CLASS_HEADER = <<<'EOT' + private const string CLASS_HEADER = <<<'EOT'

%s

    EOT; - - /** - * @var string - */ - private const CLASS_FOOTER = <<<'EOT' + private const string CLASS_FOOTER = <<<'EOT'
EOT; - - /** - * @var string - */ - private const PAGE_FOOTER = <<<'EOT' + private const string PAGE_FOOTER = <<<'EOT' EOT; /** - * @param array $tests + * @param array $tests */ public function render(array $tests): string { $buffer = self::PAGE_HEADER; - foreach ($tests as $prettifiedClassName => $_tests) { + foreach ($tests as $_tests) { $buffer .= sprintf( self::CLASS_HEADER, - $prettifiedClassName, + htmlspecialchars( + $_tests->asArray()[0]->test()->testDox()->prettifiedClassName(), + ENT_QUOTES | ENT_SUBSTITUTE, + ), ); foreach ($this->reduce($_tests) as $prettifiedMethodName => $outcome) { $buffer .= sprintf( "
  • %s
  • \n", $outcome, - $prettifiedMethodName, + htmlspecialchars($prettifiedMethodName, ENT_QUOTES | ENT_SUBSTITUTE), ); } diff --git a/vendor/phpunit/phpunit/src/Logging/TestDox/NamePrettifier.php b/vendor/phpunit/phpunit/src/Logging/TestDox/NamePrettifier.php index 4c20c7ad6..f96096243 100644 --- a/vendor/phpunit/phpunit/src/Logging/TestDox/NamePrettifier.php +++ b/vendor/phpunit/phpunit/src/Logging/TestDox/NamePrettifier.php @@ -9,6 +9,7 @@ */ namespace PHPUnit\Logging\TestDox; +use const PHP_EOL; use function array_key_exists; use function array_keys; use function array_map; @@ -27,6 +28,7 @@ use function is_scalar; use function method_exists; use function preg_quote; use function preg_replace; +use function preg_replace_callback_array; use function rtrim; use function sprintf; use function str_contains; @@ -35,17 +37,23 @@ use function str_replace; use function str_starts_with; use function strlen; use function strtolower; -use function strtoupper; use function substr; use function trim; +use function ucfirst; +use PHPUnit\Event\Code\TestMethodBuilder; +use PHPUnit\Event\Facade as EventFacade; use PHPUnit\Framework\TestCase; use PHPUnit\Metadata\Parser\Registry as MetadataRegistry; use PHPUnit\Metadata\TestDox; +use PHPUnit\Metadata\TestDoxFormatter; use PHPUnit\Util\Color; use PHPUnit\Util\Exporter; +use PHPUnit\Util\Filter; +use PHPUnit\Util\Sanitizer; use ReflectionEnum; use ReflectionMethod; use ReflectionObject; +use Throwable; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit @@ -59,6 +67,16 @@ final class NamePrettifier */ private array $strings = []; + /** + * @var array + */ + private array $prettifiedTestCases = []; + + /** + * @var array + */ + private array $erroredFormatters = []; + /** * @param class-string $className */ @@ -83,17 +101,11 @@ final class NamePrettifier $className = substr($className, 0, strlen($className) - strlen('Test')); } - if (str_starts_with($className, 'Tests')) { - $className = substr($className, strlen('Tests')); - } elseif (str_starts_with($className, 'Test')) { - $className = substr($className, strlen('Test')); - } - - if (empty($className)) { + if ($className === '') { $className = 'UnnamedTests'; } - if (!empty($parts)) { + if ($parts !== []) { $parts[] = $className; $fullyQualifiedName = implode('\\', $parts); } else { @@ -134,7 +146,7 @@ final class NamePrettifier return ''; } - $name[0] = strtoupper($name[0]); + $name = ucfirst($name); $noUnderscore = str_replace('_', ' ', $name); @@ -142,70 +154,60 @@ final class NamePrettifier return trim($noUnderscore); } - $wasNumeric = false; - - $buffer = ''; - - $len = strlen($name); - - for ($i = 0; $i < $len; $i++) { - if ($i > 0 && $name[$i] >= 'A' && $name[$i] <= 'Z') { - $buffer .= ' ' . strtolower($name[$i]); - } else { - $isNumeric = $name[$i] >= '0' && $name[$i] <= '9'; - - if (!$wasNumeric && $isNumeric) { - $buffer .= ' '; - $wasNumeric = true; - } - - if ($wasNumeric && !$isNumeric) { - $wasNumeric = false; - } - - $buffer .= $name[$i]; - } - } + $buffer = preg_replace_callback_array( + [ + '/(?!^)([A-Z])/' => static fn (array $matches) => ' ' . strtolower($matches[1]), + '/(\d+)/' => static fn (array $matches) => ' ' . $matches[1], + ], + $name, + ); return trim($buffer); } public function prettifyTestCase(TestCase $test, bool $colorize): string { - $annotationWithPlaceholders = false; - $methodLevelTestDox = MetadataRegistry::parser()->forMethod($test::class, $test->name())->isTestDox()->isMethodLevel(); + $key = $test::class . '#' . $test->name(); - if ($methodLevelTestDox->isNotEmpty()) { - $methodLevelTestDox = $methodLevelTestDox->asArray()[0]; + if ($test->usesDataProvider()) { + $key .= '#' . $test->dataName(); + } - assert($methodLevelTestDox instanceof TestDox); + if ($colorize) { + $key .= '#colorize'; + } - $result = $methodLevelTestDox->text(); + if (isset($this->prettifiedTestCases[$key])) { + return $this->prettifiedTestCases[$key]; + } - if (str_contains($result, '$')) { - $annotation = $result; - $providedData = $this->mapTestMethodParameterNamesToProvidedDataValues($test, $colorize); + $metadataCollection = MetadataRegistry::parser()->forMethod($test::class, $test->name()); + $testDox = $metadataCollection->isTestDox()->isMethodLevel(); + $callback = $metadataCollection->isTestDoxFormatter(); + $isCustomized = false; - $variables = array_map( - static fn (string $variable): string => sprintf( - '/%s(?=\b)/', - preg_quote($variable, '/'), - ), - array_keys($providedData), - ); + if ($testDox->isNotEmpty()) { + $testDox = $testDox->asArray()[0]; - $result = preg_replace($variables, $providedData, $annotation); + assert($testDox instanceof TestDox); - $annotationWithPlaceholders = true; - } + [$result, $isCustomized] = $this->processTestDox($test, $testDox, $colorize); + } elseif ($callback->isNotEmpty()) { + $callback = $callback->asArray()[0]; + + assert($callback instanceof TestDoxFormatter); + + [$result, $isCustomized] = $this->processTestDoxFormatter($test, $callback); } else { $result = $this->prettifyTestMethodName($test->name()); } - if (!$annotationWithPlaceholders && $test->usesDataProvider()) { + if (!$isCustomized && $test->usesDataProvider()) { $result .= $this->prettifyDataSet($test, $colorize); } + $this->prettifiedTestCases[$key] = $result; + return $result; } @@ -219,7 +221,12 @@ final class NamePrettifier return Color::dim(' with data set ') . Color::colorize('fg-cyan', (string) $test->dataName()); } - return Color::dim(' with ') . Color::colorize('fg-cyan', Color::visualizeWhitespace($test->dataName())); + return Color::dim(' with ') . Color::colorize( + 'fg-cyan', + Color::visualizeWhitespace( + Sanitizer::sanitizeBidirectionalControlCharacters($test->dataName()), + ), + ); } /** @@ -233,17 +240,29 @@ final class NamePrettifier $reflector = new ReflectionMethod($test::class, $test->name()); $providedData = []; - $providedDataValues = array_values($test->providedData()); + $providedDataValues = $test->providedData(); $i = 0; - $providedData['$_dataName'] = $test->dataName(); + $dataName = $test->dataName(); + + if (is_int($dataName)) { + $providedData['$_dataName'] = $dataName; + } else { + $providedData['$_dataName'] = Sanitizer::sanitizeBidirectionalControlCharacters($dataName); + } foreach ($reflector->getParameters() as $parameter) { - if (!array_key_exists($i, $providedDataValues) && $parameter->isDefaultValueAvailable()) { - $providedDataValues[$i] = $parameter->getDefaultValue(); + if (array_key_exists($parameter->getName(), $providedDataValues)) { + $value = $providedDataValues[$parameter->getName()]; + } elseif (array_key_exists($i, $providedDataValues)) { + $value = $providedDataValues[$i]; + } elseif ($parameter->isDefaultValueAvailable()) { + $value = $parameter->getDefaultValue(); + } else { + $value = null; } - $value = $providedDataValues[$i++] ?? null; + $i++; if (is_object($value)) { $value = $this->objectToString($value); @@ -269,12 +288,16 @@ final class NamePrettifier } } - $providedData['$' . $parameter->getName()] = str_replace('$', '\\$', $value); + $providedData['$' . $parameter->getName()] = str_replace( + '$', + '\\$', + Sanitizer::sanitizeBidirectionalControlCharacters($value), + ); } if ($colorize) { $providedData = array_map( - static fn ($value) => Color::colorize('fg-cyan', Color::visualizeWhitespace((string) $value, true)), + static fn (mixed $value) => Color::colorize('fg-cyan', Color::visualizeWhitespace((string) $value, true)), $providedData, ); } @@ -305,4 +328,114 @@ final class NamePrettifier return $value::class; } + + /** + * @return array{0: string, 1: bool} + */ + private function processTestDox(TestCase $test, TestDox $testDox, bool $colorize): array + { + $placeholdersUsed = false; + + $result = $testDox->text(); + + if (str_contains($result, '$')) { + $annotation = $result; + $providedData = $this->mapTestMethodParameterNamesToProvidedDataValues($test, $colorize); + + $variables = array_map( + static fn (string $variable): string => sprintf( + '/%s(?=\b)/', + preg_quote($variable, '/'), + ), + array_keys($providedData), + ); + + $result = preg_replace($variables, $providedData, $annotation); + + $placeholdersUsed = true; + } + + return [$result, $placeholdersUsed]; + } + + /** + * @return array{0: string, 1: bool} + */ + private function processTestDoxFormatter(TestCase $test, TestDoxFormatter $formatter): array + { + $className = $formatter->className(); + $methodName = $formatter->methodName(); + $formatterIdentifier = $className . '::' . $methodName; + + if (isset($this->erroredFormatters[$formatterIdentifier])) { + return [$this->prettifyTestMethodName($test->name()), false]; + } + + if (!method_exists($className, $methodName)) { + EventFacade::emitter()->testTriggeredPhpunitError( + TestMethodBuilder::fromTestCase($test, false), + sprintf( + 'Method %s::%s() cannot be used as a TestDox formatter because it does not exist', + $className, + $methodName, + ), + ); + + $this->erroredFormatters[$formatterIdentifier] = true; + + return [$this->prettifyTestMethodName($test->name()), false]; + } + + $reflector = new ReflectionMethod($className, $methodName); + + if (!$reflector->isPublic()) { + EventFacade::emitter()->testTriggeredPhpunitError( + TestMethodBuilder::fromTestCase($test, false), + sprintf( + 'Method %s::%s() cannot be used as a TestDox formatter because it is not public', + $className, + $methodName, + ), + ); + + $this->erroredFormatters[$formatterIdentifier] = true; + + return [$this->prettifyTestMethodName($test->name()), false]; + } + + if (!$reflector->isStatic()) { + EventFacade::emitter()->testTriggeredPhpunitError( + TestMethodBuilder::fromTestCase($test, false), + sprintf( + 'Method %s::%s() cannot be used as a TestDox formatter because it is not static', + $className, + $methodName, + ), + ); + + $this->erroredFormatters[$formatterIdentifier] = true; + + return [$this->prettifyTestMethodName($test->name()), false]; + } + + try { + return [$reflector->invokeArgs(null, array_values($test->providedData())), true]; + } catch (Throwable $t) { + EventFacade::emitter()->testTriggeredPhpunitError( + TestMethodBuilder::fromTestCase($test, false), + sprintf( + 'TestDox formatter %s::%s() triggered an error: %s%s%s', + $className, + $methodName, + $t->getMessage(), + PHP_EOL, + Filter::stackTraceFromThrowableAsString($t), + ), + ); + + $this->erroredFormatters[$formatterIdentifier] = true; + + return [$this->prettifyTestMethodName($test->name()), false]; + } + } } diff --git a/vendor/phpunit/phpunit/src/Logging/TestDox/PlainTextRenderer.php b/vendor/phpunit/phpunit/src/Logging/TestDox/PlainTextRenderer.php index db591ca9f..bf98896fe 100644 --- a/vendor/phpunit/phpunit/src/Logging/TestDox/PlainTextRenderer.php +++ b/vendor/phpunit/phpunit/src/Logging/TestDox/PlainTextRenderer.php @@ -19,14 +19,14 @@ use function sprintf; final readonly class PlainTextRenderer { /** - * @param array $tests + * @param array $tests */ public function render(array $tests): string { $buffer = ''; - foreach ($tests as $prettifiedClassName => $_tests) { - $buffer .= $prettifiedClassName . "\n"; + foreach ($tests as $_tests) { + $buffer .= $_tests->asArray()[0]->test()->testDox()->prettifiedClassName() . "\n"; foreach ($this->reduce($_tests) as $prettifiedMethodName => $outcome) { $buffer .= sprintf( diff --git a/vendor/phpunit/phpunit/src/Logging/TestDox/TestResult/TestResultCollector.php b/vendor/phpunit/phpunit/src/Logging/TestDox/TestResult/TestResultCollector.php index 629a816e7..32f8eb908 100644 --- a/vendor/phpunit/phpunit/src/Logging/TestDox/TestResult/TestResultCollector.php +++ b/vendor/phpunit/phpunit/src/Logging/TestDox/TestResult/TestResultCollector.php @@ -9,16 +9,14 @@ */ namespace PHPUnit\Logging\TestDox; -use function array_keys; use function array_merge; use function assert; use function is_subclass_of; -use function ksort; +use function uasort; use function uksort; use function usort; use PHPUnit\Event\Code\TestMethod; use PHPUnit\Event\Code\Throwable; -use PHPUnit\Event\EventFacadeIsSealedException; use PHPUnit\Event\Facade; use PHPUnit\Event\InvalidArgumentException; use PHPUnit\Event\Test\ConsideredRisky; @@ -38,7 +36,6 @@ use PHPUnit\Event\Test\PhpWarningTriggered; use PHPUnit\Event\Test\Prepared; use PHPUnit\Event\Test\Skipped; use PHPUnit\Event\Test\WarningTriggered; -use PHPUnit\Event\UnknownSubscriberTypeException; use PHPUnit\Framework\TestStatus\TestStatus; use PHPUnit\Logging\TestDox\TestResult as TestDoxTestMethod; use PHPUnit\TestRunner\IssueFilter; @@ -54,17 +51,13 @@ final class TestResultCollector private readonly IssueFilter $issueFilter; /** - * @var array> + * @var array> */ private array $tests = []; private ?TestStatus $status = null; private ?Throwable $throwable = null; private bool $prepared = false; - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ public function __construct(Facade $facade, IssueFilter $issueFilter) { $this->issueFilter = $issueFilter; @@ -73,13 +66,13 @@ final class TestResultCollector } /** - * @return array + * @return array */ public function testMethodsGroupedByClass(): array { $result = []; - foreach ($this->tests as $prettifiedClassName => $tests) { + foreach ($this->tests as $className => $tests) { $testsByDeclaringClass = []; foreach ($tests as $test) { @@ -92,9 +85,9 @@ final class TestResultCollector $testsByDeclaringClass[$declaringClassName][] = $test; } - foreach (array_keys($testsByDeclaringClass) as $declaringClassName) { + foreach ($testsByDeclaringClass as $declaringClassName) { usort( - $testsByDeclaringClass[$declaringClassName], + $declaringClassName, static function (TestDoxTestMethod $a, TestDoxTestMethod $b): int { return $a->test()->line() <=> $b->test()->line(); @@ -128,10 +121,17 @@ final class TestResultCollector $tests = array_merge($tests, $_tests); } - $result[$prettifiedClassName] = TestResultCollection::fromArray($tests); + $result[$className] = TestResultCollection::fromArray($tests); } - ksort($result); + uasort( + $result, + static function (TestResultCollection $a, TestResultCollection $b): int + { + return $a->asArray()[0]->test()->testDox()->prettifiedClassName() + <=> $b->asArray()[0]->test()->testDox()->prettifiedClassName(); + }, + ); return $result; } @@ -315,6 +315,10 @@ final class TestResultCollector return; } + if ($event->ignoredByTest()) { + return; + } + $this->updateTestStatus(TestStatus::warning()); } @@ -338,10 +342,6 @@ final class TestResultCollector $this->prepared = false; } - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ private function registerSubscribers(Facade $facade): void { $facade->registerSubscribers( @@ -377,11 +377,11 @@ final class TestResultCollector private function process(TestMethod $test): void { - if (!isset($this->tests[$test->testDox()->prettifiedClassName()])) { - $this->tests[$test->testDox()->prettifiedClassName()] = []; + if (!isset($this->tests[$test->className()])) { + $this->tests[$test->className()] = []; } - $this->tests[$test->testDox()->prettifiedClassName()][] = new TestDoxTestMethod( + $this->tests[$test->className()][] = new TestDoxTestMethod( $test, $this->status, $this->throwable, diff --git a/vendor/phpunit/phpunit/src/Metadata/After.php b/vendor/phpunit/phpunit/src/Metadata/After.php index 1f5b3f3b6..144136390 100644 --- a/vendor/phpunit/phpunit/src/Metadata/After.php +++ b/vendor/phpunit/phpunit/src/Metadata/After.php @@ -19,7 +19,7 @@ final readonly class After extends Metadata private int $priority; /** - * @param 0|1 $level + * @param int<0, 1> $level */ protected function __construct(int $level, int $priority) { diff --git a/vendor/phpunit/phpunit/src/Metadata/AfterClass.php b/vendor/phpunit/phpunit/src/Metadata/AfterClass.php index 92fe3e804..7dcb96fd7 100644 --- a/vendor/phpunit/phpunit/src/Metadata/AfterClass.php +++ b/vendor/phpunit/phpunit/src/Metadata/AfterClass.php @@ -19,7 +19,7 @@ final readonly class AfterClass extends Metadata private int $priority; /** - * @param 0|1 $level + * @param int<0, 1> $level */ protected function __construct(int $level, int $priority) { diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/GeneratedAsMockObject.php b/vendor/phpunit/phpunit/src/Metadata/AllowMockObjectsWithoutExpectations.php similarity index 64% rename from vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/GeneratedAsMockObject.php rename to vendor/phpunit/phpunit/src/Metadata/AllowMockObjectsWithoutExpectations.php index 7239221fa..cb6bbea41 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/GeneratedAsMockObject.php +++ b/vendor/phpunit/phpunit/src/Metadata/AllowMockObjectsWithoutExpectations.php @@ -7,16 +7,16 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace PHPUnit\Framework\MockObject; +namespace PHPUnit\Metadata; /** - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * @immutable * - * @internal This trait is not covered by the backward compatibility promise for PHPUnit + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ -trait GeneratedAsMockObject +final readonly class AllowMockObjectsWithoutExpectations extends Metadata { - public function __phpunit_wasGeneratedAsMockObject(): true + public function isAllowMockObjectsWithoutExpectations(): true { return true; } diff --git a/vendor/phpunit/phpunit/src/Metadata/Api/CodeCoverage.php b/vendor/phpunit/phpunit/src/Metadata/Api/CodeCoverage.php index ef2f24303..f6d0a9cec 100644 --- a/vendor/phpunit/phpunit/src/Metadata/Api/CodeCoverage.php +++ b/vendor/phpunit/phpunit/src/Metadata/Api/CodeCoverage.php @@ -10,32 +10,25 @@ namespace PHPUnit\Metadata\Api; use function assert; -use function class_exists; -use function count; -use function interface_exists; -use function sprintf; -use function str_starts_with; -use function trait_exists; -use PHPUnit\Framework\CodeCoverageException; -use PHPUnit\Framework\InvalidCoversTargetException; -use PHPUnit\Metadata\Covers; +use PHPUnit\Event\Facade as EventFacade; +use PHPUnit\Framework\TestCase; use PHPUnit\Metadata\CoversClass; -use PHPUnit\Metadata\CoversDefaultClass; +use PHPUnit\Metadata\CoversClassesThatExtendClass; +use PHPUnit\Metadata\CoversClassesThatImplementInterface; use PHPUnit\Metadata\CoversFunction; use PHPUnit\Metadata\CoversMethod; +use PHPUnit\Metadata\CoversNamespace; use PHPUnit\Metadata\CoversTrait; use PHPUnit\Metadata\Parser\Registry; -use PHPUnit\Metadata\Uses; use PHPUnit\Metadata\UsesClass; -use PHPUnit\Metadata\UsesDefaultClass; +use PHPUnit\Metadata\UsesClassesThatExtendClass; +use PHPUnit\Metadata\UsesClassesThatImplementInterface; use PHPUnit\Metadata\UsesFunction; use PHPUnit\Metadata\UsesMethod; +use PHPUnit\Metadata\UsesNamespace; use PHPUnit\Metadata\UsesTrait; -use ReflectionClass; -use SebastianBergmann\CodeUnit\CodeUnitCollection; -use SebastianBergmann\CodeUnit\Exception as CodeUnitException; -use SebastianBergmann\CodeUnit\InvalidCodeUnitException; -use SebastianBergmann\CodeUnit\Mapper; +use SebastianBergmann\CodeCoverage\Test\Target\Target; +use SebastianBergmann\CodeCoverage\Test\Target\TargetCollection; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit @@ -44,272 +37,135 @@ use SebastianBergmann\CodeUnit\Mapper; */ final class CodeCoverage { - /** - * @var array> - */ - private array $withParents = []; - /** * @param class-string $className * @param non-empty-string $methodName - * - * @throws CodeCoverageException - * - * @return array>|false */ - public function linesToBeCovered(string $className, string $methodName): array|false + public function coversTargets(string $className, string $methodName): TargetCollection { - if (!$this->shouldCodeCoverageBeCollectedFor($className, $methodName)) { - return false; - } - - $metadataForClass = Registry::parser()->forClass($className); - $classShortcut = null; - - if ($metadataForClass->isCoversDefaultClass()->isNotEmpty()) { - if (count($metadataForClass->isCoversDefaultClass()) > 1) { - throw new CodeCoverageException( - sprintf( - 'More than one @coversDefaultClass annotation for class or interface "%s"', - $className, - ), - ); - } - - $metadata = $metadataForClass->isCoversDefaultClass()->asArray()[0]; - - assert($metadata instanceof CoversDefaultClass); - - $classShortcut = $metadata->className(); - } - - $codeUnits = CodeUnitCollection::fromList(); - $mapper = new Mapper; + $targets = []; foreach (Registry::parser()->forClassAndMethod($className, $methodName) as $metadata) { - if (!$metadata->isCoversClass() && !$metadata->isCoversTrait() && !$metadata->isCoversMethod() && !$metadata->isCoversFunction() && !$metadata->isCovers()) { - continue; + if ($metadata->isCoversNamespace()) { + assert($metadata instanceof CoversNamespace); + + $targets[] = Target::forNamespace($metadata->namespace()); } - /** @phpstan-ignore booleanOr.alwaysTrue */ - assert($metadata instanceof CoversClass || $metadata instanceof CoversTrait || $metadata instanceof CoversMethod || $metadata instanceof CoversFunction || $metadata instanceof Covers); + if ($metadata->isCoversClass()) { + assert($metadata instanceof CoversClass); - if ($metadata->isCoversClass() || $metadata->isCoversTrait() || $metadata->isCoversMethod() || $metadata->isCoversFunction()) { - $codeUnits = $codeUnits->mergeWith($this->mapToCodeUnits($metadata)); - } elseif ($metadata->isCovers()) { - assert($metadata instanceof Covers); + $targets[] = Target::forClass($metadata->className()); + } - $target = $metadata->target(); + if ($metadata->isCoversClassesThatExtendClass()) { + assert($metadata instanceof CoversClassesThatExtendClass); - if (interface_exists($target)) { - throw new InvalidCoversTargetException( - sprintf( - 'Trying to @cover interface "%s".', - $target, - ), - ); - } + $targets[] = Target::forClassesThatExtendClass($metadata->className()); + } - if ($classShortcut !== null && str_starts_with($target, '::')) { - $target = $classShortcut . $target; - } + if ($metadata->isCoversClassesThatImplementInterface()) { + assert($metadata instanceof CoversClassesThatImplementInterface); - try { - $codeUnits = $codeUnits->mergeWith($mapper->stringToCodeUnits($target)); - } catch (InvalidCodeUnitException $e) { - throw new InvalidCoversTargetException( - sprintf( - '"@covers %s" is invalid', - $target, - ), - $e->getCode(), - $e, - ); - } + $targets[] = Target::forClassesThatImplementInterface($metadata->interfaceName()); + } + + if ($metadata->isCoversMethod()) { + assert($metadata instanceof CoversMethod); + + $targets[] = Target::forMethod($metadata->className(), $metadata->methodName()); + } + + if ($metadata->isCoversFunction()) { + assert($metadata instanceof CoversFunction); + + $targets[] = Target::forFunction($metadata->functionName()); + } + + if ($metadata->isCoversTrait()) { + assert($metadata instanceof CoversTrait); + + $targets[] = Target::forTrait($metadata->traitName()); } } - return $mapper->codeUnitsToSourceLines($codeUnits); - } - - /** - * @param class-string $className - * @param non-empty-string $methodName - * - * @throws CodeCoverageException - * - * @return array> - */ - public function linesToBeUsed(string $className, string $methodName): array - { - $metadataForClass = Registry::parser()->forClass($className); - $classShortcut = null; - - if ($metadataForClass->isUsesDefaultClass()->isNotEmpty()) { - if (count($metadataForClass->isUsesDefaultClass()) > 1) { - throw new CodeCoverageException( - sprintf( - 'More than one @usesDefaultClass annotation for class or interface "%s"', - $className, - ), - ); - } - - $metadata = $metadataForClass->isUsesDefaultClass()->asArray()[0]; - - assert($metadata instanceof UsesDefaultClass); - - $classShortcut = $metadata->className(); - } - - $codeUnits = CodeUnitCollection::fromList(); - $mapper = new Mapper; - - foreach (Registry::parser()->forClassAndMethod($className, $methodName) as $metadata) { - if (!$metadata->isUsesClass() && !$metadata->isUsesTrait() && !$metadata->isUsesMethod() && !$metadata->isUsesFunction() && !$metadata->isUses()) { - continue; - } - - /** @phpstan-ignore booleanOr.alwaysTrue */ - assert($metadata instanceof UsesClass || $metadata instanceof UsesTrait || $metadata instanceof UsesMethod || $metadata instanceof UsesFunction || $metadata instanceof Uses); - - if ($metadata->isUsesClass() || $metadata->isUsesTrait() || $metadata->isUsesMethod() || $metadata->isUsesFunction()) { - $codeUnits = $codeUnits->mergeWith($this->mapToCodeUnits($metadata)); - } elseif ($metadata->isUses()) { - assert($metadata instanceof Uses); - - $target = $metadata->target(); - - if ($classShortcut !== null && str_starts_with($target, '::')) { - $target = $classShortcut . $target; - } - - try { - $codeUnits = $codeUnits->mergeWith($mapper->stringToCodeUnits($target)); - } catch (InvalidCodeUnitException $e) { - throw new InvalidCoversTargetException( - sprintf( - '"@uses %s" is invalid', - $target, - ), - $e->getCode(), - $e, - ); - } - } - } - - return $mapper->codeUnitsToSourceLines($codeUnits); + return TargetCollection::fromArray($targets); } /** * @param class-string $className * @param non-empty-string $methodName */ - public function shouldCodeCoverageBeCollectedFor(string $className, string $methodName): bool + public function usesTargets(string $className, string $methodName): TargetCollection { - $metadataForClass = Registry::parser()->forClass($className); - $metadataForMethod = Registry::parser()->forMethod($className, $methodName); + $targets = []; + + foreach (Registry::parser()->forClassAndMethod($className, $methodName) as $metadata) { + if ($metadata->isUsesNamespace()) { + assert($metadata instanceof UsesNamespace); + + $targets[] = Target::forNamespace($metadata->namespace()); + } + + if ($metadata->isUsesClass()) { + assert($metadata instanceof UsesClass); + + $targets[] = Target::forClass($metadata->className()); + } + + if ($metadata->isUsesClassesThatExtendClass()) { + assert($metadata instanceof UsesClassesThatExtendClass); + + $targets[] = Target::forClassesThatExtendClass($metadata->className()); + } + + if ($metadata->isUsesClassesThatImplementInterface()) { + assert($metadata instanceof UsesClassesThatImplementInterface); + + $targets[] = Target::forClassesThatImplementInterface($metadata->interfaceName()); + } + + if ($metadata->isUsesMethod()) { + assert($metadata instanceof UsesMethod); + + $targets[] = Target::forMethod($metadata->className(), $metadata->methodName()); + } + + if ($metadata->isUsesFunction()) { + assert($metadata instanceof UsesFunction); + + $targets[] = Target::forFunction($metadata->functionName()); + } + + if ($metadata->isUsesTrait()) { + assert($metadata instanceof UsesTrait); + + $targets[] = Target::forTrait($metadata->traitName()); + } + } + + return TargetCollection::fromArray($targets); + } + + public function shouldCodeCoverageBeCollectedFor(TestCase $test): bool + { + $className = $test::class; + $methodName = $test->name(); + $parser = Registry::parser(); + + if ($parser->forMethod($className, $methodName)->isCoversNothing()->isNotEmpty()) { + EventFacade::emitter()->testTriggeredPhpunitDeprecation( + $test->valueObjectForEvents(), + 'Using #[CoversNothing] on a test method is deprecated, support for this will be removed in PHPUnit 13', + ); - if ($metadataForMethod->isCoversNothing()->isNotEmpty()) { return false; } - if ($metadataForMethod->isCovers()->isNotEmpty() || - $metadataForMethod->isCoversClass()->isNotEmpty() || - $metadataForMethod->isCoversFunction()->isNotEmpty()) { - return true; - } - - if ($metadataForClass->isCoversNothing()->isNotEmpty()) { + if ($parser->forClass($className)->isCoversNothing()->isNotEmpty()) { return false; } return true; } - - /** - * @throws InvalidCoversTargetException - */ - private function mapToCodeUnits(CoversClass|CoversFunction|CoversMethod|CoversTrait|UsesClass|UsesFunction|UsesMethod|UsesTrait $metadata): CodeUnitCollection - { - $mapper = new Mapper; - $names = $this->names($metadata); - - try { - if (count($names) === 1) { - return $mapper->stringToCodeUnits($names[0]); - } - - $codeUnits = CodeUnitCollection::fromList(); - - foreach ($names as $name) { - $codeUnits = $codeUnits->mergeWith( - $mapper->stringToCodeUnits($name), - ); - } - - return $codeUnits; - } catch (CodeUnitException $e) { - throw new InvalidCoversTargetException( - sprintf( - '%s is not a valid target for code coverage', - $metadata->asStringForCodeUnitMapper(), - ), - $e->getCode(), - $e, - ); - } - } - - /** - * @throws InvalidCoversTargetException - * - * @return non-empty-list - */ - private function names(CoversClass|CoversFunction|CoversMethod|CoversTrait|UsesClass|UsesFunction|UsesMethod|UsesTrait $metadata): array - { - $name = $metadata->asStringForCodeUnitMapper(); - $names = [$name]; - - if ($metadata->isCoversClass() || $metadata->isUsesClass()) { - if (isset($this->withParents[$name])) { - return $this->withParents[$name]; - } - - if (interface_exists($name)) { - throw new InvalidCoversTargetException( - sprintf( - 'Interface "%s" is not a valid target for code coverage', - $name, - ), - ); - } - - if (!(class_exists($name) || trait_exists($name))) { - throw new InvalidCoversTargetException( - sprintf( - '"%s" is not a valid target for code coverage', - $name, - ), - ); - } - - assert(class_exists($names[0]) || trait_exists($names[0])); - - $reflector = new ReflectionClass($name); - - while ($reflector = $reflector->getParentClass()) { - if (!$reflector->isUserDefined()) { - break; - } - - $names[] = $reflector->getName(); - } - - $this->withParents[$name] = $names; - } - - return $names; - } } diff --git a/vendor/phpunit/phpunit/src/Metadata/Api/DataProvider.php b/vendor/phpunit/phpunit/src/Metadata/Api/DataProvider.php index b496b6cbf..b3800ed74 100644 --- a/vendor/phpunit/phpunit/src/Metadata/Api/DataProvider.php +++ b/vendor/phpunit/phpunit/src/Metadata/Api/DataProvider.php @@ -9,34 +9,24 @@ */ namespace PHPUnit\Metadata\Api; -use const JSON_ERROR_NONE; -use const PREG_OFFSET_CAPTURE; use function array_key_exists; use function assert; -use function explode; +use function count; use function get_debug_type; use function is_array; use function is_int; +use function is_iterable; use function is_string; -use function json_decode; -use function json_last_error; -use function json_last_error_msg; -use function preg_match; -use function preg_replace; -use function rtrim; use function sprintf; -use function str_replace; -use function strlen; -use function substr; -use function trim; use PHPUnit\Event; +use PHPUnit\Event\Code\TestMethod; use PHPUnit\Framework\InvalidDataProviderException; +use PHPUnit\Framework\TestCase; use PHPUnit\Metadata\DataProvider as DataProviderMetadata; use PHPUnit\Metadata\MetadataCollection; use PHPUnit\Metadata\Parser\Registry as MetadataRegistry; use PHPUnit\Metadata\TestWith; use PHPUnit\Util\Test; -use ReflectionClass; use ReflectionMethod; use Throwable; @@ -48,12 +38,12 @@ use Throwable; final readonly class DataProvider { /** - * @param class-string $className - * @param non-empty-string $methodName + * @param class-string $className + * @param non-empty-string $methodName * * @throws InvalidDataProviderException * - * @return ?array> + * @return ?array */ public function providedData(string $className, string $methodName): ?array { @@ -62,65 +52,59 @@ final readonly class DataProvider $testWith = $metadataCollection->isTestWith(); if ($dataProvider->isEmpty() && $testWith->isEmpty()) { - return $this->dataProvidedByTestWithAnnotation($className, $methodName); + return null; } + $testMethod = new ReflectionMethod($className, $methodName); + if ($dataProvider->isNotEmpty()) { - $data = $this->dataProvidedByMethods($className, $methodName, $dataProvider); - } else { - $data = $this->dataProvidedByMetadata($testWith); - } - - if ($data === []) { - throw new InvalidDataProviderException( - 'Empty data set provided by data provider', - ); - } - - foreach ($data as $key => $value) { - if (!is_array($value)) { - throw new InvalidDataProviderException( - sprintf( - 'Data set %s is invalid, expected array but got %s', - is_int($key) ? '#' . $key : '"' . $key . '"', - get_debug_type($value), - ), - ); + if ($testWith->isNotEmpty()) { + $this->triggerWarningForMixingOfDataProviderAndTestWith($testMethod); } + + return $this->dataProvidedByMethods($className, $testMethod, $dataProvider); } - return $data; + return $this->dataProvidedByMetadata($testMethod, $testWith); } /** - * @param class-string $className - * @param non-empty-string $methodName + * @param class-string $testClassName * * @throws InvalidDataProviderException * - * @return array> + * @return array */ - private function dataProvidedByMethods(string $className, string $methodName, MetadataCollection $dataProvider): array + private function dataProvidedByMethods(string $testClassName, ReflectionMethod $testMethod, MetadataCollection $dataProvider): array { - $testMethod = new Event\Code\ClassMethod($className, $methodName); - $methodsCalled = []; - $result = []; + $testMethodValueObject = new Event\Code\ClassMethod( + $testClassName, + $testMethod->getName(), + ); + + $methodsCalled = []; + $result = []; + $testMethodNumberOfParameters = $testMethod->getNumberOfParameters(); + $testMethodIsNonVariadic = !$testMethod->isVariadic(); foreach ($dataProvider as $_dataProvider) { assert($_dataProvider instanceof DataProviderMetadata); - $dataProviderMethod = new Event\Code\ClassMethod($_dataProvider->className(), $_dataProvider->methodName()); + $providerLabel = $_dataProvider->className() . '::' . $_dataProvider->methodName(); + $dataProviderMethod = new Event\Code\ClassMethod($_dataProvider->className(), $_dataProvider->methodName()); + $validateArgumentCount = $testMethodIsNonVariadic && $_dataProvider->validateArgumentCount(); Event\Facade::emitter()->dataProviderMethodCalled( - $testMethod, + $testMethodValueObject, $dataProviderMethod, ); $methodsCalled[] = $dataProviderMethod; try { - $class = new ReflectionClass($_dataProvider->className()); - $method = $class->getMethod($_dataProvider->methodName()); + $method = new ReflectionMethod($_dataProvider->className(), $_dataProvider->methodName()); + $className = $_dataProvider->className(); + $methodName = $_dataProvider->methodName(); if (Test::isTestMethod($method)) { Event\Facade::emitter()->testRunnerTriggeredPhpunitWarning( @@ -128,8 +112,8 @@ final readonly class DataProvider 'Method %s::%s() used by test method %s::%s() is also a test method', $_dataProvider->className(), $_dataProvider->methodName(), - $className, - $methodName, + $testMethod->getDeclaringClass()->getName(), + $testMethod->getName(), ), ); } @@ -138,8 +122,8 @@ final readonly class DataProvider throw new InvalidDataProviderException( sprintf( 'Data Provider method %s::%s() is not public', - $_dataProvider->className(), - $_dataProvider->methodName(), + $className, + $methodName, ), ); } @@ -148,8 +132,8 @@ final readonly class DataProvider throw new InvalidDataProviderException( sprintf( 'Data Provider method %s::%s() is not static', - $_dataProvider->className(), - $_dataProvider->methodName(), + $className, + $methodName, ), ); } @@ -158,31 +142,36 @@ final readonly class DataProvider throw new InvalidDataProviderException( sprintf( 'Data Provider method %s::%s() expects an argument', - $_dataProvider->className(), - $_dataProvider->methodName(), + $className, + $methodName, ), ); } - $className = $_dataProvider->className(); - $methodName = $_dataProvider->methodName(); - $data = $className::$methodName(); + /** @phpstan-ignore staticMethod.dynamicName */ + $data = $className::$methodName(); + if (!is_iterable($data)) { + throw new InvalidDataProviderException( + sprintf( + 'Data Provider method %s::%s() does not return an iterable', + $className, + $methodName, + ), + ); + } + } catch (Throwable $e) { + Event\Facade::emitter()->dataProviderMethodFinished( + $testMethodValueObject, + ...$methodsCalled, + ); + + throw InvalidDataProviderException::forException($e, $providerLabel); + } + + try { foreach ($data as $key => $value) { - if (is_int($key)) { - $result[] = $value; - } elseif (is_string($key)) { - if (array_key_exists($key, $result)) { - throw new InvalidDataProviderException( - sprintf( - 'The key "%s" has already been defined by a previous data provider', - $key, - ), - ); - } - - $result[$key] = $value; - } else { + if (!is_int($key) && !is_string($key)) { throw new InvalidDataProviderException( sprintf( 'The key must be an integer or a string, %s given', @@ -190,10 +179,49 @@ final readonly class DataProvider ), ); } + + if (!is_array($value)) { + throw new InvalidDataProviderException( + sprintf( + 'Data set %s provided by %s is invalid, expected array but got %s', + $this->formatKey($key), + $providerLabel, + get_debug_type($value), + ), + ); + } + + if ($validateArgumentCount && $testMethodNumberOfParameters < count($value)) { + $this->triggerWarningForArgumentCount( + $testMethod, + $this->formatKey($key), + $providerLabel, + count($value), + $testMethodNumberOfParameters, + ); + } + + if (is_int($key)) { + $result[] = new ProvidedData($providerLabel, $value); + + continue; + } + + if (array_key_exists($key, $result)) { + throw new InvalidDataProviderException( + sprintf( + 'The key "%s" has already been defined by provider %s', + $key, + $result[$key]->label(), + ), + ); + } + + $result[$key] = new ProvidedData($providerLabel, $value); } } catch (Throwable $e) { Event\Facade::emitter()->dataProviderMethodFinished( - $testMethod, + $testMethodValueObject, ...$methodsCalled, ); @@ -206,38 +234,75 @@ final readonly class DataProvider } Event\Facade::emitter()->dataProviderMethodFinished( - $testMethod, + $testMethodValueObject, ...$methodsCalled, ); + if ($result === []) { + throw new InvalidDataProviderException( + 'Empty data set provided by data provider', + ); + } + return $result; } /** - * @return array> + * @return array */ - private function dataProvidedByMetadata(MetadataCollection $testWith): array + private function dataProvidedByMetadata(ReflectionMethod $testMethod, MetadataCollection $testWith): array { $result = []; - foreach ($testWith as $_testWith) { + foreach ($testWith as $i => $_testWith) { assert($_testWith instanceof TestWith); + $providerLabel = sprintf('TestWith#%s attribute', $i); + if ($_testWith->hasName()) { $key = $_testWith->name(); if (array_key_exists($key, $result)) { throw new InvalidDataProviderException( sprintf( - 'The key "%s" has already been defined by a previous TestWith attribute', + 'The key "%s" has already been defined by %s', $key, + $result[$key]->label(), ), ); } - $result[$key] = $_testWith->data(); + $result[$key] = new ProvidedData($providerLabel, $_testWith->data()); } else { - $result[] = $_testWith->data(); + $result[] = new ProvidedData($providerLabel, $_testWith->data()); + } + } + + $testMethodNumberOfParameters = $testMethod->getNumberOfParameters(); + $testMethodIsNonVariadic = !$testMethod->isVariadic(); + + foreach ($result as $key => $providedData) { + $value = $providedData->value(); + + if (!is_array($value)) { + throw new InvalidDataProviderException( + sprintf( + 'Data set %s provided by %s is invalid, expected array but got %s', + $this->formatKey($key), + $providedData->label(), + get_debug_type($value), + ), + ); + } + + if ($testMethodIsNonVariadic && $testMethodNumberOfParameters < count($value)) { + $this->triggerWarningForArgumentCount( + $testMethod, + $this->formatKey($key), + $providedData->label(), + count($value), + $testMethodNumberOfParameters, + ); } } @@ -245,57 +310,50 @@ final readonly class DataProvider } /** - * @param class-string $className + * @param int|non-empty-string $key * - * @throws InvalidDataProviderException - * - * @return ?array> + * @return non-empty-string */ - private function dataProvidedByTestWithAnnotation(string $className, string $methodName): ?array + private function formatKey(int|string $key): string { - $docComment = (new ReflectionMethod($className, $methodName))->getDocComment(); + return is_int($key) ? '#' . $key : '"' . $key . '"'; + } - if ($docComment === false) { - return null; - } + private function triggerWarningForMixingOfDataProviderAndTestWith(ReflectionMethod $method): void + { + Event\Facade::emitter()->testTriggeredPhpunitWarning( + $this->testValueObject($method), + 'Mixing #[DataProvider*] and #[TestWith*] attributes is not supported, only the data provided by #[DataProvider*] will be used', + ); + } - $docComment = str_replace("\r\n", "\n", $docComment); - $docComment = preg_replace('/\n\s*\*\s?/', "\n", $docComment); - $docComment = substr($docComment, 0, -1); - $docComment = rtrim($docComment, "\n"); + private function triggerWarningForArgumentCount(ReflectionMethod $method, string $key, string $label, int $numberOfValues, int $testMethodNumberOfParameters): void + { + Event\Facade::emitter()->testTriggeredPhpunitWarning( + $this->testValueObject($method), + sprintf( + 'Data set %s provided by %s has more arguments (%d) than the test method accepts (%d)', + $key, + $label, + $numberOfValues, + $testMethodNumberOfParameters, + ), + ); + } - if (!preg_match('/@testWith\s+/', $docComment, $matches, PREG_OFFSET_CAPTURE)) { - return null; - } - - $offset = strlen($matches[0][0]) + (int) $matches[0][1]; - $annotationContent = substr($docComment, $offset); - $data = []; - - foreach (explode("\n", $annotationContent) as $candidateRow) { - $candidateRow = trim($candidateRow); - - if ($candidateRow === '' || $candidateRow[0] !== '[') { - break; - } - - $dataSet = json_decode($candidateRow, true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new InvalidDataProviderException( - 'The data set for the @testWith annotation cannot be parsed: ' . json_last_error_msg(), - ); - } - - $data[] = $dataSet; - } - - if (!$data) { - throw new InvalidDataProviderException( - 'The data set for the @testWith annotation cannot be parsed.', - ); - } - - return $data; + private function testValueObject(ReflectionMethod $method): TestMethod + { + return new TestMethod( + $method->getDeclaringClass()->getName(), + $method->getName(), + $method->getFileName(), + $method->getStartLine(), + Event\Code\TestDoxBuilder::fromClassNameAndMethodName( + $method->getDeclaringClass()->getName(), + $method->getName(), + ), + MetadataCollection::fromArray([]), + Event\TestData\TestDataCollection::fromArray([]), + ); } } diff --git a/vendor/phpunit/phpunit/src/Metadata/Api/Dependencies.php b/vendor/phpunit/phpunit/src/Metadata/Api/Dependencies.php index 840708f97..3ba35568f 100644 --- a/vendor/phpunit/phpunit/src/Metadata/Api/Dependencies.php +++ b/vendor/phpunit/phpunit/src/Metadata/Api/Dependencies.php @@ -43,7 +43,7 @@ final readonly class Dependencies assert($metadata instanceof DependsOnMethod); - if (empty($metadata->methodName())) { + if ($metadata->methodName() === '') { $dependencies[] = ExecutionOrderDependency::invalid(); continue; diff --git a/vendor/phpunit/phpunit/src/Metadata/Api/Groups.php b/vendor/phpunit/phpunit/src/Metadata/Api/Groups.php index e5615abd2..aa2cbf43f 100644 --- a/vendor/phpunit/phpunit/src/Metadata/Api/Groups.php +++ b/vendor/phpunit/phpunit/src/Metadata/Api/Groups.php @@ -13,17 +13,14 @@ use function array_flip; use function array_key_exists; use function array_unique; use function assert; -use function ltrim; use function strtolower; use function trim; use PHPUnit\Framework\TestSize\TestSize; -use PHPUnit\Metadata\Covers; use PHPUnit\Metadata\CoversClass; use PHPUnit\Metadata\CoversFunction; use PHPUnit\Metadata\Group; use PHPUnit\Metadata\Parser\Registry; use PHPUnit\Metadata\RequiresPhpExtension; -use PHPUnit\Metadata\Uses; use PHPUnit\Metadata\UsesClass; use PHPUnit\Metadata\UsesFunction; @@ -66,36 +63,36 @@ final class Groups } foreach (Registry::parser()->forClassAndMethod($className, $methodName) as $metadata) { - if ($metadata->isCoversClass() || $metadata->isCoversFunction()) { - /** @phpstan-ignore booleanOr.alwaysTrue */ - assert($metadata instanceof CoversClass || $metadata instanceof CoversFunction); + if ($metadata->isCoversClass()) { + assert($metadata instanceof CoversClass); - $groups[] = '__phpunit_covers_' . $this->canonicalizeName(ltrim($metadata->asStringForCodeUnitMapper(), ':')); + $groups[] = '__phpunit_covers_' . $this->canonicalizeName($metadata->className()); continue; } - if ($metadata->isCovers()) { - assert($metadata instanceof Covers); + if ($metadata->isCoversFunction()) { + assert($metadata instanceof CoversFunction); - $groups[] = '__phpunit_covers_' . $this->canonicalizeName($metadata->target()); + $groups[] = '__phpunit_covers_' . $this->canonicalizeName($metadata->functionName()); continue; } - if ($metadata->isUsesClass() || $metadata->isUsesFunction()) { - /** @phpstan-ignore booleanOr.alwaysTrue */ - assert($metadata instanceof UsesClass || $metadata instanceof UsesFunction); + if ($metadata->isUsesClass()) { + assert($metadata instanceof UsesClass); - $groups[] = '__phpunit_uses_' . $this->canonicalizeName(ltrim($metadata->asStringForCodeUnitMapper(), ':')); + $groups[] = '__phpunit_uses_' . $this->canonicalizeName($metadata->className()); continue; } - if ($metadata->isUses()) { - assert($metadata instanceof Uses); + if ($metadata->isUsesFunction()) { + assert($metadata instanceof UsesFunction); - $groups[] = '__phpunit_uses_' . $this->canonicalizeName($metadata->target()); + $groups[] = '__phpunit_uses_' . $this->canonicalizeName($metadata->functionName()); + + continue; } if ($metadata->isRequiresPhpExtension()) { @@ -105,9 +102,7 @@ final class Groups } } - self::$groupCache[$key] = array_unique($groups); - - return self::$groupCache[$key]; + return self::$groupCache[$key] = array_unique($groups); } /** diff --git a/vendor/phpunit/phpunit/src/Metadata/Api/HookMethods.php b/vendor/phpunit/phpunit/src/Metadata/Api/HookMethods.php index 3f93b5ff5..8981459a4 100644 --- a/vendor/phpunit/phpunit/src/Metadata/Api/HookMethods.php +++ b/vendor/phpunit/phpunit/src/Metadata/Api/HookMethods.php @@ -11,6 +11,8 @@ namespace PHPUnit\Metadata\Api; use function assert; use function class_exists; +use function in_array; +use function strtolower; use PHPUnit\Framework\TestCase; use PHPUnit\Metadata\After; use PHPUnit\Metadata\AfterClass; @@ -23,6 +25,7 @@ use PHPUnit\Runner\HookMethod; use PHPUnit\Runner\HookMethodCollection; use PHPUnit\Util\Reflection; use ReflectionClass; +use ReflectionMethod; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit @@ -55,10 +58,7 @@ final class HookMethods foreach (Reflection::methodsDeclaredDirectlyInTestClass(new ReflectionClass($className)) as $method) { $methodName = $method->getName(); - - assert(!empty($methodName)); - - $metadata = Registry::parser()->forMethod($className, $methodName); + $metadata = Registry::parser()->forMethod($className, $methodName); if ($method->isStatic()) { if ($metadata->isBeforeClass()->isNotEmpty()) { @@ -120,6 +120,31 @@ final class HookMethods return self::$hookMethods[$className]; } + public function isHookMethod(ReflectionMethod $method): bool + { + $defaultNames = [ + 'setupbeforeclass', + 'setup', + 'assertpreconditions', + 'assertpostconditions', + 'teardown', + 'teardownafterclass', + ]; + + if (in_array(strtolower($method->getName()), $defaultNames, true)) { + return true; + } + + $metadata = Registry::parser()->forMethod($method->getDeclaringClass()->getName(), $method->getName()); + + return $metadata->isBeforeClass()->isNotEmpty() || + $metadata->isBefore()->isNotEmpty() || + $metadata->isPreCondition()->isNotEmpty() || + $metadata->isPostCondition()->isNotEmpty() || + $metadata->isAfter()->isNotEmpty() || + $metadata->isAfterClass()->isNotEmpty(); + } + /** * @return array{beforeClass: HookMethodCollection, before: HookMethodCollection, preCondition: HookMethodCollection, postCondition: HookMethodCollection, after: HookMethodCollection, afterClass: HookMethodCollection} */ diff --git a/vendor/phpunit/phpunit/src/Metadata/Api/ProvidedData.php b/vendor/phpunit/phpunit/src/Metadata/Api/ProvidedData.php new file mode 100644 index 000000000..7d21766bc --- /dev/null +++ b/vendor/phpunit/phpunit/src/Metadata/Api/ProvidedData.php @@ -0,0 +1,46 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Metadata\Api; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class ProvidedData +{ + /** + * @var non-empty-string + */ + private string $label; + private mixed $value; + + /** + * @param non-empty-string $label + */ + public function __construct(string $label, mixed $value) + { + $this->label = $label; + $this->value = $value; + } + + /** + * @return non-empty-string + */ + public function label(): string + { + return $this->label; + } + + public function value(): mixed + { + return $this->value; + } +} diff --git a/vendor/phpunit/phpunit/src/Metadata/Api/Requirements.php b/vendor/phpunit/phpunit/src/Metadata/Api/Requirements.php index b647863b8..9be97c243 100644 --- a/vendor/phpunit/phpunit/src/Metadata/Api/Requirements.php +++ b/vendor/phpunit/phpunit/src/Metadata/Api/Requirements.php @@ -14,6 +14,7 @@ use const PHP_OS_FAMILY; use const PHP_VERSION; use function addcslashes; use function array_column; +use function array_key_exists; use function assert; use function extension_loaded; use function function_exists; @@ -23,7 +24,10 @@ use function method_exists; use function phpversion; use function preg_match; use function sprintf; +use function substr_count; +use PHPUnit\Event\Facade; use PHPUnit\Metadata\Parser\Registry; +use PHPUnit\Metadata\RequiresEnvironmentVariable; use PHPUnit\Metadata\RequiresFunction; use PHPUnit\Metadata\RequiresMethod; use PHPUnit\Metadata\RequiresOperatingSystem; @@ -33,6 +37,8 @@ use PHPUnit\Metadata\RequiresPhpExtension; use PHPUnit\Metadata\RequiresPhpunit; use PHPUnit\Metadata\RequiresPhpunitExtension; use PHPUnit\Metadata\RequiresSetting; +use PHPUnit\Metadata\Version\ComparisonRequirement; +use PHPUnit\Metadata\Version\Requirement; use PHPUnit\Runner\Version; use PHPUnit\TextUI\Configuration\Registry as ConfigurationRegistry; @@ -57,10 +63,14 @@ final readonly class Requirements if ($metadata->isRequiresPhp()) { assert($metadata instanceof RequiresPhp); - if (!$metadata->versionRequirement()->isSatisfiedBy(PHP_VERSION)) { + $versionRequirement = $metadata->versionRequirement(); + + $this->warnAboutIncompleteVersion($metadata->versionRequirement(), $className, $methodName); + + if (!$versionRequirement->isSatisfiedBy(PHP_VERSION)) { $notSatisfied[] = sprintf( 'PHP %s is required.', - $metadata->versionRequirement()->asString(), + $versionRequirement->asString(), ); } } @@ -68,9 +78,19 @@ final readonly class Requirements if ($metadata->isRequiresPhpExtension()) { assert($metadata instanceof RequiresPhpExtension); + $extensionVersion = phpversion($metadata->extension()); + + if ($extensionVersion === false) { + $extensionVersion = ''; + } + + if ($metadata->hasVersionRequirement()) { + $this->warnAboutIncompleteVersion($metadata->versionRequirement(), $className, $methodName); + } + if (!extension_loaded($metadata->extension()) || ($metadata->hasVersionRequirement() && - !$metadata->versionRequirement()->isSatisfiedBy(phpversion($metadata->extension())))) { + !$metadata->versionRequirement()->isSatisfiedBy($extensionVersion))) { $notSatisfied[] = sprintf( 'PHP extension %s%s is required.', $metadata->extension(), @@ -82,10 +102,14 @@ final readonly class Requirements if ($metadata->isRequiresPhpunit()) { assert($metadata instanceof RequiresPhpunit); - if (!$metadata->versionRequirement()->isSatisfiedBy(Version::id())) { + $versionRequirement = $metadata->versionRequirement(); + + $this->warnAboutIncompleteVersion($metadata->versionRequirement(), $className, $methodName); + + if (!$versionRequirement->isSatisfiedBy(Version::id())) { $notSatisfied[] = sprintf( 'PHPUnit %s is required.', - $metadata->versionRequirement()->asString(), + $versionRequirement->asString(), ); } } @@ -105,6 +129,25 @@ final readonly class Requirements } } + if ($metadata->isRequiresEnvironmentVariable()) { + assert($metadata instanceof RequiresEnvironmentVariable); + + if (!array_key_exists($metadata->environmentVariableName(), $_ENV) || + $metadata->value() === null && $_ENV[$metadata->environmentVariableName()] === '') { + $notSatisfied[] = sprintf('Environment variable "%s" is required.', $metadata->environmentVariableName()); + + continue; + } + + if ($metadata->value() !== null && $_ENV[$metadata->environmentVariableName()] !== $metadata->value()) { + $notSatisfied[] = sprintf( + 'Environment variable "%s" is required to be "%s".', + $metadata->environmentVariableName(), + $metadata->value(), + ); + } + } + if ($metadata->isRequiresOperatingSystemFamily()) { assert($metadata instanceof RequiresOperatingSystemFamily); @@ -124,7 +167,7 @@ final readonly class Requirements addcslashes($metadata->operatingSystem(), '/'), ); - if (!preg_match($pattern, PHP_OS)) { + if (preg_match($pattern, PHP_OS) === 0) { $notSatisfied[] = sprintf( 'Operating system %s is required.', $metadata->operatingSystem(), @@ -183,4 +226,28 @@ final readonly class Requirements return false; } + + /** + * @param class-string $className + * @param non-empty-string $methodName + */ + private function warnAboutIncompleteVersion(Requirement $versionRequirement, string $className, string $methodName): void + { + if (!$versionRequirement instanceof ComparisonRequirement) { + return; + } + + if (substr_count($versionRequirement->version(), '.') === 2) { + return; + } + + Facade::emitter()->testRunnerTriggeredPhpunitWarning( + sprintf( + 'Incomplete version requirement "%s" used by %s::%s()', + $versionRequirement->version(), + $className, + $methodName, + ), + ); + } } diff --git a/vendor/phpunit/phpunit/src/Metadata/BackupGlobals.php b/vendor/phpunit/phpunit/src/Metadata/BackupGlobals.php index 2a340e699..5d9478443 100644 --- a/vendor/phpunit/phpunit/src/Metadata/BackupGlobals.php +++ b/vendor/phpunit/phpunit/src/Metadata/BackupGlobals.php @@ -19,7 +19,7 @@ final readonly class BackupGlobals extends Metadata private bool $enabled; /** - * @param 0|1 $level + * @param int<0, 1> $level */ protected function __construct(int $level, bool $enabled) { diff --git a/vendor/phpunit/phpunit/src/Metadata/BackupStaticProperties.php b/vendor/phpunit/phpunit/src/Metadata/BackupStaticProperties.php index 32f1644ba..a07698eeb 100644 --- a/vendor/phpunit/phpunit/src/Metadata/BackupStaticProperties.php +++ b/vendor/phpunit/phpunit/src/Metadata/BackupStaticProperties.php @@ -19,7 +19,7 @@ final readonly class BackupStaticProperties extends Metadata private bool $enabled; /** - * @param 0|1 $level + * @param int<0, 1> $level */ protected function __construct(int $level, bool $enabled) { diff --git a/vendor/phpunit/phpunit/src/Metadata/Before.php b/vendor/phpunit/phpunit/src/Metadata/Before.php index 6e9c4ba3c..08372f76c 100644 --- a/vendor/phpunit/phpunit/src/Metadata/Before.php +++ b/vendor/phpunit/phpunit/src/Metadata/Before.php @@ -19,7 +19,7 @@ final readonly class Before extends Metadata private int $priority; /** - * @param 0|1 $level + * @param int<0, 1> $level */ protected function __construct(int $level, int $priority) { diff --git a/vendor/phpunit/phpunit/src/Metadata/BeforeClass.php b/vendor/phpunit/phpunit/src/Metadata/BeforeClass.php index b51456477..c56463207 100644 --- a/vendor/phpunit/phpunit/src/Metadata/BeforeClass.php +++ b/vendor/phpunit/phpunit/src/Metadata/BeforeClass.php @@ -19,7 +19,7 @@ final readonly class BeforeClass extends Metadata private int $priority; /** - * @param 0|1 $level + * @param int<0, 1> $level */ protected function __construct(int $level, int $priority) { diff --git a/vendor/phpunit/phpunit/src/Metadata/CoversClass.php b/vendor/phpunit/phpunit/src/Metadata/CoversClass.php index cf379cd11..e573952b6 100644 --- a/vendor/phpunit/phpunit/src/Metadata/CoversClass.php +++ b/vendor/phpunit/phpunit/src/Metadata/CoversClass.php @@ -22,7 +22,7 @@ final readonly class CoversClass extends Metadata private string $className; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param class-string $className */ protected function __construct(int $level, string $className) @@ -44,14 +44,4 @@ final readonly class CoversClass extends Metadata { return $this->className; } - - /** - * @return class-string - * - * @internal This method is not covered by the backward compatibility promise for PHPUnit - */ - public function asStringForCodeUnitMapper(): string - { - return $this->className; - } } diff --git a/vendor/phpunit/phpunit/src/Metadata/CoversDefaultClass.php b/vendor/phpunit/phpunit/src/Metadata/CoversClassesThatExtendClass.php similarity index 84% rename from vendor/phpunit/phpunit/src/Metadata/CoversDefaultClass.php rename to vendor/phpunit/phpunit/src/Metadata/CoversClassesThatExtendClass.php index 84d0c7cb7..7feb40d70 100644 --- a/vendor/phpunit/phpunit/src/Metadata/CoversDefaultClass.php +++ b/vendor/phpunit/phpunit/src/Metadata/CoversClassesThatExtendClass.php @@ -14,7 +14,7 @@ namespace PHPUnit\Metadata; * * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ -final readonly class CoversDefaultClass extends Metadata +final readonly class CoversClassesThatExtendClass extends Metadata { /** * @var class-string @@ -22,7 +22,7 @@ final readonly class CoversDefaultClass extends Metadata private string $className; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param class-string $className */ protected function __construct(int $level, string $className) @@ -32,7 +32,7 @@ final readonly class CoversDefaultClass extends Metadata $this->className = $className; } - public function isCoversDefaultClass(): true + public function isCoversClassesThatExtendClass(): true { return true; } diff --git a/vendor/phpunit/phpunit/src/Metadata/CoversClassesThatImplementInterface.php b/vendor/phpunit/phpunit/src/Metadata/CoversClassesThatImplementInterface.php new file mode 100644 index 000000000..e980801ec --- /dev/null +++ b/vendor/phpunit/phpunit/src/Metadata/CoversClassesThatImplementInterface.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Metadata; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class CoversClassesThatImplementInterface extends Metadata +{ + /** + * @var class-string + */ + private string $interfaceName; + + /** + * @param int<0, 1> $level + * @param class-string $interfaceName + */ + protected function __construct(int $level, string $interfaceName) + { + parent::__construct($level); + + $this->interfaceName = $interfaceName; + } + + public function isCoversClassesThatImplementInterface(): true + { + return true; + } + + /** + * @return class-string + */ + public function interfaceName(): string + { + return $this->interfaceName; + } +} diff --git a/vendor/phpunit/phpunit/src/Metadata/CoversFunction.php b/vendor/phpunit/phpunit/src/Metadata/CoversFunction.php index f6dbb0d32..4e953601f 100644 --- a/vendor/phpunit/phpunit/src/Metadata/CoversFunction.php +++ b/vendor/phpunit/phpunit/src/Metadata/CoversFunction.php @@ -22,7 +22,7 @@ final readonly class CoversFunction extends Metadata private string $functionName; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param non-empty-string $functionName */ protected function __construct(int $level, string $functionName) @@ -44,12 +44,4 @@ final readonly class CoversFunction extends Metadata { return $this->functionName; } - - /** - * @internal This method is not covered by the backward compatibility promise for PHPUnit - */ - public function asStringForCodeUnitMapper(): string - { - return '::' . $this->functionName; - } } diff --git a/vendor/phpunit/phpunit/src/Metadata/CoversMethod.php b/vendor/phpunit/phpunit/src/Metadata/CoversMethod.php index 7534863a5..73092ff78 100644 --- a/vendor/phpunit/phpunit/src/Metadata/CoversMethod.php +++ b/vendor/phpunit/phpunit/src/Metadata/CoversMethod.php @@ -27,7 +27,7 @@ final readonly class CoversMethod extends Metadata private string $methodName; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param class-string $className * @param non-empty-string $methodName */ @@ -59,14 +59,4 @@ final readonly class CoversMethod extends Metadata { return $this->methodName; } - - /** - * @return non-empty-string - * - * @internal This method is not covered by the backward compatibility promise for PHPUnit - */ - public function asStringForCodeUnitMapper(): string - { - return $this->className . '::' . $this->methodName; - } } diff --git a/vendor/phpunit/phpunit/src/Metadata/Uses.php b/vendor/phpunit/phpunit/src/Metadata/CoversNamespace.php similarity index 61% rename from vendor/phpunit/phpunit/src/Metadata/Uses.php rename to vendor/phpunit/phpunit/src/Metadata/CoversNamespace.php index af68897d8..b510e9cfd 100644 --- a/vendor/phpunit/phpunit/src/Metadata/Uses.php +++ b/vendor/phpunit/phpunit/src/Metadata/CoversNamespace.php @@ -14,25 +14,25 @@ namespace PHPUnit\Metadata; * * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ -final readonly class Uses extends Metadata +final readonly class CoversNamespace extends Metadata { /** * @var non-empty-string */ - private string $target; + private string $namespace; /** - * @param 0|1 $level - * @param non-empty-string $target + * @param int<0, 1> $level + * @param non-empty-string $namespace */ - protected function __construct(int $level, string $target) + protected function __construct(int $level, string $namespace) { parent::__construct($level); - $this->target = $target; + $this->namespace = $namespace; } - public function isUses(): true + public function isCoversNamespace(): true { return true; } @@ -40,8 +40,8 @@ final readonly class Uses extends Metadata /** * @return non-empty-string */ - public function target(): string + public function namespace(): string { - return $this->target; + return $this->namespace; } } diff --git a/vendor/phpunit/phpunit/src/Metadata/CoversTrait.php b/vendor/phpunit/phpunit/src/Metadata/CoversTrait.php index 68fafa1b2..2cad9dfb4 100644 --- a/vendor/phpunit/phpunit/src/Metadata/CoversTrait.php +++ b/vendor/phpunit/phpunit/src/Metadata/CoversTrait.php @@ -44,14 +44,4 @@ final readonly class CoversTrait extends Metadata { return $this->traitName; } - - /** - * @return trait-string - * - * @internal This method is not covered by the backward compatibility promise for PHPUnit - */ - public function asStringForCodeUnitMapper(): string - { - return $this->traitName; - } } diff --git a/vendor/phpunit/phpunit/src/Metadata/DataProvider.php b/vendor/phpunit/phpunit/src/Metadata/DataProvider.php index 58aab52c3..ca048bbaa 100644 --- a/vendor/phpunit/phpunit/src/Metadata/DataProvider.php +++ b/vendor/phpunit/phpunit/src/Metadata/DataProvider.php @@ -25,18 +25,20 @@ final readonly class DataProvider extends Metadata * @var non-empty-string */ private string $methodName; + private bool $validateArgumentCount; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param class-string $className * @param non-empty-string $methodName */ - protected function __construct(int $level, string $className, string $methodName) + protected function __construct(int $level, string $className, string $methodName, bool $validateArgumentCount) { parent::__construct($level); - $this->className = $className; - $this->methodName = $methodName; + $this->className = $className; + $this->methodName = $methodName; + $this->validateArgumentCount = $validateArgumentCount; } public function isDataProvider(): true @@ -59,4 +61,9 @@ final readonly class DataProvider extends Metadata { return $this->methodName; } + + public function validateArgumentCount(): bool + { + return $this->validateArgumentCount; + } } diff --git a/vendor/phpunit/phpunit/src/Metadata/DependsOnClass.php b/vendor/phpunit/phpunit/src/Metadata/DependsOnClass.php index ba02c4d75..fbc40fd14 100644 --- a/vendor/phpunit/phpunit/src/Metadata/DependsOnClass.php +++ b/vendor/phpunit/phpunit/src/Metadata/DependsOnClass.php @@ -24,7 +24,7 @@ final readonly class DependsOnClass extends Metadata private bool $shallowClone; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param class-string $className */ protected function __construct(int $level, string $className, bool $deepClone, bool $shallowClone) diff --git a/vendor/phpunit/phpunit/src/Metadata/DependsOnMethod.php b/vendor/phpunit/phpunit/src/Metadata/DependsOnMethod.php index 433d263c5..82056a996 100644 --- a/vendor/phpunit/phpunit/src/Metadata/DependsOnMethod.php +++ b/vendor/phpunit/phpunit/src/Metadata/DependsOnMethod.php @@ -29,7 +29,7 @@ final readonly class DependsOnMethod extends Metadata private bool $shallowClone; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param class-string $className * @param non-empty-string $methodName */ diff --git a/vendor/phpunit/phpunit/src/Metadata/Exception/AnnotationsAreNotSupportedForInternalClassesException.php b/vendor/phpunit/phpunit/src/Metadata/Exception/AnnotationsAreNotSupportedForInternalClassesException.php deleted file mode 100644 index bd02bac14..000000000 --- a/vendor/phpunit/phpunit/src/Metadata/Exception/AnnotationsAreNotSupportedForInternalClassesException.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Metadata; - -use function sprintf; -use PHPUnit\Exception; -use RuntimeException; - -/** - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - * - * @internal This class is not covered by the backward compatibility promise for PHPUnit - */ -final class AnnotationsAreNotSupportedForInternalClassesException extends RuntimeException implements Exception -{ - /** - * @param class-string $className - */ - public function __construct(string $className) - { - parent::__construct( - sprintf( - 'Annotations can only be parsed for user-defined classes, trying to parse annotations for class "%s"', - $className, - ), - ); - } -} diff --git a/vendor/phpunit/phpunit/src/Metadata/ExcludeGlobalVariableFromBackup.php b/vendor/phpunit/phpunit/src/Metadata/ExcludeGlobalVariableFromBackup.php index 65a606ede..4f646dbde 100644 --- a/vendor/phpunit/phpunit/src/Metadata/ExcludeGlobalVariableFromBackup.php +++ b/vendor/phpunit/phpunit/src/Metadata/ExcludeGlobalVariableFromBackup.php @@ -22,7 +22,7 @@ final readonly class ExcludeGlobalVariableFromBackup extends Metadata private string $globalVariableName; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param non-empty-string $globalVariableName */ protected function __construct(int $level, string $globalVariableName) diff --git a/vendor/phpunit/phpunit/src/Metadata/ExcludeStaticPropertyFromBackup.php b/vendor/phpunit/phpunit/src/Metadata/ExcludeStaticPropertyFromBackup.php index ff170da85..21725e939 100644 --- a/vendor/phpunit/phpunit/src/Metadata/ExcludeStaticPropertyFromBackup.php +++ b/vendor/phpunit/phpunit/src/Metadata/ExcludeStaticPropertyFromBackup.php @@ -27,7 +27,7 @@ final readonly class ExcludeStaticPropertyFromBackup extends Metadata private string $propertyName; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param class-string $className * @param non-empty-string $propertyName */ diff --git a/vendor/phpunit/phpunit/src/Metadata/Group.php b/vendor/phpunit/phpunit/src/Metadata/Group.php index da269f344..2ee2784f2 100644 --- a/vendor/phpunit/phpunit/src/Metadata/Group.php +++ b/vendor/phpunit/phpunit/src/Metadata/Group.php @@ -22,7 +22,7 @@ final readonly class Group extends Metadata private string $groupName; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param non-empty-string $groupName */ protected function __construct(int $level, string $groupName) diff --git a/vendor/phpunit/phpunit/src/Metadata/IgnoreDeprecations.php b/vendor/phpunit/phpunit/src/Metadata/IgnoreDeprecations.php index e1f85a8d8..be0f3a371 100644 --- a/vendor/phpunit/phpunit/src/Metadata/IgnoreDeprecations.php +++ b/vendor/phpunit/phpunit/src/Metadata/IgnoreDeprecations.php @@ -16,8 +16,30 @@ namespace PHPUnit\Metadata; */ final readonly class IgnoreDeprecations extends Metadata { + /** @var null|non-empty-string */ + private ?string $messagePattern; + + /** + * @param int<0, 1> $level + * @param null|non-empty-string $messagePattern + */ + protected function __construct(int $level, null|string $messagePattern) + { + parent::__construct($level); + + $this->messagePattern = $messagePattern; + } + public function isIgnoreDeprecations(): true { return true; } + + /** + * @return null|non-empty-string + */ + public function messagePattern(): ?string + { + return $this->messagePattern; + } } diff --git a/vendor/phpunit/phpunit/src/Metadata/IgnorePhpunitWarnings.php b/vendor/phpunit/phpunit/src/Metadata/IgnorePhpunitWarnings.php new file mode 100644 index 000000000..e5f6ef524 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Metadata/IgnorePhpunitWarnings.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Metadata; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class IgnorePhpunitWarnings extends Metadata +{ + /** @var null|non-empty-string */ + private ?string $messagePattern; + + /** + * @param int<0, 1> $level + * @param null|non-empty-string $messagePattern + */ + protected function __construct(int $level, null|string $messagePattern) + { + parent::__construct($level); + + $this->messagePattern = $messagePattern; + } + + public function isIgnorePhpunitWarnings(): true + { + return true; + } + + /** + * @return null|non-empty-string + */ + public function messagePattern(): ?string + { + return $this->messagePattern; + } +} diff --git a/vendor/phpunit/phpunit/src/Metadata/Metadata.php b/vendor/phpunit/phpunit/src/Metadata/Metadata.php index c18100619..4d33de349 100644 --- a/vendor/phpunit/phpunit/src/Metadata/Metadata.php +++ b/vendor/phpunit/phpunit/src/Metadata/Metadata.php @@ -19,11 +19,11 @@ use PHPUnit\Runner\Extension\Extension; */ abstract readonly class Metadata { - private const CLASS_LEVEL = 0; - private const METHOD_LEVEL = 1; + private const int CLASS_LEVEL = 0; + private const int METHOD_LEVEL = 1; /** - * @var 0|1 + * @var int<0, 1> */ private int $level; @@ -37,6 +37,16 @@ abstract readonly class Metadata return new AfterClass(self::METHOD_LEVEL, $priority); } + public static function allowMockObjectsWithoutExpectationsOnClass(): AllowMockObjectsWithoutExpectations + { + return new AllowMockObjectsWithoutExpectations(self::CLASS_LEVEL); + } + + public static function allowMockObjectsWithoutExpectationsOnMethod(): AllowMockObjectsWithoutExpectations + { + return new AllowMockObjectsWithoutExpectations(self::METHOD_LEVEL); + } + public static function backupGlobalsOnClass(bool $enabled): BackupGlobals { return new BackupGlobals(self::CLASS_LEVEL, $enabled); @@ -67,6 +77,14 @@ abstract readonly class Metadata return new BeforeClass(self::METHOD_LEVEL, $priority); } + /** + * @param non-empty-string $namespace + */ + public static function coversNamespace(string $namespace): CoversNamespace + { + return new CoversNamespace(self::CLASS_LEVEL, $namespace); + } + /** * @param class-string $className */ @@ -75,6 +93,22 @@ abstract readonly class Metadata return new CoversClass(self::CLASS_LEVEL, $className); } + /** + * @param class-string $className + */ + public static function coversClassesThatExtendClass(string $className): CoversClassesThatExtendClass + { + return new CoversClassesThatExtendClass(self::CLASS_LEVEL, $className); + } + + /** + * @param class-string $interfaceName + */ + public static function coversClassesThatImplementInterface(string $interfaceName): CoversClassesThatImplementInterface + { + return new CoversClassesThatImplementInterface(self::CLASS_LEVEL, $interfaceName); + } + /** * @param trait-string $traitName */ @@ -100,30 +134,6 @@ abstract readonly class Metadata return new CoversFunction(self::CLASS_LEVEL, $functionName); } - /** - * @param non-empty-string $target - */ - public static function coversOnClass(string $target): Covers - { - return new Covers(self::CLASS_LEVEL, $target); - } - - /** - * @param non-empty-string $target - */ - public static function coversOnMethod(string $target): Covers - { - return new Covers(self::METHOD_LEVEL, $target); - } - - /** - * @param class-string $className - */ - public static function coversDefaultClass(string $className): CoversDefaultClass - { - return new CoversDefaultClass(self::CLASS_LEVEL, $className); - } - public static function coversNothingOnClass(): CoversNothing { return new CoversNothing(self::CLASS_LEVEL); @@ -138,9 +148,9 @@ abstract readonly class Metadata * @param class-string $className * @param non-empty-string $methodName */ - public static function dataProvider(string $className, string $methodName): DataProvider + public static function dataProvider(string $className, string $methodName, bool $validateArgumentCount): DataProvider { - return new DataProvider(self::METHOD_LEVEL, $className, $methodName); + return new DataProvider(self::METHOD_LEVEL, $className, $methodName, $validateArgumentCount); } /** @@ -225,14 +235,20 @@ abstract readonly class Metadata return new Group(self::METHOD_LEVEL, $groupName); } - public static function ignoreDeprecationsOnClass(): IgnoreDeprecations + /** + * @param null|non-empty-string $messagePattern + */ + public static function ignoreDeprecationsOnClass(?string $messagePattern = null): IgnoreDeprecations { - return new IgnoreDeprecations(self::CLASS_LEVEL); + return new IgnoreDeprecations(self::CLASS_LEVEL, $messagePattern); } - public static function ignoreDeprecationsOnMethod(): IgnoreDeprecations + /** + * @param null|non-empty-string $messagePattern + */ + public static function ignoreDeprecationsOnMethod(?string $messagePattern = null): IgnoreDeprecations { - return new IgnoreDeprecations(self::METHOD_LEVEL); + return new IgnoreDeprecations(self::METHOD_LEVEL, $messagePattern); } /** @@ -389,6 +405,26 @@ abstract readonly class Metadata return new RequiresPhpunitExtension(self::METHOD_LEVEL, $extensionClass); } + public static function requiresEnvironmentVariableOnClass(string $environmentVariableName, null|string $value): RequiresEnvironmentVariable + { + return new RequiresEnvironmentVariable(self::CLASS_LEVEL, $environmentVariableName, $value); + } + + public static function requiresEnvironmentVariableOnMethod(string $environmentVariableName, null|string $value): RequiresEnvironmentVariable + { + return new RequiresEnvironmentVariable(self::METHOD_LEVEL, $environmentVariableName, $value); + } + + public static function withEnvironmentVariableOnClass(string $environmentVariableName, null|string $value): WithEnvironmentVariable + { + return new WithEnvironmentVariable(self::CLASS_LEVEL, $environmentVariableName, $value); + } + + public static function withEnvironmentVariableOnMethod(string $environmentVariableName, null|string $value): WithEnvironmentVariable + { + return new WithEnvironmentVariable(self::METHOD_LEVEL, $environmentVariableName, $value); + } + /** * @param non-empty-string $setting * @param non-empty-string $value @@ -443,6 +479,15 @@ abstract readonly class Metadata return new TestDox(self::METHOD_LEVEL, $text); } + /** + * @param class-string $className + * @param non-empty-string $methodName + */ + public static function testDoxFormatter(string $className, string $methodName): TestDoxFormatter + { + return new TestDoxFormatter(self::METHOD_LEVEL, $className, $methodName); + } + /** * @param ?non-empty-string $name */ @@ -451,6 +496,14 @@ abstract readonly class Metadata return new TestWith(self::METHOD_LEVEL, $data, $name); } + /** + * @param non-empty-string $namespace + */ + public static function usesNamespace(string $namespace): UsesNamespace + { + return new UsesNamespace(self::CLASS_LEVEL, $namespace); + } + /** * @param class-string $className */ @@ -459,6 +512,22 @@ abstract readonly class Metadata return new UsesClass(self::CLASS_LEVEL, $className); } + /** + * @param class-string $className + */ + public static function usesClassesThatExtendClass(string $className): UsesClassesThatExtendClass + { + return new UsesClassesThatExtendClass(self::CLASS_LEVEL, $className); + } + + /** + * @param class-string $interfaceName + */ + public static function usesClassesThatImplementInterface(string $interfaceName): UsesClassesThatImplementInterface + { + return new UsesClassesThatImplementInterface(self::CLASS_LEVEL, $interfaceName); + } + /** * @param trait-string $traitName */ @@ -484,37 +553,21 @@ abstract readonly class Metadata return new UsesMethod(self::CLASS_LEVEL, $className, $methodName); } - /** - * @param non-empty-string $target - */ - public static function usesOnClass(string $target): Uses - { - return new Uses(self::CLASS_LEVEL, $target); - } - - /** - * @param non-empty-string $target - */ - public static function usesOnMethod(string $target): Uses - { - return new Uses(self::METHOD_LEVEL, $target); - } - - /** - * @param class-string $className - */ - public static function usesDefaultClass(string $className): UsesDefaultClass - { - return new UsesDefaultClass(self::CLASS_LEVEL, $className); - } - public static function withoutErrorHandler(): WithoutErrorHandler { return new WithoutErrorHandler(self::METHOD_LEVEL); } /** - * @param 0|1 $level + * @param null|non-empty-string $messagePattern + */ + public static function ignorePhpunitWarnings(?string $messagePattern): IgnorePhpunitWarnings + { + return new IgnorePhpunitWarnings(self::METHOD_LEVEL, $messagePattern); + } + + /** + * @param int<0, 1> $level */ protected function __construct(int $level) { @@ -547,6 +600,14 @@ abstract readonly class Metadata return false; } + /** + * @phpstan-assert-if-true AllowMockObjectsWithoutExpectations $this + */ + public function isAllowMockObjectsWithoutExpectations(): bool + { + return false; + } + /** * @phpstan-assert-if-true BackupGlobals $this */ @@ -580,9 +641,9 @@ abstract readonly class Metadata } /** - * @phpstan-assert-if-true Covers $this + * @phpstan-assert-if-true CoversNamespace $this */ - public function isCovers(): bool + public function isCoversNamespace(): bool { return false; } @@ -596,9 +657,17 @@ abstract readonly class Metadata } /** - * @phpstan-assert-if-true CoversDefaultClass $this + * @phpstan-assert-if-true CoversClassesThatExtendClass $this */ - public function isCoversDefaultClass(): bool + public function isCoversClassesThatExtendClass(): bool + { + return false; + } + + /** + * @phpstan-assert-if-true CoversClassesThatImplementInterface $this + */ + public function isCoversClassesThatImplementInterface(): bool { return false; } @@ -837,6 +906,22 @@ abstract readonly class Metadata return false; } + /** + * @phpstan-assert-if-true RequiresEnvironmentVariable $this + */ + public function isRequiresEnvironmentVariable(): bool + { + return false; + } + + /** + * @phpstan-assert-if-true WithEnvironmentVariable $this + */ + public function isWithEnvironmentVariable(): bool + { + return false; + } + /** * @phpstan-assert-if-true RequiresSetting $this */ @@ -853,6 +938,14 @@ abstract readonly class Metadata return false; } + /** + * @phpstan-assert-if-true TestDoxFormatter $this + */ + public function isTestDoxFormatter(): bool + { + return false; + } + /** * @phpstan-assert-if-true TestWith $this */ @@ -862,9 +955,9 @@ abstract readonly class Metadata } /** - * @phpstan-assert-if-true Uses $this + * @phpstan-assert-if-true UsesNamespace $this */ - public function isUses(): bool + public function isUsesNamespace(): bool { return false; } @@ -878,9 +971,17 @@ abstract readonly class Metadata } /** - * @phpstan-assert-if-true UsesDefaultClass $this + * @phpstan-assert-if-true UsesClassesThatExtendClass $this */ - public function isUsesDefaultClass(): bool + public function isUsesClassesThatExtendClass(): bool + { + return false; + } + + /** + * @phpstan-assert-if-true UsesClassesThatImplementInterface $this + */ + public function isUsesClassesThatImplementInterface(): bool { return false; } @@ -916,4 +1017,12 @@ abstract readonly class Metadata { return false; } + + /** + * @phpstan-assert-if-true IgnorePhpunitWarnings $this + */ + public function isIgnorePhpunitWarnings(): bool + { + return false; + } } diff --git a/vendor/phpunit/phpunit/src/Metadata/MetadataCollection.php b/vendor/phpunit/phpunit/src/Metadata/MetadataCollection.php index 44cce5a0c..b12af88c2 100644 --- a/vendor/phpunit/phpunit/src/Metadata/MetadataCollection.php +++ b/vendor/phpunit/phpunit/src/Metadata/MetadataCollection.php @@ -55,11 +55,19 @@ final readonly class MetadataCollection implements Countable, IteratorAggregate return count($this->metadata); } + /** + * @phpstan-assert-if-true 0 $this->count() + * @phpstan-assert-if-true array{} $this->asArray() + */ public function isEmpty(): bool { return $this->count() === 0; } + /** + * @phpstan-assert-if-true positive-int $this->count() + * @phpstan-assert-if-true non-empty-list $this->asArray() + */ public function isNotEmpty(): bool { return $this->count() > 0; @@ -120,6 +128,16 @@ final readonly class MetadataCollection implements Countable, IteratorAggregate ); } + public function isAllowMockObjectsWithoutExpectations(): self + { + return new self( + ...array_filter( + $this->metadata, + static fn (Metadata $metadata): bool => $metadata->isAllowMockObjectsWithoutExpectations(), + ), + ); + } + public function isBackupGlobals(): self { return new self( @@ -160,12 +178,12 @@ final readonly class MetadataCollection implements Countable, IteratorAggregate ); } - public function isCovers(): self + public function isCoversNamespace(): self { return new self( ...array_filter( $this->metadata, - static fn (Metadata $metadata): bool => $metadata->isCovers(), + static fn (Metadata $metadata): bool => $metadata->isCoversNamespace(), ), ); } @@ -180,12 +198,22 @@ final readonly class MetadataCollection implements Countable, IteratorAggregate ); } - public function isCoversDefaultClass(): self + public function isCoversClassesThatExtendClass(): self { return new self( ...array_filter( $this->metadata, - static fn (Metadata $metadata): bool => $metadata->isCoversDefaultClass(), + static fn (Metadata $metadata): bool => $metadata->isCoversClassesThatExtendClass(), + ), + ); + } + + public function isCoversClassesThatImplementInterface(): self + { + return new self( + ...array_filter( + $this->metadata, + static fn (Metadata $metadata): bool => $metadata->isCoversClassesThatImplementInterface(), ), ); } @@ -343,6 +371,16 @@ final readonly class MetadataCollection implements Countable, IteratorAggregate ); } + public function isIgnorePhpunitWarnings(): self + { + return new self( + ...array_filter( + $this->metadata, + static fn (Metadata $metadata): bool => $metadata->isIgnorePhpunitWarnings(), + ), + ); + } + public function isRunClassInSeparateProcess(): self { return new self( @@ -493,6 +531,26 @@ final readonly class MetadataCollection implements Countable, IteratorAggregate ); } + public function isRequiresEnvironmentVariable(): self + { + return new self( + ...array_filter( + $this->metadata, + static fn (Metadata $metadata): bool => $metadata->isRequiresEnvironmentVariable(), + ), + ); + } + + public function isWithEnvironmentVariable(): self + { + return new self( + ...array_filter( + $this->metadata, + static fn (Metadata $metadata): bool => $metadata->isWithEnvironmentVariable(), + ), + ); + } + public function isRequiresSetting(): self { return new self( @@ -513,6 +571,16 @@ final readonly class MetadataCollection implements Countable, IteratorAggregate ); } + public function isTestDoxFormatter(): self + { + return new self( + ...array_filter( + $this->metadata, + static fn (Metadata $metadata): bool => $metadata->isTestDoxFormatter(), + ), + ); + } + public function isTestWith(): self { return new self( @@ -523,12 +591,12 @@ final readonly class MetadataCollection implements Countable, IteratorAggregate ); } - public function isUses(): self + public function isUsesNamespace(): self { return new self( ...array_filter( $this->metadata, - static fn (Metadata $metadata): bool => $metadata->isUses(), + static fn (Metadata $metadata): bool => $metadata->isUsesNamespace(), ), ); } @@ -543,12 +611,22 @@ final readonly class MetadataCollection implements Countable, IteratorAggregate ); } - public function isUsesDefaultClass(): self + public function isUsesClassesThatExtendClass(): self { return new self( ...array_filter( $this->metadata, - static fn (Metadata $metadata): bool => $metadata->isUsesDefaultClass(), + static fn (Metadata $metadata): bool => $metadata->isUsesClassesThatExtendClass(), + ), + ); + } + + public function isUsesClassesThatImplementInterface(): self + { + return new self( + ...array_filter( + $this->metadata, + static fn (Metadata $metadata): bool => $metadata->isUsesClassesThatImplementInterface(), ), ); } diff --git a/vendor/phpunit/phpunit/src/Metadata/Parser/Annotation/DocBlock.php b/vendor/phpunit/phpunit/src/Metadata/Parser/Annotation/DocBlock.php deleted file mode 100644 index d2fa55309..000000000 --- a/vendor/phpunit/phpunit/src/Metadata/Parser/Annotation/DocBlock.php +++ /dev/null @@ -1,277 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Metadata\Annotation\Parser; - -use function array_filter; -use function array_map; -use function array_merge; -use function array_values; -use function count; -use function preg_match; -use function preg_match_all; -use function preg_replace; -use function preg_split; -use function realpath; -use function substr; -use function trim; -use PharIo\Version\Exception as PharIoVersionException; -use PharIo\Version\VersionConstraintParser; -use PHPUnit\Metadata\AnnotationsAreNotSupportedForInternalClassesException; -use PHPUnit\Metadata\InvalidVersionRequirementException; -use ReflectionClass; -use ReflectionFunctionAbstract; -use ReflectionMethod; - -/** - * This is an abstraction around a PHPUnit-specific docBlock, - * allowing us to ask meaningful questions about a specific - * reflection symbol. - * - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - * - * @internal This class is not covered by the backward compatibility promise for PHPUnit - */ -final class DocBlock -{ - private const REGEX_REQUIRES_VERSION = '/@requires\s+(?PPHP(?:Unit)?)\s+(?P[<>=!]{0,2})\s*(?P[\d\.-]+(dev|(RC|alpha|beta)[\d\.])?)[ \t]*\r?$/m'; - private const REGEX_REQUIRES_VERSION_CONSTRAINT = '/@requires\s+(?PPHP(?:Unit)?)\s+(?P[\d\t \-.|~^]+)[ \t]*\r?$/m'; - private const REGEX_REQUIRES_OS = '/@requires\s+(?POS(?:FAMILY)?)\s+(?P.+?)[ \t]*\r?$/m'; - private const REGEX_REQUIRES_SETTING = '/@requires\s+(?Psetting)\s+(?P([^ ]+?))\s*(?P[\w\.-]+[\w\.]?)?[ \t]*\r?$/m'; - private const REGEX_REQUIRES = '/@requires\s+(?Pfunction|extension)\s+(?P([^\s<>=!]+))\s*(?P[<>=!]{0,2})\s*(?P[\d\.-]+[\d\.]?)?[ \t]*\r?$/m'; - private readonly string $docComment; - - /** - * @var array> pre-parsed annotations indexed by name and occurrence index - */ - private readonly array $symbolAnnotations; - - /** - * @psalm-var null|(array< - * string, - * array|array{constraint: string}|array{version: string, operator: string}|string - * >&array{ - * __OFFSET: array&array{__FILE: string}, - * setting?: array, - * extension_versions?: array - * }) - * - * @phpstan-ignore missingType.iterableValue - */ - private ?array $parsedRequirements = null; - private readonly int $startLine; - private readonly string $fileName; - - /** - * @throws AnnotationsAreNotSupportedForInternalClassesException - * - * @phpstan-ignore missingType.generics - */ - public static function ofClass(ReflectionClass $class): self - { - if ($class->isInternal()) { - throw new AnnotationsAreNotSupportedForInternalClassesException($class->getName()); - } - - return new self( - (string) $class->getDocComment(), - self::extractAnnotationsFromReflector($class), - $class->getStartLine(), - $class->getFileName(), - ); - } - - /** - * @throws AnnotationsAreNotSupportedForInternalClassesException - */ - public static function ofMethod(ReflectionMethod $method): self - { - if ($method->getDeclaringClass()->isInternal()) { - throw new AnnotationsAreNotSupportedForInternalClassesException($method->getDeclaringClass()->getName()); - } - - return new self( - (string) $method->getDocComment(), - self::extractAnnotationsFromReflector($method), - $method->getStartLine(), - $method->getFileName(), - ); - } - - /** - * Note: we do not preserve an instance of the reflection object, since it cannot be safely (de-)serialized. - * - * @param array> $symbolAnnotations - */ - private function __construct(string $docComment, array $symbolAnnotations, int $startLine, string $fileName) - { - $this->docComment = $docComment; - $this->symbolAnnotations = $symbolAnnotations; - $this->startLine = $startLine; - $this->fileName = $fileName; - } - - /** - * @psalm-return array{ - * __OFFSET: array&array{__FILE: string}, - * setting?: array, - * extension_versions?: array - * }&array< - * string, - * string|array{version: string, operator: string}|array{constraint: string}|array - * > - * - * @phpstan-ignore missingType.iterableValue - */ - public function requirements(): array - { - if ($this->parsedRequirements !== null) { - return $this->parsedRequirements; - } - - $offset = $this->startLine; - $requires = []; - $recordedSettings = []; - $extensionVersions = []; - $recordedOffsets = [ - '__FILE' => realpath($this->fileName), - ]; - - // Trim docblock markers, split it into lines and rewind offset to start of docblock - $lines = preg_replace(['#^/\*{2}#', '#\*/$#'], '', preg_split('/\r\n|\r|\n/', $this->docComment)); - $offset -= count($lines); - - foreach ($lines as $line) { - if (preg_match(self::REGEX_REQUIRES_OS, $line, $matches)) { - $requires[$matches['name']] = $matches['value']; - $recordedOffsets[$matches['name']] = $offset; - } - - if (preg_match(self::REGEX_REQUIRES_VERSION, $line, $matches)) { - $requires[$matches['name']] = [ - 'version' => $matches['version'], - 'operator' => $matches['operator'], - ]; - - $recordedOffsets[$matches['name']] = $offset; - } - - if (preg_match(self::REGEX_REQUIRES_VERSION_CONSTRAINT, $line, $matches)) { - if (!empty($requires[$matches['name']])) { - $offset++; - - continue; - } - - try { - $versionConstraintParser = new VersionConstraintParser; - - $requires[$matches['name'] . '_constraint'] = [ - 'constraint' => $versionConstraintParser->parse(trim($matches['constraint'])), - ]; - - $recordedOffsets[$matches['name'] . '_constraint'] = $offset; - } catch (PharIoVersionException $e) { - throw new InvalidVersionRequirementException( - $e->getMessage(), - $e->getCode(), - $e, - ); - } - } - - if (preg_match(self::REGEX_REQUIRES_SETTING, $line, $matches)) { - $recordedSettings[$matches['setting']] = $matches['value']; - $recordedOffsets['__SETTING_' . $matches['setting']] = $offset; - } - - if (preg_match(self::REGEX_REQUIRES, $line, $matches)) { - $name = $matches['name'] . 's'; - - if (!isset($requires[$name])) { - $requires[$name] = []; - } - - $requires[$name][] = $matches['value']; - $recordedOffsets[$matches['name'] . '_' . $matches['value']] = $offset; - - if ($name === 'extensions' && !empty($matches['version'])) { - $extensionVersions[$matches['value']] = [ - 'version' => $matches['version'], - 'operator' => $matches['operator'], - ]; - } - } - - $offset++; - } - - return $this->parsedRequirements = array_merge( - $requires, - ['__OFFSET' => $recordedOffsets], - array_filter( - [ - 'setting' => $recordedSettings, - 'extension_versions' => $extensionVersions, - ], - ), - ); - } - - /** - * @return array> - */ - public function symbolAnnotations(): array - { - return $this->symbolAnnotations; - } - - /** - * @return array> - */ - private static function parseDocBlock(string $docBlock): array - { - // Strip away the docblock header and footer to ease parsing of one line annotations - $docBlock = substr($docBlock, 3, -2); - $annotations = []; - - if (preg_match_all('/@(?P[A-Za-z_-]+)(?:[ \t]+(?P.*?))?[ \t]*\r?$/m', $docBlock, $matches)) { - $numMatches = count($matches[0]); - - for ($i = 0; $i < $numMatches; $i++) { - $annotations[$matches['name'][$i]][] = $matches['value'][$i]; - } - } - - return $annotations; - } - - /** - * @phpstan-ignore missingType.iterableValue, missingType.generics - */ - private static function extractAnnotationsFromReflector(ReflectionClass|ReflectionFunctionAbstract $reflector): array - { - $annotations = []; - - if ($reflector instanceof ReflectionClass) { - $annotations = array_merge( - $annotations, - ...array_map( - static fn (ReflectionClass $trait): array => self::parseDocBlock((string) $trait->getDocComment()), - array_values($reflector->getTraits()), - ), - ); - } - - return array_merge( - $annotations, - self::parseDocBlock((string) $reflector->getDocComment()), - ); - } -} diff --git a/vendor/phpunit/phpunit/src/Metadata/Parser/Annotation/Registry.php b/vendor/phpunit/phpunit/src/Metadata/Parser/Annotation/Registry.php deleted file mode 100644 index eb8a1b511..000000000 --- a/vendor/phpunit/phpunit/src/Metadata/Parser/Annotation/Registry.php +++ /dev/null @@ -1,100 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Metadata\Annotation\Parser; - -use function array_key_exists; -use PHPUnit\Metadata\AnnotationsAreNotSupportedForInternalClassesException; -use PHPUnit\Metadata\ReflectionException; -use ReflectionClass; -use ReflectionMethod; - -/** - * Reflection information, and therefore DocBlock information, is static within - * a single PHP process. It is therefore okay to use a Singleton registry here. - * - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - * - * @internal This class is not covered by the backward compatibility promise for PHPUnit - */ -final class Registry -{ - private static ?Registry $instance = null; - - /** - * @var array indexed by class name - */ - private array $classDocBlocks = []; - - /** - * @var array> indexed by class name and method name - */ - private array $methodDocBlocks = []; - - public static function getInstance(): self - { - return self::$instance ?? self::$instance = new self; - } - - /** - * @param class-string $class - * - * @throws AnnotationsAreNotSupportedForInternalClassesException - * @throws ReflectionException - */ - public function forClassName(string $class): DocBlock - { - if (array_key_exists($class, $this->classDocBlocks)) { - return $this->classDocBlocks[$class]; - } - - try { - $reflection = new ReflectionClass($class); - - // @codeCoverageIgnoreStart - /** @phpstan-ignore catch.neverThrown */ - } catch (\ReflectionException $e) { - throw new ReflectionException( - $e->getMessage(), - $e->getCode(), - $e, - ); - } - // @codeCoverageIgnoreEnd - - return $this->classDocBlocks[$class] = DocBlock::ofClass($reflection); - } - - /** - * @param class-string $classInHierarchy - * - * @throws AnnotationsAreNotSupportedForInternalClassesException - * @throws ReflectionException - */ - public function forMethod(string $classInHierarchy, string $method): DocBlock - { - if (isset($this->methodDocBlocks[$classInHierarchy][$method])) { - return $this->methodDocBlocks[$classInHierarchy][$method]; - } - - try { - $reflection = new ReflectionMethod($classInHierarchy, $method); - // @codeCoverageIgnoreStart - } catch (\ReflectionException $e) { - throw new ReflectionException( - $e->getMessage(), - $e->getCode(), - $e, - ); - } - // @codeCoverageIgnoreEnd - - return $this->methodDocBlocks[$classInHierarchy][$method] = DocBlock::ofMethod($reflection); - } -} diff --git a/vendor/phpunit/phpunit/src/Metadata/Parser/AnnotationParser.php b/vendor/phpunit/phpunit/src/Metadata/Parser/AnnotationParser.php deleted file mode 100644 index 691723040..000000000 --- a/vendor/phpunit/phpunit/src/Metadata/Parser/AnnotationParser.php +++ /dev/null @@ -1,605 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Metadata\Parser; - -use function array_merge; -use function assert; -use function class_exists; -use function count; -use function explode; -use function method_exists; -use function preg_replace; -use function rtrim; -use function sprintf; -use function str_contains; -use function str_starts_with; -use function strlen; -use function substr; -use function trim; -use PHPUnit\Event\Facade as EventFacade; -use PHPUnit\Metadata\Annotation\Parser\Registry as AnnotationRegistry; -use PHPUnit\Metadata\AnnotationsAreNotSupportedForInternalClassesException; -use PHPUnit\Metadata\InvalidVersionRequirementException; -use PHPUnit\Metadata\Metadata; -use PHPUnit\Metadata\MetadataCollection; -use PHPUnit\Metadata\ReflectionException; -use PHPUnit\Metadata\Version\ComparisonRequirement; -use PHPUnit\Metadata\Version\ConstraintRequirement; -use PHPUnit\Util\InvalidVersionOperatorException; -use PHPUnit\Util\VersionComparisonOperator; - -/** - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - * - * @internal This class is not covered by the backward compatibility promise for PHPUnit - */ -final class AnnotationParser implements Parser -{ - /** - * @var array - */ - private static array $deprecationEmittedForClass = []; - - /** - * @var array - */ - private static array $deprecationEmittedForMethod = []; - - /** - * @param class-string $className - * - * @throws AnnotationsAreNotSupportedForInternalClassesException - * @throws InvalidVersionOperatorException - * @throws ReflectionException - */ - public function forClass(string $className): MetadataCollection - { - assert(class_exists($className)); - - $result = []; - - foreach (AnnotationRegistry::getInstance()->forClassName($className)->symbolAnnotations() as $annotation => $values) { - switch ($annotation) { - case 'backupGlobals': - $result[] = Metadata::backupGlobalsOnClass($this->stringToBool($values[0])); - - break; - - case 'backupStaticAttributes': - case 'backupStaticProperties': - $result[] = Metadata::backupStaticPropertiesOnClass($this->stringToBool($values[0])); - - break; - - case 'covers': - foreach ($values as $value) { - $value = $this->cleanUpCoversOrUsesTarget($value); - - $result[] = Metadata::coversOnClass($value); - } - - break; - - case 'coversDefaultClass': - foreach ($values as $value) { - $result[] = Metadata::coversDefaultClass($value); - } - - break; - - case 'coversNothing': - $result[] = Metadata::coversNothingOnClass(); - - break; - - case 'doesNotPerformAssertions': - $result[] = Metadata::doesNotPerformAssertionsOnClass(); - - break; - - case 'group': - case 'ticket': - foreach ($values as $value) { - $result[] = Metadata::groupOnClass($value); - } - - break; - - case 'large': - $result[] = Metadata::groupOnClass('large'); - - break; - - case 'medium': - $result[] = Metadata::groupOnClass('medium'); - - break; - - case 'preserveGlobalState': - $result[] = Metadata::preserveGlobalStateOnClass($this->stringToBool($values[0])); - - break; - - case 'runClassInSeparateProcess': - $result[] = Metadata::runClassInSeparateProcess(); - - break; - - case 'runTestsInSeparateProcesses': - $result[] = Metadata::runTestsInSeparateProcesses(); - - break; - - case 'small': - $result[] = Metadata::groupOnClass('small'); - - break; - - case 'testdox': - $result[] = Metadata::testDoxOnClass($values[0]); - - break; - - case 'uses': - foreach ($values as $value) { - $value = $this->cleanUpCoversOrUsesTarget($value); - - $result[] = Metadata::usesOnClass($value); - } - - break; - - case 'usesDefaultClass': - foreach ($values as $value) { - $result[] = Metadata::usesDefaultClass($value); - } - - break; - } - } - - try { - $result = array_merge( - $result, - $this->parseRequirements( - AnnotationRegistry::getInstance()->forClassName($className)->requirements(), - 'class', - ), - ); - } catch (InvalidVersionRequirementException $e) { - EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( - sprintf( - 'Class %s is annotated using an invalid version requirement: %s', - $className, - $e->getMessage(), - ), - ); - } - - if (!empty($result) && - !isset(self::$deprecationEmittedForClass[$className]) && - !str_starts_with($className, 'PHPUnit\TestFixture')) { - self::$deprecationEmittedForClass[$className] = true; - - EventFacade::emitter()->testRunnerTriggeredPhpunitDeprecation( - sprintf( - 'Metadata found in doc-comment for class %s. Metadata in doc-comments is deprecated and will no longer be supported in PHPUnit 12. Update your test code to use attributes instead.', - $className, - ), - ); - } - - return MetadataCollection::fromArray($result); - } - - /** - * @param class-string $className - * @param non-empty-string $methodName - * - * @throws AnnotationsAreNotSupportedForInternalClassesException - * @throws InvalidVersionOperatorException - * @throws ReflectionException - */ - public function forMethod(string $className, string $methodName): MetadataCollection - { - assert(class_exists($className)); - assert(method_exists($className, $methodName)); - - $result = []; - - foreach (AnnotationRegistry::getInstance()->forMethod($className, $methodName)->symbolAnnotations() as $annotation => $values) { - switch ($annotation) { - case 'after': - $result[] = Metadata::after(0); - - break; - - case 'afterClass': - $result[] = Metadata::afterClass(0); - - break; - - case 'backupGlobals': - $result[] = Metadata::backupGlobalsOnMethod($this->stringToBool($values[0])); - - break; - - case 'backupStaticAttributes': - case 'backupStaticProperties': - $result[] = Metadata::backupStaticPropertiesOnMethod($this->stringToBool($values[0])); - - break; - - case 'before': - $result[] = Metadata::before(0); - - break; - - case 'beforeClass': - $result[] = Metadata::beforeClass(0); - - break; - - case 'covers': - foreach ($values as $value) { - $value = $this->cleanUpCoversOrUsesTarget($value); - - $result[] = Metadata::coversOnMethod($value); - } - - break; - - case 'coversNothing': - $result[] = Metadata::coversNothingOnMethod(); - - break; - - case 'dataProvider': - foreach ($values as $value) { - $value = rtrim($value, " ()\n\r\t\v\x00"); - - if (str_contains($value, '::')) { - $result[] = Metadata::dataProvider(...explode('::', $value)); - - continue; - } - - $result[] = Metadata::dataProvider($className, $value); - } - - break; - - case 'depends': - foreach ($values as $value) { - $deepClone = false; - $shallowClone = false; - - if (str_starts_with($value, 'clone ')) { - $deepClone = true; - $value = substr($value, strlen('clone ')); - } elseif (str_starts_with($value, '!clone ')) { - $value = substr($value, strlen('!clone ')); - } elseif (str_starts_with($value, 'shallowClone ')) { - $shallowClone = true; - $value = substr($value, strlen('shallowClone ')); - } elseif (str_starts_with($value, '!shallowClone ')) { - $value = substr($value, strlen('!shallowClone ')); - } - - if (str_contains($value, '::')) { - [$_className, $_methodName] = explode('::', $value); - - assert($_className !== ''); - assert($_methodName !== ''); - - if ($_methodName === 'class') { - $result[] = Metadata::dependsOnClass($_className, $deepClone, $shallowClone); - - continue; - } - - $result[] = Metadata::dependsOnMethod($_className, $_methodName, $deepClone, $shallowClone); - - continue; - } - - $result[] = Metadata::dependsOnMethod($className, $value, $deepClone, $shallowClone); - } - - break; - - case 'doesNotPerformAssertions': - $result[] = Metadata::doesNotPerformAssertionsOnMethod(); - - break; - - case 'excludeGlobalVariableFromBackup': - foreach ($values as $value) { - $result[] = Metadata::excludeGlobalVariableFromBackupOnMethod($value); - } - - break; - - case 'excludeStaticPropertyFromBackup': - foreach ($values as $value) { - $tmp = explode(' ', $value); - - if (count($tmp) !== 2) { - continue; - } - - $result[] = Metadata::excludeStaticPropertyFromBackupOnMethod( - trim($tmp[0]), - trim($tmp[1]), - ); - } - - break; - - case 'group': - case 'ticket': - foreach ($values as $value) { - $result[] = Metadata::groupOnMethod($value); - } - - break; - - case 'large': - $result[] = Metadata::groupOnMethod('large'); - - break; - - case 'medium': - $result[] = Metadata::groupOnMethod('medium'); - - break; - - case 'postCondition': - $result[] = Metadata::postCondition(0); - - break; - - case 'preCondition': - $result[] = Metadata::preCondition(0); - - break; - - case 'preserveGlobalState': - $result[] = Metadata::preserveGlobalStateOnMethod($this->stringToBool($values[0])); - - break; - - case 'runInSeparateProcess': - $result[] = Metadata::runInSeparateProcess(); - - break; - - case 'small': - $result[] = Metadata::groupOnMethod('small'); - - break; - - case 'test': - $result[] = Metadata::test(); - - break; - - case 'testdox': - $result[] = Metadata::testDoxOnMethod($values[0]); - - break; - - case 'uses': - foreach ($values as $value) { - $value = $this->cleanUpCoversOrUsesTarget($value); - - $result[] = Metadata::usesOnMethod($value); - } - - break; - } - } - - try { - $result = array_merge( - $result, - $this->parseRequirements( - AnnotationRegistry::getInstance()->forMethod($className, $methodName)->requirements(), - 'method', - ), - ); - } catch (InvalidVersionRequirementException $e) { - EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( - sprintf( - 'Method %s::%s is annotated using an invalid version requirement: %s', - $className, - $methodName, - $e->getMessage(), - ), - ); - } - - if (!empty($result) && - !isset(self::$deprecationEmittedForMethod[$className . '::' . $methodName]) && - !str_starts_with($className, 'PHPUnit\TestFixture')) { - self::$deprecationEmittedForMethod[$className . '::' . $methodName] = true; - - EventFacade::emitter()->testRunnerTriggeredPhpunitDeprecation( - sprintf( - 'Metadata found in doc-comment for method %s::%s(). Metadata in doc-comments is deprecated and will no longer be supported in PHPUnit 12. Update your test code to use attributes instead.', - $className, - $methodName, - ), - ); - } - - return MetadataCollection::fromArray($result); - } - - /** - * @param class-string $className - * @param non-empty-string $methodName - * - * @throws AnnotationsAreNotSupportedForInternalClassesException - * @throws InvalidVersionOperatorException - * @throws ReflectionException - */ - public function forClassAndMethod(string $className, string $methodName): MetadataCollection - { - return $this->forClass($className)->mergeWith( - $this->forMethod($className, $methodName), - ); - } - - private function stringToBool(string $value): bool - { - if ($value === 'enabled') { - return true; - } - - return false; - } - - private function cleanUpCoversOrUsesTarget(string $value): string - { - $value = preg_replace('/[\s()]+$/', '', $value); - - return explode(' ', $value, 2)[0]; - } - - /** - * @throws InvalidVersionOperatorException - * - * @return list - * - * @phpstan-ignore missingType.iterableValue - */ - private function parseRequirements(array $requirements, string $level): array - { - $result = []; - - if (!empty($requirements['PHP'])) { - $versionRequirement = new ComparisonRequirement( - $requirements['PHP']['version'], - new VersionComparisonOperator(empty($requirements['PHP']['operator']) ? '>=' : $requirements['PHP']['operator']), - ); - - if ($level === 'class') { - $result[] = Metadata::requiresPhpOnClass($versionRequirement); - } else { - $result[] = Metadata::requiresPhpOnMethod($versionRequirement); - } - } elseif (!empty($requirements['PHP_constraint'])) { - $versionRequirement = new ConstraintRequirement($requirements['PHP_constraint']['constraint']); - - if ($level === 'class') { - $result[] = Metadata::requiresPhpOnClass($versionRequirement); - } else { - $result[] = Metadata::requiresPhpOnMethod($versionRequirement); - } - } - - if (!empty($requirements['extensions'])) { - foreach ($requirements['extensions'] as $extension) { - if (isset($requirements['extension_versions'][$extension])) { - continue; - } - - if ($level === 'class') { - $result[] = Metadata::requiresPhpExtensionOnClass($extension, null); - } else { - $result[] = Metadata::requiresPhpExtensionOnMethod($extension, null); - } - } - } - - if (!empty($requirements['extension_versions'])) { - foreach ($requirements['extension_versions'] as $extension => $version) { - $versionRequirement = new ComparisonRequirement( - $version['version'], - new VersionComparisonOperator(empty($version['operator']) ? '>=' : $version['operator']), - ); - - if ($level === 'class') { - $result[] = Metadata::requiresPhpExtensionOnClass($extension, $versionRequirement); - } else { - $result[] = Metadata::requiresPhpExtensionOnMethod($extension, $versionRequirement); - } - } - } - - if (!empty($requirements['PHPUnit'])) { - $versionRequirement = new ComparisonRequirement( - $requirements['PHPUnit']['version'], - new VersionComparisonOperator(empty($requirements['PHPUnit']['operator']) ? '>=' : $requirements['PHPUnit']['operator']), - ); - - if ($level === 'class') { - $result[] = Metadata::requiresPhpunitOnClass($versionRequirement); - } else { - $result[] = Metadata::requiresPhpunitOnMethod($versionRequirement); - } - } elseif (!empty($requirements['PHPUnit_constraint'])) { - $versionRequirement = new ConstraintRequirement($requirements['PHPUnit_constraint']['constraint']); - - if ($level === 'class') { - $result[] = Metadata::requiresPhpunitOnClass($versionRequirement); - } else { - $result[] = Metadata::requiresPhpunitOnMethod($versionRequirement); - } - } - - if (!empty($requirements['OSFAMILY'])) { - if ($level === 'class') { - $result[] = Metadata::requiresOperatingSystemFamilyOnClass($requirements['OSFAMILY']); - } else { - $result[] = Metadata::requiresOperatingSystemFamilyOnMethod($requirements['OSFAMILY']); - } - } - - if (!empty($requirements['OS'])) { - if ($level === 'class') { - $result[] = Metadata::requiresOperatingSystemOnClass($requirements['OS']); - } else { - $result[] = Metadata::requiresOperatingSystemOnMethod($requirements['OS']); - } - } - - if (!empty($requirements['functions'])) { - foreach ($requirements['functions'] as $function) { - $pieces = explode('::', $function); - - if (count($pieces) === 2) { - if ($level === 'class') { - $result[] = Metadata::requiresMethodOnClass($pieces[0], $pieces[1]); - } else { - $result[] = Metadata::requiresMethodOnMethod($pieces[0], $pieces[1]); - } - } elseif ($level === 'class') { - $result[] = Metadata::requiresFunctionOnClass($function); - } else { - $result[] = Metadata::requiresFunctionOnMethod($function); - } - } - } - - if (!empty($requirements['setting'])) { - foreach ($requirements['setting'] as $setting => $value) { - if ($level === 'class') { - $result[] = Metadata::requiresSettingOnClass($setting, $value); - } else { - $result[] = Metadata::requiresSettingOnMethod($setting, $value); - } - } - } - - return $result; - } -} diff --git a/vendor/phpunit/phpunit/src/Metadata/Parser/AttributeParser.php b/vendor/phpunit/phpunit/src/Metadata/Parser/AttributeParser.php index be346357a..798f7517c 100644 --- a/vendor/phpunit/phpunit/src/Metadata/Parser/AttributeParser.php +++ b/vendor/phpunit/phpunit/src/Metadata/Parser/AttributeParser.php @@ -12,6 +12,7 @@ namespace PHPUnit\Metadata\Parser; use const JSON_THROW_ON_ERROR; use function assert; use function class_exists; +use function is_numeric; use function json_decode; use function method_exists; use function sprintf; @@ -22,13 +23,17 @@ use Error; use PHPUnit\Event\Facade as EventFacade; use PHPUnit\Framework\Attributes\After; use PHPUnit\Framework\Attributes\AfterClass; +use PHPUnit\Framework\Attributes\AllowMockObjectsWithoutExpectations; use PHPUnit\Framework\Attributes\BackupGlobals; use PHPUnit\Framework\Attributes\BackupStaticProperties; use PHPUnit\Framework\Attributes\Before; use PHPUnit\Framework\Attributes\BeforeClass; use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversClassesThatExtendClass; +use PHPUnit\Framework\Attributes\CoversClassesThatImplementInterface; use PHPUnit\Framework\Attributes\CoversFunction; use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversNamespace; use PHPUnit\Framework\Attributes\CoversNothing; use PHPUnit\Framework\Attributes\CoversTrait; use PHPUnit\Framework\Attributes\DataProvider; @@ -49,11 +54,13 @@ use PHPUnit\Framework\Attributes\ExcludeStaticPropertyFromBackup; use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\Attributes\IgnoreDeprecations; use PHPUnit\Framework\Attributes\IgnorePhpunitDeprecations; +use PHPUnit\Framework\Attributes\IgnorePhpunitWarnings; use PHPUnit\Framework\Attributes\Large; use PHPUnit\Framework\Attributes\Medium; use PHPUnit\Framework\Attributes\PostCondition; use PHPUnit\Framework\Attributes\PreCondition; use PHPUnit\Framework\Attributes\PreserveGlobalState; +use PHPUnit\Framework\Attributes\RequiresEnvironmentVariable; use PHPUnit\Framework\Attributes\RequiresFunction; use PHPUnit\Framework\Attributes\RequiresMethod; use PHPUnit\Framework\Attributes\RequiresOperatingSystem; @@ -69,15 +76,22 @@ use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses; use PHPUnit\Framework\Attributes\Small; use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\Attributes\TestDox; +use PHPUnit\Framework\Attributes\TestDoxFormatter; +use PHPUnit\Framework\Attributes\TestDoxFormatterExternal; use PHPUnit\Framework\Attributes\TestWith; use PHPUnit\Framework\Attributes\TestWithJson; use PHPUnit\Framework\Attributes\Ticket; use PHPUnit\Framework\Attributes\UsesClass; +use PHPUnit\Framework\Attributes\UsesClassesThatExtendClass; +use PHPUnit\Framework\Attributes\UsesClassesThatImplementInterface; use PHPUnit\Framework\Attributes\UsesFunction; use PHPUnit\Framework\Attributes\UsesMethod; +use PHPUnit\Framework\Attributes\UsesNamespace; use PHPUnit\Framework\Attributes\UsesTrait; +use PHPUnit\Framework\Attributes\WithEnvironmentVariable; use PHPUnit\Framework\Attributes\WithoutErrorHandler; use PHPUnit\Metadata\InvalidAttributeException; +use PHPUnit\Metadata\InvalidVersionRequirementException; use PHPUnit\Metadata\Metadata; use PHPUnit\Metadata\MetadataCollection; use PHPUnit\Metadata\Version\Requirement; @@ -101,6 +115,10 @@ final readonly class AttributeParser implements Parser $reflector = new ReflectionClass($className); $result = []; + $small = false; + $medium = false; + $large = false; + foreach ($reflector->getAttributes() as $attribute) { if (!str_starts_with($attribute->getName(), 'PHPUnit\\Framework\\Attributes\\')) { continue; @@ -123,6 +141,13 @@ final readonly class AttributeParser implements Parser } switch ($attribute->getName()) { + case AllowMockObjectsWithoutExpectations::class: + assert($attributeInstance instanceof AllowMockObjectsWithoutExpectations); + + $result[] = Metadata::allowMockObjectsWithoutExpectationsOnClass(); + + break; + case BackupGlobals::class: assert($attributeInstance instanceof BackupGlobals); @@ -137,6 +162,13 @@ final readonly class AttributeParser implements Parser break; + case CoversNamespace::class: + assert($attributeInstance instanceof CoversNamespace); + + $result[] = Metadata::coversNamespace($attributeInstance->namespace()); + + break; + case CoversClass::class: assert($attributeInstance instanceof CoversClass); @@ -144,6 +176,20 @@ final readonly class AttributeParser implements Parser break; + case CoversClassesThatExtendClass::class: + assert($attributeInstance instanceof CoversClassesThatExtendClass); + + $result[] = Metadata::coversClassesThatExtendClass($attributeInstance->className()); + + break; + + case CoversClassesThatImplementInterface::class: + assert($attributeInstance instanceof CoversClassesThatImplementInterface); + + $result[] = Metadata::coversClassesThatImplementInterface($attributeInstance->interfaceName()); + + break; + case CoversTrait::class: assert($attributeInstance instanceof CoversTrait); @@ -209,20 +255,58 @@ final readonly class AttributeParser implements Parser break; - case Large::class: - $result[] = Metadata::groupOnClass('large'); + case Small::class: + if (!$medium && !$large) { + $result[] = Metadata::groupOnClass('small'); + + $small = true; + } else { + EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( + sprintf( + '#[Small] cannot be combined with #[Medium] or #[Large] for %s', + $this->testAsString($className), + ), + ); + } break; case Medium::class: - $result[] = Metadata::groupOnClass('medium'); + if (!$small && !$large) { + $result[] = Metadata::groupOnClass('medium'); + + $medium = true; + } else { + EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( + sprintf( + '#[Medium] cannot be combined with #[Small] or #[Large] for %s', + $this->testAsString($className), + ), + ); + } + + break; + + case Large::class: + if (!$small && !$medium) { + $result[] = Metadata::groupOnClass('large'); + + $large = true; + } else { + EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( + sprintf( + '#[Large] cannot be combined with #[Small] or #[Medium] for %s', + $this->testAsString($className), + ), + ); + } break; case IgnoreDeprecations::class: assert($attributeInstance instanceof IgnoreDeprecations); - $result[] = Metadata::ignoreDeprecationsOnClass(); + $result[] = Metadata::ignoreDeprecationsOnClass($attributeInstance->messagePattern()); break; @@ -275,8 +359,9 @@ final readonly class AttributeParser implements Parser assert($attributeInstance instanceof RequiresPhp); $result[] = Metadata::requiresPhpOnClass( - Requirement::from( + $this->requirement( $attributeInstance->versionRequirement(), + $className, ), ); @@ -289,7 +374,10 @@ final readonly class AttributeParser implements Parser $versionRequirement = $attributeInstance->versionRequirement(); if ($versionRequirement !== null) { - $versionConstraint = Requirement::from($versionRequirement); + $versionConstraint = $this->requirement( + $versionRequirement, + $className, + ); } $result[] = Metadata::requiresPhpExtensionOnClass( @@ -303,8 +391,9 @@ final readonly class AttributeParser implements Parser assert($attributeInstance instanceof RequiresPhpunit); $result[] = Metadata::requiresPhpunitOnClass( - Requirement::from( + $this->requirement( $attributeInstance->versionRequirement(), + $className, ), ); @@ -319,6 +408,26 @@ final readonly class AttributeParser implements Parser break; + case RequiresEnvironmentVariable::class: + assert($attributeInstance instanceof RequiresEnvironmentVariable); + + $result[] = Metadata::requiresEnvironmentVariableOnClass( + $attributeInstance->environmentVariableName(), + $attributeInstance->value(), + ); + + break; + + case WithEnvironmentVariable::class: + assert($attributeInstance instanceof WithEnvironmentVariable); + + $result[] = Metadata::withEnvironmentVariableOnClass( + $attributeInstance->environmentVariableName(), + $attributeInstance->value(), + ); + + break; + case RequiresSetting::class: assert($attributeInstance instanceof RequiresSetting); @@ -339,11 +448,6 @@ final readonly class AttributeParser implements Parser break; - case Small::class: - $result[] = Metadata::groupOnClass('small'); - - break; - case TestDox::class: assert($attributeInstance instanceof TestDox); @@ -358,6 +462,13 @@ final readonly class AttributeParser implements Parser break; + case UsesNamespace::class: + assert($attributeInstance instanceof UsesNamespace); + + $result[] = Metadata::usesNamespace($attributeInstance->namespace()); + + break; + case UsesClass::class: assert($attributeInstance instanceof UsesClass); @@ -365,6 +476,20 @@ final readonly class AttributeParser implements Parser break; + case UsesClassesThatExtendClass::class: + assert($attributeInstance instanceof UsesClassesThatExtendClass); + + $result[] = Metadata::usesClassesThatExtendClass($attributeInstance->className()); + + break; + + case UsesClassesThatImplementInterface::class: + assert($attributeInstance instanceof UsesClassesThatImplementInterface); + + $result[] = Metadata::usesClassesThatImplementInterface($attributeInstance->interfaceName()); + + break; + case UsesTrait::class: assert($attributeInstance instanceof UsesTrait); @@ -442,6 +567,13 @@ final readonly class AttributeParser implements Parser break; + case AllowMockObjectsWithoutExpectations::class: + assert($attributeInstance instanceof AllowMockObjectsWithoutExpectations); + + $result[] = Metadata::allowMockObjectsWithoutExpectationsOnMethod(); + + break; + case BackupGlobals::class: assert($attributeInstance instanceof BackupGlobals); @@ -478,14 +610,14 @@ final readonly class AttributeParser implements Parser case DataProvider::class: assert($attributeInstance instanceof DataProvider); - $result[] = Metadata::dataProvider($className, $attributeInstance->methodName()); + $result[] = Metadata::dataProvider($className, $attributeInstance->methodName(), $attributeInstance->validateArgumentCount()); break; case DataProviderExternal::class: assert($attributeInstance instanceof DataProviderExternal); - $result[] = Metadata::dataProvider($attributeInstance->className(), $attributeInstance->methodName()); + $result[] = Metadata::dataProvider($attributeInstance->className(), $attributeInstance->methodName(), $attributeInstance->validateArgumentCount()); break; @@ -588,7 +720,7 @@ final readonly class AttributeParser implements Parser case IgnoreDeprecations::class: assert($attributeInstance instanceof IgnoreDeprecations); - $result[] = Metadata::ignoreDeprecationsOnMethod(); + $result[] = Metadata::ignoreDeprecationsOnMethod($attributeInstance->messagePattern()); break; @@ -655,8 +787,10 @@ final readonly class AttributeParser implements Parser assert($attributeInstance instanceof RequiresPhp); $result[] = Metadata::requiresPhpOnMethod( - Requirement::from( + $this->requirement( $attributeInstance->versionRequirement(), + $className, + $methodName, ), ); @@ -669,7 +803,11 @@ final readonly class AttributeParser implements Parser $versionRequirement = $attributeInstance->versionRequirement(); if ($versionRequirement !== null) { - $versionConstraint = Requirement::from($versionRequirement); + $versionConstraint = $this->requirement( + $versionRequirement, + $className, + $methodName, + ); } $result[] = Metadata::requiresPhpExtensionOnMethod( @@ -683,8 +821,10 @@ final readonly class AttributeParser implements Parser assert($attributeInstance instanceof RequiresPhpunit); $result[] = Metadata::requiresPhpunitOnMethod( - Requirement::from( + $this->requirement( $attributeInstance->versionRequirement(), + $className, + $methodName, ), ); @@ -699,6 +839,26 @@ final readonly class AttributeParser implements Parser break; + case RequiresEnvironmentVariable::class: + assert($attributeInstance instanceof RequiresEnvironmentVariable); + + $result[] = Metadata::requiresEnvironmentVariableOnMethod( + $attributeInstance->environmentVariableName(), + $attributeInstance->value(), + ); + + break; + + case WithEnvironmentVariable::class: + assert($attributeInstance instanceof WithEnvironmentVariable); + + $result[] = Metadata::withEnvironmentVariableOnMethod( + $attributeInstance->environmentVariableName(), + $attributeInstance->value(), + ); + + break; + case RequiresSetting::class: assert($attributeInstance instanceof RequiresSetting); @@ -726,6 +886,20 @@ final readonly class AttributeParser implements Parser break; + case TestDoxFormatter::class: + assert($attributeInstance instanceof TestDoxFormatter); + + $result[] = Metadata::testDoxFormatter($className, $attributeInstance->methodName()); + + break; + + case TestDoxFormatterExternal::class: + assert($attributeInstance instanceof TestDoxFormatterExternal); + + $result[] = Metadata::testDoxFormatter($attributeInstance->className(), $attributeInstance->methodName()); + + break; + case TestWith::class: assert($attributeInstance instanceof TestWith); @@ -755,6 +929,13 @@ final readonly class AttributeParser implements Parser $result[] = Metadata::withoutErrorHandler(); + break; + + case IgnorePhpunitWarnings::class: + assert($attributeInstance instanceof IgnorePhpunitWarnings); + + $result[] = Metadata::ignorePhpunitWarnings($attributeInstance->messagePattern()); + break; } } @@ -788,15 +969,59 @@ final readonly class AttributeParser implements Parser EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( sprintf( - 'Group name "%s" is not allowed for %s %s%s%s', + 'Group name "%s" is not allowed for %s', $_groupName, - $testMethodName !== null ? 'method' : 'class', - $testClassName, - $testMethodName !== null ? '::' : '', - $testMethodName !== null ? $testMethodName : '', + $this->testAsString($testClassName, $testMethodName), ), ); return true; } + + /** + * @param non-empty-string $versionRequirement + * @param class-string $testClassName + * @param ?non-empty-string $testMethodName + */ + private function requirement(string $versionRequirement, string $testClassName, ?string $testMethodName = null): Requirement + { + if (is_numeric(trim($versionRequirement))) { + EventFacade::emitter()->testRunnerTriggeredPhpunitDeprecation( + sprintf( + 'Test %s has attribute with version constraint string argument without explicit version comparison operator ("%s")', + $this->testAsString($testClassName, $testMethodName), + $versionRequirement, + ), + ); + } + + try { + return Requirement::from($versionRequirement); + } catch (InvalidVersionRequirementException) { + throw new InvalidVersionRequirementException( + sprintf( + 'Test %s has attribute with invalid version constraint argument ("%s")', + $this->testAsString($testClassName, $testMethodName), + $versionRequirement, + ), + ); + } + } + + /** + * @param class-string $testClassName + * @param ?non-empty-string $testMethodName + * + * @return non-empty-string + */ + private function testAsString(string $testClassName, ?string $testMethodName = null): string + { + return sprintf( + '%s %s%s%s', + $testMethodName !== null ? 'method' : 'class', + $testClassName, + $testMethodName !== null ? '::' : '', + $testMethodName !== null ? $testMethodName : '', + ); + } } diff --git a/vendor/phpunit/phpunit/src/Metadata/Parser/ParserChain.php b/vendor/phpunit/phpunit/src/Metadata/Parser/ParserChain.php deleted file mode 100644 index e19e0b0ca..000000000 --- a/vendor/phpunit/phpunit/src/Metadata/Parser/ParserChain.php +++ /dev/null @@ -1,77 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\Metadata\Parser; - -use function assert; -use function class_exists; -use function method_exists; -use PHPUnit\Metadata\MetadataCollection; - -/** - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - * - * @internal This class is not covered by the backward compatibility promise for PHPUnit - */ -final readonly class ParserChain implements Parser -{ - private Parser $attributeReader; - private Parser $annotationReader; - - public function __construct(Parser $attributeReader, Parser $annotationReader) - { - $this->attributeReader = $attributeReader; - $this->annotationReader = $annotationReader; - } - - /** - * @param class-string $className - */ - public function forClass(string $className): MetadataCollection - { - assert(class_exists($className)); - - $metadata = $this->attributeReader->forClass($className); - - if (!$metadata->isEmpty()) { - return $metadata; - } - - return $this->annotationReader->forClass($className); - } - - /** - * @param class-string $className - * @param non-empty-string $methodName - */ - public function forMethod(string $className, string $methodName): MetadataCollection - { - assert(class_exists($className)); - assert(method_exists($className, $methodName)); - - $metadata = $this->attributeReader->forMethod($className, $methodName); - - if (!$metadata->isEmpty()) { - return $metadata; - } - - return $this->annotationReader->forMethod($className, $methodName); - } - - /** - * @param class-string $className - * @param non-empty-string $methodName - */ - public function forClassAndMethod(string $className, string $methodName): MetadataCollection - { - return $this->forClass($className)->mergeWith( - $this->forMethod($className, $methodName), - ); - } -} diff --git a/vendor/phpunit/phpunit/src/Metadata/Parser/Registry.php b/vendor/phpunit/phpunit/src/Metadata/Parser/Registry.php index a68ab0148..0b30782ec 100644 --- a/vendor/phpunit/phpunit/src/Metadata/Parser/Registry.php +++ b/vendor/phpunit/phpunit/src/Metadata/Parser/Registry.php @@ -10,7 +10,7 @@ namespace PHPUnit\Metadata\Parser; /** - * Attribute and annotation information is static within a single PHP process. + * Attribute information is static within a single PHP process. * It is therefore okay to use a Singleton registry here. * * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit @@ -28,11 +28,6 @@ final class Registry private static function build(): Parser { - return new CachingParser( - new ParserChain( - new AttributeParser, - new AnnotationParser, - ), - ); + return new CachingParser(new AttributeParser); } } diff --git a/vendor/phpunit/phpunit/src/Metadata/PostCondition.php b/vendor/phpunit/phpunit/src/Metadata/PostCondition.php index 47972c818..d52ae0628 100644 --- a/vendor/phpunit/phpunit/src/Metadata/PostCondition.php +++ b/vendor/phpunit/phpunit/src/Metadata/PostCondition.php @@ -19,7 +19,7 @@ final readonly class PostCondition extends Metadata private int $priority; /** - * @param 0|1 $level + * @param int<0, 1> $level */ protected function __construct(int $level, int $priority) { diff --git a/vendor/phpunit/phpunit/src/Metadata/PreCondition.php b/vendor/phpunit/phpunit/src/Metadata/PreCondition.php index 5d17f8f10..9243122bc 100644 --- a/vendor/phpunit/phpunit/src/Metadata/PreCondition.php +++ b/vendor/phpunit/phpunit/src/Metadata/PreCondition.php @@ -19,7 +19,7 @@ final readonly class PreCondition extends Metadata private int $priority; /** - * @param 0|1 $level + * @param int<0, 1> $level */ protected function __construct(int $level, int $priority) { diff --git a/vendor/phpunit/phpunit/src/Metadata/PreserveGlobalState.php b/vendor/phpunit/phpunit/src/Metadata/PreserveGlobalState.php index 2d2341094..f88811915 100644 --- a/vendor/phpunit/phpunit/src/Metadata/PreserveGlobalState.php +++ b/vendor/phpunit/phpunit/src/Metadata/PreserveGlobalState.php @@ -19,7 +19,7 @@ final readonly class PreserveGlobalState extends Metadata private bool $enabled; /** - * @param 0|1 $level + * @param int<0, 1> $level */ protected function __construct(int $level, bool $enabled) { diff --git a/vendor/phpunit/phpunit/src/Metadata/RequiresEnvironmentVariable.php b/vendor/phpunit/phpunit/src/Metadata/RequiresEnvironmentVariable.php new file mode 100644 index 000000000..844c5a606 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Metadata/RequiresEnvironmentVariable.php @@ -0,0 +1,44 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Metadata; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class RequiresEnvironmentVariable extends Metadata +{ + private string $environmentVariableName; + private null|string $value; + + protected function __construct(int $level, string $environmentVariableName, null|string $value) + { + parent::__construct($level); + + $this->environmentVariableName = $environmentVariableName; + $this->value = $value; + } + + public function isRequiresEnvironmentVariable(): true + { + return true; + } + + public function environmentVariableName(): string + { + return $this->environmentVariableName; + } + + public function value(): null|string + { + return $this->value; + } +} diff --git a/vendor/phpunit/phpunit/src/Metadata/RequiresFunction.php b/vendor/phpunit/phpunit/src/Metadata/RequiresFunction.php index 55fa4a9b3..f66c5180c 100644 --- a/vendor/phpunit/phpunit/src/Metadata/RequiresFunction.php +++ b/vendor/phpunit/phpunit/src/Metadata/RequiresFunction.php @@ -22,7 +22,7 @@ final readonly class RequiresFunction extends Metadata private string $functionName; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param non-empty-string $functionName */ protected function __construct(int $level, string $functionName) diff --git a/vendor/phpunit/phpunit/src/Metadata/RequiresMethod.php b/vendor/phpunit/phpunit/src/Metadata/RequiresMethod.php index 5ed7a0aa1..2ad7fbb9a 100644 --- a/vendor/phpunit/phpunit/src/Metadata/RequiresMethod.php +++ b/vendor/phpunit/phpunit/src/Metadata/RequiresMethod.php @@ -27,7 +27,7 @@ final readonly class RequiresMethod extends Metadata private string $methodName; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param class-string $className * @param non-empty-string $methodName */ diff --git a/vendor/phpunit/phpunit/src/Metadata/RequiresOperatingSystem.php b/vendor/phpunit/phpunit/src/Metadata/RequiresOperatingSystem.php index 8be79f65c..94610b016 100644 --- a/vendor/phpunit/phpunit/src/Metadata/RequiresOperatingSystem.php +++ b/vendor/phpunit/phpunit/src/Metadata/RequiresOperatingSystem.php @@ -22,7 +22,7 @@ final readonly class RequiresOperatingSystem extends Metadata private string $operatingSystem; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param non-empty-string $operatingSystem */ protected function __construct(int $level, string $operatingSystem) diff --git a/vendor/phpunit/phpunit/src/Metadata/RequiresOperatingSystemFamily.php b/vendor/phpunit/phpunit/src/Metadata/RequiresOperatingSystemFamily.php index ca57905f2..4481dcf8c 100644 --- a/vendor/phpunit/phpunit/src/Metadata/RequiresOperatingSystemFamily.php +++ b/vendor/phpunit/phpunit/src/Metadata/RequiresOperatingSystemFamily.php @@ -22,7 +22,7 @@ final readonly class RequiresOperatingSystemFamily extends Metadata private string $operatingSystemFamily; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param non-empty-string $operatingSystemFamily */ protected function __construct(int $level, string $operatingSystemFamily) diff --git a/vendor/phpunit/phpunit/src/Metadata/RequiresPhp.php b/vendor/phpunit/phpunit/src/Metadata/RequiresPhp.php index 792ca7de8..c64a39628 100644 --- a/vendor/phpunit/phpunit/src/Metadata/RequiresPhp.php +++ b/vendor/phpunit/phpunit/src/Metadata/RequiresPhp.php @@ -21,7 +21,7 @@ final readonly class RequiresPhp extends Metadata private Requirement $versionRequirement; /** - * @param 0|1 $level + * @param int<0, 1> $level */ protected function __construct(int $level, Requirement $versionRequirement) { diff --git a/vendor/phpunit/phpunit/src/Metadata/RequiresPhpExtension.php b/vendor/phpunit/phpunit/src/Metadata/RequiresPhpExtension.php index fe021c1da..5c547ea9e 100644 --- a/vendor/phpunit/phpunit/src/Metadata/RequiresPhpExtension.php +++ b/vendor/phpunit/phpunit/src/Metadata/RequiresPhpExtension.php @@ -25,7 +25,7 @@ final readonly class RequiresPhpExtension extends Metadata private ?Requirement $versionRequirement; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param non-empty-string $extension */ protected function __construct(int $level, string $extension, ?Requirement $versionRequirement) diff --git a/vendor/phpunit/phpunit/src/Metadata/RequiresPhpunit.php b/vendor/phpunit/phpunit/src/Metadata/RequiresPhpunit.php index 1fd9646c7..dc8ae80e2 100644 --- a/vendor/phpunit/phpunit/src/Metadata/RequiresPhpunit.php +++ b/vendor/phpunit/phpunit/src/Metadata/RequiresPhpunit.php @@ -21,7 +21,7 @@ final readonly class RequiresPhpunit extends Metadata private Requirement $versionRequirement; /** - * @param 0|1 $level + * @param int<0, 1> $level */ protected function __construct(int $level, Requirement $versionRequirement) { diff --git a/vendor/phpunit/phpunit/src/Metadata/RequiresSetting.php b/vendor/phpunit/phpunit/src/Metadata/RequiresSetting.php index 2ba944444..0d0b0230a 100644 --- a/vendor/phpunit/phpunit/src/Metadata/RequiresSetting.php +++ b/vendor/phpunit/phpunit/src/Metadata/RequiresSetting.php @@ -27,7 +27,7 @@ final readonly class RequiresSetting extends Metadata private string $value; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param non-empty-string $setting * @param non-empty-string $value */ diff --git a/vendor/phpunit/phpunit/src/Metadata/TestDox.php b/vendor/phpunit/phpunit/src/Metadata/TestDox.php index 8b6a6db09..6e2944e5f 100644 --- a/vendor/phpunit/phpunit/src/Metadata/TestDox.php +++ b/vendor/phpunit/phpunit/src/Metadata/TestDox.php @@ -22,7 +22,7 @@ final readonly class TestDox extends Metadata private string $text; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param non-empty-string $text */ protected function __construct(int $level, string $text) diff --git a/vendor/phpunit/phpunit/src/Metadata/TestDoxFormatter.php b/vendor/phpunit/phpunit/src/Metadata/TestDoxFormatter.php new file mode 100644 index 000000000..a7f055b87 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Metadata/TestDoxFormatter.php @@ -0,0 +1,62 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Metadata; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestDoxFormatter extends Metadata +{ + /** + * @var class-string + */ + private string $className; + + /** + * @var non-empty-string + */ + private string $methodName; + + /** + * @param int<0, 1> $level + * @param class-string $className + * @param non-empty-string $methodName + */ + protected function __construct(int $level, string $className, string $methodName) + { + parent::__construct($level); + + $this->className = $className; + $this->methodName = $methodName; + } + + public function isTestDoxFormatter(): true + { + return true; + } + + /** + * @return class-string + */ + public function className(): string + { + return $this->className; + } + + /** + * @return non-empty-string + */ + public function methodName(): string + { + return $this->methodName; + } +} diff --git a/vendor/phpunit/phpunit/src/Metadata/TestWith.php b/vendor/phpunit/phpunit/src/Metadata/TestWith.php index 0c21c1040..d704d863f 100644 --- a/vendor/phpunit/phpunit/src/Metadata/TestWith.php +++ b/vendor/phpunit/phpunit/src/Metadata/TestWith.php @@ -24,7 +24,7 @@ final readonly class TestWith extends Metadata private ?string $name; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param ?non-empty-string $name */ protected function __construct(int $level, mixed $data, ?string $name = null) diff --git a/vendor/phpunit/phpunit/src/Metadata/UsesClass.php b/vendor/phpunit/phpunit/src/Metadata/UsesClass.php index 592999bb1..edbd03ac5 100644 --- a/vendor/phpunit/phpunit/src/Metadata/UsesClass.php +++ b/vendor/phpunit/phpunit/src/Metadata/UsesClass.php @@ -22,7 +22,7 @@ final readonly class UsesClass extends Metadata private string $className; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param class-string $className */ protected function __construct(int $level, string $className) @@ -44,14 +44,4 @@ final readonly class UsesClass extends Metadata { return $this->className; } - - /** - * @return class-string - * - * @internal This method is not covered by the backward compatibility promise for PHPUnit - */ - public function asStringForCodeUnitMapper(): string - { - return $this->className; - } } diff --git a/vendor/phpunit/phpunit/src/Metadata/UsesDefaultClass.php b/vendor/phpunit/phpunit/src/Metadata/UsesClassesThatExtendClass.php similarity index 84% rename from vendor/phpunit/phpunit/src/Metadata/UsesDefaultClass.php rename to vendor/phpunit/phpunit/src/Metadata/UsesClassesThatExtendClass.php index 9a58d4cea..baddfeb6b 100644 --- a/vendor/phpunit/phpunit/src/Metadata/UsesDefaultClass.php +++ b/vendor/phpunit/phpunit/src/Metadata/UsesClassesThatExtendClass.php @@ -14,7 +14,7 @@ namespace PHPUnit\Metadata; * * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ -final readonly class UsesDefaultClass extends Metadata +final readonly class UsesClassesThatExtendClass extends Metadata { /** * @var class-string @@ -22,7 +22,7 @@ final readonly class UsesDefaultClass extends Metadata private string $className; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param class-string $className */ protected function __construct(int $level, string $className) @@ -32,7 +32,7 @@ final readonly class UsesDefaultClass extends Metadata $this->className = $className; } - public function isUsesDefaultClass(): true + public function isUsesClassesThatExtendClass(): true { return true; } diff --git a/vendor/phpunit/phpunit/src/Metadata/UsesClassesThatImplementInterface.php b/vendor/phpunit/phpunit/src/Metadata/UsesClassesThatImplementInterface.php new file mode 100644 index 000000000..5cdc6f629 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Metadata/UsesClassesThatImplementInterface.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Metadata; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class UsesClassesThatImplementInterface extends Metadata +{ + /** + * @var class-string + */ + private string $interfaceName; + + /** + * @param int<0, 1> $level + * @param class-string $interfaceName + */ + protected function __construct(int $level, string $interfaceName) + { + parent::__construct($level); + + $this->interfaceName = $interfaceName; + } + + public function isUsesClassesThatImplementInterface(): true + { + return true; + } + + /** + * @return class-string + */ + public function interfaceName(): string + { + return $this->interfaceName; + } +} diff --git a/vendor/phpunit/phpunit/src/Metadata/UsesFunction.php b/vendor/phpunit/phpunit/src/Metadata/UsesFunction.php index df2ddffad..a0007ec21 100644 --- a/vendor/phpunit/phpunit/src/Metadata/UsesFunction.php +++ b/vendor/phpunit/phpunit/src/Metadata/UsesFunction.php @@ -22,7 +22,7 @@ final readonly class UsesFunction extends Metadata private string $functionName; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param non-empty-string $functionName */ protected function __construct(int $level, string $functionName) @@ -44,12 +44,4 @@ final readonly class UsesFunction extends Metadata { return $this->functionName; } - - /** - * @internal This method is not covered by the backward compatibility promise for PHPUnit - */ - public function asStringForCodeUnitMapper(): string - { - return '::' . $this->functionName; - } } diff --git a/vendor/phpunit/phpunit/src/Metadata/UsesMethod.php b/vendor/phpunit/phpunit/src/Metadata/UsesMethod.php index 382b4e25d..6fc78f8f2 100644 --- a/vendor/phpunit/phpunit/src/Metadata/UsesMethod.php +++ b/vendor/phpunit/phpunit/src/Metadata/UsesMethod.php @@ -27,7 +27,7 @@ final readonly class UsesMethod extends Metadata private string $methodName; /** - * @param 0|1 $level + * @param int<0, 1> $level * @param class-string $className * @param non-empty-string $methodName */ @@ -59,14 +59,4 @@ final readonly class UsesMethod extends Metadata { return $this->methodName; } - - /** - * @return non-empty-string - * - * @internal This method is not covered by the backward compatibility promise for PHPUnit - */ - public function asStringForCodeUnitMapper(): string - { - return $this->className . '::' . $this->methodName; - } } diff --git a/vendor/phpunit/phpunit/src/Metadata/Covers.php b/vendor/phpunit/phpunit/src/Metadata/UsesNamespace.php similarity index 58% rename from vendor/phpunit/phpunit/src/Metadata/Covers.php rename to vendor/phpunit/phpunit/src/Metadata/UsesNamespace.php index d9714be01..f5e5d01ec 100644 --- a/vendor/phpunit/phpunit/src/Metadata/Covers.php +++ b/vendor/phpunit/phpunit/src/Metadata/UsesNamespace.php @@ -14,34 +14,34 @@ namespace PHPUnit\Metadata; * * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ -final readonly class Covers extends Metadata +final readonly class UsesNamespace extends Metadata { /** * @var non-empty-string */ - private string $target; + private string $namespace; /** - * @param 0|1 $level - * @param non-empty-string $target + * @param int<0, 1> $level + * @param non-empty-string $namespace */ - protected function __construct(int $level, string $target) + protected function __construct(int $level, string $namespace) { parent::__construct($level); - $this->target = $target; + $this->namespace = $namespace; } - public function isCovers(): true + public function isUsesNamespace(): true { return true; } /** - * @return non-empty-string + * @return class-string */ - public function target(): string + public function namespace(): string { - return $this->target; + return $this->namespace; } } diff --git a/vendor/phpunit/phpunit/src/Metadata/UsesTrait.php b/vendor/phpunit/phpunit/src/Metadata/UsesTrait.php index 47f45cd8b..19490f26c 100644 --- a/vendor/phpunit/phpunit/src/Metadata/UsesTrait.php +++ b/vendor/phpunit/phpunit/src/Metadata/UsesTrait.php @@ -44,14 +44,4 @@ final readonly class UsesTrait extends Metadata { return $this->traitName; } - - /** - * @return trait-string - * - * @internal This method is not covered by the backward compatibility promise for PHPUnit - */ - public function asStringForCodeUnitMapper(): string - { - return $this->traitName; - } } diff --git a/vendor/phpunit/phpunit/src/Metadata/Version/ComparisonRequirement.php b/vendor/phpunit/phpunit/src/Metadata/Version/ComparisonRequirement.php index b3b6a1fca..b87222fd0 100644 --- a/vendor/phpunit/phpunit/src/Metadata/Version/ComparisonRequirement.php +++ b/vendor/phpunit/phpunit/src/Metadata/Version/ComparisonRequirement.php @@ -37,4 +37,9 @@ final readonly class ComparisonRequirement extends Requirement { return $this->operator->asString() . ' ' . $this->version; } + + public function version(): string + { + return $this->version; + } } diff --git a/vendor/phpunit/phpunit/src/Metadata/Version/Requirement.php b/vendor/phpunit/phpunit/src/Metadata/Version/Requirement.php index 391ccdec5..01f98f731 100644 --- a/vendor/phpunit/phpunit/src/Metadata/Version/Requirement.php +++ b/vendor/phpunit/phpunit/src/Metadata/Version/Requirement.php @@ -23,7 +23,7 @@ use PHPUnit\Util\VersionComparisonOperator; */ abstract readonly class Requirement { - private const VERSION_COMPARISON = '/(?P[<>=!]{0,2})\s*(?P[\d\.-]+(dev|(RC|alpha|beta)[\d\.])?)[ \t]*\r?$/m'; + private const string VERSION_COMPARISON = "/(?P!=|<|<=|<>|=|==|>|>=)?\s*(?P[\d\.-]+(dev|(RC|alpha|beta)[\d\.])?)[ \t]*\r?$/m"; /** * @throws InvalidVersionOperatorException @@ -38,11 +38,11 @@ abstract readonly class Requirement ), ); } catch (UnsupportedVersionConstraintException) { - if (preg_match(self::VERSION_COMPARISON, $versionRequirement, $matches)) { + if (preg_match(self::VERSION_COMPARISON, $versionRequirement, $matches) > 0) { return new ComparisonRequirement( $matches['version'], new VersionComparisonOperator( - !empty($matches['operator']) ? $matches['operator'] : '>=', + $matches['operator'] !== '' ? $matches['operator'] : '>=', ), ); } diff --git a/vendor/phpunit/phpunit/src/Metadata/WithEnvironmentVariable.php b/vendor/phpunit/phpunit/src/Metadata/WithEnvironmentVariable.php new file mode 100644 index 000000000..6c3006cdf --- /dev/null +++ b/vendor/phpunit/phpunit/src/Metadata/WithEnvironmentVariable.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Metadata; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final readonly class WithEnvironmentVariable extends Metadata +{ + /** + * @var non-empty-string + */ + private string $environmentVariableName; + private null|string $value; + + /** + * @param non-empty-string $environmentVariableName + */ + protected function __construct(int $level, string $environmentVariableName, null|string $value) + { + parent::__construct($level); + + $this->environmentVariableName = $environmentVariableName; + $this->value = $value; + } + + public function isWithEnvironmentVariable(): true + { + return true; + } + + /** + * @return non-empty-string + */ + public function environmentVariableName(): string + { + return $this->environmentVariableName; + } + + public function value(): null|string + { + return $this->value; + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/BackedUpEnvironmentVariable.php b/vendor/phpunit/phpunit/src/Runner/BackedUpEnvironmentVariable.php new file mode 100644 index 000000000..a62ebe95c --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/BackedUpEnvironmentVariable.php @@ -0,0 +1,92 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +use function getenv; +use function putenv; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class BackedUpEnvironmentVariable +{ + private const string FROM_GETENV = 'getenv'; + private const string FROM_SUPERGLOBAL = 'superglobal'; + + /** + * @var self::FROM_GETENV|self::FROM_SUPERGLOBAL + */ + private string $from; + + /** + * @var non-empty-string + */ + private string $name; + private null|string $value; + + /** + * @param non-empty-string $name + * + * @return array{0: self, 1: self} + */ + public static function create(string $name): array + { + $getenv = getenv($name); + + if ($getenv === false) { + $getenv = null; + } + + return [ + new self(self::FROM_SUPERGLOBAL, $name, $_ENV[$name] ?? null), + new self(self::FROM_GETENV, $name, $getenv), + ]; + } + + /** + * @param self::FROM_GETENV|self::FROM_SUPERGLOBAL $from + * @param non-empty-string $name + */ + private function __construct(string $from, string $name, null|string $value) + { + $this->from = $from; + $this->name = $name; + $this->value = $value; + } + + public function restore(): void + { + if ($this->from === self::FROM_GETENV) { + $this->restoreGetEnv(); + } else { + $this->restoreSuperGlobal(); + } + } + + private function restoreGetEnv(): void + { + if ($this->value === null) { + putenv($this->name); + } else { + putenv("{$this->name}={$this->value}"); + } + } + + private function restoreSuperGlobal(): void + { + if ($this->value === null) { + unset($_ENV[$this->name]); + } else { + $_ENV[$this->name] = $this->value; + } + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/Baseline/Baseline.php b/vendor/phpunit/phpunit/src/Runner/Baseline/Baseline.php index 733fca5ce..a2a33a5a2 100644 --- a/vendor/phpunit/phpunit/src/Runner/Baseline/Baseline.php +++ b/vendor/phpunit/phpunit/src/Runner/Baseline/Baseline.php @@ -9,6 +9,10 @@ */ namespace PHPUnit\Runner\Baseline; +use function ksort; +use function strcmp; +use function usort; + /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit * @@ -16,7 +20,7 @@ namespace PHPUnit\Runner\Baseline; */ final class Baseline { - public const VERSION = 1; + public const int VERSION = 1; /** * @var array>> @@ -52,10 +56,25 @@ final class Baseline } /** - * @return array>> + * @return array>> */ public function groupedByFileAndLine(): array { - return $this->issues; + $issues = $this->issues; + + ksort($issues); + + foreach ($issues as &$lines) { + ksort($lines); + + foreach ($lines as &$issuesOnLine) { + usort( + $issuesOnLine, + static fn (Issue $a, Issue $b): int => strcmp($a->description(), $b->description()), + ); + } + } + + return $issues; } } diff --git a/vendor/phpunit/phpunit/src/Runner/Baseline/Generator.php b/vendor/phpunit/phpunit/src/Runner/Baseline/Generator.php index 4595a2897..c5ce074de 100644 --- a/vendor/phpunit/phpunit/src/Runner/Baseline/Generator.php +++ b/vendor/phpunit/phpunit/src/Runner/Baseline/Generator.php @@ -9,7 +9,6 @@ */ namespace PHPUnit\Runner\Baseline; -use PHPUnit\Event\EventFacadeIsSealedException; use PHPUnit\Event\Facade; use PHPUnit\Event\Test\DeprecationTriggered; use PHPUnit\Event\Test\NoticeTriggered; @@ -17,7 +16,6 @@ use PHPUnit\Event\Test\PhpDeprecationTriggered; use PHPUnit\Event\Test\PhpNoticeTriggered; use PHPUnit\Event\Test\PhpWarningTriggered; use PHPUnit\Event\Test\WarningTriggered; -use PHPUnit\Event\UnknownSubscriberTypeException; use PHPUnit\Runner\FileDoesNotExistException; use PHPUnit\TextUI\Configuration\Source; use PHPUnit\TextUI\Configuration\SourceFilter; @@ -32,10 +30,6 @@ final readonly class Generator private Baseline $baseline; private Source $source; - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ public function __construct(Facade $facade, Source $source) { $facade->registerSubscribers( @@ -90,7 +84,7 @@ final readonly class Generator return $this->source->restrictNotices(); } - return $this->source->restrictDeprecations(); + return false; } private function isSuppressionIgnored(DeprecationTriggered|NoticeTriggered|PhpDeprecationTriggered|PhpNoticeTriggered|PhpWarningTriggered|WarningTriggered $event): bool diff --git a/vendor/phpunit/phpunit/src/Runner/Baseline/Reader.php b/vendor/phpunit/phpunit/src/Runner/Baseline/Reader.php index aeb640ae1..ce3a194ff 100644 --- a/vendor/phpunit/phpunit/src/Runner/Baseline/Reader.php +++ b/vendor/phpunit/phpunit/src/Runner/Baseline/Reader.php @@ -90,8 +90,8 @@ final readonly class Reader $description = $issueElement->textContent; assert($line > 0); - assert(!empty($hash)); - assert(!empty($description)); + assert($hash !== ''); + assert($description !== ''); $baseline->add(Issue::from($file, $line, $hash, $description)); } diff --git a/vendor/phpunit/phpunit/src/Runner/Baseline/Writer.php b/vendor/phpunit/phpunit/src/Runner/Baseline/Writer.php index c687f31b3..7d7d7645b 100644 --- a/vendor/phpunit/phpunit/src/Runner/Baseline/Writer.php +++ b/vendor/phpunit/phpunit/src/Runner/Baseline/Writer.php @@ -9,7 +9,6 @@ */ namespace PHPUnit\Runner\Baseline; -use function assert; use function dirname; use function file_put_contents; use function is_dir; @@ -49,8 +48,6 @@ final readonly class Writer $writer->writeAttribute('version', (string) Baseline::VERSION); foreach ($baseline->groupedByFileAndLine() as $file => $lines) { - assert(!empty($file)); - $writer->startElement('file'); $writer->writeAttribute('path', $pathCalculator->calculate($file)); diff --git a/vendor/phpunit/phpunit/src/Runner/CodeCoverage.php b/vendor/phpunit/phpunit/src/Runner/CodeCoverage.php index 9ad4266ac..418644a35 100644 --- a/vendor/phpunit/phpunit/src/Runner/CodeCoverage.php +++ b/vendor/phpunit/phpunit/src/Runner/CodeCoverage.php @@ -9,13 +9,17 @@ */ namespace PHPUnit\Runner; +use function assert; use function file_put_contents; +use function implode; use function sprintf; +use function sys_get_temp_dir; use PHPUnit\Event\Facade as EventFacade; use PHPUnit\Framework\TestCase; use PHPUnit\TextUI\Configuration\CodeCoverageFilterRegistry; use PHPUnit\TextUI\Configuration\Configuration; use PHPUnit\TextUI\Output\Printer; +use PHPUnit\Util\Filesystem; use SebastianBergmann\CodeCoverage\Driver\Driver; use SebastianBergmann\CodeCoverage\Driver\Selector; use SebastianBergmann\CodeCoverage\Exception as CodeCoverageException; @@ -26,10 +30,14 @@ use SebastianBergmann\CodeCoverage\Report\Crap4j as Crap4jReport; use SebastianBergmann\CodeCoverage\Report\Html\Colors; use SebastianBergmann\CodeCoverage\Report\Html\CustomCssFile; use SebastianBergmann\CodeCoverage\Report\Html\Facade as HtmlReport; +use SebastianBergmann\CodeCoverage\Report\OpenClover as OpenCloverReport; use SebastianBergmann\CodeCoverage\Report\PHP as PhpReport; use SebastianBergmann\CodeCoverage\Report\Text as TextReport; use SebastianBergmann\CodeCoverage\Report\Thresholds; use SebastianBergmann\CodeCoverage\Report\Xml\Facade as XmlReport; +use SebastianBergmann\CodeCoverage\StaticAnalysis\CacheWarmer; +use SebastianBergmann\CodeCoverage\Test\Target\TargetCollection; +use SebastianBergmann\CodeCoverage\Test\Target\ValidationFailure; use SebastianBergmann\CodeCoverage\Test\TestSize\TestSize; use SebastianBergmann\CodeCoverage\Test\TestStatus\TestStatus; use SebastianBergmann\Comparator\Comparator; @@ -65,22 +73,32 @@ final class CodeCoverage return self::$instance; } - public function init(Configuration $configuration, CodeCoverageFilterRegistry $codeCoverageFilterRegistry, bool $extensionRequiresCodeCoverageCollection): void + public function init(Configuration $configuration, CodeCoverageFilterRegistry $codeCoverageFilterRegistry, bool $extensionRequiresCodeCoverageCollection): CodeCoverageInitializationStatus { $codeCoverageFilterRegistry->init($configuration); if (!$configuration->hasCoverageReport() && !$extensionRequiresCodeCoverageCollection) { - return; + return CodeCoverageInitializationStatus::NOT_REQUESTED; } $this->activate($codeCoverageFilterRegistry->get(), $configuration->pathCoverage()); if (!$this->isActive()) { - return; + return CodeCoverageInitializationStatus::FAILED; } if ($configuration->hasCoverageCacheDirectory()) { - $this->codeCoverage()->cacheStaticAnalysis($configuration->coverageCacheDirectory()); + $coverageCacheDirectory = $configuration->coverageCacheDirectory(); + } else { + $candidate = sys_get_temp_dir() . '/phpunit-code-coverage-cache'; + + if (Filesystem::createDirectory($candidate)) { + $coverageCacheDirectory = $candidate; + } + } + + if (isset($coverageCacheDirectory)) { + $this->codeCoverage()->cacheStaticAnalysis($coverageCacheDirectory); } $this->codeCoverage()->excludeSubclassesOfThisClassFromUnintentionallyCoveredCodeCheck(Comparator::class); @@ -107,19 +125,26 @@ final class CodeCoverage $this->codeCoverage()->excludeUncoveredFiles(); } - if ($codeCoverageFilterRegistry->get()->isEmpty()) { - if (!$codeCoverageFilterRegistry->configured()) { - EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( - 'No filter is configured, code coverage will not be processed', - ); - } else { - EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( - 'Configured filter does not match any files, code coverage will not be processed', - ); - } + $this->warnIfFilterIsNotConfigured($codeCoverageFilterRegistry, $configuration); - $this->deactivate(); + if (isset($coverageCacheDirectory) && $configuration->includeUncoveredFiles()) { + EventFacade::emitter()->testRunnerStartedStaticAnalysisForCodeCoverage(); + + /** @phpstan-ignore new.internalClass,method.internalClass */ + $statistics = (new CacheWarmer)->warmCache( + $coverageCacheDirectory, + !$configuration->disableCodeCoverageIgnore(), + $configuration->ignoreDeprecatedCodeUnitsFromCodeCoverage(), + $codeCoverageFilterRegistry->get(), + ); + + EventFacade::emitter()->testRunnerFinishedStaticAnalysisForCodeCoverage( + $statistics['cacheHits'], + $statistics['cacheMisses'], + ); } + + return CodeCoverageInitializationStatus::SUCCEEDED; } /** @@ -167,19 +192,19 @@ final class CodeCoverage ); $this->collecting = true; + + $this->timer()->start(); } - /** - * @param array>|false $linesToBeCovered - * @param array> $linesToBeUsed - */ - public function stop(bool $append, array|false $linesToBeCovered = [], array $linesToBeUsed = []): void + public function stop(bool $append, null|false|TargetCollection $covers = null, ?TargetCollection $uses = null): void { if (!$this->collecting) { return; } - $status = TestStatus::unknown(); + $time = $this->timer()->stop()->asSeconds(); + $status = TestStatus::unknown(); + $this->collecting = false; if ($this->test !== null) { if ($this->test->status()->isSuccess()) { @@ -189,11 +214,39 @@ final class CodeCoverage } } - /* @noinspection UnusedFunctionResultInspection */ - $this->codeCoverage->stop($append, $status, $linesToBeCovered, $linesToBeUsed); + if ($covers instanceof TargetCollection) { + $result = $this->codeCoverage->validate($covers); - $this->test = null; - $this->collecting = false; + if ($result->isFailure()) { + assert($result instanceof ValidationFailure); + + EventFacade::emitter()->testTriggeredPhpunitWarning( + $this->test->valueObjectForEvents(), + $result->message(), + ); + + $append = false; + } + } + + if ($uses instanceof TargetCollection) { + $result = $this->codeCoverage->validate($uses); + + if ($result->isFailure()) { + assert($result instanceof ValidationFailure); + + EventFacade::emitter()->testTriggeredPhpunitWarning( + $this->test->valueObjectForEvents(), + $result->message(), + ); + + $append = false; + } + } + + $this->codeCoverage->stop($append, $status, $covers, $uses, $time); + + $this->test = null; } public function deactivate(): void @@ -239,6 +292,21 @@ final class CodeCoverage } } + if ($configuration->hasCoverageOpenClover()) { + $this->codeCoverageGenerationStart($printer, 'OpenClover XML'); + + try { + $writer = new OpenCloverReport; + $writer->process($this->codeCoverage(), $configuration->coverageOpenClover(), 'OpenClover Coverage'); + + $this->codeCoverageGenerationSucceeded($printer); + + unset($writer); + } catch (CodeCoverageException $e) { + $this->codeCoverageGenerationFailed($printer, $e); + } + } + if ($configuration->hasCoverageCobertura()) { $this->codeCoverageGenerationStart($printer, 'Cobertura XML'); @@ -330,7 +398,7 @@ final class CodeCoverage $this->codeCoverageGenerationStart($printer, 'PHPUnit XML'); try { - $writer = new XmlReport(Version::id()); + $writer = new XmlReport(Version::id(), $configuration->coverageXmlIncludeSource()); $writer->process($this->codeCoverage(), $configuration->coverageXml()); $this->codeCoverageGenerationSucceeded($printer); @@ -342,6 +410,42 @@ final class CodeCoverage } } + public function warnIfFilterIsNotConfigured(CodeCoverageFilterRegistry $codeCoverageFilterRegistry, Configuration $configuration): void + { + if (!$codeCoverageFilterRegistry->get()->isEmpty()) { + return; + } + + if (!$codeCoverageFilterRegistry->configured()) { + EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( + 'No filter is configured, code coverage will not be processed', + ); + + $this->deactivate(); + + return; + } + + $paths = []; + + foreach ($configuration->source()->includeDirectories() as $directory) { + $paths[] = $directory->path(); + } + + foreach ($configuration->source()->includeFiles() as $file) { + $paths[] = $file->path(); + } + + EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( + sprintf( + 'Configured source filter (include-path: %s) does not match any files, code coverage will not be processed', + implode(', ', $paths), + ), + ); + + $this->deactivate(); + } + private function activate(Filter $filter, bool $pathCoverage): void { try { diff --git a/vendor/phpunit/phpunit/src/Runner/CodeCoverageInitializationStatus.php b/vendor/phpunit/phpunit/src/Runner/CodeCoverageInitializationStatus.php new file mode 100644 index 000000000..ce895f6e6 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/CodeCoverageInitializationStatus.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This enumeration is not covered by the backward compatibility promise for PHPUnit + */ +enum CodeCoverageInitializationStatus +{ + case NOT_REQUESTED; + case SUCCEEDED; + case FAILED; +} diff --git a/vendor/phpunit/phpunit/src/Runner/DeprecationCollector/Collector.php b/vendor/phpunit/phpunit/src/Runner/DeprecationCollector/Collector.php index f098efca1..575bc2dd3 100644 --- a/vendor/phpunit/phpunit/src/Runner/DeprecationCollector/Collector.php +++ b/vendor/phpunit/phpunit/src/Runner/DeprecationCollector/Collector.php @@ -9,10 +9,8 @@ */ namespace PHPUnit\Runner\DeprecationCollector; -use PHPUnit\Event\EventFacadeIsSealedException; use PHPUnit\Event\Facade; use PHPUnit\Event\Test\DeprecationTriggered; -use PHPUnit\Event\UnknownSubscriberTypeException; use PHPUnit\TestRunner\IssueFilter; /** @@ -34,10 +32,6 @@ final class Collector */ private array $filteredDeprecations = []; - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ public function __construct(Facade $facade, IssueFilter $issueFilter) { $facade->registerSubscribers( diff --git a/vendor/phpunit/phpunit/src/Runner/DeprecationCollector/Facade.php b/vendor/phpunit/phpunit/src/Runner/DeprecationCollector/Facade.php index c8039ff07..a08fdc64c 100644 --- a/vendor/phpunit/phpunit/src/Runner/DeprecationCollector/Facade.php +++ b/vendor/phpunit/phpunit/src/Runner/DeprecationCollector/Facade.php @@ -25,10 +25,6 @@ final class Facade private static null|Collector|InIsolationCollector $collector = null; private static bool $inIsolation = false; - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ public static function init(): void { self::collector(); @@ -42,9 +38,6 @@ final class Facade } /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - * * @return list */ public static function deprecations(): array @@ -53,9 +46,6 @@ final class Facade } /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - * * @return list */ public static function filteredDeprecations(): array diff --git a/vendor/phpunit/phpunit/src/Runner/ErrorHandler.php b/vendor/phpunit/phpunit/src/Runner/ErrorHandler.php index 1740f9f7b..07ef124b9 100644 --- a/vendor/phpunit/phpunit/src/Runner/ErrorHandler.php +++ b/vendor/phpunit/phpunit/src/Runner/ErrorHandler.php @@ -30,6 +30,7 @@ use function assert; use function debug_backtrace; use function defined; use function error_reporting; +use function preg_match; use function restore_error_handler; use function set_error_handler; use function sprintf; @@ -38,6 +39,9 @@ use PHPUnit\Event\Code\IssueTrigger\Code; use PHPUnit\Event\Code\IssueTrigger\IssueTrigger; use PHPUnit\Event\Code\NoTestCaseObjectOnCallStackException; use PHPUnit\Event\Code\TestMethod; +use PHPUnit\Framework\TestCase; +use PHPUnit\Metadata\IgnoreDeprecations; +use PHPUnit\Metadata\Parser\Registry as MetadataParserRegistry; use PHPUnit\Runner\Baseline\Baseline; use PHPUnit\Runner\Baseline\Issue; use PHPUnit\TextUI\Configuration\Registry as ConfigurationRegistry; @@ -51,15 +55,26 @@ use PHPUnit\Util\ExcludeList; */ final class ErrorHandler { - private const UNHANDLEABLE_LEVELS = E_ERROR | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING; - private const INSUPPRESSIBLE_LEVELS = E_ERROR | E_PARSE | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR; - private static ?self $instance = null; - private ?Baseline $baseline = null; + private const int UNHANDLEABLE_LEVELS = E_ERROR | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING; + private const int INSUPPRESSIBLE_LEVELS = E_ERROR | E_PARSE | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR; + private static ?self $instance = null; + private ?Baseline $baseline = null; private ExcludeList $excludeList; private bool $enabled = false; private ?int $originalErrorReportingLevel = null; private readonly bool $identifyIssueTrigger; + /** + * @var list + */ + private array $globalDeprecations = []; + + /** + * @var array> + */ + private array $testCaseContextDeprecations = []; + private ?string $testCaseContext = null; + /** * @var ?array{functions: list, methods: list} */ @@ -114,8 +129,14 @@ final class ErrorHandler $test = Event\Code\TestMethodBuilder::fromCallStack(); + if ($errorNumber === E_USER_DEPRECATED) { + $deprecationFrame = $this->guessDeprecationFrame(); + $errorFile = $deprecationFrame['file'] ?? $errorFile; + $errorLine = $deprecationFrame['line'] ?? $errorLine; + } + $ignoredByBaseline = $this->ignoredByBaseline($errorFile, $errorLine, $errorString); - $ignoredByTest = $test->metadata()->isIgnoreDeprecations()->isNotEmpty(); + $ignoredByTest = $this->deprecationIgnoredByTest($test, $errorString); switch ($errorNumber) { case E_NOTICE: @@ -181,13 +202,11 @@ final class ErrorHandler break; case E_USER_DEPRECATED: - $deprecationFrame = $this->guessDeprecationFrame(); - Event\Facade::emitter()->testTriggeredDeprecation( $test, $errorString, - $deprecationFrame['file'] ?? $errorFile, - $deprecationFrame['line'] ?? $errorLine, + $errorFile, + $errorLine, $suppressed, $ignoredByBaseline, $ignoredByTest, @@ -215,7 +234,28 @@ final class ErrorHandler return false; } - public function enable(): void + public function deprecationHandler(int $errorNumber, string $errorString, string $errorFile, int $errorLine): true + { + if ($this->testCaseContext !== null) { + $this->testCaseContextDeprecations[$this->testCaseContext][] = [$errorNumber, $errorString, $errorFile, $errorLine]; + } else { + $this->globalDeprecations[] = [$errorNumber, $errorString, $errorFile, $errorLine]; + } + + return true; + } + + public function registerDeprecationHandler(): void + { + set_error_handler([self::$instance, 'deprecationHandler'], E_USER_DEPRECATED | E_DEPRECATED); + } + + public function restoreDeprecationHandler(): void + { + restore_error_handler(); + } + + public function enable(TestCase $test): void { assert(!$this->enabled); @@ -230,6 +270,8 @@ final class ErrorHandler $this->enabled = true; $this->originalErrorReportingLevel = error_reporting(); + $this->triggerGlobalDeprecations($test); + error_reporting($this->originalErrorReportingLevel & self::UNHANDLEABLE_LEVELS); } @@ -260,6 +302,16 @@ final class ErrorHandler $this->deprecationTriggers = $deprecationTriggers; } + public function enterTestCaseContext(string $className, string $methodName): void + { + $this->testCaseContext = $this->testCaseContext($className, $methodName); + } + + public function leaveTestCaseContext(): void + { + $this->testCaseContext = null; + } + /** * @param non-empty-string $file * @param positive-int $line @@ -295,7 +347,7 @@ final class ErrorHandler } /** - * @param list'|'::', args?: list, object?: object}> $trace + * @param list $trace */ private function triggerForUserlandDeprecation(TestMethod $test, array $trace): IssueTrigger { @@ -334,7 +386,7 @@ final class ErrorHandler } /** - * @return list'|'::', args?: list, object?: object}> + * @return list */ private function filteredStackTrace(): array { @@ -366,7 +418,7 @@ final class ErrorHandler } /** - * @return ?array{function: string, line?: int, file?: string, class?: class-string, type?: '->'|'::', args?: list, object?: object} + * @return ?array{file: non-empty-string, line: positive-int} */ private function guessDeprecationFrame(): ?array { @@ -377,15 +429,19 @@ final class ErrorHandler $trace = $this->errorStackTrace(); foreach ($trace as $frame) { + if (!isset($frame['file']) || $frame['file'] === '' || !isset($frame['line']) || $frame['line'] < 1) { + continue; + } + foreach ($this->deprecationTriggers['functions'] as $function) { if ($this->frameIsFunction($frame, $function)) { - return $frame; + return ['file' => $frame['file'], 'line' => $frame['line']]; } } foreach ($this->deprecationTriggers['methods'] as $method) { if ($this->frameIsMethod($frame, $method)) { - return $frame; + return ['file' => $frame['file'], 'line' => $frame['line']]; } } } @@ -394,7 +450,7 @@ final class ErrorHandler } /** - * @return list'|'::', args?: list, object?: object}> + * @return list */ private function errorStackTrace(): array { @@ -410,8 +466,8 @@ final class ErrorHandler } /** - * @param array{function: string, line?: int, file?: string, class?: class-string, type?: '->'|'::', args?: list, object?: object} $frame - * @param non-empty-string $function + * @param array{class?: class-string, function?: non-empty-string, ...} $frame + * @param non-empty-string $function */ private function frameIsFunction(array $frame, string $function): bool { @@ -419,8 +475,8 @@ final class ErrorHandler } /** - * @param array{function: string, line?: int, file?: string, class?: class-string, type?: '->'|'::', args?: list, object?: object} $frame - * @param array{className: class-string, methodName: non-empty-string} $method + * @param array{class?: class-string, function?: non-empty-string, ...} $frame + * @param array{className: class-string, methodName: non-empty-string} $method */ private function frameIsMethod(array $frame, array $method): bool { @@ -458,4 +514,40 @@ final class ErrorHandler return $buffer; } + + private function triggerGlobalDeprecations(TestCase $test): void + { + foreach ($this->globalDeprecations as $d) { + $this->__invoke(...$d); + } + + $testCaseContext = $this->testCaseContext($test::class, $test->name()); + + foreach ($this->testCaseContextDeprecations[$testCaseContext] ?? [] as $d) { + $this->__invoke(...$d); + } + } + + private function testCaseContext(string $className, string $methodName): string + { + return "{$className}::{$methodName}"; + } + + private function deprecationIgnoredByTest(TestMethod $test, string $message): bool + { + $metadata = MetadataParserRegistry::parser()->forClassAndMethod($test->className(), $test->methodName())->isIgnoreDeprecations()->asArray(); + + foreach ($metadata as $metadatum) { + assert($metadatum instanceof IgnoreDeprecations); + + $ignoreDeprecationMessagePattern = $metadatum->messagePattern(); + + if ($ignoreDeprecationMessagePattern === null || + (bool) preg_match('{' . $ignoreDeprecationMessagePattern . '}', $message)) { + return true; + } + } + + return false; + } } diff --git a/vendor/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php b/vendor/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php index a4c20640f..da45211d7 100644 --- a/vendor/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php +++ b/vendor/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php @@ -15,7 +15,7 @@ use function in_array; use PHPUnit\Framework\Test; use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestSuite; -use PHPUnit\Runner\PhptTestCase; +use PHPUnit\Runner\Phpt\TestCase as PhptTestCase; use RecursiveFilterIterator; use RecursiveIterator; diff --git a/vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php b/vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php index 902c4dff1..070c553d9 100644 --- a/vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php +++ b/vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php @@ -12,11 +12,10 @@ namespace PHPUnit\Runner\Filter; use function end; use function preg_match; use function sprintf; -use function str_replace; use function substr; use PHPUnit\Framework\Test; use PHPUnit\Framework\TestSuite; -use PHPUnit\Runner\PhptTestCase; +use PHPUnit\Runner\Phpt\TestCase as PhptTestCase; use RecursiveFilterIterator; use RecursiveIterator; @@ -98,7 +97,7 @@ abstract class NameFilterIterator extends RecursiveFilterIterator $dataSetMinimum = (int) $matches[2]; $dataSetMaximum = (int) $matches[3]; - } else { + } elseif ($matches[1] !== '') { $filter = sprintf( '%s.*with data set #%s$', $matches[1], @@ -116,15 +115,10 @@ abstract class NameFilterIterator extends RecursiveFilterIterator ); } - // Escape delimiters in regular expression. Do NOT use preg_quote, - // to keep magic characters. + // Do NOT use preg_quote, to keep magic characters. $filter = sprintf( - '/%s/i', - str_replace( - '/', - '\\/', - $filter, - ), + '{%s}i', + $filter, ); } diff --git a/vendor/phpunit/phpunit/src/Runner/Filter/TestIdFilterIterator.php b/vendor/phpunit/phpunit/src/Runner/Filter/TestIdFilterIterator.php index 256cb7276..1180de4e7 100644 --- a/vendor/phpunit/phpunit/src/Runner/Filter/TestIdFilterIterator.php +++ b/vendor/phpunit/phpunit/src/Runner/Filter/TestIdFilterIterator.php @@ -14,7 +14,7 @@ use PHPUnit\Event\TestData\NoDataSetFromDataProviderException; use PHPUnit\Framework\Test; use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestSuite; -use PHPUnit\Runner\PhptTestCase; +use PHPUnit\Runner\Phpt\TestCase as PhptTestCase; use RecursiveFilterIterator; use RecursiveIterator; diff --git a/vendor/phpunit/phpunit/src/Runner/GarbageCollection/GarbageCollectionHandler.php b/vendor/phpunit/phpunit/src/Runner/GarbageCollection/GarbageCollectionHandler.php index be460557c..c6cd2dd3b 100644 --- a/vendor/phpunit/phpunit/src/Runner/GarbageCollection/GarbageCollectionHandler.php +++ b/vendor/phpunit/phpunit/src/Runner/GarbageCollection/GarbageCollectionHandler.php @@ -12,9 +12,7 @@ namespace PHPUnit\Runner\GarbageCollection; use function gc_collect_cycles; use function gc_disable; use function gc_enable; -use PHPUnit\Event\EventFacadeIsSealedException; use PHPUnit\Event\Facade; -use PHPUnit\Event\UnknownSubscriberTypeException; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit @@ -27,10 +25,6 @@ final class GarbageCollectionHandler private readonly int $threshold; private int $tests = 0; - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ public function __construct(Facade $facade, int $threshold) { $this->facade = $facade; @@ -74,10 +68,6 @@ final class GarbageCollectionHandler } } - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ private function registerSubscribers(): void { $this->facade->registerSubscribers( diff --git a/vendor/phpunit/phpunit/src/Runner/IssueFilter.php b/vendor/phpunit/phpunit/src/Runner/IssueFilter.php index b7a53661d..329a79556 100644 --- a/vendor/phpunit/phpunit/src/Runner/IssueFilter.php +++ b/vendor/phpunit/phpunit/src/Runner/IssueFilter.php @@ -59,10 +59,6 @@ final readonly class IssueFilter if (!$this->source->ignoreSuppressionOfDeprecations() && $event->wasSuppressed()) { return false; } - - if ($this->source->restrictDeprecations() && !SourceFilter::instance()->includes($event->file())) { - return false; - } } if ($event instanceof NoticeTriggered) { diff --git a/vendor/phpunit/phpunit/src/Runner/Exception/InvalidPhptFileException.php b/vendor/phpunit/phpunit/src/Runner/PHPT/Exception/InvalidPhptFileException.php similarity index 83% rename from vendor/phpunit/phpunit/src/Runner/Exception/InvalidPhptFileException.php rename to vendor/phpunit/phpunit/src/Runner/PHPT/Exception/InvalidPhptFileException.php index d1f593b81..07a2953ec 100644 --- a/vendor/phpunit/phpunit/src/Runner/Exception/InvalidPhptFileException.php +++ b/vendor/phpunit/phpunit/src/Runner/PHPT/Exception/InvalidPhptFileException.php @@ -7,8 +7,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace PHPUnit\Runner; +namespace PHPUnit\Runner\Phpt; +use PHPUnit\Runner\Exception as RunnerException; use RuntimeException; /** @@ -16,6 +17,6 @@ use RuntimeException; * * @internal This class is not covered by the backward compatibility promise for PHPUnit */ -final class InvalidPhptFileException extends RuntimeException implements Exception +final class InvalidPhptFileException extends RuntimeException implements RunnerException { } diff --git a/vendor/phpunit/phpunit/src/Runner/Exception/PhptExternalFileCannotBeLoadedException.php b/vendor/phpunit/phpunit/src/Runner/PHPT/Exception/PhptExternalFileCannotBeLoadedException.php similarity index 87% rename from vendor/phpunit/phpunit/src/Runner/Exception/PhptExternalFileCannotBeLoadedException.php rename to vendor/phpunit/phpunit/src/Runner/PHPT/Exception/PhptExternalFileCannotBeLoadedException.php index 33977155b..bdee62622 100644 --- a/vendor/phpunit/phpunit/src/Runner/Exception/PhptExternalFileCannotBeLoadedException.php +++ b/vendor/phpunit/phpunit/src/Runner/PHPT/Exception/PhptExternalFileCannotBeLoadedException.php @@ -7,9 +7,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace PHPUnit\Runner; +namespace PHPUnit\Runner\Phpt; use function sprintf; +use PHPUnit\Runner\Exception as RunnerException; use RuntimeException; /** @@ -17,7 +18,7 @@ use RuntimeException; * * @internal This class is not covered by the backward compatibility promise for PHPUnit */ -final class PhptExternalFileCannotBeLoadedException extends RuntimeException implements Exception +final class PhptExternalFileCannotBeLoadedException extends RuntimeException implements RunnerException { public function __construct(string $section, string $file) { diff --git a/vendor/phpunit/phpunit/src/Runner/Exception/UnsupportedPhptSectionException.php b/vendor/phpunit/phpunit/src/Runner/PHPT/Exception/UnsupportedPhptSectionException.php similarity index 80% rename from vendor/phpunit/phpunit/src/Runner/Exception/UnsupportedPhptSectionException.php rename to vendor/phpunit/phpunit/src/Runner/PHPT/Exception/UnsupportedPhptSectionException.php index ca8647e6f..9079f9967 100644 --- a/vendor/phpunit/phpunit/src/Runner/Exception/UnsupportedPhptSectionException.php +++ b/vendor/phpunit/phpunit/src/Runner/PHPT/Exception/UnsupportedPhptSectionException.php @@ -7,9 +7,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace PHPUnit\Runner; +namespace PHPUnit\Runner\Phpt; use function sprintf; +use PHPUnit\Runner\Exception as RunnerException; use RuntimeException; /** @@ -17,13 +18,13 @@ use RuntimeException; * * @internal This class is not covered by the backward compatibility promise for PHPUnit */ -final class UnsupportedPhptSectionException extends RuntimeException implements Exception +final class UnsupportedPhptSectionException extends RuntimeException implements RunnerException { public function __construct(string $section) { parent::__construct( sprintf( - 'PHPUnit does not support PHPT %s sections', + 'PHPUnit does not support PHPT --%s-- sections', $section, ), ); diff --git a/vendor/phpunit/phpunit/src/Runner/PHPT/Parser.php b/vendor/phpunit/phpunit/src/Runner/PHPT/Parser.php new file mode 100644 index 000000000..e89250710 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/PHPT/Parser.php @@ -0,0 +1,223 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner\Phpt; + +use const DIRECTORY_SEPARATOR; +use function assert; +use function dirname; +use function explode; +use function file; +use function file_get_contents; +use function is_file; +use function is_readable; +use function is_string; +use function preg_match; +use function realpath; +use function rtrim; +use function str_contains; +use function trim; +use PHPUnit\Runner\Exception; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + * + * @see https://qa.php.net/phpt_details.php + */ +final readonly class Parser +{ + /** + * @param non-empty-string $phptFile + * + * @throws Exception + * + * @return array + */ + public function parse(string $phptFile): array + { + $sections = []; + $section = ''; + + $unsupportedSections = [ + 'CGI', + 'COOKIE', + 'DEFLATE_POST', + 'EXPECTHEADERS', + 'EXTENSIONS', + 'GET', + 'GZIP_POST', + 'HEADERS', + 'PHPDBG', + 'POST', + 'POST_RAW', + 'PUT', + 'REDIRECTTEST', + 'REQUEST', + ]; + + $lineNr = 0; + + foreach (file($phptFile) as $line) { + $lineNr++; + + if (preg_match('/^--([_A-Z]+)--/', $line, $result)) { + $section = $result[1]; + $sections[$section] = ''; + $sections[$section . '_offset'] = $lineNr; + + continue; + } + + if ($section === '') { + throw new InvalidPhptFileException; + } + + $sections[$section] .= $line; + } + + if (isset($sections['FILEEOF'])) { + $sections['FILE'] = rtrim($sections['FILEEOF'], "\r\n"); + + unset($sections['FILEEOF']); + } + + $this->parseExternal($phptFile, $sections); + $this->validate($sections); + + foreach ($unsupportedSections as $unsupportedSection) { + if (isset($sections[$unsupportedSection])) { + throw new UnsupportedPhptSectionException($unsupportedSection); + } + } + + return $sections; + } + + /** + * @return array + */ + public function parseEnvSection(string $content): array + { + $env = []; + + foreach (explode("\n", trim($content)) as $e) { + $e = explode('=', trim($e), 2); + + if ($e[0] !== '' && isset($e[1])) { + $env[$e[0]] = $e[1]; + } + } + + return $env; + } + + /** + * @param array|string $content + * @param array|non-empty-string> $ini + * + * @return array|non-empty-string> + */ + public function parseIniSection(array|string $content, array $ini = []): array + { + if (is_string($content)) { + $content = explode("\n", trim($content)); + } + + foreach ($content as $setting) { + if (!str_contains($setting, '=')) { + continue; + } + + $setting = explode('=', $setting, 2); + $name = trim($setting[0]); + $value = trim($setting[1]); + + if ($name === 'extension' || $name === 'zend_extension') { + if (!isset($ini[$name])) { + $ini[$name] = []; + } + + $ini[$name][] = $value; + + continue; + } + + $ini[$name] = $value; + } + + return $ini; + } + + /** + * @param non-empty-string $phptFile + * @param array $sections + * + * @throws Exception + */ + private function parseExternal(string $phptFile, array &$sections): void + { + $allowSections = [ + 'FILE', + 'EXPECT', + 'EXPECTF', + 'EXPECTREGEX', + ]; + + $testDirectory = dirname($phptFile) . DIRECTORY_SEPARATOR; + + foreach ($allowSections as $section) { + if (isset($sections[$section . '_EXTERNAL'])) { + $externalFilename = trim($sections[$section . '_EXTERNAL']); + + if (!is_file($testDirectory . $externalFilename) || + !is_readable($testDirectory . $externalFilename)) { + throw new PhptExternalFileCannotBeLoadedException( + $section, + $testDirectory . $externalFilename, + ); + } + + $externalPath = $testDirectory . $externalFilename; + $contents = file_get_contents($externalPath); + + assert($contents !== false && $contents !== ''); + + $sections[$section] = $contents; + + if ($section === 'FILE') { + $resolvedPath = realpath($externalPath); + + assert(is_string($resolvedPath) && $resolvedPath !== ''); + + $sections['FILE_EXTERNAL_PATH'] = $resolvedPath; + } + } + } + } + + /** + * @param array $sections + * + * @throws InvalidPhptFileException + */ + private function validate(array $sections): void + { + if (!isset($sections['FILE'])) { + throw new InvalidPhptFileException; + } + + if (!isset($sections['EXPECT']) && + !isset($sections['EXPECTF']) && + !isset($sections['EXPECTREGEX'])) { + throw new InvalidPhptFileException; + } + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/PHPT/Renderer.php b/vendor/phpunit/phpunit/src/Runner/PHPT/Renderer.php new file mode 100644 index 000000000..0fe1de925 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/PHPT/Renderer.php @@ -0,0 +1,110 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner\Phpt; + +use function assert; +use function defined; +use function dirname; +use function file_put_contents; +use function str_replace; +use function var_export; +use PHPUnit\TextUI\Configuration\Registry as ConfigurationRegistry; +use SebastianBergmann\Template\InvalidArgumentException; +use SebastianBergmann\Template\Template; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + * + * @see https://qa.php.net/phpt_details.php + */ +final readonly class Renderer +{ + /** + * @param non-empty-string $phptFile + * @param non-empty-string $code + * + * @return non-empty-string + */ + public function render(string $phptFile, string $code): string + { + return str_replace( + [ + '__DIR__', + '__FILE__', + ], + [ + "'" . dirname($phptFile) . "'", + "'" . $phptFile . "'", + ], + $code, + ); + } + + /** + * @param non-empty-string $job + * @param array{coverage: non-empty-string, job: non-empty-string} $files + * + * @param-out non-empty-string $job + * + * @throws InvalidArgumentException + */ + public function renderForCoverage(string &$job, bool $pathCoverage, ?string $codeCoverageCacheDirectory, array $files): void + { + $template = new Template( + __DIR__ . '/templates/phpt.tpl', + ); + + $composerAutoload = '\'\''; + + if (defined('PHPUNIT_COMPOSER_INSTALL')) { + $composerAutoload = var_export(PHPUNIT_COMPOSER_INSTALL, true); + } + + $phar = '\'\''; + + if (defined('__PHPUNIT_PHAR__')) { + $phar = var_export(__PHPUNIT_PHAR__, true); + } + + if ($codeCoverageCacheDirectory === null) { + $codeCoverageCacheDirectory = 'null'; + } else { + $codeCoverageCacheDirectory = "'" . $codeCoverageCacheDirectory . "'"; + } + + $bootstrap = ''; + + if (ConfigurationRegistry::get()->hasBootstrap()) { + $bootstrap = ConfigurationRegistry::get()->bootstrap(); + } + + $template->setVar( + [ + 'bootstrap' => $bootstrap, + 'composerAutoload' => $composerAutoload, + 'phar' => $phar, + 'job' => $files['job'], + 'coverageFile' => $files['coverage'], + 'driverMethod' => $pathCoverage ? 'forLineAndPathCoverage' : 'forLineCoverage', + 'codeCoverageCacheDirectory' => $codeCoverageCacheDirectory, + ], + ); + + file_put_contents($files['job'], $job); + + $rendered = $template->render(); + + assert($rendered !== ''); + + $job = $rendered; + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/PHPT/PhptTestCase.php b/vendor/phpunit/phpunit/src/Runner/PHPT/TestCase.php similarity index 65% rename from vendor/phpunit/phpunit/src/Runner/PHPT/PhptTestCase.php rename to vendor/phpunit/phpunit/src/Runner/PHPT/TestCase.php index 8764b46bb..041a9f157 100644 --- a/vendor/phpunit/phpunit/src/Runner/PHPT/PhptTestCase.php +++ b/vendor/phpunit/phpunit/src/Runner/PHPT/TestCase.php @@ -7,26 +7,20 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace PHPUnit\Runner; +namespace PHPUnit\Runner\Phpt; use const DEBUG_BACKTRACE_IGNORE_ARGS; use const DIRECTORY_SEPARATOR; use function array_merge; -use function assert; use function basename; use function debug_backtrace; -use function defined; use function dirname; use function explode; use function extension_loaded; -use function file; use function file_exists; use function file_get_contents; -use function file_put_contents; use function is_array; use function is_file; -use function is_readable; -use function is_string; use function ltrim; use function ob_get_clean; use function ob_start; @@ -34,20 +28,16 @@ use function preg_match; use function preg_replace; use function preg_split; use function realpath; -use function rtrim; use function sprintf; use function str_contains; -use function str_replace; use function str_starts_with; use function strncasecmp; use function substr; use function trim; use function unlink; use function unserialize; -use function var_export; use PHPUnit\Event\Code\Phpt; use PHPUnit\Event\Code\ThrowableBuilder; -use PHPUnit\Event\Facade; use PHPUnit\Event\Facade as EventFacade; use PHPUnit\Event\NoPreviousThrowableException; use PHPUnit\Framework\Assert; @@ -59,7 +49,9 @@ use PHPUnit\Framework\PhptAssertionFailedError; use PHPUnit\Framework\Reorderable; use PHPUnit\Framework\SelfDescribing; use PHPUnit\Framework\Test; -use PHPUnit\TextUI\Configuration\Registry as ConfigurationRegistry; +use PHPUnit\Runner\CodeCoverage; +use PHPUnit\Runner\CodeCoverageFileExistsException; +use PHPUnit\Runner\Exception; use PHPUnit\Util\PHP\Job; use PHPUnit\Util\PHP\JobRunnerRegistry; use SebastianBergmann\CodeCoverage\Data\RawCodeCoverageData; @@ -69,7 +61,6 @@ use SebastianBergmann\CodeCoverage\Test\TestSize\TestSize; use SebastianBergmann\CodeCoverage\Test\TestStatus\TestStatus; use SebastianBergmann\CodeCoverage\TestIdMissingException; use SebastianBergmann\CodeCoverage\UnintentionallyCoveredCodeException; -use SebastianBergmann\Template\Template; use staabm\SideEffectsDetector\SideEffect; use staabm\SideEffectsDetector\SideEffectsDetector; use Throwable; @@ -78,18 +69,17 @@ use Throwable; * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit * * @internal This class is not covered by the backward compatibility promise for PHPUnit + * + * @see https://qa.php.net/phpt_details.php */ -final class PhptTestCase implements Reorderable, SelfDescribing, Test +final readonly class TestCase implements Reorderable, SelfDescribing, Test { /** * @var non-empty-string */ - private readonly string $filename; - private string $output = ''; + private string $filename; /** - * Constructs a test case with the given filename. - * * @param non-empty-string $filename */ public function __construct(string $filename) @@ -99,17 +89,12 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test $this->ensureCoverageFileDoesNotExist(); } - /** - * Counts the number of test cases executed by run(TestResult result). - */ public function count(): int { return 1; } /** - * Runs a test and collects its result in a TestResult instance. - * * @throws \PHPUnit\Framework\Exception * @throws \SebastianBergmann\Template\InvalidArgumentException * @throws Exception @@ -118,19 +103,18 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test * @throws ReflectionException * @throws TestIdMissingException * @throws UnintentionallyCoveredCodeException - * - * @noinspection RepetitiveMethodCallsInspection */ public function run(): void { $emitter = EventFacade::emitter(); + $parser = new Parser; $emitter->testPreparationStarted( $this->valueObjectForEvents(), ); try { - $sections = $this->parse(); + $sections = $parser->parse($this->filename); } catch (Exception $e) { $emitter->testPrepared($this->valueObjectForEvents()); $emitter->testErrored($this->valueObjectForEvents(), ThrowableBuilder::from($e)); @@ -139,21 +123,21 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test return; } - $code = $this->render($sections['FILE']); + $code = (new Renderer)->render($sections['FILE_EXTERNAL_PATH'] ?? $this->filename, $sections['FILE']); $xfail = false; $environmentVariables = []; - $phpSettings = $this->parseIniSection($this->settings(CodeCoverage::instance()->isActive())); + $phpSettings = $parser->parseIniSection($this->settings(CodeCoverage::instance()->isActive())); $input = null; $arguments = []; $emitter->testPrepared($this->valueObjectForEvents()); if (isset($sections['INI'])) { - $phpSettings = $this->parseIniSection($sections['INI'], $phpSettings); + $phpSettings = $parser->parseIniSection($sections['INI'], $phpSettings); } if (isset($sections['ENV'])) { - $environmentVariables = $this->parseEnvSection($sections['ENV']); + $environmentVariables = $parser->parseEnvSection($sections['ENV']); } if ($this->shouldTestBeSkipped($sections, $phpSettings)) { @@ -179,10 +163,11 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test $codeCoverageCacheDirectory = CodeCoverage::instance()->codeCoverage()->cacheDirectory(); } - $this->renderForCoverage( + (new Renderer)->renderForCoverage( $code, CodeCoverage::instance()->codeCoverage()->collectsBranchAndPathCoverage(), $codeCoverageCacheDirectory, + $this->coverageFiles(), ); } @@ -197,9 +182,9 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test ), ); - Facade::emitter()->testRunnerFinishedChildProcess($jobResult->stdout(), $jobResult->stderr()); + EventFacade::emitter()->childProcessFinished($jobResult->stdout(), $jobResult->stderr()); - $this->output = $jobResult->stdout(); + $output = $jobResult->stdout(); if (CodeCoverage::instance()->isActive()) { $coverage = $this->cleanupForCoverage(); @@ -217,7 +202,7 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test $passed = true; try { - $this->assertPhptExpectation($sections, $this->output); + $this->assertPhptExpectation($sections, $output); } catch (AssertionFailedError $e) { $failure = $e; @@ -226,7 +211,7 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test } elseif ($e instanceof ExpectationFailedException) { $comparisonFailure = $e->getComparisonFailure(); - if ($comparisonFailure) { + if ($comparisonFailure !== null) { $diff = $comparisonFailure->getDiff(); } else { $diff = $e->getMessage(); @@ -240,7 +225,7 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test (string) $trace[0]['file'], (int) $trace[0]['line'], $trace, - $comparisonFailure ? $diff : '', + $comparisonFailure !== null ? $diff : '', ); } @@ -282,26 +267,6 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test return $this->filename; } - public function usesDataProvider(): false - { - return false; - } - - public function numberOfAssertionsPerformed(): int - { - return 1; - } - - public function output(): string - { - return $this->output; - } - - public function hasOutput(): bool - { - return !empty($this->output); - } - public function sortId(): string { return $this->filename; @@ -331,61 +296,6 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test return new Phpt($this->filename); } - /** - * @param array|string $content - * @param array|non-empty-string> $ini - * - * @return array|non-empty-string> - */ - private function parseIniSection(array|string $content, array $ini = []): array - { - if (is_string($content)) { - $content = explode("\n", trim($content)); - } - - foreach ($content as $setting) { - if (!str_contains($setting, '=')) { - continue; - } - - $setting = explode('=', $setting, 2); - $name = trim($setting[0]); - $value = trim($setting[1]); - - if ($name === 'extension' || $name === 'zend_extension') { - if (!isset($ini[$name])) { - $ini[$name] = []; - } - - $ini[$name][] = $value; - - continue; - } - - $ini[$name] = $value; - } - - return $ini; - } - - /** - * @return array - */ - private function parseEnvSection(string $content): array - { - $env = []; - - foreach (explode("\n", trim($content)) as $e) { - $e = explode('=', trim($e), 2); - - if ($e[0] !== '' && isset($e[1])) { - $env[$e[0]] = $e[1]; - } - } - - return $env; - } - /** * @param array $sections * @@ -407,6 +317,7 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test $sectionContent = preg_replace('/\r\n/', "\n", trim($sections[$sectionName])); $expected = $sectionName === 'EXPECTREGEX' ? "/{$sectionContent}/" : $sectionContent; + /** @phpstan-ignore staticMethod.dynamicName */ Assert::$sectionAssertion($expected, $actual); return; @@ -426,7 +337,7 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test return false; } - $skipIfCode = $this->render($sections['SKIPIF']); + $skipIfCode = (new Renderer)->render($this->filename, $sections['SKIPIF']); if ($this->shouldRunInSubprocess($sections, $skipIfCode)) { $jobResult = JobRunnerRegistry::run( @@ -435,14 +346,17 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test $this->stringifyIni($settings), ), ); + $output = $jobResult->stdout(); - Facade::emitter()->testRunnerFinishedChildProcess($output, $jobResult->stderr()); + EventFacade::emitter()->childProcessFinished($output, $jobResult->stderr()); } else { $output = $this->runCodeInLocalSandbox($skipIfCode); } - if (!strncasecmp('skip', ltrim($output), 4)) { + $this->triggerRunnerWarningOnPhpErrors('SKIPIF', $output); + + if (strncasecmp('skip', ltrim($output), 4) === 0) { $message = ''; if (preg_match('/^\s*skip\s*(.+)\s*/i', $output, $skipMatch)) { @@ -476,14 +390,18 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test $sideEffects = $detector->getSideEffects($cleanCode); if ($sideEffects === []) { - return false; // no side-effects + // no side-effects + return false; } foreach ($sideEffects as $sideEffect) { - if ( - $sideEffect === SideEffect::STANDARD_OUTPUT || // stdout is fine, we will catch it using output-buffering - $sideEffect === SideEffect::INPUT_OUTPUT // IO is fine, as it doesn't pollute the main process - ) { + if ($sideEffect === SideEffect::STANDARD_OUTPUT) { + // stdout is fine, we will catch it using output-buffering + continue; + } + + if ($sideEffect === SideEffect::INPUT_OUTPUT) { + // IO is fine, as it doesn't pollute the main process continue; } @@ -515,259 +433,24 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test return; } - $cleanCode = $this->render($sections['CLEAN']); + $cleanCode = (new Renderer)->render($this->filename, $sections['CLEAN']); if ($this->shouldRunInSubprocess($sections, $cleanCode)) { - $result = JobRunnerRegistry::run( + $jobResult = JobRunnerRegistry::run( new Job( $cleanCode, $this->settings($collectCoverage), ), ); - Facade::emitter()->testRunnerFinishedChildProcess($result->stdout(), $result->stderr()); + $output = $jobResult->stdout(); + + EventFacade::emitter()->childProcessFinished($jobResult->stdout(), $jobResult->stderr()); } else { - $this->runCodeInLocalSandbox($cleanCode); - } - } - - /** - * @throws Exception - * - * @return array - */ - private function parse(): array - { - $sections = []; - $section = ''; - - $unsupportedSections = [ - 'CGI', - 'COOKIE', - 'DEFLATE_POST', - 'EXPECTHEADERS', - 'EXTENSIONS', - 'GET', - 'GZIP_POST', - 'HEADERS', - 'PHPDBG', - 'POST', - 'POST_RAW', - 'PUT', - 'REDIRECTTEST', - 'REQUEST', - ]; - - $lineNr = 0; - - foreach (file($this->filename) as $line) { - $lineNr++; - - if (preg_match('/^--([_A-Z]+)--/', $line, $result)) { - $section = $result[1]; - $sections[$section] = ''; - $sections[$section . '_offset'] = $lineNr; - - continue; - } - - if (empty($section)) { - throw new InvalidPhptFileException; - } - - $sections[$section] .= $line; + $output = $this->runCodeInLocalSandbox($cleanCode); } - if (isset($sections['FILEEOF'])) { - $sections['FILE'] = rtrim($sections['FILEEOF'], "\r\n"); - unset($sections['FILEEOF']); - } - - $this->parseExternal($sections); - - if (!$this->validate($sections)) { - throw new InvalidPhptFileException; - } - - foreach ($unsupportedSections as $section) { - if (isset($sections[$section])) { - throw new UnsupportedPhptSectionException($section); - } - } - - return $sections; - } - - /** - * @param array $sections - * - * @throws Exception - */ - private function parseExternal(array &$sections): void - { - $allowSections = [ - 'FILE', - 'EXPECT', - 'EXPECTF', - 'EXPECTREGEX', - ]; - - $testDirectory = dirname($this->filename) . DIRECTORY_SEPARATOR; - - foreach ($allowSections as $section) { - if (isset($sections[$section . '_EXTERNAL'])) { - $externalFilename = trim($sections[$section . '_EXTERNAL']); - - if (!is_file($testDirectory . $externalFilename) || - !is_readable($testDirectory . $externalFilename)) { - throw new PhptExternalFileCannotBeLoadedException( - $section, - $testDirectory . $externalFilename, - ); - } - - $contents = file_get_contents($testDirectory . $externalFilename); - - assert($contents !== false && $contents !== ''); - - $sections[$section] = $contents; - } - } - } - - /** - * @param array $sections - */ - private function validate(array $sections): bool - { - $requiredSections = [ - 'FILE', - [ - 'EXPECT', - 'EXPECTF', - 'EXPECTREGEX', - ], - ]; - - foreach ($requiredSections as $section) { - if (is_array($section)) { - $foundSection = false; - - foreach ($section as $anySection) { - if (isset($sections[$anySection])) { - $foundSection = true; - - break; - } - } - - if (!$foundSection) { - return false; - } - - continue; - } - - if (!isset($sections[$section])) { - return false; - } - } - - return true; - } - - /** - * @param non-empty-string $code - * - * @return non-empty-string - */ - private function render(string $code): string - { - return str_replace( - [ - '__DIR__', - '__FILE__', - ], - [ - "'" . dirname($this->filename) . "'", - "'" . $this->filename . "'", - ], - $code, - ); - } - - /** - * @return array{coverage: non-empty-string, job: non-empty-string} - */ - private function coverageFiles(): array - { - $baseDir = dirname(realpath($this->filename)) . DIRECTORY_SEPARATOR; - $basename = basename($this->filename, 'phpt'); - - return [ - 'coverage' => $baseDir . $basename . 'coverage', - 'job' => $baseDir . $basename . 'php', - ]; - } - - /** - * @param non-empty-string $job - * - * @param-out non-empty-string $job - * - * @throws \SebastianBergmann\Template\InvalidArgumentException - */ - private function renderForCoverage(string &$job, bool $pathCoverage, ?string $codeCoverageCacheDirectory): void - { - $files = $this->coverageFiles(); - - $template = new Template( - __DIR__ . '/templates/phpt.tpl', - ); - - $composerAutoload = '\'\''; - - if (defined('PHPUNIT_COMPOSER_INSTALL')) { - $composerAutoload = var_export(PHPUNIT_COMPOSER_INSTALL, true); - } - - $phar = '\'\''; - - if (defined('__PHPUNIT_PHAR__')) { - $phar = var_export(__PHPUNIT_PHAR__, true); - } - - if ($codeCoverageCacheDirectory === null) { - $codeCoverageCacheDirectory = 'null'; - } else { - $codeCoverageCacheDirectory = "'" . $codeCoverageCacheDirectory . "'"; - } - - $bootstrap = ''; - - if (ConfigurationRegistry::get()->hasBootstrap()) { - $bootstrap = ConfigurationRegistry::get()->bootstrap(); - } - - $template->setVar( - [ - 'bootstrap' => $bootstrap, - 'composerAutoload' => $composerAutoload, - 'phar' => $phar, - 'job' => $files['job'], - 'coverageFile' => $files['coverage'], - 'driverMethod' => $pathCoverage ? 'forLineAndPathCoverage' : 'forLineCoverage', - 'codeCoverageCacheDirectory' => $codeCoverageCacheDirectory, - ], - ); - - file_put_contents($files['job'], $job); - - $rendered = $template->render(); - - assert($rendered !== ''); - - $job = $rendered; + $this->triggerRunnerWarningOnPhpErrors('CLEAN', $output); } /** @@ -813,6 +496,20 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test return $coverage; } + /** + * @return array{coverage: non-empty-string, job: non-empty-string} + */ + private function coverageFiles(): array + { + $baseDir = dirname(realpath($this->filename)) . DIRECTORY_SEPARATOR; + $basename = basename($this->filename, 'phpt'); + + return [ + 'coverage' => $baseDir . $basename . 'coverage', + 'job' => $baseDir . $basename . 'php', + ]; + } + /** * @param array|non-empty-string> $ini * @@ -873,7 +570,7 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test } } - if (!empty($line)) { + if ($line !== '') { $previousLine = $line; } } @@ -899,7 +596,7 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test { $needle = trim($needle); - if (empty($needle)) { + if ($needle === '') { return [[ 'file' => realpath($this->filename), 'line' => 1, @@ -999,6 +696,29 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test return $settings; } + private function triggerRunnerWarningOnPhpErrors(string $section, string $output): void + { + if (str_contains($output, 'Parse error:')) { + EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( + sprintf( + '%s section triggered a parse error: %s', + $section, + $output, + ), + ); + } + + if (str_contains($output, 'Fatal error:')) { + EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( + sprintf( + '%s section triggered a fatal error: %s', + $section, + $output, + ), + ); + } + } + /** * @throws CodeCoverageFileExistsException */ diff --git a/vendor/phpunit/phpunit/src/Runner/PHPT/templates/phpt.tpl b/vendor/phpunit/phpunit/src/Runner/PHPT/templates/phpt.tpl index c42518886..f9cc6d6ff 100644 --- a/vendor/phpunit/phpunit/src/Runner/PHPT/templates/phpt.tpl +++ b/vendor/phpunit/phpunit/src/Runner/PHPT/templates/phpt.tpl @@ -3,48 +3,48 @@ use SebastianBergmann\CodeCoverage\CodeCoverage; use SebastianBergmann\CodeCoverage\Driver\Selector; use SebastianBergmann\CodeCoverage\Filter; -$composerAutoload = {composerAutoload}; -$phar = {phar}; +$__phpunit_composerAutoload = {composerAutoload}; +$__phpunit_phar = {phar}; ob_start(); $GLOBALS['__PHPUNIT_ISOLATION_EXCLUDE_LIST'][] = '{job}'; -if ($composerAutoload) { - require_once $composerAutoload; +if ($__phpunit_composerAutoload) { + require_once $__phpunit_composerAutoload; - define('PHPUNIT_COMPOSER_INSTALL', $composerAutoload); -} else if ($phar) { - require $phar; + define('PHPUNIT_COMPOSER_INSTALL', $__phpunit_composerAutoload); +} else if ($__phpunit_phar) { + require $__phpunit_phar; } -$coverage = null; +$__phpunit_coverage = null; if ('{bootstrap}' !== '') { require_once '{bootstrap}'; } if (class_exists('SebastianBergmann\CodeCoverage\CodeCoverage')) { - $filter = new Filter; + $__phpunit_filter = new Filter; - $coverage = new CodeCoverage( - (new Selector)->{driverMethod}($filter), - $filter + $__phpunit_coverage = new CodeCoverage( + (new Selector)->{driverMethod}($__phpunit_filter), + $__phpunit_filter ); if ({codeCoverageCacheDirectory}) { - $coverage->cacheStaticAnalysis({codeCoverageCacheDirectory}); + $__phpunit_coverage->cacheStaticAnalysis({codeCoverageCacheDirectory}); } - $coverage->start(__FILE__); + $__phpunit_coverage->start(__FILE__); } register_shutdown_function( - function() use ($coverage) { + function() use ($__phpunit_coverage) { $output = null; - if ($coverage) { - $output = $coverage->stop(); + if ($__phpunit_coverage) { + $output = $__phpunit_coverage->stop(); } file_put_contents('{coverageFile}', serialize($output)); diff --git a/vendor/phpunit/phpunit/src/Runner/ResultCache/DefaultResultCache.php b/vendor/phpunit/phpunit/src/Runner/ResultCache/DefaultResultCache.php index 9ec35974b..da57427f1 100644 --- a/vendor/phpunit/phpunit/src/Runner/ResultCache/DefaultResultCache.php +++ b/vendor/phpunit/phpunit/src/Runner/ResultCache/DefaultResultCache.php @@ -33,15 +33,8 @@ use PHPUnit\Util\Filesystem; */ final class DefaultResultCache implements ResultCache { - /** - * @var int - */ - private const VERSION = 2; - - /** - * @var string - */ - private const DEFAULT_RESULT_CACHE_FILENAME = '.phpunit.result.cache'; + private const int VERSION = 2; + private const string DEFAULT_RESULT_CACHE_FILENAME = '.phpunit.result.cache'; private readonly string $cacheFilename; /** @@ -54,13 +47,13 @@ final class DefaultResultCache implements ResultCache */ private array $times = []; - public function __construct(?string $filepath = null) + public function __construct(string $filepath) { - if ($filepath !== null && is_dir($filepath)) { + if (is_dir($filepath)) { $filepath .= DIRECTORY_SEPARATOR . self::DEFAULT_RESULT_CACHE_FILENAME; } - $this->cacheFilename = $filepath ?? $_ENV['PHPUNIT_RESULT_CACHE'] ?? self::DEFAULT_RESULT_CACHE_FILENAME; + $this->cacheFilename = $filepath; } public function setStatus(ResultCacheId $id, TestStatus $status): void diff --git a/vendor/phpunit/phpunit/src/Runner/ResultCache/ResultCacheHandler.php b/vendor/phpunit/phpunit/src/Runner/ResultCache/ResultCacheHandler.php index 82735c0de..b0b45c6d5 100644 --- a/vendor/phpunit/phpunit/src/Runner/ResultCache/ResultCacheHandler.php +++ b/vendor/phpunit/phpunit/src/Runner/ResultCache/ResultCacheHandler.php @@ -11,7 +11,6 @@ namespace PHPUnit\Runner\ResultCache; use function round; use PHPUnit\Event\Event; -use PHPUnit\Event\EventFacadeIsSealedException; use PHPUnit\Event\Facade; use PHPUnit\Event\Telemetry\HRTime; use PHPUnit\Event\Test\ConsideredRisky; @@ -21,7 +20,6 @@ use PHPUnit\Event\Test\Finished; use PHPUnit\Event\Test\MarkedIncomplete; use PHPUnit\Event\Test\Prepared; use PHPUnit\Event\Test\Skipped; -use PHPUnit\Event\UnknownSubscriberTypeException; use PHPUnit\Framework\InvalidArgumentException; use PHPUnit\Framework\TestStatus\TestStatus; @@ -36,10 +34,6 @@ final class ResultCacheHandler private ?HRTime $time = null; private int $testSuite = 0; - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ public function __construct(ResultCache $cache, Facade $facade) { $this->cache = $cache; @@ -136,10 +130,6 @@ final class ResultCacheHandler return round($event->telemetryInfo()->time()->duration($this->time)->asFloat(), 3); } - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ private function registerSubscribers(Facade $facade): void { $facade->registerSubscribers( diff --git a/vendor/phpunit/phpunit/src/Runner/ShutdownHandler.php b/vendor/phpunit/phpunit/src/Runner/ShutdownHandler.php new file mode 100644 index 000000000..5ee78d0c3 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/ShutdownHandler.php @@ -0,0 +1,63 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +use const PHP_EOL; +use function getmypid; +use function register_shutdown_function; +use function rtrim; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final class ShutdownHandler +{ + private static bool $registered = false; + private static string $message = ''; + + public static function setMessage(string $message): void + { + self::register(); + + self::$message = $message; + } + + public static function resetMessage(): void + { + self::$message = ''; + } + + private static function register(): void + { + if (self::$registered) { + return; + } + + self::$registered = true; + $pid = getmypid(); + + register_shutdown_function( + static function () use ($pid): void + { + $message = rtrim(self::$message); + + if ($message === '' || $pid !== getmypid()) { + return; + } + + print $message . PHP_EOL; + + exit(2); + }, + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/TestResult/Collector.php b/vendor/phpunit/phpunit/src/Runner/TestResult/Collector.php index fd35930a1..f6cbca9d2 100644 --- a/vendor/phpunit/phpunit/src/Runner/TestResult/Collector.php +++ b/vendor/phpunit/phpunit/src/Runner/TestResult/Collector.php @@ -11,13 +11,14 @@ namespace PHPUnit\TestRunner\TestResult; use function array_values; use function assert; +use function count; use function implode; -use function str_contains; use PHPUnit\Event\Code\TestMethod; -use PHPUnit\Event\EventFacadeIsSealedException; use PHPUnit\Event\Facade; use PHPUnit\Event\Test\AfterLastTestMethodErrored; +use PHPUnit\Event\Test\AfterLastTestMethodFailed; use PHPUnit\Event\Test\BeforeFirstTestMethodErrored; +use PHPUnit\Event\Test\BeforeFirstTestMethodFailed; use PHPUnit\Event\Test\ConsideredRisky; use PHPUnit\Event\Test\DeprecationTriggered; use PHPUnit\Event\Test\Errored; @@ -30,19 +31,21 @@ use PHPUnit\Event\Test\PhpDeprecationTriggered; use PHPUnit\Event\Test\PhpNoticeTriggered; use PHPUnit\Event\Test\PhpunitDeprecationTriggered; use PHPUnit\Event\Test\PhpunitErrorTriggered; +use PHPUnit\Event\Test\PhpunitNoticeTriggered; use PHPUnit\Event\Test\PhpunitWarningTriggered; use PHPUnit\Event\Test\PhpWarningTriggered; use PHPUnit\Event\Test\Skipped as TestSkipped; use PHPUnit\Event\Test\WarningTriggered; +use PHPUnit\Event\TestRunner\ChildProcessErrored; use PHPUnit\Event\TestRunner\DeprecationTriggered as TestRunnerDeprecationTriggered; use PHPUnit\Event\TestRunner\ExecutionStarted; +use PHPUnit\Event\TestRunner\NoticeTriggered as TestRunnerNoticeTriggered; use PHPUnit\Event\TestRunner\WarningTriggered as TestRunnerWarningTriggered; use PHPUnit\Event\TestSuite\Finished as TestSuiteFinished; use PHPUnit\Event\TestSuite\Skipped as TestSuiteSkipped; use PHPUnit\Event\TestSuite\Started as TestSuiteStarted; use PHPUnit\Event\TestSuite\TestSuiteForTestClass; use PHPUnit\Event\TestSuite\TestSuiteForTestMethodWithDataProvider; -use PHPUnit\Event\UnknownSubscriberTypeException; use PHPUnit\TestRunner\IssueFilter; use PHPUnit\TestRunner\TestResult\Issues\Issue; @@ -54,10 +57,11 @@ use PHPUnit\TestRunner\TestResult\Issues\Issue; final class Collector { private readonly IssueFilter $issueFilter; - private int $numberOfTests = 0; - private int $numberOfTestsRun = 0; - private int $numberOfAssertions = 0; - private bool $prepared = false; + private int $numberOfTests = 0; + private int $numberOfTestsRun = 0; + private int $numberOfAssertions = 0; + private bool $prepared = false; + private bool $childProcessErrored = false; /** * @var non-negative-int @@ -70,7 +74,7 @@ final class Collector private array $testErroredEvents = []; /** - * @var list + * @var list */ private array $testFailedEvents = []; @@ -104,21 +108,31 @@ final class Collector */ private array $testTriggeredPhpunitErrorEvents = []; + /** + * @var array> + */ + private array $testTriggeredPhpunitNoticeEvents = []; + /** * @var array> */ private array $testTriggeredPhpunitWarningEvents = []; - /** - * @var list - */ - private array $testRunnerTriggeredWarningEvents = []; - /** * @var list */ private array $testRunnerTriggeredDeprecationEvents = []; + /** + * @var list + */ + private array $testRunnerTriggeredNoticeEvents = []; + + /** + * @var list + */ + private array $testRunnerTriggeredWarningEvents = []; + /** * @var array */ @@ -154,10 +168,6 @@ final class Collector */ private array $phpWarnings = []; - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ public function __construct(Facade $facade, IssueFilter $issueFilter) { $facade->registerSubscribers( @@ -168,7 +178,9 @@ final class Collector new TestPreparedSubscriber($this), new TestFinishedSubscriber($this), new BeforeTestClassMethodErroredSubscriber($this), + new BeforeTestClassMethodFailedSubscriber($this), new AfterTestClassMethodErroredSubscriber($this), + new AfterTestClassMethodFailedSubscriber($this), new TestErroredSubscriber($this), new TestFailedSubscriber($this), new TestMarkedIncompleteSubscriber($this), @@ -181,11 +193,14 @@ final class Collector new TestTriggeredPhpNoticeSubscriber($this), new TestTriggeredPhpunitDeprecationSubscriber($this), new TestTriggeredPhpunitErrorSubscriber($this), + new TestTriggeredPhpunitNoticeSubscriber($this), new TestTriggeredPhpunitWarningSubscriber($this), new TestTriggeredPhpWarningSubscriber($this), new TestTriggeredWarningSubscriber($this), new TestRunnerTriggeredDeprecationSubscriber($this), + new TestRunnerTriggeredNoticeSubscriber($this), new TestRunnerTriggeredWarningSubscriber($this), + new ChildProcessErroredSubscriber($this), ); $this->issueFilter = $issueFilter; @@ -205,8 +220,10 @@ final class Collector $this->testMarkedIncompleteEvents, $this->testTriggeredPhpunitDeprecationEvents, $this->testTriggeredPhpunitErrorEvents, + $this->testTriggeredPhpunitNoticeEvents, $this->testTriggeredPhpunitWarningEvents, $this->testRunnerTriggeredDeprecationEvents, + $this->testRunnerTriggeredNoticeEvents, $this->testRunnerTriggeredWarningEvents, array_values($this->errors), array_values($this->deprecations), @@ -256,12 +273,17 @@ final class Collector if ($testSuite->isForTestMethodWithDataProvider()) { assert($testSuite instanceof TestSuiteForTestMethodWithDataProvider); + assert(count($testSuite->tests()->asArray()) > 0); $test = $testSuite->tests()->asArray()[0]; assert($test instanceof TestMethod); foreach ($this->testFailedEvents as $testFailedEvent) { + if ($testFailedEvent instanceof AfterLastTestMethodFailed || $testFailedEvent instanceof BeforeFirstTestMethodFailed) { + continue; + } + if ($testFailedEvent->test()->isTestMethod() && $testFailedEvent->test()->methodName() === $test->methodName()) { return; } @@ -288,7 +310,8 @@ final class Collector $this->numberOfTestsRun++; - $this->prepared = false; + $this->prepared = false; + $this->childProcessErrored = false; } public function beforeTestClassMethodErrored(BeforeFirstTestMethodErrored $event): void @@ -298,19 +321,28 @@ final class Collector $this->numberOfTestsRun++; } + public function beforeTestClassMethodFailed(BeforeFirstTestMethodFailed $event): void + { + $this->testFailedEvents[] = $event; + + $this->numberOfTestsRun++; + } + public function afterTestClassMethodErrored(AfterLastTestMethodErrored $event): void { $this->testErroredEvents[] = $event; } + public function afterTestClassMethodFailed(AfterLastTestMethodFailed $event): void + { + $this->testFailedEvents[] = $event; + } + public function testErrored(Errored $event): void { $this->testErroredEvents[] = $event; - /* - * @todo Eliminate this special case - */ - if (str_contains($event->asString(), 'Test was run in child process and ended unexpectedly')) { + if ($this->childProcessErrored) { return; } @@ -413,6 +445,15 @@ final class Collector $this->testTriggeredPhpunitDeprecationEvents[$event->test()->id()][] = $event; } + public function testTriggeredPhpunitNotice(PhpunitNoticeTriggered $event): void + { + if (!isset($this->testTriggeredPhpunitNoticeEvents[$event->test()->id()])) { + $this->testTriggeredPhpunitNoticeEvents[$event->test()->id()] = []; + } + + $this->testTriggeredPhpunitNoticeEvents[$event->test()->id()][] = $event; + } + public function testTriggeredError(ErrorTriggered $event): void { if (!$this->issueFilter->shouldBeProcessed($event)) { @@ -558,6 +599,10 @@ final class Collector public function testTriggeredPhpunitWarning(PhpunitWarningTriggered $event): void { + if ($event->ignoredByTest()) { + return; + } + if (!isset($this->testTriggeredPhpunitWarningEvents[$event->test()->id()])) { $this->testTriggeredPhpunitWarningEvents[$event->test()->id()] = []; } @@ -570,56 +615,66 @@ final class Collector $this->testRunnerTriggeredDeprecationEvents[] = $event; } + public function testRunnerTriggeredNotice(TestRunnerNoticeTriggered $event): void + { + $this->testRunnerTriggeredNoticeEvents[] = $event; + } + public function testRunnerTriggeredWarning(TestRunnerWarningTriggered $event): void { $this->testRunnerTriggeredWarningEvents[] = $event; } + public function childProcessErrored(ChildProcessErrored $event): void + { + $this->childProcessErrored = true; + } + public function hasErroredTests(): bool { - return !empty($this->testErroredEvents); + return $this->testErroredEvents !== []; } public function hasFailedTests(): bool { - return !empty($this->testFailedEvents); + return $this->testFailedEvents !== []; } public function hasRiskyTests(): bool { - return !empty($this->testConsideredRiskyEvents); + return $this->testConsideredRiskyEvents !== []; } public function hasSkippedTests(): bool { - return !empty($this->testSkippedEvents); + return $this->testSkippedEvents !== []; } public function hasIncompleteTests(): bool { - return !empty($this->testMarkedIncompleteEvents); + return $this->testMarkedIncompleteEvents !== []; } public function hasDeprecations(): bool { - return !empty($this->deprecations) || - !empty($this->phpDeprecations) || - !empty($this->testTriggeredPhpunitDeprecationEvents) || - !empty($this->testRunnerTriggeredDeprecationEvents); + return $this->deprecations !== [] || + $this->phpDeprecations !== [] || + $this->testTriggeredPhpunitDeprecationEvents !== [] || + $this->testRunnerTriggeredDeprecationEvents !== []; } public function hasNotices(): bool { - return !empty($this->notices) || - !empty($this->phpNotices); + return $this->notices !== [] || + $this->phpNotices !== []; } public function hasWarnings(): bool { - return !empty($this->warnings) || - !empty($this->phpWarnings) || - !empty($this->testTriggeredPhpunitWarningEvents) || - !empty($this->testRunnerTriggeredWarningEvents); + return $this->warnings !== [] || + $this->phpWarnings !== [] || + $this->testTriggeredPhpunitWarningEvents !== [] || + $this->testRunnerTriggeredWarningEvents !== []; } /** diff --git a/vendor/phpunit/phpunit/src/Runner/TestResult/Facade.php b/vendor/phpunit/phpunit/src/Runner/TestResult/Facade.php index f27b75e37..4862d6860 100644 --- a/vendor/phpunit/phpunit/src/Runner/TestResult/Facade.php +++ b/vendor/phpunit/phpunit/src/Runner/TestResult/Facade.php @@ -10,9 +10,7 @@ namespace PHPUnit\TestRunner\TestResult; use function str_contains; -use PHPUnit\Event\EventFacadeIsSealedException; use PHPUnit\Event\Facade as EventFacade; -use PHPUnit\Event\UnknownSubscriberTypeException; use PHPUnit\Runner\DeprecationCollector\Facade as DeprecationCollectorFacade; use PHPUnit\TestRunner\IssueFilter; use PHPUnit\TextUI\Configuration\Configuration; @@ -27,28 +25,16 @@ final class Facade { private static ?Collector $collector = null; - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ public static function init(): void { self::collector(); } - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ public static function result(): TestResult { return self::collector()->result(); } - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ public static function shouldStop(): bool { $configuration = ConfigurationRegistry::get(); @@ -89,10 +75,6 @@ final class Facade return false; } - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ private static function collector(): Collector { if (self::$collector === null) { diff --git a/vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/AfterTestClassMethodFailedSubscriber.php b/vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/AfterTestClassMethodFailedSubscriber.php new file mode 100644 index 000000000..e207ba1d0 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/AfterTestClassMethodFailedSubscriber.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\TestRunner\TestResult; + +use PHPUnit\Event\Test\AfterLastTestMethodFailed; +use PHPUnit\Event\Test\AfterLastTestMethodFailedSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class AfterTestClassMethodFailedSubscriber extends Subscriber implements AfterLastTestMethodFailedSubscriber +{ + public function notify(AfterLastTestMethodFailed $event): void + { + $this->collector()->afterTestClassMethodFailed($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/BeforeTestClassMethodFailedSubscriber.php b/vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/BeforeTestClassMethodFailedSubscriber.php new file mode 100644 index 000000000..0e69855a0 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/BeforeTestClassMethodFailedSubscriber.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\TestRunner\TestResult; + +use PHPUnit\Event\Test\BeforeFirstTestMethodFailed; +use PHPUnit\Event\Test\BeforeFirstTestMethodFailedSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class BeforeTestClassMethodFailedSubscriber extends Subscriber implements BeforeFirstTestMethodFailedSubscriber +{ + public function notify(BeforeFirstTestMethodFailed $event): void + { + $this->collector()->beforeTestClassMethodFailed($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/ChildProcessErroredSubscriber.php b/vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/ChildProcessErroredSubscriber.php new file mode 100644 index 000000000..3d70d88ed --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/ChildProcessErroredSubscriber.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\TestRunner\TestResult; + +use PHPUnit\Event\TestRunner\ChildProcessErrored; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class ChildProcessErroredSubscriber extends Subscriber implements \PHPUnit\Event\TestRunner\ChildProcessErroredSubscriber +{ + public function notify(ChildProcessErrored $event): void + { + $this->collector()->childProcessErrored($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestRunnerTriggeredNoticeSubscriber.php b/vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestRunnerTriggeredNoticeSubscriber.php new file mode 100644 index 000000000..8fd9bc4b8 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestRunnerTriggeredNoticeSubscriber.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\TestRunner\TestResult; + +use PHPUnit\Event\TestRunner\NoticeTriggered; +use PHPUnit\Event\TestRunner\NoticeTriggeredSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestRunnerTriggeredNoticeSubscriber extends Subscriber implements NoticeTriggeredSubscriber +{ + public function notify(NoticeTriggered $event): void + { + $this->collector()->testRunnerTriggeredNotice($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredPhpunitNoticeSubscriber.php b/vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredPhpunitNoticeSubscriber.php new file mode 100644 index 000000000..f7ebfd146 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredPhpunitNoticeSubscriber.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\TestRunner\TestResult; + +use PHPUnit\Event\Test\PhpunitNoticeTriggered; +use PHPUnit\Event\Test\PhpunitNoticeTriggeredSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestTriggeredPhpunitNoticeSubscriber extends Subscriber implements PhpunitNoticeTriggeredSubscriber +{ + public function notify(PhpunitNoticeTriggered $event): void + { + $this->collector()->testTriggeredPhpunitNotice($event); + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/TestResult/TestResult.php b/vendor/phpunit/phpunit/src/Runner/TestResult/TestResult.php index bfc460d01..3601956db 100644 --- a/vendor/phpunit/phpunit/src/Runner/TestResult/TestResult.php +++ b/vendor/phpunit/phpunit/src/Runner/TestResult/TestResult.php @@ -13,16 +13,20 @@ use function array_map; use function array_sum; use function count; use PHPUnit\Event\Test\AfterLastTestMethodErrored; +use PHPUnit\Event\Test\AfterLastTestMethodFailed; use PHPUnit\Event\Test\BeforeFirstTestMethodErrored; +use PHPUnit\Event\Test\BeforeFirstTestMethodFailed; use PHPUnit\Event\Test\ConsideredRisky; use PHPUnit\Event\Test\Errored; use PHPUnit\Event\Test\Failed; use PHPUnit\Event\Test\MarkedIncomplete; use PHPUnit\Event\Test\PhpunitDeprecationTriggered; use PHPUnit\Event\Test\PhpunitErrorTriggered; +use PHPUnit\Event\Test\PhpunitNoticeTriggered; use PHPUnit\Event\Test\PhpunitWarningTriggered; use PHPUnit\Event\Test\Skipped as TestSkipped; use PHPUnit\Event\TestRunner\DeprecationTriggered as TestRunnerDeprecationTriggered; +use PHPUnit\Event\TestRunner\NoticeTriggered as TestRunnerNoticeTriggered; use PHPUnit\Event\TestRunner\WarningTriggered as TestRunnerWarningTriggered; use PHPUnit\Event\TestSuite\Skipped as TestSuiteSkipped; use PHPUnit\TestRunner\TestResult\Issues\Issue; @@ -44,7 +48,7 @@ final readonly class TestResult private array $testErroredEvents; /** - * @var list + * @var list */ private array $testFailedEvents; @@ -78,6 +82,11 @@ final readonly class TestResult */ private array $testTriggeredPhpunitErrorEvents; + /** + * @var array> + */ + private array $testTriggeredPhpunitNoticeEvents; + /** * @var array> */ @@ -88,6 +97,11 @@ final readonly class TestResult */ private array $testRunnerTriggeredDeprecationEvents; + /** + * @var list + */ + private array $testRunnerTriggeredNoticeEvents; + /** * @var list */ @@ -135,15 +149,17 @@ final readonly class TestResult /** * @param list $testErroredEvents - * @param list $testFailedEvents + * @param list $testFailedEvents * @param array> $testConsideredRiskyEvents * @param list $testSuiteSkippedEvents * @param list $testSkippedEvents * @param list $testMarkedIncompleteEvents * @param array> $testTriggeredPhpunitDeprecationEvents * @param array> $testTriggeredPhpunitErrorEvents + * @param array> $testTriggeredPhpunitNoticeEvents * @param array> $testTriggeredPhpunitWarningEvents * @param list $testRunnerTriggeredDeprecationEvents + * @param list $testRunnerTriggeredNoticeEvents * @param list $testRunnerTriggeredWarningEvents * @param list $errors * @param list $deprecations @@ -154,7 +170,7 @@ final readonly class TestResult * @param list $phpWarnings * @param non-negative-int $numberOfIssuesIgnoredByBaseline */ - public function __construct(int $numberOfTests, int $numberOfTestsRun, int $numberOfAssertions, array $testErroredEvents, array $testFailedEvents, array $testConsideredRiskyEvents, array $testSuiteSkippedEvents, array $testSkippedEvents, array $testMarkedIncompleteEvents, array $testTriggeredPhpunitDeprecationEvents, array $testTriggeredPhpunitErrorEvents, array $testTriggeredPhpunitWarningEvents, array $testRunnerTriggeredDeprecationEvents, array $testRunnerTriggeredWarningEvents, array $errors, array $deprecations, array $notices, array $warnings, array $phpDeprecations, array $phpNotices, array $phpWarnings, int $numberOfIssuesIgnoredByBaseline) + public function __construct(int $numberOfTests, int $numberOfTestsRun, int $numberOfAssertions, array $testErroredEvents, array $testFailedEvents, array $testConsideredRiskyEvents, array $testSuiteSkippedEvents, array $testSkippedEvents, array $testMarkedIncompleteEvents, array $testTriggeredPhpunitDeprecationEvents, array $testTriggeredPhpunitErrorEvents, array $testTriggeredPhpunitNoticeEvents, array $testTriggeredPhpunitWarningEvents, array $testRunnerTriggeredDeprecationEvents, array $testRunnerTriggeredNoticeEvents, array $testRunnerTriggeredWarningEvents, array $errors, array $deprecations, array $notices, array $warnings, array $phpDeprecations, array $phpNotices, array $phpWarnings, int $numberOfIssuesIgnoredByBaseline) { $this->numberOfTests = $numberOfTests; $this->numberOfTestsRun = $numberOfTestsRun; @@ -167,8 +183,10 @@ final readonly class TestResult $this->testMarkedIncompleteEvents = $testMarkedIncompleteEvents; $this->testTriggeredPhpunitDeprecationEvents = $testTriggeredPhpunitDeprecationEvents; $this->testTriggeredPhpunitErrorEvents = $testTriggeredPhpunitErrorEvents; + $this->testTriggeredPhpunitNoticeEvents = $testTriggeredPhpunitNoticeEvents; $this->testTriggeredPhpunitWarningEvents = $testTriggeredPhpunitWarningEvents; $this->testRunnerTriggeredDeprecationEvents = $testRunnerTriggeredDeprecationEvents; + $this->testRunnerTriggeredNoticeEvents = $testRunnerTriggeredNoticeEvents; $this->testRunnerTriggeredWarningEvents = $testRunnerTriggeredWarningEvents; $this->errors = $errors; $this->deprecations = $deprecations; @@ -209,7 +227,7 @@ final readonly class TestResult } /** - * @return list + * @return list */ public function testFailedEvents(): array { @@ -339,6 +357,24 @@ final readonly class TestResult return $this->numberOfTestsWithTestTriggeredPhpunitErrorEvents() > 0; } + /** + * @return array> + */ + public function testTriggeredPhpunitNoticeEvents(): array + { + return $this->testTriggeredPhpunitNoticeEvents; + } + + public function numberOfTestsWithTestTriggeredPhpunitNoticeEvents(): int + { + return count($this->testTriggeredPhpunitNoticeEvents); + } + + public function hasTestTriggeredPhpunitNoticeEvents(): bool + { + return $this->numberOfTestsWithTestTriggeredPhpunitNoticeEvents() > 0; + } + /** * @return array> */ @@ -375,6 +411,24 @@ final readonly class TestResult return $this->numberOfTestRunnerTriggeredDeprecationEvents() > 0; } + /** + * @return list + */ + public function testRunnerTriggeredNoticeEvents(): array + { + return $this->testRunnerTriggeredNoticeEvents; + } + + public function numberOfTestRunnerTriggeredNoticeEvents(): int + { + return count($this->testRunnerTriggeredNoticeEvents); + } + + public function hasTestRunnerTriggeredNoticeEvents(): bool + { + return $this->numberOfTestRunnerTriggeredNoticeEvents() > 0; + } + /** * @return list */ @@ -411,9 +465,10 @@ final readonly class TestResult return $this->hasRiskyTests() || $this->hasIncompleteTests() || $this->hasDeprecations() || - !empty($this->errors) || + $this->errors !== [] || $this->hasNotices() || $this->hasWarnings() || + $this->hasPhpunitNotices() || $this->hasPhpunitWarnings(); } @@ -560,17 +615,17 @@ final readonly class TestResult public function hasIncompleteTests(): bool { - return !empty($this->testMarkedIncompleteEvents); + return $this->testMarkedIncompleteEvents !== []; } public function hasRiskyTests(): bool { - return !empty($this->testConsideredRiskyEvents); + return $this->testConsideredRiskyEvents !== []; } public function hasSkippedTests(): bool { - return !empty($this->testSkippedEvents); + return $this->testSkippedEvents !== []; } public function hasIssuesIgnoredByBaseline(): bool @@ -585,4 +640,15 @@ final readonly class TestResult { return $this->numberOfIssuesIgnoredByBaseline; } + + public function hasPhpunitNotices(): bool + { + return $this->numberOfPhpunitNotices() > 0; + } + + public function numberOfPhpunitNotices(): int + { + return $this->numberOfTestsWithTestTriggeredPhpunitNoticeEvents() + + $this->numberOfTestRunnerTriggeredNoticeEvents(); + } } diff --git a/vendor/phpunit/phpunit/src/Runner/TestSuiteLoader.php b/vendor/phpunit/phpunit/src/Runner/TestSuiteLoader.php index b6baf1387..54a88f849 100644 --- a/vendor/phpunit/phpunit/src/Runner/TestSuiteLoader.php +++ b/vendor/phpunit/phpunit/src/Runner/TestSuiteLoader.php @@ -109,7 +109,7 @@ final class TestSuiteLoader return self::$fileToClassesMap[$suiteClassFile]; } - if (empty(self::$declaredClasses)) { + if (self::$declaredClasses === []) { self::$declaredClasses = get_declared_classes(); } @@ -133,10 +133,10 @@ final class TestSuiteLoader self::$declaredClasses = get_declared_classes(); - if (empty($loadedClasses)) { + if (!isset(self::$fileToClassesMap[$suiteClassFile])) { return self::$declaredClasses; } - return $loadedClasses; + return self::$fileToClassesMap[$suiteClassFile]; } } diff --git a/vendor/phpunit/phpunit/src/Runner/TestSuiteSorter.php b/vendor/phpunit/phpunit/src/Runner/TestSuiteSorter.php index 4cbb0b167..596f206ea 100644 --- a/vendor/phpunit/phpunit/src/Runner/TestSuiteSorter.php +++ b/vendor/phpunit/phpunit/src/Runner/TestSuiteSorter.php @@ -35,37 +35,17 @@ use PHPUnit\Runner\ResultCache\ResultCacheId; */ final class TestSuiteSorter { - /** - * @var int - */ - public const ORDER_DEFAULT = 0; + public const int ORDER_DEFAULT = 0; + public const int ORDER_RANDOMIZED = 1; + public const int ORDER_REVERSED = 2; + public const int ORDER_DEFECTS_FIRST = 3; + public const int ORDER_DURATION = 4; + public const int ORDER_SIZE = 5; /** - * @var int + * @var non-empty-array */ - public const ORDER_RANDOMIZED = 1; - - /** - * @var int - */ - public const ORDER_REVERSED = 2; - - /** - * @var int - */ - public const ORDER_DEFECTS_FIRST = 3; - - /** - * @var int - */ - public const ORDER_DURATION = 4; - - /** - * @var int - */ - public const ORDER_SIZE = 5; - - private const SIZE_SORT_WEIGHT = [ + private const array SIZE_SORT_WEIGHT = [ 'small' => 1, 'medium' => 2, 'large' => 3, @@ -128,7 +108,7 @@ final class TestSuiteSorter private function sort(TestSuite $suite, int $order, bool $resolveDependencies, int $orderDefects): void { - if (empty($suite->tests())) { + if ($suite->tests() === []) { return; } @@ -160,9 +140,7 @@ final class TestSuiteSorter $max = 0; foreach ($suite->tests() as $test) { - if (!$test instanceof Reorderable) { - continue; - } + assert($test instanceof Reorderable); $sortId = $test->sortId(); @@ -206,7 +184,7 @@ final class TestSuiteSorter { usort( $tests, - fn ($left, $right) => $this->cmpDefectPriorityAndTime($left, $right), + fn (Test $left, Test $right) => $this->cmpDefectPriorityAndTime($left, $right), ); return $tests; @@ -221,7 +199,7 @@ final class TestSuiteSorter { usort( $tests, - fn ($left, $right) => $this->cmpDuration($left, $right), + fn (Test $left, Test $right) => $this->cmpDuration($left, $right), ); return $tests; @@ -236,7 +214,7 @@ final class TestSuiteSorter { usort( $tests, - fn ($left, $right) => $this->cmpSize($left, $right), + fn (Test $left, Test $right) => $this->cmpSize($left, $right), ); return $tests; @@ -257,12 +235,12 @@ final class TestSuiteSorter $priorityA = $this->defectSortOrder[$a->sortId()] ?? 0; $priorityB = $this->defectSortOrder[$b->sortId()] ?? 0; - if ($priorityB <=> $priorityA) { + if ($priorityA !== $priorityB) { // Sort defect weight descending return $priorityB <=> $priorityA; } - if ($priorityA || $priorityB) { + if ($priorityA > 0 || $priorityB > 0) { return $this->cmpDuration($a, $b); } @@ -308,9 +286,9 @@ final class TestSuiteSorter * 3. If the test has dependencies but none left to do: mark done, start again from the top * 4. When we reach the end add any leftover tests to the end. These will be marked 'skipped' during execution. * - * @param array $tests + * @param array $tests * - * @return array + * @return array */ private function resolveDependencies(array $tests): array { @@ -326,7 +304,7 @@ final class TestSuiteSorter } else { $i++; } - } while (!empty($tests) && ($i < count($tests))); + } while ($tests !== [] && ($i < count($tests))); return array_merge($newTestOrder, $tests); } diff --git a/vendor/phpunit/phpunit/src/Runner/Version.php b/vendor/phpunit/phpunit/src/Runner/Version.php index 45defba08..350ae7606 100644 --- a/vendor/phpunit/phpunit/src/Runner/Version.php +++ b/vendor/phpunit/phpunit/src/Runner/Version.php @@ -10,6 +10,7 @@ namespace PHPUnit\Runner; use function array_slice; +use function assert; use function dirname; use function explode; use function implode; @@ -34,7 +35,7 @@ final class Version } if (self::$version === '') { - self::$version = (new VersionId('11.5.56', dirname(__DIR__, 2)))->asString(); + self::$version = (new VersionId('12.5.31', dirname(__DIR__, 2)))->asString(); } return self::$version; @@ -59,7 +60,10 @@ final class Version */ public static function majorVersionNumber(): int { - return (int) explode('.', self::series())[0]; + $majorVersion = (int) explode('.', self::series())[0]; + assert($majorVersion > 0); + + return $majorVersion; } /** diff --git a/vendor/phpunit/phpunit/src/TextUI/Application.php b/vendor/phpunit/phpunit/src/TextUI/Application.php index 262f226d5..8e565dd6e 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Application.php +++ b/vendor/phpunit/phpunit/src/TextUI/Application.php @@ -13,15 +13,17 @@ use const PHP_EOL; use const PHP_VERSION; use function assert; use function class_exists; +use function defined; +use function dirname; use function explode; use function function_exists; use function is_file; -use function is_readable; use function method_exists; use function printf; use function realpath; use function sprintf; use function str_contains; +use function str_starts_with; use function trim; use function unlink; use PHPUnit\Event\EventFacadeIsSealedException; @@ -31,6 +33,8 @@ use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestSuite; use PHPUnit\Logging\EventLogger; use PHPUnit\Logging\JUnit\JunitXmlLogger; +use PHPUnit\Logging\OpenTestReporting\CannotOpenUriForWritingException; +use PHPUnit\Logging\OpenTestReporting\OtrXmlLogger; use PHPUnit\Logging\TeamCity\TeamCityLogger; use PHPUnit\Logging\TestDox\HtmlRenderer as TestDoxHtmlRenderer; use PHPUnit\Logging\TestDox\PlainTextRenderer as TestDoxTextRenderer; @@ -40,6 +44,7 @@ use PHPUnit\Runner\Baseline\Generator as BaselineGenerator; use PHPUnit\Runner\Baseline\Reader; use PHPUnit\Runner\Baseline\Writer; use PHPUnit\Runner\CodeCoverage; +use PHPUnit\Runner\CodeCoverageInitializationStatus; use PHPUnit\Runner\DeprecationCollector\Facade as DeprecationCollector; use PHPUnit\Runner\DirectoryDoesNotExistException; use PHPUnit\Runner\ErrorHandler; @@ -47,7 +52,7 @@ use PHPUnit\Runner\Extension\ExtensionBootstrapper; use PHPUnit\Runner\Extension\Facade as ExtensionFacade; use PHPUnit\Runner\Extension\PharLoader; use PHPUnit\Runner\GarbageCollection\GarbageCollectionHandler; -use PHPUnit\Runner\PhptTestCase; +use PHPUnit\Runner\Phpt\TestCase as PhptTestCase; use PHPUnit\Runner\ResultCache\DefaultResultCache; use PHPUnit\Runner\ResultCache\NullResultCache; use PHPUnit\Runner\ResultCache\ResultCache; @@ -74,6 +79,9 @@ use PHPUnit\TextUI\Command\ShowHelpCommand; use PHPUnit\TextUI\Command\ShowVersionCommand; use PHPUnit\TextUI\Command\VersionCheckCommand; use PHPUnit\TextUI\Command\WarmCodeCoverageCacheCommand; +use PHPUnit\TextUI\Configuration\BootstrapLoader; +use PHPUnit\TextUI\Configuration\BootstrapScriptDoesNotExistException; +use PHPUnit\TextUI\Configuration\BootstrapScriptException; use PHPUnit\TextUI\Configuration\CodeCoverageFilterRegistry; use PHPUnit\TextUI\Configuration\Configuration; use PHPUnit\TextUI\Configuration\PhpHandler; @@ -101,6 +109,8 @@ final readonly class Application */ public function run(array $argv): int { + $this->preload(); + try { EventFacade::emitter()->applicationStarted(); @@ -118,8 +128,10 @@ final readonly class Application (new PhpHandler)->handle($configuration->php()); - if ($configuration->hasBootstrap()) { - $this->loadBootstrapScript($configuration->bootstrap()); + try { + (new BootstrapLoader)->handle($configuration); + } catch (BootstrapScriptDoesNotExistException|BootstrapScriptException $e) { + $this->exitWithErrorMessage($e->getMessage()); } $this->executeCommandsThatDoNotRequireTheTestSuite($configuration, $cliConfiguration); @@ -154,7 +166,7 @@ final readonly class Application EventFacade::instance()->registerTracer( new EventLogger( 'php://stdout', - false, + $configuration->withTelemetry(), ), ); } @@ -179,15 +191,19 @@ final readonly class Application EventFacade::instance()->seal(); + ErrorHandler::instance()->registerDeprecationHandler(); + $testSuite = $this->buildTestSuite($configuration); + ErrorHandler::instance()->restoreDeprecationHandler(); + $this->executeCommandsThatRequireTheTestSuite($configuration, $cliConfiguration, $testSuite); if ($testSuite->isEmpty() && !$configuration->hasCliArguments() && $configuration->testSuite()->isEmpty()) { $this->execute(new ShowHelpCommand(Result::FAILURE)); } - CodeCoverage::instance()->init( + $coverageInitializationStatus = CodeCoverage::instance()->init( $configuration, CodeCoverageFilterRegistry::instance(), $extensionRequiresCodeCoverageCollection, @@ -206,13 +222,16 @@ final readonly class Application $timer = new Timer; $timer->start(); - $runner = new TestRunner; + if ($coverageInitializationStatus === CodeCoverageInitializationStatus::NOT_REQUESTED || + $coverageInitializationStatus === CodeCoverageInitializationStatus::SUCCEEDED) { + $runner = new TestRunner; - $runner->run( - $configuration, - $resultCache, - $testSuite, - ); + $runner->run( + $configuration, + $resultCache, + $testSuite, + ); + } $duration = $timer->stop(); @@ -337,48 +356,6 @@ final readonly class Application exit(Result::EXCEPTION); } - private function loadBootstrapScript(string $filename): void - { - if (!is_readable($filename)) { - $this->exitWithErrorMessage( - sprintf( - 'Cannot open bootstrap script "%s"', - $filename, - ), - ); - } - - try { - include_once $filename; - } catch (Throwable $t) { - $message = sprintf( - 'Error in bootstrap script: %s:%s%s%s%s', - $t::class, - PHP_EOL, - $t->getMessage(), - PHP_EOL, - $t->getTraceAsString(), - ); - - while ($t = $t->getPrevious()) { - $message .= sprintf( - '%s%sPrevious error: %s:%s%s%s%s', - PHP_EOL, - PHP_EOL, - $t::class, - PHP_EOL, - $t->getMessage(), - PHP_EOL, - $t->getTraceAsString(), - ); - } - - $this->exitWithErrorMessage($message); - } - - EventFacade::emitter()->testRunnerBootstrapFinished($filename); - } - /** * @param list $argv */ @@ -601,10 +578,6 @@ final readonly class Application } } - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ private function registerLogfileWriters(Configuration $configuration): void { if ($configuration->hasLogEventsText()) { @@ -650,6 +623,24 @@ final readonly class Application } } + if ($configuration->hasLogfileOtr()) { + try { + new OtrXmlLogger( + EventFacade::instance(), + $configuration->logfileOtr(), + $configuration->includeGitInformationInOtrLogfile(), + ); + } catch (CannotOpenUriForWritingException $e) { + EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( + sprintf( + 'Cannot log test results in Open Test Reporting XML format to "%s": %s', + $configuration->logfileOtr(), + $e->getMessage(), + ), + ); + } + } + if ($configuration->hasLogfileTeamcity()) { try { new TeamCityLogger( @@ -670,10 +661,6 @@ final readonly class Application } } - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ private function testDoxResultCollector(Configuration $configuration): ?TestDoxResultCollector { if ($configuration->hasLogfileTestdoxHtml() || @@ -688,10 +675,6 @@ final readonly class Application return null; } - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ private function initializeTestResultCache(Configuration $configuration): ResultCache { if ($configuration->cacheResult()) { @@ -705,10 +688,6 @@ final readonly class Application return new NullResultCache; } - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ private function configureBaseline(Configuration $configuration): ?BaselineGenerator { if ($configuration->hasGenerateBaseline()) { @@ -743,7 +722,7 @@ final readonly class Application { $message = $t->getMessage(); - if (empty(trim($message))) { + if (trim($message) === '') { $message = '(no message)'; } @@ -758,7 +737,7 @@ final readonly class Application $first = true; - if ($t->getPrevious()) { + if ($t->getPrevious() !== null) { $t = $t->getPrevious(); } @@ -856,4 +835,30 @@ final readonly class Application ErrorHandler::instance()->useDeprecationTriggers($deprecationTriggers); } } + + private function preload(): void + { + if (!defined('PHPUNIT_COMPOSER_INSTALL')) { + return; + } + + $classMapFile = dirname(PHPUNIT_COMPOSER_INSTALL) . '/composer/autoload_classmap.php'; + + if (!is_file($classMapFile)) { + return; + } + + foreach (require $classMapFile as $codeUnitName => $sourceCodeFile) { + if (!str_starts_with($codeUnitName, 'PHPUnit\\') && + !str_starts_with($codeUnitName, 'SebastianBergmann\\')) { + continue; + } + + if (str_contains($sourceCodeFile, '/tests/')) { + continue; + } + + require_once $sourceCodeFile; + } + } } diff --git a/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListGroupsCommand.php b/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListGroupsCommand.php index 3cff3d17c..94eb1355c 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListGroupsCommand.php +++ b/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListGroupsCommand.php @@ -15,7 +15,7 @@ use function ksort; use function sprintf; use function str_starts_with; use PHPUnit\Framework\TestCase; -use PHPUnit\Runner\PhptTestCase; +use PHPUnit\Runner\Phpt\TestCase as PhptTestCase; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit @@ -44,16 +44,12 @@ final readonly class ListGroupsCommand implements Command foreach ($this->tests as $test) { if ($test instanceof PhptTestCase) { - if (!isset($groups['default'])) { - $groups['default'] = 1; - } else { - $groups['default']++; - } - - continue; + $_groups = ['default']; + } else { + $_groups = $test->groups(); } - foreach ($test->groups() as $group) { + foreach ($_groups as $group) { if (!isset($groups[$group])) { $groups[$group] = 1; } else { diff --git a/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListTestFilesCommand.php b/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListTestFilesCommand.php index 263d1d6e9..6d7f875f4 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListTestFilesCommand.php +++ b/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListTestFilesCommand.php @@ -14,7 +14,7 @@ use function array_unique; use function assert; use function sprintf; use PHPUnit\Framework\TestCase; -use PHPUnit\Runner\PhptTestCase; +use PHPUnit\Runner\Phpt\TestCase as PhptTestCase; use ReflectionClass; use ReflectionException; diff --git a/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListTestSuitesCommand.php b/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListTestSuitesCommand.php index fec7afc32..fcaf7765a 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListTestSuitesCommand.php +++ b/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListTestSuitesCommand.php @@ -69,11 +69,7 @@ final readonly class ListTestSuitesCommand implements Command $configuration = Registry::get(); - if ($configuration->hasDefaultTestSuite()) { - $buffer .= 'The defaultTestSuite (XML) and --list-suites (CLI) options cannot be combined, only the default test suite is shown' . PHP_EOL; - } - - if ($configuration->includeTestSuite() !== '' && !$configuration->hasDefaultTestSuite()) { + if ($configuration->includeTestSuites() !== [] && !$configuration->hasDefaultTestSuite()) { $buffer .= 'The --testsuite and --list-suites options cannot be combined, --testsuite is ignored' . PHP_EOL; } @@ -89,7 +85,7 @@ final readonly class ListTestSuitesCommand implements Command $buffer .= 'The --exclude-group (CLI) and (XML) options cannot be combined with --list-suites, --exclude-group and are ignored' . PHP_EOL; } - if (!empty($buffer)) { + if ($buffer !== '') { $buffer .= PHP_EOL; } diff --git a/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListTestsAsTextCommand.php b/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListTestsAsTextCommand.php index 224213665..c3d71b5d2 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListTestsAsTextCommand.php +++ b/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListTestsAsTextCommand.php @@ -14,7 +14,7 @@ use function count; use function sprintf; use function str_replace; use PHPUnit\Framework\TestCase; -use PHPUnit\Runner\PhptTestCase; +use PHPUnit\Runner\Phpt\TestCase as PhptTestCase; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit diff --git a/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListTestsAsXmlCommand.php b/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListTestsAsXmlCommand.php index d9c624f65..b3d680143 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListTestsAsXmlCommand.php +++ b/vendor/phpunit/phpunit/src/TextUI/Command/Commands/ListTestsAsXmlCommand.php @@ -15,7 +15,7 @@ use function file_put_contents; use function ksort; use function sprintf; use PHPUnit\Framework\TestCase; -use PHPUnit\Runner\PhptTestCase; +use PHPUnit\Runner\Phpt\TestCase as PhptTestCase; use ReflectionClass; use XMLWriter; diff --git a/vendor/phpunit/phpunit/src/TextUI/Command/Commands/WarmCodeCoverageCacheCommand.php b/vendor/phpunit/phpunit/src/TextUI/Command/Commands/WarmCodeCoverageCacheCommand.php index c489ffdf6..7d1afafe3 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Command/Commands/WarmCodeCoverageCacheCommand.php +++ b/vendor/phpunit/phpunit/src/TextUI/Command/Commands/WarmCodeCoverageCacheCommand.php @@ -63,7 +63,8 @@ final readonly class WarmCodeCoverageCacheCommand implements Command print 'Warming cache for static analysis ... '; - (new CacheWarmer)->warmCache( + /** @phpstan-ignore new.internalClass,method.internalClass */ + $statistics = (new CacheWarmer)->warmCache( $this->configuration->coverageCacheDirectory(), !$this->configuration->disableCodeCoverageIgnore(), $this->configuration->ignoreDeprecatedCodeUnitsFromCodeCoverage(), @@ -71,9 +72,17 @@ final readonly class WarmCodeCoverageCacheCommand implements Command ); printf( - '[%s]%s', + '[%s]%s%s%d file%s processed, %d cache hit%s, %d cache miss%s%s', $timer->stop()->asString(), PHP_EOL, + PHP_EOL, + $statistics['cacheHits'] + $statistics['cacheMisses'], + ($statistics['cacheHits'] + $statistics['cacheMisses']) !== 1 ? 's' : '', + $statistics['cacheHits'], + $statistics['cacheHits'] !== 1 ? 's' : '', + $statistics['cacheMisses'], + $statistics['cacheMisses'] !== 1 ? 'es' : '', + PHP_EOL, ); return Result::from(); diff --git a/vendor/phpunit/phpunit/src/TextUI/Command/Result.php b/vendor/phpunit/phpunit/src/TextUI/Command/Result.php index 9f5375555..ae4a3e27f 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Command/Result.php +++ b/vendor/phpunit/phpunit/src/TextUI/Command/Result.php @@ -18,10 +18,10 @@ namespace PHPUnit\TextUI\Command; */ final readonly class Result { - public const SUCCESS = 0; - public const FAILURE = 1; - public const EXCEPTION = 2; - public const CRASH = 255; + public const int SUCCESS = 0; + public const int FAILURE = 1; + public const int EXCEPTION = 2; + public const int CRASH = 255; private string $output; private int $shellExitCode; diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/BootstrapLoader.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/BootstrapLoader.php new file mode 100644 index 000000000..f52d66475 --- /dev/null +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/BootstrapLoader.php @@ -0,0 +1,90 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\TextUI\Configuration; + +use const PHP_EOL; +use function in_array; +use function is_readable; +use function sprintf; +use PHPUnit\Event\Facade as EventFacade; +use Throwable; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final class BootstrapLoader +{ + /** + * @throws BootstrapScriptDoesNotExistException + * @throws BootstrapScriptException + */ + public function handle(Configuration $configuration): void + { + if (!$configuration->hasBootstrap()) { + return; + } + + $this->load($configuration->bootstrap()); + + foreach ($configuration->bootstrapForTestSuite() as $testSuiteName => $bootstrapForTestSuite) { + if ($configuration->includeTestSuites() !== [] && !in_array($testSuiteName, $configuration->includeTestSuites(), true)) { + continue; + } + + if ($configuration->excludeTestSuites() !== [] && in_array($testSuiteName, $configuration->excludeTestSuites(), true)) { + continue; + } + + $this->load($bootstrapForTestSuite); + } + } + + /** + * @param non-empty-string $filename + */ + private function load(string $filename): void + { + if (!is_readable($filename)) { + throw new BootstrapScriptDoesNotExistException($filename); + } + + try { + include_once $filename; + } catch (Throwable $t) { + $message = sprintf( + 'Error in bootstrap script: %s:%s%s%s%s', + $t::class, + PHP_EOL, + $t->getMessage(), + PHP_EOL, + $t->getTraceAsString(), + ); + + while ($t = $t->getPrevious()) { + $message .= sprintf( + '%s%sPrevious error: %s:%s%s%s%s', + PHP_EOL, + PHP_EOL, + $t::class, + PHP_EOL, + $t->getMessage(), + PHP_EOL, + $t->getTraceAsString(), + ); + } + + throw new BootstrapScriptException($message); + } + + EventFacade::emitter()->testRunnerBootstrapFinished($filename); + } +} diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Cli/Builder.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Cli/Builder.php index 8d1c92704..acebf4496 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Cli/Builder.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Cli/Builder.php @@ -10,8 +10,6 @@ namespace PHPUnit\TextUI\CliArguments; use const DIRECTORY_SEPARATOR; -use function array_map; -use function array_merge; use function assert; use function basename; use function explode; @@ -19,7 +17,6 @@ use function getcwd; use function is_file; use function is_numeric; use function sprintf; -use function str_contains; use function strtolower; use PHPUnit\Event\Facade as EventFacade; use PHPUnit\Runner\TestSuiteSorter; @@ -34,7 +31,11 @@ use SebastianBergmann\CliParser\Parser as CliParser; */ final class Builder { - private const LONG_OPTIONS = [ + /** + * @var non-empty-list + */ + private const array LONG_OPTIONS = [ + 'all', 'atleast-version=', 'bootstrap=', 'cache-result', @@ -51,11 +52,13 @@ final class Builder 'coverage-cobertura=', 'coverage-crap4j=', 'coverage-html=', + 'coverage-openclover=', 'coverage-php=', 'coverage-text==', 'only-summary-for-coverage-text', 'show-uncovered-for-coverage-text', 'coverage-xml=', + 'exclude-source-from-xml-coverage', 'path-coverage', 'disallow-test-output', 'display-all-issues', @@ -63,6 +66,7 @@ final class Builder 'display-skipped', 'display-deprecations', 'display-phpunit-deprecations', + 'display-phpunit-notices', 'display-errors', 'display-notices', 'display-warnings', @@ -90,6 +94,8 @@ final class Builder 'list-tests', 'list-tests-xml=', 'log-junit=', + 'log-otr=', + 'include-git-information', 'log-teamcity=', 'migrate-configuration', 'no-configuration', @@ -112,6 +118,7 @@ final class Builder 'fail-on-all-issues', 'fail-on-deprecation', 'fail-on-phpunit-deprecation', + 'fail-on-phpunit-notice', 'fail-on-phpunit-warning', 'fail-on-empty-test-suite', 'fail-on-incomplete', @@ -121,6 +128,7 @@ final class Builder 'fail-on-warning', 'do-not-fail-on-deprecation', 'do-not-fail-on-phpunit-deprecation', + 'do-not-fail-on-phpunit-notice', 'do-not-fail-on-phpunit-warning', 'do-not-fail-on-empty-test-suite', 'do-not-fail-on-incomplete', @@ -152,9 +160,11 @@ final class Builder 'log-events-verbose-text=', 'version', 'debug', + 'with-telemetry', 'extension=', ]; - private const SHORT_OPTIONS = 'd:c:h'; + + private const string SHORT_OPTIONS = 'd:c:h'; /** * @var array @@ -182,6 +192,7 @@ final class Builder ); } + $all = null; $atLeastVersion = null; $backupGlobals = null; $backupStaticProperties = null; @@ -200,11 +211,13 @@ final class Builder $coverageCobertura = null; $coverageCrap4J = null; $coverageHtml = null; + $coverageOpenClover = null; $coveragePhp = null; $coverageText = null; $coverageTextShowUncoveredFiles = null; $coverageTextShowOnlySummary = null; $coverageXml = null; + $excludeSourceFromXmlCoverage = null; $pathCoverage = null; $defaultTimeLimit = null; $disableCodeCoverageIgnore = null; @@ -214,6 +227,7 @@ final class Builder $displaySkipped = null; $displayDeprecations = null; $displayPhpunitDeprecations = null; + $displayPhpunitNotices = null; $displayErrors = null; $displayNotices = null; $displayWarnings = null; @@ -224,6 +238,7 @@ final class Builder $failOnAllIssues = null; $failOnDeprecation = null; $failOnPhpunitDeprecation = null; + $failOnPhpunitNotice = null; $failOnPhpunitWarning = null; $failOnEmptyTestSuite = null; $failOnIncomplete = null; @@ -233,6 +248,7 @@ final class Builder $failOnWarning = null; $doNotFailOnDeprecation = null; $doNotFailOnPhpunitDeprecation = null; + $doNotFailOnPhpunitNotice = null; $doNotFailOnPhpunitWarning = null; $doNotFailOnEmptyTestSuite = null; $doNotFailOnIncomplete = null; @@ -265,6 +281,8 @@ final class Builder $includePath = null; $iniSettings = []; $junitLogfile = null; + $otrLogfile = null; + $includeGitInformation = null; $listGroups = false; $listSuites = false; $listTestFiles = false; @@ -297,14 +315,24 @@ final class Builder $printerTestDox = null; $printerTestDoxSummary = null; $debug = false; + $withTelemetry = false; $extensions = []; foreach ($options[0] as $option) { $optionAllowedMultipleTimes = false; switch ($option[0]) { + case '--all': + $all = true; + + break; + case '--colors': - $colors = $option[1] ?: \PHPUnit\TextUI\Configuration\Configuration::COLOR_AUTO; + $colors = \PHPUnit\TextUI\Configuration\Configuration::COLOR_AUTO; + + if ($option[1] !== null) { + $colors = $option[1]; + } break; @@ -373,6 +401,11 @@ final class Builder break; + case '--coverage-openclover': + $coverageOpenClover = $option[1]; + + break; + case '--coverage-text': if ($option[1] === null) { $option[1] = 'php://stdout'; @@ -397,6 +430,11 @@ final class Builder break; + case '--exclude-source-from-xml-coverage': + $excludeSourceFromXmlCoverage = true; + + break; + case '--path-coverage': $pathCoverage = true; @@ -481,68 +519,44 @@ final class Builder break; case '--group': - if (str_contains($option[1], ',')) { - EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( - 'Using comma-separated values with --group is deprecated and will no longer work in PHPUnit 12. You can use --group multiple times instead.', - ); - } - if ($groups === null) { $groups = []; } - $groups = array_merge($groups, explode(',', $option[1])); + $groups[] = $option[1]; $optionAllowedMultipleTimes = true; break; case '--exclude-group': - if (str_contains($option[1], ',')) { - EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( - 'Using comma-separated values with --exclude-group is deprecated and will no longer work in PHPUnit 12. You can use --exclude-group multiple times instead.', - ); - } - if ($excludeGroups === null) { $excludeGroups = []; } - $excludeGroups = array_merge($excludeGroups, explode(',', $option[1])); + $excludeGroups[] = $option[1]; $optionAllowedMultipleTimes = true; break; case '--covers': - if (str_contains($option[1], ',')) { - EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( - 'Using comma-separated values with --covers is deprecated and will no longer work in PHPUnit 12. You can use --covers multiple times instead.', - ); - } - if ($testsCovering === null) { $testsCovering = []; } - $testsCovering = array_merge($testsCovering, array_map('strtolower', explode(',', $option[1]))); + $testsCovering[] = strtolower($option[1]); $optionAllowedMultipleTimes = true; break; case '--uses': - if (str_contains($option[1], ',')) { - EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( - 'Using comma-separated values with --uses is deprecated and will no longer work in PHPUnit 12. You can use --uses multiple times instead.', - ); - } - if ($testsUsing === null) { $testsUsing = []; } - $testsUsing = array_merge($testsUsing, array_map('strtolower', explode(',', $option[1]))); + $testsUsing[] = strtolower($option[1]); $optionAllowedMultipleTimes = true; @@ -560,17 +574,11 @@ final class Builder break; case '--test-suffix': - if (str_contains($option[1], ',')) { - EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( - 'Using comma-separated values with --test-suffix is deprecated and will no longer work in PHPUnit 12. You can use --test-suffix multiple times instead.', - ); - } - if ($testSuffixes === null) { $testSuffixes = []; } - $testSuffixes = array_merge($testSuffixes, explode(',', $option[1])); + $testSuffixes[] = $option[1]; $optionAllowedMultipleTimes = true; @@ -611,6 +619,16 @@ final class Builder break; + case '--log-otr': + $otrLogfile = $option[1]; + + break; + + case '--include-git-information': + $includeGitInformation = true; + + break; + case '--log-teamcity': $teamcityLogfile = $option[1]; @@ -710,6 +728,17 @@ final class Builder break; + case '--fail-on-phpunit-notice': + $this->warnWhenOptionsConflict( + $doNotFailOnPhpunitNotice, + '--fail-on-phpunit-notice', + '--do-not-fail-on-phpunit-notice', + ); + + $failOnPhpunitNotice = true; + + break; + case '--fail-on-phpunit-warning': $this->warnWhenOptionsConflict( $doNotFailOnPhpunitWarning, @@ -809,6 +838,17 @@ final class Builder break; + case '--do-not-fail-on-phpunit-notice': + $this->warnWhenOptionsConflict( + $failOnPhpunitNotice, + '--do-not-fail-on-phpunit-notice', + '--fail-on-phpunit-notice', + ); + + $doNotFailOnPhpunitNotice = true; + + break; + case '--do-not-fail-on-phpunit-warning': $this->warnWhenOptionsConflict( $failOnPhpunitWarning, @@ -1016,7 +1056,15 @@ final class Builder break; case '--do-not-report-useless-tests': + $reportUselessTests = false; + + break; + case '--dont-report-useless-tests': + EventFacade::emitter()->testRunnerTriggeredPhpunitDeprecation( + 'Option --dont-report-useless-tests is deprecated, use --do-not-report-useless-tests instead', + ); + $reportUselessTests = false; break; @@ -1066,6 +1114,11 @@ final class Builder break; + case '--display-phpunit-notices': + $displayPhpunitNotices = true; + + break; + case '--display-errors': $displayErrors = true; @@ -1175,6 +1228,11 @@ final class Builder break; + case '--with-telemetry': + $withTelemetry = true; + + break; + case '--extension': $extensions[] = $option[1]; @@ -1188,20 +1246,23 @@ final class Builder } } - if (empty($iniSettings)) { + if ($iniSettings === []) { $iniSettings = null; } - if (empty($coverageFilter)) { - $coverageFilter = null; + if ($extensions === []) { + $extensions = null; } - if (empty($extensions)) { - $extensions = null; + if ($randomOrderSeed !== null && $executionOrder !== TestSuiteSorter::ORDER_RANDOMIZED) { + EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( + '--random-order-seed is only used when execution order is "random" (use --order-by random or --random-order)', + ); } return new Configuration( $options[1], + $all, $atLeastVersion, $backupGlobals, $backupStaticProperties, @@ -1218,11 +1279,13 @@ final class Builder $coverageCobertura, $coverageCrap4J, $coverageHtml, + $coverageOpenClover, $coveragePhp, $coverageText, $coverageTextShowUncoveredFiles, $coverageTextShowOnlySummary, $coverageXml, + $excludeSourceFromXmlCoverage, $pathCoverage, $warmCoverageCache, $defaultTimeLimit, @@ -1235,6 +1298,7 @@ final class Builder $failOnAllIssues, $failOnDeprecation, $failOnPhpunitDeprecation, + $failOnPhpunitNotice, $failOnPhpunitWarning, $failOnEmptyTestSuite, $failOnIncomplete, @@ -1244,6 +1308,7 @@ final class Builder $failOnWarning, $doNotFailOnDeprecation, $doNotFailOnPhpunitDeprecation, + $doNotFailOnPhpunitNotice, $doNotFailOnPhpunitWarning, $doNotFailOnEmptyTestSuite, $doNotFailOnIncomplete, @@ -1276,6 +1341,8 @@ final class Builder $includePath, $iniSettings, $junitLogfile, + $otrLogfile, + $includeGitInformation, $listGroups, $listSuites, $listTestFiles, @@ -1306,6 +1373,7 @@ final class Builder $displaySkipped, $displayDeprecations, $displayPhpunitDeprecations, + $displayPhpunitNotices, $displayErrors, $displayNotices, $displayWarnings, @@ -1317,6 +1385,7 @@ final class Builder $printerTestDox, $printerTestDoxSummary, $debug, + $withTelemetry, $extensions, ); } diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Cli/Configuration.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Cli/Configuration.php index 31746eb98..8ccef4ef2 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Cli/Configuration.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Cli/Configuration.php @@ -22,6 +22,7 @@ final readonly class Configuration * @var list */ private array $arguments; + private ?bool $all; private ?string $atLeastVersion; private ?bool $backupGlobals; private ?bool $backupStaticProperties; @@ -43,11 +44,13 @@ final readonly class Configuration private ?string $coverageCobertura; private ?string $coverageCrap4J; private ?string $coverageHtml; + private ?string $coverageOpenClover; private ?string $coveragePhp; private ?string $coverageText; private ?bool $coverageTextShowUncoveredFiles; private ?bool $coverageTextShowOnlySummary; private ?string $coverageXml; + private ?bool $excludeSourceFromXmlCoverage; private ?bool $pathCoverage; private bool $warmCoverageCache; private ?int $defaultTimeLimit; @@ -64,6 +67,7 @@ final readonly class Configuration private ?bool $failOnAllIssues; private ?bool $failOnDeprecation; private ?bool $failOnPhpunitDeprecation; + private ?bool $failOnPhpunitNotice; private ?bool $failOnPhpunitWarning; private ?bool $failOnEmptyTestSuite; private ?bool $failOnIncomplete; @@ -73,6 +77,7 @@ final readonly class Configuration private ?bool $failOnWarning; private ?bool $doNotFailOnDeprecation; private ?bool $doNotFailOnPhpunitDeprecation; + private ?bool $doNotFailOnPhpunitNotice; private ?bool $doNotFailOnPhpunitWarning; private ?bool $doNotFailOnEmptyTestSuite; private ?bool $doNotFailOnIncomplete; @@ -125,6 +130,8 @@ final readonly class Configuration */ private ?array $iniSettings; private ?string $junitLogfile; + private ?string $otrLogfile; + private ?bool $includeGitInformationInOtrLogfile; private bool $listGroups; private bool $listSuites; private bool $listTestFiles; @@ -162,6 +169,7 @@ final readonly class Configuration private ?bool $displayDetailsOnSkippedTests; private ?bool $displayDetailsOnTestsThatTriggerDeprecations; private ?bool $displayDetailsOnPhpunitDeprecations; + private ?bool $displayDetailsOnPhpunitNotices; private ?bool $displayDetailsOnTestsThatTriggerErrors; private ?bool $displayDetailsOnTestsThatTriggerNotices; private ?bool $displayDetailsOnTestsThatTriggerWarnings; @@ -169,6 +177,7 @@ final readonly class Configuration private ?string $logEventsText; private ?string $logEventsVerboseText; private bool $debug; + private bool $withTelemetry; /** * @var ?non-empty-list @@ -187,9 +196,10 @@ final readonly class Configuration * @param ?non-empty-list $coverageFilter * @param ?non-empty-list $extensions */ - public function __construct(array $arguments, ?string $atLeastVersion, ?bool $backupGlobals, ?bool $backupStaticProperties, ?bool $beStrictAboutChangesToGlobalState, ?string $bootstrap, ?string $cacheDirectory, ?bool $cacheResult, bool $checkPhpConfiguration, bool $checkVersion, ?string $colors, null|int|string $columns, ?string $configurationFile, ?string $coverageClover, ?string $coverageCobertura, ?string $coverageCrap4J, ?string $coverageHtml, ?string $coveragePhp, ?string $coverageText, ?bool $coverageTextShowUncoveredFiles, ?bool $coverageTextShowOnlySummary, ?string $coverageXml, ?bool $pathCoverage, bool $warmCoverageCache, ?int $defaultTimeLimit, ?bool $disableCodeCoverageIgnore, ?bool $disallowTestOutput, ?bool $enforceTimeLimit, ?array $excludeGroups, ?int $executionOrder, ?int $executionOrderDefects, ?bool $failOnAllIssues, ?bool $failOnDeprecation, ?bool $failOnPhpunitDeprecation, ?bool $failOnPhpunitWarning, ?bool $failOnEmptyTestSuite, ?bool $failOnIncomplete, ?bool $failOnNotice, ?bool $failOnRisky, ?bool $failOnSkipped, ?bool $failOnWarning, ?bool $doNotFailOnDeprecation, ?bool $doNotFailOnPhpunitDeprecation, ?bool $doNotFailOnPhpunitWarning, ?bool $doNotFailOnEmptyTestSuite, ?bool $doNotFailOnIncomplete, ?bool $doNotFailOnNotice, ?bool $doNotFailOnRisky, ?bool $doNotFailOnSkipped, ?bool $doNotFailOnWarning, ?bool $stopOnDefect, ?bool $stopOnDeprecation, ?string $specificDeprecationToStopOn, ?bool $stopOnError, ?bool $stopOnFailure, ?bool $stopOnIncomplete, ?bool $stopOnNotice, ?bool $stopOnRisky, ?bool $stopOnSkipped, ?bool $stopOnWarning, ?string $filter, ?string $excludeFilter, ?string $generateBaseline, ?string $useBaseline, bool $ignoreBaseline, bool $generateConfiguration, bool $migrateConfiguration, ?array $groups, ?array $testsCovering, ?array $testsUsing, ?array $testsRequiringPhpExtension, bool $help, ?string $includePath, ?array $iniSettings, ?string $junitLogfile, bool $listGroups, bool $listSuites, bool $listTestFiles, bool $listTests, ?string $listTestsXml, ?bool $noCoverage, ?bool $noExtensions, ?bool $noOutput, ?bool $noProgress, ?bool $noResults, ?bool $noLogging, ?bool $processIsolation, ?int $randomOrderSeed, ?bool $reportUselessTests, ?bool $resolveDependencies, ?bool $reverseList, ?bool $stderr, ?bool $strictCoverage, ?string $teamcityLogfile, ?string $testdoxHtmlFile, ?string $testdoxTextFile, ?array $testSuffixes, ?string $testSuite, ?string $excludeTestSuite, bool $useDefaultConfiguration, ?bool $displayDetailsOnAllIssues, ?bool $displayDetailsOnIncompleteTests, ?bool $displayDetailsOnSkippedTests, ?bool $displayDetailsOnTestsThatTriggerDeprecations, ?bool $displayDetailsOnPhpunitDeprecations, ?bool $displayDetailsOnTestsThatTriggerErrors, ?bool $displayDetailsOnTestsThatTriggerNotices, ?bool $displayDetailsOnTestsThatTriggerWarnings, bool $version, ?array $coverageFilter, ?string $logEventsText, ?string $logEventsVerboseText, ?bool $printerTeamCity, ?bool $testdoxPrinter, ?bool $testdoxPrinterSummary, bool $debug, ?array $extensions) + public function __construct(array $arguments, ?bool $all, ?string $atLeastVersion, ?bool $backupGlobals, ?bool $backupStaticProperties, ?bool $beStrictAboutChangesToGlobalState, ?string $bootstrap, ?string $cacheDirectory, ?bool $cacheResult, bool $checkPhpConfiguration, bool $checkVersion, ?string $colors, null|int|string $columns, ?string $configurationFile, ?string $coverageClover, ?string $coverageCobertura, ?string $coverageCrap4J, ?string $coverageHtml, ?string $coverageOpenClover, ?string $coveragePhp, ?string $coverageText, ?bool $coverageTextShowUncoveredFiles, ?bool $coverageTextShowOnlySummary, ?string $coverageXml, ?bool $coverageXmlIncludeSource, ?bool $pathCoverage, bool $warmCoverageCache, ?int $defaultTimeLimit, ?bool $disableCodeCoverageIgnore, ?bool $disallowTestOutput, ?bool $enforceTimeLimit, ?array $excludeGroups, ?int $executionOrder, ?int $executionOrderDefects, ?bool $failOnAllIssues, ?bool $failOnDeprecation, ?bool $failOnPhpunitDeprecation, ?bool $failOnPhpunitNotice, ?bool $failOnPhpunitWarning, ?bool $failOnEmptyTestSuite, ?bool $failOnIncomplete, ?bool $failOnNotice, ?bool $failOnRisky, ?bool $failOnSkipped, ?bool $failOnWarning, ?bool $doNotFailOnDeprecation, ?bool $doNotFailOnPhpunitDeprecation, ?bool $doNotFailOnPhpunitNotice, ?bool $doNotFailOnPhpunitWarning, ?bool $doNotFailOnEmptyTestSuite, ?bool $doNotFailOnIncomplete, ?bool $doNotFailOnNotice, ?bool $doNotFailOnRisky, ?bool $doNotFailOnSkipped, ?bool $doNotFailOnWarning, ?bool $stopOnDefect, ?bool $stopOnDeprecation, ?string $specificDeprecationToStopOn, ?bool $stopOnError, ?bool $stopOnFailure, ?bool $stopOnIncomplete, ?bool $stopOnNotice, ?bool $stopOnRisky, ?bool $stopOnSkipped, ?bool $stopOnWarning, ?string $filter, ?string $excludeFilter, ?string $generateBaseline, ?string $useBaseline, bool $ignoreBaseline, bool $generateConfiguration, bool $migrateConfiguration, ?array $groups, ?array $testsCovering, ?array $testsUsing, ?array $testsRequiringPhpExtension, bool $help, ?string $includePath, ?array $iniSettings, ?string $junitLogfile, ?string $otrLogfile, ?bool $includeGitInformation, bool $listGroups, bool $listSuites, bool $listTestFiles, bool $listTests, ?string $listTestsXml, ?bool $noCoverage, ?bool $noExtensions, ?bool $noOutput, ?bool $noProgress, ?bool $noResults, ?bool $noLogging, ?bool $processIsolation, ?int $randomOrderSeed, ?bool $reportUselessTests, ?bool $resolveDependencies, ?bool $reverseList, ?bool $stderr, ?bool $strictCoverage, ?string $teamcityLogfile, ?string $testdoxHtmlFile, ?string $testdoxTextFile, ?array $testSuffixes, ?string $testSuite, ?string $excludeTestSuite, bool $useDefaultConfiguration, ?bool $displayDetailsOnAllIssues, ?bool $displayDetailsOnIncompleteTests, ?bool $displayDetailsOnSkippedTests, ?bool $displayDetailsOnTestsThatTriggerDeprecations, ?bool $displayDetailsOnPhpunitDeprecations, ?bool $displayDetailsOnPhpunitNotices, ?bool $displayDetailsOnTestsThatTriggerErrors, ?bool $displayDetailsOnTestsThatTriggerNotices, ?bool $displayDetailsOnTestsThatTriggerWarnings, bool $version, ?array $coverageFilter, ?string $logEventsText, ?string $logEventsVerboseText, ?bool $printerTeamCity, ?bool $testdoxPrinter, ?bool $testdoxPrinterSummary, bool $debug, bool $withTelemetry, ?array $extensions) { $this->arguments = $arguments; + $this->all = $all; $this->atLeastVersion = $atLeastVersion; $this->backupGlobals = $backupGlobals; $this->backupStaticProperties = $backupStaticProperties; @@ -207,11 +217,13 @@ final readonly class Configuration $this->coverageCobertura = $coverageCobertura; $this->coverageCrap4J = $coverageCrap4J; $this->coverageHtml = $coverageHtml; + $this->coverageOpenClover = $coverageOpenClover; $this->coveragePhp = $coveragePhp; $this->coverageText = $coverageText; $this->coverageTextShowUncoveredFiles = $coverageTextShowUncoveredFiles; $this->coverageTextShowOnlySummary = $coverageTextShowOnlySummary; $this->coverageXml = $coverageXml; + $this->excludeSourceFromXmlCoverage = $coverageXmlIncludeSource; $this->pathCoverage = $pathCoverage; $this->warmCoverageCache = $warmCoverageCache; $this->defaultTimeLimit = $defaultTimeLimit; @@ -224,6 +236,7 @@ final readonly class Configuration $this->failOnAllIssues = $failOnAllIssues; $this->failOnDeprecation = $failOnDeprecation; $this->failOnPhpunitDeprecation = $failOnPhpunitDeprecation; + $this->failOnPhpunitNotice = $failOnPhpunitNotice; $this->failOnPhpunitWarning = $failOnPhpunitWarning; $this->failOnEmptyTestSuite = $failOnEmptyTestSuite; $this->failOnIncomplete = $failOnIncomplete; @@ -233,6 +246,7 @@ final readonly class Configuration $this->failOnWarning = $failOnWarning; $this->doNotFailOnDeprecation = $doNotFailOnDeprecation; $this->doNotFailOnPhpunitDeprecation = $doNotFailOnPhpunitDeprecation; + $this->doNotFailOnPhpunitNotice = $doNotFailOnPhpunitNotice; $this->doNotFailOnPhpunitWarning = $doNotFailOnPhpunitWarning; $this->doNotFailOnEmptyTestSuite = $doNotFailOnEmptyTestSuite; $this->doNotFailOnIncomplete = $doNotFailOnIncomplete; @@ -265,6 +279,8 @@ final readonly class Configuration $this->includePath = $includePath; $this->iniSettings = $iniSettings; $this->junitLogfile = $junitLogfile; + $this->otrLogfile = $otrLogfile; + $this->includeGitInformationInOtrLogfile = $includeGitInformation; $this->listGroups = $listGroups; $this->listSuites = $listSuites; $this->listTestFiles = $listTestFiles; @@ -295,6 +311,7 @@ final readonly class Configuration $this->displayDetailsOnSkippedTests = $displayDetailsOnSkippedTests; $this->displayDetailsOnTestsThatTriggerDeprecations = $displayDetailsOnTestsThatTriggerDeprecations; $this->displayDetailsOnPhpunitDeprecations = $displayDetailsOnPhpunitDeprecations; + $this->displayDetailsOnPhpunitNotices = $displayDetailsOnPhpunitNotices; $this->displayDetailsOnTestsThatTriggerErrors = $displayDetailsOnTestsThatTriggerErrors; $this->displayDetailsOnTestsThatTriggerNotices = $displayDetailsOnTestsThatTriggerNotices; $this->displayDetailsOnTestsThatTriggerWarnings = $displayDetailsOnTestsThatTriggerWarnings; @@ -305,6 +322,7 @@ final readonly class Configuration $this->testdoxPrinter = $testdoxPrinter; $this->testdoxPrinterSummary = $testdoxPrinterSummary; $this->debug = $debug; + $this->withTelemetry = $withTelemetry; $this->extensions = $extensions; } @@ -316,6 +334,26 @@ final readonly class Configuration return $this->arguments; } + /** + * @phpstan-assert-if-true !null $this->all + */ + public function hasAll(): bool + { + return $this->all !== null; + } + + /** + * @throws Exception + */ + public function all(): bool + { + if (!$this->hasAll()) { + throw new Exception; + } + + return $this->all; + } + /** * @phpstan-assert-if-true !null $this->atLeastVersion */ @@ -628,6 +666,26 @@ final readonly class Configuration return $this->coverageHtml; } + /** + * @phpstan-assert-if-true !null $this->coverageOpenClover + */ + public function hasCoverageOpenClover(): bool + { + return $this->coverageOpenClover !== null; + } + + /** + * @throws Exception + */ + public function coverageOpenClover(): string + { + if (!$this->hasCoverageOpenClover()) { + throw new Exception; + } + + return $this->coverageOpenClover; + } + /** * @phpstan-assert-if-true !null $this->coveragePhp */ @@ -728,6 +786,26 @@ final readonly class Configuration return $this->coverageXml; } + /** + * @phpstan-assert-if-true !null $this->excludeSourceFromXmlCoverage + */ + public function hasExcludeSourceFromXmlCoverage(): bool + { + return $this->excludeSourceFromXmlCoverage !== null; + } + + /** + * @throws Exception + */ + public function excludeSourceFromXmlCoverage(): bool + { + if (!$this->hasExcludeSourceFromXmlCoverage()) { + throw new Exception; + } + + return $this->excludeSourceFromXmlCoverage; + } + /** * @phpstan-assert-if-true !null $this->pathCoverage */ @@ -955,6 +1033,26 @@ final readonly class Configuration return $this->failOnPhpunitDeprecation; } + /** + * @phpstan-assert-if-true !null $this->failOnPhpunitNotice + */ + public function hasFailOnPhpunitNotice(): bool + { + return $this->failOnPhpunitNotice !== null; + } + + /** + * @throws Exception + */ + public function failOnPhpunitNotice(): bool + { + if (!$this->hasFailOnPhpunitNotice()) { + throw new Exception; + } + + return $this->failOnPhpunitNotice; + } + /** * @phpstan-assert-if-true !null $this->failOnPhpunitWarning */ @@ -1135,6 +1233,26 @@ final readonly class Configuration return $this->doNotFailOnPhpunitDeprecation; } + /** + * @phpstan-assert-if-true !null $this->doNotFailOnPhpunitNotice + */ + public function hasDoNotFailOnPhpunitNotice(): bool + { + return $this->doNotFailOnPhpunitNotice !== null; + } + + /** + * @throws Exception + */ + public function doNotFailOnPhpunitNotice(): bool + { + if (!$this->hasDoNotFailOnPhpunitNotice()) { + throw new Exception; + } + + return $this->doNotFailOnPhpunitNotice; + } + /** * @phpstan-assert-if-true !null $this->doNotFailOnPhpunitWarning */ @@ -1725,6 +1843,46 @@ final readonly class Configuration return $this->junitLogfile; } + /** + * @phpstan-assert-if-true !null $this->otrLogfile + */ + public function hasOtrLogfile(): bool + { + return $this->otrLogfile !== null; + } + + /** + * @throws Exception + */ + public function otrLogfile(): string + { + if (!$this->hasOtrLogfile()) { + throw new Exception; + } + + return $this->otrLogfile; + } + + /** + * @phpstan-assert-if-true !null $this->includeGitInformationInOtrLogfile + */ + public function hasIncludeGitInformationInOtrLogfile(): bool + { + return $this->includeGitInformationInOtrLogfile !== null; + } + + /** + * @throws Exception + */ + public function includeGitInformationInOtrLogfile(): bool + { + if (!$this->hasIncludeGitInformationInOtrLogfile()) { + throw new Exception; + } + + return $this->includeGitInformationInOtrLogfile; + } + public function listGroups(): bool { return $this->listGroups; @@ -2312,6 +2470,26 @@ final readonly class Configuration return $this->displayDetailsOnPhpunitDeprecations; } + /** + * @phpstan-assert-if-true !null $this->displayDetailsOnPhpunitNotices + */ + public function hasDisplayDetailsOnPhpunitNotices(): bool + { + return $this->displayDetailsOnPhpunitNotices !== null; + } + + /** + * @throws Exception + */ + public function displayDetailsOnPhpunitNotices(): bool + { + if (!$this->hasDisplayDetailsOnPhpunitNotices()) { + throw new Exception; + } + + return $this->displayDetailsOnPhpunitNotices; + } + /** * @phpstan-assert-if-true !null $this->displayDetailsOnTestsThatTriggerErrors */ @@ -2422,6 +2600,11 @@ final readonly class Configuration return $this->debug; } + public function withTelemetry(): bool + { + return $this->withTelemetry; + } + /** * @phpstan-assert-if-true !null $this->extensions */ diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Configuration.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Configuration.php index 7ff7366f4..2bb2d7815 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Configuration.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Configuration.php @@ -9,6 +9,8 @@ */ namespace PHPUnit\TextUI\Configuration; +use function explode; + /** * @immutable * @@ -16,10 +18,10 @@ namespace PHPUnit\TextUI\Configuration; */ final readonly class Configuration { - public const COLOR_NEVER = 'never'; - public const COLOR_AUTO = 'auto'; - public const COLOR_ALWAYS = 'always'; - public const COLOR_DEFAULT = self::COLOR_NEVER; + public const string COLOR_NEVER = 'never'; + public const string COLOR_AUTO = 'auto'; + public const string COLOR_ALWAYS = 'always'; + public const string COLOR_DEFAULT = self::COLOR_NEVER; /** * @var list @@ -27,6 +29,11 @@ final readonly class Configuration private array $cliArguments; private ?string $configurationFile; private ?string $bootstrap; + + /** + * @var array + */ + private array $bootstrapForTestSuite; private bool $cacheResult; private ?string $cacheDirectory; private ?string $coverageCacheDirectory; @@ -45,17 +52,20 @@ final readonly class Configuration private string $coverageHtmlColorWarning; private string $coverageHtmlColorDanger; private ?string $coverageHtmlCustomCssFile; + private ?string $coverageOpenClover; private ?string $coveragePhp; private ?string $coverageText; private bool $coverageTextShowUncoveredFiles; private bool $coverageTextShowOnlySummary; private ?string $coverageXml; + private bool $coverageXmlIncludeSource; private string $testResultCacheFile; private bool $ignoreDeprecatedCodeUnitsFromCodeCoverage; private bool $disableCodeCoverageIgnore; private bool $failOnAllIssues; private bool $failOnDeprecation; private bool $failOnPhpunitDeprecation; + private bool $failOnPhpunitNotice; private bool $failOnPhpunitWarning; private bool $failOnEmptyTestSuite; private bool $failOnIncomplete; @@ -65,6 +75,7 @@ final readonly class Configuration private bool $failOnWarning; private bool $doNotFailOnDeprecation; private bool $doNotFailOnPhpunitDeprecation; + private bool $doNotFailOnPhpunitNotice; private bool $doNotFailOnPhpunitWarning; private bool $doNotFailOnEmptyTestSuite; private bool $doNotFailOnIncomplete; @@ -113,6 +124,7 @@ final readonly class Configuration private bool $displayDetailsOnSkippedTests; private bool $displayDetailsOnTestsThatTriggerDeprecations; private bool $displayDetailsOnPhpunitDeprecations; + private bool $displayDetailsOnPhpunitNotices; private bool $displayDetailsOnTestsThatTriggerErrors; private bool $displayDetailsOnTestsThatTriggerNotices; private bool $displayDetailsOnTestsThatTriggerWarnings; @@ -126,6 +138,8 @@ final readonly class Configuration private bool $resolveDependencies; private ?string $logfileTeamcity; private ?string $logfileJunit; + private ?string $logfileOtr; + private bool $includeGitInformationInOtrLogfile; private ?string $logfileTestdoxHtml; private ?string $logfileTestdoxText; private ?string $logEventsText; @@ -166,6 +180,7 @@ final readonly class Configuration private string $includeTestSuite; private string $excludeTestSuite; private ?string $defaultTestSuite; + private bool $ignoreTestSelectionInXmlConfiguration; /** * @var non-empty-list @@ -174,8 +189,13 @@ final readonly class Configuration private Php $php; private bool $controlGarbageCollector; private int $numberOfTestsBeforeGarbageCollection; + + /** + * @var null|non-empty-string + */ private ?string $generateBaseline; private bool $debug; + private bool $withTelemetry; /** * @var non-negative-int @@ -184,6 +204,7 @@ final readonly class Configuration /** * @param list $cliArguments + * @param array $bootstrapForTestSuite * @param ?non-empty-string $pharExtensionDirectory * @param list}> $extensionBootstrappers * @param ?non-empty-list $testsCovering @@ -192,13 +213,15 @@ final readonly class Configuration * @param list $groups * @param list $excludeGroups * @param non-empty-list $testSuffixes + * @param null|non-empty-string $generateBaseline * @param non-negative-int $shortenArraysForExportThreshold */ - public function __construct(array $cliArguments, ?string $configurationFile, ?string $bootstrap, bool $cacheResult, ?string $cacheDirectory, ?string $coverageCacheDirectory, Source $source, string $testResultCacheFile, ?string $coverageClover, ?string $coverageCobertura, ?string $coverageCrap4j, int $coverageCrap4jThreshold, ?string $coverageHtml, int $coverageHtmlLowUpperBound, int $coverageHtmlHighLowerBound, string $coverageHtmlColorSuccessLow, string $coverageHtmlColorSuccessMedium, string $coverageHtmlColorSuccessHigh, string $coverageHtmlColorWarning, string $coverageHtmlColorDanger, ?string $coverageHtmlCustomCssFile, ?string $coveragePhp, ?string $coverageText, bool $coverageTextShowUncoveredFiles, bool $coverageTextShowOnlySummary, ?string $coverageXml, bool $pathCoverage, bool $ignoreDeprecatedCodeUnitsFromCodeCoverage, bool $disableCodeCoverageIgnore, bool $failOnAllIssues, bool $failOnDeprecation, bool $failOnPhpunitDeprecation, bool $failOnPhpunitWarning, bool $failOnEmptyTestSuite, bool $failOnIncomplete, bool $failOnNotice, bool $failOnRisky, bool $failOnSkipped, bool $failOnWarning, bool $doNotFailOnDeprecation, bool $doNotFailOnPhpunitDeprecation, bool $doNotFailOnPhpunitWarning, bool $doNotFailOnEmptyTestSuite, bool $doNotFailOnIncomplete, bool $doNotFailOnNotice, bool $doNotFailOnRisky, bool $doNotFailOnSkipped, bool $doNotFailOnWarning, bool $stopOnDefect, bool $stopOnDeprecation, ?string $specificDeprecationToStopOn, bool $stopOnError, bool $stopOnFailure, bool $stopOnIncomplete, bool $stopOnNotice, bool $stopOnRisky, bool $stopOnSkipped, bool $stopOnWarning, bool $outputToStandardErrorStream, int|string $columns, bool $noExtensions, ?string $pharExtensionDirectory, array $extensionBootstrappers, bool $backupGlobals, bool $backupStaticProperties, bool $beStrictAboutChangesToGlobalState, bool $colors, bool $processIsolation, bool $enforceTimeLimit, int $defaultTimeLimit, int $timeoutForSmallTests, int $timeoutForMediumTests, int $timeoutForLargeTests, bool $reportUselessTests, bool $strictCoverage, bool $disallowTestOutput, bool $displayDetailsOnAllIssues, bool $displayDetailsOnIncompleteTests, bool $displayDetailsOnSkippedTests, bool $displayDetailsOnTestsThatTriggerDeprecations, bool $displayDetailsOnPhpunitDeprecations, bool $displayDetailsOnTestsThatTriggerErrors, bool $displayDetailsOnTestsThatTriggerNotices, bool $displayDetailsOnTestsThatTriggerWarnings, bool $reverseDefectList, bool $requireCoverageMetadata, bool $noProgress, bool $noResults, bool $noOutput, int $executionOrder, int $executionOrderDefects, bool $resolveDependencies, ?string $logfileTeamcity, ?string $logfileJunit, ?string $logfileTestdoxHtml, ?string $logfileTestdoxText, ?string $logEventsText, ?string $logEventsVerboseText, bool $teamCityOutput, bool $testDoxOutput, bool $testDoxOutputSummary, ?array $testsCovering, ?array $testsUsing, ?array $testsRequiringPhpExtension, ?string $filter, ?string $excludeFilter, array $groups, array $excludeGroups, int $randomOrderSeed, bool $includeUncoveredFiles, TestSuiteCollection $testSuite, string $includeTestSuite, string $excludeTestSuite, ?string $defaultTestSuite, array $testSuffixes, Php $php, bool $controlGarbageCollector, int $numberOfTestsBeforeGarbageCollection, ?string $generateBaseline, bool $debug, int $shortenArraysForExportThreshold) + public function __construct(array $cliArguments, ?string $configurationFile, ?string $bootstrap, array $bootstrapForTestSuite, bool $cacheResult, ?string $cacheDirectory, ?string $coverageCacheDirectory, Source $source, string $testResultCacheFile, ?string $coverageClover, ?string $coverageCobertura, ?string $coverageCrap4j, int $coverageCrap4jThreshold, ?string $coverageHtml, int $coverageHtmlLowUpperBound, int $coverageHtmlHighLowerBound, string $coverageHtmlColorSuccessLow, string $coverageHtmlColorSuccessMedium, string $coverageHtmlColorSuccessHigh, string $coverageHtmlColorWarning, string $coverageHtmlColorDanger, ?string $coverageHtmlCustomCssFile, ?string $coverageOpenClover, ?string $coveragePhp, ?string $coverageText, bool $coverageTextShowUncoveredFiles, bool $coverageTextShowOnlySummary, ?string $coverageXml, bool $coverageXmlIncludeSource, bool $pathCoverage, bool $ignoreDeprecatedCodeUnitsFromCodeCoverage, bool $disableCodeCoverageIgnore, bool $failOnAllIssues, bool $failOnDeprecation, bool $failOnPhpunitDeprecation, bool $failOnPhpunitNotice, bool $failOnPhpunitWarning, bool $failOnEmptyTestSuite, bool $failOnIncomplete, bool $failOnNotice, bool $failOnRisky, bool $failOnSkipped, bool $failOnWarning, bool $doNotFailOnDeprecation, bool $doNotFailOnPhpunitDeprecation, bool $doNotFailOnPhpunitNotice, bool $doNotFailOnPhpunitWarning, bool $doNotFailOnEmptyTestSuite, bool $doNotFailOnIncomplete, bool $doNotFailOnNotice, bool $doNotFailOnRisky, bool $doNotFailOnSkipped, bool $doNotFailOnWarning, bool $stopOnDefect, bool $stopOnDeprecation, ?string $specificDeprecationToStopOn, bool $stopOnError, bool $stopOnFailure, bool $stopOnIncomplete, bool $stopOnNotice, bool $stopOnRisky, bool $stopOnSkipped, bool $stopOnWarning, bool $outputToStandardErrorStream, int $columns, bool $noExtensions, ?string $pharExtensionDirectory, array $extensionBootstrappers, bool $backupGlobals, bool $backupStaticProperties, bool $beStrictAboutChangesToGlobalState, bool $colors, bool $processIsolation, bool $enforceTimeLimit, int $defaultTimeLimit, int $timeoutForSmallTests, int $timeoutForMediumTests, int $timeoutForLargeTests, bool $reportUselessTests, bool $strictCoverage, bool $disallowTestOutput, bool $displayDetailsOnAllIssues, bool $displayDetailsOnIncompleteTests, bool $displayDetailsOnSkippedTests, bool $displayDetailsOnTestsThatTriggerDeprecations, bool $displayDetailsOnPhpunitDeprecations, bool $displayDetailsOnPhpunitNotices, bool $displayDetailsOnTestsThatTriggerErrors, bool $displayDetailsOnTestsThatTriggerNotices, bool $displayDetailsOnTestsThatTriggerWarnings, bool $reverseDefectList, bool $requireCoverageMetadata, bool $noProgress, bool $noResults, bool $noOutput, int $executionOrder, int $executionOrderDefects, bool $resolveDependencies, ?string $logfileTeamcity, ?string $logfileJunit, ?string $logfileOtr, bool $includeGitInformationInOtrLogfile, ?string $logfileTestdoxHtml, ?string $logfileTestdoxText, ?string $logEventsText, ?string $logEventsVerboseText, bool $teamCityOutput, bool $testDoxOutput, bool $testDoxOutputSummary, ?array $testsCovering, ?array $testsUsing, ?array $testsRequiringPhpExtension, ?string $filter, ?string $excludeFilter, array $groups, array $excludeGroups, int $randomOrderSeed, bool $includeUncoveredFiles, TestSuiteCollection $testSuite, string $includeTestSuite, string $excludeTestSuite, ?string $defaultTestSuite, bool $ignoreTestSelectionInXmlConfiguration, array $testSuffixes, Php $php, bool $controlGarbageCollector, int $numberOfTestsBeforeGarbageCollection, ?string $generateBaseline, bool $debug, bool $withTelemetry, int $shortenArraysForExportThreshold) { $this->cliArguments = $cliArguments; $this->configurationFile = $configurationFile; $this->bootstrap = $bootstrap; + $this->bootstrapForTestSuite = $bootstrapForTestSuite; $this->cacheResult = $cacheResult; $this->cacheDirectory = $cacheDirectory; $this->coverageCacheDirectory = $coverageCacheDirectory; @@ -217,17 +240,20 @@ final readonly class Configuration $this->coverageHtmlColorWarning = $coverageHtmlColorWarning; $this->coverageHtmlColorDanger = $coverageHtmlColorDanger; $this->coverageHtmlCustomCssFile = $coverageHtmlCustomCssFile; + $this->coverageOpenClover = $coverageOpenClover; $this->coveragePhp = $coveragePhp; $this->coverageText = $coverageText; $this->coverageTextShowUncoveredFiles = $coverageTextShowUncoveredFiles; $this->coverageTextShowOnlySummary = $coverageTextShowOnlySummary; $this->coverageXml = $coverageXml; + $this->coverageXmlIncludeSource = $coverageXmlIncludeSource; $this->pathCoverage = $pathCoverage; $this->ignoreDeprecatedCodeUnitsFromCodeCoverage = $ignoreDeprecatedCodeUnitsFromCodeCoverage; $this->disableCodeCoverageIgnore = $disableCodeCoverageIgnore; $this->failOnAllIssues = $failOnAllIssues; $this->failOnDeprecation = $failOnDeprecation; $this->failOnPhpunitDeprecation = $failOnPhpunitDeprecation; + $this->failOnPhpunitNotice = $failOnPhpunitNotice; $this->failOnPhpunitWarning = $failOnPhpunitWarning; $this->failOnEmptyTestSuite = $failOnEmptyTestSuite; $this->failOnIncomplete = $failOnIncomplete; @@ -237,6 +263,7 @@ final readonly class Configuration $this->failOnWarning = $failOnWarning; $this->doNotFailOnDeprecation = $doNotFailOnDeprecation; $this->doNotFailOnPhpunitDeprecation = $doNotFailOnPhpunitDeprecation; + $this->doNotFailOnPhpunitNotice = $doNotFailOnPhpunitNotice; $this->doNotFailOnPhpunitWarning = $doNotFailOnPhpunitWarning; $this->doNotFailOnEmptyTestSuite = $doNotFailOnEmptyTestSuite; $this->doNotFailOnIncomplete = $doNotFailOnIncomplete; @@ -277,6 +304,7 @@ final readonly class Configuration $this->displayDetailsOnSkippedTests = $displayDetailsOnSkippedTests; $this->displayDetailsOnTestsThatTriggerDeprecations = $displayDetailsOnTestsThatTriggerDeprecations; $this->displayDetailsOnPhpunitDeprecations = $displayDetailsOnPhpunitDeprecations; + $this->displayDetailsOnPhpunitNotices = $displayDetailsOnPhpunitNotices; $this->displayDetailsOnTestsThatTriggerErrors = $displayDetailsOnTestsThatTriggerErrors; $this->displayDetailsOnTestsThatTriggerNotices = $displayDetailsOnTestsThatTriggerNotices; $this->displayDetailsOnTestsThatTriggerWarnings = $displayDetailsOnTestsThatTriggerWarnings; @@ -290,6 +318,8 @@ final readonly class Configuration $this->resolveDependencies = $resolveDependencies; $this->logfileTeamcity = $logfileTeamcity; $this->logfileJunit = $logfileJunit; + $this->logfileOtr = $logfileOtr; + $this->includeGitInformationInOtrLogfile = $includeGitInformationInOtrLogfile; $this->logfileTestdoxHtml = $logfileTestdoxHtml; $this->logfileTestdoxText = $logfileTestdoxText; $this->logEventsText = $logEventsText; @@ -310,12 +340,14 @@ final readonly class Configuration $this->includeTestSuite = $includeTestSuite; $this->excludeTestSuite = $excludeTestSuite; $this->defaultTestSuite = $defaultTestSuite; + $this->ignoreTestSelectionInXmlConfiguration = $ignoreTestSelectionInXmlConfiguration; $this->testSuffixes = $testSuffixes; $this->php = $php; $this->controlGarbageCollector = $controlGarbageCollector; $this->numberOfTestsBeforeGarbageCollection = $numberOfTestsBeforeGarbageCollection; $this->generateBaseline = $generateBaseline; $this->debug = $debug; + $this->withTelemetry = $withTelemetry; $this->shortenArraysForExportThreshold = $shortenArraysForExportThreshold; } @@ -324,7 +356,7 @@ final readonly class Configuration */ public function hasCliArguments(): bool { - return !empty($this->cliArguments); + return $this->cliArguments !== []; } /** @@ -375,6 +407,14 @@ final readonly class Configuration return $this->bootstrap; } + /** + * @return array + */ + public function bootstrapForTestSuite(): array + { + return $this->bootstrapForTestSuite; + } + public function cacheResult(): bool { return $this->cacheResult; @@ -451,6 +491,7 @@ final readonly class Configuration $this->hasCoverageCobertura() || $this->hasCoverageCrap4j() || $this->hasCoverageHtml() || + $this->hasCoverageOpenClover() || $this->hasCoveragePhp() || $this->hasCoverageText() || $this->hasCoverageXml(); @@ -596,6 +637,26 @@ final readonly class Configuration return $this->coverageHtmlCustomCssFile; } + /** + * @phpstan-assert-if-true !null $this->coverageOpenClover + */ + public function hasCoverageOpenClover(): bool + { + return $this->coverageOpenClover !== null; + } + + /** + * @throws CodeCoverageReportNotConfiguredException + */ + public function coverageOpenClover(): string + { + if (!$this->hasCoverageOpenClover()) { + throw new CodeCoverageReportNotConfiguredException; + } + + return $this->coverageOpenClover; + } + /** * @phpstan-assert-if-true !null $this->coveragePhp */ @@ -666,6 +727,11 @@ final readonly class Configuration return $this->coverageXml; } + public function coverageXmlIncludeSource(): bool + { + return $this->coverageXmlIncludeSource; + } + public function failOnAllIssues(): bool { return $this->failOnAllIssues; @@ -681,6 +747,11 @@ final readonly class Configuration return $this->failOnPhpunitDeprecation; } + public function failOnPhpunitNotice(): bool + { + return $this->failOnPhpunitNotice; + } + public function failOnPhpunitWarning(): bool { return $this->failOnPhpunitWarning; @@ -726,6 +797,11 @@ final readonly class Configuration return $this->doNotFailOnPhpunitDeprecation; } + public function doNotFailOnPhpunitNotice(): bool + { + return $this->doNotFailOnPhpunitNotice; + } + public function doNotFailOnPhpunitWarning(): bool { return $this->doNotFailOnPhpunitWarning; @@ -961,6 +1037,11 @@ final readonly class Configuration return $this->displayDetailsOnPhpunitDeprecations; } + public function displayDetailsOnPhpunitNotices(): bool + { + return $this->displayDetailsOnPhpunitNotices; + } + public function displayDetailsOnTestsThatTriggerErrors(): bool { return $this->displayDetailsOnTestsThatTriggerErrors; @@ -1056,6 +1137,31 @@ final readonly class Configuration return $this->logfileJunit; } + /** + * @phpstan-assert-if-true !null $this->logfileOtr + */ + public function hasLogfileOtr(): bool + { + return $this->logfileOtr !== null; + } + + /** + * @throws LoggingNotConfiguredException + */ + public function logfileOtr(): string + { + if (!$this->hasLogfileOtr()) { + throw new LoggingNotConfiguredException; + } + + return $this->logfileOtr; + } + + public function includeGitInformationInOtrLogfile(): bool + { + return $this->includeGitInformationInOtrLogfile; + } + /** * @phpstan-assert-if-true !null $this->logfileTestdoxHtml */ @@ -1156,7 +1262,7 @@ final readonly class Configuration */ public function hasTestsCovering(): bool { - return !empty($this->testsCovering); + return $this->testsCovering !== null; } /** @@ -1178,7 +1284,7 @@ final readonly class Configuration */ public function hasTestsUsing(): bool { - return !empty($this->testsUsing); + return $this->testsUsing !== null; } /** @@ -1200,7 +1306,7 @@ final readonly class Configuration */ public function hasTestsRequiringPhpExtension(): bool { - return !empty($this->testsRequiringPhpExtension); + return $this->testsRequiringPhpExtension !== null; } /** @@ -1262,7 +1368,7 @@ final readonly class Configuration */ public function hasGroups(): bool { - return !empty($this->groups); + return $this->groups !== []; } /** @@ -1284,7 +1390,7 @@ final readonly class Configuration */ public function hasExcludeGroups(): bool { - return !empty($this->excludeGroups); + return $this->excludeGroups !== []; } /** @@ -1316,16 +1422,46 @@ final readonly class Configuration return $this->testSuite; } + /** + * @deprecated Use includeTestSuites() instead + */ public function includeTestSuite(): string { return $this->includeTestSuite; } + /** + * @return list + */ + public function includeTestSuites(): array + { + if ($this->includeTestSuite === '') { + return []; + } + + return explode(',', $this->includeTestSuite); + } + + /** + * @deprecated Use excludeTestSuites() instead + */ public function excludeTestSuite(): string { return $this->excludeTestSuite; } + /** + * @return list + */ + public function excludeTestSuites(): array + { + if ($this->excludeTestSuite === '') { + return []; + } + + return explode(',', $this->excludeTestSuite); + } + /** * @phpstan-assert-if-true !null $this->defaultTestSuite */ @@ -1346,6 +1482,11 @@ final readonly class Configuration return $this->defaultTestSuite; } + public function ignoreTestSelectionInXmlConfiguration(): bool + { + return $this->ignoreTestSelectionInXmlConfiguration; + } + /** * @return non-empty-list */ @@ -1379,6 +1520,8 @@ final readonly class Configuration /** * @throws NoBaselineException + * + * @return non-empty-string */ public function generateBaseline(): string { @@ -1394,6 +1537,11 @@ final readonly class Configuration return $this->debug; } + public function withTelemetry(): bool + { + return $this->withTelemetry; + } + /** * @return non-negative-int */ diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Exception/BootstrapScriptDoesNotExistException.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Exception/BootstrapScriptDoesNotExistException.php new file mode 100644 index 000000000..6146df2b5 --- /dev/null +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Exception/BootstrapScriptDoesNotExistException.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\TextUI\Configuration; + +use function sprintf; +use RuntimeException; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final class BootstrapScriptDoesNotExistException extends RuntimeException implements Exception +{ + public function __construct(string $filename) + { + parent::__construct( + sprintf( + 'Cannot open bootstrap script "%s"', + $filename, + ), + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Metadata/Exception/ReflectionException.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Exception/BootstrapScriptException.php similarity index 79% rename from vendor/phpunit/phpunit/src/Metadata/Exception/ReflectionException.php rename to vendor/phpunit/phpunit/src/TextUI/Configuration/Exception/BootstrapScriptException.php index 04e0d2299..123b9aeea 100644 --- a/vendor/phpunit/phpunit/src/Metadata/Exception/ReflectionException.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Exception/BootstrapScriptException.php @@ -7,9 +7,8 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace PHPUnit\Metadata; +namespace PHPUnit\TextUI\Configuration; -use PHPUnit\Exception; use RuntimeException; /** @@ -17,6 +16,6 @@ use RuntimeException; * * @internal This class is not covered by the backward compatibility promise for PHPUnit */ -final class ReflectionException extends RuntimeException implements Exception +final class BootstrapScriptException extends RuntimeException implements Exception { } diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Merger.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Merger.php index 9e8ed91a3..a0c4fd0b4 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Merger.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Merger.php @@ -12,11 +12,14 @@ namespace PHPUnit\TextUI\Configuration; use const DIRECTORY_SEPARATOR; use const PATH_SEPARATOR; use function array_diff; +use function array_key_exists; +use function array_values; use function assert; use function dirname; use function explode; use function is_int; use function realpath; +use function sprintf; use function time; use PHPUnit\Event\Facade as EventFacade; use PHPUnit\Runner\TestSuiteSorter; @@ -119,6 +122,12 @@ final readonly class Merger $failOnPhpunitDeprecation = $xmlConfiguration->phpunit()->failOnPhpunitDeprecation(); } + if ($cliConfiguration->hasFailOnPhpunitNotice()) { + $failOnPhpunitNotice = $cliConfiguration->failOnPhpunitNotice(); + } else { + $failOnPhpunitNotice = $xmlConfiguration->phpunit()->failOnPhpunitNotice(); + } + if ($cliConfiguration->hasFailOnPhpunitWarning()) { $failOnPhpunitWarning = $cliConfiguration->failOnPhpunitWarning(); } else { @@ -127,8 +136,10 @@ final readonly class Merger if ($cliConfiguration->hasFailOnEmptyTestSuite()) { $failOnEmptyTestSuite = $cliConfiguration->failOnEmptyTestSuite(); - } else { + } elseif ($xmlConfiguration->phpunit()->hasFailOnEmptyTestSuite()) { $failOnEmptyTestSuite = $xmlConfiguration->phpunit()->failOnEmptyTestSuite(); + } else { + $failOnEmptyTestSuite = $this->hasExplicitTestSelection($cliConfiguration); } if ($cliConfiguration->hasFailOnIncomplete()) { @@ -173,6 +184,12 @@ final readonly class Merger $doNotFailOnPhpunitDeprecation = $cliConfiguration->doNotFailOnPhpunitDeprecation(); } + $doNotFailOnPhpunitNotice = false; + + if ($cliConfiguration->hasDoNotFailOnPhpunitNotice()) { + $doNotFailOnPhpunitNotice = $cliConfiguration->doNotFailOnPhpunitNotice(); + } + $doNotFailOnPhpunitWarning = false; if ($cliConfiguration->hasDoNotFailOnPhpunitWarning()) { @@ -317,7 +334,16 @@ final readonly class Merger if ($cliConfiguration->hasExtensions()) { foreach ($cliConfiguration->extensions() as $extension) { - $extensionBootstrappers[] = [ + if (array_key_exists($extension, $extensionBootstrappers)) { + EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( + sprintf( + 'Extension "%s" is configured more than once on the command line', + $extension, + ), + ); + } + + $extensionBootstrappers[$extension] = [ 'className' => $extension, 'parameters' => [], ]; @@ -325,7 +351,16 @@ final readonly class Merger } foreach ($xmlConfiguration->extensions() as $extension) { - $extensionBootstrappers[] = [ + if (array_key_exists($extension->className(), $extensionBootstrappers)) { + EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( + sprintf( + 'Extension "%s" is configured more than once', + $extension->className(), + ), + ); + } + + $extensionBootstrappers[$extension->className()] = [ 'className' => $extension->className(), 'parameters' => $extension->parameters(), ]; @@ -353,11 +388,13 @@ final readonly class Merger $coverageHtmlColorWarning = $defaultColors->warning(); $coverageHtmlColorDanger = $defaultColors->danger(); $coverageHtmlCustomCssFile = null; + $coverageOpenClover = null; $coveragePhp = null; $coverageText = null; $coverageTextShowUncoveredFiles = false; $coverageTextShowOnlySummary = false; $coverageXml = null; + $coverageXmlIncludeSource = true; $coverageFromXmlConfiguration = true; if ($cliConfiguration->hasNoCoverage() && $cliConfiguration->noCoverage()) { @@ -412,6 +449,12 @@ final readonly class Merger $coverageHtml = $xmlConfiguration->codeCoverage()->html()->target()->path(); } + if ($cliConfiguration->hasCoverageOpenClover()) { + $coverageOpenClover = $cliConfiguration->coverageOpenClover(); + } elseif ($coverageFromXmlConfiguration && $xmlConfiguration->codeCoverage()->hasOpenClover()) { + $coverageOpenClover = $xmlConfiguration->codeCoverage()->openClover()->target()->path(); + } + if ($cliConfiguration->hasCoveragePhp()) { $coveragePhp = $cliConfiguration->coveragePhp(); } elseif ($coverageFromXmlConfiguration && $xmlConfiguration->codeCoverage()->hasPhp()) { @@ -443,6 +486,12 @@ final readonly class Merger $coverageXml = $xmlConfiguration->codeCoverage()->xml()->target()->path(); } + if ($cliConfiguration->hasExcludeSourceFromXmlCoverage()) { + $coverageXmlIncludeSource = !$cliConfiguration->excludeSourceFromXmlCoverage(); + } elseif ($coverageFromXmlConfiguration && $xmlConfiguration->codeCoverage()->hasXml()) { + $coverageXmlIncludeSource = $xmlConfiguration->codeCoverage()->xml()->includeSource(); + } + if ($cliConfiguration->hasBackupGlobals()) { $backupGlobals = $cliConfiguration->backupGlobals(); } else { @@ -537,6 +586,12 @@ final readonly class Merger $displayDetailsOnPhpunitDeprecations = $xmlConfiguration->phpunit()->displayDetailsOnPhpunitDeprecations(); } + if ($cliConfiguration->hasDisplayDetailsOnPhpunitNotices()) { + $displayDetailsOnPhpunitNotices = $cliConfiguration->displayDetailsOnPhpunitNotices(); + } else { + $displayDetailsOnPhpunitNotices = $xmlConfiguration->phpunit()->displayDetailsOnPhpunitNotices(); + } + if ($cliConfiguration->hasDisplayDetailsOnTestsThatTriggerErrors()) { $displayDetailsOnTestsThatTriggerErrors = $cliConfiguration->displayDetailsOnTestsThatTriggerErrors(); } else { @@ -600,6 +655,7 @@ final readonly class Merger $logfileTeamcity = null; $logfileJunit = null; + $logfileOtr = null; $logfileTestdoxHtml = null; $logfileTestdoxText = null; $loggingFromXmlConfiguration = true; @@ -620,6 +676,20 @@ final readonly class Merger $logfileJunit = $xmlConfiguration->logging()->junit()->target()->path(); } + if ($cliConfiguration->hasOtrLogfile()) { + $logfileOtr = $cliConfiguration->otrLogfile(); + } elseif ($loggingFromXmlConfiguration && $xmlConfiguration->logging()->hasOtr()) { + $logfileOtr = $xmlConfiguration->logging()->otr()->target()->path(); + } + + $includeGitInformationInOtrLogfile = false; + + if ($cliConfiguration->hasIncludeGitInformationInOtrLogfile()) { + $includeGitInformationInOtrLogfile = $cliConfiguration->includeGitInformationInOtrLogfile(); + } elseif ($loggingFromXmlConfiguration && $xmlConfiguration->logging()->hasOtr()) { + $includeGitInformationInOtrLogfile = $xmlConfiguration->logging()->otr()->includeGitInformation(); + } + if ($cliConfiguration->hasTestdoxHtmlFile()) { $logfileTestdoxHtml = $cliConfiguration->testdoxHtmlFile(); } elseif ($loggingFromXmlConfiguration && $xmlConfiguration->logging()->hasTestDoxHtml()) { @@ -710,15 +780,25 @@ final readonly class Merger $excludeFilter = $cliConfiguration->excludeFilter(); } + $ignoreTestSelectionInXmlConfiguration = false; + + if ($cliConfiguration->hasAll()) { + $ignoreTestSelectionInXmlConfiguration = true; + } + + $groups = []; + if ($cliConfiguration->hasGroups()) { $groups = $cliConfiguration->groups(); - } else { + } elseif (!$ignoreTestSelectionInXmlConfiguration) { $groups = $xmlConfiguration->groups()->include()->asArrayOfStrings(); } + $excludeGroups = []; + if ($cliConfiguration->hasExcludeGroups()) { $excludeGroups = $cliConfiguration->excludeGroups(); - } else { + } elseif (!$ignoreTestSelectionInXmlConfiguration) { $excludeGroups = $xmlConfiguration->groups()->exclude()->asArrayOfStrings(); } @@ -833,6 +913,10 @@ final readonly class Merger $displayDetailsOnPhpunitDeprecations = true; } + if ($failOnPhpunitNotice && !$doNotFailOnPhpunitNotice) { + $displayDetailsOnPhpunitNotices = true; + } + if ($failOnNotice && !$doNotFailOnNotice) { $displayDetailsOnTestsThatTriggerNotices = true; } @@ -861,6 +945,7 @@ final readonly class Merger $cliConfiguration->arguments(), $configurationFile, $bootstrap, + $xmlConfiguration->phpunit()->bootstrapForTestSuite(), $cacheResult, $cacheDirectory, $coverageCacheDirectory, @@ -871,7 +956,6 @@ final readonly class Merger $sourceIncludeFiles, $sourceExcludeDirectories, $sourceExcludeFiles, - $xmlConfiguration->source()->restrictDeprecations(), $xmlConfiguration->source()->restrictNotices(), $xmlConfiguration->source()->restrictWarnings(), $xmlConfiguration->source()->ignoreSuppressionOfDeprecations(), @@ -901,17 +985,20 @@ final readonly class Merger $coverageHtmlColorWarning, $coverageHtmlColorDanger, $coverageHtmlCustomCssFile, + $coverageOpenClover, $coveragePhp, $coverageText, $coverageTextShowUncoveredFiles, $coverageTextShowOnlySummary, $coverageXml, + $coverageXmlIncludeSource, $pathCoverage, $xmlConfiguration->codeCoverage()->ignoreDeprecatedCodeUnits(), $disableCodeCoverageIgnore, $failOnAllIssues, $failOnDeprecation, $failOnPhpunitDeprecation, + $failOnPhpunitNotice, $failOnPhpunitWarning, $failOnEmptyTestSuite, $failOnIncomplete, @@ -921,6 +1008,7 @@ final readonly class Merger $failOnWarning, $doNotFailOnDeprecation, $doNotFailOnPhpunitDeprecation, + $doNotFailOnPhpunitNotice, $doNotFailOnPhpunitWarning, $doNotFailOnEmptyTestSuite, $doNotFailOnIncomplete, @@ -942,7 +1030,7 @@ final readonly class Merger $columns, $noExtensions, $pharExtensionDirectory, - $extensionBootstrappers, + array_values($extensionBootstrappers), $backupGlobals, $backupStaticProperties, $beStrictAboutChangesToGlobalState, @@ -961,6 +1049,7 @@ final readonly class Merger $displayDetailsOnSkippedTests, $displayDetailsOnTestsThatTriggerDeprecations, $displayDetailsOnPhpunitDeprecations, + $displayDetailsOnPhpunitNotices, $displayDetailsOnTestsThatTriggerErrors, $displayDetailsOnTestsThatTriggerNotices, $displayDetailsOnTestsThatTriggerWarnings, @@ -974,6 +1063,8 @@ final readonly class Merger $resolveDependencies, $logfileTeamcity, $logfileJunit, + $logfileOtr, + $includeGitInformationInOtrLogfile, $logfileTestdoxHtml, $logfileTestdoxText, $logEventsText, @@ -994,6 +1085,7 @@ final readonly class Merger $includeTestSuite, $excludeTestSuite, $xmlConfiguration->phpunit()->hasDefaultTestSuite() ? $xmlConfiguration->phpunit()->defaultTestSuite() : null, + $ignoreTestSelectionInXmlConfiguration, $testSuffixes, new Php( DirectoryCollection::fromArray($includePaths), @@ -1012,7 +1104,37 @@ final readonly class Merger $xmlConfiguration->phpunit()->numberOfTestsBeforeGarbageCollection(), $generateBaseline, $cliConfiguration->debug(), + $cliConfiguration->withTelemetry(), $xmlConfiguration->phpunit()->shortenArraysForExportThreshold(), ); } + + private function hasExplicitTestSelection(CliConfiguration $cliConfiguration): bool + { + if ($cliConfiguration->hasFilter()) { + return true; + } + + if ($cliConfiguration->hasExcludeFilter()) { + return true; + } + + if ($cliConfiguration->hasGroups()) { + return true; + } + + if ($cliConfiguration->hasExcludeGroups()) { + return true; + } + + if ($cliConfiguration->hasTestSuite()) { + return true; + } + + if ($cliConfiguration->hasExcludedTestSuite()) { + return true; + } + + return false; + } } diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/PhpHandler.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/PhpHandler.php index 3aa13160e..95adb5ae1 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/PhpHandler.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/PhpHandler.php @@ -18,6 +18,10 @@ use function implode; use function ini_get; use function ini_set; use function putenv; +use function restore_error_handler; +use function set_error_handler; +use function sprintf; +use PHPUnit\Event\Facade as EventFacade; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit @@ -68,7 +72,31 @@ final readonly class PhpHandler $value = (string) constant($value); } - ini_set($iniSetting->name(), $value); + $error = ''; + + set_error_handler( + static function (int $errno, string $errstr, string $errfile, int $errline) use (&$error): true + { + $error = $errstr; + + return true; + }, + ); + + $success = ini_set($iniSetting->name(), $value); + + restore_error_handler(); + + if ($success === false) { + EventFacade::emitter()->testRunnerTriggeredPhpunitWarning( + sprintf( + 'Failed to set "%s=%s": %s', + $iniSetting->name(), + $value, + $error, + ), + ); + } } } diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/TestSuiteBuilder.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/TestSuiteBuilder.php index 56ad1d880..a474b02f5 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/TestSuiteBuilder.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/TestSuiteBuilder.php @@ -70,13 +70,13 @@ final readonly class TestSuiteBuilder if (!isset($testSuite)) { $xmlConfigurationFile = $configuration->hasConfigurationFile() ? $configuration->configurationFile() : 'Root Test Suite'; - assert(!empty($xmlConfigurationFile)); + assert($xmlConfigurationFile !== ''); $testSuite = (new TestSuiteMapper)->map( $xmlConfigurationFile, $configuration->testSuite(), - $configuration->includeTestSuite(), - $configuration->excludeTestSuite(), + $configuration->ignoreTestSelectionInXmlConfiguration() ? [] : $configuration->includeTestSuites(), + $configuration->ignoreTestSelectionInXmlConfiguration() ? [] : $configuration->excludeTestSuites(), ); } @@ -94,7 +94,10 @@ final readonly class TestSuiteBuilder private function testSuiteFromPath(string $path, array $suffixes, ?TestSuite $suite = null): TestSuite { if (str_ends_with($path, '.phpt') && is_file($path)) { - $suite = $suite ?: TestSuite::empty($path); + if ($suite === null) { + $suite = TestSuite::empty($path); + } + $suite->addTestFile($path); return $suite; @@ -103,7 +106,10 @@ final readonly class TestSuiteBuilder if (is_dir($path)) { $files = (new FileIteratorFacade)->getFilesAsArray($path, $suffixes); - $suite = $suite ?: TestSuite::empty('CLI Arguments'); + if ($suite === null) { + $suite = TestSuite::empty('CLI Arguments'); + } + $suite->addTestFiles($files); return $suite; @@ -117,7 +123,7 @@ final readonly class TestSuiteBuilder exit(1); } - if (!$suite) { + if ($suite === null) { return TestSuite::fromClassReflector($testClass); } diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Value/FileCollection.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Value/FileCollection.php index 659f95128..b80897f04 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Value/FileCollection.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Value/FileCollection.php @@ -55,7 +55,7 @@ final readonly class FileCollection implements Countable, IteratorAggregate public function notEmpty(): bool { - return !empty($this->files); + return $this->files !== []; } public function getIterator(): FileCollectionIterator diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Value/FilterDirectoryCollection.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Value/FilterDirectoryCollection.php index 50d022d50..df534a3dc 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Value/FilterDirectoryCollection.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Value/FilterDirectoryCollection.php @@ -55,7 +55,7 @@ final readonly class FilterDirectoryCollection implements Countable, IteratorAgg public function notEmpty(): bool { - return !empty($this->directories); + return $this->directories !== []; } public function getIterator(): FilterDirectoryCollectionIterator diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Value/GroupCollection.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Value/GroupCollection.php index 88a3ff4ad..57ff48121 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Value/GroupCollection.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Value/GroupCollection.php @@ -62,7 +62,7 @@ final readonly class GroupCollection implements IteratorAggregate public function isEmpty(): bool { - return empty($this->groups); + return $this->groups === []; } public function getIterator(): GroupCollectionIterator diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Value/Source.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Value/Source.php index 921385832..3669eec2b 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Value/Source.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Value/Source.php @@ -25,7 +25,6 @@ final readonly class Source private FileCollection $includeFiles; private FilterDirectoryCollection $excludeDirectories; private FileCollection $excludeFiles; - private bool $restrictDeprecations; private bool $restrictNotices; private bool $restrictWarnings; private bool $ignoreSuppressionOfDeprecations; @@ -49,7 +48,7 @@ final readonly class Source * @param ?non-empty-string $baseline * @param array{functions: list, methods: list} $deprecationTriggers */ - public function __construct(?string $baseline, bool $ignoreBaseline, FilterDirectoryCollection $includeDirectories, FileCollection $includeFiles, FilterDirectoryCollection $excludeDirectories, FileCollection $excludeFiles, bool $restrictDeprecations, bool $restrictNotices, bool $restrictWarnings, bool $ignoreSuppressionOfDeprecations, bool $ignoreSuppressionOfPhpDeprecations, bool $ignoreSuppressionOfErrors, bool $ignoreSuppressionOfNotices, bool $ignoreSuppressionOfPhpNotices, bool $ignoreSuppressionOfWarnings, bool $ignoreSuppressionOfPhpWarnings, array $deprecationTriggers, bool $ignoreSelfDeprecations, bool $ignoreDirectDeprecations, bool $ignoreIndirectDeprecations, bool $identifyIssueTrigger) + public function __construct(?string $baseline, bool $ignoreBaseline, FilterDirectoryCollection $includeDirectories, FileCollection $includeFiles, FilterDirectoryCollection $excludeDirectories, FileCollection $excludeFiles, bool $restrictNotices, bool $restrictWarnings, bool $ignoreSuppressionOfDeprecations, bool $ignoreSuppressionOfPhpDeprecations, bool $ignoreSuppressionOfErrors, bool $ignoreSuppressionOfNotices, bool $ignoreSuppressionOfPhpNotices, bool $ignoreSuppressionOfWarnings, bool $ignoreSuppressionOfPhpWarnings, array $deprecationTriggers, bool $ignoreSelfDeprecations, bool $ignoreDirectDeprecations, bool $ignoreIndirectDeprecations, bool $identifyIssueTrigger) { $this->baseline = $baseline; $this->ignoreBaseline = $ignoreBaseline; @@ -57,7 +56,6 @@ final readonly class Source $this->includeFiles = $includeFiles; $this->excludeDirectories = $excludeDirectories; $this->excludeFiles = $excludeFiles; - $this->restrictDeprecations = $restrictDeprecations; $this->restrictNotices = $restrictNotices; $this->restrictWarnings = $restrictWarnings; $this->ignoreSuppressionOfDeprecations = $ignoreSuppressionOfDeprecations; @@ -129,11 +127,6 @@ final readonly class Source return $this->includeDirectories->notEmpty() || $this->includeFiles->notEmpty(); } - public function restrictDeprecations(): bool - { - return $this->restrictDeprecations; - } - public function restrictNotices(): bool { return $this->restrictNotices; diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/CodeCoverage.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/CodeCoverage.php index c3975a8be..d66f58f1c 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/CodeCoverage.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/CodeCoverage.php @@ -13,6 +13,7 @@ use PHPUnit\TextUI\XmlConfiguration\CodeCoverage\Report\Clover; use PHPUnit\TextUI\XmlConfiguration\CodeCoverage\Report\Cobertura; use PHPUnit\TextUI\XmlConfiguration\CodeCoverage\Report\Crap4j; use PHPUnit\TextUI\XmlConfiguration\CodeCoverage\Report\Html; +use PHPUnit\TextUI\XmlConfiguration\CodeCoverage\Report\OpenClover; use PHPUnit\TextUI\XmlConfiguration\CodeCoverage\Report\Php; use PHPUnit\TextUI\XmlConfiguration\CodeCoverage\Report\Text; use PHPUnit\TextUI\XmlConfiguration\CodeCoverage\Report\Xml; @@ -35,11 +36,12 @@ final readonly class CodeCoverage private ?Cobertura $cobertura; private ?Crap4j $crap4j; private ?Html $html; + private ?OpenClover $openClover; private ?Php $php; private ?Text $text; private ?Xml $xml; - public function __construct(bool $pathCoverage, bool $includeUncoveredFiles, bool $ignoreDeprecatedCodeUnits, bool $disableCodeCoverageIgnore, ?Clover $clover, ?Cobertura $cobertura, ?Crap4j $crap4j, ?Html $html, ?Php $php, ?Text $text, ?Xml $xml) + public function __construct(bool $pathCoverage, bool $includeUncoveredFiles, bool $ignoreDeprecatedCodeUnits, bool $disableCodeCoverageIgnore, ?Clover $clover, ?Cobertura $cobertura, ?Crap4j $crap4j, ?Html $html, ?OpenClover $openClover, ?Php $php, ?Text $text, ?Xml $xml) { $this->pathCoverage = $pathCoverage; $this->includeUncoveredFiles = $includeUncoveredFiles; @@ -49,6 +51,7 @@ final readonly class CodeCoverage $this->cobertura = $cobertura; $this->crap4j = $crap4j; $this->html = $html; + $this->openClover = $openClover; $this->php = $php; $this->text = $text; $this->xml = $xml; @@ -162,6 +165,28 @@ final readonly class CodeCoverage return $this->html; } + /** + * @phpstan-assert-if-true !null $this->openClover + */ + public function hasOpenClover(): bool + { + return $this->openClover !== null; + } + + /** + * @throws Exception + */ + public function openClover(): OpenClover + { + if (!$this->hasOpenClover()) { + throw new Exception( + 'Code Coverage report "OpenClover XML" has not been configured', + ); + } + + return $this->openClover; + } + /** * @phpstan-assert-if-true !null $this->php */ diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/CannotCloneTestDoubleForReadonlyClassException.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/OpenClover.php similarity index 58% rename from vendor/phpunit/phpunit/src/Framework/MockObject/Exception/CannotCloneTestDoubleForReadonlyClassException.php rename to vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/OpenClover.php index ed1cb823d..e20a24d08 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/CannotCloneTestDoubleForReadonlyClassException.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/OpenClover.php @@ -7,21 +7,28 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace PHPUnit\Framework\MockObject; +namespace PHPUnit\TextUI\XmlConfiguration\CodeCoverage\Report; + +use PHPUnit\TextUI\Configuration\File; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit * * @internal This class is not covered by the backward compatibility promise for PHPUnit * - * @codeCoverageIgnore + * @immutable */ -final class CannotCloneTestDoubleForReadonlyClassException extends \PHPUnit\Framework\Exception implements Exception +final readonly class OpenClover { - public function __construct() + private File $target; + + public function __construct(File $target) { - parent::__construct( - 'Cloning test doubles for readonly classes is not supported on PHP 8.2', - ); + $this->target = $target; + } + + public function target(): File + { + return $this->target; } } diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/Xml.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/Xml.php index 62f99a061..c67ef1eea 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/Xml.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/CodeCoverage/Report/Xml.php @@ -21,14 +21,21 @@ use PHPUnit\TextUI\Configuration\Directory; final readonly class Xml { private Directory $target; + private bool $includeSource; - public function __construct(Directory $target) + public function __construct(Directory $target, bool $includeSource) { - $this->target = $target; + $this->target = $target; + $this->includeSource = $includeSource; } public function target(): Directory { return $this->target; } + + public function includeSource(): bool + { + return $this->includeSource; + } } diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/DefaultConfiguration.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/DefaultConfiguration.php index 140d64b53..a82853ba3 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/DefaultConfiguration.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/DefaultConfiguration.php @@ -53,7 +53,6 @@ final readonly class DefaultConfiguration extends Configuration false, false, false, - false, [ 'functions' => [], 'methods' => [], @@ -75,6 +74,7 @@ final readonly class DefaultConfiguration extends Configuration null, null, null, + null, ), new Groups( GroupCollection::fromArray([]), @@ -85,6 +85,7 @@ final readonly class DefaultConfiguration extends Configuration null, null, null, + null, ), new Php( DirectoryCollection::fromArray([]), @@ -115,7 +116,10 @@ final readonly class DefaultConfiguration extends Configuration false, false, false, + false, null, + [], + false, false, false, false, @@ -136,6 +140,7 @@ final readonly class DefaultConfiguration extends Configuration false, false, false, + false, null, false, false, @@ -156,7 +161,7 @@ final readonly class DefaultConfiguration extends Configuration false, false, 100, - 0, + 10, ), TestSuiteCollection::fromArray([]), ); diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Generator.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Generator.php index 4e4a71fa8..4fc4ca2e6 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Generator.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Generator.php @@ -21,14 +21,13 @@ final readonly class Generator /** * @var string */ - private const TEMPLATE = <<<'EOT' + private const string TEMPLATE = <<<'EOT' validate($document, $xsdFilename); + if ($validationResult->hasValidationErrors()) { + $this->ensureConfigurationValidatesAgainstAtLeastOneSchema( + $document, + $configurationFileRealpath, + $validationResult, + ); + } + try { return new LoadedFromFileConfiguration( $configurationFileRealpath, @@ -128,7 +138,7 @@ final readonly class Loader $this->groups($xpath), $this->logging($configurationFileRealpath, $xpath), $this->php($configurationFileRealpath, $xpath), - $this->phpunit($configurationFileRealpath, $document), + $this->phpunit($configurationFileRealpath, $document, $xpath), $this->testSuite($configurationFileRealpath, $xpath), ); } catch (Throwable $t) { @@ -150,7 +160,7 @@ final readonly class Loader $junit = null; $element = $this->element($xpath, 'logging/junit'); - if ($element) { + if ($element !== null) { $junit = new Junit( new File( $this->toAbsolutePath( @@ -161,10 +171,25 @@ final readonly class Loader ); } + $otr = null; + $element = $this->element($xpath, 'logging/otr'); + + if ($element !== null) { + $otr = new Otr( + new File( + $this->toAbsolutePath( + $filename, + (string) $this->parseStringAttribute($element, 'outputFile'), + ), + ), + $this->parseBooleanAttribute($element, 'includeGitInformation', false), + ); + } + $teamCity = null; $element = $this->element($xpath, 'logging/teamcity'); - if ($element) { + if ($element !== null) { $teamCity = new TeamCity( new File( $this->toAbsolutePath( @@ -178,7 +203,7 @@ final readonly class Loader $testDoxHtml = null; $element = $this->element($xpath, 'logging/testdoxHtml'); - if ($element) { + if ($element !== null) { $testDoxHtml = new TestDoxHtml( new File( $this->toAbsolutePath( @@ -192,7 +217,7 @@ final readonly class Loader $testDoxText = null; $element = $this->element($xpath, 'logging/testdoxText'); - if ($element) { + if ($element !== null) { $testDoxText = new TestDoxText( new File( $this->toAbsolutePath( @@ -205,6 +230,7 @@ final readonly class Loader return new Logging( $junit, + $otr, $teamCity, $testDoxHtml, $testDoxText, @@ -267,7 +293,7 @@ final readonly class Loader // - C:/windows // - c:/windows if (defined('PHP_WINDOWS_VERSION_BUILD') && - !empty($path) && + $path !== '' && ($path[0] === '\\' || (strlen($path) >= 3 && preg_match('#^[A-Z]:[/\\\]#i', substr($path, 0, 3))))) { return $path; } @@ -282,7 +308,6 @@ final readonly class Loader private function source(string $filename, DOMXPath $xpath): Source { $baseline = null; - $restrictDeprecations = false; $restrictNotices = false; $restrictWarnings = false; $ignoreSuppressionOfDeprecations = false; @@ -299,14 +324,13 @@ final readonly class Loader $element = $this->element($xpath, 'source'); - if ($element) { + if ($element !== null) { $baseline = $this->parseStringAttribute($element, 'baseline'); if ($baseline !== null) { $baseline = $this->toAbsolutePath($filename, $baseline); } - $restrictDeprecations = $this->parseBooleanAttribute($element, 'restrictDeprecations', false); $restrictNotices = $this->parseBooleanAttribute($element, 'restrictNotices', false); $restrictWarnings = $this->parseBooleanAttribute($element, 'restrictWarnings', false); $ignoreSuppressionOfDeprecations = $this->parseBooleanAttribute($element, 'ignoreSuppressionOfDeprecations', false); @@ -354,7 +378,6 @@ final readonly class Loader $this->readFilterFiles($filename, $xpath, 'source/include/file'), $this->readFilterDirectories($filename, $xpath, 'source/exclude/directory'), $this->readFilterFiles($filename, $xpath, 'source/exclude/file'), - $restrictDeprecations, $restrictNotices, $restrictWarnings, $ignoreSuppressionOfDeprecations, @@ -381,7 +404,7 @@ final readonly class Loader $element = $this->element($xpath, 'coverage'); - if ($element) { + if ($element !== null) { $pathCoverage = $this->parseBooleanAttribute( $element, 'pathCoverage', @@ -410,7 +433,7 @@ final readonly class Loader $clover = null; $element = $this->element($xpath, 'coverage/report/clover'); - if ($element) { + if ($element !== null) { $clover = new Clover( new File( $this->toAbsolutePath( @@ -424,7 +447,7 @@ final readonly class Loader $cobertura = null; $element = $this->element($xpath, 'coverage/report/cobertura'); - if ($element) { + if ($element !== null) { $cobertura = new Cobertura( new File( $this->toAbsolutePath( @@ -438,7 +461,7 @@ final readonly class Loader $crap4j = null; $element = $this->element($xpath, 'coverage/report/crap4j'); - if ($element) { + if ($element !== null) { $crap4j = new Crap4j( new File( $this->toAbsolutePath( @@ -453,7 +476,7 @@ final readonly class Loader $html = null; $element = $this->element($xpath, 'coverage/report/html'); - if ($element) { + if ($element !== null) { $defaultColors = Colors::default(); $defaultThresholds = Thresholds::default(); @@ -475,10 +498,24 @@ final readonly class Loader ); } + $openClover = null; + $element = $this->element($xpath, 'coverage/report/openclover'); + + if ($element !== null) { + $openClover = new OpenClover( + new File( + $this->toAbsolutePath( + $filename, + (string) $this->parseStringAttribute($element, 'outputFile'), + ), + ), + ); + } + $php = null; $element = $this->element($xpath, 'coverage/report/php'); - if ($element) { + if ($element !== null) { $php = new CodeCoveragePhp( new File( $this->toAbsolutePath( @@ -492,7 +529,7 @@ final readonly class Loader $text = null; $element = $this->element($xpath, 'coverage/report/text'); - if ($element) { + if ($element !== null) { $text = new CodeCoverageText( new File( $this->toAbsolutePath( @@ -508,7 +545,7 @@ final readonly class Loader $xml = null; $element = $this->element($xpath, 'coverage/report/xml'); - if ($element) { + if ($element !== null) { $xml = new CodeCoverageXml( new Directory( $this->toAbsolutePath( @@ -516,6 +553,7 @@ final readonly class Loader (string) $this->parseStringAttribute($element, 'outputDirectory'), ), ), + $this->parseBooleanAttribute($element, 'includeSource', true), ); } @@ -528,6 +566,7 @@ final readonly class Loader $cobertura, $crap4j, $html, + $openClover, $php, $text, $xml, @@ -573,7 +612,7 @@ final readonly class Loader $directoryPath = $directoryNode->textContent; - if (!$directoryPath) { + if ($directoryPath === '') { continue; } @@ -600,7 +639,7 @@ final readonly class Loader $filePath = $fileNode->textContent; - if ($filePath) { + if ($filePath !== '') { $files[] = new File($this->toAbsolutePath($filename, $filePath)); } } @@ -703,7 +742,7 @@ final readonly class Loader $path = $includePath->textContent; - if ($path) { + if ($path !== '') { $includePaths[] = new Directory($this->toAbsolutePath($filename, $path)); } } @@ -795,7 +834,7 @@ final readonly class Loader ); } - private function phpunit(string $filename, DOMDocument $document): PHPUnit + private function phpunit(string $filename, DOMDocument $document, DOMXPath $xpath): PHPUnit { $executionOrder = TestSuiteSorter::ORDER_DEFAULT; $defectsFirst = false; @@ -885,7 +924,7 @@ final readonly class Loader $beStrictAboutCoverageMetadata = $this->parseBooleanAttribute($document->documentElement, 'beStrictAboutCoverageMetadata', false); } - $shortenArraysForExportThreshold = $this->parseIntegerAttribute($document->documentElement, 'shortenArraysForExportThreshold', 0); + $shortenArraysForExportThreshold = $this->parseIntegerAttribute($document->documentElement, 'shortenArraysForExportThreshold', 10); if ($shortenArraysForExportThreshold < 0) { $shortenArraysForExportThreshold = 0; @@ -902,18 +941,22 @@ final readonly class Loader $this->parseBooleanAttribute($document->documentElement, 'displayDetailsOnSkippedTests', false), $this->parseBooleanAttribute($document->documentElement, 'displayDetailsOnTestsThatTriggerDeprecations', false), $this->parseBooleanAttribute($document->documentElement, 'displayDetailsOnPhpunitDeprecations', false), + $this->parseBooleanAttribute($document->documentElement, 'displayDetailsOnPhpunitNotices', false), $this->parseBooleanAttribute($document->documentElement, 'displayDetailsOnTestsThatTriggerErrors', false), $this->parseBooleanAttribute($document->documentElement, 'displayDetailsOnTestsThatTriggerNotices', false), $this->parseBooleanAttribute($document->documentElement, 'displayDetailsOnTestsThatTriggerWarnings', false), $this->parseBooleanAttribute($document->documentElement, 'reverseDefectList', false), $requireCoverageMetadata, $bootstrap, + $this->bootstrapForTestSuite($filename, $xpath), $this->parseBooleanAttribute($document->documentElement, 'processIsolation', false), $this->parseBooleanAttribute($document->documentElement, 'failOnAllIssues', false), $this->parseBooleanAttribute($document->documentElement, 'failOnDeprecation', false), $this->parseBooleanAttribute($document->documentElement, 'failOnPhpunitDeprecation', false), + $this->parseBooleanAttribute($document->documentElement, 'failOnPhpunitNotice', false), $this->parseBooleanAttribute($document->documentElement, 'failOnPhpunitWarning', true), $this->parseBooleanAttribute($document->documentElement, 'failOnEmptyTestSuite', false), + $document->documentElement->hasAttribute('failOnEmptyTestSuite'), $this->parseBooleanAttribute($document->documentElement, 'failOnIncomplete', false), $this->parseBooleanAttribute($document->documentElement, 'failOnNotice', false), $this->parseBooleanAttribute($document->documentElement, 'failOnRisky', false), @@ -957,10 +1000,8 @@ final readonly class Loader $colors = Configuration::COLOR_DEFAULT; if ($document->documentElement->hasAttribute('colors')) { - /* only allow boolean for compatibility with previous versions - 'always' only allowed from command line */ if ($this->booleanFromString($document->documentElement->getAttribute('colors'), false)) { - $colors = Configuration::COLOR_AUTO; + $colors = Configuration::COLOR_ALWAYS; } else { $colors = Configuration::COLOR_NEVER; } @@ -984,6 +1025,30 @@ final readonly class Loader return $columns; } + /** + * @return array + */ + private function bootstrapForTestSuite(string $filename, DOMXPath $xpath): array + { + $bootstrapForTestSuite = []; + + foreach ($this->parseTestSuiteElements($xpath) as $element) { + if (!$element->hasAttribute('bootstrap')) { + continue; + } + + $name = $element->getAttribute('name'); + $bootstrap = $element->getAttribute('bootstrap'); + + assert($name !== ''); + assert($bootstrap !== ''); + + $bootstrapForTestSuite[$name] = $this->toAbsolutePath($filename, $bootstrap); + } + + return $bootstrapForTestSuite; + } + private function testSuite(string $filename, DOMXPath $xpath): TestSuiteCollection { $testSuites = []; @@ -994,7 +1059,7 @@ final readonly class Loader foreach ($element->getElementsByTagName('exclude') as $excludeNode) { $excludeFile = $excludeNode->textContent; - if ($excludeFile) { + if ($excludeFile !== '') { $exclude[] = new File($this->toAbsolutePath($filename, $excludeFile)); } } @@ -1006,7 +1071,7 @@ final readonly class Loader $directory = $directoryNode->textContent; - if (empty($directory)) { + if ($directory === '') { continue; } @@ -1040,7 +1105,7 @@ final readonly class Loader foreach (explode(',', $directoryNode->getAttribute('groups')) as $group) { $group = trim($group); - if (empty($group)) { + if ($group === '') { continue; } @@ -1065,7 +1130,7 @@ final readonly class Loader $file = $fileNode->textContent; - if (empty($file)) { + if ($file === '') { continue; } @@ -1087,7 +1152,7 @@ final readonly class Loader foreach (explode(',', $fileNode->getAttribute('groups')) as $group) { $group = trim($group); - if (empty($group)) { + if ($group === '') { continue; } @@ -1105,7 +1170,7 @@ final readonly class Loader $name = $element->getAttribute('name'); - assert(!empty($name)); + assert($name !== ''); $testSuites[] = new TestSuiteConfiguration( $name, @@ -1168,4 +1233,37 @@ final readonly class Loader return null; } + + /** + * @throws Exception + */ + private function ensureConfigurationValidatesAgainstAtLeastOneSchema(DOMDocument $document, string $configurationFile, ValidationResult $validationResult): void + { + if ($document->documentElement->localName === 'phpunit') { + return; + } + + $schemaFinder = new SchemaFinder; + $validator = new Validator; + + foreach ($schemaFinder->available() as $version) { + try { + $xsdFilename = $schemaFinder->find($version); + } catch (CannotFindSchemaException) { + continue; + } + + if (!$validator->validate($document, $xsdFilename)->hasValidationErrors()) { + return; + } + } + + throw new Exception( + sprintf( + 'XML configuration file %s does not validate against any supported PHPUnit schema:' . PHP_EOL . '%s', + $configurationFile, + $validationResult->asString(), + ), + ); + } } diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/Logging.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/Logging.php index a37dea55c..63f4d89fc 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/Logging.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/Logging.php @@ -23,13 +23,15 @@ use PHPUnit\TextUI\XmlConfiguration\Logging\TestDox\Text as TestDoxText; final readonly class Logging { private ?Junit $junit; + private ?Otr $otr; private ?TeamCity $teamCity; private ?TestDoxHtml $testDoxHtml; private ?TestDoxText $testDoxText; - public function __construct(?Junit $junit, ?TeamCity $teamCity, ?TestDoxHtml $testDoxHtml, ?TestDoxText $testDoxText) + public function __construct(?Junit $junit, ?Otr $otr, ?TeamCity $teamCity, ?TestDoxHtml $testDoxHtml, ?TestDoxText $testDoxText) { $this->junit = $junit; + $this->otr = $otr; $this->teamCity = $teamCity; $this->testDoxHtml = $testDoxHtml; $this->testDoxText = $testDoxText; @@ -52,6 +54,23 @@ final readonly class Logging return $this->junit; } + public function hasOtr(): bool + { + return $this->otr !== null; + } + + /** + * @throws Exception + */ + public function otr(): Otr + { + if ($this->otr === null) { + throw new Exception('Logger "Open Test Reporting XML" is not configured'); + } + + return $this->otr; + } + public function hasTeamCity(): bool { return $this->teamCity !== null; diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/Otr.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/Otr.php new file mode 100644 index 000000000..25cfc9898 --- /dev/null +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Logging/Otr.php @@ -0,0 +1,41 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\TextUI\XmlConfiguration\Logging; + +use PHPUnit\TextUI\Configuration\File; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + * + * @immutable + */ +final readonly class Otr +{ + private File $target; + private bool $includeGitInformation; + + public function __construct(File $target, bool $includeGitInformation) + { + $this->target = $target; + $this->includeGitInformation = $includeGitInformation; + } + + public function target(): File + { + return $this->target; + } + + public function includeGitInformation(): bool + { + return $this->includeGitInformation; + } +} diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/MigrationBuilder.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/MigrationBuilder.php index add84c671..13068d9e1 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/MigrationBuilder.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/MigrationBuilder.php @@ -18,7 +18,10 @@ use function version_compare; */ final readonly class MigrationBuilder { - private const AVAILABLE_MIGRATIONS = [ + /** + * @var non-empty-array> + */ + private const array AVAILABLE_MIGRATIONS = [ '8.5' => [ RemoveLogTypes::class, ], diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrations/MoveAttributesFromFilterWhitelistToCoverage.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrations/MoveAttributesFromFilterWhitelistToCoverage.php index 2fe4d2049..685381698 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrations/MoveAttributesFromFilterWhitelistToCoverage.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrations/MoveAttributesFromFilterWhitelistToCoverage.php @@ -26,7 +26,7 @@ final readonly class MoveAttributesFromFilterWhitelistToCoverage implements Migr { $whitelist = $document->getElementsByTagName('whitelist')->item(0); - if (!$whitelist) { + if ($whitelist === null) { return; } diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrations/UpdateSchemaLocation.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrations/UpdateSchemaLocation.php index 875321801..85b0b568e 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrations/UpdateSchemaLocation.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrations/UpdateSchemaLocation.php @@ -22,8 +22,8 @@ use PHPUnit\Runner\Version; */ final readonly class UpdateSchemaLocation implements Migration { - private const NAMESPACE_URI = 'http://www.w3.org/2001/XMLSchema-instance'; - private const LOCAL_NAME_SCHEMA_LOCATION = 'noNamespaceSchemaLocation'; + private const string NAMESPACE_URI = 'http://www.w3.org/2001/XMLSchema-instance'; + private const string LOCAL_NAME_SCHEMA_LOCATION = 'noNamespaceSchemaLocation'; public function migrate(DOMDocument $document): void { diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrator.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrator.php index 4649dec28..2fe14586d 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrator.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrator.php @@ -10,6 +10,9 @@ namespace PHPUnit\TextUI\XmlConfiguration; use function assert; +use function str_contains; +use DOMDocument; +use DOMElement; use PHPUnit\Runner\Version; use PHPUnit\Util\Xml\Loader as XmlLoader; use PHPUnit\Util\Xml\XmlException; @@ -34,14 +37,18 @@ final readonly class Migrator throw new Exception('The file does not validate against any known schema'); } - if ($origin->version() === Version::series()) { - throw new Exception('The file does not need to be migrated'); - } - $configurationDocument = (new XmlLoader)->loadFile($filename); - foreach ((new MigrationBuilder)->build($origin->version()) as $migration) { - $migration->migrate($configurationDocument); + if ($origin->version() === Version::series()) { + if (!$this->schemaLocationNeedsUpdate($configurationDocument)) { + throw new Exception('The file does not need to be migrated'); + } + + (new UpdateSchemaLocation)->migrate($configurationDocument); + } else { + foreach ((new MigrationBuilder)->build($origin->version()) as $migration) { + $migration->migrate($configurationDocument); + } } $configurationDocument->formatOutput = true; @@ -53,4 +60,22 @@ final readonly class Migrator return $xml; } + + private function schemaLocationNeedsUpdate(DOMDocument $document): bool + { + $root = $document->documentElement; + + assert($root instanceof DOMElement); + + $schemaLocation = $root->getAttributeNS( + 'http://www.w3.org/2001/XMLSchema-instance', + 'noNamespaceSchemaLocation', + ); + + if (!str_contains($schemaLocation, '://')) { + return false; + } + + return $schemaLocation !== 'https://schema.phpunit.de/' . Version::series() . '/phpunit.xsd'; + } } diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/SnapshotNodeList.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/SnapshotNodeList.php index 8941681ec..491c24eda 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/SnapshotNodeList.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/SnapshotNodeList.php @@ -21,7 +21,7 @@ use IteratorAggregate; * * @internal This class is not covered by the backward compatibility promise for PHPUnit * - * @template-implements IteratorAggregate + * @template-implements IteratorAggregate */ final class SnapshotNodeList implements Countable, IteratorAggregate { diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/PHPUnit.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/PHPUnit.php index 0e0c0a7cd..c2ffe23e3 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/PHPUnit.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/PHPUnit.php @@ -28,18 +28,26 @@ final readonly class PHPUnit private bool $displayDetailsOnSkippedTests; private bool $displayDetailsOnTestsThatTriggerDeprecations; private bool $displayDetailsOnPhpunitDeprecations; + private bool $displayDetailsOnPhpunitNotices; private bool $displayDetailsOnTestsThatTriggerErrors; private bool $displayDetailsOnTestsThatTriggerNotices; private bool $displayDetailsOnTestsThatTriggerWarnings; private bool $reverseDefectList; private bool $requireCoverageMetadata; private ?string $bootstrap; + + /** + * @var array + */ + private array $bootstrapForTestSuite; private bool $processIsolation; private bool $failOnAllIssues; private bool $failOnDeprecation; private bool $failOnPhpunitDeprecation; + private bool $failOnPhpunitNotice; private bool $failOnPhpunitWarning; private bool $failOnEmptyTestSuite; + private bool $hasFailOnEmptyTestSuite; private bool $failOnIncomplete; private bool $failOnNotice; private bool $failOnRisky; @@ -85,10 +93,11 @@ final readonly class PHPUnit private int $shortenArraysForExportThreshold; /** - * @param ?non-empty-string $extensionsDirectory - * @param non-negative-int $shortenArraysForExportThreshold + * @param array $bootstrapForTestSuite + * @param ?non-empty-string $extensionsDirectory + * @param non-negative-int $shortenArraysForExportThreshold */ - public function __construct(?string $cacheDirectory, bool $cacheResult, int|string $columns, string $colors, bool $stderr, bool $displayDetailsOnAllIssues, bool $displayDetailsOnIncompleteTests, bool $displayDetailsOnSkippedTests, bool $displayDetailsOnTestsThatTriggerDeprecations, bool $displayDetailsOnPhpunitDeprecations, bool $displayDetailsOnTestsThatTriggerErrors, bool $displayDetailsOnTestsThatTriggerNotices, bool $displayDetailsOnTestsThatTriggerWarnings, bool $reverseDefectList, bool $requireCoverageMetadata, ?string $bootstrap, bool $processIsolation, bool $failOnAllIssues, bool $failOnDeprecation, bool $failOnPhpunitDeprecation, bool $failOnPhpunitWarning, bool $failOnEmptyTestSuite, bool $failOnIncomplete, bool $failOnNotice, bool $failOnRisky, bool $failOnSkipped, bool $failOnWarning, bool $stopOnDefect, bool $stopOnDeprecation, bool $stopOnError, bool $stopOnFailure, bool $stopOnIncomplete, bool $stopOnNotice, bool $stopOnRisky, bool $stopOnSkipped, bool $stopOnWarning, ?string $extensionsDirectory, bool $beStrictAboutChangesToGlobalState, bool $beStrictAboutOutputDuringTests, bool $beStrictAboutTestsThatDoNotTestAnything, bool $beStrictAboutCoverageMetadata, bool $enforceTimeLimit, int $defaultTimeLimit, int $timeoutForSmallTests, int $timeoutForMediumTests, int $timeoutForLargeTests, ?string $defaultTestSuite, int $executionOrder, bool $resolveDependencies, bool $defectsFirst, bool $backupGlobals, bool $backupStaticProperties, bool $testdoxPrinter, bool $testdoxPrinterSummary, bool $controlGarbageCollector, int $numberOfTestsBeforeGarbageCollection, int $shortenArraysForExportThreshold) + public function __construct(?string $cacheDirectory, bool $cacheResult, int|string $columns, string $colors, bool $stderr, bool $displayDetailsOnAllIssues, bool $displayDetailsOnIncompleteTests, bool $displayDetailsOnSkippedTests, bool $displayDetailsOnTestsThatTriggerDeprecations, bool $displayDetailsOnPhpunitDeprecations, bool $displayDetailsOnPhpunitNotices, bool $displayDetailsOnTestsThatTriggerErrors, bool $displayDetailsOnTestsThatTriggerNotices, bool $displayDetailsOnTestsThatTriggerWarnings, bool $reverseDefectList, bool $requireCoverageMetadata, ?string $bootstrap, array $bootstrapForTestSuite, bool $processIsolation, bool $failOnAllIssues, bool $failOnDeprecation, bool $failOnPhpunitDeprecation, bool $failOnPhpunitNotice, bool $failOnPhpunitWarning, bool $failOnEmptyTestSuite, bool $hasFailOnEmptyTestSuite, bool $failOnIncomplete, bool $failOnNotice, bool $failOnRisky, bool $failOnSkipped, bool $failOnWarning, bool $stopOnDefect, bool $stopOnDeprecation, bool $stopOnError, bool $stopOnFailure, bool $stopOnIncomplete, bool $stopOnNotice, bool $stopOnRisky, bool $stopOnSkipped, bool $stopOnWarning, ?string $extensionsDirectory, bool $beStrictAboutChangesToGlobalState, bool $beStrictAboutOutputDuringTests, bool $beStrictAboutTestsThatDoNotTestAnything, bool $beStrictAboutCoverageMetadata, bool $enforceTimeLimit, int $defaultTimeLimit, int $timeoutForSmallTests, int $timeoutForMediumTests, int $timeoutForLargeTests, ?string $defaultTestSuite, int $executionOrder, bool $resolveDependencies, bool $defectsFirst, bool $backupGlobals, bool $backupStaticProperties, bool $testdoxPrinter, bool $testdoxPrinterSummary, bool $controlGarbageCollector, int $numberOfTestsBeforeGarbageCollection, int $shortenArraysForExportThreshold) { $this->cacheDirectory = $cacheDirectory; $this->cacheResult = $cacheResult; @@ -100,18 +109,22 @@ final readonly class PHPUnit $this->displayDetailsOnSkippedTests = $displayDetailsOnSkippedTests; $this->displayDetailsOnTestsThatTriggerDeprecations = $displayDetailsOnTestsThatTriggerDeprecations; $this->displayDetailsOnPhpunitDeprecations = $displayDetailsOnPhpunitDeprecations; + $this->displayDetailsOnPhpunitNotices = $displayDetailsOnPhpunitNotices; $this->displayDetailsOnTestsThatTriggerErrors = $displayDetailsOnTestsThatTriggerErrors; $this->displayDetailsOnTestsThatTriggerNotices = $displayDetailsOnTestsThatTriggerNotices; $this->displayDetailsOnTestsThatTriggerWarnings = $displayDetailsOnTestsThatTriggerWarnings; $this->reverseDefectList = $reverseDefectList; $this->requireCoverageMetadata = $requireCoverageMetadata; $this->bootstrap = $bootstrap; + $this->bootstrapForTestSuite = $bootstrapForTestSuite; $this->processIsolation = $processIsolation; $this->failOnAllIssues = $failOnAllIssues; $this->failOnDeprecation = $failOnDeprecation; $this->failOnPhpunitDeprecation = $failOnPhpunitDeprecation; + $this->failOnPhpunitNotice = $failOnPhpunitNotice; $this->failOnPhpunitWarning = $failOnPhpunitWarning; $this->failOnEmptyTestSuite = $failOnEmptyTestSuite; + $this->hasFailOnEmptyTestSuite = $hasFailOnEmptyTestSuite; $this->failOnIncomplete = $failOnIncomplete; $this->failOnNotice = $failOnNotice; $this->failOnRisky = $failOnRisky; @@ -214,6 +227,11 @@ final readonly class PHPUnit return $this->displayDetailsOnPhpunitDeprecations; } + public function displayDetailsOnPhpunitNotices(): bool + { + return $this->displayDetailsOnPhpunitNotices; + } + public function displayDetailsOnTestsThatTriggerErrors(): bool { return $this->displayDetailsOnTestsThatTriggerErrors; @@ -259,6 +277,14 @@ final readonly class PHPUnit return $this->bootstrap; } + /** + * @return array + */ + public function bootstrapForTestSuite(): array + { + return $this->bootstrapForTestSuite; + } + public function processIsolation(): bool { return $this->processIsolation; @@ -279,6 +305,11 @@ final readonly class PHPUnit return $this->failOnPhpunitDeprecation; } + public function failOnPhpunitNotice(): bool + { + return $this->failOnPhpunitNotice; + } + public function failOnPhpunitWarning(): bool { return $this->failOnPhpunitWarning; @@ -289,6 +320,11 @@ final readonly class PHPUnit return $this->failOnEmptyTestSuite; } + public function hasFailOnEmptyTestSuite(): bool + { + return $this->hasFailOnEmptyTestSuite; + } + public function failOnIncomplete(): bool { return $this->failOnIncomplete; diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/SchemaFinder.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/SchemaFinder.php index ff4a24041..39d25cfad 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/SchemaFinder.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/SchemaFinder.php @@ -38,7 +38,7 @@ final readonly class SchemaFinder $version = $file->getBasename('.xsd'); - assert(!empty($version)); + assert($version !== ''); $result[] = $version; } diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/TestSuiteMapper.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/TestSuiteMapper.php index 0bb31fe65..66bd611c1 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/TestSuiteMapper.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/TestSuiteMapper.php @@ -10,7 +10,6 @@ namespace PHPUnit\TextUI\XmlConfiguration; use const PHP_VERSION; -use function explode; use function in_array; use function is_dir; use function is_file; @@ -34,26 +33,26 @@ use SebastianBergmann\FileIterator\Facade; final readonly class TestSuiteMapper { /** - * @param non-empty-string $xmlConfigurationFile, + * @param non-empty-string $xmlConfigurationFile + * @param list $includeTestSuites + * @param list $excludeTestSuites * * @throws RuntimeException * @throws TestDirectoryNotFoundException * @throws TestFileNotFoundException */ - public function map(string $xmlConfigurationFile, TestSuiteCollection $configuredTestSuites, string $namesOfIncludedTestSuites, string $namesOfExcludedTestSuites): TestSuiteObject + public function map(string $xmlConfigurationFile, TestSuiteCollection $configuredTestSuites, array $includeTestSuites, array $excludeTestSuites): TestSuiteObject { try { - $namesOfIncludedTestSuitesAsArray = $namesOfIncludedTestSuites ? explode(',', $namesOfIncludedTestSuites) : []; - $excludedTestSuitesAsArray = $namesOfExcludedTestSuites ? explode(',', $namesOfExcludedTestSuites) : []; - $result = TestSuiteObject::empty($xmlConfigurationFile); - $processed = []; + $result = TestSuiteObject::empty($xmlConfigurationFile); + $processed = []; foreach ($configuredTestSuites as $configuredTestSuite) { - if (!empty($namesOfIncludedTestSuitesAsArray) && !in_array($configuredTestSuite->name(), $namesOfIncludedTestSuitesAsArray, true)) { + if ($includeTestSuites !== [] && !in_array($configuredTestSuite->name(), $includeTestSuites, true)) { continue; } - if (!empty($excludedTestSuitesAsArray) && in_array($configuredTestSuite->name(), $excludedTestSuitesAsArray, true)) { + if ($excludeTestSuites !== [] && in_array($configuredTestSuite->name(), $excludeTestSuites, true)) { continue; } diff --git a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Validator/ValidationResult.php b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Validator/ValidationResult.php index aa6920e63..95fe473d6 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Validator/ValidationResult.php +++ b/vendor/phpunit/phpunit/src/TextUI/Configuration/Xml/Validator/ValidationResult.php @@ -56,7 +56,7 @@ final readonly class ValidationResult public function hasValidationErrors(): bool { - return !empty($this->validationErrors); + return $this->validationErrors !== []; } public function asString(): string diff --git a/vendor/phpunit/phpunit/src/TextUI/Help.php b/vendor/phpunit/phpunit/src/TextUI/Help.php index 809d6fa32..39eb82bd3 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Help.php +++ b/vendor/phpunit/phpunit/src/TextUI/Help.php @@ -29,7 +29,7 @@ use SebastianBergmann\Environment\Console; */ final class Help { - private const LEFT_MARGIN = ' '; + private const string LEFT_MARGIN = ' '; private int $lengthOfLongestOptionName = 0; private readonly int $columnsAvailableForDescription; private bool $hasColor; @@ -123,7 +123,7 @@ final class Help $arg = Color::colorize('fg-green', str_pad($option['arg'], $this->lengthOfLongestOptionName)); $arg = preg_replace_callback( '/(<[^>]+>)/', - static fn ($matches) => Color::colorize('fg-cyan', $matches[0]), + static fn (array $matches) => Color::colorize('fg-cyan', $matches[0]), $arg, ); @@ -170,6 +170,7 @@ final class Help ], 'Selection' => [ + ['arg' => '--all', 'desc' => 'Ignore test selection from XML configuration file'], ['arg' => '--list-suites', 'desc' => 'List available test suites'], ['arg' => '--testsuite ', 'desc' => 'Only run tests from the specified test suite(s)'], ['arg' => '--exclude-testsuite ', 'desc' => 'Exclude tests from the specified test suite(s)'], @@ -217,6 +218,7 @@ final class Help ['arg' => '--fail-on-risky', 'desc' => 'Signal failure using shell exit code when a test was considered risky'], ['arg' => '--fail-on-deprecation', 'desc' => 'Signal failure using shell exit code when a deprecation was triggered'], ['arg' => '--fail-on-phpunit-deprecation', 'desc' => 'Signal failure using shell exit code when a PHPUnit deprecation was triggered'], + ['arg' => '--fail-on-phpunit-notice', 'desc' => 'Signal failure using shell exit code when a PHPUnit notice was triggered'], ['arg' => '--fail-on-phpunit-warning', 'desc' => 'Signal failure using shell exit code when a PHPUnit warning was triggered'], ['arg' => '--fail-on-notice', 'desc' => 'Signal failure using shell exit code when a notice was triggered'], ['arg' => '--fail-on-skipped', 'desc' => 'Signal failure using shell exit code when a test was skipped'], @@ -229,6 +231,7 @@ final class Help ['arg' => '--do-not-fail-on-risky', 'desc' => 'Do not signal failure using shell exit code when a test was considered risky'], ['arg' => '--do-not-fail-on-deprecation', 'desc' => 'Do not signal failure using shell exit code when a deprecation was triggered'], ['arg' => '--do-not-fail-on-phpunit-deprecation', 'desc' => 'Do not signal failure using shell exit code when a PHPUnit deprecation was triggered'], + ['arg' => '--do-not-fail-on-phpunit-notice', 'desc' => 'Do not signal failure using shell exit code when a PHPUnit notice was triggered'], ['arg' => '--do-not-fail-on-phpunit-warning', 'desc' => 'Do not signal failure using shell exit code when a PHPUnit warning was triggered'], ['arg' => '--do-not-fail-on-notice', 'desc' => 'Do not signal failure using shell exit code when a notice was triggered'], ['arg' => '--do-not-fail-on-skipped', 'desc' => 'Do not signal failure using shell exit code when a test was skipped'], @@ -240,11 +243,15 @@ final class Help ['spacer' => ''], ['arg' => '--order-by ', 'desc' => 'Run tests in order: default|defects|depends|duration|no-depends|random|reverse|size'], + ['arg' => '--resolve-dependencies', 'desc' => 'Alias for "--order-by depends"'], + ['arg' => '--ignore-dependencies', 'desc' => 'Alias for "--order-by no-depends"'], + ['arg' => '--random-order', 'desc' => 'Alias for "--order-by random"'], ['arg' => '--random-order-seed ', 'desc' => 'Use the specified random seed when running tests in random order'], + ['arg' => '--reverse-order', 'desc' => 'Alias for "--order-by reverse"'], ], 'Reporting' => [ - ['arg' => '--colors ', 'desc' => 'Use colors in output ("never", "auto" or "always")'], + ['arg' => '--colors=', 'desc' => 'Use colors in output ("never", "auto" or "always")'], ['arg' => '--columns ', 'desc' => 'Number of columns to use for progress output'], ['arg' => '--columns max', 'desc' => 'Use maximum number of columns for progress output'], ['arg' => '--stderr', 'desc' => 'Write to STDERR instead of STDOUT'], @@ -259,6 +266,7 @@ final class Help ['arg' => '--display-skipped', 'desc' => 'Display details for skipped tests'], ['arg' => '--display-deprecations', 'desc' => 'Display details for deprecations triggered by tests'], ['arg' => '--display-phpunit-deprecations', 'desc' => 'Display details for PHPUnit deprecations'], + ['arg' => '--display-phpunit-notices', 'desc' => 'Display details for PHPUnit notices'], ['arg' => '--display-errors', 'desc' => 'Display details for errors triggered by tests'], ['arg' => '--display-notices', 'desc' => 'Display details for notices triggered by tests'], ['arg' => '--display-warnings', 'desc' => 'Display details for warnings triggered by tests'], @@ -272,10 +280,13 @@ final class Help ['spacer' => ''], ['arg' => '--debug', 'desc' => 'Replace default progress and result output with debugging information'], + ['arg' => '--with-telemetry', 'desc' => 'Include telemetry information in debugging information output'], ], 'Logging' => [ ['arg' => '--log-junit ', 'desc' => 'Write test results in JUnit XML format to file'], + ['arg' => '--log-otr ', 'desc' => 'Write test results in Open Test Reporting XML format to file'], + ['arg' => '--include-git-information', 'desc' => 'Include Git information in Open Test Reporting XML logfile'], ['arg' => '--log-teamcity ', 'desc' => 'Write test results in TeamCity format to file'], ['arg' => '--testdox-html ', 'desc' => 'Write test results in TestDox format (HTML) to file'], ['arg' => '--testdox-text ', 'desc' => 'Write test results in TestDox format (plain text) to file'], @@ -286,6 +297,7 @@ final class Help 'Code Coverage' => [ ['arg' => '--coverage-clover ', 'desc' => 'Write code coverage report in Clover XML format to file'], + ['arg' => '--coverage-openclover ', 'desc' => 'Write code coverage report in OpenClover XML format to file'], ['arg' => '--coverage-cobertura ', 'desc' => 'Write code coverage report in Cobertura XML format to file'], ['arg' => '--coverage-crap4j ', 'desc' => 'Write code coverage report in Crap4J XML format to file'], ['arg' => '--coverage-html ', 'desc' => 'Write code coverage report in HTML format to directory'], @@ -294,6 +306,7 @@ final class Help ['arg' => '--only-summary-for-coverage-text', 'desc' => 'Option for code coverage report in text format: only show summary'], ['arg' => '--show-uncovered-for-coverage-text', 'desc' => 'Option for code coverage report in text format: show uncovered files'], ['arg' => '--coverage-xml ', 'desc' => 'Write code coverage report in XML format to directory'], + ['arg' => '--exclude-source-from-xml-coverage', 'desc' => 'Exclude element from code coverage report in XML format'], ['arg' => '--warm-coverage-cache', 'desc' => 'Warm static analysis cache'], ['arg' => '--coverage-filter ', 'desc' => 'Include in code coverage reporting'], ['arg' => '--path-coverage', 'desc' => 'Report path coverage in addition to line coverage'], diff --git a/vendor/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/ProgressPrinter.php b/vendor/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/ProgressPrinter.php index 50920d0a5..0153ef10f 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/ProgressPrinter.php +++ b/vendor/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/ProgressPrinter.php @@ -11,10 +11,8 @@ namespace PHPUnit\TextUI\Output\Default\ProgressPrinter; use function floor; use function sprintf; -use function str_contains; use function str_repeat; use function strlen; -use PHPUnit\Event\EventFacadeIsSealedException; use PHPUnit\Event\Facade; use PHPUnit\Event\Test\DeprecationTriggered; use PHPUnit\Event\Test\Errored; @@ -22,10 +20,11 @@ use PHPUnit\Event\Test\ErrorTriggered; use PHPUnit\Event\Test\NoticeTriggered; use PHPUnit\Event\Test\PhpDeprecationTriggered; use PHPUnit\Event\Test\PhpNoticeTriggered; +use PHPUnit\Event\Test\PhpunitWarningTriggered; use PHPUnit\Event\Test\PhpWarningTriggered; use PHPUnit\Event\Test\WarningTriggered; +use PHPUnit\Event\TestRunner\ChildProcessErrored; use PHPUnit\Event\TestRunner\ExecutionStarted; -use PHPUnit\Event\UnknownSubscriberTypeException; use PHPUnit\Framework\TestStatus\TestStatus; use PHPUnit\TextUI\Configuration\Source; use PHPUnit\TextUI\Configuration\SourceFilter; @@ -43,18 +42,15 @@ final class ProgressPrinter private readonly bool $colors; private readonly int $numberOfColumns; private readonly Source $source; - private int $column = 0; - private int $numberOfTests = 0; - private int $numberOfTestsWidth = 0; - private int $maxColumn = 0; - private int $numberOfTestsRun = 0; - private ?TestStatus $status = null; - private bool $prepared = false; + private int $column = 0; + private int $numberOfTests = 0; + private int $numberOfTestsWidth = 0; + private int $maxColumn = 0; + private int $numberOfTestsRun = 0; + private ?TestStatus $status = null; + private bool $prepared = false; + private bool $childProcessErrored = false; - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ public function __construct(Printer $printer, Facade $facade, bool $colors, int $numberOfColumns, Source $source) { $this->printer = $printer; @@ -160,11 +156,6 @@ final class ProgressPrinter return; } - if ($this->source->restrictDeprecations() && - !SourceFilter::instance()->includes($event->file())) { - return; - } - if (!$this->source->ignoreSuppressionOfDeprecations() && $event->wasSuppressed()) { return; } @@ -190,11 +181,6 @@ final class ProgressPrinter return; } - if ($this->source->restrictDeprecations() && - !SourceFilter::instance()->includes($event->file())) { - return; - } - if (!$this->source->ignoreSuppressionOfPhpDeprecations() && $event->wasSuppressed()) { return; } @@ -207,6 +193,11 @@ final class ProgressPrinter $this->updateTestStatus(TestStatus::deprecation()); } + public function testTriggeredPhpunitNotice(): void + { + $this->updateTestStatus(TestStatus::notice()); + } + public function testConsideredRisky(): void { $this->updateTestStatus(TestStatus::risky()); @@ -248,8 +239,12 @@ final class ProgressPrinter $this->updateTestStatus(TestStatus::warning()); } - public function testTriggeredPhpunitWarning(): void + public function testTriggeredPhpunitWarning(PhpunitWarningTriggered $event): void { + if ($event->ignoredByTest()) { + return; + } + $this->updateTestStatus(TestStatus::warning()); } @@ -269,10 +264,7 @@ final class ProgressPrinter public function testErrored(Errored $event): void { - /* - * @todo Eliminate this special case - */ - if (str_contains($event->asString(), 'Test was run in child process and ended unexpectedly')) { + if ($this->childProcessErrored) { $this->updateTestStatus(TestStatus::error()); return; @@ -307,14 +299,16 @@ final class ProgressPrinter $this->printProgressForError(); } - $this->status = null; - $this->prepared = false; + $this->status = null; + $this->prepared = false; + $this->childProcessErrored = false; + } + + public function childProcessErrored(ChildProcessErrored $event): void + { + $this->childProcessErrored = true; } - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ private function registerSubscribers(Facade $facade): void { $facade->registerSubscribers( @@ -333,9 +327,11 @@ final class ProgressPrinter new TestTriggeredPhpDeprecationSubscriber($this), new TestTriggeredPhpNoticeSubscriber($this), new TestTriggeredPhpunitDeprecationSubscriber($this), + new TestTriggeredPhpunitNoticeSubscriber($this), new TestTriggeredPhpunitWarningSubscriber($this), new TestTriggeredPhpWarningSubscriber($this), new TestTriggeredWarningSubscriber($this), + new ChildProcessErroredSubscriber($this), ); } diff --git a/vendor/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/ChildProcessErroredSubscriber.php b/vendor/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/ChildProcessErroredSubscriber.php new file mode 100644 index 000000000..643694076 --- /dev/null +++ b/vendor/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/ChildProcessErroredSubscriber.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\TextUI\Output\Default\ProgressPrinter; + +use PHPUnit\Event\TestRunner\ChildProcessErrored; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class ChildProcessErroredSubscriber extends Subscriber implements \PHPUnit\Event\TestRunner\ChildProcessErroredSubscriber +{ + public function notify(ChildProcessErrored $event): void + { + $this->printer()->childProcessErrored($event); + } +} diff --git a/vendor/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpunitNoticeSubscriber.php b/vendor/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpunitNoticeSubscriber.php new file mode 100644 index 000000000..6b0e48cfd --- /dev/null +++ b/vendor/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpunitNoticeSubscriber.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\TextUI\Output\Default\ProgressPrinter; + +use PHPUnit\Event\Test\PhpunitNoticeTriggered; +use PHPUnit\Event\Test\PhpunitNoticeTriggeredSubscriber; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class TestTriggeredPhpunitNoticeSubscriber extends Subscriber implements PhpunitNoticeTriggeredSubscriber +{ + public function notify(PhpunitNoticeTriggered $event): void + { + $this->printer()->testTriggeredPhpunitNotice(); + } +} diff --git a/vendor/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpunitWarningSubscriber.php b/vendor/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpunitWarningSubscriber.php index 4e3e3d21c..7d0aed1ff 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpunitWarningSubscriber.php +++ b/vendor/phpunit/phpunit/src/TextUI/Output/Default/ProgressPrinter/Subscriber/TestTriggeredPhpunitWarningSubscriber.php @@ -21,6 +21,6 @@ final readonly class TestTriggeredPhpunitWarningSubscriber extends Subscriber im { public function notify(PhpunitWarningTriggered $event): void { - $this->printer()->testTriggeredPhpunitWarning(); + $this->printer()->testTriggeredPhpunitWarning($event); } } diff --git a/vendor/phpunit/phpunit/src/TextUI/Output/Default/ResultPrinter.php b/vendor/phpunit/phpunit/src/TextUI/Output/Default/ResultPrinter.php index 6b0db7cdf..22fb63498 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Output/Default/ResultPrinter.php +++ b/vendor/phpunit/phpunit/src/TextUI/Output/Default/ResultPrinter.php @@ -27,7 +27,9 @@ use function trim; use PHPUnit\Event\Code\Test; use PHPUnit\Event\Code\TestMethod; use PHPUnit\Event\Test\AfterLastTestMethodErrored; +use PHPUnit\Event\Test\AfterLastTestMethodFailed; use PHPUnit\Event\Test\BeforeFirstTestMethodErrored; +use PHPUnit\Event\Test\BeforeFirstTestMethodFailed; use PHPUnit\Event\Test\ConsideredRisky; use PHPUnit\Event\Test\DeprecationTriggered; use PHPUnit\Event\Test\ErrorTriggered; @@ -36,6 +38,7 @@ use PHPUnit\Event\Test\PhpDeprecationTriggered; use PHPUnit\Event\Test\PhpNoticeTriggered; use PHPUnit\Event\Test\PhpunitDeprecationTriggered; use PHPUnit\Event\Test\PhpunitErrorTriggered; +use PHPUnit\Event\Test\PhpunitNoticeTriggered; use PHPUnit\Event\Test\PhpunitWarningTriggered; use PHPUnit\Event\Test\PhpWarningTriggered; use PHPUnit\Event\Test\WarningTriggered; @@ -51,12 +54,13 @@ use PHPUnit\TextUI\Output\Printer; final class ResultPrinter { private readonly Printer $printer; + private readonly bool $displayPhpunitDeprecations; private readonly bool $displayPhpunitErrors; + private readonly bool $displayPhpunitNotices; private readonly bool $displayPhpunitWarnings; private readonly bool $displayTestsWithErrors; private readonly bool $displayTestsWithFailedAssertions; private readonly bool $displayRiskyTests; - private readonly bool $displayPhpunitDeprecations; private readonly bool $displayDetailsOnIncompleteTests; private readonly bool $displayDetailsOnSkippedTests; private readonly bool $displayDetailsOnTestsThatTriggerDeprecations; @@ -66,12 +70,13 @@ final class ResultPrinter private readonly bool $displayDefectsInReverseOrder; private bool $listPrinted = false; - public function __construct(Printer $printer, bool $displayPhpunitErrors, bool $displayPhpunitWarnings, bool $displayPhpunitDeprecations, bool $displayTestsWithErrors, bool $displayTestsWithFailedAssertions, bool $displayRiskyTests, bool $displayDetailsOnIncompleteTests, bool $displayDetailsOnSkippedTests, bool $displayDetailsOnTestsThatTriggerDeprecations, bool $displayDetailsOnTestsThatTriggerErrors, bool $displayDetailsOnTestsThatTriggerNotices, bool $displayDetailsOnTestsThatTriggerWarnings, bool $displayDefectsInReverseOrder) + public function __construct(Printer $printer, bool $displayPhpunitDeprecations, bool $displayPhpunitErrors, bool $displayPhpunitNotices, bool $displayPhpunitWarnings, bool $displayTestsWithErrors, bool $displayTestsWithFailedAssertions, bool $displayRiskyTests, bool $displayDetailsOnIncompleteTests, bool $displayDetailsOnSkippedTests, bool $displayDetailsOnTestsThatTriggerDeprecations, bool $displayDetailsOnTestsThatTriggerErrors, bool $displayDetailsOnTestsThatTriggerNotices, bool $displayDetailsOnTestsThatTriggerWarnings, bool $displayDefectsInReverseOrder) { $this->printer = $printer; - $this->displayPhpunitErrors = $displayPhpunitErrors; - $this->displayPhpunitWarnings = $displayPhpunitWarnings; $this->displayPhpunitDeprecations = $displayPhpunitDeprecations; + $this->displayPhpunitErrors = $displayPhpunitErrors; + $this->displayPhpunitNotices = $displayPhpunitNotices; + $this->displayPhpunitWarnings = $displayPhpunitWarnings; $this->displayTestsWithErrors = $displayTestsWithErrors; $this->displayTestsWithFailedAssertions = $displayTestsWithFailedAssertions; $this->displayRiskyTests = $displayRiskyTests; @@ -98,6 +103,10 @@ final class ResultPrinter $this->printTestRunnerDeprecations($result); } + if ($this->displayPhpunitNotices) { + $this->printTestRunnerNotices($result); + } + if ($this->displayTestsWithErrors) { $this->printTestsWithErrors($result); } @@ -118,6 +127,10 @@ final class ResultPrinter $this->printRiskyTests($result); } + if ($this->displayPhpunitNotices) { + $this->printDetailsOnTestsThatTriggeredPhpunitNotices($result); + } + if ($this->displayDetailsOnIncompleteTests) { $this->printIncompleteTests($result); } @@ -176,6 +189,49 @@ final class ResultPrinter $this->printList($elements['elements']); } + private function printDetailsOnTestsThatTriggeredPhpunitNotices(TestResult $result): void + { + if (!$result->hasTestTriggeredPhpunitNoticeEvents()) { + return; + } + + $elements = $this->mapTestsWithIssuesEventsToElements($result->testTriggeredPhpunitNoticeEvents()); + + $this->printListHeaderWithNumberOfTestsAndNumberOfIssues( + $elements['numberOfTestsWithIssues'], + $elements['numberOfIssues'], + 'PHPUnit notice', + ); + + $this->printList($elements['elements']); + } + + private function printTestRunnerNotices(TestResult $result): void + { + if (!$result->hasTestRunnerTriggeredNoticeEvents()) { + return; + } + + $elements = []; + $messages = []; + + foreach ($result->testRunnerTriggeredNoticeEvents() as $event) { + if (isset($messages[$event->message()])) { + continue; + } + + $elements[] = [ + 'title' => $event->message(), + 'body' => '', + ]; + + $messages[$event->message()] = true; + } + + $this->printListHeaderWithNumber(count($elements), 'PHPUnit test runner notice'); + $this->printList($elements); + } + private function printTestRunnerWarnings(TestResult $result): void { if (!$result->hasTestRunnerTriggeredWarningEvents()) { @@ -272,6 +328,12 @@ final class ResultPrinter $elements = []; foreach ($result->testFailedEvents() as $event) { + if ($event instanceof AfterLastTestMethodFailed || $event instanceof BeforeFirstTestMethodFailed) { + $title = $event->testClassName(); + } else { + $title = $this->name($event->test()); + } + $body = $event->throwable()->asString(); if (str_starts_with($body, 'AssertionError: ')) { @@ -279,7 +341,7 @@ final class ResultPrinter } $elements[] = [ - 'title' => $this->name($event->test()), + 'title' => $title, 'body' => $body, ]; } @@ -363,7 +425,7 @@ final class ResultPrinter */ private function printIssueList(string $type, array $issues, bool $stackTrace = false): void { - if (empty($issues)) { + if ($issues === []) { return; } @@ -499,7 +561,7 @@ final class ResultPrinter $number, $title, $body, - !empty($body) ? "\n" : '', + $body !== '' ? "\n" : '', ), ); } @@ -514,7 +576,7 @@ final class ResultPrinter $number, $title, $body, - !empty($body) ? "\n" : '', + $body !== '' ? "\n" : '', ), ); } @@ -535,7 +597,7 @@ final class ResultPrinter } /** - * @param array> $events + * @param array> $events * * @return array{numberOfTestsWithIssues: int, numberOfIssues: int, elements: list} */ @@ -565,7 +627,7 @@ final class ResultPrinter $issues++; } - if (!empty($testLocation)) { + if ($testLocation !== '') { $body .= $testLocation; } @@ -599,7 +661,7 @@ final class ResultPrinter ); } - private function reasonMessage(ConsideredRisky|DeprecationTriggered|ErrorTriggered|NoticeTriggered|PhpDeprecationTriggered|PhpNoticeTriggered|PhpunitDeprecationTriggered|PhpunitErrorTriggered|PhpunitWarningTriggered|PhpWarningTriggered|WarningTriggered $reason, bool $single): string + private function reasonMessage(ConsideredRisky|DeprecationTriggered|ErrorTriggered|NoticeTriggered|PhpDeprecationTriggered|PhpNoticeTriggered|PhpunitDeprecationTriggered|PhpunitErrorTriggered|PhpunitNoticeTriggered|PhpunitWarningTriggered|PhpWarningTriggered|WarningTriggered $reason, bool $single): string { $message = trim($reason->message()); @@ -619,7 +681,7 @@ final class ResultPrinter return $buffer; } - private function reasonLocation(ConsideredRisky|DeprecationTriggered|ErrorTriggered|NoticeTriggered|PhpDeprecationTriggered|PhpNoticeTriggered|PhpunitDeprecationTriggered|PhpunitErrorTriggered|PhpunitWarningTriggered|PhpWarningTriggered|WarningTriggered $reason, bool $single): string + private function reasonLocation(ConsideredRisky|DeprecationTriggered|ErrorTriggered|NoticeTriggered|PhpDeprecationTriggered|PhpNoticeTriggered|PhpunitDeprecationTriggered|PhpunitErrorTriggered|PhpunitNoticeTriggered|PhpunitWarningTriggered|PhpWarningTriggered|WarningTriggered $reason, bool $single): string { if (!$reason instanceof DeprecationTriggered && !$reason instanceof PhpDeprecationTriggered && diff --git a/vendor/phpunit/phpunit/src/TextUI/Output/Default/UnexpectedOutputPrinter.php b/vendor/phpunit/phpunit/src/TextUI/Output/Default/UnexpectedOutputPrinter.php index d8fe3a191..b51d51060 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Output/Default/UnexpectedOutputPrinter.php +++ b/vendor/phpunit/phpunit/src/TextUI/Output/Default/UnexpectedOutputPrinter.php @@ -9,11 +9,9 @@ */ namespace PHPUnit\TextUI\Output\Default; -use PHPUnit\Event\EventFacadeIsSealedException; use PHPUnit\Event\Facade; use PHPUnit\Event\Test\PrintedUnexpectedOutput; use PHPUnit\Event\Test\PrintedUnexpectedOutputSubscriber; -use PHPUnit\Event\UnknownSubscriberTypeException; use PHPUnit\TextUI\Output\Printer; /** @@ -23,10 +21,6 @@ final readonly class UnexpectedOutputPrinter implements PrintedUnexpectedOutputS { private Printer $printer; - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ public function __construct(Printer $printer, Facade $facade) { $this->printer = $printer; diff --git a/vendor/phpunit/phpunit/src/TextUI/Output/Facade.php b/vendor/phpunit/phpunit/src/TextUI/Output/Facade.php index e6ccd357e..2a50017b0 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Output/Facade.php +++ b/vendor/phpunit/phpunit/src/TextUI/Output/Facade.php @@ -11,9 +11,7 @@ namespace PHPUnit\TextUI\Output; use const PHP_EOL; use function assert; -use PHPUnit\Event\EventFacadeIsSealedException; use PHPUnit\Event\Facade as EventFacade; -use PHPUnit\Event\UnknownSubscriberTypeException; use PHPUnit\Logging\TeamCity\TeamCityLogger; use PHPUnit\Logging\TestDox\TestResultCollection; use PHPUnit\Runner\DirectoryDoesNotExistException; @@ -41,10 +39,6 @@ final class Facade private static ?SummaryPrinter $summaryPrinter = null; private static bool $defaultProgressPrinter = false; - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ public static function init(Configuration $configuration, bool $extensionReplacesProgressOutput, bool $extensionReplacesResultOutput): Printer { self::createPrinter($configuration); @@ -204,9 +198,10 @@ final class Facade if ($configuration->outputIsTestDox()) { self::$defaultResultPrinter = new DefaultResultPrinter( self::$printer, - true, - true, $configuration->displayDetailsOnPhpunitDeprecations() || $configuration->displayDetailsOnAllIssues(), + true, + $configuration->displayDetailsOnPhpunitNotices() || $configuration->displayDetailsOnAllIssues(), + true, false, false, true, @@ -239,10 +234,11 @@ final class Facade self::$defaultResultPrinter = new DefaultResultPrinter( self::$printer, - true, - true, $configuration->displayDetailsOnPhpunitDeprecations() || $configuration->displayDetailsOnAllIssues(), true, + $configuration->displayDetailsOnPhpunitNotices() || $configuration->displayDetailsOnAllIssues(), + true, + true, true, true, $configuration->displayDetailsOnIncompleteTests() || $configuration->displayDetailsOnAllIssues(), @@ -270,10 +266,6 @@ final class Facade ); } - /** - * @throws EventFacadeIsSealedException - * @throws UnknownSubscriberTypeException - */ private static function createUnexpectedOutputPrinter(): void { assert(self::$printer !== null); diff --git a/vendor/phpunit/phpunit/src/TextUI/Output/SummaryPrinter.php b/vendor/phpunit/phpunit/src/TextUI/Output/SummaryPrinter.php index 2e4bc75e4..918164bbb 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Output/SummaryPrinter.php +++ b/vendor/phpunit/phpunit/src/TextUI/Output/SummaryPrinter.php @@ -102,6 +102,7 @@ final class SummaryPrinter $this->printCountString($result->numberOfWarnings(), 'Warnings', $color); $this->printCountString($result->numberOfPhpOrUserDeprecations(), 'Deprecations', $color); $this->printCountString($result->numberOfPhpunitDeprecations(), 'PHPUnit Deprecations', $color); + $this->printCountString($result->numberOfPhpunitNotices(), 'PHPUnit Notices', $color); $this->printCountString($result->numberOfNotices(), 'Notices', $color); $this->printCountString($result->numberOfTestSkippedByTestSuiteSkippedEvents() + $result->numberOfTestSkippedEvents(), 'Skipped', $color); $this->printCountString($result->numberOfTestMarkedIncompleteEvents(), 'Incomplete', $color); diff --git a/vendor/phpunit/phpunit/src/TextUI/Output/TestDox/ResultPrinter.php b/vendor/phpunit/phpunit/src/TextUI/Output/TestDox/ResultPrinter.php index 007ef4dc9..b6ff34163 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Output/TestDox/ResultPrinter.php +++ b/vendor/phpunit/phpunit/src/TextUI/Output/TestDox/ResultPrinter.php @@ -50,7 +50,7 @@ final readonly class ResultPrinter } /** - * @param array $tests + * @param array $tests */ public function print(TestResult $result, array $tests): void { @@ -87,11 +87,11 @@ final readonly class ResultPrinter } /** - * @param array $tests + * @param array $tests */ private function doPrint(array $tests, bool $onlySummary): void { - foreach ($tests as $prettifiedClassName => $_tests) { + foreach ($tests as $_tests) { $print = true; if ($onlySummary) { @@ -116,7 +116,7 @@ final readonly class ResultPrinter continue; } - $this->printPrettifiedClassName($prettifiedClassName); + $this->printPrettifiedClassName($_tests->asArray()[0]->test()->testDox()->prettifiedClassName()); foreach ($_tests as $test) { if ($onlySummary && $test->status()->isSuccess()) { @@ -212,14 +212,14 @@ final readonly class ResultPrinter $stackTrace = $this->formatStackTrace($throwable->stackTrace()); $diff = ''; - if (!empty($message) && $this->colors) { + if ($message !== '' && $this->colors) { ['message' => $message, 'diff' => $diff] = $this->colorizeMessageAndDiff( $message, $this->messageColorFor($status), ); } - if (!empty($message)) { + if ($message !== '') { $this->printer->print( $this->prefixLines( $this->prefixFor('message', $status), @@ -230,7 +230,7 @@ final readonly class ResultPrinter $this->printer->print(PHP_EOL); } - if (!empty($diff)) { + if ($diff !== '') { $this->printer->print( $this->prefixLines( $this->prefixFor('diff', $status), @@ -241,8 +241,8 @@ final readonly class ResultPrinter $this->printer->print(PHP_EOL); } - if (!empty($stackTrace)) { - if (!empty($message) || !empty($diff)) { + if ($stackTrace !== '') { + if ($message !== '' || $diff !== '') { $tracePrefix = $this->prefixFor('default', $status); } else { $tracePrefix = $this->prefixFor('trace', $status); @@ -283,7 +283,12 @@ final readonly class ResultPrinter */ private function colorizeMessageAndDiff(string $buffer, string $style): array { - $lines = $buffer ? array_map('\rtrim', explode(PHP_EOL, $buffer)) : []; + $lines = []; + + if ($buffer !== '') { + $lines = array_map('\rtrim', explode(PHP_EOL, $buffer)); + } + $message = []; $diff = []; $insideDiff = false; @@ -311,7 +316,7 @@ final readonly class ResultPrinter $message = implode(PHP_EOL, $message); $diff = implode(PHP_EOL, $diff); - if (!empty($message)) { + if ($message !== '') { // Testdox output has a left-margin of 5; keep right-margin to prevent terminal scrolling $message = Color::colorizeTextBox($style, $message, $this->columns - 7); } @@ -332,7 +337,7 @@ final readonly class ResultPrinter $previousPath = ''; foreach (explode(PHP_EOL, $stackTrace) as $line) { - if (preg_match('/^(.*):(\d+)$/', $line, $matches)) { + if (preg_match('/^(.*):(\d+)$/', $line, $matches) > 0) { $lines[] = Color::colorizePath($matches[1], $previousPath) . Color::dim(':') . Color::colorize('fg-blue', $matches[2]) . "\n"; $previousPath = $matches[1]; @@ -348,11 +353,17 @@ final readonly class ResultPrinter private function prefixLines(string $prefix, string $message): string { + $lines = preg_split('/\r\n|\r|\n/', $message); + + if ($lines === false) { + $lines = []; + } + return implode( PHP_EOL, array_map( - static fn (string $line) => ' ' . $prefix . ($line ? ' ' . $line : ''), - preg_split('/\r\n|\r|\n/', $message), + static fn (string $line) => ' ' . $prefix . ($line !== '' ? ' ' . $line : ''), + $lines, ), ); } @@ -460,7 +471,7 @@ final readonly class ResultPrinter */ private function printBeforeClassOrAfterClassErrors(string $type, array $errors): void { - if (empty($errors)) { + if ($errors === []) { return; } diff --git a/vendor/phpunit/phpunit/src/TextUI/ShellExitCodeCalculator.php b/vendor/phpunit/phpunit/src/TextUI/ShellExitCodeCalculator.php index e16c026e4..cc95d33c1 100644 --- a/vendor/phpunit/phpunit/src/TextUI/ShellExitCodeCalculator.php +++ b/vendor/phpunit/phpunit/src/TextUI/ShellExitCodeCalculator.php @@ -19,14 +19,15 @@ use PHPUnit\TextUI\Configuration\Configuration; */ final readonly class ShellExitCodeCalculator { - private const SUCCESS_EXIT = 0; - private const FAILURE_EXIT = 1; - private const EXCEPTION_EXIT = 2; + private const int SUCCESS_EXIT = 0; + private const int FAILURE_EXIT = 1; + private const int EXCEPTION_EXIT = 2; public function calculate(Configuration $configuration, TestResult $result): int { $failOnDeprecation = false; $failOnPhpunitDeprecation = false; + $failOnPhpunitNotice = false; $failOnPhpunitWarning = false; $failOnEmptyTestSuite = false; $failOnIncomplete = false; @@ -38,6 +39,7 @@ final readonly class ShellExitCodeCalculator if ($configuration->failOnAllIssues()) { $failOnDeprecation = true; $failOnPhpunitDeprecation = true; + $failOnPhpunitNotice = true; $failOnPhpunitWarning = true; $failOnEmptyTestSuite = true; $failOnIncomplete = true; @@ -63,6 +65,14 @@ final readonly class ShellExitCodeCalculator $failOnPhpunitDeprecation = false; } + if ($configuration->failOnPhpunitNotice()) { + $failOnPhpunitNotice = true; + } + + if ($configuration->doNotFailOnPhpunitNotice()) { + $failOnPhpunitNotice = false; + } + if ($configuration->failOnPhpunitWarning()) { $failOnPhpunitWarning = true; } @@ -137,6 +147,10 @@ final readonly class ShellExitCodeCalculator $returnCode = self::FAILURE_EXIT; } + if ($failOnPhpunitNotice && $result->hasPhpunitNotices()) { + $returnCode = self::FAILURE_EXIT; + } + if ($failOnPhpunitWarning && $result->hasPhpunitWarnings()) { $returnCode = self::FAILURE_EXIT; } diff --git a/vendor/phpunit/phpunit/src/Util/Color.php b/vendor/phpunit/phpunit/src/Util/Color.php index 6cfbb7b5a..c225e37b7 100644 --- a/vendor/phpunit/phpunit/src/Util/Color.php +++ b/vendor/phpunit/phpunit/src/Util/Color.php @@ -34,17 +34,17 @@ use function trim; final class Color { /** - * @var array + * @var non-empty-array */ - private const WHITESPACE_MAP = [ + private const array WHITESPACE_MAP = [ ' ' => '·', "\t" => '⇥', ]; /** - * @var array + * @var non-empty-array */ - private const WHITESPACE_EOL_MAP = [ + private const array WHITESPACE_EOL_MAP = [ ' ' => '·', "\t" => '⇥', "\n" => '↵', @@ -52,9 +52,9 @@ final class Color ]; /** - * @var array + * @var non-empty-array */ - private static array $ansiCodes = [ + private const array ANSI_CODES = [ 'reset' => '0', 'bold' => '1', 'dim' => '2', @@ -90,12 +90,12 @@ final class Color $styles = []; foreach ($codes as $code) { - if (isset(self::$ansiCodes[$code])) { - $styles[] = self::$ansiCodes[$code]; + if (isset(self::ANSI_CODES[$code])) { + $styles[] = self::ANSI_CODES[$code]; } } - if (empty($styles)) { + if ($styles === []) { return $buffer; } @@ -138,7 +138,7 @@ final class Color $last = count($path) - 1; $path[$last] = preg_replace_callback( '/([\-_.]+|phpt$)/', - static fn ($matches) => self::dim($matches[0]), + static fn (array $matches) => self::dim($matches[0]), $path[$last], ); } @@ -161,7 +161,7 @@ final class Color return preg_replace_callback( '/\s+/', - static fn ($matches) => self::dim(strtr($matches[0], $replaceMap)), + static fn (array $matches) => self::dim(strtr($matches[0], $replaceMap)), $buffer, ); } diff --git a/vendor/phpunit/phpunit/src/Util/ExcludeList.php b/vendor/phpunit/phpunit/src/Util/ExcludeList.php index e935ae8de..7ec8d4273 100644 --- a/vendor/phpunit/phpunit/src/Util/ExcludeList.php +++ b/vendor/phpunit/phpunit/src/Util/ExcludeList.php @@ -10,6 +10,7 @@ namespace PHPUnit\Util; use const PHP_OS_FAMILY; +use function assert; use function class_exists; use function defined; use function dirname; @@ -26,8 +27,6 @@ use PHPUnit\Framework\TestCase; use ReflectionClass; use SebastianBergmann\CliParser\Parser as CliParser; use SebastianBergmann\CodeCoverage\CodeCoverage; -use SebastianBergmann\CodeUnit\CodeUnit; -use SebastianBergmann\CodeUnitReverseLookup\Wizard; use SebastianBergmann\Comparator\Comparator; use SebastianBergmann\Complexity\Calculator; use SebastianBergmann\Diff\Diff; @@ -53,9 +52,9 @@ use TheSeer\Tokenizer\Tokenizer; final class ExcludeList { /** - * @var array + * @var non-empty-array */ - private const EXCLUDED_CLASS_NAMES = [ + private const array EXCLUDED_CLASS_NAMES = [ // composer ClassLoader::class => 1, @@ -92,12 +91,6 @@ final class ExcludeList // sebastian/cli-parser CliParser::class => 1, - // sebastian/code-unit - CodeUnit::class => 1, - - // sebastian/code-unit-reverse-lookup - Wizard::class => 1, - // sebastian/comparator Comparator::class => 1, @@ -159,7 +152,11 @@ final class ExcludeList throw new InvalidDirectoryException($directory); } - self::$directories[] = realpath($directory); + $directory = realpath($directory); + + assert($directory !== false); + + self::$directories[] = $directory; } public function __construct(?bool $enabled = null) diff --git a/vendor/phpunit/phpunit/src/Util/Exporter.php b/vendor/phpunit/phpunit/src/Util/Exporter.php index 182499e9d..ed8a7b1ca 100644 --- a/vendor/phpunit/phpunit/src/Util/Exporter.php +++ b/vendor/phpunit/phpunit/src/Util/Exporter.php @@ -21,7 +21,9 @@ final class Exporter public static function export(mixed $value): string { - return self::exporter()->export($value); + return Sanitizer::sanitizeBidirectionalControlCharacters( + self::exporter()->export($value), + ); } /** @@ -29,12 +31,16 @@ final class Exporter */ public static function shortenedRecursiveExport(array $data): string { - return self::exporter()->shortenedRecursiveExport($data); + return Sanitizer::sanitizeBidirectionalControlCharacters( + self::exporter()->shortenedRecursiveExport($data), + ); } public static function shortenedExport(mixed $value): string { - return self::exporter()->shortenedExport($value); + return Sanitizer::sanitizeBidirectionalControlCharacters( + self::exporter()->shortenedExport($value), + ); } private static function exporter(): OriginalExporter diff --git a/vendor/phpunit/phpunit/src/Util/Filter.php b/vendor/phpunit/phpunit/src/Util/Filter.php index b92a26ce8..e6ab7d35b 100644 --- a/vendor/phpunit/phpunit/src/Util/Filter.php +++ b/vendor/phpunit/phpunit/src/Util/Filter.php @@ -12,6 +12,7 @@ namespace PHPUnit\Util; use function array_unshift; use function defined; use function in_array; +use function is_array; use function is_file; use function realpath; use function sprintf; @@ -41,7 +42,7 @@ final readonly class Filter $file = $t->getFile(); $line = $t->getLine(); } else { - if ($unwrap && $t->getPrevious()) { + if ($unwrap && $t->getPrevious() !== null) { $t = $t->getPrevious(); } @@ -61,9 +62,9 @@ final readonly class Filter } /** - * @param list, object?: object}> $frames + * @param list $frames */ - public static function stackTraceAsString(array $frames): string + private static function stackTraceAsString(array $frames): string { $buffer = ''; $prefix = defined('__PHPUNIT_PHAR_ROOT__') ? __PHPUNIT_PHAR_ROOT__ : false; @@ -83,7 +84,7 @@ final readonly class Filter } /** - * @param array{function?: string, line?: int, file?: string, class?: class-string, type?: string, args?: list, object?: object} $frame + * @param array{file?: non-empty-string, ...} $frame */ private static function shouldPrintFrame(array $frame, false|string $prefix, ExcludeList $excludeList): bool { @@ -111,13 +112,15 @@ final readonly class Filter private static function fileIsExcluded(string $file, ExcludeList $excludeList): bool { - return (empty($GLOBALS['__PHPUNIT_ISOLATION_EXCLUDE_LIST']) || + return (!isset($GLOBALS['__PHPUNIT_ISOLATION_EXCLUDE_LIST']) || + !is_array($GLOBALS['__PHPUNIT_ISOLATION_EXCLUDE_LIST']) || + $GLOBALS['__PHPUNIT_ISOLATION_EXCLUDE_LIST'] === [] || !in_array($file, $GLOBALS['__PHPUNIT_ISOLATION_EXCLUDE_LIST'], true)) && !$excludeList->isExcluded($file); } /** - * @param list, object?: object}> $trace + * @param list $trace */ private static function frameExists(array $trace, string $file, int $line): bool { diff --git a/vendor/phpunit/phpunit/src/Util/GlobalState.php b/vendor/phpunit/phpunit/src/Util/GlobalState.php index ee97d39a2..ecf23b7a5 100644 --- a/vendor/phpunit/phpunit/src/Util/GlobalState.php +++ b/vendor/phpunit/phpunit/src/Util/GlobalState.php @@ -11,7 +11,6 @@ namespace PHPUnit\Util; use const PHP_MAJOR_VERSION; use const PHP_MINOR_VERSION; -use function array_keys; use function array_reverse; use function array_shift; use function assert; @@ -31,6 +30,7 @@ use function str_starts_with; use function strtr; use function var_export; use Closure; +use Throwable; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit @@ -40,9 +40,9 @@ use Closure; final readonly class GlobalState { /** - * @var list + * @var non-empty-list */ - private const SUPER_GLOBAL_ARRAYS = [ + private const array SUPER_GLOBAL_ARRAYS = [ '_ENV', '_POST', '_GET', @@ -53,9 +53,27 @@ final readonly class GlobalState ]; /** - * @var array> + * Keys in $_SERVER that are populated by the SAPI in the child process + * and must therefore not be preserved from the parent process. + * + * @var non-empty-list */ - private const DEPRECATED_INI_SETTINGS = [ + private const array SAPI_SERVER_KEYS = [ + 'PHP_SELF', + 'SCRIPT_NAME', + 'SCRIPT_FILENAME', + 'PATH_TRANSLATED', + 'DOCUMENT_ROOT', + 'REQUEST_TIME', + 'REQUEST_TIME_FLOAT', + 'argv', + 'argc', + ]; + + /** + * @var non-empty-array> + */ + private const array DEPRECATED_INI_SETTINGS = [ '7.3' => [ 'iconv.input_encoding' => true, 'iconv.output_encoding' => true, @@ -197,7 +215,9 @@ final readonly class GlobalState } foreach (array_reverse($files) as $file) { - if (!empty($GLOBALS['__PHPUNIT_ISOLATION_EXCLUDE_LIST']) && + if (isset($GLOBALS['__PHPUNIT_ISOLATION_EXCLUDE_LIST']) && + is_array($GLOBALS['__PHPUNIT_ISOLATION_EXCLUDE_LIST']) && + $GLOBALS['__PHPUNIT_ISOLATION_EXCLUDE_LIST'] !== [] && in_array($file, $GLOBALS['__PHPUNIT_ISOLATION_EXCLUDE_LIST'], true)) { continue; } @@ -207,7 +227,7 @@ final readonly class GlobalState } // Skip virtual file system protocols - if (preg_match('/^(vfs|phpvfs[a-z0-9]+):/', $file)) { + if (preg_match('/^(vfs|phpvfs[a-z0-9]+):/', $file) > 0) { continue; } @@ -261,23 +281,36 @@ final readonly class GlobalState return $result; } - public static function getGlobalsAsString(): string + public static function exportGlobals(): GlobalStateResult { - $result = ''; + $result = ''; + $skippedGlobals = []; foreach (self::SUPER_GLOBAL_ARRAYS as $superGlobalArray) { if (isset($GLOBALS[$superGlobalArray]) && is_array($GLOBALS[$superGlobalArray])) { - foreach (array_keys($GLOBALS[$superGlobalArray]) as $key) { - if ($GLOBALS[$superGlobalArray][$key] instanceof Closure) { + foreach ($GLOBALS[$superGlobalArray] as $key => $value) { + if ($superGlobalArray === '_SERVER' && in_array($key, self::SAPI_SERVER_KEYS, true)) { continue; } - $result .= sprintf( - '$GLOBALS[\'%s\'][\'%s\'] = %s;' . "\n", - $superGlobalArray, - $key, - self::exportVariable($GLOBALS[$superGlobalArray][$key]), - ); + $name = sprintf('$GLOBALS[\'%s\'][\'%s\']', $superGlobalArray, $key); + + if ($value instanceof Closure) { + $skippedGlobals[] = ['name' => $name, 'reason' => 'is a Closure']; + + continue; + } + + try { + $result .= sprintf( + '$GLOBALS[\'%s\'][\'%s\'] = %s;' . "\n", + $superGlobalArray, + $key, + self::exportVariable($GLOBALS[$superGlobalArray][$key]), + ); + } catch (Throwable) { + $skippedGlobals[] = ['name' => $name, 'reason' => 'is not serializable']; + } } } } @@ -285,17 +318,31 @@ final readonly class GlobalState $excludeList = self::SUPER_GLOBAL_ARRAYS; $excludeList[] = 'GLOBALS'; - foreach (array_keys($GLOBALS) as $key) { - if (!$GLOBALS[$key] instanceof Closure && !in_array($key, $excludeList, true)) { + foreach ($GLOBALS as $key => $value) { + if (in_array($key, $excludeList, true)) { + continue; + } + + $name = sprintf('$GLOBALS[\'%s\']', $key); + + if ($value instanceof Closure) { + $skippedGlobals[] = ['name' => $name, 'reason' => 'is a Closure']; + + continue; + } + + try { $result .= sprintf( '$GLOBALS[\'%s\'] = %s;' . "\n", $key, - self::exportVariable($GLOBALS[$key]), + self::exportVariable($value), ); + } catch (Throwable) { + $skippedGlobals[] = ['name' => $name, 'reason' => 'is not serializable']; } } - return $result; + return new GlobalStateResult($result, $skippedGlobals); } private static function exportVariable(mixed $variable): string diff --git a/vendor/phpunit/phpunit/src/Util/GlobalStateResult.php b/vendor/phpunit/phpunit/src/Util/GlobalStateResult.php new file mode 100644 index 000000000..290c7986d --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/GlobalStateResult.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util; + +/** + * @immutable + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class GlobalStateResult +{ + /** + * @param list $skippedGlobals + */ + private string $globalsString; + + /** + * @var list + */ + private array $skippedGlobals; + + /** + * @param list $skippedGlobals + */ + public function __construct(string $globalsString, array $skippedGlobals) + { + $this->globalsString = $globalsString; + $this->skippedGlobals = $skippedGlobals; + } + + public function globalsString(): string + { + return $this->globalsString; + } + + /** + * @return list + */ + public function skippedGlobals(): array + { + return $this->skippedGlobals; + } + + public function hasSkippedGlobals(): bool + { + return $this->skippedGlobals !== []; + } +} diff --git a/vendor/phpunit/phpunit/src/Util/Json.php b/vendor/phpunit/phpunit/src/Util/Json.php index 8e7a92ba9..cbe959acc 100644 --- a/vendor/phpunit/phpunit/src/Util/Json.php +++ b/vendor/phpunit/phpunit/src/Util/Json.php @@ -9,10 +9,12 @@ */ namespace PHPUnit\Util; +use const JSON_ERROR_NONE; use const JSON_PRETTY_PRINT; use const JSON_UNESCAPED_SLASHES; use const JSON_UNESCAPED_UNICODE; use const SORT_STRING; +use function assert; use function is_object; use function is_scalar; use function json_decode; @@ -34,11 +36,15 @@ final readonly class Json { $decodedJson = json_decode($json, false); - if (json_last_error()) { + if (json_last_error() !== JSON_ERROR_NONE) { throw new InvalidJsonException; } - return json_encode($decodedJson, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); + $result = json_encode($decodedJson, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); + + assert($result !== false); + + return $result; } /** @@ -52,7 +58,7 @@ final readonly class Json { $decodedJson = json_decode($json); - if (json_last_error()) { + if (json_last_error() !== JSON_ERROR_NONE) { return [true, null]; } @@ -71,8 +77,7 @@ final readonly class Json */ private static function recursiveSort(mixed &$json): void { - // Nulls, empty arrays, and scalars need no further handling. - if (!$json || is_scalar($json)) { + if ($json === null || $json === [] || is_scalar($json)) { return; } diff --git a/vendor/phpunit/phpunit/src/Util/PHP/JobRunner.php b/vendor/phpunit/phpunit/src/Util/PHP/JobRunner.php index 651aff150..d2dd0047b 100644 --- a/vendor/phpunit/phpunit/src/Util/PHP/JobRunner.php +++ b/vendor/phpunit/phpunit/src/Util/PHP/JobRunner.php @@ -13,7 +13,10 @@ use const PHP_BINARY; use const PHP_SAPI; use function array_keys; use function array_merge; +use function array_values; use function assert; +use function count; +use function explode; use function fclose; use function file_get_contents; use function file_put_contents; @@ -25,6 +28,9 @@ use function is_file; use function is_resource; use function proc_close; use function proc_open; +use function sprintf; +use function str_contains; +use function str_replace; use function str_starts_with; use function stream_get_contents; use function sys_get_temp_dir; @@ -54,9 +60,10 @@ final readonly class JobRunner } /** - * @param non-empty-string $processResultFile + * @param non-empty-string $processResultFile + * @param ?non-empty-string $processResultNonce */ - public function runTestJob(Job $job, string $processResultFile, Test $test): void + public function runTestJob(Job $job, string $processResultFile, Test $test, ?string $processResultNonce = null): void { $result = $this->run($job); @@ -74,9 +81,10 @@ final readonly class JobRunner $test, $processResult, $result->stderr(), + $processResultNonce, ); - EventFacade::emitter()->testRunnerFinishedChildProcess($result->stdout(), $result->stderr()); + EventFacade::emitter()->childProcessFinished($result->stdout(), $result->stderr()); } /** @@ -166,7 +174,7 @@ final readonly class JobRunner // @codeCoverageIgnoreEnd } - Facade::emitter()->testRunnerStartedChildProcess(); + Facade::emitter()->childProcessStarted(); fwrite($pipes[0], $job->code()); fclose($pipes[0]); @@ -222,11 +230,15 @@ final readonly class JobRunner assert($pcovSettings !== false); + // The settings forwarded from the current process must be applied + // before the settings configured for the job so that the latter, + // for instance a "pcov.directory" set in the --INI-- section of a + // PHPT test, take precedence: the value of the last -d flag wins. $phpSettings = array_merge( - $phpSettings, $runtime->getCurrentSettings( array_keys($pcovSettings), ), + $phpSettings, ); } elseif ($runtime->hasXdebug()) { assert(function_exists('xdebug_is_debugger_active')); @@ -235,11 +247,14 @@ final readonly class JobRunner assert($xdebugSettings !== false); + // The settings forwarded from the current process must be applied + // before the settings configured for the job so that the latter + // take precedence: the value of the last -d flag wins. $phpSettings = array_merge( - $phpSettings, $runtime->getCurrentSettings( array_keys($xdebugSettings), ), + $phpSettings, ); if ( @@ -253,7 +268,9 @@ final readonly class JobRunner } } - $command = array_merge($command, $this->settingsToParameters($phpSettings)); + $phpSettings = array_merge($phpSettings, $this->cliIniOverrides($phpSettings)); + + $command = array_merge($command, $this->settingsToParameters(array_values($phpSettings))); if (PHP_SAPI === 'phpdbg') { $command[] = '-qrr'; @@ -281,9 +298,41 @@ final readonly class JobRunner return $command; } + /** + * Detects INI settings that cannot be set via ini_set() (PHP_INI_SYSTEM + * and PHP_INI_PERDIR) and whose current value differs from the value + * configured in INI files. + * + * These settings must be forwarded as -d flags to child processes + * because the @ini_set() calls in GlobalState::getIniSettingsAsString() + * cannot change them at runtime. + * + * @param array $alreadySet + * + * @return array + */ + private function cliIniOverrides(array $alreadySet): array + { + $overrides = (new Runtime)->getSettingsNotChangeableAtRuntime(); + + foreach ($overrides as $key => $value) { + foreach ($alreadySet as $existing) { + if (str_starts_with($existing, $key . '=')) { + unset($overrides[$key]); + + break; + } + } + } + + return $overrides; + } + /** * @param list $settings * + * @throws PhpProcessException + * * @return list */ private function settingsToParameters(array $settings): array @@ -292,9 +341,55 @@ final readonly class JobRunner foreach ($settings as $setting) { $buffer[] = '-d'; - $buffer[] = $setting; + $buffer[] = $this->processSettingValue($setting); } return $buffer; } + + /** + * Rejects "name=value" INI settings whose value contains a line-break + * character. A newline cannot legitimately appear in a PHP INI value and + * would, if forwarded unchanged, be parsed by the child process as a + * directive separator — turning a single setting into an attacker- + * controlled sequence of directives. + * + * Otherwise quotes the value portion only when it contains characters + * PHP's INI parser would interpret as metacharacters (`;` starts a + * comment, `"` is a string delimiter, `=` is the assignment operator + * that would otherwise be parsed as starting a new directive and + * trigger `PHP: syntax error, unexpected '='`). + * + * Quoting is avoided for plain values so that boolean keywords such as + * `On` / `Off` keep their special INI semantics; wrapping them in quotes + * turns them into the literal strings `"On"` / `"Off"` and breaks + * settings like `output_buffering`. + * + * @throws PhpProcessException + */ + private function processSettingValue(string $setting): string + { + $parts = explode('=', $setting, 2); + + if (count($parts) !== 2) { + return $setting; + } + + [$name, $value] = $parts; + + if (str_contains($value, "\n") || str_contains($value, "\r")) { + throw new PhpProcessException( + sprintf( + 'PHP setting "%s" contains a line-break character, which is not permitted', + $name, + ), + ); + } + + if (!str_contains($value, ';') && !str_contains($value, '"') && !str_contains($value, '=')) { + return $setting; + } + + return $name . '="' . str_replace('"', '\\"', $value) . '"'; + } } diff --git a/vendor/phpunit/phpunit/src/Util/PHP/JobRunnerRegistry.php b/vendor/phpunit/phpunit/src/Util/PHP/JobRunnerRegistry.php index a02cb68d0..7f05057c1 100644 --- a/vendor/phpunit/phpunit/src/Util/PHP/JobRunnerRegistry.php +++ b/vendor/phpunit/phpunit/src/Util/PHP/JobRunnerRegistry.php @@ -30,11 +30,12 @@ final class JobRunnerRegistry } /** - * @param non-empty-string $processResultFile + * @param non-empty-string $processResultFile + * @param ?non-empty-string $processResultNonce */ - public static function runTestJob(Job $job, string $processResultFile, Test $test): void + public static function runTestJob(Job $job, string $processResultFile, Test $test, ?string $processResultNonce = null): void { - self::runner()->runTestJob($job, $processResultFile, $test); + self::runner()->runTestJob($job, $processResultFile, $test, $processResultNonce); } public static function set(JobRunner $runner): void diff --git a/vendor/phpunit/phpunit/src/Util/Sanitizer.php b/vendor/phpunit/phpunit/src/Util/Sanitizer.php new file mode 100644 index 000000000..3f0ee27b3 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/Sanitizer.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util; + +use function mb_ord; +use function preg_replace_callback; +use function sprintf; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final readonly class Sanitizer +{ + /** + * Replaces Unicode bidirectional formatting characters with their visible \u{NNNN} escape sequence. + * + * Matches the UTF-8 byte sequences for U+202A-U+202E and U+2066-U+2069 directly so that + * the function is safe to call on strings that are not valid UTF-8. + * + * @see https://github.com/sebastianbergmann/phpunit/issues/6605 + */ + public static function sanitizeBidirectionalControlCharacters(string $value): string + { + return preg_replace_callback( + '/\xE2\x80[\xAA-\xAE]|\xE2\x81[\xA6-\xA9]/', + static fn (array $matches) => sprintf('\u{%04X}', mb_ord($matches[0], 'UTF-8')), + $value, + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Util/ThrowableToStringMapper.php b/vendor/phpunit/phpunit/src/Util/ThrowableToStringMapper.php index bdc5880ee..0fcf3695b 100644 --- a/vendor/phpunit/phpunit/src/Util/ThrowableToStringMapper.php +++ b/vendor/phpunit/phpunit/src/Util/ThrowableToStringMapper.php @@ -32,7 +32,7 @@ final readonly class ThrowableToStringMapper if ($t instanceof SelfDescribing) { $buffer = $t->toString(); - if ($t instanceof ExpectationFailedException && $t->getComparisonFailure()) { + if ($t instanceof ExpectationFailedException && $t->getComparisonFailure() !== null) { $buffer .= $t->getComparisonFailure()->getDiff(); } @@ -40,7 +40,7 @@ final readonly class ThrowableToStringMapper $buffer .= $t->diff(); } - if (!empty($buffer)) { + if ($buffer !== '') { $buffer = trim($buffer) . "\n"; } diff --git a/vendor/phpunit/phpunit/src/Util/Xml/Loader.php b/vendor/phpunit/phpunit/src/Util/Xml/Loader.php index 03c3c20d2..e8788ba42 100644 --- a/vendor/phpunit/phpunit/src/Util/Xml/Loader.php +++ b/vendor/phpunit/phpunit/src/Util/Xml/Loader.php @@ -9,6 +9,8 @@ */ namespace PHPUnit\Util\Xml; +use const LIBXML_NONET; +use function assert; use function error_reporting; use function file_get_contents; use function libxml_get_errors; @@ -16,6 +18,8 @@ use function libxml_use_internal_errors; use function sprintf; use function trim; use DOMDocument; +use DOMNode; +use DOMXPath; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit @@ -27,7 +31,7 @@ final readonly class Loader /** * @throws XmlException */ - public function loadFile(string $filename): DOMDocument + public function loadFile(string $filename, bool $ignoreComments = false): DOMDocument { $reporting = error_reporting(0); $contents = file_get_contents($filename); @@ -52,13 +56,13 @@ final readonly class Loader ); } - return $this->load($contents); + return $this->load($contents, $ignoreComments); } /** * @throws XmlException */ - public function load(string $actual): DOMDocument + public function load(string $actual, bool $ignoreComments = false): DOMDocument { if ($actual === '') { throw new XmlException('Could not parse XML from empty string'); @@ -70,7 +74,7 @@ final readonly class Loader $internal = libxml_use_internal_errors(true); $message = ''; $reporting = error_reporting(0); - $loaded = $document->loadXML($actual); + $loaded = $document->loadXML($actual, LIBXML_NONET); foreach (libxml_get_errors() as $error) { $message .= "\n" . $error->message; @@ -89,6 +93,25 @@ final readonly class Loader throw new XmlException($message); } + if ($ignoreComments) { + $this->removeComments($document); + } + return $document; } + + private function removeComments(DOMDocument $document): void + { + $xpath = new DOMXPath($document); + $comments = $xpath->query('//comment()'); + + assert($comments !== false); + + foreach ($comments as $comment) { + assert($comment instanceof DOMNode); + assert($comment->parentNode !== null); + + $comment->parentNode->removeChild($comment); + } + } } diff --git a/vendor/sebastian/cli-parser/ChangeLog.md b/vendor/sebastian/cli-parser/ChangeLog.md index 29582e92d..abf943efd 100644 --- a/vendor/sebastian/cli-parser/ChangeLog.md +++ b/vendor/sebastian/cli-parser/ChangeLog.md @@ -2,6 +2,28 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. +## [4.2.1] - 2026-05-17 + +* No changes + +## [4.2.0] - 2025-09-14 + +### Changed + +* [#3](https://github.com/sebastianbergmann/cli-parser/pull/3): Print most similar options when reporting unknown options + +## [4.1.0] - 2025-09-13 + +### Changed + +* [#2](https://github.com/sebastianbergmann/cli-parser/pull/2): Print similar options when reporting ambiguous options + +## [4.0.0] - 2025-02-07 + +### Removed + +* This component is no longer supported on PHP 8.2 + ## [3.0.2] - 2024-07-03 ### Changed @@ -42,6 +64,10 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * Initial release +[4.2.1]: https://github.com/sebastianbergmann/cli-parser/compare/4.2.0...4.2.1 +[4.2.0]: https://github.com/sebastianbergmann/cli-parser/compare/4.1.0...4.2.0 +[4.1.0]: https://github.com/sebastianbergmann/cli-parser/compare/4.0.0...4.1.0 +[4.0.0]: https://github.com/sebastianbergmann/cli-parser/compare/3.0...4.0.0 [3.0.2]: https://github.com/sebastianbergmann/cli-parser/compare/3.0.1...3.0.2 [3.0.1]: https://github.com/sebastianbergmann/cli-parser/compare/3.0.0...3.0.1 [3.0.0]: https://github.com/sebastianbergmann/cli-parser/compare/2.0...3.0.0 diff --git a/vendor/sebastian/cli-parser/LICENSE b/vendor/sebastian/cli-parser/LICENSE index edaedf619..a48fe5da4 100644 --- a/vendor/sebastian/cli-parser/LICENSE +++ b/vendor/sebastian/cli-parser/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2020-2024, Sebastian Bergmann +Copyright (c) 2020-2026, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/sebastian/cli-parser/README.md b/vendor/sebastian/cli-parser/README.md index 205cfe18e..d974c124c 100644 --- a/vendor/sebastian/cli-parser/README.md +++ b/vendor/sebastian/cli-parser/README.md @@ -1,4 +1,4 @@ -[![Latest Stable Version](https://poser.pugx.org/sebastian/cli-parser/v/stable.png)](https://packagist.org/packages/sebastian/cli-parser) +[![Latest Stable Version](https://poser.pugx.org/sebastian/cli-parser/v)](https://packagist.org/packages/sebastian/cli-parser) [![CI Status](https://github.com/sebastianbergmann/cli-parser/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/cli-parser/actions) [![codecov](https://codecov.io/gh/sebastianbergmann/cli-parser/branch/main/graph/badge.svg)](https://codecov.io/gh/sebastianbergmann/cli-parser) diff --git a/vendor/sebastian/cli-parser/composer.json b/vendor/sebastian/cli-parser/composer.json index efb0df1b8..1cab0efd3 100644 --- a/vendor/sebastian/cli-parser/composer.json +++ b/vendor/sebastian/cli-parser/composer.json @@ -17,14 +17,14 @@ }, "prefer-stable": true, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.5.25" }, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true @@ -36,7 +36,7 @@ }, "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.2-dev" } } } diff --git a/vendor/sebastian/cli-parser/src/Parser.php b/vendor/sebastian/cli-parser/src/Parser.php index 324d7e763..3ba459c63 100644 --- a/vendor/sebastian/cli-parser/src/Parser.php +++ b/vendor/sebastian/cli-parser/src/Parser.php @@ -19,19 +19,21 @@ use function current; use function explode; use function is_array; use function is_int; -use function is_string; use function key; +use function levenshtein; use function next; use function preg_replace; use function reset; +use function rtrim; use function sort; use function str_ends_with; use function str_starts_with; use function strlen; use function strstr; use function substr; +use function usort; -final class Parser +final readonly class Parser { /** * @param list $argv @@ -42,11 +44,11 @@ final class Parser * @throws RequiredOptionArgumentMissingException * @throws UnknownOptionException * - * @return array{0: list, 1: list} + * @return array{0: list, 1: list} */ public function parse(array $argv, string $shortOptions, ?array $longOptions = null): array { - if (empty($argv)) { + if ($argv === []) { return [[], []]; } @@ -111,8 +113,8 @@ final class Parser } /** - * @param list $options - * @param list $argv + * @param list $options + * @param list $argv * * @throws RequiredOptionArgumentMissingException */ @@ -125,7 +127,7 @@ final class Parser $optionArgument = null; if ($argument[$i] === ':' || ($spec = strstr($shortOptions, $option)) === false) { - throw new UnknownOptionException('-' . $option); + throw new UnknownOptionException('-' . $option, []); } if (strlen($spec) > 1 && $spec[1] === ':') { @@ -142,8 +144,6 @@ final class Parser throw new RequiredOptionArgumentMissingException('-' . $option); } - assert(is_string($optionArgument)); - next($argv); } } @@ -153,9 +153,9 @@ final class Parser } /** - * @param list $longOptions - * @param list $options - * @param list $argv + * @param list $longOptions + * @param list $options + * @param list $argv * * @throws AmbiguousOptionException * @throws OptionDoesNotAllowArgumentException @@ -167,15 +167,20 @@ final class Parser $count = count($longOptions); $list = explode('=', $argument); $option = $list[0]; + $optionLength = strlen($option); + $similarOptions = []; $optionArgument = null; if (count($list) > 1) { $optionArgument = $list[1]; } - $optionLength = strlen($option); - foreach ($longOptions as $i => $longOption) { + $similarOptions[] = [ + levenshtein($longOption, $option), + '--' . rtrim($longOption, '='), + ]; + $opt_start = substr($longOption, 0, $optionLength); if ($opt_start !== $option) { @@ -184,12 +189,24 @@ final class Parser $opt_rest = substr($longOption, $optionLength); - if ($opt_rest !== '' && $i + 1 < $count && $option[0] !== '=' && str_starts_with($longOptions[$i + 1], $option)) { - throw new AmbiguousOptionException('--' . $option); + if ($opt_rest !== '' && + $i + 1 < $count && + $option[0] !== '=' && + /** @phpstan-ignore offsetAccess.notFound */ + str_starts_with($longOptions[$i + 1], $option)) { + $candidates = []; + + foreach ($longOptions as $aLongOption) { + if (str_starts_with($aLongOption, $option)) { + $candidates[] = '--' . rtrim($aLongOption, '='); + } + } + + throw new AmbiguousOptionException('--' . $option, $candidates); } if (str_ends_with($longOption, '=')) { - if (!str_ends_with($longOption, '==') && !strlen((string) $optionArgument)) { + if (!str_ends_with($longOption, '==') && (string) $optionArgument === '') { if (false === $optionArgument = current($argv)) { throw new RequiredOptionArgumentMissingException('--' . $option); } @@ -206,6 +223,30 @@ final class Parser return; } - throw new UnknownOptionException('--' . $option); + throw new UnknownOptionException('--' . $option, $this->formatSimilarOptions($similarOptions)); + } + + /** + * @param list $similarOptions + * + * @return array + */ + private function formatSimilarOptions(array $similarOptions): array + { + usort( + $similarOptions, + static function (array $a, array $b): int + { + return $a[0] <=> $b[0]; + }, + ); + + $similarFormatted = []; + + foreach (array_slice($similarOptions, 0, 5) as [$distance, $label]) { + $similarFormatted[] = $label; + } + + return $similarFormatted; } } diff --git a/vendor/sebastian/cli-parser/src/exceptions/AmbiguousOptionException.php b/vendor/sebastian/cli-parser/src/exceptions/AmbiguousOptionException.php index 99eb625a7..ab2ff4f22 100644 --- a/vendor/sebastian/cli-parser/src/exceptions/AmbiguousOptionException.php +++ b/vendor/sebastian/cli-parser/src/exceptions/AmbiguousOptionException.php @@ -9,17 +9,22 @@ */ namespace SebastianBergmann\CliParser; +use function implode; use function sprintf; use RuntimeException; final class AmbiguousOptionException extends RuntimeException implements Exception { - public function __construct(string $option) + /** + * @param array $candiates + */ + public function __construct(string $option, array $candiates) { parent::__construct( sprintf( - 'Option "%s" is ambiguous', + 'Option "%s" is ambiguous. Similar options are: %s', $option, + implode(', ', $candiates), ), ); } diff --git a/vendor/sebastian/cli-parser/src/exceptions/UnknownOptionException.php b/vendor/sebastian/cli-parser/src/exceptions/UnknownOptionException.php index 560c7ad22..3ddeddd1c 100644 --- a/vendor/sebastian/cli-parser/src/exceptions/UnknownOptionException.php +++ b/vendor/sebastian/cli-parser/src/exceptions/UnknownOptionException.php @@ -9,18 +9,30 @@ */ namespace SebastianBergmann\CliParser; +use function implode; use function sprintf; use RuntimeException; final class UnknownOptionException extends RuntimeException implements Exception { - public function __construct(string $option) + /** + * @param array $similarOptions + */ + public function __construct(string $option, array $similarOptions) { - parent::__construct( - sprintf( - 'Unknown option "%s"', - $option, - ), + $message = sprintf( + 'Unknown option "%s"', + $option, ); + + if ($similarOptions !== []) { + $message = sprintf( + 'Unknown option "%s". Most similar options are %s', + $option, + implode(', ', $similarOptions), + ); + } + + parent::__construct($message); } } diff --git a/vendor/sebastian/code-unit-reverse-lookup/ChangeLog.md b/vendor/sebastian/code-unit-reverse-lookup/ChangeLog.md deleted file mode 100644 index 2169ce618..000000000 --- a/vendor/sebastian/code-unit-reverse-lookup/ChangeLog.md +++ /dev/null @@ -1,59 +0,0 @@ -# Change Log - -All notable changes to `sebastianbergmann/code-unit-reverse-lookup` are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [4.0.1] - 2024-07-03 - -### Changed - -* This project now uses PHPStan instead of Psalm for static analysis - -## [4.0.0] - 2024-02-02 - -### Removed - -* This component is no longer supported on PHP 8.1 - -## [3.0.0] - 2023-02-03 - -### Removed - -* This component is no longer supported on PHP 7.3, PHP 7.4, and PHP 8.0 - -## [2.0.3] - 2020-09-28 - -### Changed - -* Changed PHP version constraint in `composer.json` from `^7.3 || ^8.0` to `>=7.3` - -## [2.0.2] - 2020-06-26 - -### Added - -* This component is now supported on PHP 8 - -## [2.0.1] - 2020-06-15 - -### Changed - -* Tests etc. are now ignored for archive exports - -## 2.0.0 - 2020-02-07 - -### Removed - -* This component is no longer supported on PHP 5.6, PHP 7.0, PHP 7.1, and PHP 7.2 - -## 1.0.0 - 2016-02-13 - -### Added - -* Initial release - -[4.0.1]: https://github.com/sebastianbergmann/code-unit-reverse-lookup/compare/4.0.0...4.0.1 -[4.0.0]: https://github.com/sebastianbergmann/code-unit-reverse-lookup/compare/3.0...4.0.0 -[3.0.0]: https://github.com/sebastianbergmann/code-unit-reverse-lookup/compare/2.0.3...3.0.0 -[2.0.3]: https://github.com/sebastianbergmann/code-unit-reverse-lookup/compare/2.0.2...2.0.3 -[2.0.2]: https://github.com/sebastianbergmann/code-unit-reverse-lookup/compare/2.0.1...2.0.2 -[2.0.1]: https://github.com/sebastianbergmann/code-unit-reverse-lookup/compare/2.0.0...2.0.1 -[2.0.0]: https://github.com/sebastianbergmann/code-unit-reverse-lookup/compare/1.0.0...2.0.0 diff --git a/vendor/sebastian/code-unit-reverse-lookup/LICENSE b/vendor/sebastian/code-unit-reverse-lookup/LICENSE deleted file mode 100644 index 86c455d71..000000000 --- a/vendor/sebastian/code-unit-reverse-lookup/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2016-2024, Sebastian Bergmann -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/sebastian/code-unit-reverse-lookup/README.md b/vendor/sebastian/code-unit-reverse-lookup/README.md deleted file mode 100644 index 331c23831..000000000 --- a/vendor/sebastian/code-unit-reverse-lookup/README.md +++ /dev/null @@ -1,21 +0,0 @@ -[![Latest Stable Version](https://poser.pugx.org/sebastian/code-unit-reverse-lookup/v/stable.png)](https://packagist.org/packages/sebastian/code-unit-reverse-lookup) -[![CI Status](https://github.com/sebastianbergmann/code-unit-reverse-lookup/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/code-unit-reverse-lookup/actions) -[![codecov](https://codecov.io/gh/sebastianbergmann/code-unit-reverse-lookup/branch/main/graph/badge.svg)](https://codecov.io/gh/sebastianbergmann/code-unit-reverse-lookup) - -# sebastian/code-unit-reverse-lookup - -Looks up which function or method a line of code belongs to. - -## Installation - -You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): - -``` -composer require sebastian/code-unit-reverse-lookup -``` - -If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: - -``` -composer require --dev sebastian/code-unit-reverse-lookup -``` diff --git a/vendor/sebastian/code-unit-reverse-lookup/SECURITY.md b/vendor/sebastian/code-unit-reverse-lookup/SECURITY.md deleted file mode 100644 index d88ff0019..000000000 --- a/vendor/sebastian/code-unit-reverse-lookup/SECURITY.md +++ /dev/null @@ -1,30 +0,0 @@ -# Security Policy - -If you believe you have found a security vulnerability in the library that is developed in this repository, please report it to us through coordinated disclosure. - -**Please do not report security vulnerabilities through public GitHub issues, discussions, or pull requests.** - -Instead, please email `sebastian@phpunit.de`. - -Please include as much of the information listed below as you can to help us better understand and resolve the issue: - -* The type of issue -* Full paths of source file(s) related to the manifestation of the issue -* The location of the affected source code (tag/branch/commit or direct URL) -* Any special configuration required to reproduce the issue -* Step-by-step instructions to reproduce the issue -* Proof-of-concept or exploit code (if possible) -* Impact of the issue, including how an attacker might exploit the issue - -This information will help us triage your report more quickly. - -## Web Context - -The library that is developed in this repository was either extracted from [PHPUnit](https://github.com/sebastianbergmann/phpunit) or developed specifically as a dependency for PHPUnit. - -The library is developed with a focus on development environments and the command-line. No specific testing or hardening with regard to using the library in an HTTP or web context or with untrusted input data is performed. The library might also contain functionality that intentionally exposes internal application data for debugging purposes. - -If the library is used in a web application, the application developer is responsible for filtering inputs or escaping outputs as necessary and for verifying that the used functionality is safe for use within the intended context. - -Vulnerabilities specific to the use outside a development context will be fixed as applicable, provided that the fix does not have an averse effect on the primary use case for development purposes. - diff --git a/vendor/sebastian/code-unit-reverse-lookup/composer.json b/vendor/sebastian/code-unit-reverse-lookup/composer.json deleted file mode 100644 index bf05a9e92..000000000 --- a/vendor/sebastian/code-unit-reverse-lookup/composer.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "sebastian/code-unit-reverse-lookup", - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "license": "BSD-3-Clause", - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy" - }, - "config": { - "platform": { - "php": "8.2.0" - }, - "optimize-autoloader": true, - "sort-packages": true - }, - "prefer-stable": true, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - } -} diff --git a/vendor/sebastian/code-unit-reverse-lookup/src/Wizard.php b/vendor/sebastian/code-unit-reverse-lookup/src/Wizard.php deleted file mode 100644 index c4780ef8d..000000000 --- a/vendor/sebastian/code-unit-reverse-lookup/src/Wizard.php +++ /dev/null @@ -1,132 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeUnitReverseLookup; - -use function array_merge; -use function assert; -use function class_exists; -use function function_exists; -use function get_declared_classes; -use function get_declared_traits; -use function get_defined_functions; -use function is_array; -use function is_int; -use function is_string; -use function range; -use function trait_exists; -use ReflectionClass; -use ReflectionFunction; -use ReflectionMethod; - -final class Wizard -{ - /** - * @var array> - */ - private array $lookupTable = []; - - /** - * @var array - */ - private array $processedClasses = []; - - /** - * @var array - */ - private array $processedFunctions = []; - - public function lookup(string $filename, int $lineNumber): string - { - if (!isset($this->lookupTable[$filename][$lineNumber])) { - $this->updateLookupTable(); - } - - if (isset($this->lookupTable[$filename][$lineNumber])) { - return $this->lookupTable[$filename][$lineNumber]; - } - - return $filename . ':' . $lineNumber; - } - - private function updateLookupTable(): void - { - $this->processClassesAndTraits(); - $this->processFunctions(); - } - - private function processClassesAndTraits(): void - { - $classes = get_declared_classes(); - $traits = get_declared_traits(); - - assert(is_array($traits)); - - foreach (array_merge($classes, $traits) as $classOrTrait) { - assert(class_exists($classOrTrait) || trait_exists($classOrTrait)); - - if (isset($this->processedClasses[$classOrTrait])) { - continue; - } - - foreach ((new ReflectionClass($classOrTrait))->getMethods() as $method) { - $this->processFunctionOrMethod($method); - } - - $this->processedClasses[$classOrTrait] = true; - } - } - - private function processFunctions(): void - { - foreach (get_defined_functions()['user'] as $function) { - assert(function_exists($function)); - - if (isset($this->processedFunctions[$function])) { - continue; - } - - $this->processFunctionOrMethod(new ReflectionFunction($function)); - - $this->processedFunctions[$function] = true; - } - } - - private function processFunctionOrMethod(ReflectionFunction|ReflectionMethod $functionOrMethod): void - { - if ($functionOrMethod->isInternal()) { - return; - } - - $name = $functionOrMethod->getName(); - - if ($functionOrMethod instanceof ReflectionMethod) { - $name = $functionOrMethod->getDeclaringClass()->getName() . '::' . $name; - } - - $fileName = $functionOrMethod->getFileName(); - - assert(is_string($fileName)); - - if (!isset($this->lookupTable[$fileName])) { - $this->lookupTable[$fileName] = []; - } - - $startLine = $functionOrMethod->getStartLine(); - $endLine = $functionOrMethod->getEndLine(); - - assert(is_int($startLine)); - assert(is_int($endLine)); - assert($endLine >= $startLine); - - foreach (range($startLine, $endLine) as $line) { - $this->lookupTable[$fileName][$line] = $name; - } - } -} diff --git a/vendor/sebastian/code-unit/ChangeLog.md b/vendor/sebastian/code-unit/ChangeLog.md deleted file mode 100644 index 45ad4212a..000000000 --- a/vendor/sebastian/code-unit/ChangeLog.md +++ /dev/null @@ -1,106 +0,0 @@ -# ChangeLog - -All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [3.0.3] - 2025-03-19 - -### Fixed - -* [#9](https://github.com/sebastianbergmann/code-unit/issues/9): `Mapper::stringToCodeUnits('Foo::bar')` does not find method `Foo::bar` when a function named `\bar` is defined - -## [3.0.2] - 2024-12-12 - -### Fixed - -* [#8](https://github.com/sebastianbergmann/code-unit/issues/8): `Mapper::stringToCodeUnits()` does not consider "inheritance" between traits - -## [3.0.1] - 2024-07-03 - -### Changed - -* This project now uses PHPStan instead of Psalm for static analysis - -## [3.0.0] - 2024-02-02 - -### Removed - -* This component is no longer supported on PHP 8.1 - -## [2.0.0] - 2023-02-03 - -### Added - -* Added `SebastianBergmann\CodeUnit\FileUnit` value object that represents a sourcecode file - -### Removed - -* `SebastianBergmann\CodeUnit\CodeUnitCollection::fromArray()` has been removed -* `SebastianBergmann\CodeUnit\Mapper::stringToCodeUnits()` no longer supports `ClassName<*>` -* This component is no longer supported on PHP 7.3, PHP 7.4, and PHP 8.0 - -## [1.0.8] - 2020-10-26 - -### Fixed - -* `SebastianBergmann\CodeUnit\Exception` now correctly extends `\Throwable` - -## [1.0.7] - 2020-10-02 - -### Fixed - -* `SebastianBergmann\CodeUnit\Mapper::stringToCodeUnits()` no longer attempts to create `CodeUnit` objects for code units that are not declared in userland - -## [1.0.6] - 2020-09-28 - -### Changed - -* Changed PHP version constraint in `composer.json` from `^7.3 || ^8.0` to `>=7.3` - -## [1.0.5] - 2020-06-26 - -### Fixed - -* [#3](https://github.com/sebastianbergmann/code-unit/issues/3): Regression in 1.0.4 - -## [1.0.4] - 2020-06-26 - -### Added - -* This component is now supported on PHP 8 - -## [1.0.3] - 2020-06-15 - -### Changed - -* Tests etc. are now ignored for archive exports - -## [1.0.2] - 2020-04-30 - -### Fixed - -* `Mapper::stringToCodeUnits()` raised the wrong exception for `Class::method` when a class named `Class` exists but does not have a method named `method` - -## [1.0.1] - 2020-04-27 - -### Fixed - -* [#2](https://github.com/sebastianbergmann/code-unit/issues/2): `Mapper::stringToCodeUnits()` breaks when `ClassName` is used for class that extends built-in class - -## [1.0.0] - 2020-03-30 - -* Initial release - -[3.0.3]: https://github.com/sebastianbergmann/code-unit/compare/3.0.2...3.0.3 -[3.0.2]: https://github.com/sebastianbergmann/code-unit/compare/3.0.1...3.0.2 -[3.0.1]: https://github.com/sebastianbergmann/code-unit/compare/3.0.0...3.0.1 -[3.0.0]: https://github.com/sebastianbergmann/code-unit/compare/2.0...3.0.0 -[2.0.0]: https://github.com/sebastianbergmann/code-unit/compare/1.0.8...2.0.0 -[1.0.8]: https://github.com/sebastianbergmann/code-unit/compare/1.0.7...1.0.8 -[1.0.7]: https://github.com/sebastianbergmann/code-unit/compare/1.0.6...1.0.7 -[1.0.6]: https://github.com/sebastianbergmann/code-unit/compare/1.0.5...1.0.6 -[1.0.5]: https://github.com/sebastianbergmann/code-unit/compare/1.0.4...1.0.5 -[1.0.4]: https://github.com/sebastianbergmann/code-unit/compare/1.0.3...1.0.4 -[1.0.3]: https://github.com/sebastianbergmann/code-unit/compare/1.0.2...1.0.3 -[1.0.2]: https://github.com/sebastianbergmann/code-unit/compare/1.0.1...1.0.2 -[1.0.1]: https://github.com/sebastianbergmann/code-unit/compare/1.0.0...1.0.1 -[1.0.0]: https://github.com/sebastianbergmann/code-unit/compare/530c3900e5db9bcb8516da545bef0d62536cedaa...1.0.0 diff --git a/vendor/sebastian/code-unit/LICENSE b/vendor/sebastian/code-unit/LICENSE deleted file mode 100644 index 0d534da34..000000000 --- a/vendor/sebastian/code-unit/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2020-2025, Sebastian Bergmann -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/sebastian/code-unit/README.md b/vendor/sebastian/code-unit/README.md deleted file mode 100644 index f5b8a49bc..000000000 --- a/vendor/sebastian/code-unit/README.md +++ /dev/null @@ -1,24 +0,0 @@ -[![No Maintenance Intended](https://unmaintained.tech/badge.svg)](https://unmaintained.tech/) -[![Latest Stable Version](https://poser.pugx.org/sebastian/code-unit/v)](https://packagist.org/packages/sebastian/code-unit) -[![CI Status](https://github.com/sebastianbergmann/code-unit/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/code-unit/actions) -[![codecov](https://codecov.io/gh/sebastianbergmann/code-unit/branch/main/graph/badge.svg)](https://codecov.io/gh/sebastianbergmann/code-unit) - -# sebastian/code-unit - -Collection of value objects that represent the PHP code units. - -## Installation - -You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): - -``` -composer require sebastian/code-unit -``` - -If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: - -``` -composer require --dev sebastian/code-unit -``` - -Please note that this is now a [low maintenance project](https://github.com/sebastianbergmann/code-unit/blob/main/.github/CONTRIBUTING.md#low-maintenance-project). diff --git a/vendor/sebastian/code-unit/SECURITY.md b/vendor/sebastian/code-unit/SECURITY.md deleted file mode 100644 index d88ff0019..000000000 --- a/vendor/sebastian/code-unit/SECURITY.md +++ /dev/null @@ -1,30 +0,0 @@ -# Security Policy - -If you believe you have found a security vulnerability in the library that is developed in this repository, please report it to us through coordinated disclosure. - -**Please do not report security vulnerabilities through public GitHub issues, discussions, or pull requests.** - -Instead, please email `sebastian@phpunit.de`. - -Please include as much of the information listed below as you can to help us better understand and resolve the issue: - -* The type of issue -* Full paths of source file(s) related to the manifestation of the issue -* The location of the affected source code (tag/branch/commit or direct URL) -* Any special configuration required to reproduce the issue -* Step-by-step instructions to reproduce the issue -* Proof-of-concept or exploit code (if possible) -* Impact of the issue, including how an attacker might exploit the issue - -This information will help us triage your report more quickly. - -## Web Context - -The library that is developed in this repository was either extracted from [PHPUnit](https://github.com/sebastianbergmann/phpunit) or developed specifically as a dependency for PHPUnit. - -The library is developed with a focus on development environments and the command-line. No specific testing or hardening with regard to using the library in an HTTP or web context or with untrusted input data is performed. The library might also contain functionality that intentionally exposes internal application data for debugging purposes. - -If the library is used in a web application, the application developer is responsible for filtering inputs or escaping outputs as necessary and for verifying that the used functionality is safe for use within the intended context. - -Vulnerabilities specific to the use outside a development context will be fixed as applicable, provided that the fix does not have an averse effect on the primary use case for development purposes. - diff --git a/vendor/sebastian/code-unit/composer.json b/vendor/sebastian/code-unit/composer.json deleted file mode 100644 index 29859cbdf..000000000 --- a/vendor/sebastian/code-unit/composer.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "sebastian/code-unit", - "description": "Collection of value objects that represent the PHP code units", - "type": "library", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "license": "BSD-3-Clause", - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "security": "https://github.com/sebastianbergmann/code-unit/security/policy" - }, - "prefer-stable": true, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.5" - }, - "config": { - "platform": { - "php": "8.2.0" - }, - "optimize-autoloader": true, - "sort-packages": true - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "autoload-dev": { - "classmap": [ - "tests/_fixture" - ], - "files": [ - "tests/_fixture/file_with_multiple_code_units.php", - "tests/_fixture/function.php", - "tests/_fixture/issue_9.php" - ] - }, - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - } -} diff --git a/vendor/sebastian/code-unit/src/ClassMethodUnit.php b/vendor/sebastian/code-unit/src/ClassMethodUnit.php deleted file mode 100644 index 082c01e11..000000000 --- a/vendor/sebastian/code-unit/src/ClassMethodUnit.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeUnit; - -/** - * @immutable - */ -final readonly class ClassMethodUnit extends CodeUnit -{ - public function isClassMethod(): bool - { - return true; - } -} diff --git a/vendor/sebastian/code-unit/src/ClassUnit.php b/vendor/sebastian/code-unit/src/ClassUnit.php deleted file mode 100644 index d9bc49de8..000000000 --- a/vendor/sebastian/code-unit/src/ClassUnit.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeUnit; - -/** - * @immutable - */ -final readonly class ClassUnit extends CodeUnit -{ - public function isClass(): bool - { - return true; - } -} diff --git a/vendor/sebastian/code-unit/src/CodeUnit.php b/vendor/sebastian/code-unit/src/CodeUnit.php deleted file mode 100644 index e4e3b4373..000000000 --- a/vendor/sebastian/code-unit/src/CodeUnit.php +++ /dev/null @@ -1,528 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeUnit; - -use function assert; -use function count; -use function file; -use function file_exists; -use function is_readable; -use function range; -use function sprintf; -use ReflectionClass; -use ReflectionFunction; -use ReflectionMethod; - -/** - * @immutable - */ -abstract readonly class CodeUnit -{ - /** - * @var non-empty-string - */ - private string $name; - - /** - * @var non-empty-string - */ - private string $sourceFileName; - - /** - * @var list - */ - private array $sourceLines; - - /** - * @param class-string $className - * - * @throws InvalidCodeUnitException - * @throws ReflectionException - */ - public static function forClass(string $className): ClassUnit - { - self::ensureUserDefinedClass($className); - - $reflector = new ReflectionClass($className); - - return new ClassUnit( - $className, - // @phpstan-ignore argument.type - $reflector->getFileName(), - range( - // @phpstan-ignore argument.type - $reflector->getStartLine(), - // @phpstan-ignore argument.type - $reflector->getEndLine(), - ), - ); - } - - /** - * @param class-string $className - * - * @throws InvalidCodeUnitException - * @throws ReflectionException - */ - public static function forClassMethod(string $className, string $methodName): ClassMethodUnit - { - self::ensureUserDefinedClass($className); - - $reflector = self::reflectorForClassMethod($className, $methodName); - - return new ClassMethodUnit( - $className . '::' . $methodName, - // @phpstan-ignore argument.type - $reflector->getFileName(), - range( - // @phpstan-ignore argument.type - $reflector->getStartLine(), - // @phpstan-ignore argument.type - $reflector->getEndLine(), - ), - ); - } - - /** - * @param non-empty-string $path - * - * @throws InvalidCodeUnitException - */ - public static function forFileWithAbsolutePath(string $path): FileUnit - { - self::ensureFileExistsAndIsReadable($path); - - $lines = file($path); - - assert($lines !== false); - - return new FileUnit( - $path, - $path, - range( - 1, - count($lines), - ), - ); - } - - /** - * @param class-string $interfaceName - * - * @throws InvalidCodeUnitException - * @throws ReflectionException - */ - public static function forInterface(string $interfaceName): InterfaceUnit - { - self::ensureUserDefinedInterface($interfaceName); - - $reflector = new ReflectionClass($interfaceName); - - return new InterfaceUnit( - $interfaceName, - // @phpstan-ignore argument.type - $reflector->getFileName(), - range( - // @phpstan-ignore argument.type - $reflector->getStartLine(), - // @phpstan-ignore argument.type - $reflector->getEndLine(), - ), - ); - } - - /** - * @param class-string $interfaceName - * - * @throws InvalidCodeUnitException - * @throws ReflectionException - */ - public static function forInterfaceMethod(string $interfaceName, string $methodName): InterfaceMethodUnit - { - self::ensureUserDefinedInterface($interfaceName); - - $reflector = self::reflectorForClassMethod($interfaceName, $methodName); - - return new InterfaceMethodUnit( - $interfaceName . '::' . $methodName, - // @phpstan-ignore argument.type - $reflector->getFileName(), - range( - // @phpstan-ignore argument.type - $reflector->getStartLine(), - // @phpstan-ignore argument.type - $reflector->getEndLine(), - ), - ); - } - - /** - * @param class-string $traitName - * - * @throws InvalidCodeUnitException - * @throws ReflectionException - */ - public static function forTrait(string $traitName): TraitUnit - { - self::ensureUserDefinedTrait($traitName); - - $reflector = new ReflectionClass($traitName); - - return new TraitUnit( - $traitName, - // @phpstan-ignore argument.type - $reflector->getFileName(), - range( - // @phpstan-ignore argument.type - $reflector->getStartLine(), - // @phpstan-ignore argument.type - $reflector->getEndLine(), - ), - ); - } - - /** - * @param class-string $traitName - * - * @throws InvalidCodeUnitException - * @throws ReflectionException - */ - public static function forTraitMethod(string $traitName, string $methodName): TraitMethodUnit - { - self::ensureUserDefinedTrait($traitName); - - $reflector = self::reflectorForClassMethod($traitName, $methodName); - - return new TraitMethodUnit( - $traitName . '::' . $methodName, - // @phpstan-ignore argument.type - $reflector->getFileName(), - range( - // @phpstan-ignore argument.type - $reflector->getStartLine(), - // @phpstan-ignore argument.type - $reflector->getEndLine(), - ), - ); - } - - /** - * @param callable-string $functionName - * - * @throws InvalidCodeUnitException - * @throws ReflectionException - */ - public static function forFunction(string $functionName): FunctionUnit - { - $reflector = self::reflectorForFunction($functionName); - - if (!$reflector->isUserDefined()) { - throw new InvalidCodeUnitException( - sprintf( - '"%s" is not a user-defined function', - $functionName, - ), - ); - } - - return new FunctionUnit( - // @phpstan-ignore argument.type - $functionName, - // @phpstan-ignore argument.type - $reflector->getFileName(), - range( - // @phpstan-ignore argument.type - $reflector->getStartLine(), - // @phpstan-ignore argument.type - $reflector->getEndLine(), - ), - ); - } - - /** - * @param non-empty-string $name - * @param non-empty-string $sourceFileName - * @param list $sourceLines - */ - private function __construct(string $name, string $sourceFileName, array $sourceLines) - { - $this->name = $name; - $this->sourceFileName = $sourceFileName; - $this->sourceLines = $sourceLines; - } - - /** - * @return non-empty-string - */ - public function name(): string - { - return $this->name; - } - - /** - * @return non-empty-string - */ - public function sourceFileName(): string - { - return $this->sourceFileName; - } - - /** - * @return list - */ - public function sourceLines(): array - { - return $this->sourceLines; - } - - /** - * @phpstan-assert-if-true ClassUnit $this - */ - public function isClass(): bool - { - return false; - } - - /** - * @phpstan-assert-if-true ClassMethodUnit $this - */ - public function isClassMethod(): bool - { - return false; - } - - /** - * @phpstan-assert-if-true InterfaceUnit $this - */ - public function isInterface(): bool - { - return false; - } - - /** - * @phpstan-assert-if-true InterfaceMethodUnit $this - */ - public function isInterfaceMethod(): bool - { - return false; - } - - /** - * @phpstan-assert-if-true TraitUnit $this - */ - public function isTrait(): bool - { - return false; - } - - /** - * @phpstan-assert-if-true TraitMethodUnit $this - */ - public function isTraitMethod(): bool - { - return false; - } - - /** - * @phpstan-assert-if-true FunctionUnit $this - */ - public function isFunction(): bool - { - return false; - } - - /** - * @phpstan-assert-if-true FileUnit $this - */ - public function isFile(): bool - { - return false; - } - - /** - * @param non-empty-string $path - * - * @throws InvalidCodeUnitException - */ - private static function ensureFileExistsAndIsReadable(string $path): void - { - if (!(file_exists($path) && is_readable($path))) { - throw new InvalidCodeUnitException( - sprintf( - 'File "%s" does not exist or is not readable', - $path, - ), - ); - } - } - - /** - * @param class-string $className - * - * @throws InvalidCodeUnitException - */ - private static function ensureUserDefinedClass(string $className): void - { - try { - $reflector = new ReflectionClass($className); - - if ($reflector->isInterface()) { - throw new InvalidCodeUnitException( - sprintf( - '"%s" is an interface and not a class', - $className, - ), - ); - } - - if ($reflector->isTrait()) { - throw new InvalidCodeUnitException( - sprintf( - '"%s" is a trait and not a class', - $className, - ), - ); - } - - if (!$reflector->isUserDefined()) { - throw new InvalidCodeUnitException( - sprintf( - '"%s" is not a user-defined class', - $className, - ), - ); - } - // @codeCoverageIgnoreStart - } catch (\ReflectionException $e) { - throw new ReflectionException( - $e->getMessage(), - $e->getCode(), - $e, - ); - } - // @codeCoverageIgnoreEnd - } - - /** - * @param class-string $interfaceName - * - * @throws InvalidCodeUnitException - */ - private static function ensureUserDefinedInterface(string $interfaceName): void - { - try { - $reflector = new ReflectionClass($interfaceName); - - if (!$reflector->isInterface()) { - throw new InvalidCodeUnitException( - sprintf( - '"%s" is not an interface', - $interfaceName, - ), - ); - } - - if (!$reflector->isUserDefined()) { - throw new InvalidCodeUnitException( - sprintf( - '"%s" is not a user-defined interface', - $interfaceName, - ), - ); - } - // @codeCoverageIgnoreStart - } catch (\ReflectionException $e) { - throw new ReflectionException( - $e->getMessage(), - $e->getCode(), - $e, - ); - } - // @codeCoverageIgnoreEnd - } - - /** - * @param class-string $traitName - * - * @throws InvalidCodeUnitException - */ - private static function ensureUserDefinedTrait(string $traitName): void - { - try { - $reflector = new ReflectionClass($traitName); - - if (!$reflector->isTrait()) { - throw new InvalidCodeUnitException( - sprintf( - '"%s" is not a trait', - $traitName, - ), - ); - } - - // @codeCoverageIgnoreStart - if (!$reflector->isUserDefined()) { - throw new InvalidCodeUnitException( - sprintf( - '"%s" is not a user-defined trait', - $traitName, - ), - ); - } - } catch (\ReflectionException $e) { - throw new ReflectionException( - $e->getMessage(), - $e->getCode(), - $e, - ); - } - // @codeCoverageIgnoreEnd - } - - /** - * @param class-string $className - * - * @throws ReflectionException - */ - private static function reflectorForClassMethod(string $className, string $methodName): ReflectionMethod - { - try { - return new ReflectionMethod($className, $methodName); - // @codeCoverageIgnoreStart - } catch (\ReflectionException $e) { - throw new ReflectionException( - $e->getMessage(), - $e->getCode(), - $e, - ); - } - // @codeCoverageIgnoreEnd - } - - /** - * @param callable-string $functionName - * - * @throws ReflectionException - */ - private static function reflectorForFunction(string $functionName): ReflectionFunction - { - try { - return new ReflectionFunction($functionName); - // @codeCoverageIgnoreStart - } catch (\ReflectionException $e) { - throw new ReflectionException( - $e->getMessage(), - $e->getCode(), - $e, - ); - } - // @codeCoverageIgnoreEnd - } -} diff --git a/vendor/sebastian/code-unit/src/CodeUnitCollection.php b/vendor/sebastian/code-unit/src/CodeUnitCollection.php deleted file mode 100644 index 5c92542e7..000000000 --- a/vendor/sebastian/code-unit/src/CodeUnitCollection.php +++ /dev/null @@ -1,75 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeUnit; - -use function array_merge; -use function count; -use Countable; -use IteratorAggregate; - -/** - * @template-implements IteratorAggregate - * - * @immutable - */ -final readonly class CodeUnitCollection implements Countable, IteratorAggregate -{ - /** - * @var list - */ - private array $codeUnits; - - public static function fromList(CodeUnit ...$codeUnits): self - { - // @phpstan-ignore argument.type - return new self($codeUnits); - } - - /** - * @param list $codeUnits - */ - private function __construct(array $codeUnits) - { - $this->codeUnits = $codeUnits; - } - - /** - * @return list - */ - public function asArray(): array - { - return $this->codeUnits; - } - - public function getIterator(): CodeUnitCollectionIterator - { - return new CodeUnitCollectionIterator($this); - } - - public function count(): int - { - return count($this->codeUnits); - } - - public function isEmpty(): bool - { - return $this->codeUnits === []; - } - - public function mergeWith(self $other): self - { - return new self( - array_merge( - $this->asArray(), - $other->asArray(), - ), - ); - } -} diff --git a/vendor/sebastian/code-unit/src/CodeUnitCollectionIterator.php b/vendor/sebastian/code-unit/src/CodeUnitCollectionIterator.php deleted file mode 100644 index c63fe0801..000000000 --- a/vendor/sebastian/code-unit/src/CodeUnitCollectionIterator.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeUnit; - -use Iterator; - -/** - * @template-implements Iterator - */ -final class CodeUnitCollectionIterator implements Iterator -{ - /** - * @var list - */ - private array $codeUnits; - private int $position = 0; - - public function __construct(CodeUnitCollection $collection) - { - $this->codeUnits = $collection->asArray(); - } - - public function rewind(): void - { - $this->position = 0; - } - - public function valid(): bool - { - return isset($this->codeUnits[$this->position]); - } - - public function key(): int - { - return $this->position; - } - - public function current(): CodeUnit - { - return $this->codeUnits[$this->position]; - } - - public function next(): void - { - $this->position++; - } -} diff --git a/vendor/sebastian/code-unit/src/FileUnit.php b/vendor/sebastian/code-unit/src/FileUnit.php deleted file mode 100644 index cea630cfc..000000000 --- a/vendor/sebastian/code-unit/src/FileUnit.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeUnit; - -/** - * @immutable - */ -final readonly class FileUnit extends CodeUnit -{ - public function isFile(): bool - { - return true; - } -} diff --git a/vendor/sebastian/code-unit/src/FunctionUnit.php b/vendor/sebastian/code-unit/src/FunctionUnit.php deleted file mode 100644 index 203ded3f8..000000000 --- a/vendor/sebastian/code-unit/src/FunctionUnit.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeUnit; - -/** - * @immutable - */ -final readonly class FunctionUnit extends CodeUnit -{ - public function isFunction(): bool - { - return true; - } -} diff --git a/vendor/sebastian/code-unit/src/InterfaceMethodUnit.php b/vendor/sebastian/code-unit/src/InterfaceMethodUnit.php deleted file mode 100644 index 4322f8603..000000000 --- a/vendor/sebastian/code-unit/src/InterfaceMethodUnit.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeUnit; - -/** - * @immutable - */ -final readonly class InterfaceMethodUnit extends CodeUnit -{ - public function isInterfaceMethod(): bool - { - return true; - } -} diff --git a/vendor/sebastian/code-unit/src/InterfaceUnit.php b/vendor/sebastian/code-unit/src/InterfaceUnit.php deleted file mode 100644 index 33b3d7e5b..000000000 --- a/vendor/sebastian/code-unit/src/InterfaceUnit.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeUnit; - -/** - * @immutable - */ -final readonly class InterfaceUnit extends CodeUnit -{ - public function isInterface(): bool - { - return true; - } -} diff --git a/vendor/sebastian/code-unit/src/Mapper.php b/vendor/sebastian/code-unit/src/Mapper.php deleted file mode 100644 index e2f99cdc0..000000000 --- a/vendor/sebastian/code-unit/src/Mapper.php +++ /dev/null @@ -1,202 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeUnit; - -use function array_keys; -use function array_merge; -use function array_unique; -use function array_values; -use function class_exists; -use function explode; -use function function_exists; -use function interface_exists; -use function ksort; -use function method_exists; -use function sort; -use function sprintf; -use function str_contains; -use function trait_exists; -use ReflectionClass; -use ReflectionFunction; -use ReflectionMethod; - -final class Mapper -{ - /** - * @return array> - */ - public function codeUnitsToSourceLines(CodeUnitCollection $codeUnits): array - { - $result = []; - - foreach ($codeUnits as $codeUnit) { - $sourceFileName = $codeUnit->sourceFileName(); - - if (!isset($result[$sourceFileName])) { - $result[$sourceFileName] = []; - } - - $result[$sourceFileName] = array_merge($result[$sourceFileName], $codeUnit->sourceLines()); - } - - foreach (array_keys($result) as $sourceFileName) { - $result[$sourceFileName] = array_values(array_unique($result[$sourceFileName])); - - sort($result[$sourceFileName]); - } - - ksort($result); - - return $result; - } - - /** - * @throws InvalidCodeUnitException - * @throws ReflectionException - */ - public function stringToCodeUnits(string $unit): CodeUnitCollection - { - if (str_contains($unit, '::')) { - [$firstPart, $secondPart] = explode('::', $unit); - - if ($this->isUserDefinedMethod($firstPart, $secondPart)) { - return CodeUnitCollection::fromList(CodeUnit::forClassMethod($firstPart, $secondPart)); - } - - if ($this->isUserDefinedFunction($secondPart)) { - return CodeUnitCollection::fromList(CodeUnit::forFunction($secondPart)); - } - - if ($this->isUserDefinedInterface($firstPart)) { - return CodeUnitCollection::fromList(CodeUnit::forInterfaceMethod($firstPart, $secondPart)); - } - - if ($this->isUserDefinedTrait($firstPart)) { - return CodeUnitCollection::fromList(CodeUnit::forTraitMethod($firstPart, $secondPart)); - } - } else { - if ($this->isUserDefinedClass($unit)) { - return CodeUnitCollection::fromList( - ...array_merge( - [CodeUnit::forClass($unit)], - $this->traits(new ReflectionClass($unit)), - ), - ); - } - - if ($this->isUserDefinedInterface($unit)) { - return CodeUnitCollection::fromList(CodeUnit::forInterface($unit)); - } - - if ($this->isUserDefinedTrait($unit)) { - return CodeUnitCollection::fromList(CodeUnit::forTrait($unit)); - } - - if ($this->isUserDefinedFunction($unit)) { - return CodeUnitCollection::fromList(CodeUnit::forFunction($unit)); - } - } - - throw new InvalidCodeUnitException( - sprintf( - '"%s" is not a valid code unit', - $unit, - ), - ); - } - - /** - * @phpstan-assert-if-true callable-string $functionName - */ - private function isUserDefinedFunction(string $functionName): bool - { - if (!function_exists($functionName)) { - return false; - } - - return (new ReflectionFunction($functionName))->isUserDefined(); - } - - /** - * @phpstan-assert-if-true class-string $className - */ - private function isUserDefinedClass(string $className): bool - { - if (!class_exists($className)) { - return false; - } - - return (new ReflectionClass($className))->isUserDefined(); - } - - /** - * @phpstan-assert-if-true interface-string $interfaceName - */ - private function isUserDefinedInterface(string $interfaceName): bool - { - if (!interface_exists($interfaceName)) { - return false; - } - - return (new ReflectionClass($interfaceName))->isUserDefined(); - } - - /** - * @phpstan-assert-if-true trait-string $traitName - */ - private function isUserDefinedTrait(string $traitName): bool - { - if (!trait_exists($traitName)) { - return false; - } - - return (new ReflectionClass($traitName))->isUserDefined(); - } - - /** - * @phpstan-assert-if-true class-string $className - */ - private function isUserDefinedMethod(string $className, string $methodName): bool - { - if (!class_exists($className)) { - return false; - } - - if (!method_exists($className, $methodName)) { - return false; - } - - return (new ReflectionMethod($className, $methodName))->isUserDefined(); - } - - /** - * @param ReflectionClass $class - * - * @return list - */ - private function traits(ReflectionClass $class): array - { - $result = []; - - foreach ($class->getTraits() as $trait) { - if (!$trait->isUserDefined()) { - // @codeCoverageIgnoreStart - continue; - // @codeCoverageIgnoreEnd - } - - $result[] = CodeUnit::forTrait($trait->getName()); - - $result = array_merge($result, $this->traits($trait)); - } - - return $result; - } -} diff --git a/vendor/sebastian/code-unit/src/TraitMethodUnit.php b/vendor/sebastian/code-unit/src/TraitMethodUnit.php deleted file mode 100644 index b96c620a0..000000000 --- a/vendor/sebastian/code-unit/src/TraitMethodUnit.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeUnit; - -/** - * @immutable - */ -final readonly class TraitMethodUnit extends CodeUnit -{ - public function isTraitMethod(): bool - { - return true; - } -} diff --git a/vendor/sebastian/code-unit/src/TraitUnit.php b/vendor/sebastian/code-unit/src/TraitUnit.php deleted file mode 100644 index baaf17c97..000000000 --- a/vendor/sebastian/code-unit/src/TraitUnit.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeUnit; - -/** - * @immutable - */ -final readonly class TraitUnit extends CodeUnit -{ - public function isTrait(): bool - { - return true; - } -} diff --git a/vendor/sebastian/code-unit/src/exceptions/InvalidCodeUnitException.php b/vendor/sebastian/code-unit/src/exceptions/InvalidCodeUnitException.php deleted file mode 100644 index 60a3da82b..000000000 --- a/vendor/sebastian/code-unit/src/exceptions/InvalidCodeUnitException.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeUnit; - -use RuntimeException; - -final class InvalidCodeUnitException extends RuntimeException implements Exception -{ -} diff --git a/vendor/sebastian/code-unit/src/exceptions/NoTraitException.php b/vendor/sebastian/code-unit/src/exceptions/NoTraitException.php deleted file mode 100644 index e9b9b9c7a..000000000 --- a/vendor/sebastian/code-unit/src/exceptions/NoTraitException.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\CodeUnit; - -use RuntimeException; - -final class NoTraitException extends RuntimeException implements Exception -{ -} diff --git a/vendor/sebastian/comparator/ChangeLog.md b/vendor/sebastian/comparator/ChangeLog.md index 86015fbe3..102e17560 100644 --- a/vendor/sebastian/comparator/ChangeLog.md +++ b/vendor/sebastian/comparator/ChangeLog.md @@ -2,6 +2,81 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [7.1.8] - 2026-05-21 + +### Changed + +* [#136](https://github.com/sebastianbergmann/comparator/pull/136): Cleaner diff output for canonicalized list comparisons +* [#160](https://github.com/sebastianbergmann/comparator/pull/160): Use by-value comparison for closures + +### Fixed + +* [#136](https://github.com/sebastianbergmann/comparator/pull/136): Canonicalized array comparison destroys string keys + +## [7.1.7] - 2026-05-20 + +### Fixed + +* [#70](https://github.com/sebastianbergmann/comparator/issues/70): Non-ASCII text in XML diffs is rendered as numeric character references, making diffs unreadable +* [#87](https://github.com/sebastianbergmann/comparator/issues/87): `DOMNodeComparator` crashes or returns false positives when `DOMNode::C14N()` fails +* [#107](https://github.com/sebastianbergmann/comparator/issues/107): `DOMNodeComparator` reports XML documents as equal when they differ only in comments +* [#115](https://github.com/sebastianbergmann/comparator/issues/115): `DateTimeComparator` does not track processed pairs, producing misleading diffs in nested structures +* [#158](https://github.com/sebastianbergmann/comparator/issues/158): `ComparisonFailure` cannot be serialized when stack trace contains non-serializable objects + +## [7.1.6] - 2026-04-14 + +### Fixed + +* [#141](https://github.com/sebastianbergmann/comparator/issues/141): `ArrayComparator` sorts objects by `spl_object_id()`, breaking canonicalized equality for arrays of equal objects + +## [7.1.5] - 2026-04-08 + +### Fixed + +* [#140](https://github.com/sebastianbergmann/comparator/issues/140): `sort()` in `ArrayComparator` produces non-deterministic results for arrays with mixed types + +## [7.1.4] - 2026-01-24 + +### Changed + +* [#134](https://github.com/sebastianbergmann/comparator/issues/134): Suppress warning introduced in PHP 8.5 + +## [7.1.3] - 2025-08-20 + +### Changed + +* [#130](https://github.com/sebastianbergmann/comparator/pull/130): Provide a diff when `ClosureComparator` fails + +## [7.1.2] - 2025-08-10 + +### Fixed + +* `SebastianBergmann\Comparator\Comparator` should not have been marked as private implementation detail of this library + +## [7.1.1] - 2025-08-10 + +### Changed + +* Do not use `SplObjectStorage` methods that will be deprecated in PHP 8.5 + +## [7.1.0] - 2025-06-17 + +### Added + +* [#127](https://github.com/sebastianbergmann/comparator/issues/127): Support for comparing `Closure` objects + +## [7.0.1] - 2025-03-07 + +### Fixed + +* [#122](https://github.com/sebastianbergmann/comparator/issues/122): `INF` is considered equal to `-INF` + +## [7.0.0] - 2025-02-07 + +### Removed + +* Removed support for PHP 8.2 + ## [6.3.3] - 2026-01-24 ### Changed @@ -68,6 +143,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * Removed support for PHP 8.1 +## [5.0.5] - 2026-01-24 + +### Changed + +* [#134](https://github.com/sebastianbergmann/comparator/issues/134): Suppress warning introduced in PHP 8.5 + ## [5.0.4] - 2025-09-07 ### Changed @@ -108,6 +189,18 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * Removed `Comparator::$exporter` * Removed support for PHP 7.3, PHP 7.4, and PHP 8.0 +## [4.0.10] - 2026-01-24 + +### Changed + +* [#134](https://github.com/sebastianbergmann/comparator/issues/134): Suppress warning introduced in PHP 8.5 + +## [4.0.9] - 2025-08-10 + +### Changed + +* Do not use `SplObjectStorage` methods that will be deprecated in PHP 8.5 + ## [4.0.8] - 2022-09-14 ### Fixed @@ -162,6 +255,18 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * Removed support for PHP 7.1 and PHP 7.2 +## [3.0.7] - 2026-01-24 + +### Changed + +* [#134](https://github.com/sebastianbergmann/comparator/issues/134): Suppress warning introduced in PHP 8.5 + +## [3.0.6] - 2025-08-10 + +### Changed + +* Do not use `SplObjectStorage` methods that will be deprecated in PHP 8.5 + ## [3.0.5] - 2022-09-14 ### Fixed @@ -228,6 +333,17 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * Added `SebastianBergmann\Comparator\Factory::reset()` to unregister all non-default comparators * Added support for `phpunit/phpunit-mock-objects` version `^5.0` +[7.1.8]: https://github.com/sebastianbergmann/comparator/compare/7.1.7...7.1.8 +[7.1.7]: https://github.com/sebastianbergmann/comparator/compare/7.1.6...7.1.7 +[7.1.6]: https://github.com/sebastianbergmann/comparator/compare/7.1.5...7.1.6 +[7.1.5]: https://github.com/sebastianbergmann/comparator/compare/7.1.4...7.1.5 +[7.1.4]: https://github.com/sebastianbergmann/comparator/compare/7.1.3...7.1.4 +[7.1.3]: https://github.com/sebastianbergmann/comparator/compare/7.1.2...7.1.3 +[7.1.2]: https://github.com/sebastianbergmann/comparator/compare/7.1.1...7.1.2 +[7.1.1]: https://github.com/sebastianbergmann/comparator/compare/7.1.0...7.1.1 +[7.1.0]: https://github.com/sebastianbergmann/comparator/compare/7.0.1...7.1.0 +[7.0.1]: https://github.com/sebastianbergmann/comparator/compare/7.0.0...7.0.1 +[7.0.0]: https://github.com/sebastianbergmann/comparator/compare/6.3...7.0.0 [6.3.3]: https://github.com/sebastianbergmann/comparator/compare/6.3.2...6.3.3 [6.3.2]: https://github.com/sebastianbergmann/comparator/compare/6.3.1...6.3.2 [6.3.1]: https://github.com/sebastianbergmann/comparator/compare/6.3.0...6.3.1 diff --git a/vendor/sebastian/comparator/LICENSE b/vendor/sebastian/comparator/LICENSE index c5268a916..0fad16fc6 100644 --- a/vendor/sebastian/comparator/LICENSE +++ b/vendor/sebastian/comparator/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2002-2025, Sebastian Bergmann +Copyright (c) 2002-2026, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/sebastian/comparator/composer.json b/vendor/sebastian/comparator/composer.json index 12e2b7c7b..7e3fa6761 100644 --- a/vendor/sebastian/comparator/composer.json +++ b/vendor/sebastian/comparator/composer.json @@ -28,9 +28,9 @@ }, "prefer-stable": true, "require": { - "php": ">=8.2", - "sebastian/diff": "^6.0", - "sebastian/exporter": "^6.0", + "php": ">=8.3", + "sebastian/diff": "^7.0", + "sebastian/exporter": "^7.0.3", "ext-dom": "*", "ext-mbstring": "*" }, @@ -38,11 +38,11 @@ "ext-bcmath": "For comparing BcMath\\Number objects" }, "require-dev": { - "phpunit/phpunit": "^11.4" + "phpunit/phpunit": "^12.5.25" }, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true @@ -59,7 +59,7 @@ }, "extra": { "branch-alias": { - "dev-main": "6.3-dev" + "dev-main": "7.1-dev" } } } diff --git a/vendor/sebastian/comparator/src/ArrayComparator.php b/vendor/sebastian/comparator/src/ArrayComparator.php index 5af5a4378..f1b7acca2 100644 --- a/vendor/sebastian/comparator/src/ArrayComparator.php +++ b/vendor/sebastian/comparator/src/ArrayComparator.php @@ -9,19 +9,27 @@ */ namespace SebastianBergmann\Comparator; +use function array_is_list; use function array_key_exists; use function assert; use function is_array; -use function sort; +use function is_bool; +use function is_float; +use function is_int; +use function is_object; +use function is_string; +use function ksort; +use function serialize; use function sprintf; use function str_replace; use function trim; +use function usort; use SebastianBergmann\Exporter\Exporter; /** - * Arrays are equal if they contain the same key-value pairs. - * The order of the keys does not matter. - * The types of key-value pairs do not matter. + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + * + * @internal This class is not covered by the backward compatibility promise for sebastian/comparator */ class ArrayComparator extends Comparator { @@ -31,6 +39,10 @@ class ArrayComparator extends Comparator } /** + * Arrays are equal if they contain the same key-value pairs. + * The order of the keys does not matter. + * The types of key-value pairs do not matter. + * * @param array $processed * * @throws ComparisonFailure @@ -40,9 +52,18 @@ class ArrayComparator extends Comparator assert(is_array($expected)); assert(is_array($actual)); + $isList = false; + if ($canonicalize) { - sort($expected); - sort($actual); + $isList = array_is_list($expected) && array_is_list($actual); + + if ($isList) { + usort($expected, $this->compare(...)); + usort($actual, $this->compare(...)); + } else { + ksort($expected); + ksort($actual); + } } $remaining = $actual; @@ -55,11 +76,18 @@ class ArrayComparator extends Comparator unset($remaining[$key]); if (!array_key_exists($key, $actual)) { - $expectedAsString .= sprintf( - " %s => %s\n", - $exporter->export($key), - $exporter->shortenedExport($value), - ); + if ($canonicalize && $isList) { + $expectedAsString .= sprintf( + " %s\n", + $exporter->shortenedExport($value), + ); + } else { + $expectedAsString .= sprintf( + " %s => %s\n", + $exporter->export($key), + $exporter->shortenedExport($value), + ); + } $equal = false; @@ -72,40 +100,71 @@ class ArrayComparator extends Comparator /** @phpstan-ignore arguments.count */ $comparator->assertEquals($value, $actual[$key], $delta, $canonicalize, $ignoreCase, $processed); - $expectedAsString .= sprintf( - " %s => %s\n", - $exporter->export($key), - $exporter->shortenedExport($value), - ); + if ($canonicalize && $isList) { + $expectedAsString .= sprintf( + " %s\n", + $exporter->shortenedExport($value), + ); - $actualAsString .= sprintf( - " %s => %s\n", - $exporter->export($key), - $exporter->shortenedExport($actual[$key]), - ); + $actualAsString .= sprintf( + " %s\n", + $exporter->shortenedExport($actual[$key]), + ); + } else { + $expectedAsString .= sprintf( + " %s => %s\n", + $exporter->export($key), + $exporter->shortenedExport($value), + ); + + $actualAsString .= sprintf( + " %s => %s\n", + $exporter->export($key), + $exporter->shortenedExport($actual[$key]), + ); + } } catch (ComparisonFailure $e) { - $expectedAsString .= sprintf( - " %s => %s\n", - $exporter->export($key), - $e->getExpectedAsString() ? $this->indent($e->getExpectedAsString()) : $exporter->shortenedExport($e->getExpected()), - ); + if ($canonicalize && $isList) { + $expectedAsString .= sprintf( + " %s\n", + $e->getExpectedAsString() !== '' ? $this->indent($e->getExpectedAsString()) : $exporter->shortenedExport($e->getExpected()), + ); - $actualAsString .= sprintf( - " %s => %s\n", - $exporter->export($key), - $e->getActualAsString() ? $this->indent($e->getActualAsString()) : $exporter->shortenedExport($e->getActual()), - ); + $actualAsString .= sprintf( + " %s\n", + $e->getActualAsString() !== '' ? $this->indent($e->getActualAsString()) : $exporter->shortenedExport($e->getActual()), + ); + } else { + $expectedAsString .= sprintf( + " %s => %s\n", + $exporter->export($key), + $e->getExpectedAsString() !== '' ? $this->indent($e->getExpectedAsString()) : $exporter->shortenedExport($e->getExpected()), + ); + + $actualAsString .= sprintf( + " %s => %s\n", + $exporter->export($key), + $e->getActualAsString() !== '' ? $this->indent($e->getActualAsString()) : $exporter->shortenedExport($e->getActual()), + ); + } $equal = false; } } foreach ($remaining as $key => $value) { - $actualAsString .= sprintf( - " %s => %s\n", - $exporter->export($key), - $exporter->shortenedExport($value), - ); + if ($canonicalize && $isList) { + $actualAsString .= sprintf( + " %s\n", + $exporter->shortenedExport($value), + ); + } else { + $actualAsString .= sprintf( + " %s => %s\n", + $exporter->export($key), + $exporter->shortenedExport($value), + ); + } $equal = false; } @@ -128,4 +187,65 @@ class ArrayComparator extends Comparator { return trim(str_replace("\n", "\n ", $lines)); } + + private function compare(mixed $a, mixed $b): int + { + $typeOrderA = $this->typeOrder($a); + $typeOrderB = $this->typeOrder($b); + + if ($typeOrderA !== $typeOrderB) { + return $typeOrderA <=> $typeOrderB; + } + + if (is_object($a) && is_object($b)) { + $classComparison = $a::class <=> $b::class; + + if ($classComparison !== 0) { + return $classComparison; + } + + try { + $this->factory()->getComparatorFor($a, $b)->assertEquals($a, $b); + + return 0; + } catch (ComparisonFailure) { + return serialize($a) <=> serialize($b); + } + } + + if (is_array($a) && is_array($b)) { + return serialize($a) <=> serialize($b); + } + + return $a <=> $b; + } + + private function typeOrder(mixed $value): int + { + if ($value === null) { + return 0; + } + + if (is_bool($value)) { + return 1; + } + + if (is_int($value) || is_float($value)) { + return 2; + } + + if (is_string($value)) { + return 3; + } + + if (is_array($value)) { + return 4; + } + + if (is_object($value)) { + return 5; + } + + return 6; + } } diff --git a/vendor/sebastian/comparator/src/ClosureComparator.php b/vendor/sebastian/comparator/src/ClosureComparator.php new file mode 100644 index 000000000..32255cfc3 --- /dev/null +++ b/vendor/sebastian/comparator/src/ClosureComparator.php @@ -0,0 +1,111 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Comparator; + +use function assert; +use function spl_object_id; +use function sprintf; +use Closure; +use ReflectionFunction; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + * + * @internal This class is not covered by the backward compatibility promise for sebastian/comparator + */ +final class ClosureComparator extends Comparator +{ + public function accepts(mixed $expected, mixed $actual): bool + { + return $expected instanceof Closure && $actual instanceof Closure; + } + + public function assertEquals(mixed $expected, mixed $actual, float $delta = 0.0, bool $canonicalize = false, bool $ignoreCase = false): void + { + assert($expected instanceof Closure); + assert($actual instanceof Closure); + + if ($expected === $actual) { + return; + } + + $expectedReflector = new ReflectionFunction($expected); + $actualReflector = new ReflectionFunction($actual); + + if ($this->declarationIsEqual($expectedReflector, $actualReflector) && + $this->bindingIsEqual($expectedReflector, $actualReflector) && + $this->capturedStateIsEqual($expectedReflector, $actualReflector)) { + return; + } + + $expectedFilename = $expectedReflector->getFileName(); + $expectedStartLine = $expectedReflector->getStartLine(); + $actualFilename = $actualReflector->getFileName(); + $actualStartLine = $actualReflector->getStartLine(); + + assert($expectedFilename !== false); + assert($expectedStartLine !== false); + assert($actualFilename !== false); + assert($actualStartLine !== false); + + throw new ComparisonFailure( + $expected, + $actual, + 'Closure Object #' . spl_object_id($expected) . ' ()', + 'Closure Object #' . spl_object_id($actual) . ' ()', + sprintf( + 'Failed asserting that closure declared at %s:%d is equal to closure declared at %s:%d.', + $expectedFilename, + $expectedStartLine, + $actualFilename, + $actualStartLine, + ), + ); + } + + private function declarationIsEqual(ReflectionFunction $expected, ReflectionFunction $actual): bool + { + return $expected->getName() === $actual->getName() && + $expected->getFileName() === $actual->getFileName() && + $expected->getStartLine() === $actual->getStartLine() && + $expected->getEndLine() === $actual->getEndLine(); + } + + private function bindingIsEqual(ReflectionFunction $expected, ReflectionFunction $actual): bool + { + if ($expected->getClosureScopeClass()?->getName() !== $actual->getClosureScopeClass()?->getName()) { + return false; + } + + return $this->recursivelyEqual( + $expected->getClosureThis(), + $actual->getClosureThis(), + ); + } + + private function capturedStateIsEqual(ReflectionFunction $expected, ReflectionFunction $actual): bool + { + return $this->recursivelyEqual( + $expected->getClosureUsedVariables(), + $actual->getClosureUsedVariables(), + ); + } + + private function recursivelyEqual(mixed $expected, mixed $actual): bool + { + try { + $this->factory()->getComparatorFor($expected, $actual)->assertEquals($expected, $actual); + } catch (ComparisonFailure) { + return false; + } + + return true; + } +} diff --git a/vendor/sebastian/comparator/src/Comparator.php b/vendor/sebastian/comparator/src/Comparator.php index 69347ef88..5caa817fb 100644 --- a/vendor/sebastian/comparator/src/Comparator.php +++ b/vendor/sebastian/comparator/src/Comparator.php @@ -9,6 +9,9 @@ */ namespace SebastianBergmann\Comparator; +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + */ abstract class Comparator { private Factory $factory; diff --git a/vendor/sebastian/comparator/src/ComparisonFailure.php b/vendor/sebastian/comparator/src/ComparisonFailure.php index b5c2ac2dc..c7a830953 100644 --- a/vendor/sebastian/comparator/src/ComparisonFailure.php +++ b/vendor/sebastian/comparator/src/ComparisonFailure.php @@ -13,6 +13,9 @@ use RuntimeException; use SebastianBergmann\Diff\Differ; use SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder; +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + */ final class ComparisonFailure extends RuntimeException { private mixed $expected; @@ -30,6 +33,32 @@ final class ComparisonFailure extends RuntimeException $this->actualAsString = $actualAsString; } + /** + * @return array{expected: mixed, actual: mixed, expectedAsString: string, actualAsString: string, message: string} + */ + public function __serialize(): array + { + return [ + 'expected' => $this->expected, + 'actual' => $this->actual, + 'expectedAsString' => $this->expectedAsString, + 'actualAsString' => $this->actualAsString, + 'message' => $this->message, + ]; + } + + /** + * @param array{expected: mixed, actual: mixed, expectedAsString: string, actualAsString: string, message: string} $data + */ + public function __unserialize(array $data): void + { + $this->expected = $data['expected']; + $this->actual = $data['actual']; + $this->expectedAsString = $data['expectedAsString']; + $this->actualAsString = $data['actualAsString']; + $this->message = $data['message']; + } + public function getActual(): mixed { return $this->actual; @@ -52,7 +81,7 @@ final class ComparisonFailure extends RuntimeException public function getDiff(): string { - if (!$this->actualAsString && !$this->expectedAsString) { + if ($this->actualAsString === '' && $this->expectedAsString === '') { return ''; } diff --git a/vendor/sebastian/comparator/src/DOMNodeComparator.php b/vendor/sebastian/comparator/src/DOMNodeComparator.php index 32232d0cd..282065775 100644 --- a/vendor/sebastian/comparator/src/DOMNodeComparator.php +++ b/vendor/sebastian/comparator/src/DOMNodeComparator.php @@ -16,6 +16,11 @@ use DOMDocument; use DOMNode; use ValueError; +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + * + * @internal This class is not covered by the backward compatibility promise for sebastian/comparator + */ final class DOMNodeComparator extends ObjectComparator { public function accepts(mixed $expected, mixed $actual): bool @@ -33,8 +38,8 @@ final class DOMNodeComparator extends ObjectComparator assert($expected instanceof DOMNode); assert($actual instanceof DOMNode); - $expectedAsString = $this->nodeToText($expected, true, $ignoreCase); - $actualAsString = $this->nodeToText($actual, true, $ignoreCase); + $expectedAsString = $this->nodeToText($expected, $ignoreCase); + $actualAsString = $this->nodeToText($actual, $ignoreCase); if ($expectedAsString !== $actualAsString) { $type = $expected instanceof DOMDocument ? 'documents' : 'nodes'; @@ -50,49 +55,63 @@ final class DOMNodeComparator extends ObjectComparator } /** - * Returns the normalized, whitespace-cleaned, and indented textual - * representation of a DOMNode. + * Canonicalizes nodes, removes empty text nodes and merges adjacent text nodes, + * and optionally ignores case. + * + * @see https://github.com/sebastianbergmann/phpunit/pull/1236#issuecomment-41765023 */ - private function nodeToText(DOMNode $node, bool $canonicalize, bool $ignoreCase): string + private function nodeToText(DOMNode $node, bool $ignoreCase): string { - if ($canonicalize) { + $c14n = @$node->C14N(false, true); + + if ($c14n === false || $c14n === '') { + $text = $this->serialize($node); + } else { $document = new DOMDocument; try { - $c14n = $node->C14N(); - - assert(!empty($c14n)); - @$document->loadXML($c14n); + // @codeCoverageIgnoreStart } catch (ValueError) { + // @codeCoverageIgnoreEnd } - $node = $document; + $document->encoding = 'UTF-8'; + $document->formatOutput = true; + $document->normalizeDocument(); + + $saved = $document->saveXML(); + + assert($saved !== false); + + $text = $saved; } - if ($node instanceof DOMDocument) { - $document = $node; - } else { - $document = $node->ownerDocument; - } - - assert($document instanceof DOMDocument); - - $document->formatOutput = true; - $document->normalizeDocument(); - - if ($node instanceof DOMDocument) { - $text = $node->saveXML(); - } else { - $text = $document->saveXML($node); - } - - assert($text !== false); - if ($ignoreCase) { return mb_strtolower($text, 'UTF-8'); } return $text; } + + /** + * Serializes a node without canonicalization. + * Used as a fallback when DOMNode::C14N() fails. + */ + private function serialize(DOMNode $node): string + { + if ($node instanceof DOMDocument) { + $document = $node; + $target = null; + } else { + $document = $node->ownerDocument; + $target = $node; + } + + assert($document !== null); + + $text = $document->saveXML($target); + + return $text !== false ? $text : ''; + } } diff --git a/vendor/sebastian/comparator/src/DateTimeComparator.php b/vendor/sebastian/comparator/src/DateTimeComparator.php index 60f3beb93..a9283773b 100644 --- a/vendor/sebastian/comparator/src/DateTimeComparator.php +++ b/vendor/sebastian/comparator/src/DateTimeComparator.php @@ -12,12 +12,18 @@ namespace SebastianBergmann\Comparator; use function abs; use function assert; use function floor; +use function in_array; use function sprintf; use DateInterval; use DateTime; use DateTimeImmutable; use DateTimeZone; +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + * + * @internal This class is not covered by the backward compatibility promise for sebastian/comparator + */ final class DateTimeComparator extends ObjectComparator { public function accepts(mixed $expected, mixed $actual): bool @@ -36,7 +42,16 @@ final class DateTimeComparator extends ObjectComparator assert($expected instanceof DateTime || $expected instanceof DateTimeImmutable); assert($actual instanceof DateTime || $actual instanceof DateTimeImmutable); + if (in_array([$actual, $expected], $processed, true) || + in_array([$expected, $actual], $processed, true)) { + return; + } + + $processed[] = [$actual, $expected]; + $absDelta = abs($delta); + + /** @phpstan-ignore argument.type */ $delta = new DateInterval(sprintf('PT%dS', $absDelta)); $delta->f = $absDelta - floor($absDelta); diff --git a/vendor/sebastian/comparator/src/EnumerationComparator.php b/vendor/sebastian/comparator/src/EnumerationComparator.php index 2f0ed13c2..7341edf6c 100644 --- a/vendor/sebastian/comparator/src/EnumerationComparator.php +++ b/vendor/sebastian/comparator/src/EnumerationComparator.php @@ -13,6 +13,11 @@ use function assert; use function sprintf; use UnitEnum; +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + * + * @internal This class is not covered by the backward compatibility promise for sebastian/comparator + */ final class EnumerationComparator extends Comparator { public function accepts(mixed $expected, mixed $actual): bool diff --git a/vendor/sebastian/comparator/src/ExceptionComparator.php b/vendor/sebastian/comparator/src/ExceptionComparator.php index 46c86ca26..6d1196183 100644 --- a/vendor/sebastian/comparator/src/ExceptionComparator.php +++ b/vendor/sebastian/comparator/src/ExceptionComparator.php @@ -13,7 +13,9 @@ use function assert; use Exception; /** - * Compares Exception instances for equality. + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + * + * @internal This class is not covered by the backward compatibility promise for sebastian/comparator */ final class ExceptionComparator extends ObjectComparator { diff --git a/vendor/sebastian/comparator/src/Factory.php b/vendor/sebastian/comparator/src/Factory.php index 0a0d03f23..7f330d627 100644 --- a/vendor/sebastian/comparator/src/Factory.php +++ b/vendor/sebastian/comparator/src/Factory.php @@ -14,6 +14,9 @@ use function array_unshift; use function extension_loaded; use function version_compare; +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + */ final class Factory { private static ?Factory $instance = null; @@ -56,7 +59,9 @@ final class Factory } } + // @codeCoverageIgnoreStart throw new RuntimeException('No suitable Comparator implementation found'); + // @codeCoverageIgnoreEnd } /** @@ -95,6 +100,7 @@ final class Factory private function registerDefaultComparators(): void { + $this->registerDefaultComparator(new ClosureComparator); $this->registerDefaultComparator(new MockObjectComparator); $this->registerDefaultComparator(new DateTimeComparator); $this->registerDefaultComparator(new DOMNodeComparator); diff --git a/vendor/sebastian/comparator/src/MockObjectComparator.php b/vendor/sebastian/comparator/src/MockObjectComparator.php index 819c4fe07..f42ef4d9a 100644 --- a/vendor/sebastian/comparator/src/MockObjectComparator.php +++ b/vendor/sebastian/comparator/src/MockObjectComparator.php @@ -15,7 +15,9 @@ use function str_starts_with; use PHPUnit\Framework\MockObject\Stub; /** - * Compares PHPUnit\Framework\MockObject\MockObject instances for equality. + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + * + * @internal This class is not covered by the backward compatibility promise for sebastian/comparator */ final class MockObjectComparator extends ObjectComparator { diff --git a/vendor/sebastian/comparator/src/NumberComparator.php b/vendor/sebastian/comparator/src/NumberComparator.php index 9d8389a5a..d100d6a03 100644 --- a/vendor/sebastian/comparator/src/NumberComparator.php +++ b/vendor/sebastian/comparator/src/NumberComparator.php @@ -17,6 +17,11 @@ use function max; use function number_format; use BcMath\Number; +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + * + * @internal This class is not covered by the backward compatibility promise for sebastian/comparator + */ final class NumberComparator extends ObjectComparator { public function accepts(mixed $expected, mixed $actual): bool @@ -34,17 +39,18 @@ final class NumberComparator extends ObjectComparator public function assertEquals(mixed $expected, mixed $actual, float $delta = 0.0, bool $canonicalize = false, bool $ignoreCase = false, array &$processed = []): void { if (!$expected instanceof Number) { - assert(is_string($expected) || is_int($expected)); + assert((is_string($expected) && is_numeric($expected)) || is_int($expected)); $expected = new Number($expected); } if (!$actual instanceof Number) { - assert(is_string($actual) || is_int($actual)); + assert((is_string($actual) && is_numeric($actual)) || is_int($actual)); $actual = new Number($actual); } + /** @phpstan-ignore argument.type */ $deltaNumber = new Number(number_format($delta, max($expected->scale, $actual->scale))); if ($actual < $expected - $deltaNumber || $actual > $expected + $deltaNumber) { diff --git a/vendor/sebastian/comparator/src/NumericComparator.php b/vendor/sebastian/comparator/src/NumericComparator.php index 8547ce508..77a04a3f7 100644 --- a/vendor/sebastian/comparator/src/NumericComparator.php +++ b/vendor/sebastian/comparator/src/NumericComparator.php @@ -19,6 +19,11 @@ use function is_string; use function sprintf; use SebastianBergmann\Exporter\Exporter; +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + * + * @internal This class is not covered by the backward compatibility promise for sebastian/comparator + */ final class NumericComparator extends ScalarComparator { public function accepts(mixed $expected, mixed $actual): bool diff --git a/vendor/sebastian/comparator/src/ObjectComparator.php b/vendor/sebastian/comparator/src/ObjectComparator.php index fa0819329..da9a76cac 100644 --- a/vendor/sebastian/comparator/src/ObjectComparator.php +++ b/vendor/sebastian/comparator/src/ObjectComparator.php @@ -16,6 +16,11 @@ use function sprintf; use function substr_replace; use SebastianBergmann\Exporter\Exporter; +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + * + * @internal This class is not covered by the backward compatibility promise for sebastian/comparator + */ class ObjectComparator extends ArrayComparator { public function accepts(mixed $expected, mixed $actual): bool diff --git a/vendor/sebastian/comparator/src/ResourceComparator.php b/vendor/sebastian/comparator/src/ResourceComparator.php index 16995623b..8691e7e19 100644 --- a/vendor/sebastian/comparator/src/ResourceComparator.php +++ b/vendor/sebastian/comparator/src/ResourceComparator.php @@ -13,6 +13,11 @@ use function assert; use function is_resource; use SebastianBergmann\Exporter\Exporter; +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + * + * @internal This class is not covered by the backward compatibility promise for sebastian/comparator + */ final class ResourceComparator extends Comparator { public function accepts(mixed $expected, mixed $actual): bool @@ -30,6 +35,7 @@ final class ResourceComparator extends Comparator $exporter = new Exporter; + /** @phpstan-ignore notEqual.notAllowed */ if ($actual != $expected) { throw new ComparisonFailure( $expected, diff --git a/vendor/sebastian/comparator/src/ScalarComparator.php b/vendor/sebastian/comparator/src/ScalarComparator.php index 1cf7d42f3..7cb62ba24 100644 --- a/vendor/sebastian/comparator/src/ScalarComparator.php +++ b/vendor/sebastian/comparator/src/ScalarComparator.php @@ -9,6 +9,7 @@ */ namespace SebastianBergmann\Comparator; +use function assert; use function is_bool; use function is_object; use function is_scalar; @@ -21,12 +22,14 @@ use function substr; use SebastianBergmann\Exporter\Exporter; /** - * Compares scalar or NULL values for equality. + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + * + * @internal This class is not covered by the backward compatibility promise for sebastian/comparator */ class ScalarComparator extends Comparator { - private const OVERLONG_THRESHOLD = 40; - private const KEEP_CONTEXT_CHARS = 25; + private const int OVERLONG_THRESHOLD = 40; + private const int KEEP_CONTEXT_CHARS = 25; public function accepts(mixed $expected, mixed $actual): bool { @@ -74,6 +77,7 @@ class ScalarComparator extends Comparator ); } + /** @phpstan-ignore notEqual.notAllowed */ if ($expectedToCompare != $actualToCompare) { throw new ComparisonFailure( $expected, @@ -108,11 +112,13 @@ class ScalarComparator extends Comparator private static function findCommonPrefix(string $string1, string $string2): string { for ($i = 0; $i < strlen($string1); $i++) { - if (!isset($string2[$i]) || $string1[$i] != $string2[$i]) { + if (!isset($string2[$i]) || $string1[$i] !== $string2[$i]) { break; } } + assert(isset($i)); + return substr($string1, 0, $i); } @@ -140,14 +146,14 @@ class ScalarComparator extends Comparator $lastCharIndex1 = strlen($string1) - 1; $lastCharIndex2 = strlen($string2) - 1; - if ($string1[$lastCharIndex1] != $string2[$lastCharIndex2]) { + if ($string1[$lastCharIndex1] !== $string2[$lastCharIndex2]) { return ''; } while ( $lastCharIndex1 > 0 && $lastCharIndex2 > 0 && - $string1[$lastCharIndex1] == $string2[$lastCharIndex2] + $string1[$lastCharIndex1] === $string2[$lastCharIndex2] ) { $lastCharIndex1--; $lastCharIndex2--; diff --git a/vendor/sebastian/comparator/src/SplObjectStorageComparator.php b/vendor/sebastian/comparator/src/SplObjectStorageComparator.php index ee37f4fbe..a32b588be 100644 --- a/vendor/sebastian/comparator/src/SplObjectStorageComparator.php +++ b/vendor/sebastian/comparator/src/SplObjectStorageComparator.php @@ -13,6 +13,11 @@ use function assert; use SebastianBergmann\Exporter\Exporter; use SplObjectStorage; +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + * + * @internal This class is not covered by the backward compatibility promise for sebastian/comparator + */ final class SplObjectStorageComparator extends Comparator { public function accepts(mixed $expected, mixed $actual): bool diff --git a/vendor/sebastian/comparator/src/TypeComparator.php b/vendor/sebastian/comparator/src/TypeComparator.php index 67994e9f6..c54468b8e 100644 --- a/vendor/sebastian/comparator/src/TypeComparator.php +++ b/vendor/sebastian/comparator/src/TypeComparator.php @@ -13,6 +13,11 @@ use function gettype; use function sprintf; use SebastianBergmann\Exporter\Exporter; +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + * + * @internal This class is not covered by the backward compatibility promise for sebastian/comparator + */ final class TypeComparator extends Comparator { public function accepts(mixed $expected, mixed $actual): bool @@ -25,7 +30,7 @@ final class TypeComparator extends Comparator */ public function assertEquals(mixed $expected, mixed $actual, float $delta = 0.0, bool $canonicalize = false, bool $ignoreCase = false): void { - if (gettype($expected) != gettype($actual)) { + if (gettype($expected) !== gettype($actual)) { throw new ComparisonFailure( $expected, $actual, diff --git a/vendor/sebastian/comparator/src/exceptions/Exception.php b/vendor/sebastian/comparator/src/exceptions/Exception.php index 8975aaf1b..122130962 100644 --- a/vendor/sebastian/comparator/src/exceptions/Exception.php +++ b/vendor/sebastian/comparator/src/exceptions/Exception.php @@ -11,6 +11,9 @@ namespace SebastianBergmann\Comparator; use Throwable; +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + */ interface Exception extends Throwable { } diff --git a/vendor/sebastian/comparator/src/exceptions/RuntimeException.php b/vendor/sebastian/comparator/src/exceptions/RuntimeException.php index ca726084a..1ad7d7391 100644 --- a/vendor/sebastian/comparator/src/exceptions/RuntimeException.php +++ b/vendor/sebastian/comparator/src/exceptions/RuntimeException.php @@ -9,6 +9,9 @@ */ namespace SebastianBergmann\Comparator; +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for sebastian/comparator + */ final class RuntimeException extends \RuntimeException implements Exception { } diff --git a/vendor/sebastian/complexity/ChangeLog.md b/vendor/sebastian/complexity/ChangeLog.md index b71d4df63..6d06b2cb3 100644 --- a/vendor/sebastian/complexity/ChangeLog.md +++ b/vendor/sebastian/complexity/ChangeLog.md @@ -2,6 +2,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. +## [5.0.0] - 2025-02-07 + +### Removed + +* This component is no longer supported on PHP 8.2 + ## [4.0.1] - 2024-07-03 ### Changed @@ -72,6 +78,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * Initial release +[5.0.0]: https://github.com/sebastianbergmann/complexity/compare/4.0...5.0.0 [4.0.1]: https://github.com/sebastianbergmann/complexity/compare/4.0.0...4.0.1 [4.0.0]: https://github.com/sebastianbergmann/complexity/compare/3.2...4.0.0 [3.2.0]: https://github.com/sebastianbergmann/complexity/compare/3.1.0...3.2.0 diff --git a/vendor/sebastian/complexity/LICENSE b/vendor/sebastian/complexity/LICENSE index edaedf619..0d534da34 100644 --- a/vendor/sebastian/complexity/LICENSE +++ b/vendor/sebastian/complexity/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2020-2024, Sebastian Bergmann +Copyright (c) 2020-2025, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/sebastian/complexity/README.md b/vendor/sebastian/complexity/README.md index 3c2e26354..7293280c0 100644 --- a/vendor/sebastian/complexity/README.md +++ b/vendor/sebastian/complexity/README.md @@ -1,4 +1,4 @@ -[![Latest Stable Version](https://poser.pugx.org/sebastian/complexity/v/stable.png)](https://packagist.org/packages/sebastian/complexity) +[![Latest Stable Version](https://poser.pugx.org/sebastian/complexity/v)](https://packagist.org/packages/sebastian/complexity) [![CI Status](https://github.com/sebastianbergmann/complexity/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/complexity/actions) [![codecov](https://codecov.io/gh/sebastianbergmann/complexity/branch/main/graph/badge.svg)](https://codecov.io/gh/sebastianbergmann/complexity) diff --git a/vendor/sebastian/complexity/composer.json b/vendor/sebastian/complexity/composer.json index 55ebd47eb..994a5a3de 100644 --- a/vendor/sebastian/complexity/composer.json +++ b/vendor/sebastian/complexity/composer.json @@ -17,15 +17,15 @@ }, "prefer-stable": true, "require": { - "php": ">=8.2", + "php": ">=8.3", "nikic/php-parser": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true @@ -37,7 +37,7 @@ }, "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } } } diff --git a/vendor/sebastian/complexity/src/Calculator.php b/vendor/sebastian/complexity/src/Calculator.php index 66af33991..546cbd749 100644 --- a/vendor/sebastian/complexity/src/Calculator.php +++ b/vendor/sebastian/complexity/src/Calculator.php @@ -51,7 +51,6 @@ final class Calculator assert($nodes !== null); return $this->calculateForAbstractSyntaxTree($nodes); - // @codeCoverageIgnoreStart } catch (Error $error) { throw new RuntimeException( diff --git a/vendor/sebastian/complexity/src/Complexity/ComplexityCollection.php b/vendor/sebastian/complexity/src/Complexity/ComplexityCollection.php index 99326c668..90fc4d085 100644 --- a/vendor/sebastian/complexity/src/Complexity/ComplexityCollection.php +++ b/vendor/sebastian/complexity/src/Complexity/ComplexityCollection.php @@ -32,7 +32,7 @@ final readonly class ComplexityCollection implements Countable, IteratorAggregat public static function fromList(Complexity ...$items): self { - return new self($items); + return new self(array_values($items)); } /** diff --git a/vendor/sebastian/complexity/src/Visitor/ComplexityCalculatingVisitor.php b/vendor/sebastian/complexity/src/Visitor/ComplexityCalculatingVisitor.php index 1db93e262..41ef2f036 100644 --- a/vendor/sebastian/complexity/src/Visitor/ComplexityCalculatingVisitor.php +++ b/vendor/sebastian/complexity/src/Visitor/ComplexityCalculatingVisitor.php @@ -13,7 +13,6 @@ use function assert; use function is_array; use PhpParser\Node; use PhpParser\Node\Expr\New_; -use PhpParser\Node\Name; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; @@ -111,7 +110,6 @@ final class ComplexityCalculatingVisitor extends NodeVisitorAbstract } assert(isset($parent->namespacedName)); - assert($parent->namespacedName instanceof Name); return $parent->namespacedName->toString() . '::' . $node->name->toString(); } @@ -122,12 +120,7 @@ final class ComplexityCalculatingVisitor extends NodeVisitorAbstract private function functionName(Function_ $node): string { assert(isset($node->namespacedName)); - assert($node->namespacedName instanceof Name); - $functionName = $node->namespacedName->toString(); - - assert($functionName !== ''); - - return $functionName; + return $node->namespacedName->toString(); } } diff --git a/vendor/sebastian/complexity/src/Visitor/CyclomaticComplexityCalculatingVisitor.php b/vendor/sebastian/complexity/src/Visitor/CyclomaticComplexityCalculatingVisitor.php index 3e5d26d5d..a5dd5fb9f 100644 --- a/vendor/sebastian/complexity/src/Visitor/CyclomaticComplexityCalculatingVisitor.php +++ b/vendor/sebastian/complexity/src/Visitor/CyclomaticComplexityCalculatingVisitor.php @@ -31,7 +31,7 @@ final class CyclomaticComplexityCalculatingVisitor extends NodeVisitorAbstract */ private int $cyclomaticComplexity = 1; - public function enterNode(Node $node): void + public function enterNode(Node $node): null { switch ($node::class) { case BooleanAnd::class: @@ -49,6 +49,8 @@ final class CyclomaticComplexityCalculatingVisitor extends NodeVisitorAbstract case While_::class: $this->cyclomaticComplexity++; } + + return null; } /** diff --git a/vendor/sebastian/diff/ChangeLog.md b/vendor/sebastian/diff/ChangeLog.md index b12b9932f..4d3379ba3 100644 --- a/vendor/sebastian/diff/ChangeLog.md +++ b/vendor/sebastian/diff/ChangeLog.md @@ -2,6 +2,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [7.0.0] - 2025-02-07 + +### Removed + +* This component is no longer supported on PHP 8.3 + ## [6.0.2] - 2024-07-03 ### Changed @@ -21,7 +27,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * `SebastianBergmann\Diff\Chunk::getStart()`, `SebastianBergmann\Diff\Chunk::getStartRange()`, `SebastianBergmann\Diff\Chunk::getEnd()`, `SebastianBergmann\Diff\Chunk::getEndRange()`, and `SebastianBergmann\Diff\Chunk::getLines()` * `SebastianBergmann\Diff\Diff::getFrom()`, `SebastianBergmann\Diff\Diff::getTo()`, and `SebastianBergmann\Diff\Diff::getChunks()` * `SebastianBergmann\Diff\Line::getContent()` and `SebastianBergmann\Diff\Diff::getType()` -* Removed support for PHP 8.1 +* This component is no longer supported on PHP 8.1 ## [5.1.1] - 2024-03-02 @@ -75,7 +81,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt ### Removed -* Removed support for PHP 7.3, PHP 7.4, and PHP 8.0 +* This component is no longer supported on PHP 7.3, PHP 7.4, and PHP 8.0 ## [4.0.4] - 2020-10-26 @@ -105,7 +111,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt ### Removed -* Removed support for PHP 7.1 and PHP 7.2 +* This component is no longer supported on PHP 7.1 and PHP 7.2 ## [3.0.2] - 2019-02-04 @@ -129,7 +135,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt ### Removed -* Removed support for PHP 7.0 +* This component is no longer supported on PHP 7.0 ### Fixed @@ -151,6 +157,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * This component is no longer supported on PHP 5.6 +[7.0.0]: https://github.com/sebastianbergmann/diff/compare/6.0...7.0.0 [6.0.2]: https://github.com/sebastianbergmann/diff/compare/6.0.1...6.0.2 [6.0.1]: https://github.com/sebastianbergmann/diff/compare/6.0.0...6.0.1 [6.0.0]: https://github.com/sebastianbergmann/diff/compare/5.1...6.0.0 diff --git a/vendor/sebastian/diff/LICENSE b/vendor/sebastian/diff/LICENSE index 5b4705a48..c5268a916 100644 --- a/vendor/sebastian/diff/LICENSE +++ b/vendor/sebastian/diff/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2002-2024, Sebastian Bergmann +Copyright (c) 2002-2025, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/sebastian/diff/README.md b/vendor/sebastian/diff/README.md index 7b710249a..6688692f1 100644 --- a/vendor/sebastian/diff/README.md +++ b/vendor/sebastian/diff/README.md @@ -1,4 +1,4 @@ -[![Latest Stable Version](https://poser.pugx.org/sebastian/diff/v/stable.png)](https://packagist.org/packages/sebastian/diff) +[![Latest Stable Version](https://poser.pugx.org/sebastian/diff/v)](https://packagist.org/packages/sebastian/diff) [![CI Status](https://github.com/sebastianbergmann/diff/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/diff/actions) [![codecov](https://codecov.io/gh/sebastianbergmann/diff/branch/main/graph/badge.svg)](https://codecov.io/gh/sebastianbergmann/diff) @@ -27,14 +27,17 @@ composer require --dev sebastian/diff The `Differ` class can be used to generate a textual representation of the difference between two strings: ```php -diff('foo', 'bar'); ``` The code above yields the output below: + ```diff --- Original +++ New @@ -43,73 +46,16 @@ The code above yields the output below: +bar ``` -There are three output builders available in this package: +The `UnifiedDiffOutputBuilder` used in the example above generates output in "unified diff" +format and is used by PHPUnit, for example. -#### UnifiedDiffOutputBuilder +The `StrictUnifiedDiffOutputBuilder` generates output in "strict unified diff" format with +hunks, similar to `diff -u` and compatible with `patch` or `git apply`. -This is default builder, which generates the output close to udiff and is used by PHPUnit. +The `DiffOnlyOutputBuilder` generates output that only contains the lines that differ. -```php -diff('foo', 'bar'); -``` - -#### StrictUnifiedDiffOutputBuilder - -Generates (strict) Unified diff's (unidiffs) with hunks, -similar to `diff -u` and compatible with `patch` and `git apply`. - -```php - true, // ranges of length one are rendered with the trailing `,1` - 'commonLineThreshold' => 6, // number of same lines before ending a new hunk and creating a new one (if needed) - 'contextLines' => 3, // like `diff: -u, -U NUM, --unified[=NUM]`, for patch/git apply compatibility best to keep at least @ 3 - 'fromFile' => '', - 'fromFileDate' => null, - 'toFile' => '', - 'toFileDate' => null, -]); - -$differ = new Differ($builder); -print $differ->diff('foo', 'bar'); -``` - -#### DiffOnlyOutputBuilder - -Output only the lines that differ. - -```php -diff('foo', 'bar'); -``` - -#### DiffOutputBuilderInterface - -You can pass any output builder to the `Differ` class as longs as it implements the `DiffOutputBuilderInterface`. +If none of these three output builders match your use case then you can implement +`DiffOutputBuilderInterface` to generate custom output. #### Parsing diff diff --git a/vendor/sebastian/diff/composer.json b/vendor/sebastian/diff/composer.json index 7e19a7d99..124d8ed6f 100644 --- a/vendor/sebastian/diff/composer.json +++ b/vendor/sebastian/diff/composer.json @@ -21,17 +21,17 @@ "prefer-stable": true, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0", - "symfony/process": "^4.2 || ^5" + "phpunit/phpunit": "^12.0", + "symfony/process": "^7.2" }, "autoload": { "classmap": [ @@ -45,7 +45,7 @@ }, "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } } } diff --git a/vendor/sebastian/diff/src/Chunk.php b/vendor/sebastian/diff/src/Chunk.php index 8d1854e01..18b5ce17c 100644 --- a/vendor/sebastian/diff/src/Chunk.php +++ b/vendor/sebastian/diff/src/Chunk.php @@ -73,12 +73,6 @@ final class Chunk implements IteratorAggregate */ public function setLines(array $lines): void { - foreach ($lines as $line) { - if (!$line instanceof Line) { - throw new InvalidArgumentException; - } - } - $this->lines = $lines; } diff --git a/vendor/sebastian/diff/src/Differ.php b/vendor/sebastian/diff/src/Differ.php index 86bd96c72..44a4b4455 100644 --- a/vendor/sebastian/diff/src/Differ.php +++ b/vendor/sebastian/diff/src/Differ.php @@ -30,11 +30,11 @@ use SebastianBergmann\Diff\Output\DiffOutputBuilderInterface; final class Differ { - public const OLD = 0; - public const ADDED = 1; - public const REMOVED = 2; - public const DIFF_LINE_END_WARNING = 3; - public const NO_LINE_END_EOF_WARNING = 4; + public const int OLD = 0; + public const int ADDED = 1; + public const int REMOVED = 2; + public const int DIFF_LINE_END_WARNING = 3; + public const int NO_LINE_END_EOF_WARNING = 4; private DiffOutputBuilderInterface $outputBuilder; public function __construct(DiffOutputBuilderInterface $outputBuilder) @@ -84,11 +84,11 @@ final class Differ reset($to); foreach ($common as $token) { - while (($fromToken = reset($from)) !== $token) { + while ((/* from-token */ reset($from)) !== $token) { $diff[] = [array_shift($from), self::REMOVED]; } - while (($toToken = reset($to)) !== $token) { + while ((/* to-token */ reset($to)) !== $token) { $diff[] = [array_shift($to), self::ADDED]; } @@ -137,7 +137,7 @@ final class Differ return new TimeEfficientLongestCommonSubsequenceCalculator; } - private function calculateEstimatedFootprint(array $from, array $to): float|int + private function calculateEstimatedFootprint(array $from, array $to): int { $itemSize = PHP_INT_SIZE === 4 ? 76 : 144; diff --git a/vendor/sebastian/diff/src/Line.php b/vendor/sebastian/diff/src/Line.php index be544f058..6576beeb8 100644 --- a/vendor/sebastian/diff/src/Line.php +++ b/vendor/sebastian/diff/src/Line.php @@ -11,9 +11,9 @@ namespace SebastianBergmann\Diff; final class Line { - public const ADDED = 1; - public const REMOVED = 2; - public const UNCHANGED = 3; + public const int ADDED = 1; + public const int REMOVED = 2; + public const int UNCHANGED = 3; private int $type; private string $content; diff --git a/vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php b/vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php index b9846c37e..c9489230c 100644 --- a/vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php +++ b/vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php @@ -15,7 +15,6 @@ use function array_reverse; use function array_slice; use function count; use function in_array; -use function max; final class MemoryEfficientLongestCommonSubsequenceCalculator implements LongestCommonSubsequenceCalculator { diff --git a/vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php b/vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php index 6c706839f..a4377d300 100644 --- a/vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php +++ b/vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php @@ -16,6 +16,8 @@ abstract class AbstractChunkOutputBuilder implements DiffOutputBuilderInterface /** * Takes input of the diff array and returns the common parts. * Iterates through diff line by line. + * + * @return array */ protected function getCommonChunks(array $diff, int $lineThreshold = 5): array { diff --git a/vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php b/vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php index fd6ce768a..7b5d3a730 100644 --- a/vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php +++ b/vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php @@ -9,9 +9,11 @@ */ namespace SebastianBergmann\Diff\Output; +use function assert; use function fclose; use function fopen; use function fwrite; +use function is_resource; use function str_ends_with; use function stream_get_contents; use function substr; @@ -34,6 +36,8 @@ final class DiffOnlyOutputBuilder implements DiffOutputBuilderInterface { $buffer = fopen('php://memory', 'r+b'); + assert(is_resource($buffer)); + if ('' !== $this->header) { fwrite($buffer, $this->header); diff --git a/vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php b/vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php index 3bb5e0de2..5c496186c 100644 --- a/vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php +++ b/vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php @@ -11,12 +11,14 @@ namespace SebastianBergmann\Diff\Output; use function array_merge; use function array_splice; +use function assert; use function count; use function fclose; use function fopen; use function fwrite; use function is_bool; use function is_int; +use function is_resource; use function is_string; use function max; use function min; @@ -99,6 +101,9 @@ final class StrictUnifiedDiffOutputBuilder implements DiffOutputBuilderInterface $this->changed = false; $buffer = fopen('php://memory', 'r+b'); + + assert(is_resource($buffer)); + fwrite($buffer, $this->header); $this->writeDiffHunks($buffer, $diff); diff --git a/vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php b/vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php index fa6ae7a14..d07ace6f0 100644 --- a/vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php +++ b/vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php @@ -10,10 +10,12 @@ namespace SebastianBergmann\Diff\Output; use function array_splice; +use function assert; use function count; use function fclose; use function fopen; use function fwrite; +use function is_resource; use function max; use function min; use function str_ends_with; @@ -46,6 +48,8 @@ final class UnifiedDiffOutputBuilder extends AbstractChunkOutputBuilder { $buffer = fopen('php://memory', 'r+b'); + assert(is_resource($buffer)); + if ('' !== $this->header) { fwrite($buffer, $this->header); diff --git a/vendor/sebastian/diff/src/Parser.php b/vendor/sebastian/diff/src/Parser.php index 9293fc919..e63e690c1 100644 --- a/vendor/sebastian/diff/src/Parser.php +++ b/vendor/sebastian/diff/src/Parser.php @@ -9,6 +9,7 @@ */ namespace SebastianBergmann\Diff; +use const PREG_UNMATCHED_AS_NULL; use function array_pop; use function assert; use function count; @@ -71,6 +72,9 @@ final class Parser return $diffs; } + /** + * @param string[] $lines + */ private function parseFileDiff(Diff $diff, array $lines): void { $chunks = []; diff --git a/vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php b/vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php index 93b762887..98e856d53 100644 --- a/vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php +++ b/vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php @@ -11,7 +11,6 @@ namespace SebastianBergmann\Diff; use function array_reverse; use function count; -use function max; use SplFixedArray; final class TimeEfficientLongestCommonSubsequenceCalculator implements LongestCommonSubsequenceCalculator diff --git a/vendor/sebastian/environment/ChangeLog.md b/vendor/sebastian/environment/ChangeLog.md index 1e527399d..c52aa6336 100644 --- a/vendor/sebastian/environment/ChangeLog.md +++ b/vendor/sebastian/environment/ChangeLog.md @@ -2,6 +2,54 @@ All notable changes in `sebastianbergmann/environment` are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [8.1.2] - 2026-05-25 + +### Fixed + +* [#99](https://github.com/sebastianbergmann/environment/issues/99): `Runtime::getCurrentSettings()` forwards empty-string overrides for php.ini-only extensions + +## [8.1.1] - 2026-05-21 + +### Fixed + +* [#64](https://github.com/sebastianbergmann/environment/issues/64): `Runtime::getCurrentSettings()` does not quote values, breaking `php -d` round-trip + +## [8.1.0] - 2026-04-15 + +### Added + +* `Runtime::getSettingsNotChangeableAtRuntime()` + +## [8.0.4] - 2026-03-15 + +### Fixed + +* [#79](https://github.com/sebastianbergmann/environment/issues/79): Warnings in non-TTY environments + +## [8.0.3] - 2025-08-12 + +### Changed + +* [#75](https://github.com/sebastianbergmann/environment/pull/75): Make `Runtime::isOpcacheActive()` public + +## [8.0.2] - 2025-05-21 + +### Fixed + +* [#74](https://github.com/sebastianbergmann/environment/pull/74): Regression introduced in version 8.0.0 + +## [8.0.1] - 2025-05-21 + +### Fixed + +* Take Xdebug mode into account for `Runtime::canCollectCodeCoverage()` + +## [8.0.0] - 2025-02-07 + +### Removed + +* This component is no longer supported on PHP 8.2 + ## [7.2.1] - 2025-05-21 ### Fixed @@ -215,6 +263,14 @@ All notable changes in `sebastianbergmann/environment` are documented in this fi * This component is no longer supported on PHP 5.6 +[8.1.2]: https://github.com/sebastianbergmann/environment/compare/8.1.1...8.1.2 +[8.1.1]: https://github.com/sebastianbergmann/environment/compare/8.1.0...8.1.1 +[8.1.0]: https://github.com/sebastianbergmann/environment/compare/8.0.4...8.1.0 +[8.0.4]: https://github.com/sebastianbergmann/environment/compare/8.0.3...8.0.4 +[8.0.3]: https://github.com/sebastianbergmann/environment/compare/8.0.2...8.0.3 +[8.0.2]: https://github.com/sebastianbergmann/environment/compare/8.0.1...8.0.2 +[8.0.1]: https://github.com/sebastianbergmann/environment/compare/8.0.0...8.0.1 +[8.0.0]: https://github.com/sebastianbergmann/environment/compare/7.2...8.0.0 [7.2.1]: https://github.com/sebastianbergmann/environment/compare/7.2.0...7.2.1 [7.2.0]: https://github.com/sebastianbergmann/environment/compare/7.1.0...7.2.0 [7.1.0]: https://github.com/sebastianbergmann/environment/compare/7.0.0...7.1.0 diff --git a/vendor/sebastian/environment/LICENSE b/vendor/sebastian/environment/LICENSE index 845fd0b12..2e8cfac08 100644 --- a/vendor/sebastian/environment/LICENSE +++ b/vendor/sebastian/environment/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2014-2025, Sebastian Bergmann +Copyright (c) 2014-2026, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/sebastian/environment/composer.json b/vendor/sebastian/environment/composer.json index 06165196d..3aa5183b1 100644 --- a/vendor/sebastian/environment/composer.json +++ b/vendor/sebastian/environment/composer.json @@ -16,17 +16,17 @@ }, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true }, "prefer-stable": true, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.5.26" }, "suggest": { "ext-posix": "*" @@ -38,7 +38,7 @@ }, "extra": { "branch-alias": { - "dev-main": "7.2-dev" + "dev-main": "8.1-dev" } } } diff --git a/vendor/sebastian/environment/src/Console.php b/vendor/sebastian/environment/src/Console.php index 17b392e0a..05377ff1f 100644 --- a/vendor/sebastian/environment/src/Console.php +++ b/vendor/sebastian/environment/src/Console.php @@ -19,7 +19,7 @@ use function fstat; use function function_exists; use function getenv; use function in_array; -use function is_array; +use function is_int; use function is_resource; use function is_string; use function posix_isatty; @@ -38,17 +38,17 @@ final class Console /** * @var int */ - public const STDIN = 0; + public const int STDIN = 0; /** * @var int */ - public const STDOUT = 1; + public const int STDOUT = 1; /** * @var int */ - public const STDERR = 2; + public const int STDERR = 2; /** * Returns true if STDOUT supports colorization. @@ -117,17 +117,19 @@ final class Console * * @param int|resource $fileDescriptor */ - public function isInteractive($fileDescriptor = self::STDOUT): bool + public function isInteractive(mixed $fileDescriptor = self::STDOUT): bool { + assert(is_int($fileDescriptor) || is_resource($fileDescriptor)); + if (is_resource($fileDescriptor)) { if (function_exists('stream_isatty') && @stream_isatty($fileDescriptor)) { return true; } if (function_exists('fstat')) { - $stat = @fstat(STDOUT); + $stat = @fstat($fileDescriptor); - return $stat && 0o020000 === ($stat['mode'] & 0o170000); + return $stat !== false && 0o020000 === ($stat['mode'] & 0o170000); } return false; @@ -146,15 +148,29 @@ final class Console */ private function getNumberOfColumnsInteractive(): int { - if (function_exists('shell_exec') && preg_match('#\d+ (\d+)#', shell_exec('stty size') ?: '', $match) === 1) { - if ((int) $match[1] > 0) { - return (int) $match[1]; - } - } + if (function_exists('shell_exec')) { + $stty = shell_exec('stty size 2>/dev/null'); - if (function_exists('shell_exec') && preg_match('#columns = (\d+);#', shell_exec('stty') ?: '', $match) === 1) { - if ((int) $match[1] > 0) { - return (int) $match[1]; + if ($stty === false || $stty === null) { + $stty = ''; + } + + if (preg_match('#\d+ (\d+)#', $stty, $match) === 1) { + if ((int) $match[1] > 0) { + return (int) $match[1]; + } + } + + $stty = shell_exec('stty 2>/dev/null'); + + if ($stty === false || $stty === null) { + $stty = ''; + } + + if (preg_match('#columns = (\d+);#', $stty, $match) === 1) { + if ((int) $match[1] > 0) { + return (int) $match[1]; + } } } @@ -169,6 +185,7 @@ final class Console $ansicon = getenv('ANSICON'); $columns = 80; + /** @phpstan-ignore booleanAnd.rightNotBoolean */ if (is_string($ansicon) && preg_match('/^(\d+)x\d+ \(\d+x(\d+)\)$/', trim($ansicon), $matches)) { $columns = (int) $matches[1]; } elseif (function_exists('proc_open')) { @@ -184,7 +201,6 @@ final class Console ['suppress_errors' => true], ); - assert(is_array($pipes)); assert(isset($pipes[1]) && is_resource($pipes[1])); assert(isset($pipes[2]) && is_resource($pipes[2])); @@ -195,6 +211,7 @@ final class Console fclose($pipes[2]); proc_close($process); + /** @phpstan-ignore if.condNotBoolean */ if (preg_match('/--------+\r?\n.+?(\d+)\r?\n.+?(\d+)\r?\n/', (string) $info, $matches)) { $columns = (int) $matches[2]; } diff --git a/vendor/sebastian/environment/src/Runtime.php b/vendor/sebastian/environment/src/Runtime.php index e711933f2..805e6a2ce 100644 --- a/vendor/sebastian/environment/src/Runtime.php +++ b/vendor/sebastian/environment/src/Runtime.php @@ -9,9 +9,11 @@ */ namespace SebastianBergmann\Environment; +use const INI_SCANNER_NORMAL; use const PHP_BINARY; use const PHP_SAPI; use const PHP_VERSION; +use function array_key_exists; use function array_map; use function array_merge; use function assert; @@ -20,18 +22,30 @@ use function explode; use function extension_loaded; use function in_array; use function ini_get; +use function ini_get_all; use function is_array; +use function is_int; +use function is_string; +use function json_decode; use function parse_ini_file; use function php_ini_loaded_file; use function php_ini_scanned_files; use function phpversion; +use function proc_close; +use function proc_open; use function sprintf; +use function stream_get_contents; use function strrpos; use function version_compare; use function xdebug_info; final class Runtime { + /** + * @var ?array + */ + private static ?array $compiledDefaults = null; + /** * Returns true when Xdebug or PCOV is available or * the runtime used is PHPDBG. @@ -141,18 +155,26 @@ final class Runtime public function getNameWithVersionAndCodeCoverageDriver(): string { if ($this->hasPCOV()) { + $version = phpversion('pcov'); + + assert($version !== false); + return sprintf( '%s with PCOV %s', $this->getNameWithVersion(), - phpversion('pcov'), + $version, ); } if ($this->hasXdebug()) { + $version = phpversion('xdebug'); + + assert($version !== false); + return sprintf( '%s with Xdebug %s', $this->getNameWithVersion(), - phpversion('xdebug'), + $version, ); } @@ -218,18 +240,28 @@ final class Runtime */ public function hasPCOV(): bool { - return $this->isPHP() && extension_loaded('pcov') && ini_get('pcov.enabled'); + return $this->isPHP() && extension_loaded('pcov') && ini_get('pcov.enabled') === '1'; } /** * Parses the loaded php.ini file (if any) as well as all - * additional php.ini files from the additional ini dir for - * a list of all configuration settings loaded from files - * at startup. Then checks for each php.ini setting passed - * via the `$values` parameter whether this setting has - * been changed at runtime. Returns an array of strings - * where each string has the format `key=value` denoting - * the name of a changed php.ini setting with its new value. + * additional php.ini files from the additional ini dir into a + * single merged map of settings, and also obtains the compiled-in + * defaults by spawning a `php -n` child once per process. + * Then checks for each setting passed via the `$values` parameter + * whether the runtime value (`ini_get()`) differs from what the + * ini files specified or, when a setting is not configured in any + * ini file, from the compiled-in default. Returns an array of + * `key=value` strings for the changed settings. + * + * A setting whose runtime value is the empty string but that is + * absent from both the ini files and the compiled-in defaults is + * left alone: there is no evidence that it was overridden, so it + * is not forwarded. This avoids spurious empty overrides for + * settings of extensions that are not visible to the compiled-in + * defaults probe (e.g. extensions loaded only via php.ini), which + * would otherwise break child processes (see + * https://github.com/sebastianbergmann/environment/issues/99). * * @param list $values * @@ -237,43 +269,80 @@ final class Runtime */ public function getCurrentSettings(array $values): array { - $diff = []; - $files = []; + $iniFileValues = $this->parseLoadedIniFiles(); + $compiledDefaults = self::compiledDefaults(); + $diff = []; - if ($file = php_ini_loaded_file()) { - $files[] = $file; - } + foreach ($values as $value) { + $set = ini_get($value); - if ($scanned = php_ini_scanned_files()) { - $files = array_merge( - $files, - array_map( - 'trim', - explode(",\n", $scanned), - ), - ); - } - - foreach ($files as $ini) { - $config = parse_ini_file($ini, true); - - foreach ($values as $value) { - $set = ini_get($value); - - if (empty($set)) { - continue; - } - - if ((!isset($config[$value]) || ($set !== $config[$value]))) { - $diff[$value] = sprintf('%s=%s', $value, $set); - } + if ($set === false) { + continue; } + + if (isset($iniFileValues[$value]) && $iniFileValues[$value] === $set) { + continue; + } + + if (!isset($iniFileValues[$value]) && ($compiledDefaults[$value] ?? null) === $set) { + continue; + } + + if ($set === '' && + !isset($iniFileValues[$value]) && + !array_key_exists($value, $compiledDefaults)) { + continue; + } + + $diff[$value] = sprintf('%s=%s', $value, $set); } return $diff; } - private function isOpcacheActive(): bool + /** + * Returns INI settings that cannot be changed via ini_set() + * (PHP_INI_SYSTEM and PHP_INI_PERDIR) and whose current value + * differs from the value configured in INI files. + * + * These settings can only have been changed via CLI -d flags + * and must be forwarded as -d flags to child processes because + * ini_set() cannot change them at runtime. + * + * @return array + */ + public function getSettingsNotChangeableAtRuntime(): array + { + $allSettings = ini_get_all(null, true); + + assert($allSettings !== false); + + $nonRuntimeSettable = []; + + foreach ($allSettings as $key => $info) { + assert(is_array($info)); + assert(isset($info['access'])); + assert(is_int($info['access'])); + + /** + * Only consider settings that cannot be changed via ini_set(). + * + * PHP_INI_USER = 1 + * PHP_INI_PERDIR = 2 + * PHP_INI_SYSTEM = 4 + * PHP_INI_ALL = 7 + */ + if (($info['access'] & 1) !== 0) { + continue; + } + + $nonRuntimeSettable[] = $key; + } + + return $this->getCurrentSettings($nonRuntimeSettable); + } + + public function isOpcacheActive(): bool { if (!extension_loaded('Zend OPcache')) { return false; @@ -289,4 +358,110 @@ final class Runtime return false; } + + /** + * @return array + */ + private function parseLoadedIniFiles(): array + { + $files = []; + + $file = php_ini_loaded_file(); + + if ($file !== false) { + $files[] = $file; + } + + $scanned = php_ini_scanned_files(); + + if ($scanned !== false) { + $files = array_merge( + $files, + array_map( + 'trim', + explode(",\n", $scanned), + ), + ); + } + + $merged = []; + + foreach ($files as $ini) { + $parsed = parse_ini_file($ini, false, INI_SCANNER_NORMAL); + + if ($parsed === false) { + continue; + } + + foreach ($parsed as $key => $val) { + if (is_string($val)) { + $merged[$key] = $val; + } + } + } + + return $merged; + } + + /** + * Returns the compiled-in default values of every ini setting by + * spawning a `php -n` child process once and caching the result + * for the lifetime of the PHP process. When the child cannot be + * launched or its output is unusable, an empty array is returned + * and cached so the failure is not retried. + * + * @return array + */ + private static function compiledDefaults(): array + { + if (self::$compiledDefaults !== null) { + return self::$compiledDefaults; + } + + self::$compiledDefaults = []; + + $process = proc_open( + [PHP_BINARY, '-n', '-r', 'echo json_encode(ini_get_all(null, true));'], + [1 => ['pipe', 'w']], + $pipes, + ); + + if ($process === false) { + return self::$compiledDefaults; + } + + assert(isset($pipes[1])); + + $stdout = stream_get_contents($pipes[1]); + + proc_close($process); + + if (!is_string($stdout) || $stdout === '') { + return self::$compiledDefaults; + } + + $parsed = json_decode($stdout, true); + + if (!is_array($parsed)) { + return self::$compiledDefaults; + } + + foreach ($parsed as $key => $info) { + if (!is_string($key)) { + continue; + } + + if (!is_array($info)) { + continue; + } + + if (!isset($info['global_value']) || !is_string($info['global_value'])) { + continue; + } + + self::$compiledDefaults[$key] = $info['global_value']; + } + + return self::$compiledDefaults; + } } diff --git a/vendor/sebastian/exporter/ChangeLog.md b/vendor/sebastian/exporter/ChangeLog.md index aede7ce4a..4a2ec6e09 100644 --- a/vendor/sebastian/exporter/ChangeLog.md +++ b/vendor/sebastian/exporter/ChangeLog.md @@ -2,28 +2,31 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. -## [6.3.2] - 2025-09-24 +## [7.0.3] - 2026-05-20 + +### Fixed + +* [#90](https://github.com/sebastianbergmann/exporter/issues/90): `Exporter::toArray()` silently drops a private property that is redeclared in a derived class + +## [7.0.2] - 2025-09-24 ### Changed * Suppress `unexpected NAN value was coerced to string` warning triggered on PHP 8.5 -## [6.3.1] - 2025-09-22 +## [7.0.1] - 2025-09-22 ### Changed * Suppress `not representable as an int, cast occurred` warning triggered on PHP 8.5 -## [6.3.0] - 2024-12-05 +## [7.0.0] - 2025-02-07 -### Added +### Removed -* Optional constructor argument to control maximum string length +* This component is no longer supported on PHP 8.2 -### Deprecated - -* Optional argument for `shortenedRecursiveExport()` and `shortenedExport()` to control maximum string length - -[6.3.2]: https://github.com/sebastianbergmann/exporter/compare/6.3.1...6.3.2 -[6.3.1]: https://github.com/sebastianbergmann/exporter/compare/6.3.0...6.3.1 -[6.3.0]: https://github.com/sebastianbergmann/exporter/compare/6.2.0...6.3.0 +[7.0.3]: https://github.com/sebastianbergmann/exporter/compare/7.0.2...7.0.3 +[7.0.2]: https://github.com/sebastianbergmann/exporter/compare/7.0.1...7.0.2 +[7.0.1]: https://github.com/sebastianbergmann/exporter/compare/7.0.0...7.0.1 +[7.0.0]: https://github.com/sebastianbergmann/exporter/compare/6.3...7.0.0 diff --git a/vendor/sebastian/exporter/LICENSE b/vendor/sebastian/exporter/LICENSE index c5268a916..0fad16fc6 100644 --- a/vendor/sebastian/exporter/LICENSE +++ b/vendor/sebastian/exporter/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2002-2025, Sebastian Bergmann +Copyright (c) 2002-2026, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/sebastian/exporter/composer.json b/vendor/sebastian/exporter/composer.json index 779befb66..8b8fbe737 100644 --- a/vendor/sebastian/exporter/composer.json +++ b/vendor/sebastian/exporter/composer.json @@ -32,19 +32,19 @@ }, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true }, "prefer-stable": true, "require": { - "php": ">=8.2", + "php": ">=8.3", "ext-mbstring": "*", - "sebastian/recursion-context": "^6.0" + "sebastian/recursion-context": "^7.0.1" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.5.25" }, "autoload": { "classmap": [ @@ -58,7 +58,7 @@ }, "extra": { "branch-alias": { - "dev-main": "6.3-dev" + "dev-main": "7.0-dev" } } } diff --git a/vendor/sebastian/exporter/src/Exporter.php b/vendor/sebastian/exporter/src/Exporter.php index e131c5c3e..100ef5dd5 100644 --- a/vendor/sebastian/exporter/src/Exporter.php +++ b/vendor/sebastian/exporter/src/Exporter.php @@ -92,7 +92,7 @@ final readonly class Exporter $maxLengthForStrings = $this->maxLengthForStrings; } - if (!$processed) { + if ($processed === null) { $processed = new RecursionContext; } @@ -183,29 +183,43 @@ final readonly class Exporter return (array) $value; } - $array = []; + $properties = (array) $value; + $shadowed = $this->shadowedPropertyNames($properties); + $array = []; + + foreach ($properties as $key => $val) { + $key = (string) $key; - foreach ((array) $value as $key => $val) { // Exception traces commonly reference hundreds to thousands of // objects currently loaded in memory. Including them in the result // has a severe negative performance impact. - if ("\0Error\0trace" === $key || "\0Exception\0trace" === $key) { + if ($key === "\0Error\0trace" || $key === "\0Exception\0trace") { continue; } - // properties are transformed to keys in the following way: - // private $propertyName => "\0ClassName\0propertyName" - // protected $propertyName => "\0*\0propertyName" - // public $propertyName => "propertyName" - if (preg_match('/\0.+\0(.+)/', (string) $key, $matches)) { - $key = $matches[1]; - } - // See https://github.com/php/php-src/commit/5721132 if ($key === "\0gcdata") { continue; } + // Properties are transformed to keys in the following way: + // private $propertyName => "\0DeclaringClassName\0propertyName" + // protected $propertyName => "\0*\0propertyName" + // public $propertyName => "propertyName" + // + // A private property that is redeclared in a derived class and the + // private property of the same name that it shadows both exist, + // independently of each other. To keep one from overwriting the + // other, the name of a shadowed private property is prefixed with + // the name of the class that declares it. + if (preg_match('/^\0([^\0]+)\0([^\0]+)$/', $key, $matches) === 1) { + if ($matches[1] !== '*' && isset($shadowed[$matches[2]])) { + $key = $matches[1] . '::' . $matches[2]; + } else { + $key = $matches[2]; + } + } + $array[$key] = $val; } @@ -242,6 +256,43 @@ final readonly class Exporter return count((new ReflectionObject($value))->getProperties()); } + /** + * Returns, as keys of the returned array, the names of properties that + * are declared more than once in the inheritance chain of an object. + * + * This can only happen when a derived class redeclares a private property + * that one of its parent classes also declares. + * + * @param array $properties + * + * @return array + */ + private function shadowedPropertyNames(array $properties): array + { + $seen = []; + $shadowed = []; + + foreach ($properties as $key => $unused) { + $key = (string) $key; + + if ($key === "\0Error\0trace" || $key === "\0Exception\0trace" || $key === "\0gcdata") { + continue; + } + + if (preg_match('/^\0[^\0]+\0([^\0]+)$/', $key, $matches) === 1) { + $key = $matches[1]; + } + + if (isset($seen[$key])) { + $shadowed[$key] = true; + } + + $seen[$key] = true; + } + + return $shadowed; + } + /** * @param array $data * @param positive-int $maxLengthForStrings @@ -262,7 +313,7 @@ final readonly class Exporter } if (is_array($value)) { - assert(is_array($data[$key]) || is_object($data[$key])); + assert(isset($data[$key]) && (is_array($data[$key]) || is_object($data[$key]))); if ($processed->contains($data[$key]) !== false) { $result[] = '*RECURSION*'; @@ -302,6 +353,7 @@ final readonly class Exporter if (is_resource($value)) { return sprintf( 'resource(%d) of type (%s)', + /** @phpstan-ignore cast.useless */ (int) $value, get_resource_type($value), ); @@ -330,7 +382,7 @@ final readonly class Exporter return $this->exportString($value); } - if (!$processed) { + if ($processed === null) { $processed = new RecursionContext; } @@ -365,7 +417,7 @@ final readonly class Exporter private function exportString(string $value): string { // Match for most non-printable chars somewhat taking multibyte chars into account - if (preg_match('/[^\x09-\x0d\x1b\x20-\xff]/', $value)) { + if (preg_match('/[^\x09-\x0d\x1b\x20-\xff]/', $value) === 1) { return 'Binary String: 0x' . bin2hex($value); } diff --git a/vendor/sebastian/global-state/ChangeLog.md b/vendor/sebastian/global-state/ChangeLog.md index fc9f97636..75e61d029 100644 --- a/vendor/sebastian/global-state/ChangeLog.md +++ b/vendor/sebastian/global-state/ChangeLog.md @@ -2,6 +2,30 @@ All notable changes in `sebastian/global-state` are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. +## [8.0.3] - 2026-06-01 + +### Fixed + +* Constant names were not escaped when exporting them to code + +## [8.0.2] - 2025-08-29 + +### Changed + +* [#39](https://github.com/sebastianbergmann/global-state/pull/39): Restore nullable variables in super-global arrays + +## [8.0.1] - 2025-08-28 + +### Changed + +* [#38](https://github.com/sebastianbergmann/global-state/pull/38): Improve performance of `Snapshot::snapshotSuperGlobalArray()` + +## [8.0.0] - 2025-02-07 + +### Removed + +* This component is no longer supported on PHP 8.2 + ## [7.0.2] - 2024-07-03 ### Changed @@ -110,6 +134,10 @@ All notable changes in `sebastian/global-state` are documented in this file usin * This component is no longer supported on PHP 7.0 and PHP 7.1 +[8.0.3]: https://github.com/sebastianbergmann/global-state/compare/8.0.2...8.0.3 +[8.0.2]: https://github.com/sebastianbergmann/global-state/compare/8.0.1...8.0.2 +[8.0.1]: https://github.com/sebastianbergmann/global-state/compare/8.0.0...8.0.1 +[8.0.0]: https://github.com/sebastianbergmann/global-state/compare/7.0...8.0.0 [7.0.2]: https://github.com/sebastianbergmann/global-state/compare/7.0.1...7.0.2 [7.0.1]: https://github.com/sebastianbergmann/global-state/compare/7.0.0...7.0.1 [7.0.0]: https://github.com/sebastianbergmann/global-state/compare/6.0...7.0.0 diff --git a/vendor/sebastian/global-state/LICENSE b/vendor/sebastian/global-state/LICENSE index bdb57ec66..83489d635 100644 --- a/vendor/sebastian/global-state/LICENSE +++ b/vendor/sebastian/global-state/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2001-2024, Sebastian Bergmann +Copyright (c) 2001-2026, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/sebastian/global-state/README.md b/vendor/sebastian/global-state/README.md index 4e6b081b7..0d1ea0fe4 100644 --- a/vendor/sebastian/global-state/README.md +++ b/vendor/sebastian/global-state/README.md @@ -1,4 +1,4 @@ -[![Latest Stable Version](https://poser.pugx.org/sebastian/global-state/v/stable.png)](https://packagist.org/packages/sebastian/global-state) +[![Latest Stable Version](https://poser.pugx.org/sebastian/global-state/v)](https://packagist.org/packages/sebastian/global-state) [![CI Status](https://github.com/sebastianbergmann/global-state/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/global-state/actions) [![codecov](https://codecov.io/gh/sebastianbergmann/global-state/branch/main/graph/badge.svg)](https://codecov.io/gh/sebastianbergmann/global-state) diff --git a/vendor/sebastian/global-state/composer.json b/vendor/sebastian/global-state/composer.json index 95fb1f074..9aec62e35 100644 --- a/vendor/sebastian/global-state/composer.json +++ b/vendor/sebastian/global-state/composer.json @@ -17,19 +17,19 @@ "prefer-stable": true, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true }, "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0.1" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.5.28" }, "autoload": { "classmap": [ @@ -46,7 +46,7 @@ }, "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "8.0-dev" } } } diff --git a/vendor/sebastian/global-state/src/CodeExporter.php b/vendor/sebastian/global-state/src/CodeExporter.php index d3238e58c..77c5d4f7e 100644 --- a/vendor/sebastian/global-state/src/CodeExporter.php +++ b/vendor/sebastian/global-state/src/CodeExporter.php @@ -24,9 +24,9 @@ final class CodeExporter foreach ($snapshot->constants() as $name => $value) { $result .= sprintf( - 'if (!defined(\'%s\')) define(\'%s\', %s);' . "\n", - $name, - $name, + 'if (!defined(%s)) define(%s, %s);' . "\n", + $this->exportVariable($name), + $this->exportVariable($name), $this->exportVariable($value), ); } diff --git a/vendor/sebastian/global-state/src/Restorer.php b/vendor/sebastian/global-state/src/Restorer.php index 2a08a5e0d..f98ef097b 100644 --- a/vendor/sebastian/global-state/src/Restorer.php +++ b/vendor/sebastian/global-state/src/Restorer.php @@ -13,8 +13,11 @@ use function array_diff; use function array_key_exists; use function array_keys; use function array_merge; +use function assert; +use function class_exists; use function in_array; use function is_array; +use function property_exists; use ReflectionClass; use ReflectionProperty; @@ -52,6 +55,9 @@ final class Restorer foreach ($snapshot->staticProperties() as $className => $staticProperties) { foreach ($staticProperties as $name => $value) { + assert(class_exists($className)); + assert(property_exists($className, $name)); + $reflector = new ReflectionProperty($className, $name); $reflector->setValue(null, $value); } @@ -95,7 +101,9 @@ final class Restorer ); foreach ($keys as $key) { - if (isset($superGlobalVariables[$superGlobalArray][$key])) { + assert(isset($GLOBALS[$superGlobalArray]) && is_array($GLOBALS[$superGlobalArray])); + + if (array_key_exists($key, $superGlobalVariables[$superGlobalArray])) { $GLOBALS[$superGlobalArray][$key] = $superGlobalVariables[$superGlobalArray][$key]; } else { unset($GLOBALS[$superGlobalArray][$key]); diff --git a/vendor/sebastian/global-state/src/Snapshot.php b/vendor/sebastian/global-state/src/Snapshot.php index e8b7a161d..66920d8d0 100644 --- a/vendor/sebastian/global-state/src/Snapshot.php +++ b/vendor/sebastian/global-state/src/Snapshot.php @@ -96,7 +96,11 @@ final class Snapshot public function __construct(?ExcludeList $excludeList = null, bool $includeGlobalVariables = true, bool $includeStaticProperties = true, bool $includeConstants = true, bool $includeFunctions = true, bool $includeClasses = true, bool $includeInterfaces = true, bool $includeTraits = true, bool $includeIniSettings = true, bool $includeIncludedFiles = true) { - $this->excludeList = $excludeList ?: new ExcludeList; + if ($excludeList === null) { + $excludeList = new ExcludeList; + } + + $this->excludeList = $excludeList; if ($includeConstants) { $this->snapshotConstants(); @@ -128,6 +132,7 @@ final class Snapshot assert($iniSettings !== false); + /* @phpstan-ignore assign.propertyType */ $this->iniSettings = $iniSettings; } @@ -290,10 +295,11 @@ final class Snapshot foreach (array_keys($GLOBALS) as $key) { if ($key !== 'GLOBALS' && !in_array($key, $superGlobalArrays, true) && - $this->canBeSerialized($GLOBALS[$key]) && - !$this->excludeList->isGlobalVariableExcluded($key)) { - /* @noinspection UnserializeExploitsInspection */ - $this->globalVariables[$key] = unserialize(serialize($GLOBALS[$key])); + !$this->excludeList->isGlobalVariableExcluded($key) && + $this->canBeSerialized($GLOBALS[$key]) + ) { + /* @phpstan-ignore assign.propertyType */ + $this->globalVariables[$key] = $this->copyWithSerialize($GLOBALS[$key]); } } } @@ -304,8 +310,8 @@ final class Snapshot if (isset($GLOBALS[$superGlobalArray]) && is_array($GLOBALS[$superGlobalArray])) { foreach ($GLOBALS[$superGlobalArray] as $key => $value) { - /* @noinspection UnserializeExploitsInspection */ - $this->superGlobalVariables[$superGlobalArray][$key] = unserialize(serialize($value)); + /* @phpstan-ignore assign.propertyType */ + $this->superGlobalVariables[$superGlobalArray][$key] = $this->copyWithSerialize($value); } } } @@ -331,13 +337,12 @@ final class Snapshot $value = $property->getValue(); if ($this->canBeSerialized($value)) { - /* @noinspection UnserializeExploitsInspection */ - $snapshot[$name] = unserialize(serialize($value)); + $snapshot[$name] = $this->copyWithSerialize($value); } } } - if (!empty($snapshot)) { + if ($snapshot !== []) { $this->staticProperties[$className] = $snapshot; } } @@ -356,6 +361,16 @@ final class Snapshot ]; } + private function copyWithSerialize(mixed $variable): mixed + { + if (is_scalar($variable) || $variable === null) { + return $variable; + } + + /* @noinspection UnserializeExploitsInspection */ + return unserialize(serialize($variable)); + } + private function canBeSerialized(mixed $variable): bool { if (is_scalar($variable) || $variable === null) { @@ -396,7 +411,8 @@ final class Snapshot { $result = []; - if ($processed->contains($variable)) { + /* @phpstan-ignore argument.type */ + if ($processed->contains($variable) !== false) { return $result; } diff --git a/vendor/sebastian/lines-of-code/ChangeLog.md b/vendor/sebastian/lines-of-code/ChangeLog.md index d4e0905b0..063df6480 100644 --- a/vendor/sebastian/lines-of-code/ChangeLog.md +++ b/vendor/sebastian/lines-of-code/ChangeLog.md @@ -2,6 +2,18 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. +## [4.0.1] - 2026-05-19 + +### Fixed + +* [#6](https://github.com/sebastianbergmann/lines-of-code/issues/6): Lines with multiple comments are double-counted, yielding negative `$nonCommentLinesOfCode` + +## [4.0.0] - 2025-02-07 + +### Removed + +* This component is no longer supported on PHP 8.2 + ## [3.0.1] - 2024-07-03 ### Changed @@ -59,6 +71,8 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * Initial release +[4.0.1]: https://github.com/sebastianbergmann/lines-of-code/compare/4.0.0...4.0.1 +[4.0.0]: https://github.com/sebastianbergmann/lines-of-code/compare/3.0...4.0.0 [3.0.1]: https://github.com/sebastianbergmann/lines-of-code/compare/3.0.0...3.0.1 [3.0.0]: https://github.com/sebastianbergmann/lines-of-code/compare/2.0...3.0.0 [2.0.2]: https://github.com/sebastianbergmann/lines-of-code/compare/2.0.1...2.0.2 diff --git a/vendor/sebastian/lines-of-code/LICENSE b/vendor/sebastian/lines-of-code/LICENSE index edaedf619..a48fe5da4 100644 --- a/vendor/sebastian/lines-of-code/LICENSE +++ b/vendor/sebastian/lines-of-code/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2020-2024, Sebastian Bergmann +Copyright (c) 2020-2026, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/sebastian/lines-of-code/README.md b/vendor/sebastian/lines-of-code/README.md index d98eab43f..765a0ebb2 100644 --- a/vendor/sebastian/lines-of-code/README.md +++ b/vendor/sebastian/lines-of-code/README.md @@ -1,4 +1,4 @@ -[![Latest Stable Version](https://poser.pugx.org/sebastian/lines-of-code/v/stable.png)](https://packagist.org/packages/sebastian/lines-of-code) +[![Latest Stable Version](https://poser.pugx.org/sebastian/lines-of-code/v)](https://packagist.org/packages/sebastian/lines-of-code) [![CI Status](https://github.com/sebastianbergmann/lines-of-code/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/lines-of-code/actions) [![codecov](https://codecov.io/gh/sebastianbergmann/lines-of-code/branch/main/graph/badge.svg)](https://codecov.io/gh/sebastianbergmann/lines-of-code) diff --git a/vendor/sebastian/lines-of-code/composer.json b/vendor/sebastian/lines-of-code/composer.json index 46f1243a3..4ccde87f3 100644 --- a/vendor/sebastian/lines-of-code/composer.json +++ b/vendor/sebastian/lines-of-code/composer.json @@ -17,15 +17,15 @@ }, "prefer-stable": true, "require": { - "php": ">=8.2", - "nikic/php-parser": "^5.0" + "php": ">=8.3", + "nikic/php-parser": "^5.7.0" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.5.25" }, "config": { "platform": { - "php": "8.2" + "php": "8.3" }, "optimize-autoloader": true, "sort-packages": true @@ -37,7 +37,7 @@ }, "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.0-dev" } } } diff --git a/vendor/sebastian/lines-of-code/src/Counter.php b/vendor/sebastian/lines-of-code/src/Counter.php index 2baed4ba3..273ec565c 100644 --- a/vendor/sebastian/lines-of-code/src/Counter.php +++ b/vendor/sebastian/lines-of-code/src/Counter.php @@ -38,7 +38,7 @@ final class Counter { $linesOfCode = substr_count($source, "\n"); - if ($linesOfCode === 0 && !empty($source)) { + if ($linesOfCode === 0 && $source !== '') { $linesOfCode = 1; } @@ -48,7 +48,6 @@ final class Counter assert($nodes !== null); return $this->countInAbstractSyntaxTree($linesOfCode, $nodes); - // @codeCoverageIgnoreStart } catch (Error $error) { throw new RuntimeException( diff --git a/vendor/sebastian/lines-of-code/src/Exception/NegativeValueException.php b/vendor/sebastian/lines-of-code/src/Exception/NegativeValueException.php deleted file mode 100644 index 40d27e1f0..000000000 --- a/vendor/sebastian/lines-of-code/src/Exception/NegativeValueException.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace SebastianBergmann\LinesOfCode; - -use InvalidArgumentException; - -final class NegativeValueException extends InvalidArgumentException implements Exception -{ -} diff --git a/vendor/sebastian/lines-of-code/src/LineCountingVisitor.php b/vendor/sebastian/lines-of-code/src/LineCountingVisitor.php index fd36675cc..66d17cf5a 100644 --- a/vendor/sebastian/lines-of-code/src/LineCountingVisitor.php +++ b/vendor/sebastian/lines-of-code/src/LineCountingVisitor.php @@ -43,29 +43,33 @@ final class LineCountingVisitor extends NodeVisitorAbstract $this->linesOfCode = $linesOfCode; } - public function enterNode(Node $node): void + public function enterNode(Node $node): null { $this->comments = array_merge($this->comments, $node->getComments()); if (!$node instanceof Expr) { - return; + return null; } $this->linesWithStatements[] = $node->getStartLine(); + + return null; } public function result(): LinesOfCode { - $commentLinesOfCode = 0; + $commentLines = []; foreach ($this->comments() as $comment) { - $commentLinesOfCode += ($comment->getEndLine() - $comment->getStartLine() + 1); + for ($line = $comment->getStartLine(); $line <= $comment->getEndLine(); $line++) { + $commentLines[$line] = true; + } } + $commentLinesOfCode = count($commentLines); $nonCommentLinesOfCode = $this->linesOfCode - $commentLinesOfCode; $logicalLinesOfCode = count(array_unique($this->linesWithStatements)); - assert($commentLinesOfCode >= 0); assert($nonCommentLinesOfCode >= 0); return new LinesOfCode( diff --git a/vendor/sebastian/lines-of-code/src/LinesOfCode.php b/vendor/sebastian/lines-of-code/src/LinesOfCode.php index 890d9611f..2aa5b0e64 100644 --- a/vendor/sebastian/lines-of-code/src/LinesOfCode.php +++ b/vendor/sebastian/lines-of-code/src/LinesOfCode.php @@ -41,30 +41,9 @@ final readonly class LinesOfCode * @param non-negative-int $logicalLinesOfCode * * @throws IllogicalValuesException - * @throws NegativeValueException */ public function __construct(int $linesOfCode, int $commentLinesOfCode, int $nonCommentLinesOfCode, int $logicalLinesOfCode) { - /** @phpstan-ignore smaller.alwaysFalse */ - if ($linesOfCode < 0) { - throw new NegativeValueException('$linesOfCode must not be negative'); - } - - /** @phpstan-ignore smaller.alwaysFalse */ - if ($commentLinesOfCode < 0) { - throw new NegativeValueException('$commentLinesOfCode must not be negative'); - } - - /** @phpstan-ignore smaller.alwaysFalse */ - if ($nonCommentLinesOfCode < 0) { - throw new NegativeValueException('$nonCommentLinesOfCode must not be negative'); - } - - /** @phpstan-ignore smaller.alwaysFalse */ - if ($logicalLinesOfCode < 0) { - throw new NegativeValueException('$logicalLinesOfCode must not be negative'); - } - if ($linesOfCode - $commentLinesOfCode !== $nonCommentLinesOfCode) { throw new IllogicalValuesException('$linesOfCode !== $commentLinesOfCode + $nonCommentLinesOfCode'); } diff --git a/vendor/sebastian/object-enumerator/ChangeLog.md b/vendor/sebastian/object-enumerator/ChangeLog.md index a407f12ca..611c42d90 100644 --- a/vendor/sebastian/object-enumerator/ChangeLog.md +++ b/vendor/sebastian/object-enumerator/ChangeLog.md @@ -2,6 +2,12 @@ All notable changes to `sebastianbergmann/object-enumerator` are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [7.0.0] - 2025-02-07 + +### Removed + +* This component is no longer supported on PHP 8.2 + ## [6.0.1] - 2024-07-03 ### Changed @@ -92,6 +98,7 @@ All notable changes to `sebastianbergmann/object-enumerator` are documented in t * Initial release +[7.0.0]: https://github.com/sebastianbergmann/object-enumerator/compare/6.0...7.0.0 [6.0.1]: https://github.com/sebastianbergmann/object-enumerator/compare/6.0.0...6.0.1 [6.0.0]: https://github.com/sebastianbergmann/object-enumerator/compare/5.0...6.0.0 [5.0.0]: https://github.com/sebastianbergmann/object-enumerator/compare/4.0.4...5.0.0 diff --git a/vendor/sebastian/object-enumerator/LICENSE b/vendor/sebastian/object-enumerator/LICENSE index 86c455d71..ec89362e1 100644 --- a/vendor/sebastian/object-enumerator/LICENSE +++ b/vendor/sebastian/object-enumerator/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2016-2024, Sebastian Bergmann +Copyright (c) 2016-2025, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/sebastian/object-enumerator/README.md b/vendor/sebastian/object-enumerator/README.md index 2dab157bc..bb244faee 100644 --- a/vendor/sebastian/object-enumerator/README.md +++ b/vendor/sebastian/object-enumerator/README.md @@ -1,4 +1,4 @@ -[![Latest Stable Version](https://poser.pugx.org/sebastian/object-enumerator/v/stable.png)](https://packagist.org/packages/sebastian/object-enumerator) +[![Latest Stable Version](https://poser.pugx.org/sebastian/object-enumerator/v)](https://packagist.org/packages/sebastian/object-enumerator) [![CI Status](https://github.com/sebastianbergmann/object-enumerator/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/object-enumerator/actions) [![codecov](https://codecov.io/gh/sebastianbergmann/object-enumerator/branch/main/graph/badge.svg)](https://codecov.io/gh/sebastianbergmann/object-enumerator) diff --git a/vendor/sebastian/object-enumerator/composer.json b/vendor/sebastian/object-enumerator/composer.json index 333d74418..442e002e0 100644 --- a/vendor/sebastian/object-enumerator/composer.json +++ b/vendor/sebastian/object-enumerator/composer.json @@ -16,18 +16,18 @@ "prefer-stable": true, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true }, "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "autoload": { "classmap": [ @@ -41,7 +41,7 @@ }, "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } } } diff --git a/vendor/sebastian/object-reflector/ChangeLog.md b/vendor/sebastian/object-reflector/ChangeLog.md index 8d328cf08..ddc1ed642 100644 --- a/vendor/sebastian/object-reflector/ChangeLog.md +++ b/vendor/sebastian/object-reflector/ChangeLog.md @@ -2,6 +2,12 @@ All notable changes to `sebastianbergmann/object-reflector` are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [5.0.0] - 2025-02-07 + +### Removed + +* This component is no longer supported on PHP 8.2 + ## [4.0.1] - 2024-07-03 ### Changed @@ -68,6 +74,7 @@ All notable changes to `sebastianbergmann/object-reflector` are documented in th * Initial release +[5.0.0]: https://github.com/sebastianbergmann/object-reflector/compare/4.0...5.0.0 [4.0.1]: https://github.com/sebastianbergmann/object-reflector/compare/4.0.0...4.0.1 [4.0.0]: https://github.com/sebastianbergmann/object-reflector/compare/3.0...4.0.0 [3.0.0]: https://github.com/sebastianbergmann/object-reflector/compare/2.0.4...3.0.0 diff --git a/vendor/sebastian/object-reflector/LICENSE b/vendor/sebastian/object-reflector/LICENSE index d71908865..e148db3fc 100644 --- a/vendor/sebastian/object-reflector/LICENSE +++ b/vendor/sebastian/object-reflector/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2017-2024, Sebastian Bergmann +Copyright (c) 2017-2025, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/sebastian/object-reflector/README.md b/vendor/sebastian/object-reflector/README.md index 5db9ddeb4..1aca57343 100644 --- a/vendor/sebastian/object-reflector/README.md +++ b/vendor/sebastian/object-reflector/README.md @@ -1,4 +1,4 @@ -[![Latest Stable Version](https://poser.pugx.org/sebastian/object-reflector/v/stable.png)](https://packagist.org/packages/sebastian/object-reflector) +[![Latest Stable Version](https://poser.pugx.org/sebastian/object-reflector/v)](https://packagist.org/packages/sebastian/object-reflector) [![CI Status](https://github.com/sebastianbergmann/object-reflector/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/object-reflector/actions) [![codecov](https://codecov.io/gh/sebastianbergmann/object-reflector/branch/main/graph/badge.svg)](https://codecov.io/gh/sebastianbergmann/object-reflector) diff --git a/vendor/sebastian/object-reflector/composer.json b/vendor/sebastian/object-reflector/composer.json index 2f3a06fdd..d9286e951 100644 --- a/vendor/sebastian/object-reflector/composer.json +++ b/vendor/sebastian/object-reflector/composer.json @@ -16,16 +16,16 @@ "prefer-stable": true, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "autoload": { "classmap": [ @@ -39,7 +39,7 @@ }, "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } } } diff --git a/vendor/sebastian/recursion-context/ChangeLog.md b/vendor/sebastian/recursion-context/ChangeLog.md index 35f70065a..854244fa4 100644 --- a/vendor/sebastian/recursion-context/ChangeLog.md +++ b/vendor/sebastian/recursion-context/ChangeLog.md @@ -2,6 +2,18 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. +## [7.0.1] - 2025-08-13 + +### Changed + +* Do not use `SplObjectStorage` methods that will be deprecated in PHP 8.5 + +## [7.0.0] - 2025-02-07 + +### Removed + +* This component is no longer supported on PHP 8.2 + ## [6.0.3] - 2025-08-13 ### Changed @@ -69,6 +81,8 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * Tests etc. are now ignored for archive exports +[7.0.1]: https://github.com/sebastianbergmann/recursion-context/compare/7.0.0...7.0.1 +[7.0.0]: https://github.com/sebastianbergmann/recursion-context/compare/6.0...7.0.0 [6.0.3]: https://github.com/sebastianbergmann/recursion-context/compare/6.0.2...6.0.3 [6.0.2]: https://github.com/sebastianbergmann/recursion-context/compare/6.0.1...6.0.2 [6.0.1]: https://github.com/sebastianbergmann/recursion-context/compare/6.0.0...6.0.1 diff --git a/vendor/sebastian/recursion-context/composer.json b/vendor/sebastian/recursion-context/composer.json index ecc2504e8..f37a207b3 100644 --- a/vendor/sebastian/recursion-context/composer.json +++ b/vendor/sebastian/recursion-context/composer.json @@ -24,16 +24,16 @@ "prefer-stable": true, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.0" }, "autoload": { "classmap": [ @@ -42,7 +42,7 @@ }, "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } } } diff --git a/vendor/sebastian/recursion-context/src/Context.php b/vendor/sebastian/recursion-context/src/Context.php index 8c04174cd..fbeac8cda 100644 --- a/vendor/sebastian/recursion-context/src/Context.php +++ b/vendor/sebastian/recursion-context/src/Context.php @@ -44,7 +44,6 @@ final class Context public function __destruct() { foreach ($this->arrays as &$array) { - /* @phpstan-ignore function.alreadyNarrowedType */ if (is_array($array)) { array_pop($array); array_pop($array); @@ -145,6 +144,7 @@ final class Context if (isset($end[1]) && $end[1] === $this->objects && + isset($end[0]) && is_int($end[0])) { return $end[0]; } diff --git a/vendor/sebastian/type/ChangeLog.md b/vendor/sebastian/type/ChangeLog.md index 0ce2c50fc..ef4468ca1 100644 --- a/vendor/sebastian/type/ChangeLog.md +++ b/vendor/sebastian/type/ChangeLog.md @@ -2,6 +2,36 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [6.0.4] - 2026-05-20 + +### Fixed + +* [#18](https://github.com/sebastianbergmann/type/issues/18): Class aliases are not resolved when checking type assignability + +## [6.0.3] - 2025-08-09 + +### Fixed + +* [#34](https://github.com/sebastianbergmann/type/pull/34): `infection.json` is missing from `.gitattributes` + +## [6.0.2] - 2025-03-18 + +### Fixed + +* [#33](https://github.com/sebastianbergmann/type/issues/33): `ReflectionMapper` does not handle unions that contain `iterable` correctly + +## [6.0.1] - 2025-03-18 + +### Fixed + +* [#33](https://github.com/sebastianbergmann/type/issues/33): `ReflectionMapper` does not handle unions that contain `iterable` correctly + +## [6.0.0] - 2025-02-07 + +### Removed + +* This component is no longer supported on PHP 8.2 + ## [5.1.3] - 2025-08-09 ### Fixed @@ -189,6 +219,11 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * Initial release based on [code contributed by Michel Hartmann to PHPUnit](https://github.com/sebastianbergmann/phpunit/pull/3673) +[6.0.4]: https://github.com/sebastianbergmann/type/compare/6.0.3...6.0.4 +[6.0.3]: https://github.com/sebastianbergmann/type/compare/6.0.2...6.0.3 +[6.0.2]: https://github.com/sebastianbergmann/type/compare/6.0.1...6.0.2 +[6.0.1]: https://github.com/sebastianbergmann/type/compare/6.0.0...6.0.1 +[6.0.0]: https://github.com/sebastianbergmann/type/compare/5.1...6.0.0 [5.1.3]: https://github.com/sebastianbergmann/type/compare/5.1.2...5.1.3 [5.1.2]: https://github.com/sebastianbergmann/type/compare/5.1.1...5.1.2 [5.1.1]: https://github.com/sebastianbergmann/type/compare/5.1.0...5.1.1 diff --git a/vendor/sebastian/type/LICENSE b/vendor/sebastian/type/LICENSE index 84a832212..cd8235457 100644 --- a/vendor/sebastian/type/LICENSE +++ b/vendor/sebastian/type/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2019-2025, Sebastian Bergmann +Copyright (c) 2019-2026, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/sebastian/type/composer.json b/vendor/sebastian/type/composer.json index 2c3cc1030..1144191aa 100644 --- a/vendor/sebastian/type/composer.json +++ b/vendor/sebastian/type/composer.json @@ -17,14 +17,14 @@ }, "prefer-stable": true, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.5.25" }, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true @@ -40,12 +40,13 @@ ], "files": [ "tests/_fixture/callback_function.php", + "tests/_fixture/class_alias.php", "tests/_fixture/functions_that_declare_return_types.php" ] }, "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.0-dev" } } } diff --git a/vendor/sebastian/type/src/type/IntersectionType.php b/vendor/sebastian/type/src/type/IntersectionType.php index 419a48743..f8cad8cbc 100644 --- a/vendor/sebastian/type/src/type/IntersectionType.php +++ b/vendor/sebastian/type/src/type/IntersectionType.php @@ -34,7 +34,7 @@ final class IntersectionType extends Type $this->ensureOnlyValidTypes(...$types); $this->ensureNoDuplicateTypes(...$types); - assert(!empty($types)); + assert($types !== []); $this->types = $types; } diff --git a/vendor/sebastian/type/src/type/ObjectType.php b/vendor/sebastian/type/src/type/ObjectType.php index 4ff4592ea..cd2149fc7 100644 --- a/vendor/sebastian/type/src/type/ObjectType.php +++ b/vendor/sebastian/type/src/type/ObjectType.php @@ -9,8 +9,11 @@ */ namespace SebastianBergmann\Type; +use function class_exists; +use function interface_exists; use function is_subclass_of; use function strcasecmp; +use ReflectionClass; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for this library @@ -33,11 +36,14 @@ final class ObjectType extends Type } if ($other instanceof self) { - if (0 === strcasecmp($this->className->qualifiedName(), $other->className->qualifiedName())) { + $thisName = $this->canonicalClassName($this->className->qualifiedName()); + $otherName = $this->canonicalClassName($other->className->qualifiedName()); + + if (strcasecmp($thisName, $otherName) === 0) { return true; } - if (is_subclass_of($other->className->qualifiedName(), $this->className->qualifiedName(), true)) { + if (is_subclass_of($otherName, $thisName, true)) { return true; } } @@ -67,4 +73,18 @@ final class ObjectType extends Type { return true; } + + /** + * @param non-empty-string $name + * + * @return non-empty-string + */ + private function canonicalClassName(string $name): string + { + if (class_exists($name) || interface_exists($name)) { + return (new ReflectionClass($name))->getName(); + } + + return $name; + } } diff --git a/vendor/sebastian/type/src/type/SimpleType.php b/vendor/sebastian/type/src/type/SimpleType.php index b242b5cbe..1e6e1c03f 100644 --- a/vendor/sebastian/type/src/type/SimpleType.php +++ b/vendor/sebastian/type/src/type/SimpleType.php @@ -87,11 +87,11 @@ final class SimpleType extends Type $name = strtolower($name); return match ($name) { - 'boolean' => 'bool', + 'boolean' => 'bool', 'real', 'double' => 'float', - 'integer' => 'int', - '[]' => 'array', - default => $name, + 'integer' => 'int', + '[]' => 'array', + default => $name, }; } } diff --git a/vendor/sebastian/type/src/type/Type.php b/vendor/sebastian/type/src/type/Type.php index 0dee63f53..82ebb37a6 100644 --- a/vendor/sebastian/type/src/type/Type.php +++ b/vendor/sebastian/type/src/type/Type.php @@ -51,17 +51,17 @@ abstract class Type public static function fromName(string $typeName, bool $allowsNull): self { return match (strtolower($typeName)) { - 'callable' => new CallableType($allowsNull), - 'true' => new TrueType, - 'false' => new FalseType, - 'iterable' => new IterableType($allowsNull), - 'never' => new NeverType, - 'null' => new NullType, - 'object' => new GenericObjectType($allowsNull), - 'unknown type' => new UnknownType, - 'void' => new VoidType, + 'callable' => new CallableType($allowsNull), + 'true' => new TrueType, + 'false' => new FalseType, + 'iterable' => new IterableType($allowsNull), + 'never' => new NeverType, + 'null' => new NullType, + 'object' => new GenericObjectType($allowsNull), + 'unknown type' => new UnknownType, + 'void' => new VoidType, 'array', 'bool', 'boolean', 'double', 'float', 'int', 'integer', 'real', 'resource', 'resource (closed)', 'string' => new SimpleType($typeName, $allowsNull), - 'mixed' => new MixedType, + 'mixed' => new MixedType, /** @phpstan-ignore argument.type */ default => new ObjectType(TypeName::fromQualifiedName($typeName), $allowsNull), }; diff --git a/vendor/sebastian/type/src/type/UnionType.php b/vendor/sebastian/type/src/type/UnionType.php index b166240d4..82eec56e5 100644 --- a/vendor/sebastian/type/src/type/UnionType.php +++ b/vendor/sebastian/type/src/type/UnionType.php @@ -32,7 +32,7 @@ final class UnionType extends Type $this->ensureMinimumOfTwoTypes(...$types); $this->ensureOnlyValidTypes(...$types); - assert(!empty($types)); + assert($types !== []); $this->types = $types; } diff --git a/vendor/sebastian/version/ChangeLog.md b/vendor/sebastian/version/ChangeLog.md index 4a96d5694..53706bf0f 100644 --- a/vendor/sebastian/version/ChangeLog.md +++ b/vendor/sebastian/version/ChangeLog.md @@ -2,6 +2,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. +## [6.0.0] - 2025-02-07 + +### Removed + +* This component is no longer supported on PHP 8.2 + ## [5.0.2] - 2024-10-09 ### Changed @@ -54,6 +60,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * This component is no longer supported on PHP 7.1 and PHP 7.2 +[6.0.0]: https://github.com/sebastianbergmann/version/compare/5.0...6.0.0 [5.0.2]: https://github.com/sebastianbergmann/version/compare/5.0.1...5.0.2 [5.0.1]: https://github.com/sebastianbergmann/version/compare/5.0.0...5.0.1 [5.0.0]: https://github.com/sebastianbergmann/version/compare/4.0...5.0.0 diff --git a/vendor/sebastian/version/LICENSE b/vendor/sebastian/version/LICENSE index b8ec485a9..42f4747e3 100644 --- a/vendor/sebastian/version/LICENSE +++ b/vendor/sebastian/version/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2013-2024, Sebastian Bergmann +Copyright (c) 2013-2025, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/sebastian/version/composer.json b/vendor/sebastian/version/composer.json index ff88c33fe..9ba2b85af 100644 --- a/vendor/sebastian/version/composer.json +++ b/vendor/sebastian/version/composer.json @@ -16,14 +16,14 @@ }, "config": { "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "optimize-autoloader": true, "sort-packages": true }, "prefer-stable": true, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "autoload": { "classmap": [ @@ -32,7 +32,7 @@ }, "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } } } diff --git a/vendor/sebastian/version/src/Version.php b/vendor/sebastian/version/src/Version.php index 4c090af04..0fd9def7f 100644 --- a/vendor/sebastian/version/src/Version.php +++ b/vendor/sebastian/version/src/Version.php @@ -9,9 +9,12 @@ */ namespace SebastianBergmann; +use const DIRECTORY_SEPARATOR; +use function assert; use function end; use function explode; use function fclose; +use function is_array; use function is_dir; use function is_resource; use function proc_close; @@ -82,7 +85,7 @@ final readonly class Version return false; } - $process = proc_open( + $process = @proc_open( ['git', 'describe', '--tags'], [ 1 => ['pipe', 'w'], @@ -96,6 +99,10 @@ final readonly class Version return false; } + assert(is_array($pipes)); + assert(isset($pipes[1]) && is_resource($pipes[1])); + assert(isset($pipes[2]) && is_resource($pipes[2])); + $result = trim((string) stream_get_contents($pipes[1])); fclose($pipes[1]); diff --git a/vendor/symfony/console/Application.php b/vendor/symfony/console/Application.php index fd7ebd095..72f6862c9 100644 --- a/vendor/symfony/console/Application.php +++ b/vendor/symfony/console/Application.php @@ -11,6 +11,8 @@ namespace Symfony\Component\Console; +use Psr\Container\ContainerInterface; +use Symfony\Component\Console\ArgumentResolver\ArgumentResolverInterface; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Command\CompleteCommand; use Symfony\Component\Console\Command\DumpCompletionCommand; @@ -51,6 +53,7 @@ use Symfony\Component\Console\Output\ConsoleOutputInterface; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\SignalRegistry\SignalRegistry; use Symfony\Component\Console\Style\SymfonyStyle; +use Symfony\Component\DependencyInjection\ContainerInterface as SymfonyContainerInterface; use Symfony\Component\ErrorHandler\ErrorHandler; use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; use Symfony\Contracts\Service\ResetInterface; @@ -82,6 +85,7 @@ class Application implements ResetInterface private InputDefinition $definition; private HelperSet $helperSet; private ?EventDispatcherInterface $dispatcher = null; + private ?ArgumentResolverInterface $argumentResolver = null; private Terminal $terminal; private string $defaultCommand; private bool $singleCommand = false; @@ -93,6 +97,7 @@ class Application implements ResetInterface public function __construct( private string $name = 'UNKNOWN', private string $version = 'UNKNOWN', + private ?ContainerInterface $container = null, ) { $this->terminal = new Terminal(); $this->defaultCommand = 'list'; @@ -110,6 +115,24 @@ class Application implements ResetInterface $this->dispatcher = $dispatcher; } + public function getDispatcher(): ?EventDispatcherInterface + { + return $this->dispatcher; + } + + /** + * @final + */ + public function setArgumentResolver(ArgumentResolverInterface $argumentResolver): void + { + $this->argumentResolver = $argumentResolver; + } + + public function getArgumentResolver(): ?ArgumentResolverInterface + { + return $this->argumentResolver; + } + public function setCommandLoader(CommandLoaderInterface $commandLoader): void { $this->commandLoader = $commandLoader; @@ -361,6 +384,9 @@ class Application implements ResetInterface public function reset(): void { + if ($this->container?->has('services_resetter')) { + $this->container->get('services_resetter')->reset(); + } } public function setHelperSet(HelperSet $helperSet): void @@ -519,13 +545,19 @@ class Application implements ResetInterface { if ('UNKNOWN' !== $this->getName()) { if ('UNKNOWN' !== $this->getVersion()) { - return \sprintf('%s %s', $this->getName(), $this->getVersion()); + $version = \sprintf('%s %s', $this->getName(), $this->getVersion()); + } else { + $version = $this->getName(); } - - return $this->getName(); + } else { + $version = 'Console Tool'; } - return 'Console Tool'; + if ($this->container instanceof SymfonyContainerInterface && $this->container->hasParameter('kernel.environment')) { + $version .= \sprintf(' (env: %s, debug: %s)', $this->container->getParameter('kernel.environment'), $this->container->getParameter('kernel.debug') ? 'true' : 'false'); + } + + return $version; } /** @@ -550,16 +582,6 @@ class Application implements ResetInterface } } - /** - * @deprecated since Symfony 7.4, use Application::addCommand() instead - */ - public function add(Command $command): ?Command - { - trigger_deprecation('symfony/console', '7.4', 'The "%s()" method is deprecated and will be removed in Symfony 8.0, use "%s::addCommand()" instead.', __METHOD__, self::class); - - return $this->addCommand($command); - } - /** * Adds a command object. * @@ -696,6 +718,8 @@ class Application implements ResetInterface $exact = \in_array($namespace, $namespaces, true); if (\count($namespaces) > 1 && !$exact) { + sort($namespaces); + throw new NamespaceNotFoundException(\sprintf("The namespace \"%s\" is ambiguous.\nDid you mean one of these?\n%s.", $namespace, $this->getAbbreviationSuggestions(array_values($namespaces))), array_values($namespaces)); } @@ -736,6 +760,8 @@ class Application implements ResetInterface $commands = preg_grep('{^'.$expr.'}i', $allCommands); } + sort($commands); + // if no commands matched or we just matched namespaces if (!$commands || \count(preg_grep('{^'.$expr.'$}i', $commands)) < 1) { if (false !== $pos = strrpos($name, ':')) { @@ -791,6 +817,7 @@ class Application implements ResetInterface } if (\count($commands) > 1) { + sort($commands); $usableWidth = $this->terminal->getWidth() - 10; $abbrevs = array_values($commands); $maxLen = 0; @@ -812,7 +839,7 @@ class Application implements ResetInterface if (\count($commands) > 1) { $suggestions = $this->getAbbreviationSuggestions(array_filter($abbrevs)); - throw new CommandNotFoundException(\sprintf("Command \"%s\" is ambiguous.\nDid you mean one of these?\n%s.", $name, $suggestions), array_values($commands)); + throw new CommandNotFoundException(\sprintf("Command \"%s\" is ambiguous.\nDid you mean one of these?\n%s", $name, $suggestions), array_values($commands)); } } @@ -1348,14 +1375,47 @@ class Application implements ResetInterface } $this->initialized = true; - if ((new \ReflectionMethod($this, 'add'))->getDeclaringClass()->getName() !== (new \ReflectionMethod($this, 'addCommand'))->getDeclaringClass()->getName()) { - $adder = $this->add(...); - } else { - $adder = $this->addCommand(...); + foreach ($this->getDefaultCommands() as $command) { + $this->addCommand($command); } - foreach ($this->getDefaultCommands() as $command) { - $adder($command); + $this->registerContainerServices(); + } + + private function registerContainerServices(): void + { + if (!$this->container) { + return; + } + + if ($this->container->has('event_dispatcher')) { + $this->setDispatcher($this->container->get('event_dispatcher')); + } + if ($this->container->has('console.argument_resolver')) { + $this->setArgumentResolver($this->container->get('console.argument_resolver')); + } + if ($this->container->has('console.command_loader')) { + $this->setCommandLoader($this->container->get('console.command_loader')); + } + + if (!$commandIds = match (true) { + !$this->container instanceof SymfonyContainerInterface => $this->container->has('console.command.ids') ? $this->container->get('console.command.ids') : [], + $this->container->hasParameter('console.command.ids') => $this->container->getParameter('console.command.ids'), + default => [], + }) { + return; + } + + $lazyCommandIds = match (true) { + !$this->container instanceof SymfonyContainerInterface => $this->container->has('console.lazy_command.ids') ? $this->container->get('console.lazy_command.ids') : [], + $this->container->hasParameter('console.lazy_command.ids') => $this->container->getParameter('console.lazy_command.ids'), + default => [], + }; + + foreach ($commandIds as $id) { + if (!isset($lazyCommandIds[$id])) { + $this->addCommand($this->container->get($id)); + } } } } diff --git a/vendor/symfony/console/ArgumentResolver/ArgumentResolver.php b/vendor/symfony/console/ArgumentResolver/ArgumentResolver.php new file mode 100644 index 000000000..3aac1e1bd --- /dev/null +++ b/vendor/symfony/console/ArgumentResolver/ArgumentResolver.php @@ -0,0 +1,163 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\ArgumentResolver; + +use Psr\Container\ContainerInterface; +use Symfony\Component\Console\ArgumentResolver\Exception\NearMissValueResolverException; +use Symfony\Component\Console\ArgumentResolver\Exception\ResolverNotFoundException; +use Symfony\Component\Console\ArgumentResolver\ValueResolver as Resolver; +use Symfony\Component\Console\ArgumentResolver\ValueResolver\ValueResolverInterface; +use Symfony\Component\Console\Attribute\Argument; +use Symfony\Component\Console\Attribute\Option; +use Symfony\Component\Console\Attribute\Reflection\ReflectionMember; +use Symfony\Component\Console\Attribute\ValueResolver; +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Cursor; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\RawInputInterface; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Style\SymfonyStyle; +use Symfony\Contracts\Service\ServiceProviderInterface; + +/** + * Resolves the arguments passed to a console command. + * + * @author Robin Chalas + */ +final class ArgumentResolver implements ArgumentResolverInterface +{ + /** + * @param iterable $argumentValueResolvers + */ + public function __construct( + private iterable $argumentValueResolvers = [], + private ?ContainerInterface $namedResolvers = null, + ) { + } + + public function getArguments(InputInterface $input, callable $command, ?\ReflectionFunctionAbstract $reflector = null): array + { + $reflector ??= new \ReflectionFunction($command(...)); + + $argumentReflectors = []; + foreach ($reflector->getParameters() as $param) { + $argumentReflectors[$param->getName()] = new ReflectionMember($param); + } + + $arguments = []; + + foreach ($argumentReflectors as $argumentName => $member) { + $argumentValueResolvers = $this->argumentValueResolvers; + $disabledResolvers = []; + + if ($this->namedResolvers && $attributes = $member->getAttributes(ValueResolver::class)) { + $resolverName = null; + foreach ($attributes as $attribute) { + if ($attribute->disabled) { + $disabledResolvers[$attribute->resolver] = true; + } elseif ($resolverName) { + throw new \LogicException(\sprintf('You can only pin one resolver per argument, but argument "$%s" of "%s()" has more.', $member->getName(), $member->getSourceName())); + } else { + $resolverName = $attribute->resolver; + } + } + + if ($resolverName) { + if (!$this->namedResolvers->has($resolverName)) { + throw new ResolverNotFoundException($resolverName, $this->namedResolvers instanceof ServiceProviderInterface ? array_keys($this->namedResolvers->getProvidedServices()) : []); + } + + $argumentValueResolvers = [ + $this->namedResolvers->get($resolverName), + ]; + } + } + + $valueResolverExceptions = []; + foreach ($argumentValueResolvers as $name => $resolver) { + if (isset($disabledResolvers[\is_int($name) ? $resolver::class : $name])) { + continue; + } + + try { + $count = 0; + foreach ($resolver->resolve($argumentName, $input, $member) as $argument) { + ++$count; + $arguments[] = $argument; + } + } catch (NearMissValueResolverException $e) { + $valueResolverExceptions[] = $e; + } + + if (1 < $count && !$member->isVariadic()) { + throw new \InvalidArgumentException(\sprintf('"%s::resolve()" must yield at most one value for non-variadic arguments.', get_debug_type($resolver))); + } + + if ($count) { + continue 2; + } + } + + // For variadic parameters with explicit input mapping, 0 values is valid + if ($member->isVariadic() && (Argument::tryFrom($member->getMember()) || Option::tryFrom($member->getMember()))) { + continue; + } + + $type = $member->getType(); + $typeName = $type instanceof \ReflectionNamedType ? $type->getName() : null; + + if ($typeName && \in_array($typeName, [ + InputInterface::class, + RawInputInterface::class, + OutputInterface::class, + SymfonyStyle::class, + Cursor::class, + \Symfony\Component\Console\Application::class, + Command::class, + ], true)) { + continue; + } + + $reasons = array_map(static fn (NearMissValueResolverException $e) => $e->getMessage(), $valueResolverExceptions); + if (!$reasons) { + $reasons[] = \sprintf('The parameter has no #[Argument], #[Option], or #[MapInput] attribute, and its type "%s" cannot be auto-resolved.', $typeName ?? 'unknown'); + $reasons[] = 'Add an attribute to map this parameter to command input.'; + } + + throw new \RuntimeException(\sprintf('Could not resolve parameter "$%s" of command "%s".'."\n\n".'Possible reasons:'."\n".' • '.implode("\n • ", $reasons), $member->getName(), $member->getSourceName())); + } + + return $arguments; + } + + /** + * @return iterable + */ + public static function getDefaultArgumentValueResolvers(): iterable + { + $builtinTypeResolver = new Resolver\BuiltinTypeValueResolver(); + $backedEnumResolver = new Resolver\BackedEnumValueResolver(); + $dateTimeResolver = new Resolver\DateTimeValueResolver(); + $inputFileResolver = new Resolver\InputFileValueResolver(); + + return [ + $backedEnumResolver, + new Resolver\UidValueResolver(), + $inputFileResolver, + $builtinTypeResolver, + new Resolver\MapInputValueResolver($builtinTypeResolver, $backedEnumResolver, $dateTimeResolver), + $dateTimeResolver, + new Resolver\DefaultValueResolver(), + new Resolver\VariadicValueResolver(), + ]; + } +} diff --git a/vendor/symfony/console/ArgumentResolver/ArgumentResolverInterface.php b/vendor/symfony/console/ArgumentResolver/ArgumentResolverInterface.php new file mode 100644 index 000000000..b734abab0 --- /dev/null +++ b/vendor/symfony/console/ArgumentResolver/ArgumentResolverInterface.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\ArgumentResolver; + +use Symfony\Component\Console\ArgumentResolver\Exception\ResolverNotFoundException; +use Symfony\Component\Console\Input\InputInterface; + +/** + * Determines the arguments for a specific Console Command. + * + * @author Robin Chalas + * @author Fabien Potencier + * @author Nicolas Grekas + */ +interface ArgumentResolverInterface +{ + /** + * Returns the arguments to pass to the Console Command after resolution. + * + * @throws \RuntimeException When no value could be provided for a required argument + * @throws ResolverNotFoundException + */ + public function getArguments(InputInterface $input, callable $command, ?\ReflectionFunctionAbstract $reflector = null): array; +} diff --git a/vendor/symfony/console/ArgumentResolver/Exception/NearMissValueResolverException.php b/vendor/symfony/console/ArgumentResolver/Exception/NearMissValueResolverException.php new file mode 100644 index 000000000..34a22e358 --- /dev/null +++ b/vendor/symfony/console/ArgumentResolver/Exception/NearMissValueResolverException.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\ArgumentResolver\Exception; + +/** + * Lets value resolvers tell when an argument could be under their watch but failed to be resolved. + * + * Throwing this exception inside `ValueResolverInterface::resolve` does not interrupt the value resolvers chain. + */ +final class NearMissValueResolverException extends \RuntimeException +{ +} diff --git a/vendor/symfony/console/ArgumentResolver/Exception/ResolverNotFoundException.php b/vendor/symfony/console/ArgumentResolver/Exception/ResolverNotFoundException.php new file mode 100644 index 000000000..3e3797ad9 --- /dev/null +++ b/vendor/symfony/console/ArgumentResolver/Exception/ResolverNotFoundException.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\ArgumentResolver\Exception; + +final class ResolverNotFoundException extends \RuntimeException +{ + /** + * @param string[] $alternatives + */ + public function __construct(string $name, array $alternatives = []) + { + $msg = \sprintf('You have requested a non-existent resolver "%s".', $name); + if ($alternatives) { + if (1 === \count($alternatives)) { + $msg .= ' Did you mean this: "'; + } else { + $msg .= ' Did you mean one of these: "'; + } + $msg .= implode('", "', $alternatives).'"?'; + } + + parent::__construct($msg); + } +} diff --git a/vendor/symfony/console/ArgumentResolver/TraceableArgumentResolver.php b/vendor/symfony/console/ArgumentResolver/TraceableArgumentResolver.php new file mode 100644 index 000000000..a966ae1a2 --- /dev/null +++ b/vendor/symfony/console/ArgumentResolver/TraceableArgumentResolver.php @@ -0,0 +1,38 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\ArgumentResolver; + +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Stopwatch\Stopwatch; + +/** + * @author Robin Chalas + */ +class TraceableArgumentResolver implements ArgumentResolverInterface +{ + public function __construct( + private ArgumentResolverInterface $resolver, + private Stopwatch $stopwatch, + ) { + } + + public function getArguments(InputInterface $input, callable $command, ?\ReflectionFunctionAbstract $reflector = null): array + { + $e = $this->stopwatch->start('command.get_arguments'); + + try { + return $this->resolver->getArguments($input, $command, $reflector); + } finally { + $e->stop(); + } + } +} diff --git a/vendor/symfony/console/ArgumentResolver/ValueResolver/BackedEnumValueResolver.php b/vendor/symfony/console/ArgumentResolver/ValueResolver/BackedEnumValueResolver.php new file mode 100644 index 000000000..7e29cf2dc --- /dev/null +++ b/vendor/symfony/console/ArgumentResolver/ValueResolver/BackedEnumValueResolver.php @@ -0,0 +1,90 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\ArgumentResolver\ValueResolver; + +use Symfony\Component\Console\Attribute\Argument; +use Symfony\Component\Console\Attribute\Option; +use Symfony\Component\Console\Attribute\Reflection\ReflectionMember; +use Symfony\Component\Console\Exception\InvalidArgumentException; +use Symfony\Component\Console\Exception\InvalidOptionException; +use Symfony\Component\Console\Input\InputInterface; + +/** + * Resolves a BackedEnum instance from a Command argument or option. + * + * @author Robin Chalas + * @author Jérôme Tamarelle + * @author Maxime Steinhausser + */ +final class BackedEnumValueResolver implements ValueResolverInterface +{ + public function resolve(string $argumentName, InputInterface $input, ReflectionMember $member): iterable + { + if ($argument = Argument::tryFrom($member->getMember())) { + if (!is_subclass_of($argument->typeName, \BackedEnum::class)) { + return []; + } + + return [$this->resolveArgument($argument, $input)]; + } + + if ($option = Option::tryFrom($member->getMember())) { + if (!is_subclass_of($option->typeName, \BackedEnum::class)) { + return []; + } + + return [$this->resolveOption($option, $input)]; + } + + return []; + } + + private function resolveArgument(Argument $argument, InputInterface $input): ?\BackedEnum + { + $value = $input->getArgument($argument->name); + + if (null === $value) { + return null; + } + + if ($value instanceof $argument->typeName) { + return $value; + } + + if (!\is_string($value) && !\is_int($value)) { + throw InvalidArgumentException::fromEnumValue($argument->name, get_debug_type($value), $argument->suggestedValues); + } + + return $argument->typeName::tryFrom($value) + ?? throw InvalidArgumentException::fromEnumValue($argument->name, $value, $argument->suggestedValues); + } + + private function resolveOption(Option $option, InputInterface $input): ?\BackedEnum + { + $value = $input->getOption($option->name); + + if (null === $value) { + return null; + } + + if ($value instanceof $option->typeName) { + return $value; + } + + if (!\is_string($value) && !\is_int($value)) { + throw InvalidOptionException::fromEnumValue($option->name, get_debug_type($value), $option->suggestedValues); + } + + return $option->typeName::tryFrom($value) + ?? throw InvalidOptionException::fromEnumValue($option->name, $value, $option->suggestedValues); + } +} diff --git a/vendor/symfony/console/ArgumentResolver/ValueResolver/BuiltinTypeValueResolver.php b/vendor/symfony/console/ArgumentResolver/ValueResolver/BuiltinTypeValueResolver.php new file mode 100644 index 000000000..e6015df5a --- /dev/null +++ b/vendor/symfony/console/ArgumentResolver/ValueResolver/BuiltinTypeValueResolver.php @@ -0,0 +1,75 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\ArgumentResolver\ValueResolver; + +use Symfony\Component\Console\Attribute\Argument; +use Symfony\Component\Console\Attribute\Option; +use Symfony\Component\Console\Attribute\Reflection\ReflectionMember; +use Symfony\Component\Console\Input\InputInterface; + +/** + * Resolves values from #[Argument] or #[Option] attributes for built-in PHP types. + * + * Handles: string, bool, int, float, array + * + * @author Robin Chalas + */ +final class BuiltinTypeValueResolver implements ValueResolverInterface +{ + public function resolve(string $argumentName, InputInterface $input, ReflectionMember $member): iterable + { + if ($member->isVariadic()) { + return []; + } + + if ($argument = Argument::tryFrom($member->getMember())) { + if (is_subclass_of($argument->typeName, \BackedEnum::class)) { + return []; + } + + return [$input->getArgument($argument->name)]; + } + + if ($option = Option::tryFrom($member->getMember())) { + if (is_subclass_of($option->typeName, \BackedEnum::class)) { + return []; + } + + return [$this->resolveOption($option, $input)]; + } + + return []; + } + + private function resolveOption(Option $option, InputInterface $input): mixed + { + $value = $input->getOption($option->name); + + if (null === $value && \in_array($option->typeName, Option::ALLOWED_UNION_TYPES, true)) { + return true; + } + + if ('array' === $option->typeName && $option->allowNull && [] === $value) { + return null; + } + + if ('bool' === $option->typeName) { + if ($option->allowNull && null === $value) { + return null; + } + + return $value ?? $option->default; + } + + return $value; + } +} diff --git a/vendor/symfony/console/ArgumentResolver/ValueResolver/DateTimeValueResolver.php b/vendor/symfony/console/ArgumentResolver/ValueResolver/DateTimeValueResolver.php new file mode 100644 index 000000000..828f7b778 --- /dev/null +++ b/vendor/symfony/console/ArgumentResolver/ValueResolver/DateTimeValueResolver.php @@ -0,0 +1,101 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\ArgumentResolver\ValueResolver; + +use Psr\Clock\ClockInterface; +use Symfony\Component\Console\Attribute\MapDateTime; +use Symfony\Component\Console\Attribute\Reflection\ReflectionMember; +use Symfony\Component\Console\Input\InputInterface; + +/** + * Resolves a \DateTime* instance as a command input argument or option. + * + * @author Benjamin Eberlei + * @author Tim Goudriaan + * @author Robin Chalas + */ +final class DateTimeValueResolver implements ValueResolverInterface +{ + public function __construct( + private readonly ?ClockInterface $clock = null, + ) { + } + + public function resolve(string $argumentName, InputInterface $input, ReflectionMember $member): iterable + { + $type = $member->getType(); + + if (!$type instanceof \ReflectionNamedType || !is_a($type->getName(), \DateTimeInterface::class, true)) { + return []; + } + + $attribute = $member->getAttribute(MapDateTime::class); + + $inputName = $attribute?->argument ?? $attribute?->option ?? $member->getInputName(); + + // Try to get value from argument or option + $value = null; + if ($input->hasArgument($inputName)) { + $value = $input->getArgument($inputName); + } elseif ($input->hasOption($inputName)) { + $value = $input->getOption($inputName); + } + + /** @var class-string<\DateTimeImmutable>|class-string<\DateTime> $class */ + $class = \DateTimeInterface::class === $type->getName() ? \DateTimeImmutable::class : $type->getName(); + + if (!$value) { + if ($member->isNullable()) { + return [null]; + } + if (!$this->clock) { + return [new $class()]; + } + $value = $this->clock->now(); + } + + if ($value instanceof \DateTimeInterface) { + return [$value instanceof $class ? $value : $class::createFromInterface($value)]; + } + + $format = $attribute?->format; + + if (null !== $format) { + $date = $class::createFromFormat($format, $value, $this->clock?->now()->getTimeZone()); + + if (($class::getLastErrors() ?: ['warning_count' => 0])['warning_count']) { + $date = false; + } + } else { + if (false !== filter_var($value, \FILTER_VALIDATE_INT, ['options' => ['min_range' => 0]])) { + $value = '@'.$value; + } + try { + $date = new $class($value, $this->clock?->now()->getTimeZone()); + } catch (\Exception) { + $date = false; + } + } + + if (!$date) { + $message = \sprintf('Invalid date given for parameter "$%s".', $argumentName); + if ($format) { + $message .= \sprintf(' Expected format: "%s".', $format); + } + $message .= ' Use #[MapDateTime(format: \'your-format\')] to specify a custom format.'; + + throw new \RuntimeException($message); + } + + return [$date]; + } +} diff --git a/vendor/symfony/console/ArgumentResolver/ValueResolver/DefaultValueResolver.php b/vendor/symfony/console/ArgumentResolver/ValueResolver/DefaultValueResolver.php new file mode 100644 index 000000000..ac8f0aac0 --- /dev/null +++ b/vendor/symfony/console/ArgumentResolver/ValueResolver/DefaultValueResolver.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\ArgumentResolver\ValueResolver; + +use Symfony\Component\Console\Attribute\Reflection\ReflectionMember; +use Symfony\Component\Console\Input\InputInterface; + +/** + * Yields the default value defined in the command signature when no input value has been explicitly passed. + * + * @author Iltar van der Berg + * @author Robin Chalas + */ +final class DefaultValueResolver implements ValueResolverInterface +{ + public function resolve(string $argumentName, InputInterface $input, ReflectionMember $member): iterable + { + if ($member->hasDefaultValue()) { + return [$member->getDefaultValue()]; + } + + if ($member->isNullable() && !$member->isVariadic()) { + return [null]; + } + + return []; + } +} diff --git a/vendor/symfony/console/ArgumentResolver/ValueResolver/InputFileValueResolver.php b/vendor/symfony/console/ArgumentResolver/ValueResolver/InputFileValueResolver.php new file mode 100644 index 000000000..176abedc8 --- /dev/null +++ b/vendor/symfony/console/ArgumentResolver/ValueResolver/InputFileValueResolver.php @@ -0,0 +1,60 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\ArgumentResolver\ValueResolver; + +use Symfony\Component\Console\Attribute\Argument; +use Symfony\Component\Console\Attribute\Option; +use Symfony\Component\Console\Attribute\Reflection\ReflectionMember; +use Symfony\Component\Console\Input\File\InputFile; +use Symfony\Component\Console\Input\InputInterface; + +/** + * @author Robin Chalas + */ +final class InputFileValueResolver implements ValueResolverInterface +{ + public function resolve(string $argumentName, InputInterface $input, ReflectionMember $member): iterable + { + $type = $member->getType(); + + if (!$type instanceof \ReflectionNamedType || InputFile::class !== $type->getName()) { + return []; + } + + if ($argument = Argument::tryFrom($member->getMember())) { + return $this->resolveValue($input->getArgument($argument->name), $member); + } + + if ($option = Option::tryFrom($member->getMember())) { + return $this->resolveValue($input->getOption($option->name), $member); + } + + return []; + } + + private function resolveValue(mixed $value, ReflectionMember $member): iterable + { + if (!$value) { + if ($member->isNullable()) { + return [null]; + } + + return []; + } + + if ($value instanceof InputFile) { + return [$value]; + } + + return [InputFile::fromPath($value)]; + } +} diff --git a/vendor/symfony/console/ArgumentResolver/ValueResolver/MapInputValueResolver.php b/vendor/symfony/console/ArgumentResolver/ValueResolver/MapInputValueResolver.php new file mode 100644 index 000000000..1fa68b13b --- /dev/null +++ b/vendor/symfony/console/ArgumentResolver/ValueResolver/MapInputValueResolver.php @@ -0,0 +1,128 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\ArgumentResolver\ValueResolver; + +use Symfony\Component\Console\Attribute\Argument; +use Symfony\Component\Console\Attribute\MapInput; +use Symfony\Component\Console\Attribute\Option; +use Symfony\Component\Console\Attribute\Reflection\ReflectionMember; +use Symfony\Component\Console\Exception\InputValidationFailedException; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Validator\Validator\ValidatorInterface; + +/** + * Resolves the value of a input argument/option to an object holding the #[MapInput] attribute. + * + * @author Yonel Ceruto + * @author Robin Chalas + */ +final class MapInputValueResolver implements ValueResolverInterface +{ + public function __construct( + private readonly ValueResolverInterface $builtinTypeResolver, + private readonly ValueResolverInterface $backedEnumResolver, + private readonly ValueResolverInterface $dateTimeResolver, + private readonly ?ValidatorInterface $validator = null, + ) { + } + + public function resolve(string $argumentName, InputInterface $input, ReflectionMember $member): iterable + { + if (!$attribute = MapInput::tryFrom($member->getMember())) { + return []; + } + + $instance = $this->resolveMapInput($attribute, $input); + $violations = $this->validator?->validate($instance, null, $attribute->validationGroups) ?? []; + + if (!\count($violations)) { + return [$instance]; + } + + $map = $this->buildPropertyToInputMap($attribute); + $messages = []; + foreach ($violations as $violation) { + $path = $violation->getPropertyPath(); + $label = $map[$path] ?? $path; + $messages[] = $label.': '.$violation->getMessage(); + } + + throw new InputValidationFailedException(implode("\n", $messages), $violations); + } + + private function resolveMapInput(MapInput $mapInput, InputInterface $input): object + { + $instance = $mapInput->getClass()->newInstanceWithoutConstructor(); + + foreach ($mapInput->getDefinition() as $name => $spec) { + // ignore required arguments that are not set yet (may happen in interactive mode) + if ($spec instanceof Argument && $spec->isRequired() && \in_array($input->getArgument($spec->name), [null, []], true)) { + continue; + } + + $instance->$name = match (true) { + $spec instanceof Argument => $this->resolveArgumentSpec($spec, $mapInput->getClass()->getProperty($name), $input), + $spec instanceof Option => $this->resolveOptionSpec($spec, $mapInput->getClass()->getProperty($name), $input), + $spec instanceof MapInput => $this->resolveMapInput($spec, $input), + }; + } + + return $instance; + } + + /** + * @return array + */ + private function buildPropertyToInputMap(MapInput $mapInput, string $prefix = ''): array + { + $map = []; + foreach ($mapInput->getDefinition() as $propertyName => $spec) { + $path = $prefix.$propertyName; + $map[$path] = match (true) { + $spec instanceof Argument => $spec->name, + $spec instanceof Option => '--'.$spec->name, + default => $path, + }; + if ($spec instanceof MapInput) { + $map += $this->buildPropertyToInputMap($spec, $path.'.'); + } + } + + return $map; + } + + private function resolveArgumentSpec(Argument $argument, \ReflectionProperty $property, InputInterface $input): mixed + { + if (is_subclass_of($argument->typeName, \BackedEnum::class)) { + return iterator_to_array($this->backedEnumResolver->resolve($property->name, $input, new ReflectionMember($property)))[0] ?? null; + } + + if (is_a($argument->typeName, \DateTimeInterface::class, true)) { + return iterator_to_array($this->dateTimeResolver->resolve($property->name, $input, new ReflectionMember($property)))[0] ?? null; + } + + return iterator_to_array($this->builtinTypeResolver->resolve($property->name, $input, new ReflectionMember($property)))[0] ?? null; + } + + private function resolveOptionSpec(Option $option, \ReflectionProperty $property, InputInterface $input): mixed + { + if (is_subclass_of($option->typeName, \BackedEnum::class)) { + return iterator_to_array($this->backedEnumResolver->resolve($property->name, $input, new ReflectionMember($property)))[0] ?? null; + } + + if (is_a($option->typeName, \DateTimeInterface::class, true)) { + return iterator_to_array($this->dateTimeResolver->resolve($property->name, $input, new ReflectionMember($property)))[0] ?? null; + } + + return iterator_to_array($this->builtinTypeResolver->resolve($property->name, $input, new ReflectionMember($property)))[0] ?? null; + } +} diff --git a/vendor/symfony/console/ArgumentResolver/ValueResolver/ServiceValueResolver.php b/vendor/symfony/console/ArgumentResolver/ValueResolver/ServiceValueResolver.php new file mode 100644 index 000000000..1eeccb649 --- /dev/null +++ b/vendor/symfony/console/ArgumentResolver/ValueResolver/ServiceValueResolver.php @@ -0,0 +1,81 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\ArgumentResolver\ValueResolver; + +use Psr\Container\ContainerInterface; +use Symfony\Component\Console\ArgumentResolver\Exception\NearMissValueResolverException; +use Symfony\Component\Console\Attribute\Reflection\ReflectionMember; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\DependencyInjection\Exception\RuntimeException; + +/** + * Yields a service from a service locator keyed by command and argument name. + * + * @author Nicolas Grekas + * @author Robin Chalas + */ +final class ServiceValueResolver implements ValueResolverInterface +{ + public function __construct( + private readonly ContainerInterface $container, + ) { + } + + public function resolve(string $argumentName, InputInterface $input, ReflectionMember $member): iterable + { + $command = $input->getFirstArgument(); + + if ($command && $this->container->has($command)) { + $locator = $this->container->get($command); + if ($locator instanceof ContainerInterface && $locator->has($argumentName)) { + try { + return [$locator->get($argumentName)]; + } catch (RuntimeException|\Throwable $e) { + $what = \sprintf('argument $%s', $argumentName); + $message = str_replace(\sprintf('service "%s"', $argumentName), $what, $e->getMessage()); + $what .= \sprintf(' of command "%s"', $command); + $message = preg_replace('/service "\.service_locator\.[^"]++"/', $what, $message); + + if ($e->getMessage() === $message) { + $message = \sprintf('Cannot resolve %s: %s', $what, $message); + } + + throw new NearMissValueResolverException($message, $e->getCode(), $e); + } + } + } + + $type = $member->getType(); + + if (!$type instanceof \ReflectionNamedType || $type->isBuiltin()) { + return []; + } + + $typeName = $type->getName(); + + if (!$this->container->has($typeName)) { + return []; + } + + try { + $service = $this->container->get($typeName); + + if (!$service instanceof $typeName) { + throw new NearMissValueResolverException(\sprintf('Service "%s" exists in the container but is not an instance of "%s".', $typeName, $typeName)); + } + + return [$service]; + } catch (\Throwable $e) { + throw new NearMissValueResolverException(\sprintf('Cannot resolve parameter "$%s" of type "%s": %s', $argumentName, $typeName, $e->getMessage()), previous: $e); + } + } +} diff --git a/vendor/symfony/console/ArgumentResolver/ValueResolver/TraceableValueResolver.php b/vendor/symfony/console/ArgumentResolver/ValueResolver/TraceableValueResolver.php new file mode 100644 index 000000000..cf1335148 --- /dev/null +++ b/vendor/symfony/console/ArgumentResolver/ValueResolver/TraceableValueResolver.php @@ -0,0 +1,40 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\ArgumentResolver\ValueResolver; + +use Symfony\Component\Console\Attribute\Reflection\ReflectionMember; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Stopwatch\Stopwatch; + +/** + * @author Robin Chalas + */ +final class TraceableValueResolver implements ValueResolverInterface +{ + public function __construct( + private ValueResolverInterface $inner, + private Stopwatch $stopwatch, + ) { + } + + public function resolve(string $argumentName, InputInterface $input, ReflectionMember $member): iterable + { + $method = $this->inner::class.'::'.__FUNCTION__; + $this->stopwatch->start($method, 'command.argument_value_resolver'); + + try { + yield from $this->inner->resolve($argumentName, $input, $member); + } finally { + $this->stopwatch->stop($method); + } + } +} diff --git a/vendor/symfony/console/ArgumentResolver/ValueResolver/UidValueResolver.php b/vendor/symfony/console/ArgumentResolver/ValueResolver/UidValueResolver.php new file mode 100644 index 000000000..a2bf61c74 --- /dev/null +++ b/vendor/symfony/console/ArgumentResolver/ValueResolver/UidValueResolver.php @@ -0,0 +1,87 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\ArgumentResolver\ValueResolver; + +use Symfony\Component\Console\Attribute\Argument; +use Symfony\Component\Console\Attribute\Option; +use Symfony\Component\Console\Attribute\Reflection\ReflectionMember; +use Symfony\Component\Console\Exception\InvalidArgumentException; +use Symfony\Component\Console\Exception\InvalidOptionException; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Uid\AbstractUid; + +/** + * Resolves an AbstractUid instance from a Command argument or option. + * + * @author Robin Chalas + */ +final class UidValueResolver implements ValueResolverInterface +{ + public function resolve(string $argumentName, InputInterface $input, ReflectionMember $member): iterable + { + if ($argument = Argument::tryFrom($member->getMember())) { + if (!is_subclass_of($argument->typeName, AbstractUid::class)) { + return []; + } + + return [$this->resolveArgument($argument, $input)]; + } + + if ($option = Option::tryFrom($member->getMember())) { + if (!is_subclass_of($option->typeName, AbstractUid::class)) { + return []; + } + + return [$this->resolveOption($option, $input)]; + } + + return []; + } + + private function resolveArgument(Argument $argument, InputInterface $input): ?AbstractUid + { + $value = $input->getArgument($argument->name); + + if (null === $value) { + return null; + } + + if ($value instanceof $argument->typeName) { + return $value; + } + + if (!\is_string($value) || !$argument->typeName::isValid($value)) { + throw new InvalidArgumentException(\sprintf('The uid for the "%s" argument is invalid.', $argument->name)); + } + + return $argument->typeName::fromString($value); + } + + private function resolveOption(Option $option, InputInterface $input): ?AbstractUid + { + $value = $input->getOption($option->name); + + if (null === $value) { + return null; + } + + if ($value instanceof $option->typeName) { + return $value; + } + + if (!\is_string($value) || !$option->typeName::isValid($value)) { + throw new InvalidOptionException(\sprintf('The uid for the "--%s" option is invalid.', $option->name)); + } + + return $option->typeName::fromString($value); + } +} diff --git a/vendor/symfony/console/ArgumentResolver/ValueResolver/ValueResolverInterface.php b/vendor/symfony/console/ArgumentResolver/ValueResolver/ValueResolverInterface.php new file mode 100644 index 000000000..09e9d0894 --- /dev/null +++ b/vendor/symfony/console/ArgumentResolver/ValueResolver/ValueResolverInterface.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\ArgumentResolver\ValueResolver; + +use Symfony\Component\Console\Attribute\Reflection\ReflectionMember; +use Symfony\Component\Console\Input\InputInterface; + +/** + * Responsible for resolving the value of a Command argument based on its + * parameter metadata and the Command MapInput. + * + * @author Nicolas Grekas + * @author Robin Chalas + */ +interface ValueResolverInterface +{ + /** + * Returns the possible value(s) for the argument. + */ + public function resolve(string $argumentName, InputInterface $input, ReflectionMember $member): iterable; +} diff --git a/vendor/symfony/console/ArgumentResolver/ValueResolver/VariadicValueResolver.php b/vendor/symfony/console/ArgumentResolver/ValueResolver/VariadicValueResolver.php new file mode 100644 index 000000000..f90916bc4 --- /dev/null +++ b/vendor/symfony/console/ArgumentResolver/ValueResolver/VariadicValueResolver.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\ArgumentResolver\ValueResolver; + +use Symfony\Component\Console\Attribute\Argument; +use Symfony\Component\Console\Attribute\Option; +use Symfony\Component\Console\Attribute\Reflection\ReflectionMember; +use Symfony\Component\Console\Input\InputInterface; + +/** + * Yields a variadic argument's values from the input. + * + * @author Robin Chalas + */ +final class VariadicValueResolver implements ValueResolverInterface +{ + public function resolve(string $argumentName, InputInterface $input, ReflectionMember $member): iterable + { + if (!$member->isVariadic()) { + return []; + } + + if ($argument = Argument::tryFrom($member->getMember())) { + $values = $input->getArgument($argument->name); + + if (!\is_array($values)) { + throw new \InvalidArgumentException(\sprintf('The action argument "...$%1$s" is required to be an array, the input argument "%1$s" contains a type of "%2$s" instead.', $argument->name, get_debug_type($values))); + } + + return $values; + } + + if ($option = Option::tryFrom($member->getMember())) { + $values = $input->getOption($option->name); + + if (!\is_array($values)) { + throw new \InvalidArgumentException(\sprintf('The action argument "...$%1$s" is required to be an array, the input option "--%1$s" contains a type of "%2$s" instead.', $option->name, get_debug_type($values))); + } + + return $values; + } + + return []; + } +} diff --git a/vendor/symfony/console/Attribute/Argument.php b/vendor/symfony/console/Attribute/Argument.php index 33b7a86b2..815d7dbb0 100644 --- a/vendor/symfony/console/Attribute/Argument.php +++ b/vendor/symfony/console/Attribute/Argument.php @@ -14,24 +14,23 @@ namespace Symfony\Component\Console\Attribute; use Symfony\Component\Console\Attribute\Reflection\ReflectionMember; use Symfony\Component\Console\Completion\CompletionInput; use Symfony\Component\Console\Completion\Suggestion; -use Symfony\Component\Console\Exception\InvalidArgumentException; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\String\UnicodeString; #[\Attribute(\Attribute::TARGET_PARAMETER | \Attribute::TARGET_PROPERTY)] class Argument { - private const ALLOWED_TYPES = ['string', 'bool', 'int', 'float', 'array']; + public mixed $default = null; + public array|\Closure $suggestedValues; - private string|bool|int|float|array|null $default = null; - private array|\Closure $suggestedValues; - private ?int $mode = null; /** + * @internal + * * @var string|class-string<\BackedEnum> */ - private string $typeName = ''; + public string $typeName = ''; + private ?int $mode = null; private ?InteractiveAttributeInterface $interactiveAttribute = null; /** @@ -68,11 +67,6 @@ class Argument } $self->typeName = $type->getName(); - $isBackedEnum = is_subclass_of($self->typeName, \BackedEnum::class); - - if (!\in_array($self->typeName, self::ALLOWED_TYPES, true) && !$isBackedEnum) { - throw new LogicException(\sprintf('The type "%s" on %s "$%s" of "%s" is not supported as a command argument. Only "%s" types and backed enums are allowed.', $self->typeName, $reflection->getMemberName(), $name, $reflection->getSourceName(), implode('", "', self::ALLOWED_TYPES))); - } if (!$self->name) { $self->name = (new UnicodeString($name))->kebab(); @@ -80,9 +74,9 @@ class Argument $self->default = $reflection->hasDefaultValue() ? $reflection->getDefaultValue() : null; - $isOptional = $reflection->hasDefaultValue() || $reflection->isNullable(); + $isOptional = $reflection->hasDefaultValue() || $reflection->isNullable() || $reflection->isVariadic(); $self->mode = $isOptional ? InputArgument::OPTIONAL : InputArgument::REQUIRED; - if ('array' === $self->typeName) { + if ('array' === $self->typeName || $reflection->isVariadic()) { $self->mode |= InputArgument::IS_ARRAY; } @@ -92,11 +86,11 @@ class Argument $self->suggestedValues = [$instance, $self->suggestedValues[1]]; } - if ($isBackedEnum && !$self->suggestedValues) { + if (is_subclass_of($self->typeName, \BackedEnum::class) && !$self->suggestedValues) { $self->suggestedValues = array_column($self->typeName::cases(), 'value'); } - $self->interactiveAttribute = Ask::tryFrom($member, $self->name); + $self->interactiveAttribute = Ask::tryFrom($member, $self->name) ?? AskChoice::tryFrom($member, $self->name); if ($self->interactiveAttribute && $isOptional) { throw new LogicException(\sprintf('The %s "$%s" argument of "%s" cannot be both interactive and optional.', $reflection->getMemberName(), $self->name, $reflection->getSourceName())); @@ -115,20 +109,6 @@ class Argument return new InputArgument($this->name, $this->mode, $this->description, $this->default, $suggestedValues); } - /** - * @internal - */ - public function resolveValue(InputInterface $input): mixed - { - $value = $input->getArgument($this->name); - - if (is_subclass_of($this->typeName, \BackedEnum::class) && (\is_string($value) || \is_int($value))) { - return $this->typeName::tryFrom($value) ?? throw InvalidArgumentException::fromEnumValue($this->name, $value, $this->suggestedValues); - } - - return $value; - } - /** * @internal */ diff --git a/vendor/symfony/console/Attribute/AsCommand.php b/vendor/symfony/console/Attribute/AsCommand.php index 02f156201..a6a4ca873 100644 --- a/vendor/symfony/console/Attribute/AsCommand.php +++ b/vendor/symfony/console/Attribute/AsCommand.php @@ -13,11 +13,9 @@ namespace Symfony\Component\Console\Attribute; /** * Service tag to autoconfigure commands. - * - * @final since Symfony 7.3 */ -#[\Attribute(\Attribute::TARGET_CLASS)] -class AsCommand +#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::TARGET_METHOD)] +final class AsCommand { /** * @param string $name The name of the command, used when calling it (i.e. "cache:clear") diff --git a/vendor/symfony/console/Attribute/AsTargetedValueResolver.php b/vendor/symfony/console/Attribute/AsTargetedValueResolver.php new file mode 100644 index 000000000..813f7073c --- /dev/null +++ b/vendor/symfony/console/Attribute/AsTargetedValueResolver.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Attribute; + +/** + * Service tag to autoconfigure targeted value resolvers. + */ +#[\Attribute(\Attribute::TARGET_CLASS)] +class AsTargetedValueResolver +{ + /** + * @param string|null $name The name with which the resolver can be targeted + */ + public function __construct(public readonly ?string $name = null) + { + } +} diff --git a/vendor/symfony/console/Attribute/Ask.php b/vendor/symfony/console/Attribute/Ask.php index 360a08421..722f41764 100644 --- a/vendor/symfony/console/Attribute/Ask.php +++ b/vendor/symfony/console/Attribute/Ask.php @@ -14,10 +14,13 @@ namespace Symfony\Component\Console\Attribute; use Symfony\Component\Console\Attribute\Reflection\ReflectionMember; use Symfony\Component\Console\Exception\InvalidArgumentException; use Symfony\Component\Console\Exception\LogicException; +use Symfony\Component\Console\Input\File\InputFile; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Question\ConfirmationQuestion; +use Symfony\Component\Console\Question\FileQuestion; use Symfony\Component\Console\Question\Question; use Symfony\Component\Console\Style\SymfonyStyle; +use Symfony\Component\Validator\Constraint; #[\Attribute(\Attribute::TARGET_PARAMETER | \Attribute::TARGET_PROPERTY)] class Ask implements InteractiveAttributeInterface @@ -47,6 +50,8 @@ class Ask implements InteractiveAttributeInterface ?callable $normalizer = null, ?callable $validator = null, public ?int $maxAttempts = null, + /** @var Constraint[] */ + public array $constraints = [], ) { $this->normalizer = $normalizer ? $normalizer(...) : null; $this->validator = $validator ? $validator(...) : null; @@ -78,7 +83,29 @@ class Ask implements InteractiveAttributeInterface return; } - if ('bool' === $type->getName()) { + $typeName = $type->getName(); + + if (InputFile::class === $typeName) { + $question = new FileQuestion($self->question); + $question->setValidator($self->validator); + $question->setMaxAttempts($self->maxAttempts); + $question->setConstraints($self->constraints); + $value = $io->askQuestion($question); + + if (null === $value && !$reflection->isNullable()) { + return; + } + + if ($reflection->isProperty()) { + $this->{$reflection->getName()} = $value; + } else { + $input->setArgument($name, $value); + } + + return; + } + + if ('bool' === $typeName) { $self->default ??= false; if (!\is_bool($self->default)) { @@ -94,22 +121,23 @@ class Ask implements InteractiveAttributeInterface $question->setTrimmable($self->trimmable); $question->setTimeout($self->timeout); - if (!$self->validator && $reflection->isProperty() && 'array' !== $type->getName()) { + if (!$self->validator && $reflection->isProperty() && 'array' !== $typeName) { $self->validator = fn (mixed $value): mixed => $this->{$reflection->getName()} = $value; } $question->setValidator($self->validator); $question->setMaxAttempts($self->maxAttempts); + $question->setConstraints($self->constraints); if ($self->normalizer) { $question->setNormalizer($self->normalizer); - } elseif (is_subclass_of($type->getName(), \BackedEnum::class)) { + } elseif (is_subclass_of($typeName, \BackedEnum::class)) { /** @var class-string<\BackedEnum> $backedType */ $backedType = $reflection->getType()->getName(); $question->setNormalizer(static fn (string|int $value) => $backedType::tryFrom($value) ?? throw InvalidArgumentException::fromEnumValue($reflection->getName(), $value, array_column($backedType::cases(), 'value'))); } - if ('array' === $type->getName()) { + if ('array' === $typeName) { $value = []; while ($v = $io->askQuestion($question)) { if ("\x4" === $v || \PHP_EOL === $v || ($question->isTrimmable() && '' === $v = trim($v))) { diff --git a/vendor/symfony/console/Attribute/AskChoice.php b/vendor/symfony/console/Attribute/AskChoice.php new file mode 100644 index 000000000..0283899fd --- /dev/null +++ b/vendor/symfony/console/Attribute/AskChoice.php @@ -0,0 +1,140 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Attribute; + +use Symfony\Component\Console\Attribute\Reflection\ReflectionMember; +use Symfony\Component\Console\Exception\LogicException; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Question\ChoiceQuestion; +use Symfony\Component\Console\Style\SymfonyStyle; + +#[\Attribute(\Attribute::TARGET_PARAMETER | \Attribute::TARGET_PROPERTY)] +class AskChoice implements InteractiveAttributeInterface +{ + public ?\Closure $validator; + public array|\Closure $choices; + private \Closure $closure; + + /** + * @param string $question The question to ask the user + * @param array|callable():array $choices The list of available choices (leave empty to use enum cases) + * @param string|int|float|null $default The default answer to return if the user enters nothing + * @param string $errorMessage The error message when the answer is invalid + * @param string $prompt The prompt displayed before the user input + * @param callable|null $validator The validator for the answer + * @param int|null $maxAttempts The maximum number of attempts allowed to answer the question. + * Null means an unlimited number of attempts + */ + public function __construct( + public string $question, + array|callable $choices = [], + public string|int|float|null $default = null, + public string $errorMessage = 'Value "%s" is invalid', + public string $prompt = ' > ', + ?callable $validator = null, + public ?int $maxAttempts = null, + ) { + $this->validator = $validator ? $validator(...) : null; + $this->choices = \is_callable($choices) ? $choices(...) : $choices; + } + + /** + * @internal + */ + public static function tryFrom(\ReflectionParameter|\ReflectionProperty $member, string $name): ?self + { + $reflection = new ReflectionMember($member); + + if (!$self = $reflection->getAttribute(self::class)) { + return null; + } + + $type = $reflection->getType(); + + if (!$type instanceof \ReflectionNamedType) { + throw new LogicException(\sprintf('The %s "$%s" of "%s" must have a named type. Untyped, Union or Intersection types are not supported for choice questions.', $reflection->getMemberName(), $name, $reflection->getSourceName())); + } + + $isBackedEnum = is_subclass_of($type->getName(), \BackedEnum::class); + + // Validate that choices are provided or can be derived from enum + if (!$self->choices && !$isBackedEnum) { + throw new LogicException(\sprintf('The #[AskChoice] attribute for the %s "$%s" of "%s" requires either explicit choices or a BackedEnum type.', $reflection->getMemberName(), $name, $reflection->getSourceName())); + } + + $self->closure = function (SymfonyStyle $io, InputInterface $input) use ($self, $reflection, $name, $type, $isBackedEnum) { + if ($reflection->isProperty() && isset($this->{$reflection->getName()})) { + return; + } + + if ($reflection->isParameter() && !\in_array($input->getArgument($name), [null, []], true)) { + return; + } + + $choices = $self->choices instanceof \Closure ? ($self->choices)() : $self->choices; + + // Derive choices from enum cases if not provided + if (!$choices && $isBackedEnum) { + /** @var class-string<\BackedEnum> $enumClass */ + $enumClass = $type->getName(); + $choices = array_column($enumClass::cases(), 'value'); + } + + $question = new ChoiceQuestion($self->question, $choices, $self->default); + $question->setMultiselect('array' === $type->getName()); + $question->setErrorMessage($self->errorMessage); + $question->setPrompt($self->prompt); + $question->setMaxAttempts($self->maxAttempts); + + if (!$self->validator && $reflection->isProperty() && !$isBackedEnum && 'array' !== $type->getName()) { + $self->validator = fn (mixed $value): mixed => $this->{$reflection->getName()} = $value; + } + + if ($self->validator) { + $question->setValidator($self->validator); + } + + $value = $io->askQuestion($question); + + if (null === $value && !$reflection->isNullable()) { + return; + } + + // Convert back to enum if needed + if ($isBackedEnum) { + /** @var class-string<\BackedEnum> $enumClass */ + $enumClass = $type->getName(); + if ($question->isMultiselect() && \is_array($value)) { + $value = array_map(static fn ($v) => $enumClass::from($v), $value); + } else { + $value = $enumClass::from($value); + } + } + + if ($reflection->isProperty()) { + $this->{$reflection->getName()} = $value; + } else { + $input->setArgument($name, $value); + } + }; + + return $self; + } + + /** + * @internal + */ + public function getFunction(object $instance): \ReflectionFunction + { + return new \ReflectionFunction($this->closure->bindTo($instance, $instance::class)); + } +} diff --git a/vendor/symfony/console/Attribute/Interact.php b/vendor/symfony/console/Attribute/Interact.php index 188071ff1..b1d4544ff 100644 --- a/vendor/symfony/console/Attribute/Interact.php +++ b/vendor/symfony/console/Attribute/Interact.php @@ -29,11 +29,11 @@ class Interact implements InteractiveAttributeInterface } if (!$method->isPublic() || $method->isStatic()) { - throw new LogicException(\sprintf('The interactive method "%s::%s()" must be public and non-static.', $method->getDeclaringClass()->getName(), $method->getName())); + throw new LogicException(\sprintf('The interactive method "%s::%s()" must be public and non-static.', $method->class, $method->getName())); } if ('__invoke' === $method->getName()) { - throw new LogicException(\sprintf('The "%s::__invoke()" method cannot be used as an interactive method.', $method->getDeclaringClass()->getName())); + throw new LogicException(\sprintf('The "%s::__invoke()" method cannot be used as an interactive method.', $method->class)); } $self->method = $method; diff --git a/vendor/symfony/console/Attribute/MapDateTime.php b/vendor/symfony/console/Attribute/MapDateTime.php new file mode 100644 index 000000000..9e2ac517a --- /dev/null +++ b/vendor/symfony/console/Attribute/MapDateTime.php @@ -0,0 +1,36 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Attribute; + +/** + * Defines how a DateTime parameter should be resolved from command input. + * + * @author Robin Chalas + */ +#[\Attribute(\Attribute::TARGET_PARAMETER)] +class MapDateTime +{ + /** + * @param string|null $format The DateTime format (@see https://php.net/datetime.format) + * @param string|null $argument The argument name to read from (defaults to parameter name) + * @param string|null $option The option name to read from (mutually exclusive with $argument) + */ + public function __construct( + public readonly ?string $format = null, + public readonly ?string $argument = null, + public readonly ?string $option = null, + ) { + if ($argument && $option) { + throw new \LogicException('MapDateTime cannot specify both argument and option.'); + } + } +} diff --git a/vendor/symfony/console/Attribute/MapInput.php b/vendor/symfony/console/Attribute/MapInput.php index 0b508361a..378937baa 100644 --- a/vendor/symfony/console/Attribute/MapInput.php +++ b/vendor/symfony/console/Attribute/MapInput.php @@ -34,6 +34,14 @@ final class MapInput */ private array $interactiveAttributes = []; + /** + * @param string[]|null $validationGroups + */ + public function __construct( + public readonly ?array $validationGroups = null, + ) { + } + /** * @internal */ @@ -84,25 +92,6 @@ final class MapInput return $self; } - /** - * @internal - */ - public function resolveValue(InputInterface $input): object - { - $instance = $this->class->newInstanceWithoutConstructor(); - - foreach ($this->definition as $name => $spec) { - // ignore required arguments that are not set yet (may happen in interactive mode) - if ($spec instanceof Argument && $spec->isRequired() && \in_array($input->getArgument($spec->name), [null, []], true)) { - continue; - } - - $instance->$name = $spec->resolveValue($input); - } - - return $instance; - } - /** * @internal */ @@ -152,6 +141,79 @@ final class MapInput } } + /** + * @internal + * + * @return \ReflectionClass + */ + public function getClass(): \ReflectionClass + { + return $this->class; + } + + /** + * @internal + * + * @return array + */ + public function getDefinition(): array + { + return $this->definition; + } + + /** + * Creates a populated instance of the DTO from command input. + * + * @internal + */ + public function createInstance(InputInterface $input): object + { + $instance = $this->class->newInstanceWithoutConstructor(); + + foreach ($this->definition as $name => $spec) { + if ($spec instanceof Argument) { + $value = $input->getArgument($spec->name); + if ($spec->isRequired() && \in_array($value, [null, []], true)) { + continue; + } + $instance->$name = $this->resolveValue($spec->typeName, $value, $spec->default); + } elseif ($spec instanceof Option) { + $value = $input->getOption($spec->name); + $instance->$name = $this->resolveValue($spec->typeName, $value, $spec->default); + } elseif ($spec instanceof self) { + $instance->$name = $spec->createInstance($input); + } + } + + return $instance; + } + + private function resolveValue(string $typeName, mixed $value, mixed $default): mixed + { + if (null === $value) { + return $default; + } + + if ('' === $value) { + return $value; + } + + if (is_subclass_of($typeName, \BackedEnum::class)) { + return $value instanceof $typeName ? $value : $typeName::tryFrom($value); + } + + if (is_a($typeName, \DateTimeInterface::class, true)) { + if ($value instanceof \DateTimeInterface) { + return $value; + } + $class = \DateTimeInterface::class === $typeName ? \DateTimeImmutable::class : $typeName; + + return new $class($value); + } + + return $value; + } + /** * @internal * diff --git a/vendor/symfony/console/Attribute/Option.php b/vendor/symfony/console/Attribute/Option.php index 5f0f47610..32054eb02 100644 --- a/vendor/symfony/console/Attribute/Option.php +++ b/vendor/symfony/console/Attribute/Option.php @@ -14,26 +14,26 @@ namespace Symfony\Component\Console\Attribute; use Symfony\Component\Console\Attribute\Reflection\ReflectionMember; use Symfony\Component\Console\Completion\CompletionInput; use Symfony\Component\Console\Completion\Suggestion; -use Symfony\Component\Console\Exception\InvalidOptionException; use Symfony\Component\Console\Exception\LogicException; -use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\String\UnicodeString; #[\Attribute(\Attribute::TARGET_PARAMETER | \Attribute::TARGET_PROPERTY)] class Option { - private const ALLOWED_TYPES = ['string', 'bool', 'int', 'float', 'array']; - private const ALLOWED_UNION_TYPES = ['bool|string', 'bool|int', 'bool|float']; + public const ALLOWED_UNION_TYPES = ['bool|string', 'bool|int', 'bool|float']; + public mixed $default = null; + public array|\Closure $suggestedValues; - private string|bool|int|float|array|null $default = null; - private array|\Closure $suggestedValues; - private ?int $mode = null; /** + * @internal + * * @var string|class-string<\BackedEnum> */ - private string $typeName = ''; - private bool $allowNull = false; + public string $typeName = ''; + /** @internal */ + public bool $allowNull = false; + private ?int $mode = null; private string $memberName = ''; private string $sourceName = ''; @@ -71,7 +71,8 @@ class Option $name = $reflection->getName(); $type = $reflection->getType(); - if (!$reflection->hasDefaultValue()) { + // Variadic parameters implicitly default to an empty array + if (!$reflection->isVariadic() && !$reflection->hasDefaultValue()) { throw new LogicException(\sprintf('The option %s "$%s" of "%s" must declare a default value.', $self->memberName, $name, $self->sourceName)); } @@ -79,7 +80,7 @@ class Option $self->name = (new UnicodeString($name))->kebab(); } - $self->default = $reflection->getDefaultValue(); + $self->default = $reflection->isVariadic() ? [] : $reflection->getDefaultValue(); $self->allowNull = $reflection->isNullable(); if ($type instanceof \ReflectionUnionType) { @@ -91,11 +92,6 @@ class Option } $self->typeName = $type->getName(); - $isBackedEnum = is_subclass_of($self->typeName, \BackedEnum::class); - - if (!\in_array($self->typeName, self::ALLOWED_TYPES, true) && !$isBackedEnum) { - throw new LogicException(\sprintf('The type "%s" on %s "$%s" of "%s" is not supported as a command option. Only "%s" types and BackedEnum are allowed.', $self->typeName, $self->memberName, $name, $self->sourceName, implode('", "', self::ALLOWED_TYPES))); - } if ('bool' === $self->typeName && $self->allowNull && \in_array($self->default, [true, false], true)) { throw new LogicException(\sprintf('The option %s "$%s" of "%s" must not be nullable when it has a default boolean value.', $self->memberName, $name, $self->sourceName)); @@ -110,7 +106,7 @@ class Option if (false !== $self->default) { $self->mode |= InputOption::VALUE_NEGATABLE; } - } elseif ('array' === $self->typeName) { + } elseif ('array' === $self->typeName || $reflection->isVariadic()) { $self->mode = InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY; } else { $self->mode = InputOption::VALUE_REQUIRED; @@ -120,7 +116,7 @@ class Option $self->suggestedValues = [$instance, $self->suggestedValues[1]]; } - if ($isBackedEnum && !$self->suggestedValues) { + if (is_subclass_of($self->typeName, \BackedEnum::class) && !$self->suggestedValues) { $self->suggestedValues = array_column($self->typeName::cases(), 'value'); } @@ -138,36 +134,6 @@ class Option return new InputOption($this->name, $this->shortcut, $this->mode, $this->description, $default, $suggestedValues); } - /** - * @internal - */ - public function resolveValue(InputInterface $input): mixed - { - $value = $input->getOption($this->name); - - if (null === $value && \in_array($this->typeName, self::ALLOWED_UNION_TYPES, true)) { - return true; - } - - if (is_subclass_of($this->typeName, \BackedEnum::class) && (\is_string($value) || \is_int($value))) { - return $this->typeName::tryFrom($value) ?? throw InvalidOptionException::fromEnumValue($this->name, $value, $this->suggestedValues); - } - - if ('array' === $this->typeName && $this->allowNull && [] === $value) { - return null; - } - - if ('bool' !== $this->typeName) { - return $value; - } - - if ($this->allowNull && null === $value) { - return null; - } - - return $value ?? $this->default; - } - private function handleUnion(\ReflectionUnionType $type): self { $types = array_map( diff --git a/vendor/symfony/console/Attribute/Reflection/ReflectionMember.php b/vendor/symfony/console/Attribute/Reflection/ReflectionMember.php index a53f1e036..1a3ad37c8 100644 --- a/vendor/symfony/console/Attribute/Reflection/ReflectionMember.php +++ b/vendor/symfony/console/Attribute/Reflection/ReflectionMember.php @@ -11,6 +11,8 @@ namespace Symfony\Component\Console\Attribute\Reflection; +use Symfony\Component\String\UnicodeString; + /** * @internal */ @@ -33,10 +35,25 @@ class ReflectionMember return ($this->member->getAttributes($class, \ReflectionAttribute::IS_INSTANCEOF)[0] ?? null)?->newInstance(); } + /** + * @template T of object + * + * @param class-string $class + * + * @return list + */ + public function getAttributes(string $class): array + { + return array_map( + static fn (\ReflectionAttribute $attribute) => $attribute->newInstance(), + $this->member->getAttributes($class, \ReflectionAttribute::IS_INSTANCEOF) + ); + } + public function getSourceName(): string { if ($this->member instanceof \ReflectionProperty) { - return $this->member->getDeclaringClass()->name; + return $this->member->class; } $function = $this->member->getDeclaringFunction(); @@ -102,8 +119,23 @@ class ReflectionMember return $this->member instanceof \ReflectionParameter; } + public function isVariadic(): bool + { + return $this->member instanceof \ReflectionParameter && $this->member->isVariadic(); + } + public function isProperty(): bool { return $this->member instanceof \ReflectionProperty; } + + public function getMember(): \ReflectionParameter|\ReflectionProperty + { + return $this->member; + } + + public function getInputName(): string + { + return (new UnicodeString($this->member->getName()))->kebab()->toString(); + } } diff --git a/vendor/symfony/console/Attribute/ValueResolver.php b/vendor/symfony/console/Attribute/ValueResolver.php new file mode 100644 index 000000000..88ddd20f0 --- /dev/null +++ b/vendor/symfony/console/Attribute/ValueResolver.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Attribute; + +use Symfony\Component\Console\ArgumentResolver\ValueResolver\ValueResolverInterface; + +/** + * Defines which value resolver should be used for a given parameter. + */ +#[\Attribute(\Attribute::TARGET_PARAMETER | \Attribute::IS_REPEATABLE)] +class ValueResolver +{ + /** + * @param class-string|string $resolver The class name of the resolver to use + * @param bool $disabled Whether this value resolver is disabled; this allows to enable a value resolver globally while disabling it in specific cases + */ + public function __construct( + public string $resolver, + public bool $disabled = false, + ) { + } +} diff --git a/vendor/symfony/console/CHANGELOG.md b/vendor/symfony/console/CHANGELOG.md index b2841ec07..ef3b53861 100644 --- a/vendor/symfony/console/CHANGELOG.md +++ b/vendor/symfony/console/CHANGELOG.md @@ -1,6 +1,43 @@ CHANGELOG ========= +8.1 +--- + + * Add `ConsoleBundle` for console applications with DI, autodiscovery and autowiring + * Pad styled `SymfonyStyle` blocks with the ECH ANSI sequence on decorated outputs so trailing cells are excluded from copy selections + * Add optional `$container` parameter to `Application` for automatic service wiring from a PSR container + * Add `SymfonyStyle::outlineBlock()` and convenience methods `outlineSuccess()`, `outlineError()`, `outlineWarning()`, `outlineNote()`, `outlineInfo()`, `outlineCaution()` for border-only message blocks with the type label embedded in the top border + * Add `TraceableValueResolver` to help inspecting value resolvers performances + * [BC BREAK] Add `object` support to input options and arguments' default by changing the `$default` type to `mixed` in `InputArgument`, `InputOption`, `#[Argument]` and `#[Option]` + * Add support for pasting images with `#[Ask]` on `InputFile` types, supporting Kitty Graphics and iTerm2 protocols + * Add `FileQuestion`, `InputFile`, `InputFileValueResolver`, and `SymfonyStyle::askFile()` for file input handling + * Add `Question::setConstraints()` and `ValidateQuestionInputListener` to validate question input using Validator constraints + * Add `#[AskChoice]` attribute for interactive choice questions in invokable commands + * Add support for method-based commands with `#[AsCommand]` attribute + * Add argument resolver support + * Add `BackedEnum` and `DateTimeInterface` support to `#[MapInput]` + * Add validation constraints support to `#[MapInput]` along with optional `validationGroups` to control which groups are validated + * Add `TesterTrait::assertCommandFailed()` to test command + * Add `TesterTrait::assertCommandIsInvalid()` to test command + * Add a result-based testing API with `CommandTester::run()`, `ExecutionResult`, and `ConsoleAssertionsTrait` to assert output and error streams together + * Add optional `$format` argument to `SymfonyStyle::createProgressBar()`, `SymfonyStyle::progressStart()`, and `SymfonyStyle::progressIterate()` to allow passing a custom `ProgressBar` format string + * Allow setting a boolean default value on `InputOption::VALUE_NEGATABLE` options + * Deprecate passing both `InputArgument::REQUIRED` and `InputArgument::OPTIONAL` modes to `InputArgument` constructor + * Deprecate passing more than one out of `InputOption::VALUE_NONE`, `InputOption::VALUE_REQUIRED` and `InputOption::VALUE_OPTIONAL` modes to `InputOption` constructor + * Add `RawInputInterface` to expose the original arguments and options and to unparse options, implemented by `Input` + * Add support for OSC 9;4 for progress reporting + +8.0 +--- + + * Make `AsCommand` attribute class `final` + * Remove methods `Command::getDefaultName()` and `Command::getDefaultDescription()` in favor of the `#[AsCommand]` attribute + * Ensure closures set via `Command::setCode()` method have proper parameter and return types + * Add method `isSilent()` to `OutputInterface` + * Remove deprecated `Symfony\Component\Console\Application::add()` method in favor of `Symfony\Component\Console\Application::addCommand()` + * Add argument `$finishedIndicator` to `ProgressIndicator::finish()` + 7.4 --- diff --git a/vendor/symfony/console/Command/Command.php b/vendor/symfony/console/Command/Command.php index d09c8876a..762d63b28 100644 --- a/vendor/symfony/console/Command/Command.php +++ b/vendor/symfony/console/Command/Command.php @@ -54,34 +54,6 @@ class Command implements SignalableCommandInterface private array $usages = []; private ?HelperSet $helperSet = null; - /** - * @deprecated since Symfony 7.3, use the #[AsCommand] attribute instead - */ - public static function getDefaultName(): ?string - { - trigger_deprecation('symfony/console', '7.3', 'Method "%s()" is deprecated and will be removed in Symfony 8.0, use the #[AsCommand] attribute instead.', __METHOD__); - - if ($attribute = (new \ReflectionClass(static::class))->getAttributes(AsCommand::class)) { - return $attribute[0]->newInstance()->name; - } - - return null; - } - - /** - * @deprecated since Symfony 7.3, use the #[AsCommand] attribute instead - */ - public static function getDefaultDescription(): ?string - { - trigger_deprecation('symfony/console', '7.3', 'Method "%s()" is deprecated and will be removed in Symfony 8.0, use the #[AsCommand] attribute instead.', __METHOD__); - - if ($attribute = (new \ReflectionClass(static::class))->getAttributes(AsCommand::class)) { - return $attribute[0]->newInstance()->description; - } - - return null; - } - /** * @param string|null $name The name of the command; passing null means it must be set in configure() * @@ -89,30 +61,15 @@ class Command implements SignalableCommandInterface */ public function __construct(?string $name = null, ?callable $code = null) { - if (null !== $code) { - if (!\is_object($code) || $code instanceof \Closure) { - throw new InvalidArgumentException(\sprintf('The command must be an instance of "%s" or an invokable object.', self::class)); - } - /** @var AsCommand $attribute */ - $attribute = ((new \ReflectionObject($code))->getAttributes(AsCommand::class)[0] ?? null)?->newInstance() - ?? throw new LogicException(\sprintf('The command must use the "%s" attribute.', AsCommand::class)); - $this->setCode($code); - } else { - $attribute = ((new \ReflectionClass(static::class))->getAttributes(AsCommand::class)[0] ?? null)?->newInstance(); - } - $this->definition = new InputDefinition(); - if (null === $name) { - if (self::class !== (new \ReflectionMethod($this, 'getDefaultName'))->class) { - trigger_deprecation('symfony/console', '7.3', 'Overriding "Command::getDefaultName()" in "%s" is deprecated and will be removed in Symfony 8.0, use the #[AsCommand] attribute instead.', static::class); - $name = static::getDefaultName(); - } else { - $name = $attribute?->name; - } + $attribute = $this->getCommandAttribute($code); + + if ($code) { + $this->setCode($code); } - if (null !== $name) { + if (null !== $name ??= $attribute?->name) { $aliases = explode('|', $name); if ('' === $name = array_shift($aliases)) { @@ -134,15 +91,7 @@ class Command implements SignalableCommandInterface } if ('' === $this->description) { - if (self::class !== (new \ReflectionMethod($this, 'getDefaultDescription'))->class) { - trigger_deprecation('symfony/console', '7.3', 'Overriding "Command::getDefaultDescription()" in "%s" is deprecated and will be removed in Symfony 8.0, use the #[AsCommand] attribute instead.', static::class); - - $defaultDescription = static::getDefaultDescription(); - } else { - $defaultDescription = $attribute?->description; - } - - $this->setDescription($defaultDescription ?? ''); + $this->setDescription($attribute?->description ?? ''); } if ('' === $this->help) { @@ -153,7 +102,7 @@ class Command implements SignalableCommandInterface $this->addUsage($usage); } - if (!$code && \is_callable($this) && self::class === (new \ReflectionMethod($this, 'execute'))->getDeclaringClass()->name) { + if (!$code && \is_callable($this) && self::class === (new \ReflectionMethod($this, 'execute'))->class) { $this->code = new InvokableCommand($this, $this(...)); } @@ -216,10 +165,8 @@ class Command implements SignalableCommandInterface /** * Configures the current command. - * - * @return void */ - protected function configure() + protected function configure(): void { } @@ -248,10 +195,8 @@ class Command implements SignalableCommandInterface * This method is executed before the InputDefinition is validated. * This means that this is the only place where the command can * interactively ask for values of missing required arguments. - * - * @return void */ - protected function interact(InputInterface $input, OutputInterface $output) + protected function interact(InputInterface $input, OutputInterface $output): void { } @@ -264,10 +209,8 @@ class Command implements SignalableCommandInterface * * @see InputInterface::bind() * @see InputInterface::validate() - * - * @return void */ - protected function initialize(InputInterface $input, OutputInterface $output) + protected function initialize(InputInterface $input, OutputInterface $output): void { } @@ -639,7 +582,7 @@ class Command implements SignalableCommandInterface $list[] = $alias; } - $this->aliases = \is_array($aliases) ? $aliases : $list; + $this->aliases = $list; return $this; } @@ -730,4 +673,34 @@ class Command implements SignalableCommandInterface throw new InvalidArgumentException(\sprintf('Command name "%s" is invalid.', $name)); } } + + private function getCommandAttribute(?callable $code): ?AsCommand + { + if (null === $code) { + /** @var AsCommand|null $attribute */ + $attribute = (new \ReflectionClass(static::class)->getAttributes(AsCommand::class)[0] ?? null)?->newInstance(); + + return $attribute; + } + + $reflection = new \ReflectionFunction($code(...)); + + if ($reflection->isAnonymous() || !$class = $reflection->getClosureScopeClass()) { + throw new InvalidArgumentException(\sprintf('The command must be an instance of "%s", an invokable object or a method of an object.', self::class)); + } + + /** @var AsCommand|null $attribute */ + $attribute = ($reflection->getAttributes(AsCommand::class)[0] ?? null)?->newInstance(); + + if (!$attribute && '__invoke' === $reflection->getName()) { + /** @var AsCommand|null $attribute */ + $attribute = ($class->getAttributes(AsCommand::class)[0] ?? null)?->newInstance(); + } + + if (!$attribute) { + throw new LogicException(\sprintf('The command must use the "%s" attribute.', AsCommand::class)); + } + + return $attribute; + } } diff --git a/vendor/symfony/console/Command/InvokableCommand.php b/vendor/symfony/console/Command/InvokableCommand.php index 016da5a01..da9eb30f1 100644 --- a/vendor/symfony/console/Command/InvokableCommand.php +++ b/vendor/symfony/console/Command/InvokableCommand.php @@ -12,16 +12,17 @@ namespace Symfony\Component\Console\Command; use Symfony\Component\Console\Application; +use Symfony\Component\Console\ArgumentResolver\ArgumentResolver; +use Symfony\Component\Console\ArgumentResolver\ArgumentResolverInterface; use Symfony\Component\Console\Attribute\Argument; use Symfony\Component\Console\Attribute\Interact; use Symfony\Component\Console\Attribute\MapInput; use Symfony\Component\Console\Attribute\Option; use Symfony\Component\Console\Cursor; -use Symfony\Component\Console\Exception\LogicException; -use Symfony\Component\Console\Exception\RuntimeException; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputDefinition; use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\RawInputInterface; use Symfony\Component\Console\Interaction\Interaction; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Style\SymfonyStyle; @@ -41,12 +42,12 @@ class InvokableCommand implements SignalableCommandInterface * @var list|null */ private ?array $interactions = null; - private bool $triggerDeprecations = false; private $code; public function __construct( private readonly Command $command, callable $code, + private ?ArgumentResolverInterface $argumentResolver = null, ) { $this->code = $code; $this->signalableCommand = $code instanceof SignalableCommandInterface ? $code : null; @@ -61,12 +62,6 @@ class InvokableCommand implements SignalableCommandInterface $statusCode = $this->invokable->invoke(...$this->getParameters($this->invokable, $input, $output)); if (!\is_int($statusCode)) { - if ($this->triggerDeprecations) { - trigger_deprecation('symfony/console', '7.3', \sprintf('Returning a non-integer value from the command "%s" is deprecated and will throw an exception in Symfony 8.0.', $this->command->getName())); - - return 0; - } - throw new \TypeError(\sprintf('The command "%s" must return an integer value in the "%s" method, but "%s" was returned.', $this->command->getName(), $this->invokable->getName(), get_debug_type($statusCode))); } @@ -120,8 +115,6 @@ class InvokableCommand implements SignalableCommandInterface return $code(...); } - $this->triggerDeprecations = true; - if (null !== (new \ReflectionFunction($code))->getClosureThis()) { return $code; } @@ -140,49 +133,62 @@ class InvokableCommand implements SignalableCommandInterface private function getParameters(\ReflectionFunction $function, InputInterface $input, OutputInterface $output): array { - $parameters = []; - foreach ($function->getParameters() as $parameter) { - if ($argument = Argument::tryFrom($parameter)) { - $parameters[] = $argument->resolveValue($input); + $coreUtilities = []; + $needsArgumentResolver = false; - continue; - } + foreach ($function->getParameters() as $index => $param) { + $type = $param->getType(); - if ($option = Option::tryFrom($parameter)) { - $parameters[] = $option->resolveValue($input); - - continue; - } - - if ($in = MapInput::tryFrom($parameter)) { - $parameters[] = $in->resolveValue($input); - - continue; - } - - $type = $parameter->getType(); - - if (!$type instanceof \ReflectionNamedType) { - if ($this->triggerDeprecations) { - trigger_deprecation('symfony/console', '7.3', \sprintf('Omitting the type declaration for the parameter "$%s" is deprecated and will throw an exception in Symfony 8.0.', $parameter->getName())); + if ($type instanceof \ReflectionNamedType) { + $argument = match ($type->getName()) { + InputInterface::class => $input, + RawInputInterface::class => $input, + OutputInterface::class => $output, + SymfonyStyle::class => new SymfonyStyle($input, $output, $this->command->getApplication()?->getDispatcher()), + Cursor::class => new Cursor($output), + Application::class => $this->command->getApplication(), + Command::class, self::class => $this->command, + default => null, + }; + if (null !== $argument) { + $coreUtilities[$index] = $argument; continue; } - - throw new LogicException(\sprintf('The parameter "$%s" must have a named type. Untyped, Union or Intersection types are not supported.', $parameter->getName())); } - $parameters[] = match ($type->getName()) { - InputInterface::class => $input, - OutputInterface::class => $output, - Cursor::class => new Cursor($output), - SymfonyStyle::class => new SymfonyStyle($input, $output), - Application::class => $this->command->getApplication(), - default => throw new RuntimeException(\sprintf('Unsupported type "%s" for parameter "$%s".', $type->getName(), $parameter->getName())), - }; + $needsArgumentResolver = true; } - return $parameters ?: [$input, $output]; + if (!$needsArgumentResolver) { + return $coreUtilities; + } + + if (null === $this->argumentResolver) { + $this->argumentResolver = $this->command->getApplication()?->getArgumentResolver() ?? new ArgumentResolver( + ArgumentResolver::getDefaultArgumentValueResolvers() + ); + } + + $closure = $function->getClosure(); + $resolvedArgs = $this->argumentResolver->getArguments($input, $closure, $function); + + $parameters = []; + $resolvedIndex = 0; + + foreach ($function->getParameters() as $index => $param) { + if (isset($coreUtilities[$index])) { + $parameters[] = $coreUtilities[$index]; + } elseif ($param->isVariadic()) { + // Variadic parameters consume all remaining resolved arguments + $parameters = [...$parameters, ...\array_slice($resolvedArgs, $resolvedIndex)]; + break; + } else { + $parameters[] = $resolvedArgs[$resolvedIndex++] ?? null; + } + } + + return $parameters; } public function getSubscribedSignals(): array diff --git a/vendor/symfony/console/Command/TraceableCommand.php b/vendor/symfony/console/Command/TraceableCommand.php index 2cf190e26..787d311c2 100644 --- a/vendor/symfony/console/Command/TraceableCommand.php +++ b/vendor/symfony/console/Command/TraceableCommand.php @@ -323,7 +323,7 @@ final class TraceableCommand extends Command protected function interact(InputInterface $input, OutputInterface $output): void { - if (!$this->isInteractive = Command::class !== (new \ReflectionMethod($this->command, 'interact'))->getDeclaringClass()->getName()) { + if (!$this->isInteractive = Command::class !== (new \ReflectionMethod($this->command, 'interact'))->class) { return; } diff --git a/vendor/symfony/console/ConsoleBundle.php b/vendor/symfony/console/ConsoleBundle.php new file mode 100644 index 000000000..f4a9e9293 --- /dev/null +++ b/vendor/symfony/console/ConsoleBundle.php @@ -0,0 +1,95 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console; + +use Symfony\Component\Config\Resource\ClassExistenceResource; +use Symfony\Component\Console\ArgumentResolver\ValueResolver\ValueResolverInterface; +use Symfony\Component\Console\Attribute\AsCommand; +use Symfony\Component\Console\Attribute\AsTargetedValueResolver; +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\DependencyInjection\AddConsoleCommandPass; +use Symfony\Component\Console\DependencyInjection\ConsoleArgumentValueResolverPass; +use Symfony\Component\Console\DependencyInjection\RegisterCommandArgumentLocatorsPass; +use Symfony\Component\Console\DependencyInjection\RemoveEmptyCommandArgumentLocatorsPass; +use Symfony\Component\DependencyInjection\ChildDefinition; +use Symfony\Component\DependencyInjection\Compiler\PassConfig; +use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Kernel\AbstractBundle; +use Symfony\Component\DependencyInjection\Kernel\RequiredBundle; +use Symfony\Component\DependencyInjection\Kernel\ServicesBundle; +use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; +use Symfony\Component\Dotenv\Command\DebugCommand as DotenvDebugCommand; +use Symfony\Component\EventDispatcher\DependencyInjection\AddEventAliasesPass; +use Symfony\Component\EventDispatcher\EventDispatcherInterface; + +#[RequiredBundle(ServicesBundle::class)] +class ConsoleBundle extends AbstractBundle +{ + public function getPath(): string + { + return $this->path ??= __DIR__; + } + + public function build(ContainerBuilder $container): void + { + $this->addCompilerPassIfExists($container, AddEventAliasesPass::class, [ConsoleEvents::ALIASES, [], [ConsoleEvents::COMMAND, ConsoleEvents::TERMINATE, ConsoleEvents::ERROR]]); + $container->addCompilerPass(new RegisterCommandArgumentLocatorsPass()); + $container->addCompilerPass(new RemoveEmptyCommandArgumentLocatorsPass(), PassConfig::TYPE_BEFORE_REMOVING); + $container->addCompilerPass(new ConsoleArgumentValueResolverPass()); + $container->addCompilerPass(new AddConsoleCommandPass(), PassConfig::TYPE_BEFORE_REMOVING); + } + + public function loadExtension(array $config, ContainerConfigurator $configurator, ContainerBuilder $container): void + { + $configurator->import('Resources/config/console.php'); + + $container->registerForAutoconfiguration(Command::class) + ->addTag('console.command') + ->addTag('console.command.service_arguments'); + $container->registerForAutoconfiguration(ValueResolverInterface::class) + ->addTag('console.argument_value_resolver'); + $container->registerAttributeForAutoconfiguration(AsCommand::class, static function (ChildDefinition $definition, AsCommand $attribute, \ReflectionClass|\ReflectionMethod $reflector) { + $tagAttributes = [ + 'command' => $attribute->name, + 'description' => $attribute->description, + 'help' => $attribute->help ?? null, + ]; + + if ($reflector instanceof \ReflectionMethod) { + $tagAttributes['method'] = $reflector->getName(); + } + + $definition->addTag('console.command', $tagAttributes); + $definition->addTag('console.command.service_arguments'); + }); + $container->registerAttributeForAutoconfiguration(AsTargetedValueResolver::class, static function (ChildDefinition $definition, AsTargetedValueResolver $attribute): void { + $definition->addTag('console.targeted_value_resolver', $attribute->name ? ['name' => $attribute->name] : []); + }); + + if (!class_exists(DotenvDebugCommand::class)) { + $container->removeDefinition('console.command.dotenv_debug'); + } + + if (!interface_exists(EventDispatcherInterface::class)) { + $container->removeDefinition('console.error_listener'); + } + } + + private function addCompilerPassIfExists(ContainerBuilder $container, string $class, array $arguments = []): void + { + $container->addResource(new ClassExistenceResource($class)); + + if (class_exists($class)) { + $container->addCompilerPass(new $class(...$arguments)); + } + } +} diff --git a/vendor/symfony/console/ConsoleEvents.php b/vendor/symfony/console/ConsoleEvents.php index 6ae8f32b8..d3b2101d8 100644 --- a/vendor/symfony/console/ConsoleEvents.php +++ b/vendor/symfony/console/ConsoleEvents.php @@ -15,6 +15,7 @@ use Symfony\Component\Console\Event\ConsoleCommandEvent; use Symfony\Component\Console\Event\ConsoleErrorEvent; use Symfony\Component\Console\Event\ConsoleSignalEvent; use Symfony\Component\Console\Event\ConsoleTerminateEvent; +use Symfony\Component\Console\Event\QuestionAnsweredEvent; /** * Contains all events dispatched by an Application. @@ -58,6 +59,14 @@ final class ConsoleEvents */ public const ERROR = 'console.error'; + /** + * The QUESTION_ANSWERED event allows you to validate user input + * using Symfony Validator constraints. + * + * @Event("Symfony\Component\Console\Event\QuestionAnsweredEvent") + */ + public const QUESTION_ANSWERED = 'console.question_answered'; + /** * Event aliases. * @@ -68,5 +77,6 @@ final class ConsoleEvents ConsoleErrorEvent::class => self::ERROR, ConsoleSignalEvent::class => self::SIGNAL, ConsoleTerminateEvent::class => self::TERMINATE, + QuestionAnsweredEvent::class => self::QUESTION_ANSWERED, ]; } diff --git a/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php b/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php index 3198f26eb..aa2f42d01 100644 --- a/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php +++ b/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php @@ -19,6 +19,7 @@ use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass; use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\TypedReference; @@ -32,12 +33,18 @@ class AddConsoleCommandPass implements CompilerPassInterface { public function process(ContainerBuilder $container): void { - $commandServices = $container->findTaggedServiceIds('console.command', true); + $commandServices = []; $lazyCommandMap = []; $lazyCommandRefs = []; $serviceIds = []; - foreach ($commandServices as $id => $tags) { + foreach ($container->findTaggedServiceIds('console.command', true) as $id => $tags) { + foreach ($tags as $tag) { + $commandServices[$id][$tag['method'] ?? '__invoke'][] = $tag; + } + } + + foreach ($commandServices as $id => $commands) { $definition = $container->getDefinition($id); $class = $container->getParameterBag()->resolveValue($definition->getClass()); @@ -45,111 +52,8 @@ class AddConsoleCommandPass implements CompilerPassInterface throw new InvalidArgumentException(\sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id)); } - if (!$r->isSubclassOf(Command::class)) { - if (!$r->hasMethod('__invoke')) { - throw new InvalidArgumentException(\sprintf('The service "%s" tagged "%s" must either be a subclass of "%s" or have an "__invoke()" method.', $id, 'console.command', Command::class)); - } - - $invokableRef = new Reference($id); - $definition = $container->register($id .= '.command', $class = Command::class) - ->addMethodCall('setCode', [$invokableRef]); - } else { - $invokableRef = null; - } - - $definition->addTag('container.no_preload'); - - /** @var AsCommand|null $attribute */ - $attribute = ($r->getAttributes(AsCommand::class)[0] ?? null)?->newInstance(); - - if (Command::class !== (new \ReflectionMethod($class, 'getDefaultName'))->class) { - trigger_deprecation('symfony/console', '7.3', 'Overriding "Command::getDefaultName()" in "%s" is deprecated and will be removed in Symfony 8.0, use the #[AsCommand] attribute instead.', $class); - - $defaultName = $class::getDefaultName(); - } else { - $defaultName = $attribute?->name; - } - - $aliases = str_replace('%', '%%', $tags[0]['command'] ?? $defaultName ?? ''); - $aliases = explode('|', $aliases); - $commandName = array_shift($aliases); - - if ($isHidden = '' === $commandName) { - $commandName = array_shift($aliases); - } - - if (null === $commandName) { - if ($definition->isPrivate() || $definition->hasTag('container.private')) { - $commandId = 'console.command.public_alias.'.$id; - $container->setAlias($commandId, $id)->setPublic(true); - $id = $commandId; - } - $serviceIds[] = $id; - - continue; - } - - $description = $tags[0]['description'] ?? null; - $help = $tags[0]['help'] ?? null; - $usages = $tags[0]['usages'] ?? null; - - unset($tags[0]); - $lazyCommandMap[$commandName] = $id; - $lazyCommandRefs[$id] = new TypedReference($id, $class); - - foreach ($aliases as $alias) { - $lazyCommandMap[$alias] = $id; - } - - foreach ($tags as $tag) { - if (isset($tag['command'])) { - $aliases[] = $tag['command']; - $lazyCommandMap[$tag['command']] = $id; - } - - $description ??= $tag['description'] ?? null; - $help ??= $tag['help'] ?? null; - $usages ??= $tag['usages'] ?? null; - } - - $definition->addMethodCall('setName', [$commandName]); - - if ($aliases) { - $definition->addMethodCall('setAliases', [$aliases]); - } - - if ($isHidden) { - $definition->addMethodCall('setHidden', [true]); - } - - if ($help && $invokableRef) { - $definition->addMethodCall('setHelp', [str_replace('%', '%%', $help)]); - } - - if ($usages) { - foreach ($usages as $usage) { - $definition->addMethodCall('addUsage', [$usage]); - } - } - - if (!$description) { - if (Command::class !== (new \ReflectionMethod($class, 'getDefaultDescription'))->class) { - trigger_deprecation('symfony/console', '7.3', 'Overriding "Command::getDefaultDescription()" in "%s" is deprecated and will be removed in Symfony 8.0, use the #[AsCommand] attribute instead.', $class); - - $description = $class::getDefaultDescription(); - } else { - $description = $attribute?->description; - } - } - - if ($description) { - $escapedDescription = str_replace('%', '%%', $description); - $definition->addMethodCall('setDescription', [$escapedDescription]); - - $container->register('.'.$id.'.lazy', LazyCommand::class) - ->setArguments([$commandName, $aliases, $escapedDescription, $isHidden, new ServiceClosureArgument($lazyCommandRefs[$id])]); - - $lazyCommandRefs[$id] = new Reference('.'.$id.'.lazy'); + foreach ($commands as $tags) { + $this->registerCommand($container, $r, $id, $class, $tags, $definition, $serviceIds, $lazyCommandMap, $lazyCommandRefs); } } @@ -161,4 +65,129 @@ class AddConsoleCommandPass implements CompilerPassInterface $container->setParameter('console.command.ids', $serviceIds); } + + private function registerCommand(ContainerBuilder $container, \ReflectionClass $reflection, string $id, string $class, array $tags, Definition $definition, array &$serviceIds, array &$lazyCommandMap, array &$lazyCommandRefs): void + { + if (!$reflection->isSubclassOf(Command::class)) { + $method = $tags[0]['method'] ?? '__invoke'; + + if (!$reflection->hasMethod($method)) { + throw new InvalidArgumentException(\sprintf('The service "%s" tagged "%s" must either be a subclass of "%s" or have an "%s()" method.', $id, 'console.command', Command::class, $method)); + } + + $reflection = $reflection->getMethod($method); + + if (!$reflection->isPublic() || $reflection->isStatic()) { + throw new InvalidArgumentException(\sprintf('The method "%s::%s()" must be public and non-static to be used as a console command.', $class, $method)); + } + + if ('__invoke' === $method) { + $callableRef = new Reference($id); + $id .= '.command'; + } else { + $callableRef = [new Reference($id), $method]; + $id .= '.'.$method.'.command'; + } + $class = Command::class; + + $closureDefinition = new Definition(\Closure::class) + ->setFactory([\Closure::class, 'fromCallable']) + ->setArguments([$callableRef]); + + $definition = $container->register($id, $class) + ->addMethodCall('setCode', [$closureDefinition]); + } elseif (isset($tags[0]['method'])) { + throw new InvalidArgumentException(\sprintf('The service "%s" tagged "console.command" cannot define a method command when it is a subclass of "%s".', $id, Command::class)); + } + + $definition->addTag('container.no_preload'); + + $attribute = $this->getCommandAttribute($reflection); + $defaultName = $attribute?->name; + $aliases = str_replace('%', '%%', $tags[0]['command'] ?? $defaultName ?? ''); + $aliases = explode('|', $aliases); + $commandName = array_shift($aliases); + + if ($isHidden = '' === $commandName) { + $commandName = array_shift($aliases); + } + + if (null === $commandName) { + if ($definition->isPrivate() || $definition->hasTag('container.private')) { + $commandId = 'console.command.public_alias.'.$id; + $container->setAlias($commandId, $id)->setPublic(true); + $id = $commandId; + } + $serviceIds[] = $id; + + return; + } + + $description = $tags[0]['description'] ?? null; + $help = $tags[0]['help'] ?? null; + $usages = $tags[0]['usages'] ?? null; + + unset($tags[0]); + $lazyCommandMap[$commandName] = $id; + $lazyCommandRefs[$id] = new TypedReference($id, $class); + + foreach ($aliases as $alias) { + $lazyCommandMap[$alias] = $id; + } + + foreach ($tags as $tag) { + if (isset($tag['command'])) { + $aliases[] = $tag['command']; + $lazyCommandMap[$tag['command']] = $id; + } + + $description ??= $tag['description'] ?? null; + $help ??= $tag['help'] ?? null; + $usages ??= $tag['usages'] ?? null; + } + + $definition->addMethodCall('setName', [$commandName]); + + if ($aliases) { + $definition->addMethodCall('setAliases', [$aliases]); + } + + if ($isHidden) { + $definition->addMethodCall('setHidden', [true]); + } + + if ($help ??= $attribute?->help) { + $definition->addMethodCall('setHelp', [str_replace('%', '%%', $help)]); + } + + if ($usages ??= $attribute?->usages) { + foreach ($usages as $usage) { + $definition->addMethodCall('addUsage', [$usage]); + } + } + + if ($description ??= $attribute?->description) { + $escapedDescription = str_replace('%', '%%', $description); + $definition->addMethodCall('setDescription', [$escapedDescription]); + + $container->register('.'.$id.'.lazy', LazyCommand::class) + ->setArguments([$commandName, $aliases, $escapedDescription, $isHidden, new ServiceClosureArgument($lazyCommandRefs[$id])]); + + $lazyCommandRefs[$id] = new Reference('.'.$id.'.lazy'); + } + } + + private function getCommandAttribute(\ReflectionClass|\ReflectionMethod $reflection): ?AsCommand + { + /** @var AsCommand|null $attribute */ + if ($attribute = ($reflection->getAttributes(AsCommand::class)[0] ?? null)?->newInstance()) { + return $attribute; + } + + if ($reflection instanceof \ReflectionMethod && '__invoke' === $reflection->getName()) { + return ($reflection->getDeclaringClass()->getAttributes(AsCommand::class)[0] ?? null)?->newInstance(); + } + + return null; + } } diff --git a/vendor/symfony/console/DependencyInjection/ConsoleArgumentValueResolverPass.php b/vendor/symfony/console/DependencyInjection/ConsoleArgumentValueResolverPass.php new file mode 100644 index 000000000..8531ea150 --- /dev/null +++ b/vendor/symfony/console/DependencyInjection/ConsoleArgumentValueResolverPass.php @@ -0,0 +1,69 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\DependencyInjection; + +use Symfony\Component\Console\ArgumentResolver\ValueResolver\TraceableValueResolver; +use Symfony\Component\DependencyInjection\Argument\IteratorArgument; +use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; +use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; +use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use Symfony\Component\DependencyInjection\Compiler\PriorityTaggedServiceTrait; +use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Reference; + +/** + * Gathers and configures the console argument value resolvers. + * + * @author Robin Chalas + */ +class ConsoleArgumentValueResolverPass implements CompilerPassInterface +{ + use PriorityTaggedServiceTrait; + + public function process(ContainerBuilder $container): void + { + if (!$container->hasDefinition('console.argument_resolver')) { + return; + } + + $definitions = $container->getDefinitions(); + $namedResolvers = $this->findAndSortTaggedServices(new TaggedIteratorArgument('console.targeted_value_resolver', 'name', needsIndexes: true), $container); + $resolvers = $this->findAndSortTaggedServices(new TaggedIteratorArgument('console.argument_value_resolver', 'name', needsIndexes: true), $container); + + foreach ($resolvers as $name => $resolver) { + if ($definitions[(string) $resolver]->hasTag('console.targeted_value_resolver')) { + unset($resolvers[$name]); + } else { + $namedResolvers[$name] ??= clone $resolver; + } + } + + if ($container->getParameter('kernel.debug') && $container->has('debug.stopwatch')) { + foreach ($resolvers as $name => $resolver) { + $resolvers[$name] = new Reference('.debug.console.value_resolver.'.$resolver); + $container->register('.debug.console.value_resolver.'.$resolver, TraceableValueResolver::class) + ->setArguments([$resolver, new Reference('debug.stopwatch')]); + } + foreach ($namedResolvers as $name => $resolver) { + $namedResolvers[$name] = new Reference('.debug.console.value_resolver.'.$resolver); + $container->register('.debug.console.value_resolver.'.$resolver, TraceableValueResolver::class) + ->setArguments([$resolver, new Reference('debug.stopwatch')]); + } + } + + $container + ->getDefinition('console.argument_resolver') + ->replaceArgument(0, new IteratorArgument(array_values($resolvers))) + ->setArgument(1, new ServiceLocatorArgument($namedResolvers)) + ; + } +} diff --git a/vendor/symfony/console/DependencyInjection/RegisterCommandArgumentLocatorsPass.php b/vendor/symfony/console/DependencyInjection/RegisterCommandArgumentLocatorsPass.php new file mode 100644 index 000000000..2d68f7bce --- /dev/null +++ b/vendor/symfony/console/DependencyInjection/RegisterCommandArgumentLocatorsPass.php @@ -0,0 +1,190 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\DependencyInjection; + +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\RawInputInterface; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\DependencyInjection\Attribute\Autowire; +use Symfony\Component\DependencyInjection\Attribute\AutowireCallable; +use Symfony\Component\DependencyInjection\Attribute\Target; +use Symfony\Component\DependencyInjection\ChildDefinition; +use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass; +use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\ContainerInterface; +use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; +use Symfony\Component\DependencyInjection\Reference; +use Symfony\Component\DependencyInjection\TypedReference; +use Symfony\Component\VarExporter\ProxyHelper; + +/** + * Creates the service-locators required by ServiceValueResolver for commands. + * + * @author Nicolas Grekas + * @author Robin Chalas + */ +final class RegisterCommandArgumentLocatorsPass implements CompilerPassInterface +{ + public function process(ContainerBuilder $container): void + { + if (!$container->hasDefinition('console.argument_resolver.service')) { + return; + } + + $parameterBag = $container->getParameterBag(); + $serviceLocators = []; + + foreach ($container->findTaggedServiceIds('console.command.service_arguments', true) as $id => $tags) { + $def = $container->getDefinition($id); + $class = $def->getClass(); + $autowire = $def->isAutowired(); + $bindings = $def->getBindings(); + + // Resolve service class, taking parent definitions into account + while ($def instanceof ChildDefinition) { + $def = $container->findDefinition($def->getParent()); + $class = $class ?: $def->getClass(); + $bindings += $def->getBindings(); + } + $class = $parameterBag->resolveValue($class); + + if (!$r = $container->getReflectionClass($class)) { + throw new InvalidArgumentException(\sprintf('Class "%s" used for command "%s" cannot be found.', $class, $id)); + } + + // Get all console.command tags to find command names and their methods + $commandTags = $container->getDefinition($id)->getTag('console.command'); + $manualArguments = []; + + // Validate and collect explicit per-arguments service references + foreach ($tags as $attributes) { + if (!isset($attributes['argument']) && !isset($attributes['id'])) { + $autowire = true; + continue; + } + foreach (['argument', 'id'] as $k) { + if (!isset($attributes[$k][0])) { + throw new InvalidArgumentException(\sprintf('Missing "%s" attribute on tag "console.command.service_arguments" %s for service "%s".', $k, json_encode($attributes, \JSON_UNESCAPED_UNICODE), $id)); + } + } + + $manualArguments[$attributes['argument']] = $attributes['id']; + } + + foreach ($commandTags as $commandTag) { + $commandName = $commandTag['command'] ?? null; + + if (!$commandName) { + continue; + } + + $methodName = $commandTag['method'] ?? '__invoke'; + + if (!$r->hasMethod($methodName)) { + continue; + } + + $method = $r->getMethod($methodName); + $arguments = []; + $erroredIds = 0; + + foreach ($method->getParameters() as $p) { + $type = preg_replace('/(^|[(|&])\\\\/', '\1', $target = ltrim(ProxyHelper::exportType($p) ?? '', '?')); + $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; + $autowireAttributes = null; + $parsedName = $p->name; + $k = null; + + if (isset($manualArguments[$p->name])) { + $target = $manualArguments[$p->name]; + if ('?' !== $target[0]) { + $invalidBehavior = ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE; + } elseif ('' === $target = substr($target, 1)) { + throw new InvalidArgumentException(\sprintf('A "console.command.service_arguments" tag must have non-empty "id" attributes for service "%s".', $id)); + } elseif ($p->allowsNull() && !$p->isOptional()) { + $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE; + } + } elseif (isset($bindings[$bindingName = $type.' $'.$name = Target::parseName($p, $k, $parsedName)]) + || isset($bindings[$bindingName = $type.' $'.$parsedName]) + || isset($bindings[$bindingName = '$'.$name]) + || isset($bindings[$bindingName = $type]) + ) { + $binding = $bindings[$bindingName]; + + [$bindingValue, $bindingId, , $bindingType, $bindingFile] = $binding->getValues(); + $binding->setValues([$bindingValue, $bindingId, true, $bindingType, $bindingFile]); + + $arguments[$p->name] = $bindingValue; + + continue; + } elseif (!$autowire || (!($autowireAttributes = $p->getAttributes(Autowire::class, \ReflectionAttribute::IS_INSTANCEOF)) && (!$type || '\\' !== $target[0]))) { + continue; + } elseif (!$autowireAttributes && is_subclass_of($type, \UnitEnum::class)) { + // Do not attempt to register enum typed arguments if not already present in bindings + continue; + } elseif (!$p->allowsNull()) { + $invalidBehavior = $autowireAttributes ? ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE : ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE; + } + + // Skip console-specific types that are resolved by other resolvers + if (\in_array($type, [InputInterface::class, RawInputInterface::class, OutputInterface::class], true)) { + continue; + } + + if ($autowireAttributes) { + $attribute = $autowireAttributes[0]->newInstance(); + $value = $parameterBag->resolveValue($attribute->value); + + if ($attribute instanceof AutowireCallable) { + $arguments[$p->name] = $attribute->buildDefinition($value, $type, $p); + } elseif ($value instanceof Reference) { + $arguments[$p->name] = $type ? new TypedReference($value, $type, $invalidBehavior, $p->name) : new Reference($value, $invalidBehavior); + } else { + $arguments[$p->name] = new Reference('.value.'.$container->hash($value)); + $container->register((string) $arguments[$p->name], 'mixed') + ->setFactory('current') + ->addArgument([$value]); + } + + continue; + } + + if ($type && !$p->isOptional() && !$p->allowsNull() && !class_exists($type) && !interface_exists($type, false)) { + $message = \sprintf('Cannot determine command argument for "%s::%s()": the $%s argument is type-hinted with the non-existent class or interface: "%s".', $class, $method->name, $p->name, $type); + + // See if the type-hint lives in the same namespace as the command + if (0 === strncmp($type, $class, strrpos($class, '\\'))) { + $message .= ' Did you forget to add a use statement?'; + } + + $container->register($erroredId = '.errored.'.$container->hash($message), $type) + ->addError($message); + + $arguments[$p->name] = new Reference($erroredId, ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE); + ++$erroredIds; + } else { + $target = preg_replace('/(^|[(|&])\\\\/', '\1', $target); + $arguments[$p->name] = $type ? new TypedReference($target, $type, $invalidBehavior, Target::parseName($p)) : new Reference($target, $invalidBehavior); + } + } + + if ($arguments) { + $serviceLocators[$commandName] = ServiceLocatorTagPass::register($container, $arguments, \count($arguments) !== $erroredIds ? $commandName : null); + } + } + } + + $container->getDefinition('console.argument_resolver.service') + ->replaceArgument(0, ServiceLocatorTagPass::register($container, $serviceLocators)); + } +} diff --git a/vendor/symfony/console/DependencyInjection/RemoveEmptyCommandArgumentLocatorsPass.php b/vendor/symfony/console/DependencyInjection/RemoveEmptyCommandArgumentLocatorsPass.php new file mode 100644 index 000000000..64c9232a1 --- /dev/null +++ b/vendor/symfony/console/DependencyInjection/RemoveEmptyCommandArgumentLocatorsPass.php @@ -0,0 +1,61 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\DependencyInjection; + +use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use Symfony\Component\DependencyInjection\ContainerBuilder; + +/** + * Removes empty service-locators registered for ServiceValueResolver for commands. + * + * @author Robin Chalas + */ +final class RemoveEmptyCommandArgumentLocatorsPass implements CompilerPassInterface +{ + public function process(ContainerBuilder $container): void + { + if (!$container->hasDefinition('console.argument_resolver.service')) { + return; + } + + $serviceResolverDef = $container->getDefinition('console.argument_resolver.service'); + $commandLocatorRef = $serviceResolverDef->getArgument(0); + + if (!$commandLocatorRef) { + return; + } + + $commandLocator = $container->getDefinition((string) $commandLocatorRef); + + if ($commandLocator->getFactory()) { + $commandLocator = $container->getDefinition($commandLocator->getFactory()[0]); + } + + $commands = $commandLocator->getArgument(0); + + foreach ($commands as $commandName => $argumentRef) { + $argumentLocator = $container->getDefinition((string) $argumentRef->getValues()[0]); + + if ($argumentLocator->getFactory()) { + $argumentLocator = $container->getDefinition($argumentLocator->getFactory()[0]); + } + + if (!$argumentLocator->getArgument(0)) { + $reason = \sprintf('Removing service-argument resolver for command "%s": no corresponding services exist for the referenced types.', $commandName); + unset($commands[$commandName]); + $container->log($this, $reason); + } + } + + $commandLocator->replaceArgument(0, $commands); + } +} diff --git a/vendor/symfony/console/Event/QuestionAnsweredEvent.php b/vendor/symfony/console/Event/QuestionAnsweredEvent.php new file mode 100644 index 000000000..c3b173d60 --- /dev/null +++ b/vendor/symfony/console/Event/QuestionAnsweredEvent.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Event; + +use Symfony\Contracts\EventDispatcher\Event; + +/** + * Event dispatched when constraint validation is needed for a question. + * + * @author Robin Chalas + */ +class QuestionAnsweredEvent extends Event +{ + private array $violations = []; + + public function __construct( + public readonly mixed $value, + public readonly array $constraints, + ) { + } + + public function addViolation(string $message): void + { + $this->violations[] = $message; + } + + public function getViolations(): array + { + return $this->violations; + } + + public function hasViolations(): bool + { + return (bool) $this->violations; + } +} diff --git a/vendor/symfony/console/EventListener/ValidateQuestionInputListener.php b/vendor/symfony/console/EventListener/ValidateQuestionInputListener.php new file mode 100644 index 000000000..800a4d6ad --- /dev/null +++ b/vendor/symfony/console/EventListener/ValidateQuestionInputListener.php @@ -0,0 +1,44 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\EventListener; + +use Symfony\Component\Console\ConsoleEvents; +use Symfony\Component\Console\Event\QuestionAnsweredEvent; +use Symfony\Component\EventDispatcher\EventSubscriberInterface; +use Symfony\Component\Validator\Validator\ValidatorInterface; + +/** + * Validates Question answers (user input) using the Validator component. + * + * @author Robin Chalas + */ +final class ValidateQuestionInputListener implements EventSubscriberInterface +{ + public function __construct( + private readonly ValidatorInterface $validator, + ) { + } + + public function onQuestionAnswered(QuestionAnsweredEvent $event): void + { + $violations = $this->validator->validate($event->value, $event->constraints); + + foreach ($violations as $violation) { + $event->addViolation($violation->getMessage()); + } + } + + public static function getSubscribedEvents(): array + { + return [ConsoleEvents::QUESTION_ANSWERED => 'onQuestionAnswered']; + } +} diff --git a/vendor/symfony/console/Exception/InputValidationFailedException.php b/vendor/symfony/console/Exception/InputValidationFailedException.php new file mode 100644 index 000000000..5c6a98e46 --- /dev/null +++ b/vendor/symfony/console/Exception/InputValidationFailedException.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Exception; + +use Symfony\Component\Validator\ConstraintViolationListInterface; + +/** + * @author Robin Chalas + */ +final class InputValidationFailedException extends RuntimeException +{ + public function __construct( + string $message, + private readonly ConstraintViolationListInterface $violations, + ) { + parent::__construct($message); + } + + public function getViolations(): ConstraintViolationListInterface + { + return $this->violations; + } +} diff --git a/vendor/symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php b/vendor/symfony/console/Exception/InvalidFileException.php similarity index 55% rename from vendor/symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php rename to vendor/symfony/console/Exception/InvalidFileException.php index 75bcd267a..b950117d7 100644 --- a/vendor/symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php +++ b/vendor/symfony/console/Exception/InvalidFileException.php @@ -9,8 +9,11 @@ * file that was distributed with this source code. */ -if (\PHP_VERSION_ID < 80300) { - class DateInvalidTimeZoneException extends DateException - { - } +namespace Symfony\Component\Console\Exception; + +/** + * @author Robin Chalas + */ +class InvalidFileException extends \RuntimeException implements ExceptionInterface +{ } diff --git a/vendor/symfony/console/Helper/FileInputHelper.php b/vendor/symfony/console/Helper/FileInputHelper.php new file mode 100644 index 000000000..21cfd0aed --- /dev/null +++ b/vendor/symfony/console/Helper/FileInputHelper.php @@ -0,0 +1,223 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Helper; + +use Symfony\Component\Console\Exception\InvalidFileException; +use Symfony\Component\Console\Exception\MissingInputException; +use Symfony\Component\Console\Formatter\OutputFormatter; +use Symfony\Component\Console\Input\File\InputFile; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Question\FileQuestion; +use Symfony\Component\Console\Terminal; +use Symfony\Component\Console\Terminal\Image\ImageProtocolInterface; +use Symfony\Component\Console\Terminal\Image\ITerm2Protocol; +use Symfony\Component\Console\Terminal\Image\KittyGraphicsProtocol; + +/** + * Orchestrates file input handling through paste detection or path input. + * + * @author Robin Chalas + * + * @internal + */ +final class FileInputHelper +{ + private const BPM_ENABLE = "\x1b[?2004h"; + private const BPM_DISABLE = "\x1b[?2004l"; + private const PASTE_START = "\x1b[200~"; + private const PASTE_END = "\x1b[201~"; + private const MAX_PASTE_BYTES = 16 * 1024 * 1024; + + private ?ImageProtocolInterface $protocol = null; + + /** + * @param resource $inputStream + */ + public function readFileInput($inputStream, OutputInterface $output, FileQuestion $question): InputFile + { + if ($canPaste = $question->isPasteAllowed() && Terminal::supportsImageProtocol() && Terminal::hasSttyAvailable()) { + $this->protocol = $this->detectProtocol(); + } + + $file = null; + $inputHelper = null; + + try { + if ($canPaste) { + $inputHelper = new TerminalInputHelper($inputStream); + $output->write(self::BPM_ENABLE); + shell_exec('stty -icanon -echo'); + + $file = $this->readWithPasteDetection($inputStream, $output, $question, $inputHelper); + } elseif ($question->isPathAllowed()) { + $file = $this->readPathInput($inputStream); + } else { + throw new MissingInputException('Terminal does not support image paste and path input is disabled.'); + } + } finally { + if ($canPaste) { + $output->write(self::BPM_DISABLE); + $inputHelper?->finish(); + } + } + + if (!$file->isValid()) { + throw new InvalidFileException(\sprintf('File "%s" is not valid or readable.', $file->getPathname())); + } + + $this->displayFile($output, $file); + + return $file; + } + + public function displayFile(OutputInterface $output, InputFile $file): void + { + $link = \sprintf('%s', OutputFormatter::escape($file->getRealPath()), OutputFormatter::escape($file->getFilename())); + + if ($output->isVeryVerbose()) { + $output->writeln(\sprintf('%s %s (%s, %s)', "\u{1F4CE}", $link, OutputFormatter::escape($file->getMimeType() ?? 'unknown'), $file->getHumanReadableSize())); + } else { + $output->writeln(\sprintf('%s %s', "\u{1F4CE}", $link)); + } + + if (Terminal::supportsImageProtocol() && $this->isDisplayableImage($file)) { + $this->displayThumbnail($output, $file); + } + } + + /** + * @param resource $inputStream + */ + private function readWithPasteDetection($inputStream, OutputInterface $output, FileQuestion $question, TerminalInputHelper $inputHelper): InputFile + { + $buffer = ''; + $inPaste = false; + $pasteBuffer = ''; + + while (!feof($inputStream)) { + $inputHelper->waitForInput(); + $char = fread($inputStream, 1); + + if (false === $char || '' === $char) { + if ('' === $buffer && '' === $pasteBuffer) { + throw new MissingInputException('Aborted.'); + } + break; + } + + $buffer .= $char; + + if (\strlen($buffer) > self::MAX_PASTE_BYTES) { + throw new InvalidFileException(\sprintf('Pasted input exceeds the maximum allowed size of %d bytes.', self::MAX_PASTE_BYTES)); + } + + if (!$inPaste && str_ends_with($buffer, self::PASTE_START)) { + $inPaste = true; + $buffer = substr($buffer, 0, -\strlen(self::PASTE_START)); + continue; + } + + if ($inPaste && str_ends_with($buffer, self::PASTE_END)) { + $pasteBuffer = substr($buffer, 0, -\strlen(self::PASTE_END)); + break; + } + + if (!$inPaste && ("\n" === $char || "\r" === $char)) { + $buffer = rtrim($buffer, "\r\n"); + break; + } + } + + if ('' !== $pasteBuffer) { + if (null !== $this->protocol && $this->protocol->detectPastedImage($pasteBuffer)) { + $decoded = $this->protocol->decode($pasteBuffer); + if ('' !== $decoded['data']) { + return InputFile::fromData($decoded['data'], $decoded['format']); + } + } + + $path = trim($pasteBuffer); + if ('' !== $path && $question->isPathAllowed()) { + return InputFile::fromPath($path); + } + } + + $path = trim($buffer); + if ('' !== $path && $question->isPathAllowed()) { + return InputFile::fromPath($path); + } + + throw new MissingInputException('No file input provided.'); + } + + /** + * @param resource $inputStream + */ + private function readPathInput($inputStream): InputFile + { + if (!$isBlocked = stream_get_meta_data($inputStream)['blocked'] ?? true) { + stream_set_blocking($inputStream, true); + } + + $path = fgets($inputStream); + + if (!$isBlocked) { + stream_set_blocking($inputStream, false); + } + + if (false === $path) { + throw new MissingInputException('Aborted.'); + } + + if ('' === $path = trim($path)) { + throw new MissingInputException('No file path provided.'); + } + + return InputFile::fromPath($path); + } + + private function detectProtocol(): ?ImageProtocolInterface + { + if (Terminal::supportsKittyGraphics()) { + return new KittyGraphicsProtocol(); + } + + if (Terminal::supportsITerm2Images()) { + return new ITerm2Protocol(); + } + + return null; + } + + private function isDisplayableImage(InputFile $file): bool + { + if (null === $mimeType = $file->getMimeType()) { + return false; + } + + return str_starts_with($mimeType, 'image/'); + } + + private function displayThumbnail(OutputInterface $output, InputFile $file): void + { + try { + $contents = $file->getContents(); + } catch (InvalidFileException) { + return; + } + + $protocol = Terminal::supportsKittyGraphics() ? new KittyGraphicsProtocol() : new ITerm2Protocol(); + + $output->write($protocol->encode($contents, 16)); + $output->writeln(''); + } +} diff --git a/vendor/symfony/console/Helper/Helper.php b/vendor/symfony/console/Helper/Helper.php index 46e7e2f58..f6f5c90f5 100644 --- a/vendor/symfony/console/Helper/Helper.php +++ b/vendor/symfony/console/Helper/Helper.php @@ -41,10 +41,18 @@ abstract class Helper implements HelperInterface { $string ??= ''; - if (preg_match('//u', $string)) { - $string = preg_replace('/[\p{Cc}\x7F]++/u', '', $string, -1, $count); + if ('' === $string) { + return 0; + } - return (new UnicodeString($string))->width(false) + $count; + // Fast path for ASCII-only strings (no multi-byte, no control chars except common ones) + if (!preg_match('/[^\x20-\x7E]/', $string)) { + return \strlen($string); + } + + // Single PCRE call: returns null if string is not valid UTF-8 + if (null !== $clean = preg_replace('/[\p{Cc}\x7F]++/u', '', $string, -1, $count)) { + return (new UnicodeString($clean))->width(false) + $count; } if (false === $encoding = mb_detect_encoding($string, null, true)) { @@ -152,10 +160,16 @@ abstract class Helper implements HelperInterface public static function removeDecoration(OutputFormatterInterface $formatter, ?string $string): string { + $string ??= ''; + + if (!str_contains($string, '<') && !str_contains($string, "\033")) { + return $string; + } + $isDecorated = $formatter->isDecorated(); $formatter->setDecorated(false); // remove <...> formatting - $string = $formatter->format($string ?? ''); + $string = $formatter->format($string); // remove already formatted characters $string = preg_replace("/\033\[[^m]*m/", '', $string ?? ''); // remove terminal hyperlinks diff --git a/vendor/symfony/console/Helper/ProgressBar.php b/vendor/symfony/console/Helper/ProgressBar.php index c742e2b3b..e9cfc0659 100644 --- a/vendor/symfony/console/Helper/ProgressBar.php +++ b/vendor/symfony/console/Helper/ProgressBar.php @@ -60,9 +60,13 @@ final class ProgressBar private ?string $previousMessage = null; private Cursor $cursor; private array $placeholders = []; + private ?int $oscProgressState = null; + private ?int $oscProgressPercent = null; private static array $formatters; private static array $formats; + private static \WeakMap $activeInstances; + private static int $pausedCount = 0; /** * @param int $max Maximum steps (0 if unknown) @@ -358,6 +362,11 @@ final class ProgressBar $this->setMaxSteps($max); } + if ($this->output->isDecorated()) { + self::$activeInstances ??= new \WeakMap(); + self::$activeInstances[$this] = true; + } + $this->display(); } @@ -441,12 +450,12 @@ final class ProgressBar $this->max = $this->step; } - if (($this->step === $this->max || null === $this->max) && !$this->overwrite) { - // prevent double 100% output - return; + if (!(($this->step === $this->max || null === $this->max) && !$this->overwrite)) { + $this->setProgress($this->max ?? $this->step); } - $this->setProgress($this->max ?? $this->step); + unset(self::$activeInstances[$this]); + $this->writeOscProgressReset(); } /** @@ -463,6 +472,7 @@ final class ProgressBar } $this->overwrite($this->buildLine()); + $this->writeOscProgress(); } /** @@ -483,6 +493,8 @@ final class ProgressBar } $this->overwrite(''); + unset(self::$activeInstances[$this]); + $this->writeOscProgressReset(); } private function setRealFormat(string $format): void @@ -552,6 +564,108 @@ final class ProgressBar ++$this->writeCount; } + /** + * Pauses the OSC 9;4 taskbar progress indicator on all active progress bars. + * + * Calls are reentrant; each call must be paired with a {@see resumeAll()}. + * Useful when prompting the user for input while a progress bar is running. + */ + public static function pauseAll(): void + { + if (1 !== ++self::$pausedCount) { + return; + } + + foreach (self::$activeInstances ?? [] as $bar => $_) { + $bar->writeOscProgress(); + } + } + + /** + * Counterpart of {@see pauseAll()}. + */ + public static function resumeAll(): void + { + if (0 !== --self::$pausedCount) { + return; + } + + foreach (self::$activeInstances ?? [] as $bar => $_) { + $bar->writeOscProgress(); + } + } + + private function writeOscProgress(): void + { + if (!$this->output->isDecorated()) { + return; + } + + if (null === $this->max) { + $state = 3; + $percent = 0; + } else { + $state = 1; + $percent = (int) floor(max(0.0, min(1.0, $this->percent)) * 100); + } + + if (1 === $state && \count(self::$activeInstances ?? []) > 1) { + // Multiple active determinate bars: collapse to indeterminate so the taskbar + // doesn't flicker between unrelated percentages from each bar. + $state = 3; + $percent = 0; + } + + if (self::$pausedCount > 0) { + $state = 4; + } + + if ($this->oscProgressState === $state && $this->oscProgressPercent === $percent) { + return; + } + + $this->oscProgressState = $state; + $this->oscProgressPercent = $percent; + + $this->writeOscRaw(\sprintf("\033]9;4;%d;%d\033\\", $state, $percent)); + } + + private function writeOscProgressReset(): void + { + if (null === $this->oscProgressState) { + return; + } + + $this->oscProgressState = null; + $this->oscProgressPercent = null; + + if (\count(self::$activeInstances ?? []) > 0) { + // Other bars still active: let them re-evaluate their state instead of clearing the taskbar. + foreach (self::$activeInstances as $bar => $_) { + $bar->writeOscProgress(); + } + + return; + } + + if ($this->output->isDecorated()) { + $this->writeOscRaw("\033]9;4;0;0\033\\"); + } + } + + private function writeOscRaw(string $bytes): void + { + // OSC sequences address the terminal (taskbar progress) and have no display width. + // For ConsoleSectionOutput, bypass section content tracking so line counting stays correct. + if ($this->output instanceof ConsoleSectionOutput) { + fwrite($this->output->getStream(), $bytes); + + return; + } + + $this->output->write($bytes); + } + private function determineBestFormat(): string { return match ($this->output->getVerbosity()) { diff --git a/vendor/symfony/console/Helper/ProgressIndicator.php b/vendor/symfony/console/Helper/ProgressIndicator.php index 3bd6feda2..d749466a6 100644 --- a/vendor/symfony/console/Helper/ProgressIndicator.php +++ b/vendor/symfony/console/Helper/ProgressIndicator.php @@ -129,16 +129,9 @@ class ProgressIndicator /** * Finish the indicator with message. - * - * @param ?string $finishedIndicator */ - public function finish(string $message/* , ?string $finishedIndicator = null */): void + public function finish(string $message, ?string $finishedIndicator = null): void { - $finishedIndicator = 1 < \func_num_args() ? func_get_arg(1) : null; - if (null !== $finishedIndicator && !\is_string($finishedIndicator)) { - throw new \TypeError(\sprintf('Argument 2 passed to "%s()" must be of the type string or null, "%s" given.', __METHOD__, get_debug_type($finishedIndicator))); - } - if (!$this->started) { throw new LogicException('Progress indicator has not yet been started.'); } diff --git a/vendor/symfony/console/Helper/QuestionHelper.php b/vendor/symfony/console/Helper/QuestionHelper.php index 31c46faf6..2ecfa17cf 100644 --- a/vendor/symfony/console/Helper/QuestionHelper.php +++ b/vendor/symfony/console/Helper/QuestionHelper.php @@ -11,7 +11,10 @@ namespace Symfony\Component\Console\Helper; +use Symfony\Component\Console\ConsoleEvents; use Symfony\Component\Console\Cursor; +use Symfony\Component\Console\Event\QuestionAnsweredEvent; +use Symfony\Component\Console\Exception\InvalidArgumentException; use Symfony\Component\Console\Exception\MissingInputException; use Symfony\Component\Console\Exception\RuntimeException; use Symfony\Component\Console\Formatter\OutputFormatter; @@ -22,8 +25,11 @@ use Symfony\Component\Console\Output\ConsoleOutputInterface; use Symfony\Component\Console\Output\ConsoleSectionOutput; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Question\ChoiceQuestion; +use Symfony\Component\Console\Question\FileQuestion; use Symfony\Component\Console\Question\Question; use Symfony\Component\Console\Terminal; +use Symfony\Component\Validator\Validation; +use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; use function Symfony\Component\String\s; @@ -37,6 +43,11 @@ class QuestionHelper extends Helper private static bool $stty = true; private static bool $stdinIsInteractive; + public function __construct( + private ?EventDispatcherInterface $dispatcher = null, + ) { + } + /** * Asks a question to the user. * @@ -57,8 +68,10 @@ class QuestionHelper extends Helper $inputStream = $input instanceof StreamableInputInterface ? $input->getStream() : null; $inputStream ??= \STDIN; + ProgressBar::pauseAll(); + try { - if (!$question->getValidator()) { + if (!$question->getValidator() && !$question->getConstraints()) { return $this->doAsk($inputStream, $output, $question); } @@ -73,6 +86,8 @@ class QuestionHelper extends Helper } return $fallbackOutput; + } finally { + ProgressBar::resumeAll(); } } @@ -98,6 +113,12 @@ class QuestionHelper extends Helper */ private function doAsk($inputStream, OutputInterface $output, Question $question): mixed { + if ($question instanceof FileQuestion) { + $this->writePrompt($output, $question); + + return (new FileInputHelper())->readFileInput($inputStream, $output, $question); + } + $this->writePrompt($output, $question); $autocomplete = $question->getAutocompleterCallback(); @@ -236,6 +257,8 @@ class QuestionHelper extends Helper * * @param resource $inputStream * @param callable(string):string[] $autocomplete + * + * @param-immediately-invoked-callable $autocomplete */ private function autocomplete(OutputInterface $output, Question $question, $inputStream, callable $autocomplete): string { @@ -398,7 +421,7 @@ class QuestionHelper extends Helper */ private function getHiddenResponse(OutputInterface $output, $inputStream, bool $trimmable = true): string { - if ('\\' === \DIRECTORY_SEPARATOR) { + if ('\\' === \DIRECTORY_SEPARATOR && $this->isInteractiveInput($inputStream)) { $exe = __DIR__.'/../Resources/bin/hiddeninput.exe'; // handle code running from a phar @@ -408,7 +431,7 @@ class QuestionHelper extends Helper $exe = $tmpExe; } - $sExec = shell_exec('"'.$exe.'"'); + $sExec = (string) shell_exec('"'.$exe.'"'); $value = $trimmable ? rtrim($sExec) : $sExec; $output->writeln(''); @@ -451,6 +474,8 @@ class QuestionHelper extends Helper * * @param callable $interviewer A callable that will ask for a question and return the result * + * @param-immediately-invoked-callable $interviewer + * * @throws \Exception In case the max number of attempts has been reached and no valid response has been given */ private function validateAttempts(callable $interviewer, OutputInterface $output, Question $question): mixed @@ -464,7 +489,17 @@ class QuestionHelper extends Helper } try { - return $question->getValidator()($interviewer()); + $value = $interviewer(); + + if ($constraints = $question->getConstraints()) { + $this->validateConstraints($value, $constraints); + } + + if ($validator = $question->getValidator()) { + return $validator($value); + } + + return $value; } catch (MissingInputException $e) { throw $error ?? $e; } catch (RuntimeException $e) { @@ -476,6 +511,27 @@ class QuestionHelper extends Helper throw $error; } + private function validateConstraints(mixed $value, array $constraints): void + { + if ($this->dispatcher) { + $event = new QuestionAnsweredEvent($value, $constraints); + $this->dispatcher->dispatch($event, ConsoleEvents::QUESTION_ANSWERED); + + if ($event->hasViolations()) { + throw new InvalidArgumentException($event->getViolations()[0]); + } + + return; + } + + $validator = Validation::createValidator(); + $violations = $validator->validate($value, $constraints); + + if (\count($violations) > 0) { + throw new InvalidArgumentException($violations[0]->getMessage()); + } + } + private function isInteractiveInput($inputStream): bool { if ('php://stdin' !== (stream_get_meta_data($inputStream)['uri'] ?? null)) { diff --git a/vendor/symfony/console/Helper/Table.php b/vendor/symfony/console/Helper/Table.php index 8c3d0a521..73f1edee5 100644 --- a/vendor/symfony/console/Helper/Table.php +++ b/vendor/symfony/console/Helper/Table.php @@ -14,6 +14,7 @@ namespace Symfony\Component\Console\Helper; use Symfony\Component\Console\Exception\InvalidArgumentException; use Symfony\Component\Console\Exception\RuntimeException; use Symfony\Component\Console\Formatter\OutputFormatter; +use Symfony\Component\Console\Formatter\OutputFormatterInterface; use Symfony\Component\Console\Formatter\WrappableOutputFormatterInterface; use Symfony\Component\Console\Output\ConsoleSectionOutput; use Symfony\Component\Console\Output\OutputInterface; @@ -845,32 +846,45 @@ class Table */ private function calculateColumnsWidth(iterable $groups): void { - for ($column = 0; $column < $this->numberOfColumns; ++$column) { - $lengths = []; - foreach ($groups as $group) { - foreach ($group as $row) { - if ($row instanceof TableSeparator) { - continue; - } + $formatter = $this->output->getFormatter(); - foreach ($row as $i => $cell) { - if ($cell instanceof TableCell) { - $textContent = Helper::removeDecoration($this->output->getFormatter(), $cell); - $textLength = Helper::width($textContent); - if ($textLength > 0) { - $contentColumns = mb_str_split($textContent, ceil($textLength / $cell->getColspan())); - foreach ($contentColumns as $position => $content) { - $row[$i + $position] = $content; - } + // Initialize max widths for all columns + $maxColumnWidths = array_fill(0, $this->numberOfColumns, 0); + + // Single pass through all rows to calculate all column widths at once + foreach ($groups as $group) { + foreach ($group as $row) { + if ($row instanceof TableSeparator) { + continue; + } + + // Process TableCell colspan splitting once per row + foreach ($row as $i => $cell) { + if ($cell instanceof TableCell && $cell->getColspan() > 1) { + $textContent = Helper::removeDecoration($formatter, $cell); + $textLength = Helper::width($textContent); + if ($textLength > 0) { + $contentColumns = mb_str_split($textContent, (int) ceil($textLength / $cell->getColspan())); + foreach ($contentColumns as $position => $content) { + $row[$i + $position] = $content; } } } + } - $lengths[] = $this->getCellWidth($row, $column); + // Calculate width for each column in this row + for ($column = 0; $column < $this->numberOfColumns; ++$column) { + $cellWidth = $this->getCellWidth($row, $column, $formatter); + if ($cellWidth > $maxColumnWidths[$column]) { + $maxColumnWidths[$column] = $cellWidth; + } } } + } - $this->effectiveColumnWidths[$column] = max($lengths) + Helper::width($this->style->getCellRowContentFormat()) - 2; + $cellContentFormatWidth = Helper::width($this->style->getCellRowContentFormat()) - 2; + for ($column = 0; $column < $this->numberOfColumns; ++$column) { + $this->effectiveColumnWidths[$column] = $maxColumnWidths[$column] + $cellContentFormatWidth; } } @@ -879,13 +893,13 @@ class Table return Helper::width(\sprintf($this->style->getBorderFormat(), $this->style->getBorderChars()[3])); } - private function getCellWidth(array $row, int $column): int + private function getCellWidth(array $row, int $column, OutputFormatterInterface $formatter): int { $cellWidth = 0; if (isset($row[$column])) { $cell = $row[$column]; - $cellWidth = Helper::width(Helper::removeDecoration($this->output->getFormatter(), $cell)); + $cellWidth = Helper::width(Helper::removeDecoration($formatter, $cell)); } $columnWidth = $this->columnWidths[$column] ?? 0; diff --git a/vendor/symfony/console/Input/File/InputFile.php b/vendor/symfony/console/Input/File/InputFile.php new file mode 100644 index 000000000..e7aa53eff --- /dev/null +++ b/vendor/symfony/console/Input/File/InputFile.php @@ -0,0 +1,270 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Input\File; + +use Symfony\Component\Console\Exception\InvalidFileException; +use Symfony\Component\Mime\MimeTypes; + +/** + * Represents a file provided through console input. + * + * Inspired by HttpFoundation's UploadedFile, this class wraps a file provided + * through console input (either pasted via terminal image protocols or typed as a path). + * + * @author Robin Chalas + */ +final class InputFile extends \SplFileInfo +{ + /** @var string[] */ + private static array $tempFiles = []; + private static bool $shutdownRegistered = false; + + private ?string $mimeType = null; + private bool $isTempFile; + + public function __construct( + string $path, + bool $isTempFile = false, + ?string $mimeType = null, + ) { + parent::__construct($path); + + $this->isTempFile = $isTempFile; + $this->mimeType = $mimeType; + + if ($isTempFile) { + if (!self::$shutdownRegistered) { + register_shutdown_function(self::cleanupAll(...)); + self::$shutdownRegistered = true; + } + self::$tempFiles[$path] = $path; + } + } + + /** + * @throws InvalidFileException when the temporary file cannot be created + */ + public static function fromData(string $data, ?string $format = null): self + { + $extension = $format ? '.'.$format : ''; + $tempPath = sys_get_temp_dir().'/symfony_input_'.bin2hex(random_bytes(8)).$extension; + + $previousUmask = umask(0o077); + + try { + $handle = @fopen($tempPath, 'x'); + } finally { + umask($previousUmask); + } + + if (false === $handle) { + throw new InvalidFileException(\sprintf('Failed to create temporary file at "%s".', $tempPath)); + } + + if (\strlen($data) !== @fwrite($handle, $data) || !@fclose($handle)) { + @unlink($tempPath); + + throw new InvalidFileException(\sprintf('Failed to create temporary file at "%s".', $tempPath)); + } + + return new self($tempPath, true); + } + + /** + * @throws InvalidFileException when the file does not exist + */ + public static function fromPath(string $path): self + { + $path = self::normalizePath($path); + + if (!file_exists($path)) { + throw new InvalidFileException(\sprintf('File "%s" does not exist.', $path)); + } + + return new self($path, false); + } + + private static function normalizePath(string $path): string + { + $path = trim($path); + + if ( + (str_starts_with($path, '"') && str_ends_with($path, '"')) + || (str_starts_with($path, "'") && str_ends_with($path, "'")) + ) { + $path = substr($path, 1, -1); + } + + if (str_starts_with($path, 'file://')) { + $path = urldecode(substr($path, 7)); + + if ('\\' === \DIRECTORY_SEPARATOR && preg_match('#^/[a-zA-Z]:/#', $path)) { + $path = substr($path, 1); + } + } + + // Remove backslash escapes (e.g., "\ " for escaped spaces) on non-Windows systems + if ('\\' !== \DIRECTORY_SEPARATOR) { + $path = preg_replace('/\\\\(.)/', '$1', $path) ?? $path; + } + + return $path; + } + + public function getMimeType(): ?string + { + if (null !== $this->mimeType) { + return $this->mimeType; + } + + if (!$this->isValid()) { + return null; + } + + if (class_exists(MimeTypes::class)) { + return $this->mimeType = MimeTypes::getDefault()->guessMimeType($this->getPathname()); + } + + $finfo = new \finfo(\FILEINFO_MIME_TYPE); + + return $this->mimeType = $finfo->file($this->getPathname()) ?: null; + } + + public function guessExtension(): ?string + { + $mimeType = $this->getMimeType(); + + if (null === $mimeType) { + return null; + } + + if (class_exists(MimeTypes::class)) { + $extensions = MimeTypes::getDefault()->getExtensions($mimeType); + + return $extensions[0] ?? null; + } + + return match ($mimeType) { + 'image/png' => 'png', + 'image/jpeg' => 'jpg', + 'image/gif' => 'gif', + 'image/webp' => 'webp', + 'image/svg+xml' => 'svg', + 'application/pdf' => 'pdf', + 'text/plain' => 'txt', + default => null, + }; + } + + /** + * @throws InvalidFileException when the file is invalid or the move/copy operation fails + */ + public function move(string $directory, ?string $name = null): self + { + if (!$this->isValid()) { + throw new InvalidFileException('Cannot move an invalid file.'); + } + + $name ??= $this->getFilename(); + $target = rtrim($directory, '/\\').\DIRECTORY_SEPARATOR.$name; + + if (!is_dir($directory)) { + if (false === @mkdir($directory, 0o777, true) && !is_dir($directory)) { + throw new InvalidFileException(\sprintf('Unable to create the "%s" directory.', $directory)); + } + } elseif (!is_writable($directory)) { + throw new InvalidFileException(\sprintf('Unable to write in the "%s" directory.', $directory)); + } + + if ($this->isTempFile) { + if (!@rename($this->getPathname(), $target)) { + throw new InvalidFileException(\sprintf('Could not move the file "%s" to "%s".', $this->getPathname(), $target)); + } + unset(self::$tempFiles[$this->getPathname()]); + } else { + if (!@copy($this->getPathname(), $target)) { + throw new InvalidFileException(\sprintf('Could not copy the file "%s" to "%s".', $this->getPathname(), $target)); + } + } + + @chmod($target, 0o666 & ~umask()); + + return new self($target, false, $this->mimeType); + } + + public function cleanup(): void + { + if (!$this->isTempFile) { + return; + } + + $path = $this->getPathname(); + + if (file_exists($path)) { + @unlink($path); + } + + unset(self::$tempFiles[$path]); + } + + /** + * @internal + */ + public static function cleanupAll(): void + { + foreach (self::$tempFiles as $path) { + if (file_exists($path)) { + @unlink($path); + } + } + + self::$tempFiles = []; + } + + public function isValid(): bool + { + return is_file($this->getPathname()) && is_readable($this->getPathname()); + } + + public function isTempFile(): bool + { + return $this->isTempFile; + } + + /** + * @throws InvalidFileException when the file is invalid or cannot be read + */ + public function getContents(): string + { + if (!$this->isValid()) { + throw new InvalidFileException('Cannot read an invalid file.'); + } + + $contents = @file_get_contents($this->getPathname()); + + if (false === $contents) { + throw new InvalidFileException(\sprintf('Could not read file "%s".', $this->getPathname())); + } + + return $contents; + } + + public function getHumanReadableSize(): string + { + $size = $this->getSize(); + $units = ['B', 'KB', 'MB', 'GB']; + $power = $size > 0 ? floor(log($size, 1024)) : 0; + $power = min($power, \count($units) - 1); + + return \sprintf('%.1f %s', $size / (1024 ** $power), $units[$power]); + } +} diff --git a/vendor/symfony/console/Input/Input.php b/vendor/symfony/console/Input/Input.php index ed86c06a8..919af257a 100644 --- a/vendor/symfony/console/Input/Input.php +++ b/vendor/symfony/console/Input/Input.php @@ -25,7 +25,7 @@ use Symfony\Component\Console\Exception\RuntimeException; * * @author Fabien Potencier */ -abstract class Input implements InputInterface, StreamableInputInterface +abstract class Input implements RawInputInterface, StreamableInputInterface { protected InputDefinition $definition; /** @var resource */ @@ -171,4 +171,38 @@ abstract class Input implements InputInterface, StreamableInputInterface { return $this->stream; } + + public function getRawArguments(): array + { + return $this->arguments; + } + + public function getRawOptions(): array + { + return $this->options; + } + + public function unparse(?array $optionNames = null): array + { + $rawOptions = $this->getRawOptions(); + + $filteredRawOptions = null === $optionNames + ? $rawOptions + : array_intersect_key($rawOptions, array_fill_keys($optionNames, '')); + + $unparsedOptions = []; + + foreach ($filteredRawOptions as $optionName => $parsedOption) { + $option = $this->definition->getOption($optionName); + + $unparsedOptions[] = match (true) { + $option->isNegatable() => [\sprintf('--%s%s', $parsedOption ? '' : 'no-', $optionName)], + !$option->acceptValue() => [\sprintf('--%s', $optionName)], + $option->isArray() => array_map(static fn ($item) => \sprintf('--%s=%s', $optionName, $item), $parsedOption), + default => [\sprintf('--%s=%s', $optionName, $parsedOption)], + }; + } + + return array_merge(...$unparsedOptions); + } } diff --git a/vendor/symfony/console/Input/InputArgument.php b/vendor/symfony/console/Input/InputArgument.php index 6fbb64ed0..35e3a8f52 100644 --- a/vendor/symfony/console/Input/InputArgument.php +++ b/vendor/symfony/console/Input/InputArgument.php @@ -41,13 +41,13 @@ class InputArgument public const IS_ARRAY = 4; private int $mode; - private string|int|bool|array|float|null $default; + private mixed $default; /** * @param string $name The argument name * @param int-mask-of|null $mode The argument mode: a bit mask of self::REQUIRED, self::OPTIONAL and self::IS_ARRAY * @param string $description A description text - * @param string|bool|int|float|array|null $default The default value (for self::OPTIONAL mode only) + * @param mixed $default The default value (for self::OPTIONAL mode only) * @param array|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion * * @throws InvalidArgumentException When argument mode is not valid @@ -56,15 +56,19 @@ class InputArgument private string $name, ?int $mode = null, private string $description = '', - string|bool|int|float|array|null $default = null, + mixed $default = null, private \Closure|array $suggestedValues = [], ) { - if (null === $mode) { - $mode = self::OPTIONAL; - } elseif ($mode >= (self::IS_ARRAY << 1) || $mode < 1) { + // If not explicitly marked as required, we assume the value to be optional + $mode = self::REQUIRED === (self::REQUIRED & $mode) ? $mode : (self::OPTIONAL | $mode); + if ($mode >= (self::IS_ARRAY << 1) || $mode < 1) { throw new InvalidArgumentException(\sprintf('Argument mode "%s" is not valid.', $mode)); } + if ((self::REQUIRED | self::OPTIONAL) === ((self::REQUIRED | self::OPTIONAL) & $mode)) { + trigger_deprecation('symfony/console', '8.1', 'Argument "%s" mode should specify either required or optional.', $name); + } + $this->mode = $mode; $this->setDefault($default); @@ -101,7 +105,7 @@ class InputArgument /** * Sets the default value. */ - public function setDefault(string|bool|int|float|array|null $default): void + public function setDefault(mixed $default): void { if ($this->isRequired() && null !== $default) { throw new LogicException('Cannot set a default value except for InputArgument::OPTIONAL mode.'); @@ -121,7 +125,7 @@ class InputArgument /** * Returns the default value. */ - public function getDefault(): string|bool|int|float|array|null + public function getDefault(): mixed { return $this->default; } diff --git a/vendor/symfony/console/Input/InputOption.php b/vendor/symfony/console/Input/InputOption.php index 4f8e66e5c..c84f1f3d3 100644 --- a/vendor/symfony/console/Input/InputOption.php +++ b/vendor/symfony/console/Input/InputOption.php @@ -53,12 +53,12 @@ class InputOption private string $name; private ?string $shortcut; private int $mode; - private string|int|bool|array|float|null $default; + private mixed $default; /** * @param string|array|null $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts * @param int-mask-of|null $mode The option mode: One of the VALUE_* constants - * @param string|bool|int|float|array|null $default The default value (must be null for self::VALUE_NONE) + * @param mixed $default The default value (must be null for self::VALUE_NONE) * @param array|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion * * @throws InvalidArgumentException If option mode is invalid or incompatible @@ -68,7 +68,7 @@ class InputOption string|array|null $shortcut = null, ?int $mode = null, private string $description = '', - string|bool|int|float|array|null $default = null, + mixed $default = null, private array|\Closure $suggestedValues = [], ) { if (str_starts_with($name, '--')) { @@ -96,12 +96,16 @@ class InputOption } } - if (null === $mode) { - $mode = self::VALUE_NONE; - } elseif ($mode >= (self::VALUE_NEGATABLE << 1) || $mode < 1) { + // If not explicitly marked as required or optional, we assume the value accepts no input + $mode = self::VALUE_REQUIRED === (self::VALUE_REQUIRED & $mode) || self::VALUE_OPTIONAL === (self::VALUE_OPTIONAL & $mode) ? $mode : (self::VALUE_NONE | $mode); + if ($mode >= (self::VALUE_NEGATABLE << 1) || $mode < 1) { throw new InvalidArgumentException(\sprintf('Option mode "%s" is not valid.', $mode)); } + if (!\in_array($mode & (self::VALUE_NONE | self::VALUE_REQUIRED | self::VALUE_OPTIONAL), [self::VALUE_NONE, self::VALUE_REQUIRED, self::VALUE_OPTIONAL], true)) { + trigger_deprecation('symfony/console', '8.1', 'Option "%s" mode should be either none, required or optional.', $name); + } + $this->name = $name; $this->shortcut = $shortcut; $this->mode = $mode; @@ -188,12 +192,16 @@ class InputOption /** * Sets the default value. */ - public function setDefault(string|bool|int|float|array|null $default): void + public function setDefault(mixed $default): void { - if (self::VALUE_NONE === (self::VALUE_NONE & $this->mode) && null !== $default) { + if (self::VALUE_NONE === (self::VALUE_NONE & $this->mode) && !$this->isNegatable() && null !== $default) { throw new LogicException('Cannot set a default value when using InputOption::VALUE_NONE mode.'); } + if ($this->isNegatable() && null !== $default && !\is_bool($default)) { + throw new LogicException('A default value for a negatable option must be a boolean or null.'); + } + if ($this->isArray()) { if (null === $default) { $default = []; @@ -208,7 +216,7 @@ class InputOption /** * Returns the default value. */ - public function getDefault(): string|bool|int|float|array|null + public function getDefault(): mixed { return $this->default; } diff --git a/vendor/symfony/console/Input/RawInputInterface.php b/vendor/symfony/console/Input/RawInputInterface.php new file mode 100644 index 000000000..dfc6c408c --- /dev/null +++ b/vendor/symfony/console/Input/RawInputInterface.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Input; + +/** + * Provides access to the original input arguments and options + * before they are merged with default values, and allows + * unparsing options back to their CLI representation. + * + * @author Théo FIDRY + */ +interface RawInputInterface extends InputInterface +{ + /** + * Returns all the given arguments NOT merged with the default values. + * + * @return array|null> + */ + public function getRawArguments(): array; + + /** + * Returns all the given options NOT merged with the default values. + * + * @return array|null> + */ + public function getRawOptions(): array; + + /** + * Returns a stringified representation of the options passed to the command. + * + * The returned strings interpolate raw option values verbatim and are NOT + * shell-escaped. They are intended to be passed as an array argv to + * {@see \Symfony\Component\Process\Process}, which performs its own + * escaping. Never concatenate the result into a shell string nor pass it + * to {@see \Symfony\Component\Process\Process::fromShellCommandline()}, + * `shell_exec()`, `exec()`, `system()`, `passthru()`, or `proc_open()` + * with a string command: untrusted option values would allow command + * injection. + * + * @param string[]|null $optionNames Names of the options returned. If null, all options are returned. + * Requested options that either do not exist or were not passed + * (even if the option has a default value) will be ignored. + * + * @return list + */ + public function unparse(?array $optionNames = null): array; +} diff --git a/vendor/symfony/console/Interaction/Interaction.php b/vendor/symfony/console/Interaction/Interaction.php index 98ed899f0..8ad48441b 100644 --- a/vendor/symfony/console/Interaction/Interaction.php +++ b/vendor/symfony/console/Interaction/Interaction.php @@ -28,12 +28,14 @@ final class Interaction } /** + * @param-immediately-invoked-callable $parameterResolver + * * @param \Closure(\ReflectionFunction $function, InputInterface $input, OutputInterface $output): array $parameterResolver */ public function interact(InputInterface $input, OutputInterface $output, \Closure $parameterResolver): void { if ($this->owner instanceof MapInput) { - $function = $this->attribute->getFunction($this->owner->resolveValue($input)); + $function = $this->attribute->getFunction($this->owner->createInstance($input)); $function->invoke(...$parameterResolver($function, $input, $output)); $this->owner->setValue($input, $function->getClosureThis()); diff --git a/vendor/symfony/console/Output/CombinedOutput.php b/vendor/symfony/console/Output/CombinedOutput.php new file mode 100644 index 000000000..b92a8ce09 --- /dev/null +++ b/vendor/symfony/console/Output/CombinedOutput.php @@ -0,0 +1,107 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Output; + +use Symfony\Component\Console\Exception\LogicException; +use Symfony\Component\Console\Formatter\OutputFormatterInterface; + +/** + * @internal + */ +final class CombinedOutput implements OutputInterface +{ + /** + * @param OutputInterface[] $outputs + */ + public function __construct( + private array $outputs, + ) { + if (!$outputs) { + throw new LogicException('Expected at least one output.'); + } + } + + public function write(iterable|string $messages, bool $newline = false, int $options = 0): void + { + foreach ($this->outputs as $output) { + $output->write(...\func_get_args()); + } + } + + public function writeln(iterable|string $messages, int $options = 0): void + { + foreach ($this->outputs as $output) { + $output->writeln(...\func_get_args()); + } + } + + public function setVerbosity(int $level): void + { + foreach ($this->outputs as $output) { + $output->setVerbosity($level); + } + } + + public function getVerbosity(): int + { + return array_first($this->outputs)->getVerbosity(); + } + + public function isSilent(): bool + { + return array_first($this->outputs)->isSilent(); + } + + public function isQuiet(): bool + { + return array_first($this->outputs)->isQuiet(); + } + + public function isVerbose(): bool + { + return array_first($this->outputs)->isVerbose(); + } + + public function isVeryVerbose(): bool + { + return array_first($this->outputs)->isVeryVerbose(); + } + + public function isDebug(): bool + { + return array_first($this->outputs)->isDebug(); + } + + public function setDecorated(bool $decorated): void + { + foreach ($this->outputs as $output) { + $output->setDecorated($decorated); + } + } + + public function isDecorated(): bool + { + return array_first($this->outputs)->isDecorated(); + } + + public function setFormatter(OutputFormatterInterface $formatter): void + { + foreach ($this->outputs as $output) { + $output->setFormatter($formatter); + } + } + + public function getFormatter(): OutputFormatterInterface + { + return array_first($this->outputs)->getFormatter(); + } +} diff --git a/vendor/symfony/console/Output/OutputInterface.php b/vendor/symfony/console/Output/OutputInterface.php index 969a3b022..27efabea8 100644 --- a/vendor/symfony/console/Output/OutputInterface.php +++ b/vendor/symfony/console/Output/OutputInterface.php @@ -17,8 +17,6 @@ use Symfony\Component\Console\Formatter\OutputFormatterInterface; * OutputInterface is the interface implemented by all Output classes. * * @author Fabien Potencier - * - * @method bool isSilent() */ interface OutputInterface { @@ -36,17 +34,17 @@ interface OutputInterface /** * Writes a message to the output. * - * @param bool $newline Whether to add a newline - * @param int $options A bitmask of options (one of the OUTPUT or VERBOSITY constants), - * 0 is considered the same as self::OUTPUT_NORMAL | self::VERBOSITY_NORMAL + * @param bool $newline Whether to add a newline + * @param int-mask-of $options A bitmask of options (one of the OUTPUT or VERBOSITY constants), + * 0 is considered the same as self::OUTPUT_NORMAL | self::VERBOSITY_NORMAL */ public function write(string|iterable $messages, bool $newline = false, int $options = 0): void; /** * Writes a message to the output and adds a newline at the end. * - * @param int $options A bitmask of options (one of the OUTPUT or VERBOSITY constants), - * 0 is considered the same as self::OUTPUT_NORMAL | self::VERBOSITY_NORMAL + * @param int-mask-of $options A bitmask of options (one of the OUTPUT or VERBOSITY constants), + * 0 is considered the same as self::OUTPUT_NORMAL | self::VERBOSITY_NORMAL */ public function writeln(string|iterable $messages, int $options = 0): void; @@ -64,6 +62,8 @@ interface OutputInterface */ public function getVerbosity(): int; + public function isSilent(): bool; + /** * Returns whether verbosity is quiet (-q). */ diff --git a/vendor/symfony/console/Output/TestOutput.php b/vendor/symfony/console/Output/TestOutput.php new file mode 100644 index 000000000..597762962 --- /dev/null +++ b/vendor/symfony/console/Output/TestOutput.php @@ -0,0 +1,174 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Output; + +use Symfony\Component\Console\Exception\LogicException; +use Symfony\Component\Console\Exception\RuntimeException; +use Symfony\Component\Console\Formatter\OutputFormatter; +use Symfony\Component\Console\Formatter\OutputFormatterInterface; + +/** + * @internal + * + * @author Théo FIDRY + */ +final class TestOutput implements ConsoleOutputInterface +{ + private OutputInterface $innerOutput; + private OutputInterface $innerErrorOutput; + private OutputInterface $displayOutput; + private CombinedOutput $output; + private CombinedOutput $errorOutput; + private OutputFormatterInterface $formatter; + + /** + * @param OutputInterface::VERBOSITY_* $verbosity + */ + public function __construct( + private bool $decorated, + private int $verbosity, + ?OutputFormatterInterface $formatter = null, + ) { + $this->formatter = $formatter ?? new OutputFormatter($decorated); + $this->formatter->setDecorated($decorated); + + $this->innerOutput = self::createOutput($this); + $this->innerErrorOutput = self::createOutput($this); + $this->displayOutput = self::createOutput($this); + + $this->output = new CombinedOutput([ + $this->innerOutput, + $this->displayOutput, + ]); + $this->errorOutput = new CombinedOutput([ + $this->innerErrorOutput, + $this->displayOutput, + ]); + } + + public function getOutputContents(): string + { + return $this->getStreamContents($this->innerOutput); + } + + public function getErrorOutputContents(): string + { + return $this->getStreamContents($this->innerErrorOutput); + } + + public function getDisplayContents(): string + { + return $this->getStreamContents($this->displayOutput); + } + + public function getErrorOutput(): OutputInterface + { + return $this->errorOutput; + } + + public function setErrorOutput(OutputInterface $error): void + { + throw new LogicException('TestOutput does not support modifying the error output.'); + } + + public function section(): ConsoleSectionOutput + { + throw new LogicException('ConsoleSectionOutput is not supported by TestOutput.'); + } + + public function write(iterable|string $messages, bool $newline = false, int $options = 0): void + { + $this->output->write(...\func_get_args()); + } + + public function writeln(iterable|string $messages, int $options = 0): void + { + $this->output->writeln(...\func_get_args()); + } + + public function setVerbosity(int $level): void + { + throw new LogicException('TestOutput does not support modifying the verbosity.'); + } + + public function getVerbosity(): int + { + return $this->verbosity; + } + + public function isSilent(): bool + { + return self::VERBOSITY_SILENT === $this->verbosity; + } + + public function isQuiet(): bool + { + return self::VERBOSITY_QUIET === $this->verbosity; + } + + public function isVerbose(): bool + { + return self::VERBOSITY_VERBOSE <= $this->verbosity; + } + + public function isVeryVerbose(): bool + { + return self::VERBOSITY_VERY_VERBOSE <= $this->verbosity; + } + + public function isDebug(): bool + { + return self::VERBOSITY_DEBUG <= $this->verbosity; + } + + public function setDecorated(bool $decorated): void + { + throw new LogicException('TestOutput does not support modifying the decorated flag.'); + } + + public function isDecorated(): bool + { + return $this->decorated; + } + + public function setFormatter(OutputFormatterInterface $formatter): void + { + throw new LogicException('TestOutput does not support modifying the formatter.'); + } + + public function getFormatter(): OutputFormatterInterface + { + return $this->formatter; + } + + private static function createOutput(OutputInterface $config): StreamOutput + { + if (false === $stream = fopen('php://memory', 'w')) { + throw new RuntimeException('Failed to open stream.'); + } + + return new StreamOutput($stream, $config->getVerbosity(), $config->isDecorated(), $config->getFormatter()); + } + + private function getStreamContents(StreamOutput $output): string + { + $stream = $output->getStream(); + + rewind($stream); + + if (false === $contents = stream_get_contents($stream)) { + throw new RuntimeException('Failed to read stream contents.'); + } + + return $contents; + } +} diff --git a/vendor/symfony/console/Question/FileQuestion.php b/vendor/symfony/console/Question/FileQuestion.php new file mode 100644 index 000000000..8d2bf3bc4 --- /dev/null +++ b/vendor/symfony/console/Question/FileQuestion.php @@ -0,0 +1,46 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Question; + +use Symfony\Component\Console\Exception\InvalidArgumentException; + +/** + * Represents a question that accepts file input (paste or path). + * + * @author Robin Chalas + */ +class FileQuestion extends Question +{ + public function __construct( + string $question, + private bool $allowPaste = true, + private bool $allowPath = true, + ) { + parent::__construct($question); + + if (!$allowPaste && !$allowPath) { + throw new InvalidArgumentException('At least one of allowPaste or allowPath must be true.'); + } + + $this->setTrimmable(false); + } + + public function isPasteAllowed(): bool + { + return $this->allowPaste; + } + + public function isPathAllowed(): bool + { + return $this->allowPath; + } +} diff --git a/vendor/symfony/console/Question/Question.php b/vendor/symfony/console/Question/Question.php index 000c89164..138210956 100644 --- a/vendor/symfony/console/Question/Question.php +++ b/vendor/symfony/console/Question/Question.php @@ -13,6 +13,7 @@ namespace Symfony\Component\Console\Question; use Symfony\Component\Console\Exception\InvalidArgumentException; use Symfony\Component\Console\Exception\LogicException; +use Symfony\Component\Validator\Constraint; /** * Represents a Question. @@ -39,10 +40,15 @@ class Question private bool $trimmable = true; private bool $multiline = false; private ?int $timeout = null; + /** + * @var Constraint[] + */ + private array $constraints = []; /** * @param string $question The question to ask to the user - * @param string|bool|int|float|null $default The default answer to return if the user enters nothing + * @param string|bool|int|float|null $default The default answer to return if the user enters nothing. + * Object defaults set on InputArgument/InputOption are not propagated here. */ public function __construct( private string $question, @@ -316,4 +322,24 @@ class Question return $this; } + + /** + * @param Constraint[] $constraints + * + * @return $this + */ + public function setConstraints(array $constraints): static + { + $this->constraints = $constraints; + + return $this; + } + + /** + * @return Constraint[] + */ + public function getConstraints(): array + { + return $this->constraints; + } } diff --git a/vendor/symfony/console/README.md b/vendor/symfony/console/README.md index 92f70e714..e868116a8 100644 --- a/vendor/symfony/console/README.md +++ b/vendor/symfony/console/README.md @@ -7,7 +7,9 @@ interfaces. Sponsor ------- -Help Symfony by [sponsoring][1] its development! +This package is looking for a [backer][1]. + +Help Symfony by [sponsoring][3] its development! Resources --------- @@ -24,4 +26,5 @@ Credits `Resources/bin/hiddeninput.exe` is a third party binary provided within this component. Find sources and license at https://github.com/Seldaek/hidden-input. -[1]: https://symfony.com/sponsor +[1]: https://symfony.com/backers +[3]: https://symfony.com/sponsor diff --git a/vendor/symfony/console/Resources/config/console.php b/vendor/symfony/console/Resources/config/console.php new file mode 100644 index 000000000..f10c55060 --- /dev/null +++ b/vendor/symfony/console/Resources/config/console.php @@ -0,0 +1,89 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\DependencyInjection\Loader\Configurator; + +use Symfony\Component\Console\ArgumentResolver\ArgumentResolver; +use Symfony\Component\Console\ArgumentResolver\ValueResolver\BackedEnumValueResolver; +use Symfony\Component\Console\ArgumentResolver\ValueResolver\BuiltinTypeValueResolver; +use Symfony\Component\Console\ArgumentResolver\ValueResolver\DateTimeValueResolver; +use Symfony\Component\Console\ArgumentResolver\ValueResolver\DefaultValueResolver; +use Symfony\Component\Console\ArgumentResolver\ValueResolver\InputFileValueResolver; +use Symfony\Component\Console\ArgumentResolver\ValueResolver\MapInputValueResolver; +use Symfony\Component\Console\ArgumentResolver\ValueResolver\ServiceValueResolver; +use Symfony\Component\Console\ArgumentResolver\ValueResolver\UidValueResolver; +use Symfony\Component\Console\ArgumentResolver\ValueResolver\VariadicValueResolver; +use Symfony\Component\Console\EventListener\ErrorListener; +use Symfony\Component\Dotenv\Command\DebugCommand as DotenvDebugCommand; + +return static function (ContainerConfigurator $container) { + $container->services() + ->set('console.error_listener', ErrorListener::class) + ->args([ + service('logger')->nullOnInvalid(), + ]) + ->tag('kernel.event_subscriber') + ->tag('monolog.logger', ['channel' => 'console']) + + ->set('console.command.dotenv_debug', DotenvDebugCommand::class) + ->args([ + param('kernel.environment'), + param('kernel.project_dir'), + ]) + ->tag('console.command') + + ->set('console.argument_resolver', ArgumentResolver::class) + ->public() + ->args([ + abstract_arg('argument value resolvers'), + abstract_arg('named argument value resolvers'), + ]) + + ->set('console.argument_resolver.backed_enum', BackedEnumValueResolver::class) + ->tag('console.argument_value_resolver', ['priority' => 100, 'name' => BackedEnumValueResolver::class]) + + ->set('console.argument_resolver.uid', UidValueResolver::class) + ->tag('console.argument_value_resolver', ['priority' => 100, 'name' => UidValueResolver::class]) + + ->set('console.argument_resolver.input_file', InputFileValueResolver::class) + ->tag('console.argument_value_resolver', ['priority' => 100, 'name' => InputFileValueResolver::class]) + + ->set('console.argument_resolver.builtin_type', BuiltinTypeValueResolver::class) + ->tag('console.argument_value_resolver', ['priority' => 100, 'name' => BuiltinTypeValueResolver::class]) + + ->set('console.argument_resolver.datetime', DateTimeValueResolver::class) + ->args([ + service('clock')->nullOnInvalid(), + ]) + ->tag('console.argument_value_resolver', ['priority' => 100, 'name' => DateTimeValueResolver::class]) + + ->set('console.argument_resolver.map_input', MapInputValueResolver::class) + ->args([ + service('console.argument_resolver.builtin_type'), + service('console.argument_resolver.backed_enum'), + service('console.argument_resolver.datetime'), + service('validator')->nullOnInvalid(), + ]) + ->tag('console.argument_value_resolver', ['priority' => 100, 'name' => MapInputValueResolver::class]) + + ->set('console.argument_resolver.service', ServiceValueResolver::class) + ->args([ + abstract_arg('service locator, set in RegisterCommandArgumentLocatorsPass'), + ]) + ->tag('console.argument_value_resolver', ['priority' => -50, 'name' => ServiceValueResolver::class]) + + ->set('console.argument_resolver.default', DefaultValueResolver::class) + ->tag('console.argument_value_resolver', ['priority' => -100, 'name' => DefaultValueResolver::class]) + + ->set('console.argument_resolver.variadic', VariadicValueResolver::class) + ->tag('console.argument_value_resolver', ['priority' => -150, 'name' => VariadicValueResolver::class]) + ; +}; diff --git a/vendor/symfony/console/Style/OutputStyle.php b/vendor/symfony/console/Style/OutputStyle.php index 89a3a4177..9404fedeb 100644 --- a/vendor/symfony/console/Style/OutputStyle.php +++ b/vendor/symfony/console/Style/OutputStyle.php @@ -80,8 +80,7 @@ abstract class OutputStyle implements OutputInterface, StyleInterface public function isSilent(): bool { - // @deprecated since Symfony 7.2, change to $this->output->isSilent() in 8.0 - return method_exists($this->output, 'isSilent') ? $this->output->isSilent() : self::VERBOSITY_SILENT === $this->output->getVerbosity(); + return $this->output->isSilent(); } public function isQuiet(): bool diff --git a/vendor/symfony/console/Style/SymfonyStyle.php b/vendor/symfony/console/Style/SymfonyStyle.php index 519d71a5c..fadbbf21c 100644 --- a/vendor/symfony/console/Style/SymfonyStyle.php +++ b/vendor/symfony/console/Style/SymfonyStyle.php @@ -24,6 +24,7 @@ use Symfony\Component\Console\Helper\TableSeparator; use Symfony\Component\Console\Helper\TreeHelper; use Symfony\Component\Console\Helper\TreeNode; use Symfony\Component\Console\Helper\TreeStyle; +use Symfony\Component\Console\Input\File\InputFile; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\ConsoleOutputInterface; use Symfony\Component\Console\Output\ConsoleSectionOutput; @@ -31,8 +32,10 @@ use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Output\TrimmedBufferOutput; use Symfony\Component\Console\Question\ChoiceQuestion; use Symfony\Component\Console\Question\ConfirmationQuestion; +use Symfony\Component\Console\Question\FileQuestion; use Symfony\Component\Console\Question\Question; use Symfony\Component\Console\Terminal; +use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; /** * Output decorator helpers for the Symfony Style Guide. @@ -51,6 +54,7 @@ class SymfonyStyle extends OutputStyle public function __construct( private InputInterface $input, private OutputInterface $output, + private ?EventDispatcherInterface $dispatcher = null, ) { $this->bufferedOutput = new TrimmedBufferOutput(\DIRECTORY_SEPARATOR === '\\' ? 4 : 2, $output->getVerbosity(), false, clone $output->getFormatter()); // Windows cmd wraps lines as soon as the terminal width is reached, whether there are following chars or not. @@ -152,6 +156,51 @@ class SymfonyStyle extends OutputStyle $this->block($message, 'CAUTION', 'fg=white;bg=red', ' ! ', true); } + /** + * Formats a message as an outlined block of text. + * + * Unlike block(), this renders colored borders instead of colored backgrounds, + * improving readability across terminal color schemes. + */ + public function outlineBlock(string|array $messages, ?string $type = null, ?string $style = null, bool $padding = true, bool $escape = true): void + { + $messages = \is_array($messages) ? array_values($messages) : [$messages]; + + $this->autoPrependBlock(); + $this->writeln($this->createOutlineBlock($messages, $type, $style, $padding, $escape)); + $this->newLine(); + } + + public function outlineSuccess(string|array $message): void + { + $this->outlineBlock($message, '✅ Success', 'fg=green'); + } + + public function outlineError(string|array $message): void + { + $this->outlineBlock($message, '❌ Error', 'fg=red'); + } + + public function outlineWarning(string|array $message): void + { + $this->outlineBlock($message, '⚠️ Warning', 'fg=yellow'); + } + + public function outlineNote(string|array $message): void + { + $this->outlineBlock($message, '📝 Note', 'fg=blue'); + } + + public function outlineInfo(string|array $message): void + { + $this->outlineBlock($message, 'ℹ️ Info', 'fg=green'); + } + + public function outlineCaution(string|array $message): void + { + $this->outlineBlock($message, '🚨 Caution', 'fg=red'); + } + public function table(array $headers, array $rows): void { $this->createTable() @@ -247,9 +296,18 @@ class SymfonyStyle extends OutputStyle return $this->askQuestion($questionChoice); } - public function progressStart(int $max = 0): void + public function askFile(string $question): ?InputFile { - $this->progressBar = $this->createProgressBar($max); + return $this->askQuestion(new FileQuestion($question)); + } + + /** + * @param string|null $format + */ + public function progressStart(int $max = 0 /* , ?string $format = null */): void + { + $format = 2 <= \func_num_args() ? func_get_arg(1) : null; + $this->progressBar = $this->createProgressBar($max, $format); $this->progressBar->start(); } @@ -265,8 +323,12 @@ class SymfonyStyle extends OutputStyle unset($this->progressBar); } - public function createProgressBar(int $max = 0): ProgressBar + /** + * @param string|null $format + */ + public function createProgressBar(int $max = 0 /* , ?string $format = null */): ProgressBar { + $format = 2 <= \func_num_args() ? func_get_arg(1) : null; $progressBar = parent::createProgressBar($max); if ('\\' !== \DIRECTORY_SEPARATOR || 'Hyper' === getenv('TERM_PROGRAM')) { @@ -275,6 +337,10 @@ class SymfonyStyle extends OutputStyle $progressBar->setBarCharacter('▓'); // dark shade character \u2593 } + if (null !== $format) { + $progressBar->setFormat($format); + } + return $progressBar; } @@ -286,12 +352,14 @@ class SymfonyStyle extends OutputStyle * * @param iterable $iterable * @param int|null $max Number of steps to complete the bar (0 if indeterminate), if null it will be inferred from $iterable + * @param string|null $format A ProgressBar format string (e.g. ' %current%/%max% [%bar%] %memory:6s%'); null uses the default format * * @return iterable */ - public function progressIterate(iterable $iterable, ?int $max = null): iterable + public function progressIterate(iterable $iterable, ?int $max = null /* , ?string $format = null */): iterable { - yield from $this->createProgressBar()->iterate($iterable, $max); + $format = 3 <= \func_num_args() ? func_get_arg(2) : null; + yield from $this->createProgressBar(0, $format)->iterate($iterable, $max); $this->newLine(2); } @@ -302,7 +370,7 @@ class SymfonyStyle extends OutputStyle $this->autoPrependBlock(); } - $this->questionHelper ??= new SymfonyQuestionHelper(); + $this->questionHelper ??= new SymfonyQuestionHelper($this->dispatcher); $answer = $this->questionHelper->ask($this->input, $this, $question); @@ -466,7 +534,13 @@ class SymfonyStyle extends OutputStyle } $line = $prefix.$line; - $line .= str_repeat(' ', max($this->lineLength - Helper::width(Helper::removeDecoration($this->getFormatter(), $line)), 0)); + $paddingLength = max($this->lineLength - Helper::width(Helper::removeDecoration($this->getFormatter(), $line)), 0); + + // ECH paints the trailing cells with the current background and CUF moves the cursor past + // them without writing characters, so most terminals trim them when copying the selection. + $line .= $style && $this->isDecorated() && 0 < $paddingLength + ? \sprintf("\e[%1\$dX\e[%1\$dC", $paddingLength) + : str_repeat(' ', $paddingLength); if ($style) { $line = \sprintf('<%s>%s', $style, $line); @@ -475,4 +549,53 @@ class SymfonyStyle extends OutputStyle return $lines; } + + private function createOutlineBlock(array $messages, ?string $type = null, ?string $style = null, bool $padding = false, bool $escape = false): array + { + // Line format: ' │ '(3) + content($contentWidth) + ' │'(2) = lineLength + $contentWidth = $this->lineLength - 5; + + $lines = []; + $outputWrapper = new OutputWrapper(); + + foreach ($messages as $key => $message) { + if ($escape) { + $message = OutputFormatter::escape($message); + } + + $message = str_replace("\r\n", "\n", $message); + $lines = array_merge($lines, explode("\n", $outputWrapper->wrap($message, $contentWidth, "\n"))); + + if (\count($messages) > 1 && $key < \count($messages) - 1) { + $lines[] = ''; + } + } + + if ($padding) { + array_unshift($lines, ''); + $lines[] = ''; + } + + $result = []; + + // Top border: ' ┌─ Type ────┐' or ' ┌────┐' when no type + if (null !== $type) { + $line = ' ┌─ '.$type.' '.str_repeat('─', max(0, $this->lineLength - 6 - Helper::width($type))).'┐'; + } else { + $line = ' ┌'.str_repeat('─', max(0, $this->lineLength - 3)).'┐'; + } + $result[] = $style ? \sprintf('<%s>%s', $style, $line) : $line; + + foreach ($lines as $line) { + $lineContentWidth = Helper::width(Helper::removeDecoration($this->getFormatter(), $line)); + $padded = $line.str_repeat(' ', max($contentWidth - $lineContentWidth, 0)); + $result[] = $style ? \sprintf('<%s> │ %s<%1$s> │', $style, $padded) : ' │ '.$padded.' │'; + } + + $borderDashes = str_repeat('─', max(0, $this->lineLength - 3)); + $line = ' └'.$borderDashes.'┘'; + $result[] = $style ? \sprintf('<%s>%s', $style, $line) : $line; + + return $result; + } } diff --git a/vendor/symfony/console/Terminal.php b/vendor/symfony/console/Terminal.php index 61259f66d..051f7e415 100644 --- a/vendor/symfony/console/Terminal.php +++ b/vendor/symfony/console/Terminal.php @@ -21,6 +21,8 @@ class Terminal private static ?int $width = null; private static ?int $height = null; private static ?bool $stty = null; + private static ?bool $kittyGraphics = null; + private static ?bool $iterm2Images = null; /** * About Ansi color types: https://en.wikipedia.org/wiki/ANSI_escape_code#Colors @@ -80,9 +82,6 @@ class Terminal self::$colorMode = $colorMode; } - /** - * Gets the terminal width. - */ public function getWidth(): int { $width = getenv('COLUMNS'); @@ -97,9 +96,6 @@ class Terminal return self::$width ?: 80; } - /** - * Gets the terminal height. - */ public function getHeight(): int { $height = getenv('LINES'); @@ -131,6 +127,56 @@ class Terminal return self::$stty = (bool) @shell_exec('stty 2> '.('\\' === \DIRECTORY_SEPARATOR ? 'NUL' : '/dev/null')); } + public static function supportsKittyGraphics(): bool + { + if (null !== self::$kittyGraphics) { + return self::$kittyGraphics; + } + + $termProgram = getenv('TERM_PROGRAM') ?: ''; + if (\in_array($termProgram, ['kitty', 'WezTerm', 'ghostty'], true)) { + return self::$kittyGraphics = true; + } + + if (str_contains(getenv('TERM') ?: '', 'kitty')) { + return self::$kittyGraphics = true; + } + + if (false !== getenv('GHOSTTY_RESOURCES_DIR')) { + return self::$kittyGraphics = true; + } + + if (false !== getenv('KONSOLE_VERSION')) { + return self::$kittyGraphics = true; + } + + return self::$kittyGraphics = false; + } + + public static function supportsITerm2Images(): bool + { + if (null !== self::$iterm2Images) { + return self::$iterm2Images; + } + + return self::$iterm2Images = 'iTerm.app' === getenv('TERM_PROGRAM'); + } + + public static function supportsImageProtocol(): bool + { + return self::supportsKittyGraphics() || self::supportsITerm2Images(); + } + + public static function setKittyGraphicsSupport(?bool $supported): void + { + self::$kittyGraphics = $supported; + } + + public static function setITerm2ImagesSupport(?bool $supported): void + { + self::$iterm2Images = $supported; + } + private static function initDimensions(): void { if ('\\' === \DIRECTORY_SEPARATOR) { @@ -154,9 +200,6 @@ class Terminal } } - /** - * Initializes dimensions using the output of an stty columns line. - */ private static function initDimensionsUsingStty(): void { if ($sttyString = self::getSttyColumns()) { @@ -188,9 +231,6 @@ class Terminal return [(int) $matches[2], (int) $matches[1]]; } - /** - * Runs and parses stty -a if it's available, suppressing any error output. - */ private static function getSttyColumns(): ?string { return self::readFromProcess(['stty', '-a']); diff --git a/vendor/symfony/console/Terminal/Image/ITerm2Protocol.php b/vendor/symfony/console/Terminal/Image/ITerm2Protocol.php new file mode 100644 index 000000000..c5cd84d81 --- /dev/null +++ b/vendor/symfony/console/Terminal/Image/ITerm2Protocol.php @@ -0,0 +1,103 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Terminal\Image; + +/** + * Handles the iTerm2 Inline Images Protocol (OSC 1337). + * + * The iTerm2 protocol uses Operating System Command (OSC) sequences: + * - Start: ESC ] 1337 ; File= (0x1B 0x5D 0x31 0x33 0x33 0x37 0x3B 0x46 0x69 0x6C 0x65 0x3D) + * - End: BEL (0x07) or ESC \ (0x1B 0x5C) + * + * Format: ESC]1337;File=[arguments]:[base64 data]BEL + * + * @see https://iterm2.com/documentation-images.html + * + * @author Robin Chalas + * + * @internal + */ +final class ITerm2Protocol implements ImageProtocolInterface +{ + public const OSC_START = "\x1b]1337;File="; + public const BEL = "\x07"; + public const ST = "\x1b\\"; + + public function detectPastedImage(string $data): bool + { + return str_contains($data, self::OSC_START); + } + + public function decode(string $data): array + { + if (false === $start = strpos($data, self::OSC_START)) { + return ['data' => '', 'format' => null]; + } + + if (false === $end = strpos($data, self::BEL, $start)) { + $end = strpos($data, self::ST, $start); + } + + if (false === $end) { + return ['data' => '', 'format' => null]; + } + + $content = substr($data, $start + \strlen(self::OSC_START), $end - $start - \strlen(self::OSC_START)); + + if (false === $colonPos = strpos($content, ':')) { + return ['data' => '', 'format' => null]; + } + + $payload = substr($content, $colonPos + 1); + + if (false === $decodedData = base64_decode($payload, true)) { + return ['data' => '', 'format' => null]; + } + + $format = $this->detectImageFormat($decodedData); + + return ['data' => $decodedData, 'format' => $format]; + } + + public function encode(string $imageData, ?int $maxWidth = null): string + { + $arguments = [ + 'inline=1', + ]; + + if ($maxWidth) { + $arguments[] = \sprintf('width=%d', $maxWidth); + } + + $arguments[] = 'preserveAspectRatio=1'; + $argumentString = implode(';', $arguments); + $payload = base64_encode($imageData); + + return self::OSC_START.$argumentString.':'.$payload.self::BEL; + } + + public function getName(): string + { + return 'iterm2'; + } + + private function detectImageFormat(string $data): ?string + { + return match (true) { + str_starts_with($data, "\x89PNG\r\n\x1a\n") => 'png', + str_starts_with($data, "\xFF\xD8\xFF") => 'jpg', + str_starts_with($data, 'GIF87a'), str_starts_with($data, 'GIF89a') => 'gif', + str_starts_with($data, 'RIFF') && 'WEBP' === substr($data, 8, 4) => 'webp', + default => null, + }; + } +} diff --git a/vendor/symfony/console/Terminal/Image/ImageProtocolInterface.php b/vendor/symfony/console/Terminal/Image/ImageProtocolInterface.php new file mode 100644 index 000000000..d18562b21 --- /dev/null +++ b/vendor/symfony/console/Terminal/Image/ImageProtocolInterface.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Terminal\Image; + +/** + * Contract for terminal image protocol handlers. + * + * @author Robin Chalas + * + * @internal + */ +interface ImageProtocolInterface +{ + public function detectPastedImage(string $data): bool; + + /** + * @return array{data: string, format: string|null} + */ + public function decode(string $data): array; + + public function encode(string $imageData, ?int $maxWidth = null): string; + + public function getName(): string; +} diff --git a/vendor/symfony/console/Terminal/Image/KittyGraphicsProtocol.php b/vendor/symfony/console/Terminal/Image/KittyGraphicsProtocol.php new file mode 100644 index 000000000..bbc94159e --- /dev/null +++ b/vendor/symfony/console/Terminal/Image/KittyGraphicsProtocol.php @@ -0,0 +1,134 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Terminal\Image; + +/** + * Handles the Kitty Graphics Protocol for terminal image paste/display. + * + * The Kitty Graphics Protocol uses Application Programming Command (APC) sequences: + * - Start: ESC _ G (0x1B 0x5F 0x47) + * - End: ESC \ (0x1B 0x5C) - also known as ST (String Terminator) + * + * Format: ESC_G;ESC\ + * + * @see https://sw.kovidgoyal.net/kitty/graphics-protocol/ + * + * @author Robin Chalas + * + * @internal + */ +final class KittyGraphicsProtocol implements ImageProtocolInterface +{ + public const APC_START = "\x1b_G"; + public const ST = "\x1b\\"; + + public function detectPastedImage(string $data): bool + { + return str_contains($data, self::APC_START); + } + + public function decode(string $data): array + { + if (false === $start = strpos($data, self::APC_START)) { + return ['data' => '', 'format' => null]; + } + + if (false === $end = strpos($data, self::ST, $start)) { + $end = strpos($data, "\x07", $start); + } + + if (false === $end) { + return ['data' => '', 'format' => null]; + } + + $content = substr($data, $start + \strlen(self::APC_START), $end - $start - \strlen(self::APC_START)); + + if (false === $semicolonPos = strpos($content, ';')) { + return ['data' => '', 'format' => null]; + } + + $controlData = substr($content, 0, $semicolonPos); + $payload = substr($content, $semicolonPos + 1); + + $decodedData = base64_decode($payload, true); + if (false === $decodedData) { + return ['data' => '', 'format' => null]; + } + + return ['data' => $decodedData, 'format' => $this->parseFormat($controlData)]; + } + + public function encode(string $imageData, ?int $maxWidth = null): string + { + if ('png' !== $this->detectImageFormat($imageData)) { + return ''; + } + + $controlParts = ['a=T', 'f=100']; + + if (null !== $maxWidth) { + $controlParts[] = \sprintf('c=%d', $maxWidth); + } + + $controlData = implode(',', $controlParts); + $payload = base64_encode($imageData); + $maxChunkSize = 4096; + + if (\strlen($payload) <= $maxChunkSize) { + return self::APC_START.$controlData.';'.$payload.self::ST; + } + + $chunks = str_split($payload, $maxChunkSize); + $result = ''; + + foreach ($chunks as $i => $chunk) { + $isLast = ($i === \count($chunks) - 1); + $chunkControl = $i > 0 ? 'm='.($isLast ? '0' : '1') : $controlData.',m='.($isLast ? '0' : '1'); + $result .= self::APC_START.$chunkControl.';'.$chunk.self::ST; + } + + return $result; + } + + public function getName(): string + { + return 'kitty'; + } + + private function parseFormat(string $controlData): ?string + { + foreach (explode(',', $controlData) as $pair) { + $parts = explode('=', $pair, 2); + if (2 === \count($parts) && 'f' === $parts[0]) { + return match ($parts[1]) { + '24' => 'rgb', + '32' => 'rgba', + '100' => 'png', + default => null, + }; + } + } + + return null; + } + + private function detectImageFormat(string $data): ?string + { + return match (true) { + str_starts_with($data, "\x89PNG\r\n\x1a\n") => 'png', + str_starts_with($data, "\xFF\xD8\xFF") => 'jpg', + str_starts_with($data, 'GIF87a'), str_starts_with($data, 'GIF89a') => 'gif', + str_starts_with($data, 'RIFF') && 'WEBP' === substr($data, 8, 4) => 'webp', + default => null, + }; + } +} diff --git a/vendor/symfony/console/Tester/CommandTester.php b/vendor/symfony/console/Tester/CommandTester.php index 714d88ad5..2cc596f33 100644 --- a/vendor/symfony/console/Tester/CommandTester.php +++ b/vendor/symfony/console/Tester/CommandTester.php @@ -12,28 +12,94 @@ namespace Symfony\Component\Console\Tester; use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Formatter\OutputFormatter; +use Symfony\Component\Console\Formatter\OutputFormatterInterface; use Symfony\Component\Console\Input\ArrayInput; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Output\TestOutput; /** * Eases the testing of console commands. * * @author Fabien Potencier * @author Robin Chalas + * @author Théo FIDRY */ class CommandTester { use TesterTrait; private Command $command; + private OutputFormatterInterface $outputFormatter; + /** + * @param OutputInterface::VERBOSITY_* $verbosity + */ public function __construct( callable|Command $command, + private ?bool $interactive = null, + private bool $decorated = false, + private int $verbosity = OutputInterface::VERBOSITY_NORMAL, + ?OutputFormatterInterface $outputFormatter = null, ) { $this->command = $command instanceof Command ? $command : new Command(null, $command); + $this->outputFormatter = $outputFormatter ?? new OutputFormatter(); + } + + public function setInteractive(bool $interactive): void + { + $this->interactive = $interactive; + } + + public function setDecorated(bool $decorated): void + { + $this->decorated = $decorated; } /** - * Executes the command. + * @param OutputInterface::VERBOSITY_* $level + */ + public function setVerbosity(int $level): void + { + $this->verbosity = $level; + } + + public function setOutputFormatter(OutputFormatterInterface $outputFormatter): void + { + $this->outputFormatter = $outputFormatter; + } + + /** + * Runs the command with the result-based testing API. + * + * This method is intended for new tests and returns an ExecutionResult, + * which exposes output, error output and combined display in a single object. + * + * Unlike execute(), this method does not rely on state read back from TesterTrait. + * + * @param array $input An array of command arguments and options + * @param string[] $interactiveInputs An array of strings representing each input passed to the command input stream + * @param OutputInterface::VERBOSITY_* $verbosity + * @param array<\Closure(string): string> $normalizers + */ + public function run(array $input = [], array $interactiveInputs = [], ?bool $interactive = null, ?bool $decorated = null, ?int $verbosity = null, array $normalizers = []): ExecutionResult + { + $input = $this->createInput($input, $interactiveInputs, $interactive); + $testOutput = new TestOutput($decorated ?? $this->decorated, $verbosity ?? $this->verbosity, $this->outputFormatter); + $statusCode = $this->command->run($input, $testOutput); + + return new ExecutionResult($input, $statusCode, $testOutput, $normalizers); + } + + /** + * Executes the command with the legacy stateful testing API. + * + * Use this method when interacting with the historical TesterTrait-based API, + * e.g. getDisplay(), getErrorOutput(), getStatusCode() and assertCommandIsSuccessful(). + * + * Prefer run() for new tests, as it returns an ExecutionResult object with + * explicit output streams and dedicated assertions. * * Available execution options: * @@ -49,29 +115,31 @@ class CommandTester */ public function execute(array $input, array $options = []): int { - // set the command name automatically if the application requires - // this argument and no command name was passed - if (!isset($input['command']) - && (null !== $application = $this->command->getApplication()) - && $application->getDefinition()->hasArgument('command') - ) { - $input = array_merge(['command' => $this->command->getName()], $input); - } - - $this->input = new ArrayInput($input); - // Use an in-memory input stream even if no inputs are set so that QuestionHelper::ask() does not rely on the blocking STDIN. - $this->input->setStream(self::createStream($this->inputs)); - - if (isset($options['interactive'])) { - $this->input->setInteractive($options['interactive']); - } + $this->input = $this->createInput($input, $this->inputs, $options['interactive'] ?? $this->interactive); if (!isset($options['decorated'])) { - $options['decorated'] = false; + $options['decorated'] = $this->decorated; } $this->initOutput($options); return $this->statusCode = $this->command->run($this->input, $this->output); } + + private function createInput(array $input, array $interactiveInputs = [], ?bool $interactive = null): InputInterface + { + if (!isset($input['command']) && $this->command->getApplication()?->getDefinition()->hasArgument('command')) { + $input = array_merge(['command' => $this->command->getName()], $input); + } + + $input = new ArrayInput($input); + // Use an in-memory input stream even if no inputs are set so that QuestionHelper::ask() does not rely on the blocking STDIN. + $input->setStream(self::createStream($interactiveInputs)); + + if (null !== $interactive ??= $this->interactive) { + $input->setInteractive($interactive); + } + + return $input; + } } diff --git a/vendor/symfony/console/Tester/ConsoleAssertionsTrait.php b/vendor/symfony/console/Tester/ConsoleAssertionsTrait.php new file mode 100644 index 000000000..9c233aaac --- /dev/null +++ b/vendor/symfony/console/Tester/ConsoleAssertionsTrait.php @@ -0,0 +1,64 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Tester; + +use Symfony\Component\Console\Tester\Constraint\CommandFailed; +use Symfony\Component\Console\Tester\Constraint\CommandIsInvalid; +use Symfony\Component\Console\Tester\Constraint\CommandIsSuccessful; + +/** + * @psalm-require-extends \PHPUnit\Framework\TestCase + * + * @author Théo FIDRY + */ +trait ConsoleAssertionsTrait +{ + public function assertCommandIsSuccessful(ExecutionResult $result, string $message = ''): void + { + $this->assertThat($result->statusCode, new CommandIsSuccessful(), $message); + } + + public function assertCommandFailed(ExecutionResult $result, string $message = ''): void + { + $this->assertThat($result->statusCode, new CommandFailed(), $message); + } + + public function assertCommandIsInvalid(ExecutionResult $result, string $message = ''): void + { + $this->assertThat($result->statusCode, new CommandIsInvalid(), $message); + } + + public function assertCommandResultEquals(ExecutionResult $result, ?int $expectedStatusCode = null, ?string $expectedOutput = null, ?string $expectedErrorOutput = null, ?string $expectedDisplay = null, string $message = ''): void + { + $expected = []; + $actual = []; + + if (null !== $expectedStatusCode) { + $expected['statusCode'] = $expectedStatusCode; + $actual['statusCode'] = $result->statusCode; + } + if (null !== $expectedOutput) { + $expected['output'] = $expectedOutput; + $actual['output'] = $result->getOutput(); + } + if (null !== $expectedErrorOutput) { + $expected['errorOutput'] = $expectedErrorOutput; + $actual['errorOutput'] = $result->getErrorOutput(); + } + if (null !== $expectedDisplay) { + $expected['display'] = $expectedDisplay; + $actual['display'] = $result->getDisplay(); + } + + $this->assertEquals($expected, $actual, $message); + } +} diff --git a/vendor/symfony/console/Tester/Constraint/CommandFailed.php b/vendor/symfony/console/Tester/Constraint/CommandFailed.php new file mode 100644 index 000000000..6686b5299 --- /dev/null +++ b/vendor/symfony/console/Tester/Constraint/CommandFailed.php @@ -0,0 +1,43 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Tester\Constraint; + +use PHPUnit\Framework\Constraint\Constraint; +use Symfony\Component\Console\Command\Command; + +final class CommandFailed extends Constraint +{ + public function toString(): string + { + return 'failed'; + } + + protected function matches($other): bool + { + return Command::FAILURE === $other; + } + + protected function failureDescription($other): string + { + return 'the command '.$this->toString(); + } + + protected function additionalFailureDescription($other): string + { + $mapping = [ + Command::SUCCESS => 'Command was successful.', + Command::INVALID => 'Command was invalid.', + ]; + + return $mapping[$other] ?? \sprintf('Command returned exit status %d.', $other); + } +} diff --git a/vendor/symfony/console/Tester/Constraint/CommandIsInvalid.php b/vendor/symfony/console/Tester/Constraint/CommandIsInvalid.php new file mode 100644 index 000000000..3d0357d05 --- /dev/null +++ b/vendor/symfony/console/Tester/Constraint/CommandIsInvalid.php @@ -0,0 +1,43 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Tester\Constraint; + +use PHPUnit\Framework\Constraint\Constraint; +use Symfony\Component\Console\Command\Command; + +final class CommandIsInvalid extends Constraint +{ + public function toString(): string + { + return 'is invalid'; + } + + protected function matches($other): bool + { + return Command::INVALID === $other; + } + + protected function failureDescription($other): string + { + return 'the command '.$this->toString(); + } + + protected function additionalFailureDescription($other): string + { + $mapping = [ + Command::SUCCESS => 'Command was successful.', + Command::FAILURE => 'Command failed.', + ]; + + return $mapping[$other] ?? \sprintf('Command returned exit status %d.', $other); + } +} diff --git a/vendor/symfony/console/Tester/ExecutionResult.php b/vendor/symfony/console/Tester/ExecutionResult.php new file mode 100644 index 000000000..e9897eece --- /dev/null +++ b/vendor/symfony/console/Tester/ExecutionResult.php @@ -0,0 +1,99 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Console\Tester; + +use Symfony\Component\Console\Output\TestOutput; + +/** + * @author Théo FIDRY + */ +final class ExecutionResult +{ + // This is purely for memoizing purposes + private array $results = []; + + /** + * @param array<\Closure(string): string> $normalizers + */ + public function __construct( + public readonly string $input, + public readonly int $statusCode, + private readonly TestOutput $output, + private readonly array $normalizers = [], + ) { + } + + /** + * Gets the display returned by the execution of the command or application. The display combines what was + * written on both the output and error output. + */ + public function getDisplay(bool $normalize = true): string + { + return $this->results['display'][$normalize] ??= $this->normalize($this->output->getDisplayContents(), $normalize); + } + + /** + * Gets the output written to the output by the command or application. + */ + public function getOutput(bool $normalize = false): string + { + return $this->results['output'][$normalize] ??= $this->normalize($this->output->getOutputContents(), $normalize); + } + + /** + * Gets the output written to the error output by the command or application. + */ + public function getErrorOutput(bool $normalize = false): string + { + return $this->results['errorOutput'][$normalize] ??= $this->normalize($this->output->getErrorOutputContents(), $normalize); + } + + /** + * @return $this + */ + public function dump(): static + { + $summary = "CLI: {$this->input}, Status: {$this->statusCode}"; + $output = [ + $summary, + $this->getOutput(true), + $this->getErrorOutput(true), + $summary, + ]; + + \call_user_func( + \function_exists('dump') ? 'dump' : 'var_dump', + implode("\n\n", array_filter($output)), + ); + + return $this; + } + + public function dd(): never + { + $this->dump(); + exit(1); + } + + private function normalize(string $value, bool $normalize): string + { + if (!$normalize) { + return $value; + } + + foreach ($this->normalizers as $normalizer) { + $value = $normalizer($value); + } + + return str_replace(\PHP_EOL, "\n", $value); + } +} diff --git a/vendor/symfony/console/Tester/TesterTrait.php b/vendor/symfony/console/Tester/TesterTrait.php index 1f0a55521..293f8d7d4 100644 --- a/vendor/symfony/console/Tester/TesterTrait.php +++ b/vendor/symfony/console/Tester/TesterTrait.php @@ -16,6 +16,8 @@ use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\ConsoleOutput; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Output\StreamOutput; +use Symfony\Component\Console\Tester\Constraint\CommandFailed; +use Symfony\Component\Console\Tester\Constraint\CommandIsInvalid; use Symfony\Component\Console\Tester\Constraint\CommandIsSuccessful; /** @@ -108,6 +110,16 @@ trait TesterTrait Assert::assertThat($this->statusCode, new CommandIsSuccessful(), $message); } + public function assertCommandFailed(string $message = ''): void + { + Assert::assertThat($this->statusCode, new CommandFailed(), $message); + } + + public function assertCommandIsInvalid(string $message = ''): void + { + Assert::assertThat($this->statusCode, new CommandIsInvalid(), $message); + } + /** * Sets the user inputs. * diff --git a/vendor/symfony/console/composer.json b/vendor/symfony/console/composer.json index 109cdd762..474bd3a7f 100644 --- a/vendor/symfony/console/composer.json +++ b/vendor/symfony/console/composer.json @@ -16,34 +16,36 @@ } ], "require": { - "php": ">=8.2", + "php": ">=8.4.1", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php85": "^1.32", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^7.2|^8.0" + "symfony/string": "^7.4.6|^8.0.6" }, "require-dev": { - "symfony/config": "^6.4|^7.0|^8.0", - "symfony/event-dispatcher": "^6.4|^7.0|^8.0", - "symfony/http-foundation": "^6.4|^7.0|^8.0", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/lock": "^6.4|^7.0|^8.0", - "symfony/messenger": "^6.4|^7.0|^8.0", - "symfony/process": "^6.4|^7.0|^8.0", - "symfony/stopwatch": "^6.4|^7.0|^8.0", - "symfony/var-dumper": "^6.4|^7.0|^8.0", - "psr/log": "^1|^2|^3" + "psr/log": "^1|^2|^3", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^8.1", + "symfony/event-dispatcher": "^8.1", + "symfony/filesystem": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/lock": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/uid": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/dotenv": "<6.4", - "symfony/event-dispatcher": "<6.4", - "symfony/lock": "<6.4", - "symfony/process": "<6.4" + "symfony/dependency-injection": "<8.1", + "symfony/event-dispatcher": "<8.1" }, "autoload": { "psr-4": { "Symfony\\Component\\Console\\": "" }, diff --git a/vendor/symfony/error-handler/CHANGELOG.md b/vendor/symfony/error-handler/CHANGELOG.md index cd8d07db6..61136f305 100644 --- a/vendor/symfony/error-handler/CHANGELOG.md +++ b/vendor/symfony/error-handler/CHANGELOG.md @@ -1,6 +1,13 @@ CHANGELOG ========= +8.1 +--- + + * Add argument `$deprecationsNamespacesMapping` to `DebugClassLoader::enable()` to configure namespace-to-vendor remapping for deprecation checks + * Trigger `@method` deprecation notices on abstract classes + * Add `MaxExecutionTimeError` and skip `http_response_code()` / `header()` calls in the default exception renderer for `OutOfMemoryError` and `MaxExecutionTimeError` to avoid PHP 8.5+ warnings + 7.3 --- diff --git a/vendor/symfony/error-handler/DebugClassLoader.php b/vendor/symfony/error-handler/DebugClassLoader.php index c52f53189..b69ef4009 100644 --- a/vendor/symfony/error-handler/DebugClassLoader.php +++ b/vendor/symfony/error-handler/DebugClassLoader.php @@ -154,6 +154,16 @@ class DebugClassLoader private static array $methodTraits = []; private static array $fileOffsets = []; + /** + * @var array|null Re-mapping configuration for vendor comparison. Maps namespace prefixes to the value to be used for comparison. + */ + private static ?array $namespaceRemappings = null; + + /** + * @var array Caches vendor comparison strings. Maps FQCNs to vendor prefixes; true = root namespace (matches every vendor). + */ + private static array $vendorPrefixCache = []; + public function __construct(callable $classLoader) { $this->classLoader = $classLoader; @@ -200,9 +210,21 @@ class DebugClassLoader /** * Wraps all autoloaders. + * + * @param array|null $deprecationsNamespacesMapping Overrides the vendor-boundary detection used to decide whether deprecation notices + * are emitted. Each key is a fully-qualified class name or namespace prefix of the + * class being loaded; the corresponding value is the vendor string it will be + * compared against instead of its natural first namespace segment. Classes resolving + * to the same value (whether through this mapping or through a natural first-segment + * collision with such a value) are treated as belonging to the same vendor and will + * not emit deprecation or @internal notices against each other; pick a token unlikely + * to clash with any real vendor name to avoid silent merges. + * Pass null (default) to use the first namespace segment as vendor name. */ - public static function enable(): void + public static function enable(/* ?array $deprecationsNamespacesMapping = null */): void { + $deprecationsNamespacesMapping = 1 <= \func_num_args() ? func_get_arg(0) : null; + // Ensures we don't hit https://bugs.php.net/42098 class_exists(ErrorHandler::class); class_exists(LogLevel::class); @@ -211,6 +233,9 @@ class DebugClassLoader return; } + self::$namespaceRemappings = $deprecationsNamespacesMapping; + self::$vendorPrefixCache = []; + foreach ($functions as $function) { spl_autoload_unregister($function); } @@ -233,6 +258,9 @@ class DebugClassLoader return; } + self::$namespaceRemappings = null; + self::$vendorPrefixCache = []; + foreach ($functions as $function) { spl_autoload_unregister($function); } @@ -391,19 +419,11 @@ class DebugClassLoader } $deprecations = []; + // $className is a human-readable name used in deprecation messages: for anonymous classes + // (whose internal name contains "@anonymous\0" followed by a file path) it is replaced + // by a display-friendly form such as "ParentClass@anonymous"; for named classes it equals $class. $className = str_contains($class, "@anonymous\0") ? (get_parent_class($class) ?: key(class_implements($class)) ?: 'class').'@anonymous' : $class; - // Don't trigger deprecations for classes in the same vendor - if ($class !== $className) { - $vendor = $refl->getFileName() && preg_match('/^namespace ([^;\\\\\s]++)[;\\\\]/m', @file_get_contents($refl->getFileName()) ?: '', $vendor) ? $vendor[1].'\\' : ''; - $vendorLen = \strlen($vendor); - } elseif (2 > $vendorLen = 1 + (strpos($class, '\\') ?: strpos($class, '_'))) { - $vendorLen = 0; - $vendor = ''; - } else { - $vendor = str_replace('_', '\\', substr($class, 0, $vendorLen)); - } - $parent = get_parent_class($class) ?: null; self::$returnTypes[$class] = []; $classIsTemplate = false; @@ -418,7 +438,7 @@ class DebugClassLoader } } - if ($refl->isInterface() && isset($doc['method'])) { + if (($refl->isInterface() || $refl->isAbstract()) && isset($doc['method'])) { foreach ($doc['method'] as $name => [$static, $returnType, $signature, $description]) { if ($refl->hasMethod($static ? '__callStatic' : '__call')) { // When the interface has "virtual" @method declarations but at the same time contains a __call/__callStatic magic method, @@ -428,6 +448,11 @@ class DebugClassLoader // (missing notices) in the case that such interfaces are later amended with actual (real) methods. continue; } + if ($refl->hasMethod($name)) { + // The abstract class already declares the method (abstract or with a default implementation), + // so the @method annotation is just documentation; no deprecation should be triggered for subclasses. + continue; + } self::$method[$class][] = [$class, $static, $returnType, $name.$signature, $description]; if ('' !== $returnType) { @@ -464,13 +489,13 @@ class DebugClassLoader if (!isset(self::$checkedClasses[$use])) { $this->checkClass($use); } - if (isset(self::$deprecated[$use]) && strncmp($vendor, str_replace('_', '\\', $use), $vendorLen) && !isset(self::$deprecated[$class])) { + if (isset(self::$deprecated[$use]) && !isset(self::$deprecated[$class]) && !$this->areFromTheSameVendor($class, $use)) { $type = class_exists($class, false) ? 'class' : (interface_exists($class, false) ? 'interface' : 'trait'); $verb = class_exists($use, false) || interface_exists($class, false) ? 'extends' : (interface_exists($use, false) ? 'implements' : 'uses'); $deprecations[] = \sprintf('The "%s" %s %s "%s" that is deprecated%s', $className, $type, $verb, $use, self::$deprecated[$use]); } - if (isset(self::$internal[$use]) && strncmp($vendor, str_replace('_', '\\', $use), $vendorLen)) { + if (isset(self::$internal[$use]) && !$this->areFromTheSameVendor($class, $use)) { $deprecations[] = \sprintf('The "%s" %s is considered internal%s It may change without further notice. You should not use it from "%s".', $use, class_exists($use, false) ? 'class' : (interface_exists($use, false) ? 'interface' : 'trait'), self::$internal[$use], $className); } if (isset(self::$method[$use])) { @@ -483,7 +508,7 @@ class DebugClassLoader self::$method[$class] = self::$method[$use]; } } else { - if (!strncmp($vendor, str_replace('_', '\\', $use), $vendorLen) + if ($this->areFromTheSameVendor($class, $use) && str_starts_with($className, 'Symfony\\') && (!class_exists(InstalledVersions::class) || 'symfony/symfony' !== InstalledVersions::getRootPackage()['name']) @@ -551,15 +576,9 @@ class DebugClassLoader continue; } - if (null === $ns = self::$methodTraits[$method->getFileName()][$method->getStartLine()] ?? null) { - $ns = $vendor; - $len = $vendorLen; - } elseif (2 > $len = 1 + (strpos($ns, '\\') ?: strpos($ns, '_'))) { - $len = 0; - $ns = ''; - } else { - $ns = str_replace('_', '\\', substr($ns, 0, $len)); - } + // If this method was introduced via a trait, use the trait's vendor for checks + // rather than the containing class' vendor. + $traitClass = self::$methodTraits[$method->getFileName()][$method->getStartLine()] ?? null; if ($parent && isset(self::$finalMethods[$parent][$method->name])) { [$declaringClass, $message] = self::$finalMethods[$parent][$method->name]; @@ -568,7 +587,7 @@ class DebugClassLoader if (isset(self::$internalMethods[$class][$method->name])) { [$declaringClass, $message] = self::$internalMethods[$class][$method->name]; - if (strncmp($ns, $declaringClass, $len)) { + if (!$this->areFromTheSameVendor($traitClass ?? $class, $declaringClass)) { $deprecations[] = \sprintf('The "%s::%s()" method is considered internal%s It may change without further notice. You should not extend it from "%s".', $declaringClass, $method->name, $message, $className); } } @@ -620,7 +639,7 @@ class DebugClassLoader if ($canAddReturnType && 'docblock' !== $this->patchTypes['force']) { $this->patchMethod($method, $returnType, $declaringFile, $normalizedType); } - if (!isset($doc['deprecated']) && strncmp($ns, $declaringClass, $len)) { + if (!isset($doc['deprecated']) && !$this->areFromTheSameVendor($traitClass ?? $class, $declaringClass)) { if ('docblock' === $this->patchTypes['force']) { $this->patchMethod($method, $returnType, $declaringFile, $normalizedType); } elseif ('' !== $declaringClass && $this->patchTypes['deprecations']) { @@ -837,6 +856,60 @@ class DebugClassLoader return $ownInterfaces; } + /** + * @param string $class The class being loaded and inspected for deprecation violations + * @param string $use The parent class, interface, or trait it extends, implements, or uses + */ + private function areFromTheSameVendor(string $class, string $use): bool + { + $vendor = self::$vendorPrefixCache[$class] ?? $this->getVendorEntry($class); + + return true === $vendor || $vendor === (self::$vendorPrefixCache[$use] ?? $this->getVendorEntry($use)); + } + + /** + * Returns the vendor string for a class, computing and caching it if necessary. Takes + * remapping into account, see {@see enable()}. + * + * @return true|string the vendor prefix to consider; true when the class is in the root namespace + * (matches every vendor) + */ + private function getVendorEntry(string $class): bool|string + { + if (isset(self::$vendorPrefixCache[$class])) { + return self::$vendorPrefixCache[$class]; + } + + // Anonymous classes carry a file path in their internal name instead of a namespace, + // so the vendor prefix must be derived from the namespace declared in their source file. + // Named classes use the class name itself as the lookup key. + if (str_contains($class, "@anonymous\0")) { + $refl = new \ReflectionClass($class); + $lookupKey = $refl->getFileName() && preg_match('/^namespace ([^;\\\\\s]++)[;\\\\]/m', @file_get_contents($refl->getFileName()) ?: '', $m) ? $m[1] : ''; + } else { + $lookupKey = $class; + } + + if (\is_array(self::$namespaceRemappings)) { + // Find longest namespace prefix for which a mapping exists + $mappedNamespace = $lookupKey; + while (!isset(self::$namespaceRemappings[$mappedNamespace]) && false !== $pos = strrpos($mappedNamespace, '\\')) { + $mappedNamespace = substr($mappedNamespace, 0, $pos); + } + if (isset(self::$namespaceRemappings[$mappedNamespace])) { + return self::$vendorPrefixCache[$class] = self::$namespaceRemappings[$mappedNamespace]; + } + } + + $sep = strpos($lookupKey, '\\') ?: strpos($lookupKey, '_'); + if (!$sep) { + // The class is in the root namespace: it matches every vendor. + return self::$vendorPrefixCache[$class] = true; + } + + return self::$vendorPrefixCache[$class] = substr($lookupKey, 0, $sep); + } + private function setReturnType(string $types, string $class, string $method, string $filename, ?string $parent, ?\ReflectionType $returnType = null): void { if ('__construct' === $method) { @@ -903,7 +976,7 @@ class DebugClassLoader $constant = new \ReflectionClassConstant($definingClass, $constantName); - if (\PHP_VERSION_ID >= 80300 && $constantType = $constant->getType()) { + if ($constantType = $constant->getType()) { if ($constantType instanceof \ReflectionNamedType) { $n = $constantType->getName(); } else { diff --git a/vendor/symfony/error-handler/Error/MaxExecutionTimeError.php b/vendor/symfony/error-handler/Error/MaxExecutionTimeError.php new file mode 100644 index 000000000..edbb5ba4f --- /dev/null +++ b/vendor/symfony/error-handler/Error/MaxExecutionTimeError.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\ErrorHandler\Error; + +/** + * Raised on shutdown when PHP's max_execution_time is exceeded. + * + * Instances bypass http_response_code() and header() calls in the default + * renderer to avoid PHP 8.5+ warnings when adjusting response state after + * the timeout has fired. + */ +class MaxExecutionTimeError extends FatalError +{ +} diff --git a/vendor/symfony/error-handler/Error/OutOfMemoryError.php b/vendor/symfony/error-handler/Error/OutOfMemoryError.php index d685c3d36..d0b3110c1 100644 --- a/vendor/symfony/error-handler/Error/OutOfMemoryError.php +++ b/vendor/symfony/error-handler/Error/OutOfMemoryError.php @@ -11,6 +11,13 @@ namespace Symfony\Component\ErrorHandler\Error; +/** + * Raised on shutdown when PHP exhausts its memory_limit. + * + * Instances bypass http_response_code() and header() calls in the default + * renderer to avoid PHP 8.5+ warnings when adjusting response state after + * the fatal error has fired. + */ class OutOfMemoryError extends FatalError { } diff --git a/vendor/symfony/error-handler/ErrorHandler.php b/vendor/symfony/error-handler/ErrorHandler.php index 5a344e626..5b8bcb896 100644 --- a/vendor/symfony/error-handler/ErrorHandler.php +++ b/vendor/symfony/error-handler/ErrorHandler.php @@ -14,6 +14,7 @@ namespace Symfony\Component\ErrorHandler; use Psr\Log\LoggerInterface; use Psr\Log\LogLevel; use Symfony\Component\ErrorHandler\Error\FatalError; +use Symfony\Component\ErrorHandler\Error\MaxExecutionTimeError; use Symfony\Component\ErrorHandler\Error\OutOfMemoryError; use Symfony\Component\ErrorHandler\ErrorEnhancer\ClassNotFoundErrorEnhancer; use Symfony\Component\ErrorHandler\ErrorEnhancer\ErrorEnhancerInterface; @@ -156,6 +157,8 @@ class ErrorHandler /** * Calls a function and turns any PHP error into \ErrorException. * + * @param-immediately-invoked-callable $function + * * @throws \ErrorException When $function(...$arguments) triggers a PHP error */ public static function call(callable $function, mixed ...$arguments): mixed @@ -181,11 +184,6 @@ class ErrorHandler ?BufferingLogger $bootstrappingLogger = null, private bool $debug = false, ) { - if (\PHP_VERSION_ID < 80400) { - $this->levels[\E_STRICT] = 'Runtime Notice'; - $this->loggers[\E_STRICT] = [null, LogLevel::ERROR]; - } - if ($bootstrappingLogger) { $this->bootstrappingLogger = $bootstrappingLogger; $this->setDefaultLogger($bootstrappingLogger); @@ -435,22 +433,6 @@ class ErrorHandler return true; } } else { - if (\PHP_VERSION_ID < 80303 && str_contains($message, '@anonymous')) { - $backtrace = debug_backtrace(false, 5); - - for ($i = 1; isset($backtrace[$i]); ++$i) { - if (isset($backtrace[$i]['function'], $backtrace[$i]['args'][0]) - && ('trigger_error' === $backtrace[$i]['function'] || 'user_error' === $backtrace[$i]['function']) - ) { - if ($backtrace[$i]['args'][0] !== $message) { - $message = $backtrace[$i]['args'][0]; - } - - break; - } - } - } - if (str_contains($message, "@anonymous\0")) { $message = $this->parseAnonymousClass($message); $logMessage = $this->levels[$type].': '.$message; @@ -621,6 +603,8 @@ class ErrorHandler if (str_starts_with($error['message'], 'Allowed memory') || str_starts_with($error['message'], 'Out of memory')) { $fatalError = new OutOfMemoryError($handler->levels[$error['type']].': '.$error['message'], 0, $error, 2, false, $trace); + } elseif (str_starts_with($error['message'], 'Maximum execution time of')) { + $fatalError = new MaxExecutionTimeError($handler->levels[$error['type']].': '.$error['message'], 0, $error, 2, false, $trace); } else { $fatalError = new FatalError($handler->levels[$error['type']].': '.$error['message'], 0, $error, 2, true, $trace); } @@ -652,22 +636,22 @@ class ErrorHandler { $renderer = \in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true) ? new CliErrorRenderer() : new HtmlErrorRenderer($this->debug); - $exception = $renderer->render($exception); + $flattenedException = $renderer->render($exception); - if (!headers_sent()) { - http_response_code($exception->getStatusCode()); + if (!headers_sent() && !$exception instanceof OutOfMemoryError && !$exception instanceof MaxExecutionTimeError) { + http_response_code($flattenedException->getStatusCode()); - foreach ($exception->getHeaders() as $name => $value) { + foreach ($flattenedException->getHeaders() as $name => $value) { header($name.': '.$value, false); } } - echo $exception->getAsString(); + echo $flattenedException->getAsString(); } public function enhanceError(\Throwable $exception): \Throwable { - if ($exception instanceof OutOfMemoryError) { + if ($exception instanceof OutOfMemoryError || $exception instanceof MaxExecutionTimeError) { return $exception; } diff --git a/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php b/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php index a7822ad8c..1d96d82c0 100644 --- a/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php +++ b/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php @@ -255,19 +255,11 @@ class HtmlErrorRenderer implements ErrorRendererInterface // highlight_file could throw warnings // see https://bugs.php.net/25725 $code = @highlight_file($file, true); - if (\PHP_VERSION_ID >= 80300) { - // remove main pre/code tags - $code = preg_replace('#^\s*(.*)\s*#s', '\\1', $code); - // split multiline span tags - $code = preg_replace_callback('#]++)>((?:[^<\\n]*+\\n)++[^<]*+)#', static fn ($m) => "".str_replace("\n", "\n", $m[2]).'', $code); - $content = explode("\n", $code); - } else { - // remove main code/span tags - $code = preg_replace('#^\s*(.*)\s*#s', '\\1', $code); - // split multiline spans - $code = preg_replace_callback('#]++)>((?:[^<]*+
    )++[^<]*+)
    #', static fn ($m) => "".str_replace('
    ', "

    ", $m[2]).'', $code); - $content = explode('
    ', $code); - } + // remove main pre/code tags + $code = preg_replace('#^\s*(.*)\s*#s', '\\1', $code); + // split multiline span tags + $code = preg_replace_callback('#]++)>((?:[^<\\n]*+\\n)++[^<]*+)#', static fn ($m) => "".str_replace("\n", "\n", $m[2]).'', $code); + $content = explode("\n", $code); $lines = []; if (0 > $srcContext) { diff --git a/vendor/symfony/error-handler/README.md b/vendor/symfony/error-handler/README.md index 68904dd70..4f4f24b54 100644 --- a/vendor/symfony/error-handler/README.md +++ b/vendor/symfony/error-handler/README.md @@ -35,6 +35,13 @@ $data = ErrorHandler::call(static function () use ($filename, $datetimeFormat) { }); ``` +Sponsor +------- + +This package is looking for a [backer][1]. + +Help Symfony by [sponsoring][3] its development! + Resources --------- @@ -42,3 +49,6 @@ Resources * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) + +[1]: https://symfony.com/backers +[3]: https://symfony.com/sponsor diff --git a/vendor/symfony/error-handler/composer.json b/vendor/symfony/error-handler/composer.json index f0ee993da..eebd8ebec 100644 --- a/vendor/symfony/error-handler/composer.json +++ b/vendor/symfony/error-handler/composer.json @@ -16,21 +16,20 @@ } ], "require": { - "php": ">=8.2", + "php": ">=8.4.1", "psr/log": "^1|^2|^3", "symfony/polyfill-php85": "^1.32", - "symfony/var-dumper": "^6.4|^7.0|^8.0" + "symfony/var-dumper": "^7.4|^8.0" }, "require-dev": { - "symfony/console": "^6.4|^7.0|^8.0", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/serializer": "^6.4|^7.0|^8.0", + "symfony/console": "^7.4|^8.0", "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", "symfony/webpack-encore-bundle": "^1.0|^2.0" }, "conflict": { - "symfony/deprecation-contracts": "<2.5", - "symfony/http-kernel": "<6.4" + "symfony/deprecation-contracts": "<2.5" }, "autoload": { "psr-4": { "Symfony\\Component\\ErrorHandler\\": "" }, diff --git a/vendor/symfony/finder/CHANGELOG.md b/vendor/symfony/finder/CHANGELOG.md index e83830247..3afdaa6d6 100644 --- a/vendor/symfony/finder/CHANGELOG.md +++ b/vendor/symfony/finder/CHANGELOG.md @@ -1,6 +1,11 @@ CHANGELOG ========= +8.1 +--- + + * Add `Finder::useUnixPaths()` to force forward slashes as the directory separator in returned paths + 6.4 --- diff --git a/vendor/symfony/finder/Finder.php b/vendor/symfony/finder/Finder.php index 4264db1b3..c9b6ef855 100644 --- a/vendor/symfony/finder/Finder.php +++ b/vendor/symfony/finder/Finder.php @@ -54,6 +54,7 @@ class Finder implements \IteratorAggregate, \Countable private array $depths = []; private array $sizes = []; private bool $followLinks = false; + private bool $unixPaths = false; private bool $reverseSorting = false; private \Closure|int|false $sort = false; private int $ignore = 0; @@ -611,6 +612,20 @@ class Finder implements \IteratorAggregate, \Countable return $this; } + /** + * Forces forward slashes as the directory separator in returned paths. + * + * This is intended for Windows, where the native separator is "\". + * + * @return $this + */ + public function useUnixPaths(): static + { + $this->unixPaths = true; + + return $this; + } + /** * Tells finder to ignore unreadable directories. * @@ -782,6 +797,10 @@ class Finder implements \IteratorAggregate, \Countable $flags |= \RecursiveDirectoryIterator::FOLLOW_SYMLINKS; } + if ($this->unixPaths) { + $flags |= \RecursiveDirectoryIterator::UNIX_PATHS; + } + $iterator = new Iterator\RecursiveDirectoryIterator($dir, $flags, $this->ignoreUnreadableDirs); if ($exclude) { diff --git a/vendor/symfony/finder/README.md b/vendor/symfony/finder/README.md index 22bdeb9bc..bb27082f4 100644 --- a/vendor/symfony/finder/README.md +++ b/vendor/symfony/finder/README.md @@ -4,6 +4,13 @@ Finder Component The Finder component finds files and directories via an intuitive fluent interface. +Sponsor +------- + +This package is looking for a [backer][1]. + +Help Symfony by [sponsoring][3] its development! + Resources --------- @@ -12,3 +19,6 @@ Resources * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) + +[1]: https://symfony.com/backers +[3]: https://symfony.com/sponsor diff --git a/vendor/symfony/finder/composer.json b/vendor/symfony/finder/composer.json index 52bdb4816..0db1fc60b 100644 --- a/vendor/symfony/finder/composer.json +++ b/vendor/symfony/finder/composer.json @@ -16,10 +16,10 @@ } ], "require": { - "php": ">=8.2" + "php": ">=8.4.1" }, "require-dev": { - "symfony/filesystem": "^6.4|^7.0|^8.0" + "symfony/filesystem": "^7.4|^8.0" }, "autoload": { "psr-4": { "Symfony\\Component\\Finder\\": "" }, diff --git a/vendor/symfony/http-foundation/BinaryFileResponse.php b/vendor/symfony/http-foundation/BinaryFileResponse.php index e139912d0..7fd6becfc 100644 --- a/vendor/symfony/http-foundation/BinaryFileResponse.php +++ b/vendor/symfony/http-foundation/BinaryFileResponse.php @@ -12,6 +12,7 @@ namespace Symfony\Component\HttpFoundation; use Symfony\Component\HttpFoundation\File\Exception\FileException; +use Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException; use Symfony\Component\HttpFoundation\File\File; /** @@ -42,6 +43,9 @@ class BinaryFileResponse extends Response * @param string|null $contentDisposition The type of Content-Disposition to set automatically with the filename * @param bool $autoEtag Whether the ETag header should be automatically set * @param bool $autoLastModified Whether the Last-Modified header should be automatically set + * + * @throws FileNotFoundException If the given path is not a file + * @throws FileException If the file is not readable */ public function __construct(\SplFileInfo|string $file, int $status = 200, array $headers = [], bool $public = true, ?string $contentDisposition = null, bool $autoEtag = false, bool $autoLastModified = true) { @@ -59,7 +63,8 @@ class BinaryFileResponse extends Response * * @return $this * - * @throws FileException + * @throws FileNotFoundException If the given path is not a file + * @throws FileException If the file is not readable */ public function setFile(\SplFileInfo|string $file, ?string $contentDisposition = null, bool $autoEtag = false, bool $autoLastModified = true): static { @@ -393,4 +398,12 @@ class BinaryFileResponse extends Response return $this; } + + /** + * Returns whether the file will be unlinked after the request is sent. + */ + public function shouldDeleteFileAfterSend(): bool + { + return $this->deleteFileAfterSend; + } } diff --git a/vendor/symfony/http-foundation/CHANGELOG.md b/vendor/symfony/http-foundation/CHANGELOG.md index 321d58e75..7c702c90f 100644 --- a/vendor/symfony/http-foundation/CHANGELOG.md +++ b/vendor/symfony/http-foundation/CHANGELOG.md @@ -1,6 +1,28 @@ CHANGELOG ========= +8.1 +--- + + * Add `BinaryFileResponse::shouldDeleteFileAfterSend()` + * Deprecate setting public properties of `Request` and `Response` objects directly; use setters or constructor arguments instead + * Add `SessionHasFlashMessage` test constraint + * `Response::__construct()` now accepts a `ResponseHeaderBag` as its third argument + * `ParameterBag::getInt()` and `ParameterBag::getBoolean()` now throw `UnexpectedValueException` instead of silently returning `0`/`false` when the value cannot be converted + +8.0 +--- + + * Drop HTTP method override support for methods GET, HEAD, CONNECT and TRACE + * Add argument `$subtypeFallback` to `Request::getFormat()` + * Remove the following deprecated session options from `NativeSessionStorage`: `referer_check`, `use_only_cookies`, `use_trans_sid`, `sid_length`, `sid_bits_per_character`, `trans_sid_hosts`, `trans_sid_tags` + * Trigger PHP warning when using `Request::sendHeaders()` after headers have already been sent; use a `StreamedResponse` instead + * Add arguments `$v4Bytes` and `$v6Bytes` to `IpUtils::anonymize()` + * Add argument `$partitioned` to `ResponseHeaderBag::clearCookie()` + * Add argument `$expiration` to `UriSigner::sign()` + * Remove `Request::get()`, use properties `->attributes`, `query` or `request` directly instead + * Remove accepting null `$format` argument to `Request::setFormat()` + 7.4 --- diff --git a/vendor/symfony/http-foundation/InputBag.php b/vendor/symfony/http-foundation/InputBag.php index 8c153dc30..f04a1cf10 100644 --- a/vendor/symfony/http-foundation/InputBag.php +++ b/vendor/symfony/http-foundation/InputBag.php @@ -83,7 +83,27 @@ final class InputBag extends ParameterBag } /** - * Returns the parameter value converted to an enum. + * Returns the input value converted to integer. + * + * @throws BadRequestException if the value cannot be converted to integer + */ + public function getInt(string $key, int $default = 0): int + { + return $this->filter($key, $default, \FILTER_VALIDATE_INT, ['flags' => \FILTER_REQUIRE_SCALAR | \FILTER_NULL_ON_FAILURE]) ?? throw new BadRequestException(\sprintf('Input value "%s" cannot be converted to "int".', $key)); + } + + /** + * Returns the input value converted to boolean. + * + * @throws BadRequestException if the value cannot be converted to a boolean + */ + public function getBoolean(string $key, bool $default = false): bool + { + return $this->filter($key, $default, \FILTER_VALIDATE_BOOL, ['flags' => \FILTER_REQUIRE_SCALAR | \FILTER_NULL_ON_FAILURE]) ?? throw new BadRequestException(\sprintf('Input value "%s" cannot be converted to "bool".', $key)); + } + + /** + * Returns the input value converted to an enum. * * @template T of \BackedEnum * @@ -106,7 +126,7 @@ final class InputBag extends ParameterBag } /** - * Returns the parameter value converted to string. + * Returns the input value converted to string. * * @throws BadRequestException if the input contains a non-scalar value */ diff --git a/vendor/symfony/http-foundation/IpUtils.php b/vendor/symfony/http-foundation/IpUtils.php index 35cd3bcaf..7aa664696 100644 --- a/vendor/symfony/http-foundation/IpUtils.php +++ b/vendor/symfony/http-foundation/IpUtils.php @@ -189,11 +189,8 @@ class IpUtils * @param int<0, 4> $v4Bytes * @param int<0, 16> $v6Bytes */ - public static function anonymize(string $ip/* , int $v4Bytes = 1, int $v6Bytes = 8 */): string + public static function anonymize(string $ip, int $v4Bytes = 1, int $v6Bytes = 8): string { - $v4Bytes = 1 < \func_num_args() ? func_get_arg(1) : 1; - $v6Bytes = 2 < \func_num_args() ? func_get_arg(2) : 8; - if ($v4Bytes < 0 || $v6Bytes < 0) { throw new \InvalidArgumentException('Cannot anonymize less than 0 bytes.'); } diff --git a/vendor/symfony/http-foundation/ParameterBag.php b/vendor/symfony/http-foundation/ParameterBag.php index 5e36cf2f9..2f2d67905 100644 --- a/vendor/symfony/http-foundation/ParameterBag.php +++ b/vendor/symfony/http-foundation/ParameterBag.php @@ -163,7 +163,7 @@ class ParameterBag implements \IteratorAggregate, \Countable */ public function getInt(string $key, int $default = 0): int { - return $this->filter($key, $default, \FILTER_VALIDATE_INT, ['flags' => \FILTER_REQUIRE_SCALAR]); + return $this->filter($key, $default, \FILTER_VALIDATE_INT, ['flags' => \FILTER_REQUIRE_SCALAR | \FILTER_NULL_ON_FAILURE]) ?? throw new UnexpectedValueException(\sprintf('Parameter value "%s" cannot be converted to "int".', $key)); } /** @@ -173,7 +173,7 @@ class ParameterBag implements \IteratorAggregate, \Countable */ public function getBoolean(string $key, bool $default = false): bool { - return $this->filter($key, $default, \FILTER_VALIDATE_BOOL, ['flags' => \FILTER_REQUIRE_SCALAR]); + return $this->filter($key, $default, \FILTER_VALIDATE_BOOL, ['flags' => \FILTER_REQUIRE_SCALAR | \FILTER_NULL_ON_FAILURE]) ?? throw new UnexpectedValueException(\sprintf('Parameter value "%s" cannot be converted to "bool".', $key)); } /** @@ -192,9 +192,7 @@ class ParameterBag implements \IteratorAggregate, \Countable */ public function getEnum(string $key, string $class, ?\BackedEnum $default = null): ?\BackedEnum { - $value = $this->get($key); - - if (null === $value) { + if (null === $value = $this->get($key)) { return $default; } diff --git a/vendor/symfony/http-foundation/README.md b/vendor/symfony/http-foundation/README.md index 5cf900744..ed4883d6e 100644 --- a/vendor/symfony/http-foundation/README.md +++ b/vendor/symfony/http-foundation/README.md @@ -4,6 +4,13 @@ HttpFoundation Component The HttpFoundation component defines an object-oriented layer for the HTTP specification. +Sponsor +------- + +This package is looking for a [backer][1]. + +Help Symfony by [sponsoring][3] its development! + Resources --------- @@ -12,3 +19,6 @@ Resources * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) + +[1]: https://symfony.com/backers +[3]: https://symfony.com/sponsor diff --git a/vendor/symfony/http-foundation/Request.php b/vendor/symfony/http-foundation/Request.php index 479c4a437..d7f6724de 100644 --- a/vendor/symfony/http-foundation/Request.php +++ b/vendor/symfony/http-foundation/Request.php @@ -64,123 +64,6 @@ class Request public const METHOD_CONNECT = 'CONNECT'; public const METHOD_QUERY = 'QUERY'; - /** - * @var string[] - */ - protected static array $trustedProxies = []; - - /** - * @var string[] - */ - protected static array $trustedHostPatterns = []; - - /** - * @var string[] - */ - protected static array $trustedHosts = []; - - protected static bool $httpMethodParameterOverride = false; - - /** - * The HTTP methods that can be overridden. - * - * @var uppercase-string[]|null - */ - protected static ?array $allowedHttpMethodOverride = null; - - /** - * Custom parameters. - */ - public ParameterBag $attributes; - - /** - * Request body parameters ($_POST). - * - * @see getPayload() for portability between content types - */ - public InputBag $request; - - /** - * Query string parameters ($_GET). - * - * @var InputBag - */ - public InputBag $query; - - /** - * Server and execution environment parameters ($_SERVER). - */ - public ServerBag $server; - - /** - * Uploaded files ($_FILES). - */ - public FileBag $files; - - /** - * Cookies ($_COOKIE). - * - * @var InputBag - */ - public InputBag $cookies; - - /** - * Headers (taken from the $_SERVER). - */ - public HeaderBag $headers; - - /** - * @var string|resource|false|null - */ - protected $content; - - /** - * @var string[]|null - */ - protected ?array $languages = null; - - /** - * @var string[]|null - */ - protected ?array $charsets = null; - - /** - * @var string[]|null - */ - protected ?array $encodings = null; - - /** - * @var string[]|null - */ - protected ?array $acceptableContentTypes = null; - - protected ?string $pathInfo = null; - protected ?string $requestUri = null; - protected ?string $baseUrl = null; - protected ?string $basePath = null; - protected ?string $method = null; - protected ?string $format = null; - protected SessionInterface|\Closure|null $session = null; - protected ?string $locale = null; - protected string $defaultLocale = 'en'; - - /** - * @var array|null - */ - protected static ?array $formats = null; - - protected static ?\Closure $requestFactory = null; - - private ?string $preferredFormat = null; - - private bool $isHostValid = true; - private bool $isForwardedValid = true; - private bool $isSafeContentPreferred; - - private array $trustedValuesCache = []; - - private static int $trustedHeaderSet = -1; - private const FORWARDED_PARAMS = [ self::HEADER_X_FORWARDED_FOR => 'for', self::HEADER_X_FORWARDED_HOST => 'host', @@ -228,6 +111,165 @@ class Request 'yaml' => 'yaml', ]; + /** + * Custom parameters. + */ + public ParameterBag $attributes { + set { + trigger_deprecation('symfony/http-foundation', '8.1', 'Directly setting property "attributes" of "%s" is deprecated; pass attributes as a constructor argument or call "initialize()" instead.', static::class); + + $this->attributes = $value; + } + } + + /** + * Request body parameters ($_POST). + * + * @see getPayload() for portability between content types + */ + public InputBag $request { + set { + trigger_deprecation('symfony/http-foundation', '8.1', 'Directly setting property "request" of "%s" is deprecated; pass the POST data as a constructor argument or call "initialize()" instead.', static::class); + + $this->request = $value; + } + } + + /** + * Query string parameters ($_GET). + * + * @var InputBag + */ + public InputBag $query { + set { + trigger_deprecation('symfony/http-foundation', '8.1', 'Directly setting property "query" of "%s" is deprecated; pass query parameters as a constructor argument or call "initialize()" instead.', static::class); + + $this->query = $value; + } + } + + /** + * Server and execution environment parameters ($_SERVER). + */ + public ServerBag $server { + set { + trigger_deprecation('symfony/http-foundation', '8.1', 'Directly setting property "server" of "%s" is deprecated; pass server parameters as a constructor argument or call "initialize()" instead.', static::class); + + $this->server = $value; + } + } + + /** + * Uploaded files ($_FILES). + */ + public FileBag $files { + set { + trigger_deprecation('symfony/http-foundation', '8.1', 'Directly setting property "files" of "%s" is deprecated; pass files as a constructor argument or call "initialize()" instead.', static::class); + + $this->files = $value; + } + } + + /** + * Cookies ($_COOKIE). + * + * @var InputBag + */ + public InputBag $cookies { + set { + trigger_deprecation('symfony/http-foundation', '8.1', 'Directly setting property "cookies" of "%s" is deprecated; pass cookies as a constructor argument or call "initialize()" instead.', static::class); + + $this->cookies = $value; + } + } + + /** + * Headers (taken from the $_SERVER). + */ + public HeaderBag $headers { + set { + trigger_deprecation('symfony/http-foundation', '8.1', 'Directly setting property "headers" of "%s" is deprecated; pass header parameters as a constructor argument or call "initialize()" instead.', static::class); + + $this->headers = $value; + } + } + + /** + * @var string|resource|false|null + */ + protected $content; + + /** + * @var string[]|null + */ + protected ?array $languages = null; + + /** + * @var string[]|null + */ + protected ?array $charsets = null; + + /** + * @var string[]|null + */ + protected ?array $encodings = null; + + /** + * @var string[]|null + */ + protected ?array $acceptableContentTypes = null; + + protected ?string $pathInfo = null; + protected ?string $requestUri = null; + protected ?string $baseUrl = null; + protected ?string $basePath = null; + protected ?string $method = null; + protected ?string $format = null; + protected SessionInterface|\Closure|null $session = null; + protected ?string $locale = null; + protected string $defaultLocale = 'en'; + + /** + * @var array|null + */ + protected static ?array $formats = null; + + /** + * @var string[] + */ + protected static array $trustedProxies = []; + + /** + * @var string[] + */ + protected static array $trustedHostPatterns = []; + + /** + * @var string[] + */ + protected static array $trustedHosts = []; + + protected static bool $httpMethodParameterOverride = false; + + /** + * The HTTP methods that can be overridden. + * + * @var uppercase-string[]|null + */ + protected static ?array $allowedHttpMethodOverride = null; + + protected static ?\Closure $requestFactory = null; + + private ?string $preferredFormat = null; + + private bool $isHostValid = true; + private bool $isForwardedValid = true; + private bool $isSafeContentPreferred; + + private array $trustedValuesCache = []; + + private static int $trustedHeaderSet = -1; + private bool $isIisRewrite = false; /** @@ -259,13 +301,13 @@ class Request */ public function initialize(array $query = [], array $request = [], array $attributes = [], array $cookies = [], array $files = [], array $server = [], $content = null): void { - $this->request = new InputBag($request); - $this->query = new InputBag($query); - $this->attributes = new ParameterBag($attributes); - $this->cookies = new InputBag($cookies); - $this->files = new FileBag($files); - $this->server = new ServerBag($server); - $this->headers = new HeaderBag($this->server->getHeaders()); + self::setProperty($this, 'request', new InputBag($request)); + self::setProperty($this, 'query', new InputBag($query)); + self::setProperty($this, 'attributes', new ParameterBag($attributes)); + self::setProperty($this, 'cookies', new InputBag($cookies)); + self::setProperty($this, 'files', new FileBag($files)); + self::setProperty($this, 'server', new ServerBag($server)); + self::setProperty($this, 'headers', new HeaderBag($this->server->getHeaders())); $this->content = $content; $this->languages = null; @@ -289,18 +331,6 @@ class Request return self::createRequestFromFactory($_GET, $_POST, [], $_COOKIE, $_FILES, $_SERVER); } - if (\PHP_VERSION_ID < 80400) { - if (!isset($_SERVER['CONTENT_TYPE']) || str_starts_with($_SERVER['CONTENT_TYPE'], 'application/x-www-form-urlencoded')) { - $content = file_get_contents('php://input'); - parse_str($content, $post); - } else { - $content = null; - $post = $_POST; - } - - return self::createRequestFromFactory($_GET, $post, [], $_COOKIE, $_FILES, $_SERVER, $content); - } - try { [$post, $files] = request_parse_body(); } catch (\RequestParseBodyException) { @@ -479,23 +509,23 @@ class Request { $dup = clone $this; if (null !== $query) { - $dup->query = new InputBag($query); + self::setProperty($dup, 'query', new InputBag($query)); } if (null !== $request) { - $dup->request = new InputBag($request); + self::setProperty($dup, 'request', new InputBag($request)); } if (null !== $attributes) { - $dup->attributes = new ParameterBag($attributes); + self::setProperty($dup, 'attributes', new ParameterBag($attributes)); } if (null !== $cookies) { - $dup->cookies = new InputBag($cookies); + self::setProperty($dup, 'cookies', new InputBag($cookies)); } if (null !== $files) { - $dup->files = new FileBag($files); + self::setProperty($dup, 'files', new FileBag($files)); } if (null !== $server) { - $dup->server = new ServerBag($server); - $dup->headers = new HeaderBag($dup->server->getHeaders()); + self::setProperty($dup, 'server', new ServerBag($server)); + self::setProperty($dup, 'headers', new HeaderBag($dup->server->getHeaders())); } $dup->languages = null; $dup->charsets = null; @@ -527,13 +557,13 @@ class Request */ public function __clone() { - $this->query = clone $this->query; - $this->request = clone $this->request; - $this->attributes = clone $this->attributes; - $this->cookies = clone $this->cookies; - $this->files = clone $this->files; - $this->server = clone $this->server; - $this->headers = clone $this->headers; + self::setProperty($this, 'query', clone $this->query); + self::setProperty($this, 'request', clone $this->request); + self::setProperty($this, 'attributes', clone $this->attributes); + self::setProperty($this, 'cookies', clone $this->cookies); + self::setProperty($this, 'files', clone $this->files); + self::setProperty($this, 'server', clone $this->server); + self::setProperty($this, 'headers', clone $this->headers); } public function __toString(): string @@ -738,36 +768,6 @@ class Request return self::$allowedHttpMethodOverride; } - /** - * Gets a "parameter" value from any bag. - * - * This method is mainly useful for libraries that want to provide some flexibility. If you don't need the - * flexibility in controllers, it is better to explicitly get request parameters from the appropriate - * public property instead (attributes, query, request). - * - * Order of precedence: PATH (routing placeholders or custom attributes), GET, POST - * - * @deprecated since Symfony 7.4, use properties `->attributes`, `query` or `request` directly instead - */ - public function get(string $key, mixed $default = null): mixed - { - trigger_deprecation('symfony/http-foundation', '7.4', 'Request::get() is deprecated, use properties ->attributes, query or request directly instead.'); - - if ($this !== $result = $this->attributes->get($key, $this)) { - return $result; - } - - if ($this->query->has($key)) { - return $this->query->all()[$key]; - } - - if ($this->request->has($key)) { - return $this->request->all()[$key]; - } - - return $default; - } - /** * Gets the Session. * @@ -1266,7 +1266,7 @@ class Request $method = strtoupper($method); if (\in_array($method, ['GET', 'HEAD', 'CONNECT', 'TRACE'], true)) { - trigger_deprecation('symfony/http-foundation', '7.4', 'HTTP method override is deprecated for methods GET, HEAD, CONNECT and TRACE; it will be ignored in Symfony 8.0.', $method); + return $this->method; } if (self::$allowedHttpMethodOverride && !\in_array($method, self::$allowedHttpMethodOverride, true)) { @@ -1331,9 +1331,8 @@ class Request * @param string|null $mimeType The mime type to check * @param bool $subtypeFallback Whether to fall back to the subtype if no exact match is found */ - public function getFormat(?string $mimeType/* , bool $subtypeFallback = false */): ?string + public function getFormat(?string $mimeType, bool $subtypeFallback = false): ?string { - $subtypeFallback = 2 <= \func_num_args() ? func_get_arg(1) : false; $canonicalMimeType = null; if ($mimeType && false !== $pos = strpos($mimeType, ';')) { $canonicalMimeType = trim(substr($mimeType, 0, $pos)); @@ -1386,16 +1385,10 @@ class Request /** * Associates a format with mime types. * - * @param string $format The format to set * @param string|string[] $mimeTypes The associated mime types (the preferred one must be the first as it will be used as the content type) */ - public function setFormat(?string $format, string|array $mimeTypes): void + public function setFormat(string $format, string|array $mimeTypes): void { - if (null === $format) { - trigger_deprecation('symfony/http-foundation', '7.4', 'Passing "null" as the first argument of "%s()" is deprecated. The argument will be non-nullable in Symfony 8.0.', __METHOD__); - $format = ''; - } - if (null === static::$formats) { static::initializeFormats(); } @@ -2264,4 +2257,13 @@ class Request // use preg_replace() instead of preg_match() to prevent DoS attacks with long host names return '' === preg_replace('/[-a-zA-Z0-9_]++\.?/', '', $host); } + + private static function setProperty(self $request, string $name, mixed $value): void + { + static $cache; + + $r = $cache[$name] ??= new \ReflectionProperty(self::class, $name); + + $r->setRawValue($request, $value); + } } diff --git a/vendor/symfony/http-foundation/Response.php b/vendor/symfony/http-foundation/Response.php index a2022976d..561a01f63 100644 --- a/vendor/symfony/http-foundation/Response.php +++ b/vendor/symfony/http-foundation/Response.php @@ -105,13 +105,13 @@ class Response 'etag' => true, ]; - public ResponseHeaderBag $headers; + public ResponseHeaderBag $headers { + set { + trigger_deprecation('symfony/http-foundation', '8.1', 'Directly setting property "headers" of "%s" is deprecated; pass the header bag as a constructor argument instead.', static::class); - protected string $content; - protected string $version; - protected int $statusCode; - protected string $statusText; - protected ?string $charset = null; + $this->headers = $value; + } + } /** * Status codes translation table. @@ -189,6 +189,12 @@ class Response 511 => 'Network Authentication Required', // RFC6585 ]; + protected string $content; + protected string $version; + protected int $statusCode; + protected string $statusText; + protected ?string $charset = null; + /** * Tracks headers already sent in informational responses. */ @@ -199,9 +205,9 @@ class Response * * @throws \InvalidArgumentException When the HTTP status code is not valid */ - public function __construct(?string $content = '', int $status = 200, array $headers = []) + public function __construct(?string $content = '', int $status = 200, array|ResponseHeaderBag $headers = []) { - $this->headers = new ResponseHeaderBag($headers); + self::setHeaders($this, $headers instanceof ResponseHeaderBag ? $headers : new ResponseHeaderBag($headers)); $this->setContent($content); $this->setStatusCode($status); $this->setProtocolVersion('1.0'); @@ -229,7 +235,7 @@ class Response */ public function __clone() { - $this->headers = clone $this->headers; + self::setHeaders($this, clone $this->headers); } /** @@ -319,8 +325,7 @@ class Response if (headers_sent()) { if (!\in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) { $statusCode ??= $this->statusCode; - trigger_deprecation('symfony/http-foundation', '7.4', 'Trying to use "%s::sendHeaders()" after headers have already been sent is deprecated and will throw a PHP warning in 8.0. Use a "StreamedResponse" instead.', static::class); - // header(\sprintf('HTTP/%s %s %s', $this->version, $statusCode, $this->statusText), true, $statusCode); + header(\sprintf('HTTP/%s %s %s', $this->version, $statusCode, $this->statusText), true, $statusCode); } return $this; @@ -481,13 +486,7 @@ class Response throw new \InvalidArgumentException(\sprintf('The HTTP status code "%s" is not valid.', $code)); } - if (null === $text) { - $this->statusText = self::$statusTexts[$code] ?? 'unknown status'; - - return $this; - } - - $this->statusText = $text; + $this->statusText = $text ?? self::$statusTexts[$code] ?? 'unknown status'; return $this; } @@ -1320,4 +1319,13 @@ class Response } } } + + private static function setHeaders(self $response, ResponseHeaderBag $headers): void + { + static $r; + + $r ??= new \ReflectionProperty(self::class, 'headers'); + + $r->setRawValue($response, $headers); + } } diff --git a/vendor/symfony/http-foundation/ResponseHeaderBag.php b/vendor/symfony/http-foundation/ResponseHeaderBag.php index ff6ae1ef6..5f11ffd88 100644 --- a/vendor/symfony/http-foundation/ResponseHeaderBag.php +++ b/vendor/symfony/http-foundation/ResponseHeaderBag.php @@ -216,13 +216,9 @@ class ResponseHeaderBag extends HeaderBag /** * Clears a cookie in the browser. - * - * @param bool $partitioned */ - public function clearCookie(string $name, ?string $path = '/', ?string $domain = null, bool $secure = false, bool $httpOnly = true, ?string $sameSite = null /* , bool $partitioned = false */): void + public function clearCookie(string $name, ?string $path = '/', ?string $domain = null, bool $secure = false, bool $httpOnly = true, ?string $sameSite = null, bool $partitioned = false): void { - $partitioned = 6 < \func_num_args() ? func_get_arg(6) : false; - $this->setCookie(new Cookie($name, null, 1, $path, $domain, $secure, $httpOnly, false, $sameSite, $partitioned)); } diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php index 4c7f6cd1e..2e2fd575d 100644 --- a/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php +++ b/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php @@ -187,9 +187,9 @@ class PdoSessionHandler extends AbstractSessionHandler /** * Adds the Table to the Schema if it doesn't exist. * - * @return Schema The (possibly new) schema with the table added + * @param-immediately-invoked-callable $isSameDatabase */ - public function configureSchema(Schema $schema, ?\Closure $isSameDatabase = null) + public function configureSchema(Schema $schema, ?\Closure $isSameDatabase = null): Schema { if ($schema->hasTable($this->table) || ($isSameDatabase && !$isSameDatabase($this->getConnection()->exec(...)))) { return $schema; @@ -296,12 +296,7 @@ class PdoSessionHandler extends AbstractSessionHandler throw new \DomainException(\sprintf('Creating the session table is currently not implemented for PDO driver "%s".', $this->driver)); } - if (class_exists(PrimaryKeyConstraint::class)) { - $table->addPrimaryKeyConstraint(new PrimaryKeyConstraint(null, [new UnqualifiedName(Identifier::unquoted($this->idCol))], true)); - } else { - $table->setPrimaryKey([$this->idCol]); - } - + $table->addPrimaryKeyConstraint(new PrimaryKeyConstraint(null, [new UnqualifiedName(Identifier::unquoted($this->idCol))], true)); $table->addIndex([$this->lifetimeCol], $this->lifetimeCol.'_idx'); } diff --git a/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php b/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php index 5c0851347..4077160e0 100644 --- a/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php +++ b/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php @@ -62,16 +62,9 @@ class NativeSessionStorage implements SessionStorageInterface * gc_probability, "1" * lazy_write, "1" * name, "PHPSESSID" - * referer_check, "" (deprecated since Symfony 7.2, to be removed in Symfony 8.0) * serialize_handler, "php" * use_strict_mode, "1" * use_cookies, "1" - * use_only_cookies, "1" (deprecated since Symfony 7.2, to be removed in Symfony 8.0) - * use_trans_sid, "0" (deprecated since Symfony 7.2, to be removed in Symfony 8.0) - * sid_length, "32" (@deprecated since Symfony 7.2, to be removed in 8.0) - * sid_bits_per_character, "5" (@deprecated since Symfony 7.2, to be removed in 8.0) - * trans_sid_hosts, $_SERVER['HTTP_HOST'] (deprecated since Symfony 7.2, to be removed in Symfony 8.0) - * trans_sid_tags, "a=href,area=href,frame=src,form=" (deprecated since Symfony 7.2, to be removed in Symfony 8.0) */ public function __construct(array $options = [], AbstractProxy|\SessionHandlerInterface|null $handler = null, ?MetadataBag $metaBag = null) { @@ -122,16 +115,12 @@ class NativeSessionStorage implements SessionStorageInterface * * ---------- Part 1 * - * The part `[a-zA-Z0-9,-]` is related to the PHP ini directive `session.sid_bits_per_character` defined as 6. + * The part `[a-zA-Z0-9,-]` corresponds to the character range when PHP's `session.sid_bits_per_character` is set to 6. * See https://php.net/session.configuration#ini.session.sid-bits-per-character - * Allowed values are integers such as: - * - 4 for range `a-f0-9` - * - 5 for range `a-v0-9` (@deprecated since Symfony 7.2, it will default to 4 and the option will be ignored in Symfony 8.0) - * - 6 for range `a-zA-Z0-9,-` (@deprecated since Symfony 7.2, it will default to 4 and the option will be ignored in Symfony 8.0) * * ---------- Part 2 * - * The part `{22,250}` is related to the PHP ini directive `session.sid_length`. + * The part `{22,250}` defines the acceptable length range for session IDs. * See https://php.net/session.configuration#ini.session.sid-length * Allowed values are integers between 22 and 256, but we use 250 for the max. * @@ -139,8 +128,6 @@ class NativeSessionStorage implements SessionStorageInterface * - The length of Windows and Linux filenames is limited to 255 bytes. Then the max must not exceed 255. * - The session filename prefix is `sess_`, a 5 bytes string. Then the max must not exceed 255 - 5 = 250. * - * This is @deprecated since Symfony 7.2, the sid length will default to 32 and the option will be ignored in Symfony 8.0. - * * ---------- Conclusion * * The parts 1 and 2 prevent the warning below: @@ -323,17 +310,11 @@ class NativeSessionStorage implements SessionStorageInterface 'cache_expire', 'cache_limiter', 'cookie_domain', 'cookie_httponly', 'cookie_lifetime', 'cookie_path', 'cookie_secure', 'cookie_samesite', 'gc_divisor', 'gc_maxlifetime', 'gc_probability', - 'lazy_write', 'name', 'referer_check', + 'lazy_write', 'name', 'serialize_handler', 'use_strict_mode', 'use_cookies', - 'use_only_cookies', 'use_trans_sid', - 'sid_length', 'sid_bits_per_character', 'trans_sid_hosts', 'trans_sid_tags', ]); foreach ($options as $key => $value) { - if (\in_array($key, ['referer_check', 'use_only_cookies', 'use_trans_sid', 'trans_sid_hosts', 'trans_sid_tags', 'sid_length', 'sid_bits_per_character'], true)) { - trigger_deprecation('symfony/http-foundation', '7.2', 'NativeSessionStorage\'s "%s" option is deprecated and will be ignored in Symfony 8.0.', $key); - } - if (isset($validOptions[$key])) { if ('cookie_secure' === $key && 'auto' === $value) { continue; diff --git a/vendor/symfony/http-foundation/Test/Constraint/SessionHasFlashMessage.php b/vendor/symfony/http-foundation/Test/Constraint/SessionHasFlashMessage.php new file mode 100644 index 000000000..2fc8ad23d --- /dev/null +++ b/vendor/symfony/http-foundation/Test/Constraint/SessionHasFlashMessage.php @@ -0,0 +1,78 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\HttpFoundation\Test\Constraint; + +use PHPUnit\Framework\Constraint\Constraint; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Session\FlashBagAwareSessionInterface; + +final class SessionHasFlashMessage extends Constraint +{ + public function __construct( + private readonly string $messageType, + private readonly mixed $messages, + ) { + } + + public function toString(): string + { + return \sprintf('session has flash message of type "%s" containing: %s', $this->messageType, implode(', ', $this->getExpectedMessages())); + } + + protected function getExpectedMessages(): array + { + return \is_array($this->messages) ? $this->messages : [(string) $this->messages]; + } + + protected function matches(mixed $other): bool + { + if (!$other instanceof Request) { + return false; + } + + if (!$other->hasSession()) { + return false; + } + + $session = $other->getSession(); + + if (!$session instanceof FlashBagAwareSessionInterface) { + return false; + } + + $flashbag = $session->getFlashBag(); + $flashMessages = $flashbag->peek($this->messageType); + $expectedMessages = $this->getExpectedMessages(); + + return array_any($flashMessages, static fn (mixed $message) => \in_array($message, $expectedMessages, true)); + } + + protected function failureDescription(mixed $other): string + { + if (!$other instanceof Request) { + return 'because the constraint was not configured with a Request object'; + } + + $message = $this->toString(); + + if (!$other->hasSession()) { + return $message.', because the Request does not have a Session'; + } + + $session = $other->getSession(); + if (!$session instanceof FlashBagAwareSessionInterface) { + return $message.', because the Session does not have a FlashBag'; + } + + return $message; + } +} diff --git a/vendor/symfony/http-foundation/UriSigner.php b/vendor/symfony/http-foundation/UriSigner.php index 690021b5b..d441e47f1 100644 --- a/vendor/symfony/http-foundation/UriSigner.php +++ b/vendor/symfony/http-foundation/UriSigner.php @@ -57,18 +57,8 @@ class UriSigner * * The expiration is added as a query string parameter. */ - public function sign(string $uri/* , \DateTimeInterface|\DateInterval|int|null $expiration = null */): string + public function sign(string $uri, \DateTimeInterface|\DateInterval|int|null $expiration = null): string { - $expiration = null; - - if (1 < \func_num_args()) { - $expiration = func_get_arg(1); - } - - if (null !== $expiration && !$expiration instanceof \DateTimeInterface && !$expiration instanceof \DateInterval && !\is_int($expiration)) { - throw new \TypeError(\sprintf('The second argument of "%s()" must be an instance of "%s" or "%s", an integer or null (%s given).', __METHOD__, \DateTimeInterface::class, \DateInterval::class, get_debug_type($expiration))); - } - $url = parse_url($uri); $params = []; diff --git a/vendor/symfony/http-foundation/composer.json b/vendor/symfony/http-foundation/composer.json index dba183556..31cef148f 100644 --- a/vendor/symfony/http-foundation/composer.json +++ b/vendor/symfony/http-foundation/composer.json @@ -16,24 +16,23 @@ } ], "require": { - "php": ">=8.2", + "php": ">=8.4.1", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "^1.1" }, "require-dev": { - "doctrine/dbal": "^3.6|^4", + "doctrine/dbal": "^4.3", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.4.12|^7.1.5|^8.0", - "symfony/clock": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/mime": "^6.4|^7.0|^8.0", - "symfony/expression-language": "^6.4|^7.0|^8.0", - "symfony/rate-limiter": "^6.4|^7.0|^8.0" + "symfony/cache": "^7.4|^8.0", + "symfony/clock": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/rate-limiter": "^7.4|^8.0" }, "conflict": { - "doctrine/dbal": "<3.6", - "symfony/cache": "<6.4.12|>=7.0,<7.1.5" + "doctrine/dbal": "<4.3" }, "autoload": { "psr-4": { "Symfony\\Component\\HttpFoundation\\": "" }, diff --git a/vendor/symfony/http-kernel/Attribute/Cache.php b/vendor/symfony/http-kernel/Attribute/Cache.php index fa2401a78..9ab056000 100644 --- a/vendor/symfony/http-kernel/Attribute/Cache.php +++ b/vendor/symfony/http-kernel/Attribute/Cache.php @@ -11,6 +11,9 @@ namespace Symfony\Component\HttpKernel\Attribute; +use Symfony\Component\ExpressionLanguage\Expression; +use Symfony\Component\HttpFoundation\Request; + /** * Describes the default HTTP cache headers on controllers. * Headers defined in the Cache attribute are ignored if they are already set @@ -20,9 +23,14 @@ namespace Symfony\Component\HttpKernel\Attribute; * * @author Fabien Potencier */ -#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::TARGET_METHOD | \Attribute::TARGET_FUNCTION)] +#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::TARGET_METHOD | \Attribute::TARGET_FUNCTION | \Attribute::IS_REPEATABLE)] final class Cache { + /** + * @internal + */ + public public(set) readonly array $variables; + public function __construct( /** * The expiration date as a valid date for the strtotime() function. @@ -66,24 +74,28 @@ final class Cache public array $vary = [], /** - * An expression to compute the Last-Modified HTTP header. + * A value evaluated to compute the Last-Modified HTTP header. * - * The expression is evaluated by the ExpressionLanguage component, it + * The value may be either an ExpressionLanguage expression or a Closure and * receives all the request attributes and the resolved controller arguments. * - * The result of the expression must be a DateTimeInterface. + * The result must be an instance of \DateTimeInterface. + * + * @var \DateTimeInterface|string|Expression|\Closure(array, Request, ?object):\DateTimeInterface|null */ - public ?string $lastModified = null, + public \DateTimeInterface|string|Expression|\Closure|null $lastModified = null, /** - * An expression to compute the ETag HTTP header. + * A value evaluated to compute the ETag HTTP header. * - * The expression is evaluated by the ExpressionLanguage component, it + * The value may be either an ExpressionLanguage expression or a Closure and * receives all the request attributes and the resolved controller arguments. * * The result must be a string that will be hashed. + * + * @var string|Expression|\Closure(array, Request, ?object):string|null */ - public ?string $etag = null, + public string|Expression|\Closure|null $etag = null, /** * max-stale Cache-Control header @@ -114,6 +126,18 @@ final class Cache * @see https://datatracker.ietf.org/doc/html/rfc7234#section-5.2.2.3 */ public ?bool $noStore = null, + + /** + * A value evaluated to determine whether the cache attribute should be applied. + * + * The value may be either an ExpressionLanguage expression or a Closure and + * receives all the request attributes and the resolved controller arguments. + * + * The result must be a boolean. If true the attribute is applied, if false it is ignored. + * + * @var bool|string|Expression|\Closure(array, Request, ?object):bool + */ + public bool|string|Expression|\Closure $if = true, ) { } } diff --git a/vendor/symfony/http-kernel/Attribute/MapQueryString.php b/vendor/symfony/http-kernel/Attribute/MapQueryString.php index 07418df85..11a7428ac 100644 --- a/vendor/symfony/http-kernel/Attribute/MapQueryString.php +++ b/vendor/symfony/http-kernel/Attribute/MapQueryString.php @@ -11,6 +11,7 @@ namespace Symfony\Component\HttpKernel\Attribute; +use Symfony\Component\ExpressionLanguage\Expression; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestPayloadValueResolver; use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; @@ -19,6 +20,8 @@ use Symfony\Component\Validator\Constraints\GroupSequence; /** * Controller parameter tag to map the query string of the request to typed object and validate it. * + * @psalm-import-type GroupResolver from RequestPayloadValueResolver + * * @author Konstantin Myakshin */ #[\Attribute(\Attribute::TARGET_PARAMETER)] @@ -27,17 +30,18 @@ class MapQueryString extends ValueResolver public ArgumentMetadata $metadata; /** - * @param array $serializationContext The serialization context to use when deserializing the query string - * @param string|GroupSequence|array|null $validationGroups The validation groups to use when validating the query string mapping - * @param class-string $resolver The class name of the resolver to use - * @param int $validationFailedStatusCode The HTTP code to return if the validation fails + * @param array $serializationContext The serialization context to use when deserializing the query string + * @param string|Expression|GroupSequence|GroupResolver|array|null $validationGroups The validation groups to use when validating the query string mapping + * @param class-string $resolver The class name of the resolver to use + * @param int $validationFailedStatusCode The HTTP code to return if the validation fails */ public function __construct( public readonly array $serializationContext = [], - public readonly string|GroupSequence|array|null $validationGroups = null, + public readonly string|Expression|GroupSequence|\Closure|array|null $validationGroups = null, string $resolver = RequestPayloadValueResolver::class, public readonly int $validationFailedStatusCode = Response::HTTP_NOT_FOUND, public readonly ?string $key = null, + public bool $mapWhenEmpty = false, ) { parent::__construct($resolver); } diff --git a/vendor/symfony/http-kernel/Attribute/MapRequestHeader.php b/vendor/symfony/http-kernel/Attribute/MapRequestHeader.php new file mode 100644 index 000000000..ee65fda89 --- /dev/null +++ b/vendor/symfony/http-kernel/Attribute/MapRequestHeader.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\HttpKernel\Attribute; + +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestHeaderValueResolver; + +#[\Attribute(\Attribute::TARGET_PARAMETER)] +final class MapRequestHeader extends ValueResolver +{ + /** + * @param string|null $name The name of the header parameter; if null, the name of the argument in the controller will be used + * @param class-string $resolver The class name of the resolver to use + * @param int $validationFailedStatusCode The HTTP code to return if the validation fails + */ + public function __construct( + public readonly ?string $name = null, + string $resolver = RequestHeaderValueResolver::class, + public readonly int $validationFailedStatusCode = Response::HTTP_BAD_REQUEST, + ) { + parent::__construct($resolver); + } +} diff --git a/vendor/symfony/http-kernel/Attribute/MapRequestPayload.php b/vendor/symfony/http-kernel/Attribute/MapRequestPayload.php index cf086380c..d0e1a51e3 100644 --- a/vendor/symfony/http-kernel/Attribute/MapRequestPayload.php +++ b/vendor/symfony/http-kernel/Attribute/MapRequestPayload.php @@ -11,6 +11,7 @@ namespace Symfony\Component\HttpKernel\Attribute; +use Symfony\Component\ExpressionLanguage\Expression; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestPayloadValueResolver; use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; @@ -19,6 +20,8 @@ use Symfony\Component\Validator\Constraints\GroupSequence; /** * Controller parameter tag to map the request content to typed object and validate it. * + * @psalm-import-type GroupResolver from RequestPayloadValueResolver + * * @author Konstantin Myakshin */ #[\Attribute(\Attribute::TARGET_PARAMETER)] @@ -27,20 +30,21 @@ class MapRequestPayload extends ValueResolver public ArgumentMetadata $metadata; /** - * @param array|string|null $acceptFormat The payload formats to accept (i.e. "json", "xml") - * @param array $serializationContext The serialization context to use when deserializing the payload - * @param string|GroupSequence|array|null $validationGroups The validation groups to use when validating the query string mapping - * @param class-string $resolver The class name of the resolver to use - * @param int $validationFailedStatusCode The HTTP code to return if the validation fails - * @param class-string|string|null $type The element type for array deserialization + * @param array|string|null $acceptFormat The payload formats to accept (i.e. "json", "xml") + * @param array $serializationContext The serialization context to use when deserializing the payload + * @param string|Expression|GroupSequence|GroupResolver|array|null $validationGroups The validation groups to use when validating the query string mapping + * @param class-string $resolver The class name of the resolver to use + * @param int $validationFailedStatusCode The HTTP code to return if the validation fails + * @param class-string|string|null $type The element type for array deserialization */ public function __construct( public readonly array|string|null $acceptFormat = null, public readonly array $serializationContext = [], - public readonly string|GroupSequence|array|null $validationGroups = null, + public readonly string|Expression|GroupSequence|\Closure|array|null $validationGroups = null, string $resolver = RequestPayloadValueResolver::class, public readonly int $validationFailedStatusCode = Response::HTTP_UNPROCESSABLE_ENTITY, public readonly ?string $type = null, + public bool $mapWhenEmpty = false, ) { parent::__construct($resolver); } diff --git a/vendor/symfony/http-kernel/Attribute/RateLimit.php b/vendor/symfony/http-kernel/Attribute/RateLimit.php new file mode 100644 index 000000000..8719462de --- /dev/null +++ b/vendor/symfony/http-kernel/Attribute/RateLimit.php @@ -0,0 +1,50 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\HttpKernel\Attribute; + +use Symfony\Component\ExpressionLanguage\Expression; + +/** + * Rate limits the controller. + * + * @see https://symfony.com/doc/current/rate_limiter.html + * + * @author Ayyoub AFW-ALLAH + */ +#[\Attribute(\Attribute::IS_REPEATABLE | \Attribute::TARGET_CLASS | \Attribute::TARGET_METHOD | \Attribute::TARGET_FUNCTION)] +final class RateLimit +{ + /** @var string[] */ + public readonly array $methods; + + /** + * @param string $limiter The configured limiter name + * @param string|Expression|\Closure|null $key A literal string key, an Expression, or a Closure (defaults to client IP + method + path) + * @param int $tokens The number of tokens to consume + * @param string[]|string $methods HTTP methods to rate limit; empty means all methods + */ + public function __construct( + public readonly string $limiter, + public readonly string|Expression|\Closure|null $key = null, + public readonly int $tokens = 1, + array|string $methods = [], + ) { + if ($this->tokens < 1) { + throw new \InvalidArgumentException(\sprintf('The "$tokens" argument of "%s" must be greater than 0, "%d" given.', self::class, $this->tokens)); + } + + if (\in_array('GET', $methods = array_map('strtoupper', (array) $methods), true)) { + $methods[] = 'HEAD'; + } + $this->methods = $methods; + } +} diff --git a/vendor/symfony/http-kernel/Attribute/Serialize.php b/vendor/symfony/http-kernel/Attribute/Serialize.php new file mode 100644 index 000000000..8fbc65c65 --- /dev/null +++ b/vendor/symfony/http-kernel/Attribute/Serialize.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\HttpKernel\Attribute; + +/** + * Controller tag to serialize response. + * + * @author Konstantin Myakshin + */ +#[\Attribute(\Attribute::TARGET_METHOD)] +final class Serialize +{ + /** + * @param int $code The HTTP status code (200 "OK" by default) + * @param array $headers Extra headers to set on the response + * @param array $context The serialization context passed to the serializer + */ + public function __construct( + public readonly int $code = 200, + public readonly array $headers = [], + public readonly array $context = [], + ) { + } +} diff --git a/vendor/symfony/http-kernel/Bundle/AbstractBundle.php b/vendor/symfony/http-kernel/Bundle/AbstractBundle.php index 8ab0bccc1..64c2e85ac 100644 --- a/vendor/symfony/http-kernel/Bundle/AbstractBundle.php +++ b/vendor/symfony/http-kernel/Bundle/AbstractBundle.php @@ -11,51 +11,23 @@ namespace Symfony\Component\HttpKernel\Bundle; -use Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator; -use Symfony\Component\DependencyInjection\Container; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Extension\ConfigurableExtensionInterface; use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; +use Symfony\Component\DependencyInjection\Kernel\AbstractBundle as BaseAbstractBundle; /** * A Bundle that provides configuration hooks. * * @author Yonel Ceruto */ -abstract class AbstractBundle extends Bundle implements ConfigurableExtensionInterface +abstract class AbstractBundle extends Bundle { - protected string $extensionAlias = ''; - - public function configure(DefinitionConfigurator $definition): void - { - } - - public function prependExtension(ContainerConfigurator $configurator, ContainerBuilder $container): void - { - } - - public function loadExtension(array $config, ContainerConfigurator $configurator, ContainerBuilder $container): void - { - } - public function getContainerExtension(): ?ExtensionInterface { - if ('' === $this->extensionAlias) { - $this->extensionAlias = Container::underscore(preg_replace('/Bundle$/', '', $this->getName())); - } - - return $this->extension ??= new BundleExtension($this, $this->extensionAlias); + return BaseAbstractBundle::getContainerExtension(); } public function getPath(): string { - if (!isset($this->path)) { - $reflected = new \ReflectionObject($this); - // assume the modern directory structure by default - $this->path = \dirname($reflected->getFileName(), 2); - } - - return $this->path; + return BaseAbstractBundle::getPath(); } } diff --git a/vendor/symfony/http-kernel/Bundle/Bundle.php b/vendor/symfony/http-kernel/Bundle/Bundle.php index 3b8006d6c..7dcf20d37 100644 --- a/vendor/symfony/http-kernel/Bundle/Bundle.php +++ b/vendor/symfony/http-kernel/Bundle/Bundle.php @@ -13,48 +13,18 @@ namespace Symfony\Component\HttpKernel\Bundle; use Symfony\Component\Console\Application; use Symfony\Component\DependencyInjection\Container; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; +use Symfony\Component\DependencyInjection\Kernel\AbstractBundle as BaseAbstractBundle; /** * An implementation of BundleInterface that adds a few conventions for DependencyInjection extensions. * * @author Fabien Potencier */ -abstract class Bundle implements BundleInterface +abstract class Bundle extends BaseAbstractBundle implements BundleInterface { - protected string $name; - protected ExtensionInterface|false|null $extension = null; - protected string $path; - protected ?ContainerInterface $container; - private string $namespace; - /** - * @return void - */ - public function boot() - { - } - - /** - * @return void - */ - public function shutdown() - { - } - - /** - * This method can be overridden to register compilation passes, - * other extensions, ... - * - * @return void - */ - public function build(ContainerBuilder $container) - { - } - /** * Returns the bundle's container extension. * @@ -89,40 +59,20 @@ abstract class Bundle implements BundleInterface public function getNamespace(): string { - if (!isset($this->namespace)) { - $this->parseClassName(); - } - - return $this->namespace; + return $this->namespace ??= false === ($pos = strrpos(static::class, '\\')) ? '' : substr(static::class, 0, $pos); } public function getPath(): string { - if (!isset($this->path)) { - $reflected = new \ReflectionObject($this); - $this->path = \dirname($reflected->getFileName()); - } - - return $this->path; + return $this->path ??= \dirname((new \ReflectionClass($this))->getFileName()); } /** - * Returns the bundle name (the class short name). + * @deprecated since Symfony 8.1, use the #[AsCommand] attribute or the "console.command" service tag instead of overriding this method */ - final public function getName(): string - { - if (!isset($this->name)) { - $this->parseClassName(); - } - - return $this->name; - } - - /** - * @return void - */ - public function registerCommands(Application $application) + public function registerCommands(Application $application): void { + trigger_deprecation('symfony/http-kernel', '8.1', 'The "%s::registerCommands()" method is deprecated, use the #[AsCommand] attribute or the "console.command" service tag instead of overriding this method', self::class); } /** @@ -142,16 +92,4 @@ abstract class Bundle implements BundleInterface { return class_exists($class = $this->getContainerExtensionClass()) ? new $class() : null; } - - private function parseClassName(): void - { - $pos = strrpos(static::class, '\\'); - $this->namespace = false === $pos ? '' : substr(static::class, 0, $pos); - $this->name ??= false === $pos ? static::class : substr(static::class, $pos + 1); - } - - public function setContainer(?ContainerInterface $container): void - { - $this->container = $container; - } } diff --git a/vendor/symfony/http-kernel/Bundle/BundleAdapter.php b/vendor/symfony/http-kernel/Bundle/BundleAdapter.php new file mode 100644 index 000000000..c800f9b7f --- /dev/null +++ b/vendor/symfony/http-kernel/Bundle/BundleAdapter.php @@ -0,0 +1,70 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\HttpKernel\Bundle; + +use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\ContainerInterface; +use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; +use Symfony\Component\DependencyInjection\Kernel\BundleInterface as BaseBundleInterface; + +/** + * @internal + */ +final class BundleAdapter implements BundleInterface +{ + private string $namespace; + + public function __construct( + private readonly BaseBundleInterface $bundle, + ) { + } + + public function boot(): void + { + $this->bundle->boot(); + } + + public function shutdown(): void + { + $this->bundle->shutdown(); + } + + public function build(ContainerBuilder $container): void + { + $this->bundle->build($container); + } + + public function getContainerExtension(): ?ExtensionInterface + { + return $this->bundle->getContainerExtension(); + } + + public function getName(): string + { + return $this->bundle->getName(); + } + + public function getNamespace(): string + { + return $this->namespace ??= false === ($pos = strrpos($this->bundle::class, '\\')) ? '' : substr($this->bundle::class, 0, $pos); + } + + public function getPath(): string + { + return $this->bundle->getPath(); + } + + public function setContainer(?ContainerInterface $container): void + { + $this->bundle->setContainer($container); + } +} diff --git a/vendor/symfony/http-kernel/Bundle/BundleExtension.php b/vendor/symfony/http-kernel/Bundle/BundleExtension.php deleted file mode 100644 index 8392218a2..000000000 --- a/vendor/symfony/http-kernel/Bundle/BundleExtension.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\HttpKernel\Bundle; - -use Symfony\Component\Config\Definition\Configuration; -use Symfony\Component\Config\Definition\ConfigurationInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Extension\ConfigurableExtensionInterface; -use Symfony\Component\DependencyInjection\Extension\Extension; -use Symfony\Component\DependencyInjection\Extension\ExtensionTrait; -use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface; -use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; - -/** - * @author Yonel Ceruto - * - * @internal - */ -class BundleExtension extends Extension implements PrependExtensionInterface -{ - use ExtensionTrait; - - public function __construct( - private ConfigurableExtensionInterface $subject, - private string $alias, - ) { - } - - public function getConfiguration(array $config, ContainerBuilder $container): ?ConfigurationInterface - { - return new Configuration($this->subject, $container, $this->getAlias()); - } - - public function getAlias(): string - { - return $this->alias; - } - - public function prepend(ContainerBuilder $container): void - { - $callback = function (ContainerConfigurator $configurator) use ($container) { - $this->subject->prependExtension($configurator, $container); - }; - - $this->executeConfiguratorCallback($container, $callback, $this->subject, true); - } - - public function load(array $configs, ContainerBuilder $container): void - { - $config = $this->processConfiguration($this->getConfiguration([], $container), $configs); - - $callback = function (ContainerConfigurator $configurator) use ($config, $container) { - $this->subject->loadExtension($config, $configurator, $container); - }; - - $this->executeConfiguratorCallback($container, $callback, $this->subject); - } -} diff --git a/vendor/symfony/http-kernel/Bundle/BundleInterface.php b/vendor/symfony/http-kernel/Bundle/BundleInterface.php index 36502e896..798f69ac2 100644 --- a/vendor/symfony/http-kernel/Bundle/BundleInterface.php +++ b/vendor/symfony/http-kernel/Bundle/BundleInterface.php @@ -11,61 +11,12 @@ namespace Symfony\Component\HttpKernel\Bundle; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; +use Symfony\Component\DependencyInjection\Kernel\BundleInterface as BaseBundleInterface; /** - * BundleInterface. - * - * @author Fabien Potencier + * @deprecated since Symfony 8.1, use Symfony\Component\DependencyInjection\Kernel\BundleInterface instead */ -interface BundleInterface +interface BundleInterface extends BaseBundleInterface { - /** - * Boots the Bundle. - * - * @return void - */ - public function boot(); - - /** - * Shutdowns the Bundle. - * - * @return void - */ - public function shutdown(); - - /** - * Builds the bundle. - * - * It is only ever called once when the cache is empty. - * - * @return void - */ - public function build(ContainerBuilder $container); - - /** - * Returns the container extension that should be implicitly loaded. - */ - public function getContainerExtension(): ?ExtensionInterface; - - /** - * Returns the bundle name (the class short name). - */ - public function getName(): string; - - /** - * Gets the Bundle namespace. - */ public function getNamespace(): string; - - /** - * Gets the Bundle directory path. - * - * The path should always be returned as a Unix path (with /). - */ - public function getPath(): string; - - public function setContainer(?ContainerInterface $container): void; } diff --git a/vendor/symfony/http-kernel/CHANGELOG.md b/vendor/symfony/http-kernel/CHANGELOG.md index b27b72b0f..4ecd8bd40 100644 --- a/vendor/symfony/http-kernel/CHANGELOG.md +++ b/vendor/symfony/http-kernel/CHANGELOG.md @@ -1,6 +1,50 @@ CHANGELOG ========= +8.1 +--- + + * Add `setNonce()` to `DumpDataCollector` to forward CSP nonces to every `HtmlDumper` it instantiates + * Add `#[MapRequestHeader]` to map a header from `Request` to a controller argument + * Add `hasErrors()` method to `Profile` to track profiles with errors (exceptions or error-level logs) + * Validate typed route parameters before calling controllers and return an HTTP error when an invalid value is provided + * Add `ControllerAttributeEvent` et al. to dispatch events named after controller attributes + * Add support for `UploadedFile` when using `MapRequestPayload` + * Add support for bundles as compiler pass + * Add support for `SOURCE_DATE_EPOCH` environment variable + * Add property `$controllerMetadata` to several kernel events to give listeners access to controller metadata + * Add `Request` attribute `_controller_attributes` to decouple controller attributes from their source code + * Return attributes as a flat list when using `Controller[Arguments]Event::getAttributes('*')` + * Pass `request` and `args` variables to `Cache` attribute expressions containing the `Request` object and controller arguments + * Allow using closures with the `Cache` attribute + * Allow setting a condition when the `Cache` attribute should be applied + * Add `ControllerEvent::evaluate()` et al. to help with evaluating expressions or closures in controller attributes + * Deprecate passing a non-flat list of attributes to `Controller::setController()` + * Deprecate the `Symfony\Component\HttpKernel\DependencyInjection\Extension` class, use the parent `Symfony\Component\DependencyInjection\Extension\Extension` class instead + * Allow using Expression or \Closure for `validationGroups` in `#[MapRequestPayload]` and `#[MapQueryString]` + * Deprecate passing a `ControllerArgumentsEvent` to the `ViewEvent` constructor; pass a `ControllerArgumentsMetadata` instead + * Support variadic argument with `#[MapRequestPayload]` + * Add `#[Serialize]` to serialize values returned by controllers + * Add argument `$mapWhenEmpty` to `MapQueryString` and `MapRequestPayload` for always attempting denormalization with empty query and request payload + * Deprecate `Bundle::registerCommands()`, use the `#[AsCommand]` attribute or the `console.command` service tag instead of overriding this method + * Deprecate `BundleInterface`, use the one from the DependencyInjection component instead + * Deprecate `MergeExtensionConfigurationPass`, use the one from the DependencyInjection component instead + * Deprecate `FileLocator`, use the one from the DependencyInjection component instead + * Add `#[RateLimit]` attribute to declaratively enforce rate limiting on controllers. + * Deprecate `ServicesResetter`, `ServicesResetterInterface`, and `ResettableServicePass`, use the ones from the DependencyInjection component instead + +8.0 +--- + + * Remove `AddAnnotatedClassesToCachePass` + * Remove `Extension::getAnnotatedClassesToCompile()` and `Extension::addAnnotatedClassesToCompile()` + * Remove `Kernel::getAnnotatedClassesToCompile()` and `Kernel::setAnnotatedClassCache()` + * Make `ServicesResetter` class `final` + * Add argument `$logChannel` to `ErrorListener::logException()` + * Add argument `$event` to `DumpListener::configure()` + * Replace `__sleep/wakeup()` by `__(un)serialize()` on kernels and data collectors + * Add method `getShareDir()` to `KernelInterface` + 7.4 --- diff --git a/vendor/symfony/http-kernel/Config/FileLocator.php b/vendor/symfony/http-kernel/Config/FileLocator.php index 01fc757c4..f2b6fa9b8 100644 --- a/vendor/symfony/http-kernel/Config/FileLocator.php +++ b/vendor/symfony/http-kernel/Config/FileLocator.php @@ -11,30 +11,13 @@ namespace Symfony\Component\HttpKernel\Config; -use Symfony\Component\Config\FileLocator as BaseFileLocator; -use Symfony\Component\HttpKernel\KernelInterface; +use Symfony\Component\DependencyInjection\Kernel\FileLocator as BaseFileLocator; + +trigger_deprecation('symfony/http-kernel', '8.1', 'The "%s" class is deprecated, use "%s" instead.', FileLocator::class, BaseFileLocator::class); /** - * FileLocator uses the KernelInterface to locate resources in bundles. - * - * @author Fabien Potencier + * @deprecated since Symfony 8.1, use Symfony\Component\DependencyInjection\Kernel\FileLocator instead */ class FileLocator extends BaseFileLocator { - public function __construct( - private KernelInterface $kernel, - ) { - parent::__construct(); - } - - public function locate(string $file, ?string $currentPath = null, bool $first = true): string|array - { - if (isset($file[0]) && '@' === $file[0]) { - $resource = $this->kernel->locateResource($file); - - return $first ? $resource : [$resource]; - } - - return parent::locate($file, $currentPath, $first); - } } diff --git a/vendor/symfony/http-kernel/Controller/ArgumentResolver/BackedEnumValueResolver.php b/vendor/symfony/http-kernel/Controller/ArgumentResolver/BackedEnumValueResolver.php index 9193cee06..764605bfc 100644 --- a/vendor/symfony/http-kernel/Controller/ArgumentResolver/BackedEnumValueResolver.php +++ b/vendor/symfony/http-kernel/Controller/ArgumentResolver/BackedEnumValueResolver.php @@ -35,16 +35,16 @@ final class BackedEnumValueResolver implements ValueResolverInterface return []; } + $name = $argument->getName(); + // do not support if no value can be resolved at all // letting the \Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver be used // or \Symfony\Component\HttpKernel\Controller\ArgumentResolver fail with a meaningful error. - if (!$request->attributes->has($argument->getName())) { + if (!$request->attributes->has($name)) { return []; } - $value = $request->attributes->get($argument->getName()); - - if (null === $value) { + if (null === $value = $request->attributes->get($name)) { return [null]; } @@ -52,17 +52,17 @@ final class BackedEnumValueResolver implements ValueResolverInterface return [$value]; } + /** @var class-string<\BackedEnum> $type */ + $type = $argument->getType(); + if (!\is_int($value) && !\is_string($value)) { - throw new \LogicException(\sprintf('Could not resolve the "%s $%s" controller argument: expecting an int or string, got "%s".', $argument->getType(), $argument->getName(), get_debug_type($value))); + throw new NotFoundHttpException(\sprintf('Could not resolve the "%s $%s" controller argument: expecting an int or string, got "%s".', $type, $name, get_debug_type($value))); } - /** @var class-string<\BackedEnum> $enumType */ - $enumType = $argument->getType(); - try { - return [$enumType::from($value)]; + return [$type::from($value)]; } catch (\ValueError|\TypeError $e) { - throw new NotFoundHttpException(\sprintf('Could not resolve the "%s $%s" controller argument: ', $argument->getType(), $argument->getName()).$e->getMessage(), $e); + throw new NotFoundHttpException(\sprintf('Could not resolve the "%s $%s" controller argument: ', $type, $name).$e->getMessage(), $e); } } } diff --git a/vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php b/vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php index 2a8d48ee3..2541a70d6 100644 --- a/vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php +++ b/vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php @@ -14,6 +14,7 @@ namespace Symfony\Component\HttpKernel\Controller\ArgumentResolver; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Controller\ValueResolverInterface; use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; +use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; /** * Yields a non-variadic argument's value from the request attributes. @@ -24,6 +25,53 @@ final class RequestAttributeValueResolver implements ValueResolverInterface { public function resolve(Request $request, ArgumentMetadata $argument): array { - return !$argument->isVariadic() && $request->attributes->has($argument->getName()) ? [$request->attributes->get($argument->getName())] : []; + if ($argument->isVariadic()) { + return []; + } + + $name = $argument->getName(); + if (!$request->attributes->has($name)) { + return []; + } + + $value = $request->attributes->get($name); + + if (null === $value && $argument->isNullable()) { + return [null]; + } + + $type = $argument->getType(); + + // Skip when no type declaration or complex types; fall back to other resolvers/defaults + if (null === $type || str_contains($type, '|') || str_contains($type, '&')) { + return [$value]; + } + + if ('string' === $type) { + if (!\is_scalar($value) && !$value instanceof \Stringable) { + throw new NotFoundHttpException(\sprintf('The value for the "%s" route parameter is invalid.', $name)); + } + + $value = (string) $value; + } elseif ('bool' === $type) { + if (null === $value = filter_var($value, \FILTER_VALIDATE_BOOL, ['flags' => \FILTER_NULL_ON_FAILURE | \FILTER_REQUIRE_SCALAR])) { + throw new NotFoundHttpException(\sprintf('The value for the "%s" route parameter is invalid.', $name)); + } + } elseif (null !== $cast = match ($type) { + 'int' => static fn (int $v): int => $v, + 'float' => static fn (float $v): float => $v, + default => null, + }) { + // Coerce the value as PHP would when passing it to the typed controller + // argument, so a zero-padded "06" still resolves to 6 while a value that + // would raise a TypeError (overflow, "abc") becomes a 404. + try { + $value = $cast($value); + } catch (\TypeError) { + throw new NotFoundHttpException(\sprintf('The value for the "%s" route parameter is invalid.', $name)); + } + } + + return [$value]; } } diff --git a/vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestHeaderValueResolver.php b/vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestHeaderValueResolver.php new file mode 100644 index 000000000..410e9085d --- /dev/null +++ b/vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestHeaderValueResolver.php @@ -0,0 +1,64 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\HttpKernel\Controller\ArgumentResolver; + +use Symfony\Component\HttpFoundation\AcceptHeader; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpKernel\Attribute\MapRequestHeader; +use Symfony\Component\HttpKernel\Controller\ValueResolverInterface; +use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; +use Symfony\Component\HttpKernel\Exception\HttpException; + +final class RequestHeaderValueResolver implements ValueResolverInterface +{ + public function resolve(Request $request, ArgumentMetadata $argument): array + { + if (!$attribute = $argument->getAttributesOfType(MapRequestHeader::class)[0] ?? null) { + return []; + } + + $type = $argument->getType(); + + if (!\in_array($type, ['string', 'array', AcceptHeader::class])) { + throw new \LogicException(\sprintf('Could not resolve the argument typed "%s". Valid types are "array", "string" or "%s".', $type, AcceptHeader::class)); + } + + $name = $attribute->name ?? strtolower(preg_replace('/[a-z]\K[A-Z]/', '-$0', $argument->getName())); + $value = null; + + if ($request->headers->has($name)) { + $value = match ($type) { + 'string' => $request->headers->get($name), + 'array' => match (strtolower($name)) { + 'accept' => $request->getAcceptableContentTypes(), + 'accept-charset' => $request->getCharsets(), + 'accept-language' => $request->getLanguages(), + 'accept-encoding' => $request->getEncodings(), + default => $request->headers->all($name), + }, + AcceptHeader::class => AcceptHeader::fromString($request->headers->get($name)), + }; + } elseif ($argument->hasDefaultValue()) { + $value = $argument->getDefaultValue(); + } + + if (null === $value && 'array' === $type) { + $value = []; + } + + if (null === $value && !$argument->isNullable()) { + throw HttpException::fromStatusCode($attribute->validationFailedStatusCode, \sprintf('Missing header "%s".', $name)); + } + + return [$value]; + } +} diff --git a/vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestPayloadValueResolver.php b/vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestPayloadValueResolver.php index 6dca19787..d7a6cbbf7 100644 --- a/vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestPayloadValueResolver.php +++ b/vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestPayloadValueResolver.php @@ -12,6 +12,8 @@ namespace Symfony\Component\HttpKernel\Controller\ArgumentResolver; use Symfony\Component\EventDispatcher\EventSubscriberInterface; +use Symfony\Component\ExpressionLanguage\Expression; +use Symfony\Component\ExpressionLanguage\ExpressionLanguage; use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Attribute\MapQueryString; @@ -33,6 +35,7 @@ use Symfony\Component\Serializer\Exception\UnsupportedFormatException; use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; use Symfony\Component\Serializer\SerializerInterface; use Symfony\Component\Validator\Constraints as Assert; +use Symfony\Component\Validator\Constraints\GroupSequence; use Symfony\Component\Validator\ConstraintViolation; use Symfony\Component\Validator\ConstraintViolationList; use Symfony\Component\Validator\Exception\ValidationFailedException; @@ -42,6 +45,8 @@ use Symfony\Contracts\Translation\TranslatorInterface; /** * @author Konstantin Myakshin * + * @psalm-type GroupResolver = \Closure(array, Request, ?object):string|GroupSequence|array + * * @final */ class RequestPayloadValueResolver implements ValueResolverInterface, EventSubscriberInterface @@ -65,6 +70,7 @@ class RequestPayloadValueResolver implements ValueResolverInterface, EventSubscr private readonly ?ValidatorInterface $validator = null, private readonly ?TranslatorInterface $translator = null, private string $translationDomain = 'validators', + private ?ExpressionLanguage $expressionLanguage = null, ) { } @@ -79,7 +85,7 @@ class RequestPayloadValueResolver implements ValueResolverInterface, EventSubscr return []; } - if (!$attribute instanceof MapUploadedFile && $argument->isVariadic()) { + if ($attribute instanceof MapQueryString && $argument->isVariadic()) { throw new \LogicException(\sprintf('Mapping variadic argument "$%s" is not supported.', $argument->getName())); } @@ -88,7 +94,7 @@ class RequestPayloadValueResolver implements ValueResolverInterface, EventSubscr if (!$attribute->type) { throw new NearMissValueResolverException(\sprintf('Please set the $type argument of the #[%s] attribute to the type of the objects in the expected array.', MapRequestPayload::class)); } - } elseif ($attribute->type) { + } elseif ($attribute->type && !$argument->isVariadic()) { throw new NearMissValueResolverException(\sprintf('Please set its type to "array" when using argument $type of #[%s].', MapRequestPayload::class)); } } @@ -127,7 +133,8 @@ class RequestPayloadValueResolver implements ValueResolverInterface, EventSubscr $payload = $payloadMapper($request, $argument->metadata, $argument); } catch (PartialDenormalizationException $e) { $trans = $this->translator ? $this->translator->trans(...) : static fn ($m, $p) => strtr($m, $p); - foreach ($e->getErrors() as $error) { + $errors = method_exists($e, 'getNotNormalizableValueErrors') ? $e->getNotNormalizableValueErrors() : $e->getErrors(); + foreach ($errors as $error) { $parameters = []; $template = 'This value was of an unexpected type.'; if ($expectedTypes = $error->getExpectedTypes()) { @@ -140,6 +147,13 @@ class RequestPayloadValueResolver implements ValueResolverInterface, EventSubscr $message = $trans($template, $parameters, $this->translationDomain); $violations->add(new ConstraintViolation($message, $template, $parameters, null, $error->getPath(), null)); } + if (null !== $extraAttributesError = method_exists($e, 'getExtraAttributesError') ? $e->getExtraAttributesError() : null) { + $template = 'This attribute was not expected.'; + foreach ($extraAttributesError->getExtraAttributes() as $extraAttribute) { + $message = $trans($template, [], $this->translationDomain); + $violations->add(new ConstraintViolation($message, $template, [], null, $extraAttribute, null)); + } + } $payload = $e->getData(); } catch (SerializerInvalidArgumentException $e) { $violations->add(new ConstraintViolation($e->getMessage(), $e->getMessage(), [], null, '', null)); @@ -151,10 +165,12 @@ class RequestPayloadValueResolver implements ValueResolverInterface, EventSubscr if (\is_array($payload) && !empty($constraints) && !$constraints instanceof Assert\All) { $constraints = new Assert\All($constraints); } + $groups = $this->resolveValidationGroups($argument->validationGroups ?? null, $event); + if ($argument instanceof MapUploadedFile) { - $violations->addAll($this->validator->startContext()->atPath($argument->metadata->getName())->validate($payload, $constraints, $argument->validationGroups ?? null)->getViolations()); + $violations->addAll($this->validator->startContext()->atPath($argument->metadata->getName())->validate($payload, $constraints, $groups)->getViolations()); } else { - $violations->addAll($this->validator->validate($payload, $constraints, $argument->validationGroups ?? null)); + $violations->addAll($this->validator->validate($payload, $constraints, $groups)); } } @@ -165,7 +181,8 @@ class RequestPayloadValueResolver implements ValueResolverInterface, EventSubscr try { $payload = $payloadMapper($request, $argument->metadata, $argument); } catch (PartialDenormalizationException $e) { - throw HttpException::fromStatusCode($validationFailedCode, implode("\n", array_map(static fn ($e) => $e->getMessage(), $e->getErrors())), $e); + $errors = method_exists($e, 'getNotNormalizableValueErrors') ? $e->getNotNormalizableValueErrors() : $e->getErrors(); + throw HttpException::fromStatusCode($validationFailedCode, implode("\n", array_map(static fn ($e) => $e->getMessage(), $errors)), $e); } catch (SerializerInvalidArgumentException $e) { throw HttpException::fromStatusCode($validationFailedCode, $e->getMessage(), $e); } @@ -192,14 +209,16 @@ class RequestPayloadValueResolver implements ValueResolverInterface, EventSubscr public static function getSubscribedEvents(): array { + // Keep this priority lower than ControllerAttributesListener (-10000) so that gate + // attributes such as #[IsGranted] are handled before the payload is mapped. return [ - KernelEvents::CONTROLLER_ARGUMENTS => 'onKernelControllerArguments', + KernelEvents::CONTROLLER_ARGUMENTS => ['onKernelControllerArguments', -10100], ]; } private function mapQueryString(Request $request, ArgumentMetadata $argument, MapQueryString $attribute): ?object { - if (!($data = $request->query->all($attribute->key)) && ($argument->isNullable() || $argument->hasDefaultValue())) { + if (!($data = $request->query->all($attribute->key)) && ($argument->isNullable() || $argument->hasDefaultValue()) && !$attribute->mapWhenEmpty) { return null; } @@ -208,8 +227,12 @@ class RequestPayloadValueResolver implements ValueResolverInterface, EventSubscr private function mapRequestPayload(Request $request, ArgumentMetadata $argument, MapRequestPayload $attribute): object|array|null { - if ('' === ($data = $request->request->all() ?: $request->getContent()) && ($argument->isNullable() || $argument->hasDefaultValue())) { - return null; + if ('' === $data = $request->request->all() ?: $request->getContent()) { + if ($attribute->mapWhenEmpty) { + $data = []; + } elseif ($argument->isNullable() || $argument->hasDefaultValue()) { + return null; + } } if (null === $format = $request->getContentTypeFormat()) { @@ -220,13 +243,15 @@ class RequestPayloadValueResolver implements ValueResolverInterface, EventSubscr throw new UnsupportedMediaTypeHttpException(\sprintf('Unsupported format, expects "%s", but "%s" given.', implode('", "', (array) $attribute->acceptFormat), $format)); } - if ('array' === $argument->getType() && null !== $attribute->type) { - $type = $attribute->type.'[]'; - } else { - $type = $argument->getType(); - } + $type = match (true) { + $argument->isVariadic() => ($attribute->type ?? $argument->getType()).'[]', + 'array' === $argument->getType() && null !== $attribute->type => $attribute->type.'[]', + default => $argument->getType(), + }; if (\is_array($data)) { + $data = $this->mergeParamsAndFiles($data, $request->files->all()); + return $this->serializer->denormalize($data, $type, self::hasNonStringScalar($data) ? $format : 'csv', $attribute->serializationContext + self::CONTEXT_DENORMALIZE + ('form' === $format ? ['filter_bool' => true] : [])); } @@ -258,6 +283,63 @@ class RequestPayloadValueResolver implements ValueResolverInterface, EventSubscr return 'array' === $argument->getType() ? [] : null; } + private function mergeParamsAndFiles(array $params, array $files): array + { + $isFilesList = array_is_list($files); + + foreach ($params as $key => $value) { + if (\is_array($value) && \is_array($files[$key] ?? null)) { + $params[$key] = $this->mergeParamsAndFiles($value, $files[$key]); + unset($files[$key]); + } + } + + if (!$isFilesList) { + return array_replace($params, $files); + } + + foreach ($files as $value) { + $params[] = $value; + } + + return $params; + } + + private function resolveValidationGroups(Expression|string|GroupSequence|\Closure|array|null $validationGroups, ControllerArgumentsEvent $event): string|GroupSequence|array|null + { + if ($validationGroups instanceof Expression || $validationGroups instanceof \Closure) { + $validationGroups = $event->evaluate($validationGroups, $this->expressionLanguage); + } + + if (null === $validationGroups || \is_string($validationGroups) || $validationGroups instanceof GroupSequence) { + return $validationGroups; + } + + if (!\is_array($validationGroups)) { + throw new \LogicException('The validation groups expression or closure must return a string, an array of strings, or a GroupSequence.'); + } + + foreach ($validationGroups as $group) { + if ($group instanceof Expression) { + throw new \LogicException('Nested expressions in validation groups are not supported. Use a single Expression or a list of strings (or a GroupSequence) instead.'); + } + + if ($group instanceof \Closure) { + throw new \LogicException('Nested closures in validation groups are not supported. Use a single Closure or a list of strings (or a GroupSequence) instead.'); + } + + if ($group instanceof GroupSequence) { + throw new \LogicException('GroupSequence cannot be used inside an array of validation groups. Pass the GroupSequence as the top-level validationGroups value instead.'); + } + + if (!\is_string($group)) { + throw new \LogicException('Validation groups must be strings.'); + } + } + + return $validationGroups; + } + private static function hasNonStringScalar(array $data): bool { $stack = [$data]; diff --git a/vendor/symfony/http-kernel/DataCollector/DataCollector.php b/vendor/symfony/http-kernel/DataCollector/DataCollector.php index 0876c7cc7..f5a0ad085 100644 --- a/vendor/symfony/http-kernel/DataCollector/DataCollector.php +++ b/vendor/symfony/http-kernel/DataCollector/DataCollector.php @@ -86,77 +86,15 @@ abstract class DataCollector implements DataCollectorInterface public function __serialize(): array { - if (self::class === (new \ReflectionMethod($this, '__sleep'))->class || self::class !== (new \ReflectionMethod($this, '__serialize'))->class) { - return ['data' => $this->data]; - } - - trigger_deprecation('symfony/http-kernel', '7.4', 'Implementing "%s::__sleep()" is deprecated, use "__serialize()" instead.', get_debug_type($this)); - - $data = []; - foreach ($this->__sleep() as $key) { - try { - if (($r = new \ReflectionProperty($this, $key))->isInitialized($this)) { - $data[$key] = $r->getValue($this); - } - } catch (\ReflectionException) { - $data[$key] = $this->$key; - } - } - - return $data; + return ['data' => $this->data]; } public function __unserialize(array $data): void { - if ($wakeup = self::class !== (new \ReflectionMethod($this, '__wakeup'))->class && self::class === (new \ReflectionMethod($this, '__unserialize'))->class) { - trigger_deprecation('symfony/http-kernel', '7.4', 'Implementing "%s::__wakeup()" is deprecated, use "__unserialize()" instead.', get_debug_type($this)); - } - - if (\in_array(array_keys($data), [['data'], ["\0*\0data"]], true)) { - $this->data = $data['data'] ?? $data["\0*\0data"]; - - if ($wakeup) { - $this->__wakeup(); - } - - return; - } - - trigger_deprecation('symfony/http-kernel', '7.4', 'Passing more than just key "data" to "%s::__unserialize()" is deprecated, populate properties in "%s::__unserialize()" instead.', self::class, get_debug_type($this)); - - \Closure::bind(function ($data) use ($wakeup) { - foreach ($data as $key => $value) { - $this->{("\0" === $key[0] ?? '') ? substr($key, 1 + strrpos($key, "\0")) : $key} = $value; - } - - if ($wakeup) { - $this->__wakeup(); - } - }, $this, static::class)($data); + $this->data = $data['data'] ?? $data["\0*\0data"]; } - /** - * @deprecated since Symfony 7.4, will be replaced by `__serialize()` in 8.0 - */ - public function __sleep(): array - { - trigger_deprecation('symfony/http-kernel', '7.4', 'Calling "%s::__sleep()" is deprecated, use "__serialize()" instead.', get_debug_type($this)); - - return ['data']; - } - - /** - * @deprecated since Symfony 7.4, will be replaced by `__unserialize()` in 8.0 - */ - public function __wakeup(): void - { - trigger_deprecation('symfony/http-kernel', '7.4', 'Calling "%s::__wakeup()" is deprecated, use "__unserialize()" instead.', get_debug_type($this)); - } - - /** - * @return void - */ - public function reset() + public function reset(): void { $this->data = []; } diff --git a/vendor/symfony/http-kernel/DataCollector/DataCollectorInterface.php b/vendor/symfony/http-kernel/DataCollector/DataCollectorInterface.php index 5e8593d07..31cc59d46 100644 --- a/vendor/symfony/http-kernel/DataCollector/DataCollectorInterface.php +++ b/vendor/symfony/http-kernel/DataCollector/DataCollectorInterface.php @@ -24,15 +24,11 @@ interface DataCollectorInterface extends ResetInterface { /** * Collects data for the given Request and Response. - * - * @return void */ - public function collect(Request $request, Response $response, ?\Throwable $exception = null); + public function collect(Request $request, Response $response, ?\Throwable $exception = null): void; /** * Returns the name of the collector. - * - * @return string */ - public function getName(); + public function getName(): string; } diff --git a/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php b/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php index dbe20b012..22571bb00 100644 --- a/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php +++ b/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php @@ -40,6 +40,8 @@ class DumpDataCollector extends DataCollector implements DataDumperInterface private string $charset; private mixed $sourceContextProvider; private bool $webMode; + private ?string $scriptNonce = null; + private ?string $styleNonce = null; public function __construct( private ?Stopwatch $stopwatch = null, @@ -70,6 +72,18 @@ class DumpDataCollector extends DataCollector implements DataDumperInterface $this->clonesIndex = ++$this->clonesCount; } + /** + * Sets CSP nonces to apply to every {@see HtmlDumper} this collector creates. + * + * If $styleNonce is omitted, $scriptNonce is reused for both